当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:SPI(Serial Peripheral Interface,串行外围接口)是Motorola公司提出的外围接口协议,它采用一个串行、同步、全双工的通信方式,解决了微处理器和外设之间的串行通信问题,并且可以和多个外设直接通信,具有配

摘要:SPI(Serial Peripheral Interface,串行外围接口)是Motorola公司提出的外围接口协议,它采用一个串行、同步、全双工的通信方式,解决了微处理器和外设之间的串行通信问题,并且可以和多个外设直接通信,具有配置灵活,结构简单等优点。根据全功能SPI总线的特点,设计的SPI接口可以最大发送和接收16位数据;在主模式和从模式下SPI模块的时钟频率最大可以达到系统时钟的1/4,并且在主模式下可以提供具有四种不同相位和极性的时钟供从模块选择;可以同时进行发送和接收操作,拥有中断标志位和溢出中断标志位。
关键词:全功能SPI;时钟极性和相位;串行通信;微处理器;中断控制

    SPI串行通信接口是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,应用相当广泛。但是现有文献和设计多数仅实现了SPI接口的基本发送和接收功能,对SPI接口的时序控制没有进行深入的研究。全功能SPI接口应具有四种不同的时钟模式,以适应具有不同时序要求的从控制器。文中主要研究SPI接口的时钟时序,并用具体电路实现具有4种不同极性和相位的时钟,最后通过仿真验证和FPGA验证。

1 SPI控制器典型结构
    SPI模块中的典型结构是用于通信的主从2个控制器之间的连接,如图1所示。由串行时钟线(SPICLK)、主机输入从机输出线(SPISOMI)、主机输出从机输入线(SPISIMO)、SPl选通线(SPSTE)4条线组成。当CPU通过译码向主控制器写入要传输的数据时,主控制器通过串行时钟线来启动数据传输,将会在串行时钟线的一个边沿将数据移出移位寄存器,而在串行时钟的另一个边沿将数据锁存在移位寄存器中。SPI选通线是SPI控制器的使能端,可以选择多个从机,实现一主多从的结构,只要SPI选通信号将要选的从机处的选通信号变为低电平就能够连接成功。



2 全功能SPI控制器设计
2.1 SPI控制器内部结构
    SPI控制器的原理框图如图2所示,其中主要包括:


    1)SPI控制器的内部寄存器
    SPI操作控制寄存器(SPICTL),SPI状态寄存器(SPISTS),SPI波特率设计寄存器(SPIBRR),SPI接收缓冲寄存器(SPIRXBUF),SPI发送缓冲寄存器(SPITXBUF),SPI串行数据寄存器(SPIDAT),SPI中断优先级控制寄存器(SPIPRI)。
    2)SPI控制器内的功能模块
    时钟分频模块(Frequency Divider),内部时钟产生电路(Clk_Occur),状态控制机(Srate Control),中断控制(IntContro1),测试模块(Test),输出控制模块(Dateout Control)。
2.2 SPI控制器工作原理
   
图2给出了SPI控制器的基本原理框图。SPI控制器可工作在主模式和从模式下,由于在主模式下需要提供相应的时钟给从控制器,较从模式下工作更为复杂,所以将用工作在主模式下的SPI控制器描述内部工作原理。
    在开始传送数据前,需将SPI控制器进行配置,设定时钟波特率(SPIBPR),时钟相位和极性,需要传送的字符位数(SPICCR)。基本配置结束后,向SPITXBUF和SPIDAT2个寄存器内写入要传送的数据时,将会起动一次发送和接收操作。如果有正在传送的数据,向SPITXBUF内写入数据,新的数据将在当前数据传送结束后自动进行发送和接收操作。
    写入SPICRR寄存器里的Char0~Char3位将会配置SPI状态控制模块里的计数器。状态控制是系统的核心部分,为了使系统结构化,设计了状态机,如图3所示,分为3种状态,分别是空闲状态、发送命令状态(配置SPI各个寄存器)、数据状态。其中数据状态包括数据的传送和读取。


    作为全功能SPI接口,在设计时加入了测试模块。使能相关地址译码,将使系统内部关键节点通过输出控制模块传送到数据总线。
