简化UART功能的FPGA实现

发布者:平章大人最新更新时间:2012-09-03 来源: 21ic关键字:UART  FPGA 手机看文章 扫描二维码
随时随地手机看文章
   

1 引 言

在ARM+FPGA系统结构中,实现基于ARM的嵌入式处理器和FPGA之间通信最简单的方法就是通过异步串行接口EIARS232C。考虑选用集成有UART(Universal Asynchronous Receiver / TraNSmitter )控制器的嵌入式处理器(例如,EP7312),那么嵌入式处理器一侧就具有了利用异步串行接口收、发通信的能力。然而,FPGA内部并不拥有CPU控制单元,无法处理由UART控制器产生的中断,所以FPGA一侧不能利用现成的UART控制器构成异步串行接口,必须将UART控制器的功能集成到FPGA内部。

同一个系统中的ARM与FPGA之间属于短距离通信连接,他们之间的异步串行通信并不需要完整的UART功能,那些RS232标准中的联络控制信号线可以省略,仅仅保留收、发数据线和地线,这样给UART功能的FPGA编程实现带来了极大的省略。嵌入式处理器EP7312带有2个支持异步串行通信RS232的16550类型的UART,UART1不仅有TX,RX,而且支持Modem控制信号,UART2只有标准的TX,RX以及地信号,刚好能够利用UART2与FPGA实现通 信。图1是简化的异步串行通信连接示意图。

2 简化UART功能的FPGA实现

本文将详细地讨论简化UART功能在FPGA中的实现方法。简单回顾一下异步串行通信的数据格式。图2表明在异步传送中串行发送一个数据字节的位定时关系(图中没有包括奇偶校验位)。发送一个完整的字节信息,首先是一个作为起始位的逻辑“0”位,接着是8个数据位,然后是1个、1+1/2个或2个停止位逻辑“1”位,数据线空闲时呈现为高或“1”状态。在字符的8位数据部分,先发送数据的最低位,最后发送最高位。每位持续的时间是固定的,由发送器本地时钟控制,每秒发送的数据位个数,即为“波特率”。起始位和停止位起着很重要的作用。显然,他们标志每个字符的开始和结束,但更重要的是他们使接收器能把他的局部时钟与每个新开始接收的字符再同步。异步通信没有可参照的时钟信号,发送器随时都可能发送数据,任何时沿的出现时间,从而正确地采样紧接着的10~11位(包括开始位、数据位和停止位)。接收器的时钟与发送器的时钟不是同一个,因此,接收器采样点的间隔跟由发送器时钟所确定的位间隔时间不同,接收器一定不能让他的相对时钟速度导致采样错误。

比较而言,UART发送器部分发送串行数据过程的实现相对容易,只要对发送出去的数据电平做持续时间的定时即可。下面先对UART接收器部分的FPGA实现方法做详细的描述。

2.1 UART接收器的FPGA实现

根据以上的叙述,由于串行数据帧与接收时钟是异步的,所以接收器功能实现中的关键是接收器时钟与每个接收字符的同步。一个有效的方法是接收器采用高速率时钟对串行数据进行采样,通常采样频率是位时钟频率的整数倍。理论上倍数越高接收数据各位的分辨率越高,实际中,一般最大选择16倍。

接收器应该尽可能地在靠近位周期的中心处对每位采样。如果接收器能很好地预测起始位的开始,那么他可在起始位的下降沿到来之后,等待半个位周期再采样数据位。此后,接收器每等待一个位周期采样一个数据位,直至收到最后一位为止。倘若接收时钟的频率足够接近发送时钟,使得最后位能在离该位的精确中心位置半个周期内对他采样,以上方案就能正确地工作。这意味着接收时钟相对于发送时钟在10~11个时钟周期内,其增加和减少应小于半个位的时间间隔。因此,要求收发双方2个时钟的误差容限在5%以内。

本文中接收器的实现采取5倍速采样法,也就是接收采样频率是串行数据位频率的5倍。图3是将图2中的起始位和部分数据位放大,又把每个信息位分成5等份,每等份的时间宽度设为Ts。以5倍频对信息位进行采样时,每个信息位都将可能被采样到5次。当处于空闲状态并检测起始位时,最早检测到起始位低电平的时刻必将落在S0阴影区,每次具体的采样点会在S0阴影区随机变化。检测到起始位低电平后,间隔7×Ts时间,正好是第1位数据位的中间1/5处(图3中D2阴影区)。此后的数据位和停止位的采样间隔都是5×Ts,所有采样点均落在码元的中间1/5处,采样数据最可靠。采样时钟的产生由计数器控制,计数器时钟为位时钟5倍频。

