基于FPGA嵌入系统设计接口设计毕业设计文档格式.docx
《基于FPGA嵌入系统设计接口设计毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA嵌入系统设计接口设计毕业设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
![基于FPGA嵌入系统设计接口设计毕业设计文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/10/a51addd0-b5a7-41e4-9550-a97cee504884/a51addd0-b5a7-41e4-9550-a97cee5048841.gif)
要传送一个字节(8位)数据,是按照该字节中从最高位逐位传输,直至最低位。
而并行传输是一次将所有一字节中8位信号一并传送出去。
自然最少需要8根信号线。
如果按每次传送的数据流量来看,并行传输要远快于串口,在电脑发展初期,由于数据传输速率不是很高,并行传输还是很快的。
但并行传输也有它的缺点:
(1)干扰问题
其根本原因是由于传输速率太快,一般达到100M以上,信号线上传递的频率将超过100MHz,想想看,调频收音机的频率也不过88~108MHz,也就是说,若用并行传输的话,是8根天线放在一起来传输信号,易发生干扰。
但如果加强屏蔽,减小信号线间的耦合电容,是可以继续增大传输速率的,不过这将变得不现实,因为这必然导致信号线将耗用更多金属,截面积更大。
但这并不是不能解决的问题。
(2)并行传输速率提升困难的最主要原因是同步问题
并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格同时到达接受端,速率小时,由于每一字节在信号线上的持续时间较长,这种到达时间上的不同步并不严重,随着传输速率的增加,与8位信号到达时间的差异相比,每一字节的持续时间显得越来越短,最终导致前一字节的某几位与后一字节的几位同时到达接受端,这就造成了传输失败,而且随着信号线的加长这种现象还会越发严重,直至无法使用——这是并口传输的致命缺点。
串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高,当前传输速率已经达到1Gb/s(1000M)以上,而且还在提高,而并行传输在100Mb/s左右就停滞不前了,可以预见,串行传输将会比并行传输越来越快。
为此,串行传输已经成为当今外设接口的主流传输方式,为此,摩托罗拉公司开发出了同步外设接口(SPI),并随着时间不断改进,由于其占用线的资源少,且稳定可靠,
该总线大量用在与EEPROM、ADC、FLASH和显示驱动器之类的慢速外设器件通信,现在很多单片机等都有SPI模块来连接外围设备,从而使主机与外设传输数据更加方便。
SPI,是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,在现代通信接口技术中得到了广泛应用,因此本课题研究有一定的市场价值和科研价值。
1.2SPI研究目的及意义
SPI是一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在E2PROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。
当然,串口通信还有其他的接口方式,SPI接口和UART相比,多了一条同步时钟线,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。
一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。
这就凸现SPI的好处。
为此,研究SPI接口,可以更容易了解并外围器件传输过程,并对其已定义的进行改进,并使之更加可靠,功能强化。
SPI接口的扩展有硬件和软件两种方法,软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。
这使得与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联(需要用软件进行必要的额修改)。
当前,基于主从处理器结构的系统架构已经成为一种主流(如DSP+FPGA,MCU+FPGA等),FPGA是在ASIC的基础发展出来的,它克服了专用ASIC不够灵活的缺点。
与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。
目前,FPGA的容量已经跨过了百万门级,使得FPGA成为解决系统级设计的重要选择方案之一。
在这种架构下,应用FPGA来构建SPI通信接口是切实可行的。
并FPGA是可编程并可重复擦写的,从而具有更大的灵活性,在协议不标准的情况下,可根据外围设备的不同而灵活的改动SPI设计,使设计周期大大降低,并与外围设备连接更加方便。
1.3本章小结
本章主要介绍了SPI的背景,及研究的目的与意义,进而可以知道SPI提出的目的以及其现阶段的发展状况,从而可以对SPI的这些理解达到举一反三的目的,体现了本课题研究的意义与价值。
2SPI原理分析
SPI原理主要介绍SPI的基本机构,工作模式,传输模式以及SPI的典型协议,通过本章的介绍,对于SPI的要点介绍,以及其工作过程有一个通透了解,从而可以能设计达到原理目的的功能设计以及程序的设计。
2.1SPI介绍
SPI接口的全称是“SerialPeripheralInterface”,意为串行外围接口。
SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。
SPI有三个寄存器,分别为:
控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。
数据外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。
SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:
串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。
也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
(1)MOSI–主设备数据输出,从设备数据输入
(2)MISO–主设备数据输入,从设备数据输出
(3)SCLK–时钟信号,由主设备产生
(4)CS–从设备使能信号,由主设备控制
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
在多个从器件的系统中,每个从器件需要独立的是能信号,硬件上比I2C系统要稍微复杂一些。
SPI接口在内部硬件实际上是两个简单的位移寄存器,传输的数据为8位,在主器件产生的从器件使能信号和位移脉冲下,按位传输,高位在前,低位在后。
如下图2.1.1和图2.1.2所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。
这就允许在同一总线上连接多个SPI设备成为可能。
图2.1.1通讯时序图
图2.1.2多个从器件硬件连接示意图
接下来就负责通讯的3根线了。
通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。
这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。
数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。
完成一位数据传输,输入也使用同样原理。
这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。
要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。
同样,在一个基于SPI的设备中,至少有一个主控设备。
这样传输的特点:
这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。
也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。
SPI还是一个数据交换协议:
因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。
不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
2.2SPI工作模式
SPI由工作方式的不同,可分为两种模式:
主模式和从模式
(1)主模式
将Master的数据传送给Slave,8位数据传送,传送完毕,申请中断,如图2.2.1
图2.2.1SPI工作主模式
(2)从模式
此时,从控制器从SIMO引脚接收串行数据并把数据移入自身移位寄存器的最低位或最高位。
要注意的是,其是在主控制器输出时钟SCLK的控制下,在SCLK的上升沿或者下降沿读出一个数据输出给主设备。
其传播模型如图2.2.2所示:
图2.2.2SPI工作从模式
须注意的是,主设备可以再在任意时刻起动数据发送,因为它控制着SCLK信号,而在从模式下,从控制器要发送数据,必须要用先设置片选信号以确保使能端CS输入允许。
2.3SPI传输模式
SPI的工作模式分为主模式和从模式,二者都需要在SCK的作用下才能工作;
但主模式不需要CS信号,而从模式必须在CS信号有效的情况下才能完成。
不论是在主模式下还是在从模式下,都要在时钟极性(CPOL)和时钟相位(CPHA)的配合下才能有效地完成一次数据传输。
其中,时钟极性表示时钟信号在空闲时的电平;
时钟相位决定数据是在SCK的上升沿采样还是下降沿采样。
根据时钟极性和时钟相位的不同组合,可以得到SPI总线的4种工作模式,入图2.3.1所示:
图2.3.1SPI四种传输模式
(1)SPI0模式下的CPOL为0,SCK的空闲电平为低;
CPHA为0,数据在串行同步时钟的第一个跳变沿(由于CPOL为低,因此第1个跳变沿只能为上升沿)时数据被采样。
(2)SPI1模式下的CPOL也为0,SCK的空闲电平为低;
但是CPHA为1,数据在串行同步时钟的第二个跳变沿(由于CPOL为低,因此第2个跳变沿只能为下降沿)时数据被采样。
(3)SPI2模式下的CPOL为1,SCK的空闲电平为高;
CPHA为0,数据在串行同步时钟的第1个跳变沿(由于CPOL为高,因此第1个跳变沿只能为下降沿)时数据被采样。
(4)SPI3模式下的CPOL为1,SCK的空闲电平为高;
CPHA为1,数据在串行同步时钟的第2个跳变沿(由于CPOL为高,因此第1个跳变沿只能为上升沿)时数据被采样。
在上述4种模式中,使用的最为广泛的是SPI0和SPI3方式。
由于每一种模式都与其他三种不兼容,因此为了完成主、从设备间的通讯,主、从设备的CPOL和CPHA必须有相同的设置。
读者需要注意的是:
如果主设备/从设备在SCK上升沿发送数据,则从设备/主设备最好在下降沿采样数据;
如果主设备/从设备在SCK下降沿发送数据,则从设备/主设备最好在SCK上升沿采样数据。
2.4SPI协议
本次设计基于一种使用较为普遍的协议来进行设计,通过简单协议来理解并设计SPI接口功能。
SPI协议是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲SCK的控制下,两个双向移位寄存器SPI数据寄存器数据进行数据交换。
我们假设主机的8位寄存器SPIDATA1内的数据是10101010,而从机的8位寄存器SPIDATA2内的数据是01010101,在上升沿的时候发送数据,在下降沿的时候接收数据,最高位的数据先发送,主机和从机之间全双工通信,也就是说两个SPI接口同时发送和接收数据,如图2.4.1所示。
从图中我们也可以看到,SPIDATA移位寄存器总是将最高位的数据移出,接着将剩余的数据分别左移一位,然后将接收到得数据移入其最低位。
图2.4.1SPI的环形总线结构
如图所示,当第一个上升沿来的时候,SPIDATA1将最高位1移除,并将所有数据左移1位,这时MOSI线为高电平,而SPIDATA2将最高位0移出,并将所有数据左移1位,这样MISO线为低电平。
然后当下降沿到来的时候,SPIDATA1将锁存MISO线上的电平,并将其移入其最低位,同样的,SPIDATA2将锁存MOSI线上的电平,并将其移入最低位。
经过8个脉冲后,两个移位寄存器就实现了数据的交换,也就是完成了一次SPI的时序。
图2.4.2数据传输示例
2.5本章小结
本章通过对SPI的原理分析,介绍其首发原理及基本结构,再介绍其工作模式,再介绍其传输模式和协议距离。
通过以上分析,便可以知道本次设计的SPI所必须具备的功能有哪些,哪些是需要注意的功能。
从而可以确定本次设计的工作模式,以及设计所的传输模式,并且通过介绍的协议举例来通过此协议来设计SPI系统结构。
通过本章的分析,本次设计确定为主模式,及主控模式的设计,并且四种传输模式均需要实现,并且遵循SPI协议,按照此协议来设计SPI结构。
以此,便可以进行SPI结构设计了。
3方案论证
随着技术的不断进步,FPGA的发展将呈现以下几个方面的趋势;
(1)向高密度、大规模的方向发展;
(2)向系统内科重构的方向发展;
(3)向低电压、低功耗的方向发展;
(4)向高速可预测延时器件的方向发展;
(5)向混合可编程技术方向发展;
结合对FPGA接口的学习与了解,本设计对基于嵌入式FPGA的RS232通信接口和SPI通信接口进行了比较论证。
3.1基于FPGA的RS232通信接口系统
RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
随着设备的不断改进,出现了代替DB25的DB9接口,现在都把RS232接口叫做DB9。
RS232接口是现在主流的串行通信接口之一。
RS232是一种异步串行通信接口,RS232只是一个物理层的标准,只规定了信号物理特性,链路层的协议时UART,RS232接口的逻辑设计是指这部分内容。
图3.1.1给出了UART的帧格式。
在线路空闲的时候,主设备将发送“1”;
在通信时,主设备需要先发一个起始位“0”,以表示通信的开始;
然后开始发送有效数据;
之后再传送一比特的奇偶校验值;
最后发送停止位“1”,以表示当前通信的完成。
其中,数据可以事先约定为5位、6位、7位或者8位;
奇偶校验位根据事先约定由对数据位按位进行异或或者同或而得到,它不是必须的。
图3.1.1UART的帧格式
另外,在RS232中,还有一个波特率的概念。
所谓波特率,指单位时间内传送二进制数据的位数,以位/秒为单位,是衡量串行数据传输快慢的重要指标。
如果某串口的波特率为115200,指的是串口一115200bit/s的速率在传输数据。
基于FPGA的RS232功能的UART的设计与实现
FPGA的设计流程如图3.1.2所示,它包括设计输入、设计实现和设计验证3个相互有关的步骤。
图3.1.2FPGA的设计流程
由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;
因此在“南方的老树51CPLD开发板”中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
3.2基于FPGA的SPI通信接口系统
同样的串口连接SPI通信接口,用可编程逻辑的方法设计硬件来用简单的程序来应用外围硬件来实现SPI传输。
通过对SPI的结构的了解可以设计一个系统框架,按照框架完成输入输出的功能。
一般一个典型的SPI系统如图3.2.1所示,其主要包括MPU和一个或几个外围器件,SPI一端与MPU接口相连,另一端便是负责传输的四条线了。
当此微处理器处于主机模式时,就能与从机进行通信,当此微处理器处于从机模式时,就能与另一主机通信。
总之,一个系统中只有一个主机,否则无法工作。
用FPGA设计的系统框架如下图3.2.1所示:
图3.2.1介于SPI的FPGA设计系统框架
SPI接口的设计在实际应用中,许多单片机已经采用了SPI接口,可见SPI接口应用很广泛,只要高级点的单片机,都自带SPI接口,并且如DSP等也集成了SPI接口,可见大多芯片都趋向于用硬件实现而非软件实现。
这是因为软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。
在可编程逻辑器件不断地完善改善完美并且功能强大且日益便宜,用硬件实现已经成为可能,在大型系统用硬件实现更加稳定。
同时可编程逻辑也有自身的优点。
在外围器件有改变时,由于可编程逻辑可以重复擦鞋的优点,从而在外围器件有些许改变之时,可以同时稍微改变可编程的程序,因而可编程又有灵活性大的特点。
因此,本次设计便选用了SPI通信接口完成。
3.3本章小结
本章比较了在基于FPGA嵌入式系统的RS232接口设计与SPI设计,通过对比分析,可以知道RS232接口设计与SPI接口设计之间的区别,通过比较可以得出每种设计的优劣。
软件设计简单,但有其缺点,硬件设计相比复杂些,但是其灵活性强,可以让微处理器省出资源。
4SPI方案设计
电路设计主要是对系统设计的功能,各部分功能具体实现方案比如管脚说明,寄存器的说明即设计,以及状态机的动态描述,由各个功能的说明便可设