简化UART功能的FPGA实现

最新更新时间:2012-08-30来源: 电源技术关键字: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结构系统的编/拆和发送/接收串行信息帧模块中,工作稳定,有较高实用价值。

  参考文献 

  1]张明峰.PIC单片机软件异步串行口实现技巧[J].单片机与嵌入式系统应用,2003,(4).

  2]Lattice Reference Designs .Universal asy - nchron - ous receiver/ tuansmitter . 

  3]邬宽明.单片机外围器件实用手册数据传输接口器件分册[M].北京:北京航空航天大学出版社,1998. 
关键字:UART  FPGA实现 编辑:探路者 引用地址:简化UART功能的FPGA实现

上一篇:基于DDS+PLL技术的高频时钟发生器
下一篇:支持13节电池的超低功耗锂离子电池保护LSI实现量产

推荐阅读最新更新时间:2023-10-17 15:02

FPGA实现DSP与液晶显示器的快速接口
随着器件集成工艺的发展和Soc器件的出现,现在的数字系统正在越来越多地采用可编程器件设计。这样,不仅开发周期短,而且在价格和使用难易度上也显示了很大的优势。更为重要的是,还能利用器件的现场可编程特性,根据应用的要求对器件进行动态配置,简便易行地完成功能的添加或变化。 在高速的数字信号处理系统中,要涉及到大量的计算,为了提高运算速度,正大量使用DSP器件。目前的可编程器件,其时钟频率可以很高,在高速数字信号处理系统中将发挥越来越大的作用。因此,DSP+FPGA的方案正越来越多地被电子工程师们采用。 在很多的实际数字系统中,往往需要良好的用户界面,其中LCD是被大量采用的显示器件。由于LCD是典型的慢速设备(相对于DSP来讲)
[嵌入式]
利用Freeze技术的FPGA实现低功耗设计
由于更严格的功耗限制、规范和标准要求,系统设计师现在比什么时候都关注功耗问题。对于下一代的设计,功耗预算通常得到稳定的控制,或者降低,但却增加了更多的特性和处理能力需求。通常,尽管产品特性和性能需求不断增加,功耗预算还是很紧张,功能和性能的增加与降低功耗的目的是相矛盾的。摩尔定律效应缩小了工艺的尺寸加大了功耗问题,而且由于高的晶体管泄漏增加了静态功耗。 如数码相机、无线手持设备、智能电话和多媒体播放器这些电池供电应用的增长,推动了对低功耗半导体器件的需求。这种需求的爆发性增长加之对节能的不断提高的要求,特别是与电池寿命相关的节能要求,导致对低功耗半导体技术的全球性需求。其结果是,半导体设计师开始研究如何在不增加系统的功率条件下
[电源管理]
利用Freeze技术的<font color='red'>FPGA</font><font color='red'>实现</font>低功耗设计
Flash编程器的FPGA实现
1 引言 闪速存储器(FLASH Memory)以其集成度高、成本低、使用方便等许多优点,广泛应用于通讯设备、办公设备、家用电器、医疗设备等领域。利用其保存信息的非易失性和在线更新数据参数的特性,可将其作为具有一定灵活性的只读存储器(ROM)使用。 现在的数字电路应用系统设计中,经常遇到大容量的数据存储问题。Flash由于容量大、存储速度快、体积小、功耗低等诸多优点,而成为应用系统中数据存储器件的首选。由于在研制实时信号处理系统时,需要一块大容量的Flash来存储坐标变换的数据作查找表,因此面临一个如何对Flash进行编程,将数据写入Flash的问题。由于我们选用的Flash芯片为SST39SF010
[嵌入式]
Flash编程器的<font color='red'>FPGA</font><font color='red'>实现</font>
Altera首次利用Intel EMIB技术成功实现DRAM和FPGA的异构
Altera公司日前公开业界第一款异构系统级封装(SiP,System-in-Package)器件,集成了来自SK Hynix的堆叠宽带存储器(HBM2)以及高性能Stratix 10 FPGA和SoC。Stratix 10 DRAM SiP代表了新一类器件,其特殊的体系结构设计满足了高性能系统对存储器带宽最严格的要求。 该器件利用Intel的EMIB技术,实现了DRAM与FPGA的互联互通问题。EMIB技术采用高性能、高密度硅片短桥接在单个封装中将多个管芯连接起来。EMIB技术的管芯之间走线非常短,支持Altera以高性价比方式构建异构SiP器件,与基于中介层的解决方案相比,性能更好,吞吐量更大,而功耗更低
[嵌入式]
基于FPGA的数字音频广播信道编码器的实现
    摘要: 介绍了数字音频广播(DAB)信道编码的原理和关键技术,并应用单片FLEX10K100系列FPGA实现DAB信道编码器。     关键词: 数字音频广播(DAB) 信道编码 FPGA 1 数字音频广播(DAB)发射系统及信道编码器 DAB是继调幅和调频广播之后的第三代广播体系。与模拟广播相比它不仅可以提供高质量的声音信号(CD音质),也可以提供数据、图像等多种其他附加服务。它可以保护在高速移动接收时的声音质量,具有很强的抗干扰能力,在同要瓣频带宽度和环境下,DAB可以提供高质量的多种多样的广播节目。    
