一种SI串口模块的FGA实现

来源 :电子世界 | 被引量 : 0次 | 上传用户:oskarguan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】主要介绍了一种在FPGA中实现SPI总线通信串口模块的方法,并给出了设计方案、仿真结果以及硬件测试结果。本设计可以广泛应用于常规处理控制器件(单片机、DSP等)同外部外设及其它处理器之间进行SPI数据通信的系统中,特别是需要快速构建数据通信系统的应用环境,在通信、消费电子及工业控制等诸多领域有广阔的应用前景。
  【关键词】SPI接口;VHDL;FPGA
  1.引言
  串行外设接口(SPI)是一个高速同步的串行输入/输出口。SPI通常用于处理器和外部外设以及其它处理器之间进行通信。很多新型器件如LCD模块、FLASH、ADC、EEPROM存储器以及时钟芯片等都采用了SPI接口。但在实际开发应用中,若主控制器无SPI接口或需要与多个具有SPI接口的外设通信,就要使用主控制器的I/O口通过软件来模拟,这在很大程度上限制了其应用给数据传输带来不便。所以采用硬件来实现SPI接口扩充的方法最为可行。
  当前,基于主从处理器结构的系统架构已经成为一种主流(如DSP+FPGA,MCU+ FPGA等)。FPGA优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。传统SPI接口的FPGA实现往往采用厂家提供的IP核实现,这种方法虽能基本满足SPI通信要求,但设计不够灵活,不利于功能扩展。基于此,提出一种新的基于FPGA的SPI串口模块实现方法。
  2.SPI总线接口及时序
  SPI串行接口运用4条线可与多种标准中心器件间接接口:串行时钟线SPICLK,主机输出/从机输入数据线SPISIMO,主机输入/从机输出数据线SPISOMI和低电平有效的从机选通信号线SPI_CS。
  SPICLK为主机时钟线,是从机的一个输入,为SPISOMI数据的发送和接收提供同步时钟信号。时钟的相位(CPHA)与极性(CPOL)可以用来控制数据的传输。CPOL=“0”表示SCLK的静止状态为低电平,CPOL=“1”则表示SCLK的静止状态为高电平。时钟相位(CPHA)可以用来选择两种不同的数据传输模式。如果CPHA=“0”,数据在信号SPI_CS声明后的第一个SCLK边沿有效。而当CPHA=“1”时,数据在信号SPI_CS声明后的第二个SCLK边沿才有效。因此,主机与从机中SPI设备的时钟相位和极性必须要一致才能进行通信。
  SPI有两种工作模式:主模式和从模式。工作在主模式下,不管是发送还是接收数据,SPICLK为整个串行通信网络提供时钟。串行数据发送时,首先发送的是最高有效位(MSB),时钟信号的1次作用对应1位数据的发送(SPISIMO)和另1位数据的接收(SPISOMI)。工作在从模式下,不管是发送还是接收数据,一直必需在SPICLK信号作用下停止,并且SPI_CS信號必需有效。1个典型的SPI系统包括一个主MCU和1个或几个从外围器件。
  SPI主模式的数据接收时序见图1。
  SPI主模式的数据发送时序见图2。
  3.FPGA设计方案
  本设计按一个默认数据通信速率(10Mbps)、时钟模式(无相位延时的下降沿)、主/从工作方式(主SPI模式)进行SPI数据的收发。可通过外部处理控制器对本模块进行各种通信参数的动态配置,以适应不同的通信速率、时钟模式、工作方式、数据长度等情况。配置完毕后,即可开始SPI数据的收发过程。
  本设计中增加了一根主/从SPI方的握手信号线SPI_STATUS,该信号线在从SPI方发送数据时被从方拉为低电平,而在从SPI方接收数据时被从方设置为高电平。
  根据SPI总线的原理,本设计分为两大功能模块:数据接收及协议解析、数据发送处理。该SPI串口模块系统框图如图3所示。
  在这些子模块中,数据接收FIFO和数据发送FIFO用来做接收、发送数据的FIFO。通信参数配置单元供处理控制器读写配置SPI的各种参数。对外并行接口单元负责与外部处理控制器进行数据交互。串行数据接收、命令解析及中断产生单元完成串行数据接收、通信命令解析及产生中断信号通知处理控制器进行数据接收操作。串行时钟产生及收发控制单元用来发生主模式下的时钟信号,同时对数据的接收或者发送进行功能切换。串行数据发送处理单元负责把并行进来的数据串行传出,完成对数据发送的处理。
  (1)数据接收及协议解析
  当从SPI方发送数据的时刻到来时,本设计检测到状态线SPI_STATUS为“低”,则串行时钟产生及收发控制单元立即启动接收逻辑,对外输出串行时钟SPICLK信号和选通信号SPI_CS,同时在SPICLK上升沿时刻进行数据采样,并将串行数据进行相应缓存。
  每当采样数据构成一个完整字节时,由接收模块将收到的数据存入“数据接收FIFO”,同时对串口数据中的特殊字段进行协议解析。过程如下:先检索收全数据同步头字节“AAH AAH”后,对后面接收的完整字节进行+1计数处理,再检索收到串口数据总长度字节后,判断已收到的字节总数是否达到串口数据总长度值。如果达到接收数据总长度值,则表示一帧数据命令接收完整,此处由接收模块置出“命令数据接收完整”标志;同时,当检测到状态线SPI_STATUS的上升沿到来,给出数据接收完毕中断标志信号int_rxd及时中断处理控制器,通知外部控制器读取数据进行处理,而不必每接收到1个字节就中断一次,避免了主程序被频繁中断。
  目前,本设计的接收FIFO和发送FIFO深度均设定为2048字节,可以缓存大量的通信数据,而不会将先前收到的数据覆盖,外部处理控制器可以在处理完其它紧要任务后,再来进行SPI数据的读取和后续处理,而不必担心已接收的SPI数据会丢掉。
  接收数据的流程图如图4所示。
  (2)数据发送处理
  当需要发送SPI数据时,外部处理控制器将需要发送的所有数据依次写入本设计的“数据发送FIFO”中,再对本设计另一个地址单元写入“启动发送命令”后,即可启动数据发送模块发送数据。该模块实时判定数据发送FIFO是否为空,若FIFO内有数据则立即对外输出串行时钟SPICLK信号和选通信号SPI_CS,并在SPICLK的下降沿时刻对取出的数据进行发送,首先发送的是最高有效位(MSB)。即对主程序而言,就是向一特定地址写入所有需要发送的数据,再写入一个启动发送命令即可自动完成全部数据的发送,无需进行发送流程控制。
  发送数据的流程图如图5所示。
  4.电路完成
  为了保证代码的准确性,首先应根据模块功能需求来编写相应测试向量作为本SPI模块的输入激励,然后经过查看模块的输出结果,判定本SPI模块的各项功能是否正确。
  采用了XILINX公司的EDA编译软件平台ISE10.1,将用VHDL语言描述好的SPI接口模块进行了综合,然后用modelsim软件进行仿真。在建立测试平台时,首先建立模拟从SPI方数据发送的模块,同时建立模拟主SPI方数据发送的模块,再将接收/发送数据内容进行比较、验证。在仿真软件的辅助分析下,得到了正确的结果。仿真结果如图6所示。
  仿真通过后,将整个设计工程文件经综合后的EDIF文件提交给ISE进行布局、布线后,把所生成的mcs文件下载到XILINX公司的FPGA芯片XC3S400中运行,结果与在modelsim中的仿真结果一致,该SPI总线接口模块能达到所要求实现的性能,具有很强的实用性。
  5.结束语
  本设计以FPGA为硬件平台,应用VHDL语言进行程序编制。可实现对SPI通信数据的自动接收和发送,也可由外部程序对该SPI串口进行快速配置,从而完成串口通信速率、时钟模式、工作方式、数据长度等的动态更改。
  通过简单的程序复用,该设计可扩充为多路SPI数据通信接口,一方面弥补了常规处理控制器件(单片机、DSP等)所自带的SPI硬件串口操作繁琐、功能受限的不足,另一方面也把单片机、DSP从频繁的数据查询或数据中断中解放出来,从而投入更多精力到其它的功能控制中。
  参考文献
  [1]侯伯亨,顾新,编著.VHDL硬件描述语言与数字逻辑电路设计[M].西安电子科技大学出版社,1999.
  [2]孙丰军,余春暄.SPI串行总线接口的Verilog实现[J].现代电子技术,2005.
