1、编 号毕 业 设 计 ( 论 文 )题目:SPI 接口的仿真及验证物联网工程 学 院 电 子 信 息 工 程 专 业学 号 0703090121 学生姓名 胥翔 指导教师 虞致国 副教授 二一三年六月摘要I摘要在专用集成电路(ASIC)设计技术以及超大规模集成电路(VLSI)工艺技术的飞速发展的今天,FPGA编程的硬件电路被越来越多的应用于实现诸如SPI接口等方面。相对于软件实现,硬件具有更多的优点。SPI接口技术是一种高速高效率的串行接口技术, 主要用于扩展外设及其数据交换, 已经作为一种配置标准。作为一个标准的接口,SPI具有简单方便和节省系统资源的优点,使得大多数芯片都支持该接口。SPI
2、接口主要应用在EEPROM、FLASH、实时时钟、 AD转换器,还有数字信号处理器和数字信号解码器之间。SPI 接口的全称是“Serial Peripheral Interface“,串行外围接口,是由 Motorola 公司首先在其 MC68HCXX 系列处理器上定义的。现在大部分厂家都是参照 Motorola 的定义来设计的。因为没有确切的版本协议,所以不同厂家的 SPI 接口在技术上存在一定程度上的差别,甚至会引起歧义。本文是利用 Verilog 硬件描述语言编写出 SPI 总线的主机模块,经过 Xilinx ISE 仿真得出相应的仿真波形。根据仿真波形分析,所设计的 SPI 主机模块的
3、功能是正确的,并且在 Xilinx ISE 中对该模块进行综合与实现。 关键词:FPGA;SPI 接口;Verilog;Xilinx ISEAbstractIIAbstractIn application-specific integrated circuit (ASIC) design technology and very large scale integrated circuit (VLSI) technology rapid development today, the FPGA programming of the hardware circuit is more and more
4、 used in implementation such as SPI interface. Relative to the software, hardware has more advantages.As a standard interface, SPI has advantages of simple and convenient and saving system resources, makes the most of the chip is supported by the interface.SPI interface block is mainly used in EEPRO
5、M, FLASH, real-time clock, AD converter, and between the digital signal processor and digital signal decoder. SPI Interface is the full name of “Serial Peripheral Interface“, Serial Peripheral Interface, Motorola is first defined on its MC68HCXX series processors, most manufacturers are now based on
6、 the definition of Motorola to design. This paper is to use the Verilog hardware description language to write the SPI bus host module, the simulation of the ModelSim simulation waveform. According to the simulation waveform analysis, the design of SPI host module function is right. Finally in Xilin
7、x ISE in comprehensive and the implementation of the module, and completed verify on the FPGA.Keywords:FPGA ;SPI interface;Verilog ;Xilinx ISE目录i目录摘要 .IAbstract .II目录 .i第 1 章 绪论 .11.1 研究背景 .11.1.1 系统芯片的发展 .11.1.2 IP 核 .11.1.3 数据传送 .21.2 SPI 研究的目的及意义 .31.3 本文的主要工作及构架 .31.3.1 研究的基本内容 .31.3.2 技术方案 .3第
8、2 章 SPI 原理分析 .52.1 SPI 通信总线 .52.2 SPI 简介 .52.3 SPI 的工作模式 .62.3.1 主模式 .62.3.2 从模式 .72.4 SPI 的传输模式 .72.5 SPI 协议 .8第 3 章方案论证 .113.1 用 FPGA 来设计 SPI .113.2 用 51 系列单片机实现 SPI.11第 4 章 SPI 的电路设计 .134.1 管脚说明 .134.2 SPI 系统中所用的寄存器 .134.3 SPI 速率控制 .144.4 SPI 控制状态机 .154.5 SPI 程序设计流程图 .16第 5 章仿真及验证 .195.1 仿真分析 .19
9、第 6 章 结论与展望 .216.1 结论 .216.2 不足之处及未来展望 .21参考文献 .22致 谢 .23附录 A.24SPI 接口的仿真及验证1第 1 章 绪论1.1 研究背景1.1.1 系统芯片的发展系统芯片(SoC:System-on-a-chip )指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器、存储器、以及外围电路等。 SoC 是与其它技术并行发展的,如绝缘硅(SOI) ,它可以提供增强的时钟频率,从而降低微芯片的功耗。随着电子技术开发应用对集成电路 IC 需求量的扩大和半导体工艺水平的不断进步,超大规模集成
10、电路 VLSI 技术迅猛发展。当前的半导体工艺水平己经达到了亚微米水平并正在向 50nm 以下发展,器件特征尺寸越来越小,芯片集成规模越来越大,数百万门级电路可以集成在一个芯片上,芯片尺寸已从逻辑限制变为焊盘限制,我们必须找到与常规集成电路设计思想不同的设计方式,它就是新世纪 IC 设计的主流技术。SOC 是微电子设计领域的一场革命,从整个系统的角度出发,把智能核、信息处理机制、模型算法、芯片结构、各层次电路直至器件的设计紧密结合起来,在单个或少数几个芯片上完成整个系统的功能,既我们可以把越来越多的电路设计在同一个芯片中,这里面可能包含有中央处理器(CPU),嵌入式内存(Embedded me
11、mory)、数字信号处理器(DSP)、数字功能模块(Digital function)、模拟功能模块(Analog function)、模拟数字转换器(ADC)以及各种外围配置(USB, MPEG)等等,这是新发展的 SOC 技术。SOC 技术的研究、应用和发展是微电子技术发展的一个新的里程碑。SOC 能提供更好的性能、更低的功耗、更小的印制板.空间和更低的成本,带来了电子系统设计与应用的革命性新变革,可广泛应用于移动电话、硬盘驱动器、个人数字助理和手持电子产品、消费性电子产品等。SOC 是 21 世纪电子系统开发应用的新平台 1。1.1.2 IP 核IP(Intelligence Prope
12、rty)是在 FPGA 设计中不可缺少的组成部分,也是自底向上设计方法学的理论基础。随着数字系统设计越来越复杂,从头开始设计系统中的每一个模块是一件十分困难的事,而且会打打延长设计周期,甚至增加系统的不稳定因素。IP 的出现使得设计过程变得十分简单,用户甚至只需要将不同的模块连接起来,就可以实现一个完整的系统。这样对减少产品的上市时间、赚取早起的利润十分有利。IP 核是指用于产品应用专用的集成电路(ASIC)或可编程逻辑器件(FPGA)的逻辑块或数据块。将一些数字电路中常用但比较复杂的功能模块,如 FIR 滤波器,SDRAM 控江南大学学士学位论文2制器,PCI 接口等设计成可修改参数的模块,
13、让其他用户可以直接调用,这样就大大减轻了工程师的负担,避免重复劳动。随着 CPDL/FPGA 的规模越来越大,设计越来越负杂,使用 IP 核是一个发展趋势。随着 HDL 的发展和标准化,世界上出现了一批利用 HDL 进行各种集成电路功能模块专业设计的公司。其具体任务是按常用或专用功能,用 HDL 来描述集成电路的功能和结构,并经过不同级别的验证形成不同级别的 IP 核模块,供芯片设计人员来装配或集成选用。(1)软 IP 核通常使用 HDL 文本形式提交给用户,它已经过行为级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级网表,并可以进行后续结构设计,具有强
14、大的灵活性,可以很容易的借助 EDA 综合工具将其与其他外部逻辑电路结合成一体,更具不同的半导体工艺,将其设计为具有不同性能的器件。可以商品化的软 IP 内核的电路结构总门数一般都在 5000 门以上。软 IP 核又被称为虚拟器件。(2)硬 IP 核是基于某种半导体工艺的物理设计, ,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有保证的性能。其共给 用户的形式是电路物理结构掩模板图全套工艺文件,是可以拿来就用的圈套技术。(3)固 IP 核的设计深度介于软 IP 内核和硬 IP 内核之间,除了完成硬 IP 内核所具有的设计外,还完成门电路级综合和时序仿真设计环节,一般以门电路级网表形式提交
15、用户使用。常用的 IP 内核模块有各种不同的 CPU(32/64 位结构 CISC/RISC 结构的 CPU 或 8/16位微控制器/单片机,如 8051 等) 、32/64 位 DSP(如 320C30) 、DRAM、SRAM 、EEPROM、FLASH 内存、A/D、D/A、MPEG/JPEG 、USB 、PCI 、标准接口、网络单元、编译器、编码/解码器和模拟器件模块等。丰富的 IP 内核模块库为快速地设计专用集成电路和单片系统以尽快占领市场提供了保证 2。1.1.3 数据传送数据传送有串行传送和并行传送两种方法。并行传输是构成字符的二进制代码在并行信道上同时传输的方式。例如,8 单位代
16、码字符要用 8 条信道并行同时传输,一次传一个字符,收、发双方不存在同步问题,速度快,但信道多、投资大,数据传输中很少采用 3。串行传输是构成二进制代码在一条信道上以位(码元)为单位,按时间顺序逐位传输的方式。按位发送,逐位接收,同时还要确认字符,所以要采取同步措施。速度虽慢,但只需一条传输信道,投资小,易于实现。为此,串行传输已经成为当今外设接口的主流传输方式,为此,摩托罗拉公司开发出了同步外设接口(SPI),并随着时间不断改进,由于其占用线的资源少,且稳定可靠,该总线大量用在与 EEPROM、ADC、FLASH 和显示驱动器之类的慢速外设器件通信,现在很多单片机等都有 SPI 模块来连接外
17、围设备,从而SPI 接口的仿真及验证3使主机与外设传输数据更加方便 5。1.2 SPI 研究的目的及意义SPI 总线,是一个同步串行接口的数据总线,它具有全双工、信号线少、协议简单、传输速度快等优点。由于串行总线的信号线比并行总线更少、简单,越来越多的系统放弃使用并行总线而采用串行总线。在众多串行总线中,SPI 总线相比于 I2C 总线、CAN 总线、USB 等其他常用总线相比有很大优势,如 SPI 线的数据传输速度可达若干 Mbps, 比 I2C 总线快很多。SPI 总线最典型的应用就是主机与外围设备(如 EEPROM、Flash RAM、A/D 转换器、LED 显示器、实时时钟等 )之间的
18、通信 4。SPI 接口的扩展有硬件和软件两种方法,软件模拟 SPI 接口方法虽然简单方便,但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。这使得与 SPI 有 关 的 软 件 就 相 当 简 单 , 使 CPU 有更 多 的 时 间 处 理 其 他 事 务 。FPGA(现场可编程门阵列)是在 PAL、GAL、PLD 等可编程器件的基础上进一步发展的产物,具有设计周期短、可重复编程、灵活性强等特点。用 FPGA 设计的 SPI 总线具有可扩展性强、便于修改等优点。只要对设计做简单的改动,即可对 SPI 总线的数据位数、工作模式等进
19、行扩展,充分发挥了 FPGA 的优势。并 FPGA 是可编程并可重复擦写的,从而具有更大的灵活性,在协议不标准的情况下,可根据外围设备的不同而灵活的改动 SPI设计,使设计周期大大降低,并与外围设备连接更加方便。1.3 本文的主要工作及构架1.3.1 研究的基本内容(1)熟悉通信及通信接口相关方面的知识,学习并掌握 SPI 通信接口的结构,协议及原理。(2)熟悉 VERILOG 语言及其开发环境 ISE,使用该语言进行数字电路( FPGA)设计,慢慢深入 VERILOG 语言。(3)设计流程图,状态图。(4)实现仿真。1.3.2 技术方案SPI 接口作为主机与从机的通讯接口,其主要完成工作为下
20、:SPI 将从主机接收到的 8 位的并行数据,转换为从机所能接收的串行数据,并将该数据根据 SPI 协议送给从机。江南大学学士学位论文4主机产生从机所需的时钟信号 SCLK 以及片选信号 CS。接收从从机传回的读信号和串行数据,并将其转换为并行数据。此方案采用了状态机来进行设计,本项目的研究主要采用理论分析、逻辑推理、试验调试等方法。状态机的特点如下:(1)有限状态机相对于纯硬件数字系统顺序方式控制来说更为灵活。(2)状态机的结构模式简单。(3)状态机构成的同步时序逻辑模块更为优良。(4)状态机在高速运算和控制方面更有其巨大的优势。(5)状态机更为可靠。基于以上特点,用状态机的方法描述 SPI
21、 通信过程简单方便并可靠。SPI 接口的状态大致转移描述如下:首先是 SPI 接口处于等待状态,一旦检测到发送指令时触发信号进入发送状态,在系统指令下检测到写信号时进入发送数据状态,然后一位发送数据,当检测到读信号时,进入读状态,当检测到发送接收都完毕时,进入发送接收完毕状态,再转向等待状态。关键技术的实现:(1)时序问题将总线控制信号封装成指令,使用者只需通过发送指令的方式操作,避免了复杂的时序逻辑设计问题。(2)全双工传输方式的设计如果全部使用状态机的方式完成设计,则可发现其很难完成全双工即收发独立模式,则在此过程中可以采用流水线设计方式,使之收与发之间独立进行,便可完成全双工传输方式的设计。