FPGA实现UART和MCU一体化设计

发布者:xi24最新更新时间:2011-04-08 来源: 现代电子技术关键字:FPGA  UART 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:现代数字电子系统设计正在朝着新的方向发展,即利用FPGA技术进行系境设计。介绍了一种利用FPGA来实现通用串行异步收发器(UA-RT)和控制通信的MCU的数字系统,底层设计模块采用VHDL硬件描述语言实现,并进行了仿真验证。该设计方法和理念为以后的计算机系统以及其他的数字电子系统提供了一个新的思路,应用此技术可以使系统设计更加紧凑、可靠。
关键词:计算机系统;FPGA;VHDL;UART;MCU;有限状态机

    计算机技术和微电子技术的发展为现代电子设计提供了新的方法和途径。传统的电子设计采用功能独立的分立元件进行功能组合从而实现特定的功能,计算机设计初期也一直采用这种模式。但是随着近代电子技术的进步,尤其是FPGA(Field Programmable Gate Array)的出现,使得电子设计和计算机设计都发生了很大的变化,尤其是在数字电子系统的设计领域。利用现场可编程门阵列FPGA可以实现任何数字器件的功能,而且还可以大大缩短设计时间,减少PCB的面积,提高信号的传输质量,提高系统的可靠性,增加设计的灵活性和可维护性。本文采用FPGA技术实现一个MCU与串行通信外设进行简易通信的平台,一方面了解了计算机的一些控制原理和工作流程;另一方面可以了解利用FPGA进行电子设计的优越性。

1 FPGA与电子设计
    用FPGA进行计算机I/O通信设备的开发设计,实现了功能类似Intel 8250及8251,美国半导体公司的16550串行通信接口的功能,同时实现了带有简单类忙编指令的微控制单元MCU来控制与外围I/O设备的通信。整个设计采用VHDL在Altera的QuartusⅡV6.0进行设计实现,并进行仿真验证。
1.1 FPGA的原理及其开发平台
    通常的FPGA由布线资源分隔的可编程逻辑单元构成阵列,又由司编程I/O单元围绕阵列构成整个芯片,排成这列的逻辑单元由布线通道中可编程内连线连接来实现一定的逻辑功能,也就是说分段的互连线可以通过可编程开关以任意方式连接起来形成逻辑单元的信号线。一个FPGA主要由逻辑阵列块(LAB)、I/O块、RAM块和可编程的行/列线等组成。
1.2 FPGA的开发软件及设计流程
    FPGA的开发软件一般由生产FPGA的厂商根据自己的产品特性提供专门的开发工具,目前主要流行的是Xilinx的ISE平台和Altera的Quar-tus平台。本文使用的是后者。使用该设计开发软件能够完成FPGA系统设计的流程基本包括了设计输入(原理图输入或HDL语言描述输入)、综合、布线、下载等工作。本文所设计的电子系统设计输入采用VHDL语言。
    选定了设计平台后,只要考虑所要设计系统的功能,借助集成开发环境即可完成想要的设计。一般来说,利用FPGA进行电子设计的完整的设计流程分为电路的设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真、配置下载与调试等步骤。由于FPGA的灵活性和设计的可重复性,可以保证在任何仿真或者验证步骤出现问题时都能根据错误定位返回相应的步骤,以进行更改或者重新设计。这是传统电子设计方法无法比拟的。

2 系统设计与实现
    本文所设计的系统实现了一个可简易汇编指令的微控制器MCU和一个计算机组成中的外围串行通信I/O设备。通过实现的一部分I/O输入/输出指令和条件跳转指令可实现与外设的通信控制。系统功能模块划分如图1所示。

1.JPG


2.1 串行通信外设的设计与实现
    在计算机系统组成中,串行通信占据重要地位,它的使用范围包括计算机与外部设备之间,计算机与计算机之间、甚至在进行前期CPU设计时都会用到。传统的设计方法是应用Intel公司的8250/8251或者美国半导体的16550等芯片,但因设计复杂,占用电路体积大,而且出现问题不容易跟踪定位,所以本文采用FPGA实现。将串行通信的关键器件UART集成到FPGA内部,增加系统的可靠性,缩小PCB板体积,使得系统更加紧致,且能根据需要进行适当的设计、扩充和裁剪。实现的该I/O设备功能划分如图2所示。

2.JPG


2.1.1 UART模块的设计与实现
    UART串行数据格式如图3所示,串行数据包括5~8位数据(可更改设置)、1位起始位、1~2位停止位、1位校验位。该模块主要由发送模块和接收模块两部分构成。在各自模块中分别由接收缓冲器、接收控制电路、发送缓冲区、发送控制电路、数据总线缓冲器、读写控制电路组成,逻辑框图如图4所示。

3.JPG

    UART模块的发送模块和接收模块公用复位信号、时钟信号和并行数据线,并且有各自的输入/输出模块和控制电路单元。
    (1)发送模块的设计。发送模块将从微控制器MCU送来的8位并行数据转换成图3所示的数据帧格式的串行数据发送出去。该模块分为3种工作模式:空闲模式、载入数据模式、移位模式输出模式。当并行的8位数据从微控制器MCU通过数据线写入发送FIFO(在以下2.1.2节实现)中时,发送模块自动将并行数据装入锁存器THR中,首先发送起始位0,然后根据LCR定义的数据格式将数据移位,并通过状态机和节拍器实现完整的发送序列,并以相应的波特率从TX发送出去。发送模块的状态机FSM如图5所示。
    (2)接收模块的设计。接收模块接收串行输入的数据(见图3),然后将其转换为并行数据送给微控制器MCU。与发送模块相同,也分为3种工作模式:空闲模式,检测起始位模式、移位输入模式。首先接收模块在接收时钟的控制下,不断地在RX端口检测输入数据的起始位,当检测到起始位后,接收模块由空闲模式转变为移位输入模式。此时通过RX端口进来的串行数据可能存在着些许抖动,因此需要添加消抖电路进行处理。消抖处理一般有两种办法,一种是在前端添加非门的R8触发器来完成,一种是类似软件的方式控制采集输入端的数据,并将前后采集的数据值进行比较,相同则保持,否则继续采集比较,这里采用的是后者。当接收完数据,更新接收缓冲区状态,以提供微控制器MCU查询,方便读取数据。接收模块的状态机FSME如图6所示。

4.JPG


2.1.2 输入/输出缓冲区(FIFC))的设计与实现
    FIFO(First In First Out)是一种先进先出的缓冲区结构。主要在通信过程中解决通信两端速度不匹配的问题。访问FIFO仅需要读/写控制线,不需要地址线,因此采用FIFO实现的缓冲区接口简单,读写方便。由于文中的微控制器MCU和I/O设备均在FPGA内部实现,因此采用同步FIFO实现,即写端口和读端口采用同一个时钟进行控制操作。该系统分别实现了位宽为8位,深度为256 b的缓冲区来对MCU发送给外设的数据和从外设接收的数据进行缓冲处理。实现方法可以采用Altera公司FPGA内部的资源实现。对FIFO的读/写控制可根据缓冲区的使用状态和MCU发送来的命令来实现。FIFO模块的结构图如图7所示。

5.JPG


    读信号和写信号由微控制器MCU通过向I/O设备进行数据输入和输出操作产生。空标志和满标志用于MCU探测缓冲区状态,应用查询方式对外设进行读写数据操作。对于发送缓冲区,当缓冲区处于满状态时表明已经没有可用的存储空间缓冲数据,此时不允许进行写操作;对于接收缓冲区,当缓冲区处于空状态时,表明没有从设备收到任何的时间,此时不允许微控制器MCU从外设接收缓冲区读取数据。
    通过QuartusⅡ产生的FIFO如图8所示。

6.JPG


    图8中,aclr是异步复位信号;clock是时钟输入;rdreq和wrreq分别是读和写信号线;data[7…O]是FIFO的并行数据输入端;q[7…0]是FIFO的并行数据输出端;empty和full分别为FIFO空满标志的状态线;usedw[7…O]为当前状态下FIFO已经使用的存储量,即FIFO中已经写入并保存的数据量。
2.2 微控制器MCU的设计与实现
    在一个计算机系统中,中央处理器处于核心控制地位,它不仅是参与运算的核心器件,而且是控制外设的中枢。一般情况下,它实现了一定的功能指令集,用来由用户自己编程控制外部设备动作或者进行一些算术逻辑运算。本文中所实砚的微控制器MCU主要以实现对外设的控制,实现了对外设端口的读写控制以及一些必要的程序控制指令。在一个微控制器的设计中,指令系统的设计尤其重要,它不仅关系到控制器的设计,也关系到软件程序的设计方法。指令系统的设计分为指令集设计和指令动作设计两部分,前者侧重于控制器的总体功能;后者侧重于指令的具体实现。进行指令设计时首先要进行指令分析,根据系统所要完成的功能,完成所需指令的功能设想,这是指令设计的基础;然后分析指令该放在什么地方,微控制器如何取指令和对指令进行识别等操作;最后确定指令格式以及每个指令完成指定功能所需要的一系列基本动作过程。可以使用ALtera公司FPGA内部的ROM作为程序存储器,详细的实现过程参看参考文献。通过此系统进行分析,设计实现如表1所示指令。每条指令功能的完成具有取指令、指令译码、执行指令阶段。指令的分析译码执行由状态机逻辑控制具体实现。

7.JPG



3 系统仿真验证
    用硬件描述语言VHDL所实现的设计输入,需要经过完整的编译过程才可以进行仿真验证,甚至下载配置。整个编译过程包括4个阶段:分析/综合(Analysis&Synthesis)、适配(Filter)、装配(Assembier)、时序分析(Timing Analyzer)。
    分析/综合阶段使用QuartusⅡ中Integrated综合用VHDL实现的输入文件,生成后续过程使用的EDIFice网表文件(.edf)。适配阶段使用由上一阶段建立的网表数据库,将工程的逻辑和时序要求与器件的可用资源相匹配,这个过程会将每个逻辑功能分配给最佳的逻辑单元位置,并选定相应的互联路径和引脚分配,为以后的布线和时序分析做准备。装配阶段根据上一阶段的资源匹配生成可供下载配置的功能文件。时序分析是对所有的逻辑进行分析,根据适配阶段的资源匹配情况进行时序分析,验证最佳情况(最快速率等级的最小延时)下的时序。在Quartus中可以通过选择Start Complieation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块,还可以通过选择omplierTool(Tools菜单),在Complier Tool窗口运行该模块,以启动编辑器模块。在Complier Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关的窗口。
    完成上述编译阶段以后,就要编程实现数据的发送和接收工作。在本例中,为了方便测试,在外设内部通过将发送线直接连接至接收线进行内部环路的自检测试,外设缓冲区状态采用轮询方式工作。测试程序编写如下:
    8.JPG
    上述简单程序段所对应的微控制器码加载在程序存储器中,如图9所示。

9.JPG


    建立仿真输入文件,设置时钟信号和发送总线数据即可。首先对串行通信设备进行仿真测试,测试输入如图10所示。串行通信设备的仿真结果如图11所示。

10.JPG


    从仿真结果可以看出,串行通信设备已达到预定的功能要求。
    加入微控制器MCU作用后,使用图8所对应的类汇编程序进行测试。在此例程中,只简单发送了一个8位数据来说明问题,如图12所示。
    系统仿真结果如图13所示。

11.JPG


    可以看出程序的执行结果如预想一样,最终在数据总线上显示的是接收到并从接收缓冲区读出的数据。说明加入MCU和FIFO缓冲区后系统环路测试功能正常,已达到设计要求。

4 结语
     在当今电子设计领域,尤其是电子核心器件和设计软件落后的情况下,应用传统的电子设计方法既浪费时间,且成本可能太高,甚至有时候性能也不能满足要求,通过FPGA技术进行设计可以使性能得到大大改观。本文就是利用FPGA技术实现的一个计算机外围I/O设备和一个简单的微控制器。随着FPGA技术的进一步成熟和发展,它的性能和灵活性会更加出色,将来完全有可能将一台计算机系统在其内部,并搭配外围接口电路,而且性能会更加突出。随着计算机技术应用的扩大,尤其是嵌入式计算机的广泛使用,应用FPGA技术进行现代数字系统的设计,会使系统更加紧致,功能更加完善,功耗更加降低,性能更加稳定。因此,应用FPGA进行电子设计势在必行。

关键字:FPGA  UART 引用地址:FPGA实现UART和MCU一体化设计

上一篇:首个“全功能”PLD系列的成员量产【莱迪思】
下一篇:AXISLib-AVX优化DSP和数学库【GE】

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

莱迪思CrossLinkPlus FPGA 简化基于MIPI的视觉系统开发
如今,嵌入式视觉系统设计师需要迎合众多市场趋势。例如,现在的设计使用的传感器越来越多,便于收集更多数据或实现新的功能。比如在汽车市场,几十年前,汽车厂商在车辆上安装一个备份摄像头就算是创新之举了,而现在他们已经开始将摄像头用于道路偏离监控、速度标志牌识别和其他众多智能驾驶应用。 同时,嵌入式视觉系统设计师正逐渐采用符合移动产业处理器接口(MIPI)联盟标准的组件。 MIPI起初是为移动市场开发的,它定义了移动设备的设计人员在在构建高性能、高成本效益、可靠的移动解决方案时所需的硬件和软件接口标准。在过去几年中MIPI已经成为开发嵌入式系统的主流标准。包括工业和汽车等领域的各类应用的设计人员都已经意识到这一点,并且开始寻找方法来利
[嵌入式]
莱迪思CrossLinkPlus <font color='red'>FPGA</font> 简化基于MIPI的视觉系统开发
基于FPGA的核物理实验定标器的设计与实验
定标器在大学实验中有很广泛的应用,其中近代物理实验中的核物理实验里就有2个实验(G-M计数管和 吸收)要用到高压电源和定标器, 而目前现有的设备一般使用的是分立元器件,已严重老化,高压极不稳定,维护也较为困难;另一方面在许多常用功能上明显欠缺,使得学生的实验课难以维持。为此我们提出了一种新的设计方案:采用EDA进行结构设计,充分发挥FPGA(Field Programmable Gate Array)技术的集成特性,抛弃原电路中众多晶体管,成功地对系统中的大量处理电路进行了简化和集约,提高了仪器的可靠性和稳定性,有利于电路的测试和检修。改进方案后的定标器不仅完善了原有的功能,还增加了数据存储、RS232接口等功能,可以方便地与P
[单片机]
基于<font color='red'>FPGA</font>的核物理实验定标器的设计与实验
再次携手ARM、MIPS,FPGA进入新时代?
短短几天之内,先是Altera宣布取得MIPS32架构的授权,接着Xilinx又和ARM全面合作。两个消息的接踵而至,让利用FPGA进行设计的工程师得有一段时间进行消化。毫无疑问,当FPGA的两大巨头和微控制器最流行的两大架构分别迅速达成了协议,这会对他们产生切身的影响,但影响究竟会有多大,恐怕一时半会儿很难看清楚。 股市是晴雨表,美国时间19日,当Xilinx和ARM合作的消息公布后,Xilinx的股票涨了1.6%,而ARM的涨幅则超过3%。这表明了金融界对此事前景的看法。 但必须承认的是,FPGA与微控制器两个产业的合作并不新鲜。熟悉Altera产品线的工程师们都清楚,除了Altera自己的Nios核之外
[EEWORLD独家]
基于FPGA的USB接口IP核设计
摘要: 重点阐述了USB接口IP核关键模块的设计和验证,用VerilogHDL对USBIP核协议RTL级代码编写,对USB协议的数据流、传输等进行了深入的分析,在Xilinx ISE软件平台上进行了FPGA综合,并在Xilinx FPGA开发板上调试成功。通过在ModelSim6.0上仿真、ISE9.1上综合并在FPGA开发板上验证,最后采用0.35μm CMOS工艺实现版图设计,工作频率120 MHz,3.3 V电压时工作电流9mA,静态电流40μA。结果表明文中USB接口IP设计是可行的。 关键词: IP;通用串行总线;VerilogHDL;协议层;SIE USB(通用串行总线)作为一种外设连接技术,是计算机外设连接技术的重
[嵌入式]
给大学生学习ARM和FPGA的建议
  对于初学者来说,要学的知识点很多,到底从哪里下手,人们常常感到非常迷茫。大一学生先从C语言开始入门,在大一阶段由于对计算机还非常陌生,因此不可能写出一个具有完整图形界面的软件,重点以“与硬件无关的计算方法、数据结构”为基础学习C语言,至少练习编写一万行C代码,否则不会找到编程的感觉,也体会不到编程乐趣,很多人就是因为缺乏一定量的训练,所以对编程没有兴趣,以至于未到毕业时就全部忘记了,程序设计是一项实践性很强的实践活动,没有大量的实践作为基础是很难入门的,因此我认为编写一万行代码是判定是否入门的依据。请初学者记住:当你编写了一万行代码时,这是你能够从事专业的开始,否则你不要期望在这个领域混下去。与此同时,C语言也是学习和使用Ve
[单片机]
基于FPGA的简易 DDS 信号发生器的设计
前言 DDS 是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写,是一项关键的数字化技术。与传统的频率合成器相比, DDS 具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。作为设计人员,我们习惯称它为信号发生器,一般用它产生正弦、锯齿、方波等不同波形或不同频率的信号波形,在电子设计和测试中得到广泛应用 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? DDS 技术是一种全新的频率合成方法,其具有低成本、低功耗、高分辨率和快速转换时间等优点, 对数字信号处理及其硬件实现有着很重要的作用。DDS 的基
[测试测量]
基于<font color='red'>FPGA</font>的简易 DDS 信号发生器的设计
新冠病毒让笔记本电脑重获生机:莱迪思为笔记本新功能
新冠病毒的爆发让人们的工作状态发生了巨大变化,笔记本电脑市场也因此繁荣了起来。早在病毒蔓延全球之前,行业分析公司 Gartner 就曾在 2020 年 1 月指出:“Windows 10 升级的强劲业务需求让 PC 市场自 2011 年以来首次出现增长,尤其是在美国、欧洲、中东和非洲(EMEA)以及日本市场。”为了在这个日益兴盛的市场中保持竞争力,笔记本电脑的 OEM 厂商希望通过采用新技术和增添新应用来提高生产力,从而使其产品获得差异化优势。虽然其中许多技术最初是用于智能手机等设备,但它们同样可以在笔记本电脑上大放异彩,使之一方面拥有成熟笔记本电脑的强大功能,另一方面又获得移动设备的便捷和安全性,并很好地适应周围环境。 笔记
[嵌入式]
新冠病毒让笔记本电脑重获生机:莱迪思为笔记本新功能
一种基于FPGA的全光纤电流互感器控制电路设计
  电流 互感器 作为高压电网检测主要设备,不仅为电能的计量提供参数,而且是为继电保护提供动作的依据。随着国家智能电网和特高压电网的发展,传统电磁式电流 互感器 逐渐暴露出其致命缺陷,例如高电压等级时绝缘极为困难、更高电压下易磁饱和导致测量精度下降等。相比之下,光纤电流 互感器 具有抗电磁干扰能力强、绝缘可靠、测量精度高、结构简单和体积小巧等诸多优点,是当前研究热点。作为光纤电流互感器的核心部件,其检测和控制电路对电流检测精度和范围具有非常重要的影响。   目前检测和控制电路实现主要有两种方案,一种是以数字信号处理芯片( DSP )为核心,由于 DSP 的速度越来越快,使得 DSP 成为很多数据处理和信号检测方案
[嵌入式]
一种基于<font color='red'>FPGA</font>的全光纤电流互感器控制电路设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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