为了避免噪声引起的起始位检测错误,要对起始位采样两次。从空闲状态,第1次采样为低电平后,间隔2个Ts再采样一次,如果仍为低电平,才认定为有效的起始位;如果为高电平,再回到空闲状态等待重新同步。

另外,在采样停止位的时候也可以加入保护机制: 当停止位采样值为高电平时,认为同步和数据正确,装人数据寄存器,否则认为同步或传输错误,此次采样的字符作废,将其舍弃。简化的UART功能框图如图4所示。EP7312所带的UART控制器16550中,FIFO的深度为16 B。实际FPGA实现时根据具体应用的不同,可以用RAM取代FIFO,本文只叙述图4中接收器和发送器的实现方法。

在具体使用硬件描述语言VHDL编程实现时,接收器5倍速采样法的关键部分使用了一个状态机,状态转换图如图5所示。

2.2 UART发送器的FPGA实现

UART发送器的FPGA实现相对于接收器来说简单了很多。没有数据要发送时,发送数据寄存器为空,发送器处于空闲状态;当检测到发送数据寄存器满信号后,发送器即发送起始位,同时8个数据位被并行装入发送移位寄存器,停止位紧接着数据位指示数据帧结束。只有发送数据寄存器为空时,RAM或FIFO中的待发送数据才能被装入。程序中使用计数器保证各位周期定时正确,仍使用一个状态机描述发送过程,图6是发送器状态机状态转换示意图。

3 仿真与结论

这里选用ACTEL公司的APA600系列的FPGA芯片,仿真工具使用MENTOR公司的ModelSim。图7是接收器模块的功能仿真时序图,其中只截取了一个接收数据帧的时间长度。从图7中可以看出一个假起始位被正确判断,接收器与接收数据实现同步,串行数据被准确接收。状态机状态:i代表空闲;rx代表起始位确认;s代表数据采样和停止状态确认;g代表数据正确接收。

图8是发送器模块功能仿真时序图,也是只截取了一个发送数据帧长。图8中状态机状态:first代表空闲;second(时间太短,图中未显示相应文字)和third代表发送数据和停止位。

我们已经将上述实现简化UART功能的编程方法应用到了ARM+FPGA结构系统的编/拆和发送/接收串行信息帧模块中,工作稳定,有较高实用价值。

关键字:UART  FPGA 引用地址:简化UART功能的FPGA实现

上一篇:DARPA授权RF-FPGA项目合同 开发可编程射频前端技术
下一篇:可编程无线电遥控多路开关系统设计

推荐阅读最新更新时间:2024-05-02 22:18

TI将数字电源管理应用于Xilinx FPGA设计
日前,德州仪器 (TI) 宣布,Xilinx 在其最新 Virtex-6 ML605 现场可编程门阵列 (FPGA) 评估套件中采用 TI 电源管理技术简化电源设计。TI Fusion Digital Power 控制器可为 FPGA 用户提供高级电源管理功能以及高度的设计灵活性,可实时监控电源系统的工作情况。 TI UCD9240 集成型电源系统控制器加上互补功率级 IC 与插入式模块,可智能管理目前的高密度高性能电源系统,如电信与数据通信基础局端应用中的电源系统。该控制器支持多达 4 组独立数字控制环路以及多达 8 个相位。只需两颗 UCD9240 器件便可管理 Virtex-6 FPGA ML605 评估
[嵌入式]
TI将数字电源管理应用于Xilinx <font color='red'>FPGA</font>设计
基于Actel反熔丝FPGA的高速DDR接口设计
  0 引言   随着航天技术的发展,FPGA 等大规模逻辑器件越来越成为不可缺的角色; 同时处理数据量的增大、以及各类型接口电路的交叉使用,使得合理、可靠的高速接口设计成为衡量设计优劣的关键。而由于空间环境的特殊性,导致近年来在轨卫星产品中单粒子翻转( SEU) 频发,使得设计人员必须考虑将以SRAM 为基础的FPGA 设计移植到更为可靠的ASIC或反熔丝FPGA.   DDR( Double DataRate) 是双倍速率读写技术的意思。传统的数据处理方式在1 个时钟周期内只传输1 次数据,是在时钟的上升期进行数据传输; 而DDR 内存则是1 个时钟周期内传输2 次数据,能够在时钟的上升期和下降期各传输1 次数据,因此
