spi接口设计,fpga实现

spi接口设计,fpga实现

ID:13476618

大小:39.00 KB

页数:4页

时间:2018-07-22

spi接口设计,fpga实现_第1页
spi接口设计,fpga实现_第2页
spi接口设计,fpga实现_第3页
spi接口设计,fpga实现_第4页
资源描述:

《spi接口设计,fpga实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SPISPI是一种在FPGA和其他芯片之间传输数据的简单有效的接口方式。SPI项目第一部分:什么是SPI第二部分:SPI的简单实现第三部分:应用第一部分:什么是SPISPI是允许一个器件同其他一个或多个器件进行通讯的简单接口。SPI是什么样的?首先让我们来看看两个芯片之间的SPI接口是如何连接的。在两个芯片时间通讯时,SPI需要4条连线。正如你所看到的,他们是SCK、MISO、MOSI以及SSEL。其中一个芯片叫做主控芯片,另一个叫从芯片。SPI基础基本特点:1.同步2.串行3.全双工4.非即插即用5.

2、一主多从更多细节:1.同步时钟有主控芯片产生,每个时钟传输一位数据2.数据在传输前,首先要进行并转串,才能用一条线传输3.两条数据线,一条输入、一条输出4.主从双方有关于SPI传输的先验知识,如比特顺序、数据长度等5.数据传输有主控芯片发起,每次只与一个从芯片通讯SPI是一种同步全双工的通讯接口,每个时钟在两条数据线上各传输一比特数据。简单的传输假设在主从芯片之间进行的是8位长度的,高位数据在前的SPI传输,则单个字节的传输在波形上看起来是这样的。MOSI是主输出线,而MISO则是从输出线。由于SPI是

3、全双工的,所以在时钟沿上两条线同时传输数据。MOSI将数据从主控芯片传输至从芯片,MISO则将从芯片的数据传输到主控芯片。详细的说是这样的:1,首先主控芯片使能相应的SSEL信号,通知相应的从芯片数据传输要开始了;2,主控芯片产生8个SPI时钟周期,并将数据在每个时钟沿发送出去,同时从芯片在也每个时钟沿将数据发送到MISO线上。3,主控芯片撤销SSEL信号,一次SPI传输结束多个从芯片的情况通过扩展SSEL信号,一个主控芯片可以和多个从芯片进行SPI通讯。下图是有三个从芯片的情况:主控芯片有3条SSEL

4、线,每次只使能一条,和其中一个从芯片进行SPI通讯。由于所有芯片的MISO都连接在一起,所以不允许同时有多个从芯片驱动MISO线。SPI有多块SPI可以很轻易的做到几Mbps的传输速率,这就意味着SPI可以用来进行非压缩的音频和和压缩的视频信号传输。相关链接:Wikipedia的SPI接口总线第二部分SPI接口的FPGA简单实现ARM处理器为了检验我们刚学得的关于SPI的知识,我们使用一个带有SPI接口的ARM7板和FPGA板,板间由SPI总线连接。ARM处理器作为主控器,FPGA作为SPI从机。下图为

5、他们之间的连接方式。SPI主控机-C语言程序使用ARM的SPI接口,只需要初始化一些寄存器,然后对SPI接口进行写数和读数操作即可让SPI接口自动完成发送和接收数据。voidmain(void){//初始化SPI接口,因处理器而异SSP0CPSR=0x02;SSP0CR0=0x07;SSP0CR1=0x02;PINSEL1=0x2A8;while(1){//发送两个字节SSP0DR=0x55;SSP0DR=0x54;//等待数据发送完毕while(!(SSP0SR&0x01));//读数intdata1

6、=SSP0DR;intdata2=SSP0DR;//...}}SPI从机-HDL代码再来考虑FPGA端SPI从机的设计。SincetheSPIbusistypicallymuchslowerthantheFPGAoperatingclockspeed,wechoosetoover-sampletheSPIbususingtheFPGAclock.Thatmakestheslavecodeslightlymorecomplicated,buthastheadvantageofhavingtheSPIlog

7、icrunintheFPGAclockdomain,whichwillmakethingseasierafterwards.Firstthemoduledeclaration.moduleSPI_slave(clk,SCK,MOSI,MISO,SSEL,LED);inputclk;inputSCK,SSEL,MOSI;outputMISO;outputLED;Notethatwehave"clk"(theFPGAclock)andanLEDoutput...anicelittledebugtool."c

8、lk"needstobefasterthantheSPIbus.Saxo-Lhasadefaultclockof24MHz,whichworksfinehere.Wesample/synchronizetheSPIsignals(SCK,SSELandMOSI)usingtheFPGAclockandshiftregisters.//syncSCKtotheFPGAclockusinga3-bitsshiftregisterreg[2:0]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。