[应用]
基于DSP/FPGA的超高速跳频系统基带设计与实现
跳频通信系统作为扩频通信体制中的一种重要类型,以其出色的抗远近效应、抗干扰能力,在军用、民用通信领域得到了广泛应用。跳频通信方式是指载波受一伪随机码的控制, 不断地、随机地跳变,可看成载波按照一定规律变化的多频频移键控(MFSK)。跳频通信的频率受伪随机码控制不断跳变,跳频图案可以设置几千乃至上万个,收发两端只要跳频图案一致,跳频时间同步,就可在信息传输过程中不断跳变空间频率信道,实现跳频通信。 近年来随着半导体工艺和计算机技术的发展,dsp(Digital Signal Processor)、FPGA(Field Programmable Gates Array)等现代信号处理芯片越来越成熟和普遍使用,以前只能理论研究的跳频技术
[嵌入式]
基于DSP/<font color='red'>FPGA</font>的超高速跳频系统基带设计与<font color='red'>实现</font>
基于模糊控制的迟早门同步器及其FPGA实现
  在数字通信系统中,必须以符号速率对解调器的输出进行周期性地采样.为此,接收器需要一个采样时钟信号,这个时钟信号的频率和符号速率相等,相位则必须保证采样时刻是最佳的.在接收器中获得这个采样时钟的过程被称为符号同步或符号定时恢复.迟早门(Early-late Gate)是实现符号同步的重要方法之一,广泛运用于各种数字通信系统中.本文提出的基于模糊控制的迟早门与传统的迟早门相比,具有同步速度快、过冲小、相位抖动小等优点.在其FPGA实现中,采用了离线计算实时查表控制的方法,并针对实际应用的情况,将控制表转化为逻辑方程,进一步简化了电路.   1 迟早门简介   一阶闭环平衡双积分型迟早门结构如图1所示.  
[嵌入式]
基于模糊控制的迟早门同步器及其<font color='red'>FPGA</font><font color='red'>实现</font>
基于FPGA的IPV6数字包的拆装实现
  笔者在参加国家“863”重大专题项目“高速密码芯片及验证平台系统”的过程中,遇到了将IPV6数据包的包头和数据部分拆开,然后在数据部分送密码芯片进行加/解密处理,最后再将处理后的数据部分与包头重新封装为数据包的课题。以往对IP包进行拆装多利用软件实现,但本项目涉及到配合高速密码芯片(处理速度在2Gbit/s以上)工作的问题,显然利用软件实现IP包的拆装在速度上达不到要求。为此,笔者运用FPGA(型号为Xilinx公司的XC2VP20-FF86CGB0345)来实现IPV6数据包的拆装。该FPGA内部逻辑框图如图1所示。   其工作流程为:2.5GHz的标准IPV6数据包串行差分信号通过ROCKETIO
[嵌入式]
基于<font color='red'>FPGA</font>的IPV6数字包的拆装<font color='red'>实现</font>
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved