欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于FPGA的SPI串行外围接口接口设计.doc

    • 资源ID:4137849       资源大小:334KB        全文页数:38页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于FPGA的SPI串行外围接口接口设计.doc

    武汉理工大学本科学生毕业设计(论文)开题报告基于FPGA的SPI串行外围接口接口设计1、目的和意义及发展现状SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间等等。当然,串口通信还有其他的接口方式,SPI接口和UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。这就凸现SPI的好处。SPI接口的扩展有硬件和软件两种方法,软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。这使得与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。当前,基于主从处理器结构的系统架构已经成为一种主流(如 DSP+FPGA,MCU+FPGA等),FPGA是在ASIC的基础发展出来的,它克服了专用 ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前,FPGA的容量已经跨过了百万门级,使得 FPGA成为解决系统级设计的重要选择方案之一。在这种架构下,应用FPGA来构建SPI通信接口是切实可行的。参考文献:1 孙丰军,余春暄. S P I 串行总线接口的V e r i l o g 实现. 北京工业大学 电子信息与控制工程学院 北京 10002.2 刘福奇,刘波. Verilog HDL应用程序. 电子工业出版社,2009.103 顾卫刚. 串行外围接口. 陕西:西安交通大学,2004.4 徐洋等.基于Verilog HDL的FPGA设计与工程应用.人民邮电出版社.20095 K.Babulu, K.Soundara Rajan. FPGA IMPLEMENT ATION OF SPI TRANSCEIVER MACROCELL INTERFACE WITH SPI SPECIFICATIONS. JNTU Colleage off Engineering,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不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前,FPGA的容量已经跨过了百万门级,使得 FPGA成为解决系统级设计的重要选择方案之一。在这种架构下,应用FPGA来构建SPI通信接口是切实可行的。下图模式一种主从模式:微处理器微处理器接口SPI总线接口adr_i1:0dat_i7:0dat_o7:0int_owe_ics_omiso_imosi_osck_orst_iSPI 接口作为主机与从机的通讯接口,主要完成以下工作: SPI将从主机接收到的8位的并行数据,转换为从机所能接收的串行数据,并将该数据根据SPI协议送给从机。 主机产生从机所需的时钟信号SCLK,片选信号CS。 接收从从机传回的读信号和串行数据,并将其转换为并行数据。(2)系统实现方案用FPGA实现SPI串行外围接口是一个比较复杂的系统较大的系统没有科学的设计方法就很难保证不出错,并很难言简意赅的清晰思路完成方案。此方案采用了状态机来设计,本项目的研究主要采用理论分析、逻辑推理、试验调试等方法。针对状态机,其主要有以下特点:1)有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。 2)状态机的结构模式相对简单。 3)状态机容易构成性能良好的同步时序逻辑模块。 4)状态机的Verilog HDL表述丰富多样。 5)在高速运算和控制方面,状态机更有其巨大的优势。 6)就可靠性而言,状态机的优势也是十分明显的。基于以上特点,用状态机的方法描述SPI通信过程简单方便并可靠,基于状态机,SPI通信接口的状态大致转移图如下所示:首先是SPI接口在等待状态,当检测到发送指令时触发信号进入发送状态,在系统指令下检测到写信号时进入发送数据状态,然后一位位发送数据,当检测到读信号时,进入读状态,当检测到发送接收都完毕时,进入发送接收完毕状态,再转向等待状态。(3)关键技术的实现时序问题将总线控制信号封装成指令,使用者只需通过发送指令的方式操作,避免了复杂的时序逻辑设计问题。全双工传输方式的设计如果全部使用状态机的方式完成设计,则可发现其很难完成全双工即收发独立模式,则在此过程中可以采用流水线设计方式,使之收与发之间独立进行,便可完成全双工传输方式的设计。3、进度安排第12周:查阅相关SPI文献资料,对其相关研究内容进行大体了解,并明确其原理和基本实现方案,完成开题报告,熟悉ISE操作和在线调试,了解Verilog HDL语言的基本语法。第34周:详细理解和研究SPI的原理,对Verilog HDL语言有一定的理解。第512周:对于Verilog HDL语言有深入理解,并具备一定的编程能力,能设计基本单元器件,并能读懂大型程序,熟练状态机的设计方法,对SPI有着工作过程有着细致的了解第13-16周:完成并修改毕业论文。第17周: 准备论文答辩。4、指导教师意见 指导教师签名: 年 月 日 目录摘要IAbstractII1 绪论31.1课题研究背景31.2 SPI研究目的及意义41.3 本章小结42 SPI原理分析52.1 SPI介绍52.2 SPI工作模式62.3 SPI传输模式62.4 SPI协议72.5 本章小结83 方案论证103.1在51系列单片机系统中实现103.2 用可编程逻辑器件设计SPI113.3 本章小结114 SPI的电路设计124.1 SPI设计系统的功能124.2 SPI各部分具体实现124.2.2 SPI系统中所用的寄存器134.2.3 SPI速率控制144.2.4 SPI控制状态机144.2.5 SPI程序设计流程图154.3 SPI仿真及开发板上调试验证分析164.3.1 仿真分析164.3.2开发板上调试184.4 本章小结205 论文总结21致谢22参考文献23附录124附录228摘要随着专用集成电路(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进行板上调试验证观察结果,并完成实现功能,并具有一些独创性的设计。关键词:FPGA Verilog SPI协议 chipscope ISE AbstractWith the advances in design technology of ASIC and VLSIs rapid development, and its price is lower, the hardware circuit based on FPGA programming interface to achieve such as SPI is feasible, and it realizes better than software. SPI interface is a common standard interface, due to its simple and convenient use and save system resource , a lot of chips support this interface. SPI interface is extensively applied in EEPROM, FLASH, real-time clock, AD converter, and digital signal processor and digital signals decoder, etc.Due to the interface is a fact SPI standard, and it has no standard protocol, most manufacturers design the SPI refer to the interface definition of Motorola's reference.Because of no definite agreement, there is a lot of different versions of the products in the technology exists on SPI interface, easy cause of ambiguity, some even cannot interconnect (need to do some modification). Based on a common protocols for design, and the company MC68HC11A8 microcontroller of Motorola module definition to design the SPI simplified SPI interface, with Verilog language writing, and in the design of the software design ISE simulation, and based on the Xlinx company Digilent chip Spartan 3E - the Nexys2 development board with online logic analyzers chipscope on board, and debugging validation observations, and complete functionality has some distinctive design. Keywords:FPGA Verilog SPI protocol chipscope ISE1 绪论在研究SPI串行外围接口之前,我们首先要对其背景及其研究的目的要有所了解。1.1课题研究背景数据传送有串行传送和并行传送两种方。并行传送以其高速度占领了数据传送领域很长一段时间,采用并行传送的集成电路、外围设备可谓不计其数,从CPU、RAM/ROM到打印机。从原理上讲,串行传输是按位传输方式,只利用一条信号线进行传输,例如:要传送一个字节(8位)数据,是按照该字节中从最高位逐位传输,直至最低位。 而并行传输是一次将所有一字节中8位信号一并传送出去。自然最少需要8根信号线。 如果按每次传送的数据流量来看,并行传输要远快于串口,在电脑发展初期,由于数据传输速率不是很高,并行传输还是很快的。 但并行传输也有它的缺点: (1)干扰问题上面的人已经提到。 其根本原因是由于传输速率太快,一般达到100M以上,信号线上传递的频率将超过100MHz,想想看,调频收音机的频率也不过88108MHz,也就是说,若用并行传输的话,是8根天线放在一起来传输信号,易发生干扰。但如果加强屏蔽,减小信号线间的耦合电容,是可以继续增大传输速率的,不过这将变得不现实,因为这必然导致信号线将耗用更多金属,截面积更大。但这并不是不能解决的问题。 (2)并行传输速率提升困难的最主要原因是同步问题 并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格同时到达接受端,速率小时,由于每一字节在信号线上的持续时间较长,这种到达时间上的不同步并不严重,随着传输速率的增加,与8位信号到达时间的差异相比,每一字节的持续时间显得越来越短,最终导致前一字节的某几位与后一字节的几位同时到达接受端,这就造成了传输失败,而且随着信号线的加长这种现象还会越发严重,直至无法使用。这是并口传输的致命缺点。 串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高,当前传输速率已经达到1Gb/s(1000M)以上,而且还在提高,而并行传输在100Mb/s左右就停滞不前了,可以预见,串行传输将会比并行传输越来越快。 为此,串行传输已经成为当今外设接口的主流传输方式,为此,摩托罗拉公司开发出了同步外设接口(SPI),并随着时间不断改进,由于其占用线的资源少,且稳定可靠,该总线大量用在与EEPROM、ADC、FLASH和显示驱动器之类的慢速外设器件通信,现在很多单片机等都有SPI模块来连接外围设备,从而使主机与外设传输数据更加方便。1.2 SPI研究目的及意义SPI是一种同步串行通讯方式,是一种三线同步总线,它是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,SPI接口主要应用在EEPROM,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的这些理解达到举一反三的目的。2 SPI原理分析SPI原理主要介绍SPI的基本机构,工作模式,传输模式以及SPI的典型协议,通过此院里的介绍,对于SPI的要点介绍,以及其工作过程有一个通透了解,从而可以能设计达到原理目的的功能设计以及程序的设计。2.1 SPI介绍 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.2 SPI工作模式SPI由工作方式的不同,可分为两种模式:主模式和从模式(1) 主模式将Master的数据传送给Slave,8位数据传送,传送完毕,申请中断,如图2.2.1MOSIMOSISCLKSCLK图 2.2.1 SPI工作主模式(2) 从模式此时,从控制器从SIMO引脚接收串行数据并把数据移入自身移位寄存器的最低位或最高位。要注意的是,其是在主控制器输出时钟SCLK的控制下,在SCLK的上升沿或者下降沿读出一个数据输出给主设备。其传播模型如下图所示:MISOCSSCLKMISOCSSCLK图 2.2.2 SPI工作从模式须注意的是,主设备可以再在任意时刻起动数据发送,因为它控制着SCLK信号,而在从模式下,从控制器要发送数据,必须要用先设置片选信号以确保使能端CS输入允许。2.3 SPI传输模式SPI 的工作模式分为主模式和从模式,二者都需要在 SCK 的作用下才能工作;但主模式不需要 CS 信号,而从模式必须在 CS 信号有效的情况下才能完成。不论是在主模式下还是在从模式下,都要在时钟极性(CPOL)和时钟相位(CPHA)的配合下才能有效地完成一次数据传输。其中,时钟极性表示时钟信号在空闲时的电平;时钟相位决定数据是在 SCK的上升沿采样还是下降沿采样。根据时钟极性和时钟相位的不同组合,可以得到 SPI 总线的4 种工作模式,入图所示:图2.3.1 SPI四种传输模式(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.4 SPI协议SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的,但正因为没有确切的版本协议,不同厂家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法互联(需要用软件进行必要的额修改)。本次设计基于一种使用较为普遍的协议来进行设计,通过简单协议来理解并设计SPI接口功能。SPI 协议是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲 SCK 的控制下,两个双向移位寄存器 SPI数据寄存器数据 进行数据交换。我们假设主机的 8 位寄存器 SPIDATA1 内的数据是10101010,而从机的 8 位寄存器 SPIDATA2 内的数据是 01010101,在上升沿的时候发送数据,在下降沿的时候接收数据,最高位的数据先发送,主机和从机之间全双工通信,也就是说两个 SPI接口同时发送和接收数据,如图 所示。从图中我们也可以看到,SPIDATA 移位寄存器总是将最高位的数据移出,接着将剩余的数据分别左移一位,然后将接收到得数据移入其最低位。CSMISOMOSISCLKCS1010101001010101MSBSPIDATA1LSBMSBLSBSPIDATA2图2.4.1 SPI的环形总线结构如图 所示,当第一个上升沿来的时候,SPIDATA1 将最高位 1 移除,并将所有数据左移1位, 这时 MOSI 线为高电平,而 SPIDATA2 将最高位 0 移出, 并将所有数据左移 1 位, 这样 MISO线为低电平。然后当下降沿到来的时候,SPIDATA1 将锁存 MISO 线上的电平,并将其移入其最低位,同样的,SPIDATA2 将锁存 MOSI 线上的电平,并将其移入最低位。经过 8 个脉冲后,两个移位寄存器就实现了数据的交换,也就是完成了一次 SPI 的时序。1010101010101010101010101010101010101010101010100011第一个上升沿第一个下降沿图2.4.2数据传输示例2.5 本章小结本章通过对SPI的原理分析,介绍其首发原理及基本结构,再介绍其工作模式,再介绍其传输模式和协议距离。通过以上分析,便可以知道本次设计的SPI所必须具备的功能有哪些,哪些是需要注意的功能。从而可以确定本次设计的工作模式,以及设计所的传输模式,并且通过介绍的协议举例来通过此协议来设计SPI系统结构。通过本章的分析,本次设计确定为主模式,及主控模式的设计,并且四种传输模式均需要实现,并且遵循SPI协议,按照此协议来设计SPI结构。以此,变可以进行SPI结构设计了。3 方案论证对于SPI接口设计主要分为两大类,利用单片机如51系列单片机实现和利用FPGA等可编程逻辑器件编程实现,下面将分别介绍两种方法的方法。3.1在51系列单片机系统中实现对于不带SPI串行总线接口的MCS51系列单片机来说,可以使用软件来模拟SPI的操作,包括串行时钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时钟输出口P1.1的初始状态设置为1,而在允许接口后再置P1.1为0。这样,MCU在输出1位SCK时钟的同时,将使接口芯片串行左移,从而输出1位数据至MCS51单片机的P1.3口(模拟MCU的MISO线),此后再置P1.1为1,使MCS51系列单片机从P1.0(模拟MCU的MOSI线)输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置P1.1为0,模拟下1位数据的输入输出,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接口芯片允许时,先置P1.1为1,以便外围接口芯片输出1位数据(MCU接收1位数据),之后再置时钟为0,使外围接口芯片接收1位数据(MCU发送1位数据),从而完成1位数据的传送。外围设备MCS 511.01.11.31.2图3.1.1 基于MCS51单片机的SPI设计模型图3.1.1所示为MCS51系列单片机与存储器X25F008(E2PROM)的硬件连接图,图2中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。下面介绍用MCS51单片机的汇编语言模拟SPI串行输入、串行输出和串行输入/输出的3个子程序,实际上,这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其它各种串行外围接口芯片(如A/D转换芯片、网络控制器芯片、LED显示驱动芯片等)。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出电平顺序,即先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平,则这些子程序也同样适用。3.2 用可编程逻辑器件设计SPI除了编程方法,还可以用FPGA设计SPI,及用可编程逻辑的方法设计硬件来用单片机直接用简单的程序来应用外围硬件来实现SPI传输。通过对SPI的结构的了解可以设计一个系统框架,按照框架完成输入输出的功能。一般一个典型的SPI系统如下图所示,其主要包括MPU和一个或几个外围器件,SPI一端与MPU接口相连,另一端便是负责传输的四条线了。当此单片机处于主机模式时,就能与从机进行通信,当此单片机处于从机模式时,就能与另一主机通信。总之,一个系统中只有一个主机,否则无法工作。用FPGA设计的系统框架如下图3.2.1所示:微处理器微处理器接口SPI总线接口adr_i1:0dat_i7:0dat_o7:0int_owe_ics_omiso_imosi_osck_orst_i图3.2.1 介于SPI的FPGA设计系统框架以上两种便是两种实现SPI的方法,在实际应用中,许多单片机已经包括了SPI接口,可见SPI接口应用很广泛,只要高级点的单片机,都自带SPI接口,并且如DSP等也集成了SPI接口,可见大多芯片都趋向于用硬件实现而非软件实现。这是因为软件模拟SPI接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。这使得与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。在可编程逻辑器件不断地完善改善完美并且功能强大且日益便宜,用硬件实现已经成为可能,在大型系统用硬件实现更加稳定。同时可编程逻辑也有自身的优点。在外围器件有改变时,由于可编程逻辑可以重复擦鞋的优点,从而在外围器件有些许改变之时,可以同时稍微改变可编程的程序,因而可编程又有灵活性大的特点。因此,本次设计便采用可编程逻辑的方案。3.3 本章小结本次设计介绍了软件硬件两种方法设计SPI,通过此分析,可以知道SPI的设计方法有哪些方法,通过比较可以得出每种设计的优劣。软件设计简单,但有其缺点,硬件设计相比复杂些,但是其灵活性强,可以让微处理器省出资源。4 SPI的电路设计电路设计主要是对系统设计的功能,各部分功能具体实现方案比如管脚说明,寄存器的说明即设计,以及状态机的动态描述,由各个功能的说明便可设计出本次SPI设计的流程图,由流程图便可以写出我们所需要的程序。4.1 SPI设计系统的功能本次设计具有一定的独创性,有着MC68HC11A8单片机SPI接口的全部功能,并在其四种传输速率中扩展了另外八种速率,使速率选择更加灵活。其主要功能如下:·本次设计为主控模式·与摩托拉罗说明规格部分一致·并增强了MC68HC11A8单片机SPI接口功能·添加中断,当每完成一个数据产生中断信号,确保微处理器读完数据后再发送接收数据·提供了12种速率选择·提供极性相位选择,支撑四种传输模式·充分综合4.2 SPI各部分具体实现如总系系统框架所示,其管脚都列其上,其管脚功能见下表4.2.1所示:表4.2.1 SPI设计管脚端口名称数据位宽信号流向功能描述int_o1Output中断输出,确保已传数据被读取rst_i1Input异步复位we_i1Input写使能端,写数据dat_i8Input输入数据或指令adr_i2Input写指令数据选择sck_o1OutputSPI时钟输出mosi_o1Output数据串行输出miso_i1Input数据串行输入cs_o1Output选片dat_o8Output输入数据并行给微处理器其中,需要强掉的是,adr_i端输入不同,便使系统处于写数据状态还是写指令状态,指令是写给SPI设计的控制寄存器,以使SPI具有不同的功能。4.2.2 SPI系统中所用的寄存器本次设计中SPI用到四种寄存器,包括SPCR(SPI控制寄存器)、SPER(SPI扩展寄存器)、treg(SPI数据传输/接收寄存器)其功能如下所示: (1)控制寄存器本次设计时参照MC68HC11A8单片机的SPI结构进行设计,并进行了一些改进,所以本次设计的控制寄存器的控制位与MC68HC11A8单片机的控制位大致相似,同时进行了一些扩展和不同的功能,扩展在扩展寄存器中再做介绍,其控制寄存器的控制位如下表4.2.2所示:表4.2.2 SPI设计的控制寄存器spiespemsbmstrcpolcphaspr1spr0 其各功能如下: ·spie :当此为被置位为1时,则中断允许,即允许中断,当为0时,禁止中断。 0:禁止中断 1:允许中断 ·spe :当此位被置位为1时,则系统运行,当置位为0时,系统不运行。 0:系统运行允许 1:系统允许禁止 ·msb:此为为在传输时是最高位线发送还是最低位先发送。当为1时,是最高位先发送,当为1时,是最低位先发送。0:先发送最低位1:先发送最高位·mstr:此为主从模式选择位,在本次设计中,本次设计只是工作于主控设备,故此为始终置1即可。·cpol:此为系统在空闲时的极性,当为0时,其为低电平为空闲时的极性,当为1时,其为高电平为空闲时的极性。0:空闲时为低电平1:空闲时为高电平·spr:此为速率选择为,其与扩展寄存器组合成速率选择,其可为00,01,10,11,与扩展此寄存器组合成一组数列来选择数据传输速率。此刻在速率控制中详细介绍。(2)扩展寄存器扩展寄存器的八位只用了两位,其用于与控制寄存器的spr组合成一列数据控制数据传输速率,其组合方式为espr = spre, espr,四位此而控制16种传输速率,此在速率控制中详细介绍。(3)状态寄存器状态寄存器本次设计中只去了一位spi_i中断位,其与spie允许情况下允许中断,中断位传给int_o从而保证单片机完成读取数据后在重新传输数据,从而保证每位数

    注意事项

    本文(毕业设计(论文)基于FPGA的SPI串行外围接口接口设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开