当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]串行外围接口SPI功能模块的设计

 

    摘 要:串行外设接口SPI是现在很流行的一种同步串行接口,可用于与其他外设或者单片机进行通信。根据SPI总线性能特点,给出了SPI总线的数据传输规范,设计了一种SPI的IP功能模块,并成功应用到监控系统SOC芯片中。

  1 引 言

  SPI(Serial Peripheral Interface)串行外围接口是一种3线同步串行全双工通信接口,它具有电路简单,速度陕,通信可靠等优点,近年来大量的新型器件如LCD模块、FLASH、EEPROM存储器、数据输入输出设备都采用了SPI接口,新型的单片机一般都已将SPI接口控制器集成在单片机内部,这样能够大大降低软件的工作量。

  由于SPI系统总线一共只需3~4位数据线和控制线即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、8—16位地址线、2~3位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/0口线,提高设计的可靠性,使用SPI总线可以增加应用系统接口器件的种类,提高应用系统的性能。

  2 SPI模块的接口信号、时序要求及工作模式

  2.1 内部总线接口

  在本设计中,内部总线接口采用的是AMBA总线3.0协议,具有较好的可移植性和可复用性。SPI是APB总线上的Slave模块。APB总线的时序完全遵照(ABMA Specification)(Rev 3.0)。因此此SPI模块支持3种DMA操作,除了标准信号线外,还有3根与DMA模块连接的中断请求信号线。

  2.2 SPI总线接口及时序

  SPI串行接口使用4条线可与多种标准外围器件直接接口:串行时钟线SCLK,主机输入/从机输出数据线MISO,主机输出/从机输人数据线MOSI和低电平有效的从机选择线SSN。SCLK是主机时钟线,为MISO数据的发送和接收提供同步时钟信号。

  在正常工作的时候,主机的4个引脚应和从机对应的4个引脚分别相连。

  SPI模块为了和外设进行数据交换,根据外设的工作要求,其输出串行同步时钟的极性和相位可以进行配置,时钟的极性(CPOL)对传输的协议没有重大影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;相反,如果CPOL=l,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。

  如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设时钟相位和极性应该一致。SPI接口时序如图1、图2所示。

 
 


图1 CPOL=0 CPHA =0

 
 


图2 CPOL=0 CPHA=1[!--empirenews.page--]

  2.3 工作模式

  SPI有两种工作模式,可以通过外部引脚跳线的方式来切换。

  主模式:发送和接收可以同时工作在主模式下。

  主模式的显著特征是不论是发送还是接收始终有SCLK信号,发送操作是由向发送FIFO中写数据而触发的。在主模式下,时钟信号的1次作用对应一位数据的发送(MOSI)和另一位数据的接收(MISO)。

  如图3所示,在主片中数据从移位寄存器中自右向左发出送到从片(MOSI),同时从片中的数据自左向右发到主片(MISO),经过8位时钟周期完成1个字节的发送。输入字节保留在移位寄存器中,此时SPI INT FLAG位自动置位(如果有中断设置,则产生中断),移位寄存器的数据将被锁存到接收FIFO中,此后对接收FIFO的读操作将把数据读出。

  从模式:发送和接收同时工作在从模式下。从模式的显著特征是:不论是发送还是接收始终必须在SCLK信号作用下进行,并且SSN信号必须有效。

  当SSN信号无效时,数据的发送无法进行并且输入的数据视为无效。数据的发送和接收过程见图3所示,与主模式下基本相似,只是移位寄存器的数据移出和输入方向与之相反。

 
 


图3 主片和从片发送和接收操作

  3 SPI模块功能设计

  3.1 模块划分

  根据功能定义及SPI的工作原理,将整个SPI IP划分为8个子模块:APB接口模块、时钟分频模块、发送数据FIFO模块、接收数据FIFO模块、寄存器控制模块、命令解析模块、中断处理模块及发送接收数据模块。整个SPI模块划分结构图如图4所示。

 


 


图4 数据传输结构

  在这些模块中,Tx—FIFO和Rx—FIFO用来做接收发送数据的FIFO。DMA/INT是中断控制模块,通知MCU或者DMA发送或者接收数据的FIFO。CMD ANALYSIS模块用来解析在从模式下Host发过来的命令。CTRl/Register用来放置寄存器,供MCU读写配置SPI的各种参数。Shifter用来做串并转换,收发送数据。Clock模块用来产生主模式下时钟。

  3.2 设计方案

  通过深入分析SPI的四种传输协议可以发现,根据一种协议,只要对串行同步时钟进行转换,就能得到其余的三种协议。为了简化设计,规定如果要连续传输多个数据,在两个数据传输之问插入一个串行时钟的空闲等待,这样状态机只需两种状态(空闲和工作)就能正确工作。相比其它设计,在基本不降低性能的前提下,思路比较精炼、清晰,能够大大缩短写代码的时间,降低出错率。

  此SPI模块有两种工作方式:查询方式和DMA方式。查询方式通过处理器核监视SPI的状态寄存器来获取其所处的状态,从而决定下一步动作。

  DMA方式由DMA模块控制数据在内存和SPI间的交换,而不需要处理器核的参与,有效提高了总线利用率。

  外部MCU可以通过和内部MCU通讯的方式,把从模式的SPI配置成可以解析命令的模式,这样外部主模式的SPI可以在SSN低电平的时候连续传输多位数据,在下降沿的第一个数据被认为是命令。从模式的SPI可以解析这些命令然后做相应的操作。这些操作主要包括,清除接收FIFO或者发送FIFO中的数据,选择MCU或者DMA来作为数据交互的对象等,可以大大节省和MCU交互所需要的带宽。

  作为主要组成部分的寄存器控制模块和SPI核心模块采用同步电路设计,它们之间的通讯采用异步电路设计。这些主要是考虑到SPI的带宽通过MCU的控制是可调的。SPI核心部分的时钟频率可调,可实现多种带宽,增加了本设计SPI的灵活性。[!--empirenews.page--]

  3.3 电路实现

  为了保证RTL代码的正确性,对IP的功能进行全面的仿真验证。仿真包括RTL级和门级仿真验证。RTL级仿真是将代码文件调入硬件描述语言的仿真软件进行功能仿真,门级仿真包括布局布线前和布局布线后仿真。布局布线后仿真,获得精确的时延参数。将RTL级代码转换成门级网表,0.13um工艺标准单元库。

  在传统的设计流程中进行功能验证,首先需要通过写测试矢量的方式给需要进行功能测试的模块加激励,然后通过观察模块的输出结果,判断模块的功能是否正确。但是在写测试矢量时,测试工程师是在自己对模块功能理解的基础上进行的。这样就存在一个问题,测试矢量对模块的激励有可能是不完备的,还有可能是错误的,但测试矢量的激励并没有使错误体现出来;也有可能模块的功能是正确的,误报错误使验证过程变得非常低效。为避免以上问题,对本设计模块的功能验证中,采用系统级验证环境。该环境由IP总线、驱动器、监视器、外部模块和协调它们工作的脚本组成。组成系统的各模块可以按需要加人环境。每次验证过程就是相应的激励作用于环境的过程。验证结果由环境产生、检验和输出。以保证测试矢量的完备性和正确性。

  该验证环境在LINUX操作系统下,仿真器采用Cadence公司的Nc—verilog,支持C/C++、Verilog和VHDL协同仿真,可以直接把SPI模块挂在验证环境中,通过Verilog的$readmemh任务读入软件激励进行验证。

  在系统时钟为36MHz的情况下,图5(a)给出了CPOL=0,CPHA=1时,发送6位数据的仿真结果。图5(b)给出了在CPOL=0,CPHA=0的情况下,接收6位数据的仿真结果。

 


 


图5 仿真结果

  这两个仿真结果说明本设计完全支持4种SPI传输协议,而且能够以最大的速率无缝传输数据。

  4 结束语

  本设计的SPI可作为IP核嵌入监控系统SOC芯片中。芯片通过流片验证,各项指标已达到了原设计的要求,通过板级测试,芯片中SPI能支持4种传输协议,工作的最高频率可达18M bps,在一秒钟内能够抓图或者回显l5帧图像,达到业内较高水平。本设计中的不足之处是没有做数据校验,随着市场需求的提高,可在设计中增加CRC校验以增加数据的正确性,提高系统效率。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