基于一种通用SPI总线接口的FPGA设计与实现

发布者:MysticSerenade最新更新时间:2011-11-28 关键字:SPI总线接口  FPGA 手机看文章 扫描二维码
随时随地手机看文章
  一、引言

  SPI串行通信接口是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,应用相当广泛。SPI接口的扩展有硬件和软件两种方法, 软件模拟 SPI接口方法虽然简单方便, 但是速度受到限制,在高速且日益复杂的数字系统中,这种方法显然无法满足系统要求,所以采用硬件的方法实现最为切实可行。当前,基于主从处理器结构的系统架构已经成为一种主流(如 DSP+FPGA,MCU+FPGA等),FPGA是在 ASIC的基础发展出来的,它克服了专用 ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前, FPGA的容量已经跨过了百万门级,使得 FPGA成为解决系统级设计的重要选择方案之一。在这种架构下,应用 FPGA来构建 SPI通信接口是切实可行的。传统 SPI接口的 FPGA实现往往使用厂家提供的 IP核实现,但是经笔者实践发现,这种方法虽然能够满足基本 SPI通信要求而且速度比较快,但是设计不够灵活,不利于功能扩展,例如用户无法知道其内部工作状况,控制信号时序复杂等,用户使用时往往觉得困难,另外,该 IP核不是免费的。基于此,本文将提出一种新的基于 FPGA的 SPI接口设计方法。

  二、SPI总线原理

  SPI总线由四根线组成:串行时钟线(SCK),主机输出从机输入线(MOSI),主机输入从机输出线(MISO),还有一根是从机选择线(SS),它们在与总线相连的各个设备之间传送信息。

  SPI总线中所有的数据传输由串行时钟SCK来进行同步,每个时钟脉冲传送1比特数据。SCK由主机产生,是从机的一个输入。时钟的相位(CPHA)与极性(CPOL)可以用来控制数据的传输。CPOL=“0”表示 SCK的静止状态为低电平,CPOL =“1”则表示SCK 静止状态为高电平。时钟相位(CPHA)可以用来选择两种不同的数据传输模式。如果 CPHA =“0”,数据在信号 SS声明后的第一个 SCK边沿有效。而当 CPHA=“1”时, 数据在信号 SS声明后的第二个 SCK边沿才有效。因此,主机与从机中 SPI设备的时钟相位和极性必须要一致才能进行通信。

  SPI可工作在主模式或从模式下。在主模式,每一位数据的发送接收需要 1次时钟作用,而在从模式下, 每一位数据都是在接收到时钟信号之后才发送接收。

  三、设计原理

  本系统用硬件描述语言 VHDL描述,可 IP复用的通用结构。

  1、典型应用

  SPI接口的典型应用如图 1所示。微处理器与从设备通过发送指令的方式实现双向数据传输。


  2、模块设计

  根据 SPI总线的原理,可分为以下功能模块:通信模块,控制模块,FIFO模块(缓冲存储器),配置模块,数据收发模块,如图 2所示。


  2.1通信模块

  这个模块实现与微处理器的通信,接收微处理器的数据和指令,通过指令解析,发出控制信号。该模块定义的寄存器包括发送数据寄存器,接收数据寄存器,测试数据寄存器,接收测试数据寄存器,指令寄存器,配置寄存器,状态寄存器,各寄存器详述如下:

   发送数据寄存器:可写寄存器,接收微处理器发送的数据,而后暂存于 FIFO模块中;

    接收数据寄存器:可读寄存器,当收到?读数据?指令时,该寄存器将从 FIFO中读入数据且通过数据总线发送至微处理器;

   测试数据寄存器:可写寄存器,用于在测试模式下接收测试数据,而后暂存于 FIFO模块中;

   接收测试数据寄存器:可读寄存器,当收到?读测试数据?指令时,该寄存器读入 FIFO中的测试数据,并通过数据总线发送至微处理器,以测试各功能模块工作是否正常;

   指令寄存器:可写寄存器,接收微处理器的指令,通过指令解析后,往其它模块发出相应的控制信号,包括发送数据指令,读数据指令,复位指令,写测试数据指令,读测试数据指令;

   配置寄存器:可写寄存器,用于保存 SPI配置参数,包括时钟分频倍数、相位、移位顺序、帧长度等。该寄存器的值将被转发至配置模块。

   状态寄存器:只读寄存器,控制模块将状态机状态写入该寄存器,供微处理器查询 SPI

  工作状态;

  2.2控制模块

  控制模块是本系统的核心,控制着整个工作流程,为了方便结构化设计,本模块设计了状态机。根据 SPI总线的原理可将总线分为五种状态,分别是等待状态、数据发送状态、数据接收状态、数据接收完毕状态、在线测试状态。各状态之间的关系如图 2所示:

  2.3 FIFO模块由于微处理器的写数据速率远比串口输出速率快得多,所以必须先将数据保存于缓冲区,FIFO的容量应根据通信数据量的大小来确定,在本设计中,由于数据量不大,所以定义了一个 64 X 8位的异步 FIFO寄存器,用于保存收发数据,用 VHDL硬件描述语言描述的FIFO是一个 64 X 8位的数组。模块包括两个时钟信号,写入和读出数据总线,满标志和空标志信号,当 FIFO为满标志时,写入的数据将被忽略。

  2.4配置模块  该模块设计了2 个 3 X 12位的RAM,一个用于保存主机模块配置参数,另一个用于保存从机模式配置参数,每次主从机模式切换时将配置参数发送到数据收发模块。数据收发模块根据配置参数调整分频倍数、相位、输出顺序(高位先出或低位先出)、帧长度等。

  2.5数据收发模块

  该模块实现与从设备的通信。在主机模式下,将 FIFO的并行数据进行并串变换,然后通过 MOSI引脚输出数据,并同时输出驱动时钟和控制信号(低电平)。在从机模式下将串行输入的数据串并变换后写入 FIFO模块中。

  四、仿真与验证

  将用 vhdl描述好的 SPI接口电路用 synplify进行综合,然后用 modelsim软件进行仿真。先仿真微处理器通过 SPI接口发送数据过程,在地址总线上输入指令寄存器地址,在数据总线上输入发送数据指令,工作时钟为89.6M,然后在地址总线上输入写数据寄存器地址,在数据总线上输入数据 01010101。得到如图 3所示的部分管脚的波形。


  然后仿真从设备发送数据过程,首先往 SPI模块的 ss管脚输入低电平,同时从 sclk管脚输入驱动时钟,在 mosi管脚输入数据,得到图 4所示的波形。


  用 quartus软件进行编译后,将生成的网表文件通过 JTAG下载到 altera公司的 acex1k系列 EP1k30TC144-3运行,配合设计好的单片机程序,分别给 FPGA输入 44.8M和 89.6M工作时钟,在 quartus的 signal tap的辅助分析下都得到了正确的结果。 EP1k30TC144-3芯片共有1728个逻辑单元,本设计使用了 138个,占系统资源的7%,是个比较理想的结果。


  五、结束语随着半导体技术的进步,FPGA的价格越来越便宜,工作频率越来越高,使用 FPGA实现 SPI通信接口是切实可行的,本文作者创新点:

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

  2、可以在 SPI工作过程中随时调整配置参数。 3、充分考虑了可测试性设计,使用者可随时查看 SPI总线工作状态。