[嵌入式]
Molex 宣布收购 BittWare公司
( 新加坡 – 2018 年5月29日) 电子解决方案领域全球领先的制造商 Molex 宣布收购 BittWare, Inc.,后者是一家全球领先的计算系统的提供商,专业提供现场可编程门阵列 (FPGA),产品可部署在数据中心的计算应用以及网络数据包的处理应用中。 Molex 高级副总裁 Tim Ruff 表示:“在众多最优秀FPGA 计算平台开发商中,BittWare 引入的板件等级的计算技术、集成系统和软件上的专业技术具有极大的广度,给人留下深刻的印象。” Molex 旗下公司 Interconnect Systems International 的总裁 Mark Gilliam 表示:“此次收购扩展了 Mole
[嵌入式]
Molex 宣布收购 BittWare公司
实现FPGA与PC的串行通信
摘 要:本文主要介绍了基于FPGA技术实现与PC串行通信的过程,给出了各个模块的具体实现方法,分析了实现结果,验证了串行通信的正确性。 引言 串行通信即串行数据传输,实现FPGA与PC的串行通信在实际中,特别是在FPGA的调试中有着很重要的应用。调试过程一般是先进行软件编程仿真,然后将程序下载到芯片中验证设计的正确性,目前还没有更好的工具可以在下载后实时地对FPGA的工作情况和数据进行分析。通过串行通信,可以向FPGA发控制命令让其执行相应的操作,同时把需要的数据通过串口发到PC上进行相应的数据处理和分析,以此来判断FPGA是否按设计要求工作。这样给FPGA的调试带来了很大方便,在不需要DSP等其他额外的硬件条件下,只通过串口
[模拟电子]
实现<font color='red'>FPGA</font>与PC的串行通信
使用FPGA快速构建高性能节能边缘AI应用
边缘推理处理器实现人工智能(AI)算法的设计人员不断需要降低功耗和开发时间,即使处理需求不断增加。现场可编程门阵列(FPGA)提供了速度和功率效率的有效组合,用于实现边缘AI所需的神经网络(NN)推理引擎。但是,对于不熟悉FPGA的开发人员,常规的FPGA开发方法似乎很复杂,通常会导致开发人员转向不太理想的解决方案。 本文介绍了Microchip Technology的一种简单方法,该方法使开发人员可以绕过传统的FPGA开发,使用FPGA和软件开发工具包(SDK)创建经过训练的NN,或者使用基于FPGA的视频工具包执行智能嵌入式视觉应用程序开发。 为什么要在边缘使用AI? 边缘计算为工业自动化,安全系统,智能家居等各个
[嵌入式]
使用<font color='red'>FPGA</font>快速构建高性能节能边缘AI应用
采用FPGA实现广播视频基础系统的设计要点
HDTV视频内容创作的繁荣以及在带宽受限的广播信道环境中传送这些视频内容的方法,不断催生新的视频压缩标准和相关视频图像处理设备。以前只有有线电视和卫星电视运营商提供视频传送业务,现在电信公司也对这一领域产生了兴趣,他们采用最新的视频编码/解码器(CODEC)和视频处理技术,并通过IPTV将数字视频发送给用户。 整个数字广播基础架构开始于电视工作室或摄影制作室的视频内容创作。创作过程接口使用串行数据接口(SDI)将原始视频发送到存储设备或某些类型的非线性编辑器(NLE),用于视频编辑和性能增强。编辑好的视频在编码时再用MPEG-2、JPEG2000或H.264进行压缩,然后通过电缆、卫星、地面广播或最新的IPTV技术网络发送给用
[嵌入式]
赛灵思异构3D FPGA 面向下一代线路卡
    赛灵思公司(Xilinx)宣布正式发货 Virtex-7 H580T FPGA —全球首款3D异构All Programmable产品。Virtex-7 HT采用赛灵思的堆叠硅片互联 (SSI)技术,是提供业界带宽最高的 FPGA,可提供多达16个28 Gbps收发器和72个13.1 Gbps收发器,也是唯一能满足关键Nx100G和400G线路卡应用功能要求的单芯片解决方案。结合赛灵思领先的100G变速机制(gearbox)、以太网 MAC、OTN 和Interlaken IP,Virtex-7 HT可为客户提供不同的系统集成度,从而满足他们在向CFP2光学模块转型时对空间、功耗和成本的要求。 、 采用 SSI
[嵌入式]
基于FPGA的X射线安检设备控制器设计
   摘 要 :依据X射线安检设备各部分工作原理及控制要求,本文采用FPGA和以太网技术设计了基于FPGA的X射线安检设备控制器。本文以Xilinx公司的ISE为开发平台,在ModelSim中仿真了控制器各个模块的功能,得到了符合控制器要求的波形。    引言   X射线安检设备广泛应用于机场、车站、海关、港口、仓库等地。近年来由于犯罪分子大量使用先进的伪装技术,使传统的安检设备显得力不从心。针对上述情况,本文设计了基于FPGA的X射线安检设备控制器,该控制器通过加载Thin TCP/IP接入以太网,使得多台PC共同对可疑物品的图像数据进行分析,进而提高鉴别精度。    工作原理及控制要求   X射线安检设备主要由X射
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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