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总线设计文档

SPI接口 SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多 个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。 SPI 接口由sdi(串行数据输入),sdo(串行数据输出),sclk(串行移位时钟),cs (从使能信号)四种信号构成,cs决定了唯一的与主设备通信的从设备,如没有cs信号, 则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。 通讯时,数据由sdo 输出,sdi输入,数据在时钟的上升或下降沿由sdo输出,在紧接着的下降或上升沿由sdi读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。 通过移位寄存器进行串行数据输入输出,从而实现数据交换。 整体分为三个模块:控制寄存器(SPI_CTRL)、内部时钟(SPI_CLK)、数据移位寄存器(SPI_BUF)。 注意:spi接口没有应答机结构,所以不能对数据的对错、丢失与否进行判断。 一、设计主要功能: 完成8bitCPU接口与SPI接口之间的通信; 通过CPU接口对设计进行配置; SPI接口具有主从模式、多波特率机制; SPI接口工作模式、方式可控; SPI全双工通信; SPI接口之间实现1bit输入、输出; 二、设计端口列表 表1 总体电路设计接口 NAME I/O DESCRIPTION clk in 系统时钟 data[7:0] inout 8bit双向数据总线 addr[11:0] in 12bit地址总线 wr in 写信号,高电平有效 rd in 读信号,低电平有效 int out 中断信号,高电平有效 sclk inout spi接口时钟,双向,主模式输出,从模式输入 sdi in 串行数据输入 sdo out 串行数据输出 reset In 复位信号,低电平有效,全局有效 三、设计寄存器列表 表2 设计的寄存器列表 NAME addr DESCRIPTION SCTRL_W[7:0] 0x044h 写入控制字,包括模式选择、时钟配置、中断信号、使能 SBUF_W[7:0] 0x045h CPU提交SPI发送的数据 SCTRL_R[7:0] 0x044h 供CPU查看控制字设置 SBUF_R[7:0] 0x045h SPI接收并提交CPU的数据 四、设计总体结构框图 图1 设计总体结构图 五、模块设计 1.cpu接口模块CPU_IF 主要完成CPU接口的功能,接收配置信息;读取工作电路的状态信息;将发送数据写入SPI接口发送寄存器;读取SPI接收到的数据;控制电路的工作。 主要功能如下: 处理CPU接口双向数据总线; 地址译码; CPU写操作时接收配置与控制信息,存入相应寄存器; CPU写操作时锁存发送数据至发送寄存器; CPU读操作时根据地址将配置/状态信息或者来自SPI接收的数据送到CPU数据总线 模块电路接口如下表。 表3 cpu接口模块CPU_IF接口 NAME I/O DESCRIPTION addr[11:0] in 12bit地址总线 data[7:0] inout 8bit双向数据总线 wr in 写信号,高电平有效 rd in 读信号,低电平有效 SPIPND out 开始发送数据,高电平有效 PND in 接收数据完成,低电平有效 SPIMS out 主/从模式选择,0为主,1为从 SPIFRQ[1:0] out 主时钟分频选择,00:64分频;01:61分频;10:4分频;11:2分频 SPIEDGE out 时钟边沿选择,0上升沿;1下降沿 SPIIDST out 空闲时时钟状态,0:高电平;1:低电平 SPIIE out 中断使能,高电平有效 SPIEN out SPI使能,高电平有效 SBUF_W[7:0] out CPU提交SPI发送的数据 SBUF_R[7:0] in SPI接收并提交CPU的数据 reset in 复位信号,低电平有效 模块电路如下图所示。 图2 cpu接口模块CPU_IF结构图 2.时钟模块CLK_GEN 主要完成SPI接口时钟产生的功能,根据配置信息产生不同的主时钟分频、不同的有效沿和空闲电平以及时钟方向。 主要功能如下: 根据配置寄存器SPIFRQ[1:0]的值对主时钟进行不同的分频:00:64分频;01:16分频;10:4分频;11:2分频; 根据配置寄存器SPIMS配置时钟源:外部输入或者来自本地产生; 根据配置寄存器SPIEDGE选择相应的时钟沿; 根据配置寄存器SPIIDST设置空闲时钟状态; 根据配置寄存器SPIEN的值决定是否关闭时钟; 中断信号INT为高电平时,将时钟置为空闲状态; 模块电路接口如下表。 表3时钟模块SPI

文档评论(0)

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

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

1亿VIP精品文档

相关文档