基于fpga的spi控制器设计(附件)【字数:10698】
摘 要随着专用集成电路(ASIC)设计技术的进步以及超大规模集成电路(VLSI)工艺技术的飞速发展,以及其价格的日益降低,采用FPGA编程的硬件电路来实现诸如SPI接口也切实可行,相对软件实现具有更好的优点。SPI接口是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。SPI是Motorola公司推出的一种同步串行通讯方式,一种三线同步总线,是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口。FPGA是一种可以由用户自定义配置的高密度专业集成电路,具有更高的集成度和更强大的逻辑实现能力。基于FPGA技术研制一个SPI通信接口具有现实的意义。本系统要求做一个SPI模块来设计简化的SPI接口。
目 录
第一章 绪论 1
1.1课题研究背景 1
1.2 SPI的研究目的及意义 2
1.2.1研究目的 2
1.2.2研究意义 2
第二章 SPI原理分析 3
2.1 SPI介绍 3
2.2 SPI模式 4
2.2.1 SPI工作模式 4
2.2.2 SPI传输模式 4
2.3 SPI协议 5
2.4本章小结 6
第三章 方案论证 8
3.1设计方案 8
3.1.1在51系列单片机系统中实现 8
3.1.2用可编程逻辑器件设计SPI 8
3.2本章小结 9
第四章 SPI的电路设计 10
4.1 SPI设计系统的功能 10
4.2 SPI各部分具体实现 10
4.2.1 SPI系统中所用的寄存器 10
4.2.2 SPI速率控制 12
4.2.3 SPI控制状态机 12
4.2.4 SPI程序设计流程图 13
4.2.5 SPI设计程序 13
4.3 开发板上调试验证分析 14
4.4本章小结 18
结束语 *好棒文|www.hbsrm.com +Q: ¥351916072¥
20
致 谢 21
参考文献 22
附录1 23
附录2 27
第一章 绪论
1.1课题研究背景
数据传输有串行传输和并行传输两种方法。并行传输以其高速度占领了数据传输领域很长一段时间,采用并行传输的集成电路、外围设备可谓不计其数,从CPU、RAM/ROM到打印机。
从原理上讲,串行传输是按位传输方式,只利用一条信号线进行传输,例如:要传送一个字节(8位)数据,是按照该字节中从最高位逐位传输,直至最低位。
而并行传输是一次将所有一字节中8位信号一并传送出去。自然最少需要8根信号线。
如果按每次传送的数据流量来看,并行传输要远快于串行传输,在电脑发展初期,由于数据传输速率不是很高,并行传输还是很快的。
但并行传输也有它的缺点:
(1)干扰问题。
其根本原因是由于传输速率太快,一般达到100M以上,信号线上传递的频率将超过100MHz,想想看,调频收音机的频率也不过88~108MHz,也就是说,若用并行传输的话,是8根天线放在一起来传输信号,易发生干扰。但如果加强屏蔽,减小信号线间的耦合电容,是可以继续增大传输速率的,不过这将变得不现实,因为这必然导致信号线将耗用更多金属,截面积更大。
(2)并行传输速率提升困难的最主要原因是同步问题
并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格同时到达接受端,速率小时,由于每一字节在信号线上的持续时间较长,这种到达时间上的不同步并不严重,随着传输速率的增加,与8位信号到达时间的差异相比,每一字节的持续时间显得越来越短,最终导致前一字节的某几位与后一字节的几位同时到达接受端,这就造成了传输失败,而且随着信号线的加长这种现象还会越发严重,直至无法使用。
串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高,当前传输速率已经达到1Gb/s(1000M)以上,而且还在提高,而并行传输在100Mb/s左右就停滞不前了,可以预见,串行传输将会比并行传输越来越快。
为此,串行传输已经成为当今外设接口的主流传输方式,为此,摩托罗拉公司开发出了同步外设接口(SPI),并随着时间不断改进,由于其占用线的资源少,且稳定可靠,该总线大量用在与EEPROM、ADC、FLASH和显示驱动器之类的慢速外设器件通信,现在很多单片机等都有SPI模块来连接外围设备,从而使主机与外设传输数据更加方便。
1.2 SPI研究目的及意义
1.2.1 研究目的
SPI是一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。当然,串行通信还有其他的接口方式,SPI接口和UART相比,多了一条同步时钟线,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。这就凸现SPI的好处。为此,研究SPI接口,可以更容易了解并外围器件传输过程,并对其已定义的进行改进,并使之更加可靠,功能强化。
SPI接口的扩展有硬件和软件两种方法,软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。这使得与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联。
1.2.2 研究意义
当前,基于主从处理器结构的系统架构已经成为一种主流(如 DSP+FPGA,MCU+FPGA等),FPGA是在ASIC的基础发展出来的,它克服了专用 ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前,FPGA的容量已经跨过了百万门级,使得 FPGA成为解决系统级设计的重要选择方案之一。在这种架构下,应用FPGA来构建SPI通信接口是切实可行的。并且FPGA是可编程并可重复擦写的,从而具有更大的灵活性,在协议不标准的情况下,可根据外围设备的不同而灵活的改动SPI设计,使设计周期大大降低,并与外围设备连接更加方便。
目 录
第一章 绪论 1
1.1课题研究背景 1
1.2 SPI的研究目的及意义 2
1.2.1研究目的 2
1.2.2研究意义 2
第二章 SPI原理分析 3
2.1 SPI介绍 3
2.2 SPI模式 4
2.2.1 SPI工作模式 4
2.2.2 SPI传输模式 4
2.3 SPI协议 5
2.4本章小结 6
第三章 方案论证 8
3.1设计方案 8
3.1.1在51系列单片机系统中实现 8
3.1.2用可编程逻辑器件设计SPI 8
3.2本章小结 9
第四章 SPI的电路设计 10
4.1 SPI设计系统的功能 10
4.2 SPI各部分具体实现 10
4.2.1 SPI系统中所用的寄存器 10
4.2.2 SPI速率控制 12
4.2.3 SPI控制状态机 12
4.2.4 SPI程序设计流程图 13
4.2.5 SPI设计程序 13
4.3 开发板上调试验证分析 14
4.4本章小结 18
结束语 *好棒文|www.hbsrm.com +Q: ¥351916072¥
20
致 谢 21
参考文献 22
附录1 23
附录2 27
第一章 绪论
1.1课题研究背景
数据传输有串行传输和并行传输两种方法。并行传输以其高速度占领了数据传输领域很长一段时间,采用并行传输的集成电路、外围设备可谓不计其数,从CPU、RAM/ROM到打印机。
从原理上讲,串行传输是按位传输方式,只利用一条信号线进行传输,例如:要传送一个字节(8位)数据,是按照该字节中从最高位逐位传输,直至最低位。
而并行传输是一次将所有一字节中8位信号一并传送出去。自然最少需要8根信号线。
如果按每次传送的数据流量来看,并行传输要远快于串行传输,在电脑发展初期,由于数据传输速率不是很高,并行传输还是很快的。
但并行传输也有它的缺点:
(1)干扰问题。
其根本原因是由于传输速率太快,一般达到100M以上,信号线上传递的频率将超过100MHz,想想看,调频收音机的频率也不过88~108MHz,也就是说,若用并行传输的话,是8根天线放在一起来传输信号,易发生干扰。但如果加强屏蔽,减小信号线间的耦合电容,是可以继续增大传输速率的,不过这将变得不现实,因为这必然导致信号线将耗用更多金属,截面积更大。
(2)并行传输速率提升困难的最主要原因是同步问题
并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格同时到达接受端,速率小时,由于每一字节在信号线上的持续时间较长,这种到达时间上的不同步并不严重,随着传输速率的增加,与8位信号到达时间的差异相比,每一字节的持续时间显得越来越短,最终导致前一字节的某几位与后一字节的几位同时到达接受端,这就造成了传输失败,而且随着信号线的加长这种现象还会越发严重,直至无法使用。
串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高,当前传输速率已经达到1Gb/s(1000M)以上,而且还在提高,而并行传输在100Mb/s左右就停滞不前了,可以预见,串行传输将会比并行传输越来越快。
为此,串行传输已经成为当今外设接口的主流传输方式,为此,摩托罗拉公司开发出了同步外设接口(SPI),并随着时间不断改进,由于其占用线的资源少,且稳定可靠,该总线大量用在与EEPROM、ADC、FLASH和显示驱动器之类的慢速外设器件通信,现在很多单片机等都有SPI模块来连接外围设备,从而使主机与外设传输数据更加方便。
1.2 SPI研究目的及意义
1.2.1 研究目的
SPI是一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。当然,串行通信还有其他的接口方式,SPI接口和UART相比,多了一条同步时钟线,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。这就凸现SPI的好处。为此,研究SPI接口,可以更容易了解并外围器件传输过程,并对其已定义的进行改进,并使之更加可靠,功能强化。
SPI接口的扩展有硬件和软件两种方法,软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。这使得与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联。
1.2.2 研究意义
当前,基于主从处理器结构的系统架构已经成为一种主流(如 DSP+FPGA,MCU+FPGA等),FPGA是在ASIC的基础发展出来的,它克服了专用 ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前,FPGA的容量已经跨过了百万门级,使得 FPGA成为解决系统级设计的重要选择方案之一。在这种架构下,应用FPGA来构建SPI通信接口是切实可行的。并且FPGA是可编程并可重复擦写的,从而具有更大的灵活性,在协议不标准的情况下,可根据外围设备的不同而灵活的改动SPI设计,使设计周期大大降低,并与外围设备连接更加方便。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/59.html