基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx

上传人:b****5 文档编号:21775863 上传时间:2023-02-01 格式:DOCX 页数:35 大小:259.74KB
下载 相关 举报
基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx_第1页
第1页 / 共35页
基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx_第2页
第2页 / 共35页
基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx_第3页
第3页 / 共35页
基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx_第4页
第4页 / 共35页
基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx

《基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。

基于FPGA的SPI串行外围接口接口设计毕业设计Word文档格式.docx

[3]顾卫刚.串行外围接口.陕西:

西安交通大学,2004.

[4]徐洋等.基于VerilogHDL的FPGA设计与工程应用.人民邮电出版社.2009

[5]K.Babulu,K.SoundaraRajan.FPGAIMPLEMENTATIONOFSPITRANSCEIVERMACROCELLINTERFACEWITHSPISPECIFICATIONS.JNTUColleageoffEngineering,2008.

2、基本内容和技术方案

2.1、研究的基本内容

(1)熟悉通信及通信接口相关方面的知识,学习并掌握SPI通信接口的结构,协议及原理。

(2)熟悉VERILOG语言及其开发环境ISE,使用该语言进行数字电路(FPGA)设计,慢慢深入VERILOG语言。

(3)设计流程图,状态图,并一步步用Verilog语言实现仿真验证I接口串口通信。

(4)采用实验板或自行设计电路进行调试,并采用相关仪器验证。

(5)系统整体调试、优化,或就某一部分进行优化并做深入的研究与扩展。

2.2、技术方案

(1)硬件设计模型

硬件实现主要是基于PLD的CPLD,FPGA中实现。

如FPGA是在ASIC的基础发展出来的,它克服了专用ASIC不够灵活的缺点。

下图模式一种主从模式:

 

SPI接口作为主机与从机的通讯接口,主要完成以下工作:

①SPI将从主机接收到的8位的并行数据,转换为从机所能接收的串行数据,并将该数据根据SPI协议送给从机。

②主机产生从机所需的时钟信号SCLK,片选信号CS。

③接收从从机传回的读信号和串行数据,并将其转换为并行数据。

(2)系统实现方案

用FPGA实现SPI串行外围接口是一个比较复杂的系统较大的系统没有科学的设计方法就很难保证不出错,并很难言简意赅的清晰思路完成方案。

此方案采用了状态机来设计,本项目的研究主要采用理论分析、逻辑推理、试验调试等方法。

针对状态机,其主要有以下特点:

1)有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。

2)状态机的结构模式相对简单。

3)状态机容易构成性能良好的同步时序逻辑模块。

4)状态机的VerilogHDL表述丰富多样。

5)在高速运算和控制方面,状态机更有其巨大的优势。

6)就可靠性而言,状态机的优势也是十分明显的。

基于以上特点,用状态机的方法描述SPI通信过程简单方便并可靠,基于状态机,SPI通信接口的状态大致转移图如下所示:

首先是SPI接口在等待状态,当检测到发送指令时触发信号进入发送状态,在系统指令下检测到写信号时进入发送数据状态,然后一位位发送数据,当检测到读信号时,进入读状态,当检测到发送接收都完毕时,进入发送接收完毕状态,再转向等待状态。

(3)关键技术的实现

①时序问题

将总线控制信号封装成指令,使用者只需通过发送指令的方式操作,避免了复杂的时序逻辑设计问题。

②全双工传输方式的设计

如果全部使用状态机的方式完成设计,则可发现其很难完成全双工即收发独立模式,则在此过程中可以采用流水线设计方式,使之收与发之间独立进行,便可完成全双工传输方式的设计。

3、进度安排

第1-2周:

查阅相关SPI文献资料,对其相关研究内容进行大体了解,并明确其原理和基本实现方案,完成开题报告,熟悉ISE操作和在线调试,了解VerilogHDL语言的基本语法。

第3-4周:

详细理解和研究SPI的原理,对VerilogHDL语言有一定的理解。

第5-12周:

对于VerilogHDL语言有深入理解,并具备一定的编程能力,能设计基本单元器件,并能读懂大型程序,熟练状态机的设计方法,对SPI有着工作过程有着细致的了解

第13-16周:

完成并修改毕业论文。

第17周:

准备论文答辩。

4、指导教师意见

指导教师签名:

年月日

摘要

随着专用集成电路(ASIC)设计技术的进步以及超大规模集成电路(VLSI)工艺技术的飞速发展,以及其价格的日益降低,采用FPGA编程的硬件电路来实现诸如SPI接口也日益切实可行,相对软件实现具有更好的优点。

SPI接口是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。

由于SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联(需要用软件进行必要的修改)。

本文基于一种使用较为普遍的协议来进行设计,并参照Motorola公司的MC68HC11A8单片机中的SPI模块定义来设计的简化的SPI接口,用Verilog语言进行编写设计,并在ISE软件上进行设计仿真,并在基于Xlinx公司的Spartan-3E芯片的Digilent公司出品的Nexys2开发板上用在线逻辑分析仪chipscope进行板上调试验证观察结果,并完成实现功能,并具有一些独创性的设计。

关键词:

FPGAVerilogSPI协议chipscopeISE

Abstract