关键字:SPI总线接口  FPGA 引用地址:基于一种通用SPI总线接口的FPGA设计与实现

上一篇:基于CAN总线和DSP的双层数据采集系统的设计
下一篇:基于DSP内嵌PCI总线的卫星信号仿真器设计

推荐阅读最新更新时间:2024-05-02 21:44

基于FPGA的数字式光端机的研究与设计(图)
  本文介绍了一种基于FPGA的视频、音频、反向数据的远程传输系统的研究与设计,该系统在实际中得到了应用,具有良好的稳定性、实用性和可靠性。    引言   目前在高速公路、交通、电子警察、监控、安防、工业自动化、电力、海关、水利、银行等领域视频图像、音频、数据、以太网、电话等光端机开始普遍大量应用。   由于数字光端机具有传输信号质量高,没有模拟调频、调相、调幅光端机多路信号同传时交调干扰严重、容易受环境干扰影响、传输质量低劣、长期工作稳定性差的缺点,因此许多大型重点工程已普遍采用数字光端机。    系统框架与工作原理   整个系统由核心控制模块FPGA、音频采样编解码模块、视频分离模块、视频放大模块、视频A/D和D/
[应用]
Altera发售业界唯一的20 nm SoC FPGA
Altera第二代Arria 10 SoC是业界唯一的20 nm SoC FPGA 2015年2月25号,北京 Altera公司(Nasdaq: ALTR)今天开始发售其第二代SoC系列,进一步巩固了在SoC FPGA产品上的领先地位。Arria 10 SoC是业界唯一在20 nm FPGA架构上结合了ARM 处理器的可编程器件。与前一代SoC FPGA相比,Arria 10 SoC进行了全面的改进,支持实现性能更好、功耗更低、功能更丰富的嵌入式系统。Altera将在德国纽伦堡举行的嵌入式世界2015大会上展示其基于SoC的解决方案,包括业界唯一的20 nm SoC FPGA。 Altera的SoC产品市场资深总监C
[嵌入式]
如何在便携式应用中充分发挥FPGA的优势
为保持“连通和触控”,消费者越来越依赖其便携设备。这些设备包括智能手机、个人媒体播放机、数码照相机以及新出现的电子笔记本等。当今的手持设备有多项功用,基于最终应用,为实现这些功用对存储、特性和技术等方面都提出了挑战。 同时,便携式设计师面临更大的上市时间和成本压力,在对价格敏感的消费品市场,他们要竭尽所能奉献新特性并要与迅速发展的标准与时俱进。使问题更棘手的是,在提供全部这些特性的同时还要不牺牲电池寿命。 传统上,现场可编程门阵列(FPGA)被认为是使设计尽快上市的最佳载体。但基于功耗和成本方面的考虑,该技术曾仅限用于原型生成。 但在过去几年,设计进步业已使FPGA进入大批量便携式设计。另外,新出现
[嵌入式]
基于FPGA的DDS+DPLL跳频信号源设计
军事通信中,常采用跳频技术来实现通信信息的保密和抗干扰,尤其是应用在通信系统中抗跟踪式干扰方面,它是电子对抗中非常重要的一个研究课题。   最初的频率综合器全由模拟电路实现,由于模拟电路存在温度漂移、电网电压等缺点,给系统的同步带来困难。随着大规模、超大规模数字集成电路的发展,在部分应用领域,数字频率综合器逐渐取代了模拟频率综合器。近年来随着FPGA和CPLD技术的迅猛发展,数字频率综合器的实现方式和工作速度都到了本质的改进和提高,可以说数字频率综合器是随着FPGA的发展而发展起来的。   1 各个功能模块的组成原理与实现   1.1 数字鉴相器   在数字鉴相器(异或门鉴相器)中,首先将输入信号与本地估算信号进行比
[嵌入式]
基于<font color='red'>FPGA</font>的DDS+DPLL跳频信号源设计
FPGA基于非易失性技术的低功耗汽车设计
概述   可编程逻辑器件已经越来越多地用于汽车电子应用,以替代ASIC和ASSP器件。Actel FPGA基于非易失性技术(快闪和反熔丝),不易发生由中子引发的固件错误,因而成为适用于关键性汽车应用(如动力传动和安全设备)的唯一FPGA技术。请参照产品选择指南以了解适用于各种汽车电子解决方案的Actel器件清单。   爱特公司能够为最严苛的汽车电子应用要求,提供可靠的解决方案。      爱特公司拥有开发功能强大的军用和航天用FPGA的传统优势和丰富经验,足已证实我们的技术在关键性应用中具有独特的优势。Actel FPGA器件不单能让产品运作畅顺,还能够确保安全运作。因而,汽车供应商可以依赖Actel FPGA—唯一具
[嵌入式]
<font color='red'>FPGA</font>基于非易失性技术的低功耗汽车设计
从MCU到FPGA:第2部分
最近,我在做一个项目,该项目要求我这个MCU迷,转向FPGA开发。在这个系列博客中,我将介绍如何将现有的MCU知识和经验运用到FPGA的开发中。在第一部分中,我介绍了FPGA的优缺点,以及Terasic DE10 nano开发套件,并且探讨了影响FPGA设计的关键因素。现在,在第2部分,我将分析示例代码并发现更多的有用的资源。 MCU和FPGA之间的区别类似于摩托车和汽车之间的差异:尽管两者都可以让你从A点到达B点,但是机制却有着根本的不同。我认为这个类比在描述MCU和FPGA的引脚模式、引脚类型以及串并行处理时非常贴切,在这些方面,两者是完全不同的。 最初,我从Terasic的设置和指导实践开始,但是一直处于困境中。每次
[嵌入式]
调节多核处理器硬件适应软件设计方法
  典型的嵌入式系统设计人员在硬件平台上进行编程,他们最关注的一点就是硬件平台的稳定性。如果硬件没有设置好,会带来重新编写代码的麻烦。但是一个完全设置好的稳定的硬件平台还是会对其上运行的程序有一系列的限制。这些限制 - 无论是设计结果,还是一个完全的缺陷 - 都会造成在编码时需要迂回处理甚至重新返工的情况,给设计实现带来麻烦,并且耗费了大量的时间。   通过将FPGA平台和一个精心设计的多核方法结合在一起,开发人员就能以下列这种方式实现高性能分组处理应用:软件工程师能够对计算平台的结构有所控制,从而大大缩短编程时间,同时降低延期交付风险。   硬件设计流程的主要工作就是定义一块电路板。像存储器类型、总线协议和I/O这样的基本组
[单片机]
调节多核处理器硬件适应软件设计方法
FPGA转换到门阵列
概述     从FPGA或PLD转换到门阵是经济高效的,有时甚至只需几百个单元就能实现。这已经引起越来越多设计者提出同样的问题:这种转换设计需要什么后续技术?事实上转换到门阵面临着许多电路的时序问题,这在FPGA设计中是不被注意的。     本文论述了转换时遇到的几种由于设计不当所造成的时序问题,提出了避免这些问题的方案。同时对时序变化的部分原因及充分利用门阵列技术亦在文中进行了讨论。 时序上的差异     如果知道原始设计电路工作中每一步时序上的裕量,Orbit保证无论FPGA是否模拟过,都可以成功完成转换,而使用其ATPG和结合缺省模拟分级确保了这一点。在转换完成前,由用户模拟或由O
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved