基于FPGA的UART接口模块设计

发布者:心灵舞者最新更新时间:2011-09-21 来源: 互联网关键字:FPGA 手机看文章 扫描二维码
随时随地手机看文章

   UART(UniversalAnynchronousReceiverTransmitter,通用异步接收发送器)是广泛应用的串行数据传输协议之一,其应用范围遍及计算机外设、工控自动化等场合。虽然USB传输协议比UART协议有更高的性能,但电路复杂开发难度大,并且大多数的微处理器只集成了UART,因此UART仍然是目前数字系统之间进行串行通信的主要协议。

  随着FPGA的广泛应用,经常需要FPGA与其他数字系统进行串行通信,专用的UART集成电路如8250,8251等是比较复杂的,因为专用的UART集成电路既要考虑异步的收发功能,又要兼容RS232接口设计,在实际应用中,往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高。可以将所需要的UART功能集成到FPGA内部,实现FPGA与其他数字系统的直接通信,从而简化了整个系统电路,提高了可靠性、稳定性和灵活性。

  1  UART简介

  基本的UART通信只需要两条信号线(RXD,TXD)就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD是UART发送端,RXD是UART接收端。UART基本特点是:在信号线上有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应保持在逻辑高电平状态。发送器是通过发送起始比特而开始一个字符传送,起始比特使数据线处于逻辑0状态,提示接收器数据传输即将开始。数据位一般为8位一个字节的数(也有6位7位的情况),低位(LSB)在前,高位(MSB)在后。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。停止位在最后,用以标志UART一个字符传送的结束,它对应于逻辑1状态,UART数据帧格式如图1所示。

 

图1 UART数据帧格式

  2  UART功能实现

  UART可以分解为3个子模块:波特率发生器模块;发送模块;接收模块。UART的功能主要由VHDL硬件描述语言编程,图2是编译后生成的图元SCI,它包括了UART的最主要的部分,即发送模块和接收模块。SCI的外部口线可分为3类:

  一是与数字系统的接口,包括数据DATA[7.0],片选CS,读写RD、WR,状态RDFULL、TDEMPTY.这部分接口完成的功能是将待发送的数据写入SCI或从SCI读出已接收到的数据。

  二是串行通信接口2条线RXD、TXD,其中RXD是接收数据线、TXD是发送数据线,因此,SCI实现的是全双工通信的设计。

  三是系统控制线RESET、CLK,RESET为模块复位输入,CLK为模块时钟输入,通信的波特率由CLK来决定(实际的波特率是CLK/4)。

 

图2 UART的图元模块结构

  RDFULL、TDEMPTY为两个状态标志位,RDFULL为输入寄存器满标志,高电平表示已经接收到一个有效数据并存储到输入数据寄存器中,当CS、RD有效将数据读出后变为低电平无效。

  TDEMPTY为输出寄存器空标志,高电平表示由CS、WR有效写入到输出寄存器的数据已经发送完毕,可以向输出寄存器写入另外待发送的数据,低电平时表示数据目前正在发送中。

