基于FPGA带寄存器寻址SPI接口设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA带寄存器寻址SPI接口设计

基于FPGA带寄存器寻址SPI接口设计摘 要:随着物联网技术的发展,硬件间的相互通信速度要求越来越快。文中给出了采用Verilog HDL语言以有限状态机的形式,在FPGA中实现对带寄存器寻址的SPI接口控制的方法;同时介绍了通过SPI接口的结构和工作原理,提出了所设计的SPI接口要求,并通过Modelsim SE 6.5仿真软件进行了仿真实验,得到了符合设计要求的仿真波形,且在FPGA开发板上得到了正确验证,证明该设计可应用于带寄存器寻址的SPI接口配置。 关键字:物联网;Verilog HDL;FPGA;有限状态机;SPI 中图分类号:TP391.9 文献标识码:A 文章编号:2095-1302(2013)03-0045-03 0 引 言 SPI(Serial Peripheral Interface,串行外围接口)总线是一种高速全双工同步串行通信接口,可以实现CPU与各种外围设备(如FLAS、LCD显示驱动器、网络控制器、AD转换器、DA转换器和其他CPU等)以串行方式进行通信以交换信息[1,2]。相比于I2C接口和UART等其他串行接口,一般情况下,SPI接口的数据传输速度最快,可以达到几个Mb/s。I2C接口由于是二线协议速度,很难超过1 Mb/s;UART工作在方式0(8位移位寄存器)时,时钟速度为系统时钟的1/12,而SPI接口时钟速度一般为系统时钟的1/4[3,4]。本文给出了采用Verilog HDL语言,以FPGA为控制器设计的一种带寄存器寻址的SPI接口的设计方法。 1 SPI总线结构和工作原理 SPI总线一般使用四条信号线,以主/从模式工作,这种模式通常有一个主设备和多个从设备。数据传输过程由主机初始化。它是一种环形总线结构,结构框图如图1所示[5,6]。SPI总线使用的四条信号线分别为SCLK、MOSI、MISO和CS。其中,SCLK为串行时钟线,用来同步数据传输,由主机产生;MOSI是主机输出,从机输入数据线;MISO是主机输入,从机输出数据线;CS是从机选择线,由主机控制输出。 CS用于表示控制芯片是否被选中,即只有CS有效时(高电平或低电平),对此芯片的操作才有效,从而在同一总线上连接多个SPI接口设备成为可能。当SPI从机被选中时,在SPI主机输出SCLK的控制下,SPI主机通过MOSI引脚发送数据,SPI从机通过MOSI接收数据,或者SPI从机通过MISO引脚发送数据,SPI主机通过MISO引脚接收数据。 SPI总线通过时钟极性(CPOL)和时钟相位(CPHA)两个控制位来配置其工作方式及其接口数据传输时序。SPI总线工作时序图如图2所示[7]。CPOL用来控制SCLK的空闲状态电平。当CPOL=0时,SCLK的空闲状态为低电平;当CPOL=1时,SCLK的空闲状态为高电平。CPHA用来控制采样数据的时刻。当CPHA=0时,在SCLK从空闲状态跳变的第一个时沿(上升或下降)数据被采样;当CPHA=1时,在SCLK从空闲状态跳变的第二个时沿数据被采样。 SPI总线工作原理:假定CPOL=0,CPHA=1。当要传输数据时,SPI主机控制CS输出有效电平,SCLK输出时钟信号,SPI总线处于工作状态。当SCLK第一个时沿(上升沿)来的时候,SPI主机的8位移位寄存器将最高位(MSB)的数据移出,并将剩余的数据分别左移一位,这时MOSI线上电平为刚移出MSB代表的电平;同时SPI从机的8位移位寄存器将最高位的数据移出,并将剩余的数据分别左移一位,而MISO线上电平为刚移出MSB代表的电平。然后当第二时沿(下降沿)到来的时候,SPI主机的8位移位寄存器将锁存MISO线上的电平,并将其移入最低位(LSB);同时SPI从机的8位移位寄存器将锁存MOSI线上的电平,并将其移入最低位。经过8个SCLK时钟周期后,两个移位寄存器就实现了数据交换,即完成了一次SPI接口时序,然后SPI总线重新回到空闲状态,从而SPI主机和SPI从机之间实现全双工通信。 2 SPI总线协议设计和软件实现 本文采用Verilog HDL语言以同步有限状态机(FSM)的设计方法,实现了一种4线制全双工的SPI总线[8]。通过SPI主机访问SPI从机的控制寄存器,实现SPI主机和SPI从机间的SPI总线协议通信。 2.1 SPI总线协议 设计的SPI总线时序要求:当CS为低电平时,MOSI线和MISO线上数据传输有效。数据传输由SCLK控制,每次数据传输开始于SCLK的下降沿。每个输出的数据位在SCLK上升沿被采样。1 b读/写位实现SPI主机对SPI从机的读操作和写操作。1 b的保留位用作扩展。6 b地址是所要访问的SPI从机控制寄存器的地址。8 b数据是写

您可能关注的文档

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档