2.3 全功能SPI控制器的时钟设计
    SPI控制器为了和外部数据进行交换,根据外设工作要求,其输出串行同步时钟极性和时钟相位可以进行匹配。但时钟极性对传输协议没有重大影响。如图4所示,全功能SPI控制器包括4种不同的时钟模式:


    无延时的上升沿:SPI在SPICLK信号上升沿发送数据,在SPICLK信号下降沿接收数据;
    无延时的下降沿:SPI在SPICLK信号下降沿发送数据,在SPICLK信号上升沿接收数据;
    有延时的上升沿:SPI在SPICLK信号上升沿之前的半个周期发送数据,在SPICLK信号下降沿接收数据;
    有延时的下降沿:SPI在SPICLK信号下降沿之前的半个周期发送数据,在SPICLK信号上升沿接收数据;
    对于SPI控制器内部时钟的产生,在对系统时钟进行分频之后,还要对生成的时钟进行一定处理,因为分频后的时钟其高电平时间是几个系统时钟周期的和,控制移位寄存器的时钟采用的是系统时钟,为了在SPICLK的一个时钟周期内只移位一位数据,必须要求内部时钟的高电平时间为一个系统时钟的周期,才能保证在SPICLK的一个时钟周期内,只有一位数据的接收和发送。


    图5为实现上述功能的具体电路,即SPI控制器时钟产生的电路结构。在图5中,分频后的时钟为DICLK,作为与门的一个输入端进入模块后对其进行处理。节点Y1和Y2的输出方程为:
   
    分频时钟DICLK通过节点Y1和Y2后,其高电平时间仅为一个系统时钟周期,且Y1较Y2延迟半个周期。MUX1的选择端S来自配置寄存器的Phase端,选择有延迟的Y1还是无延迟的Y2通过。分频后的时钟将被用于两个用途,一是产生SPICLK作为从控制器的输入时钟。二是作为主控制器的内部时钟,被用于计数器的计数脉冲和用于控制串行移位寄存器SPIDAT。
    当分频时钟用于产生SPICLK时,异或门XOR1的一个输入端来自配置寄存器的Polarity端,用于控制时钟极性。节点Y3作为D触发器MTN1的输出端,输出方程为:
   
    S0为0,D触发器上升沿触发。S0为1,D触发器保持原状态。通过MTN1后的分频时钟,其高电平时间和低电平时间相等或相差一个系统时钟周期,这个时钟即为主模式下产生的SPICLK,通过Phase和Polarity端的选择将会有四种不同时钟模式。
    当分频时钟用于产生SPI控制器的内部时钟时,MUX2的选择端S来自配置寄存器的主/从模式选择端,选择内部时钟还是外部时钟通过。输出端LANCLK用于SPI控制器的数据输入/输出锁存时钟。其方程为:
   
    这里的DICLKn为通过MUX2后的分频时钟。由于时钟极性对传输协议没有影响,所以上式将使四种时钟模式转变成2种,即上升沿无延迟和下降沿有延迟,而后在用于控制数据的输入/输出锁存。通过节点Y2的分频时钟经过控制逻辑传送到输出端CNTCLK和DATCLK,这两个时钟分别用于SPI控制器内部计数器的计数时钟和移位寄存器的控制时钟。
    以上分析均是在SPI控制器工作在主模式的情况,当SPI控制器工作在从模式时,外部时钟来自与门AND1的一个输入,通过控制逻辑分别到达CNTCLK和DATCLK端。
    在时钟生成模块里同时具有相应控制功能:Reset引脚,模块的复位端,低有效。SPISTE引脚,SPI控制器的使能端,低有效。Susp_free和Susp_soft引脚,决定了当仿真器突然中断时SPI模块将采取何种动作,在时钟生成模块里,Susp_free和Susp_soft被置为00时,将关断SPI CLK,使正在传送的数据立即停止。

3 SPI控制器的仿真实现
    SPI控制器的仿真使用Mentor公司的ModelSim软件,该软件可在windows,Linux平台上使用,支持VHDL或Verilog硬件描述语言(HDL)仿真。它支持所有器件的行为级仿真、VHDL或Verilog仿真激励。为了测试设计的正确性,编写了testbench模块,包括产生时钟信号,控制寄存器的配置,收发的数据,产生的中断等。
3.1 SPI控制器时钟仿真验证
   
当SPI工作在主模式下,全功能SPI控制器根据从控制器的时序要求会提供具有4种不同极性和相位的时钟。图6为SPI控制器内部时钟生产模块的仿真验证,输入DICLK为分频后时钟,其对系统时钟进行了14分频。时钟生产模块对DICLK进行处理,产生LANCLK,CNTCLK,DATCLK和4种不同极性和相位的SPICLK。


3.2 SPI控制器工作在主模式下的验证测试
   
通过配置寄存器选择SPI工作在主模式,此时主SPI通过引脚SPICLK提供整个串行网络的串行时钟。SPI波特率寄存器决定发送和接收的传输速率。发送数据时,主控制器先发送SPICLK信号,然后向SPIDAT和SPITXBUF寄存器写入数据C00F和8FF,写入这两个寄存器都可以启动SPISIMO引脚上的数据发送(先发送最高有效位)。同时从控制器通过引脚SPISIMO将接收到的数据移入SPIDAT的最低位,当选定量的位发送完时,整个数据发送完毕,数据按照右对齐的格式存入SPIRXBUF中,以备系统读取(一般为cpu),同时中断标志位被置为1,当系统发出指令,读取存在SPITXBUF的数据时,SPI中断标志位被清零,仿真结果如图7所示。



4 结束语
   
文中提出了一种全功能硬件SPI接口设计方法,实现了4种具有不同极性和相位的时钟,它吸取了传统软硬件的优点,具有速度快、结构简单的特点,并已通过功能仿真和FPGA验证,结果证明本设计是可靠的,可直接用于FPGA中或者作为硬件电路嵌入具体芯片内。

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

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP

2型炎症领域新突破 上海2023年9月22日 /美通社/ -- 赛诺菲今天宣布,达必妥®(度普利尤单抗注射液)获得中国国家药品监督管理局(NMPA)批准,用于治疗适合系统治疗的中度至重度结节性痒疹的成...

关键字: PRIME BSP REPORT SAR

欧莱雅中国旗下上海美次方投资有限公司达成首次开放式创新投资 法国克里希2023年9月22日 /美通社/ -- 欧莱雅集团宣布对中国创新型生物科技公司杉海创新进行少数股权投资,以建立长期合作伙伴关系,共同开发新...

关键字: AN BSP DEVELOPMENT FOR

赋能企业实现业务数据的可识别、可见、可协作和安全数据的可操作 北京2023年9月22日 /美通社/ -- 亚马逊云科技持续加速分析与安全服务创新,守护安全基座,助力企业进一步释放数据要素价值,实现创新增长。在数字经济时...

关键字: 亚马逊 BSP 生成式AI SECURITY

重庆2023年9月22日 /美通社/ -- 全球领先的高端半导体封装载板和印制电路板制造商奥特斯连续第八年受邀,出席重庆市市长国际经济顾问团于9月22日举行的第十七届年会。 奥特斯连续第八年受邀,出席重庆市市...

关键字: BSP 印制电路板 微型 微电子
关闭
关闭