2.1 发送模块设计

  发送模块由发送控制进程、写数据进程、并/串转换进程、状态操作进程等进程构成。其中,最主要的是发送控制进程,在发送控制进程中声明了一个6比特的变量scit_v,由它的取值(状态机)状态来控制整个发送过程。scit_v被分为高四位的sh_t和低两位的sl_,tscit_v在系统复位后被赋初值28(011100B),每来一个时钟scit_v增量,每来四个时钟sh_t增量,当sh_t为0111B时发送起始位,sh_t为1000~1111B时发送8比特的数据。下面给出的是发送控制进程和发送接收数据进程的原代码:

  -----数据发送控制进程-----

  PROCESS(clk,reset)

  variablescit_v:integerrange0to63;

  variablescit_s:std_logic_vector(tdownto0);

  BEGIN

  IF(reset=0')'THEN

  scit_v:=0;--"000000"

  ELSIF(clkE'VENTANDclk=1')'THEN

  IF(scit_v<=27)THEN

  IF(tdEMPTY_s=0''ANDwr=1')'THEN

  scit_v:=28;--sci_v="011100"

  ELSE

  scit_v:=0;

  ENDIF;

  ELSE

  scit_v:=scit_v+1;

  ENDIF;

  ENDIF;

  scit_s:=conv_std_logic_vector(scit_v,6);

  scit<=TO_STDULOGICVECTOR(scit_s);

  ENDPROCESS;

  ------数据的串行发送-----

  PROCESS(sh_t)

  BEGIN

  CASEsh_tIS

  WHEN"0111"=>txd<=0';'

  WHEN"1000"=>txd<=din_latch(0);

  WHEN"1001"=>txd<=din_latch(1);

  WHEN"1010"=>txd<=din_latch(2);

  WHEN"1011"=>txd<=din_latch(3);

  WHEN"1100"=>txd<=din_latch(4);

  WHEN"1101"=>txd<=din_latch(5);

  WHEN"1110"=>txd<=din_latch(6);

  WHEN"1111"=>txd<=din_latch(7);

  WHENOTHERS=>txd<=1';'

  ENDCASE;

  ENDPROCESS;

  图3给出的是发送数据的仿真图。当CS和WR有效时写入数据55H,同时EMPTY被置成无效状态,开始数据的发送,从图中可以看到TXD上电平的变化过程,当发送结束后EMPTY变为有效。

 

图3 发送数据的仿真波形

2.2 接收模块设计

  UART接口模块由接收控制进程、读数据进程、接收数据串/并转换进程、状态操作进程等进程构成。

  在接收控制进程中同样声明了一个6比特的变量scir_v,由它的取值(状态机)状态来控制整个接收过程。其控制过程同发送模块相似,这里不再赘述。下面给出的是接收数据进程的源代码:

  ----接收行数据的串/转换进程---

  PROCESS(clk,reset)

  BEGIN

  IF(reset=0')'THEN

  d_fb<="00000000";

  ELSIF(clkE'VENTANDclk=0')'THEN

  IF((sh_r>="1000")AND(sh_r<="

  1111")AND(sl_r="01"))THEN

  d_fb(7)<=rxd;

  FORiIN0TO6LOOP

  d_fb(i)<=d_fb(i+1);--d_fb(0)被移

  出;d_fb(7)被移空

  ENDLOOP;

  ENDIF;

  ENDIF;

  ENDPROCESS;

  图4给出的是接收数据的仿真图。当rxd出现低电平后便启动一次接收过程,当8比特的数据接收完毕后,rxd变为高电平,同时将RDFULL信号置为高电平有效,RDFULL有效表示接收寄存器已经存储了一个刚刚接收到的数据,当CS和RD有效时将数据(实际接收到的数据是2AH)读出,同时RDFULL被置成无效状态。

 

图4 接收数据的仿真波形

  2.3 波特率发生器模块

  波特率发生器实际是一个分频器,分频器的输出连接到SCI的CLK输入端,且应为实际波特率的4倍频。因为在发送和接收控制进程中,状态机由一个6比特的寄存器(cit_v、cir_v)的高4位(sh_r、sh_t)进行控制,而高4位的状态改变需要4个CLK时钟(低2位向高4位进位)。当SCI与SCI进行通信时,通信双方波特率选择一致即可,当SCI同MCU通信时,SCI的波特率选择同MCU定时器的溢出率即可,当SCI需要同PC通信时,才将SCI的波特率定制成:1.2Kbps,2.4Kbps,4.8Kbps直到115.2Kbps,这时要求SCI的晶体振荡频率要足够高来满足波特率的匹配,或采用(11.0592或22.1184MHz)的特殊晶体来满足特率的匹配要求。

  3  结论

  将SCI下载到EPF10K10芯片中,40MHz有源晶振没有进行分频直接驱动SCI模块,用ICL57176进行RS485转换,用100m的网线进行了SCI与SCI之间全双工通信。测试结果表明波特率达到10Mbps时通信是正确的

关键字:FPGA 引用地址:基于FPGA的UART接口模块设计

上一篇:基于FPGA的TMR方法改进策略
下一篇:FPGA实现OFDM水声通信系统定时同步

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

基于FPGA的电子设计竞赛电路板的设计
  引言   全国大学生电子设计竞赛至今已成功举办了八届, 参赛人数越来越多, 竞赛规模越来越大。大学生电子竞赛在培养学生创新能力、促进高校学风建设及电子信息学科教学改革等方面起到了引导和推进作用。   大学生电子竞赛题目以模拟电子、数字电子、可编程逻辑器件及单片机技术为核心, 涉及电子仪器仪表、通信、高频无线电、自动控制等多学科内容。2007 年电子设计竞赛组委会专家指出: 电子设计竞赛的发展趋势将以模电、数电、FP2GA 为重点。因此, 对于参赛队员来说要获得较好的成绩, 选择合适的题目并进行培训至关重要。笔者针对以FPGA 为核心的竞赛题目特点及竞赛元器件要求, 设计制作了竞赛电路板, 组成框图如图1 所示。 图1
[单片机]
基于<font color='red'>FPGA</font>的电子设计竞赛电路板的设计
莱迪思即将举办网络研讨会,讨论最新的Avant平台——再创超低功耗新境界
莱迪思即将举办网络研讨会,讨论最新的Avant平台——再创超低功耗新境界 中国上海——2023年3月15日——莱迪思半导体公司,低功耗可编程器件的领先供应商,今日宣布将举办网络研讨会探讨Avant™平台,这是一款全新的FPGA平台,旨在将莱迪思领先的低功耗架构、小尺寸和高性能拓展到中端FPGA产品。 在网络研讨会期间, 莱迪思的技术专家将介绍莱迪思Avant平台和首款基于Avant的FPGA系列产品——莱迪思Avant-E™ ,帮助客户解锁全新的FPGA创新设计。 • 举办方:莱迪思半导体公司 • 内容:全新莱迪思Avant平台——再创超低功耗新境界 • 时间:北京时间 3月28日(周二)下午2:00 •
[嵌入式]
RS与Red Pitaya签订全球独家经销协议
据此协议,RS 将为这家测试和测量领域的创业公司经销革命性的新型开源测试与测量仪,产品价格亲民,面向大众市场;其独具特色的 Red Pitaya 技术提供简单的用户界面,所有人都能轻松上手。 北京2014年3月27日电 /美通社/ -- 全球领先的电子与维修产品高端服务分销商Electrocomponents plc 集团公司(LSE:ECM)旗下的贸易品牌 RS Components (RS)与测试和测量领域一家重要的新进竞争者 -- Red Pitaya -- 签订独家协议。根据协议,RS 将经销这家新锐公司的首款独创产品,也就是一种开放式单板仪表与控制台,这种标价不到500美元的产品可以替代多种昂贵的实验室仪器。
[测试测量]
英特尔 FPGA 助力 Microsoft Azure 人工智能
新特性:在近日举行的 Microsoft Build 大会上,Microsoft推出了 基于 Project Brainwave 的 Azure 机器学习硬件加速模型,并与 Microsoft Azure Machine Learning SDK 相集成以供预览。客户可以使用 Azure 大规模部署的 英特尔 ®  FPGA (现场可编程逻辑门阵列)技术,为其模型提供行业领先的人工智能 (AI) 推理性能。   “作为一家整体技术提供商,我们通过与 Microsoft 密切合作为人工智能提供支持。人工智能适用于从训练到推断,从语音识别到图像分析等各种使用场景,英特尔拥有广泛的硬件、软件和工具组合,可满足这些工作负载的需求。”  
[嵌入式]
详解远距离测温器数控系统设计
0 引言 在一些特殊的科研场所和工业生产单位,出于各种条件限制,仪表往往不能就近测量物体实际温度;而以往所使用的一些传感器在使用时受到各种环境因素的影响,使得传感器测量得到的温度不能精确地反映被测物体的温度。因此,人们需要找寻一种远距离测温器,能够精确测量物体温度,并能实时监控温度数据。 远距离测温器是一种被动式的温度遥感器,可用于远距离探测物体的温度,在科学研究和工业生产中发挥了重要作用。由于在使用时人们对测温器的测量范围、灵敏度要求很高,同时由于当今遥感仪器的设计越来越趋于低功耗高密度及小型化,因此,要求测温器的数据处理与控制系统具有高可靠性、高分辨率、实时性、体积小等特点。由于FPGA的功能强大,逻辑速度快,可以用多种
[测试测量]
详解远距离测温器数控系统设计
华为美产FPGA芯片告急,“备胎”能否接过大任?
华盛顿邮报引述总部位于美国加州的研究公司Mobile Experts首席分析师马登(Joe Madden)的话指出,华为的美国芯片等零部件库存将用尽。 报道指出,华为即将耗尽的正是用于包括5G基站在内的通信设备的FPGA芯片,来自美国半导体大厂赛灵思(Xilinx),可编程逻辑器件(FPGA)独步全球。 自孟晚舟及美国实体清单事件之后,华为一方面开启了备胎计划,搬出多年积累的自研芯片,另一方面华为早就预想到了美国制裁,早早的就在大量囤积可能受到制裁影响的零部件,以及转单不受美国影响的零部件供应商,来保障零部件供应。外界预估,华为的库存可保证一年的缓冲期。 此外,由于美国的制裁,华为转向扶持国内供应商,目前有多家国
[网络通信]
华为美产<font color='red'>FPGA</font>芯片告急,“备胎”能否接过大任?
罗姆推出FPGA用电源稳压器及模块
近年来,电子设备(应用)的多样化与高性能化以惊人的速度不断发展。可以说,这种趋势使各产品的开发周期缩短,并给半导体技术带来了巨大的发展空间。 在这种背景下,被称为FPGA的LSI为电子设备的开发作出了巨大贡献,它比以往任何时候更引人关注,市场规模不断扩大。 1.何谓FPGA FPGA为Field Programmable Gate Array的缩写,意为在现场(Field)、可擦写(Programmable=可编程)的、逻辑门(Gate)呈阵列(Array)状排布的半定制LSI,简言之,即“后期电路可擦写逻辑元件”。 产品售出后也可进行再设计,可顺利进行产品的更新以及新协议标准的应对。这是制成后内容即被固定的ASIC (A
[嵌入式]
罗姆推出<font color='red'>FPGA</font>用电源稳压器及模块
FPGA在多进制正交扩频通信系统中的应用
    摘 要: 讨论了高速无线分组网络中多进制正交扩频通信系统的设计和实现,其中在系统核心部分的扩频编码调制和解调等很多功能都由FPGA来完成,并对此进行了详细的介绍。     关键词: FPGA 扩频通信 多进制正交扩频 QPSK调制        门阵列逻辑电路在数字系统设计中得到广泛的应用,因此从GAL、EPLD直至目前的FPGA(现场可编程门阵列),容量和功能以及可靠性都得到很大的发展。目前的FPGA结构采用总线方式,布局布线方便灵活,Altera公司的FLEX10K系列FPGA掩埋带有入出寄存器的RAM块,更加方便地应用于CPU系统。随着器件的发展,开发环境进一步得到优化。Altera公司的Ma
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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