新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的带寄存器寻址SPI接口设计

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

作者:时间:2013-05-20来源:网络收藏

2.2 接口软件实现
在设计中,采用100 MHz的内部时钟_CLK,而输出的接口时钟SCLK为25 MHz。主机控制SPI从机实现读操作和写操作的主模式程序流程图如图4所示。

本文引用地址:http://www.eepw.com.cn/article/189595.htm

d.jpg


在写时序和读时序中可使用同步有限状态机(FSM)实现其设计,其状态转移图如图5所示。Idle为空闲状态时,将检测写使能信号Write_ En和读使能信号Read_En。

e.jpg


当Write_En有效时,进入写操作时序状态。在_CLK时钟上升沿的控制下,由Idle状态进入SI状态,再进入S2状态,接着进入S3状态。从S3状态开始,有限状态机进入16次循环状态,循环经过S3、S4、S5和S6状态。在S3状态时,SPI主机SCLK输出低电平,CS输出低电平,MOSI输出SPI主机16位移位的最高位,而移位左移一位,最低位补0;在S4状态时,SPI主机SCLK、CS和MOSI输出保持;在S5状态时,SPI主机SCLK输出高电平,CS和MOSI输出保持,16位移位的最低位锁存MISO上的电平;在S6状态时,SPI主机SCLK、CS和MOSI输出保持。当16次循环结束时,SPI主机MOSI有效输出和MISO有效输入也分别结束。有限状态机依次进入S17、S18、S19、S20,最后回到Idle状态,写操作时序结束。
当Read_En有效时,进入读操作时序状态。由Idle状态进入S7状态,再进入S8状态,接着进入S9状态。从S9状态开始,有限状态机进入8次循环状态,循环经过S9、S10、S11和S12状态。在S9状态时,SPI主机SCLK输出低电平,CS输出低电平,MOSI输出SPI主机16位移位寄存器的最高位,而移位寄存器左移一位,最低位补移位寄存器的最高位数据;在S10状态时,SPI主机SCLK、CS和MOSI输出保持;在S11状态时,SPI主机SCLK输出高电平,CS和MOSI输出保持;在S12状态时,SPI主机SCLK、CS和MOSI输出保持。当8次循环结束时,SPI主机MOSI有效输出结束,而MISO开始有效输入。从S13状态开始,有限状态机进人下一个8次循环状态,循环经过S13、S14、S15和S16状态。在S13状态,SPI主机SCLK、CS和MOSI输出低电平,16位移位寄存器左移一位,最低位补0;在S14状态时,SCLK、CS和MOSI输出保持;在S15状态时,SPI主机SCLK输出高电平,CS和MOSI输出保持,16位移位寄存器的最低位锁存MISO上的电平;在S16状态时候,SCLK、CS和MOSI输出保持。当8次循环结束时,SPI主机MISO有效输入结束。有限状态机依次进入S17、S18、S19、S20,最后回到Idle状态,读操作时序结束。

3 SPI接口设计的仿真和综合
根据上述SPI主机接口的设计方案,可采用Altera公司的Quartus II 8.1软件对其进行Verilog编程,并在Modelsim SE 6.5软件中进行时序仿真。SPI接口写操作和写操作时序仿真图如图6所示。可以看出,当Write_En为高电平时,将1 b读/写位、1 b保留位、6 b地址和8 b数据送入SPI主机串行发送缓冲器中。或者当Read_En为高电平时,将1 b读/写位、1 b保留位和6 b地址分别送入SPI主机串行发送缓冲器的高8位和低8位中。当下一个FPGA_CLK时钟的上升沿到来时,将SPI主机串行发送缓冲器的内容送入SPI主机16 b移位寄存器中,接着在FPGA_ CLK时钟的控制下,进入正常的SPI接口写操作或读操作时序过程。当CS为高电平时,产生SPI串行通信结束提示信号SPI_Done_Sig,并将从MISO接收的数据送入SPI串行接收缓冲器。

f.jpg


从以上仿真结果可以看出,本设计可以满足SPI总线协议的设计要求,且该SPI模块功能是可以正常工作的。在Quartus II 8.1中完成该模块的综合并下载到FPGA开发板上进行验证。结果表明,本设计可以实现FPGA芯片和从设备间的同步串行通信。

4 结语
本文用Verilog HDL语言以有限状态机的形式设计了一种符合SPI总线规范的主机模块,并在仿真软件Modelsim SE 6.5中进行了仿真,得到的仿真波形符合设计要求。同时,通过在Quartus II 8.1中进行综合并下载到FPGA芯片中实现了SPI接口功能,也验证了设计的正确性。该接口可实现SPI主机和带指定地址控制寄存器的SPI从机间的同步串行通信,具有一定的实用价值。

fpga相关文章:fpga是什么



上一页 1 2 下一页

关键词: FPGA SPI 寄存器 寻址

评论


相关推荐

技术专区

关闭