其他文献
【摘要】在企业的不同发展阶段中,成本控制和管理都处于非常重要的地位。如果同类产品的性能、质量相差无几,决定产品价格高低的主要因素是成本的高低。企业进行成本控制活动时,可以事先限制各项费用和各种消耗的发生,有计划有目的地控制成本的形成,使成本不超过预算的标准,达到降低成本,提高企业经济效益与利益最大化的目的。  【关键词】成本控制;成本管理;事前控制;日常控制;事后控制  最近对两家为一汽配套的民营
期刊
【摘要】团购作为近年来兴起的一种全新电子商务模式日益受到消费者的欢迎。而这种全新的购物方式也给消费者权益的保护带来了新的问题和挑战。鉴于我国目前法律规范的不足和缺陷,团购消费者权益经常受到侵害的情况,应尽快出台《电子商务法》,实行举证责任倒置制度,确立团购网站、特约商家连带责任制度,完善网络消费者诉讼管辖原则;完善网络支付的相关法律法规、规范网络支付平台;工商部门也应加强监管,严格执法。  【关键
期刊
【摘要】绪论课不仅是一节课,更是学好一门课程的重要开始,一节好的绪论课可以让学生在接触本课程之初就产生浓厚的学习兴趣,从而带着更多的期盼、更明确的目标来学习电子线路这门课程。本文以电子线路专业基础课课程标准为准绳,以新课改思想为指引,结合电子线路中常见的、实用的应用电路,从教学实际出发,着重阐述如何在绪论课中培养学生的学习兴趣,调动学生学习本课程的积极性和主动性,从而全面提高学生的技能操作能力、理
期刊
【摘要】本文结合江苏省惠山中等专业学校在开展“工学结合、半工半读”培养模式中所出现的问题,分析了“工学结合、半工半读”培养模式的利弊关系并提出自己对“工学结合、半工半读”培养模式的思考。  【关键词】工学结合;企业;学生  工学结合这种教育模式由来已久,最早可以追溯到英国桑得兰德技术学院(Sundert and Technical College)工程系和土木建筑系于1903年开始实施的“三明治”
期刊
【摘要】帆板控制系统以AVR单片机为核心,采用距离测量传感器计算帆板与风扇之间的距离,采用高精度角度传感器对帆板的转动角度进行实时检测,通过键盘预置帆板的转角,采用PWM信号来调控风扇的转速,改变风力的大小,实现对帆板转角的精确控制。  【关键词】角度传感器;距离测量传感器;PWM信号;帆板控制  一、设计任务  1.赛题要求  设计并制作一个帆板控制系统,通过对风扇转速的控制,调节风力大小,改变
期刊
【摘要】本文重点探讨基于工作过程的教学方法在计算机教学课程中的应用。分析了高职院校课程模式的现状,提出了基于工作过程的教学模式改革的建议。任务驱动型的教学方法就是将教程的教学内容设计成一个个“任务”,将这些“任务”贯穿于教学过程的始终。每一个任务的设计要求来源于生产实际的工作过程,设计的整体思路是精心挑选出既满足教学大纲的要求,又能增强学生学习兴趣的“任务”。这是基于工作过程的教学方法的重点,也是
期刊
【摘要】在我国人身保险中,有关保险利益皆采用“同意推定主义”,在我国保险法的规定中有所体现,且我国《保险法》只规定投保人对被保险人具有保险利益,而不规定受益人对被保险人具有保险利益,这难以有效地遏制道德风险的发生。可见,我国《保险法》所规定的与投保人有保险利益关系的主体之范围过于狭窄。我国《保险法》应规定:人身保险合同在订立时投保人和受益人对被保险人应当具有保险利益;投保人、受益人对与其有其他经济
期刊
【摘要】本文作者基于广泛应用于质量管理工程的“PDCA”理论建设性的提出“S-PDCA”方法,并将其置入校园网建设的实践应用当中。将监测作为校园网建设管理过程中重要一环的“S?-PDCA”以其独特的项目质量监督控制方法,可以更加有效完成校园网建设任务。通过对“S-PDCA”方法在校园网建设期间的实践应用进行总结与分析后,作者发现采用新的方法后校园网建设更加高效与缜密,网络运维成本大幅下降。  【关
期刊
【摘要】诚信是中华民族的传统美德,是全人类所认同的道德规范。诚信,对于提升整个社会的道德水平,促进经济的发展、社会的稳定等方面具有重大的意义。当代大学生是国家的未来建设者和接班人,他们的诚信状况将直接关系到我国社会主义现代化建设的顺利进行。当今大学生的诚信问题是一个非常重要的议题  【关键词】诚信;缺失;大学生;考试作弊  从哲学的意义上说,“诚信”既是一种世界观,又是一种社会价值观和道德观,无论
期刊
【摘要】设计出应用于直流电动机的单闭环直流调速系统,结合控制理论的相关知识以及直流调速系统的新型算法,采用光电传感器测速,采用了目前比较流行的数字信号处理器(DSP)作为系统的控制器,其处理速度较高,正好符合本实现实时性要求高的特点;在主电路上,本系统采用了传统的三相桥式全控整流电路,从而使该系统更适用于调速系统。  【关键词】直流电机,TMS320LF2407,DSP控制  1.绪论  在工程实
期刊