CPLD/FPGA的UART接口设计之系统时钟(晶振)和波特率关系

UART(UniversalAsynchronous ReceiverTransmitter,通用异步收发器)是一种广泛使用的异步串行数据通信协议。目前大多数MCU、串口通信IC等芯片或模块均支持UART通信,随着CPLD/FPGA应用得越来越广泛,用CPLD/FPGA来设计UART等接口已是数字电路设计的常见应用之一。
    由于UART是异步传输,没有传输同步时钟。在CPLD/FPGA的UART接口设计中,为了能保证数据接收的正确性,数据帧接收时需采用比数据波特率至少高2倍的采样时钟对数据进行采样,才能保证对数据采样不失真或误码,实际波特率时钟采样比最好大于10倍。简单起见,可以取中间时钟的采样值作为数据真实值,采样时钟从系统时钟(晶振)分频得到。虽然理论上照此设计便可保证UART数据传送和接收时不发生误码,但由于在实际设计UART数据通信时,存在采样时钟偏差、数据帧格式、传输波特率及设计的舍入误差等因素的影响,对确定数据波特率传输的UART数据收发器,如何选择恰当的系统时钟(晶振)来保证UART通信的正常或者换句话说,对确定系统时钟(晶振)的UART数据收发器能支持多大的数据通信波特率?这是一个值得探讨的问题。本文对采用CPLD或FPGA进行UART数据收发器设计时,上述提到的问题作个简单的讨论,错误之处还请大家包涵。
    下面简单介绍一下UART时序及其发送接收过程。

发送数据帧过程:空闲状态,线路处于高电平。当开始发送时,先发送起始位(线路保持1个数据位的低电平时间),接着按低位到高位的顺序发送数据位、奇偶校验位(如果需要校验的话)及停止位(停止位为高电平)。

 

接收数据帧过程:空闲状态,线路处于高电平。当检测到线路的下降沿(线路电平由高变低)时说明线路接收到数据传输的起始位,这时可按照指定的波特率从低位到高位接收数据位、奇偶校验位(如果需要校验的话)及停止位,并完成数据校验,根据校验情况决定数据的处理。

   
    基于上面提到的设计模型,当数据接收发生误码时,上述各影响因素本质上是影响到数据采样时钟的采样位置,使得采样时钟与正常数据采样位置发生了偏差而导致误码,因此计算出采样时钟的采样位置偏差,并保证其不偏离数据位宽范围即可保证数据接收时不发生误码。由于从起始位开始接收时,采样位置偏差即开始累计,所以数据帧最后一位的采样位置偏差应为最大,故若能保证接收数据帧最后一位的采样位置累计偏差的绝对值小于指定波特率对应传输位宽的一半就能保证UART通信时数据接收不发生误码。可以得到下面(1)式:

       ETS(W-0.5)<0.5/P           -------(1)
    其中:
       E---计算波特率采样时钟时的系统时钟分频数的最大舍入误差,其值为0.5。
       T---晶振周期。
       S---波特率时钟采样比=波特率采样时钟频率/数据波特率。
       W---传输位数。
       P---数据波特率。
   根据(1)式可以计算(2)式
       f>2PES(W-0.5)              -------(2)
   其中:f为晶振频率。


    举例来说,若CPLD或FPGA采用10MHz外部晶振作为系统时钟时,对于常用的串口数据通信设置“?,N,8,1---?,无校验位,8个数据位,1个停止位”,(2)式中晶振频率f为10000000,传输位数W为10,波特率时钟采样比S若取为16,则支持的数据通信波特率应小于65789.5bps。同样对常用的“115200,N,8,1---115200波特率,无校验位,8个数据位,1个停止位”,可计算出系统时钟(晶振)频率应大于17510400Hz才可保证UART通信不发生误码。



  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CPLD/FPGA是目前应用最为广泛的两种可编程专用集成电路(ASIC), 特别适合于产品的样品开发与小批量生产。本书从现代电子系统设计的角度出发,以全球著名的可编程逻辑器件供应商Xilinx 公司的产品为背景,系统全面地介绍该公司的CPLD/FPGA 产品的结构原理、性能特点、设计方法以及相应的EDA工具软件,重点介绍CPLD/FPGA在数字系统设计、数字通信与数字信号处理等领域中的应用。   本书内容新颖、技术先进、由浅入深,既有关于大规模可编程逻辑器件的系统论述,又有丰富的设计应用实例。对于从事各类电子系统(通信、雷达、程控交换、计算机等)设计的科研人员和应用设计工程师,这是一本具有实用价值的新技术应用参考书。本书也可作为高等院校电子类高年级本科生或研究生的教材或教学参考书。   随着电子技术的不断发展与进步,电子系统设计方法发生了很大的变化,传统的设计方法正逐步退出历史舞台,而基于EDA技术的芯片设计正在成为电子系统设计的主流。大规模可编程逻辑器件CPLDFPGA是当今应用最广泛的两类可编程专用集成电路(ASIC),电子设计工程师利用它可以在办公室或实验室里设计出所需的专用集成电路,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件-样通过编程来修改,这样就极大地提高了电子系统设计的灵活性和通用性。   由于具备上述两方面特点,CPLDFPGA受到了世界范围内广大电子设计工程师的普遍欢迎,应用日益广泛。与此同时,可编程ASIC本身也在近几年得到了迅速的发展,其集成度、工作速度不断提高。目前已有单片可用门数超过300万门。工作频率可达200 MHz以上的可编程ASIC芯片问世。由于结构和工艺的改进,可编程ASIC芯片上包含的资源越来越丰富,可实现的功能越来越强,它们已成为当今实现电子系统集成化的重要手段。   Xilinx公司是全球著名的可编程逻辑器件供应商,也是FPGA器件的发明者,它在多年用户需求的基础上开发了多种性能优越的系列产品,其售后服务周全,用户涉及面广,是开发和研制产品的最佳选择之一”。 本书以Xilinx公司的产品为背景,系统介绍该公司的CPLDFPGA典型产品的结构原理、性能特点、设计方法以及相应的EDA工具软件,详细介绍Foundation Series 开发软件的特点、安装和使用方法,重点介绍CPLD/FPGA在数字系统设计、数字通信与数字信号处理等领域中的应用。除此以外,还对JTAG边界扫描测试电路以及硬件描述语言VHDL的基本概念作了简要的介绍。本书在选材上注重内容新颖、技术先进,并在书中给出了经实践验证的大量设计实例,希望能对读者迅速掌握大规模可编程逻辑器件设计与应用有所帮助。同时,为保证书中实例不受具体器件限制,本书所有实例均采用VHDL语言或Verilog HDL语言编写,可以方便地移植到其他公司(如Altera、LarTIce、 Actel 等)的CPLD/FPGA器件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值