WiththeadvancesindesigntechnologyofASICandVLSI’srapiddevelopment,anditspriceislower,thehardwarecircuitbasedonFPGAprogramminginterfacetoachievesuchasSPIisfeasible,anditrealizesbetterthansoftware.SPIinterfaceisacommonstandardinterface,duetoitssimpleandconvenientuseandsavesystemresource,alotofchipssupportthisinterface.SPIinterfaceisextensivelyappliedinEEPROM,FLASH,real-timeclock,ADconverter,anddigitalsignalprocessoranddigitalsignalsdecoder,etc.

DuetotheinterfaceisafactSPIstandard,andithasnostandardprotocol,mostmanufacturersdesigntheSPIrefertotheinterfacedefinitionofMotorola'

sreference.Becauseofnodefiniteagreement,thereisalotofdifferentversionsoftheproductsinthetechnologyexistsonSPIinterface,easycauseofambiguity,someevencannotinterconnect(needtodosomemodification).Basedonacommonprotocolsfordesign,andthecompanyMC68HC11A8microcontrollerofMotorolamoduledefinitiontodesigntheSPIsimplifiedSPIinterface,withVeriloglanguagewriting,andinthedesignofthesoftwaredesignISEsimulation,andbasedontheXlinxcompanyDigilentchipSpartan3E-theNexys2developmentboardwithonlinelogicanalyzerschipscopeonboard,anddebuggingvalidationobservations,andcompletefunctionalityhassomedistinctivedesign.

Keywords:

FPGAVerilogSPIprotocolchipscopeISE

1绪论

在研究SPI串行外围接口之前,我们首先要对其背景及其研究的目的要有所了解。

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.2SPI研究目的及意义

SPI是一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。

当然,串口通信还有其他的接口方式,SPI接口和UART相比,多了一条同步时钟线,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。

为此,研究SPI接口,可以更容易了解并外围器件传输过程,并对其已定义的进行改进,并使之更加可靠,功能强化。

SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联(需要用软件进行必要的额修改)。

并FPGA是可编程并可重复擦写的,从而具有更大的灵活性,在协议不标准的情况下,可根据外围设备的不同而灵活的改动SPI设计,使设计周期大大降低,并与外围设备连接更加方便。

1.3本章小结

本章主要介绍了SPI的背景,及研究的目的与意义,进而可以知道SPI提出的目的以及其现阶段的发展状况,从而可以对SPI的这些理解达到举一反三的目的。

2SPI原理分析

SPI原理主要介绍SPI的基本机构,工作模式,传输模式以及SPI的典型协议,通过此院里的介绍,对于SPI的要点介绍,以及其工作过程有一个通透了解,从而可以能设计达到原理目的的功能设计以及程序的设计。

2.1SPI介绍

 SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。

外围设置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–从设备使能信号,由主设备控制

  其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。

这就允许在同一总线上连接多个SPI设备成为可能。

  接下来就负责通讯的3根线了。

通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。

这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。

数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。

完成一位数据传输,输入也使用同样原理。

这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

  要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。

同样,在一个基于SPI的设备中,至少有一个主控设备。

这样传输的特点:

这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。

也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。

SPI还是一个数据交换协议:

因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。

不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

  在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。

在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

  最后,SPI接口的一个缺点:

没有指定的流控制,没有应答机制确认是否接收到数据。

2.2SPI工作模式

SPI由工作方式的不同,可分为两种模式:

主模式和从模式

(1)主模式

将Master的数据传送给Slave,8位数据传送,传送完毕,申请中断,如图2.2.1

图2.2.1SPI工作主模式

(2)从模式

此时,从控制器从SIMO引脚接收串行数据并把数据移入自身移位寄存器的最低位或最高位。

要注意的是,其是在主控制器输出时钟SCLK的控制下,在SCLK的上升沿或者下降沿读出一个数据输出给主设备。

其传播模型如下图所示:

图2.2.2SPI工作从模式

须注意的是,主设备可以再在任意时刻起动数据发送,因为它控制着SCLK信号,而在从模式下,从控制器要发送数据,必须要用先设置片选信号以确保使能端CS输入允许。

2.3SPI传输模式

SPI的工作模式分为主模式和从模式,二者都需要在SCK的作用下才能工作;

但主模式不需要CS信号,而从模式必须在CS信号有效的情况下才能完成。

不论是在主模式下还是在从模式下,都要在时钟极性(CPOL)和时钟相位(CPHA)的配合下才能有效地完成一次数据传输。

其中,时钟极性表示时钟信号在空闲时的电平;

时钟相位决定数据是在SCK的上升沿采样还是下降沿采样。

根据时钟极性和时钟相位的不同组合,可以得到SPI总线的4种工作模式,入图所示:

图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接口同时发送和接收数据,如图所示。

从图中我们也可以看到,SPIDATA移位寄存器总是将最高位的数据移出,接着将剩余的数据分别左移一位,然后将接收到得数据移入其最低位。

图2.4.1SPI的环形总线结构

如图所示,当第一个上升沿来的时候,SPIDATA1将最高位1移除,并将所有数据左移1位,这时MOSI线为高电平,而SPIDATA2将最高位0移出,并将所有数据左移1位,这样MISO线为低电平。

然后当下降沿到来的时候,SPIDATA1将锁存MISO线上的电平,并将其移入其最低位,同样的,SPIDATA2将锁存MOSI线上的电平,并将其移入最低位。

经过8个脉冲后,两个移位寄存器就实现了数据的交换,也就是完成了一次S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1