当前位置:首页 > 通信技术 > 通信设计应用
[导读]   UART使用的是异步串行通信   串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合

  UART使用的是异步串行通信

  串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。

  异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。

  数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10&TImes;120=1200字符/秒=1200波特。

  数据通信格式如下图:

  

  其中各位的意义如下:

  起始位:先发出一个逻辑”0”信号,表示传输字符的开始。

  数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。

  校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。

  停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

  空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

  异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)

  串行通信的硬件接口电路原理设计

  在串行通信中,普遍采用的是RS-232-C接口的标准。RS-232-C接口信号引脚的连接方式规定了25芯的D型连接器(DB225),实际使用中多采用的是一个9芯的D型连接器(DB29),本方案采用了DB29连接器

  

  本方案的异步串行通信的硬件接口电路图如图2所示,由三部分组成:FPGA串口模块、MAX232和DB29。MAXIM公司的MAX232是为满足EIA/TEA2232E的标准而设计的,具有功耗低、波特率高、价格低等优点,工作电源为+5V,外界电容仅为0.1uF或1Uf,为双组RS2232收发器。MAX232有两个发送器,若只用其中一个发送器,另外一个发送器的输入、输出端可以悬空。本方案把异步通信电路作为一个整体来实现,数据由DB29的RxD端输入,经过MAX232进行电平转换由FPGA串口模块的RxD端进入,进行串并转换后经由8位数据总线(D72D0)进入FPGA的其它模块或其它的处理芯片。数据处理后经由8位数据总线进入FPGA串口模块,在其中进行并串转换后由TxD端输出MAX232的12管脚,在MAX232种经过电平转换后由DB29的TxD端输出。

  FPGA串口模块设计

  FPGA串口模块是本设计的关键所在,的内部逻辑结构及各部件的功能。如图3所示,主要由波特率发生模块、发送模块,接收模块组成。用Verilog实现设计的各部件功能说明如图3

  

  波特率发生模块

  设计的UART的接收和发送按照相同的波特率进行,波特率可以通过接口模块的总线接口进行设置。UART收发的每一个数据宽度都是波特率发生器输出的时钟周期的16倍,即假定当前按照9600b/s进行收发,那么波特率发生器的输出时钟频率应该为9600&TImes;16Hz。假定提供的外部时钟为1.6MHz,可以很简单地通过总线写入不同的数值到波特率发生器保持寄存器,然后用计数器的方式生成所需要的各种波特率,即分频器。计算公式为:1600000/(16&TImes;所期望的波特率)-1,如果希望输出10000Hz的波特率,可以得出从总线写入的数值为1600000/(16&TImes;10000)-1=9(09H)。

  发送模块

  根据UART协议的描述,发送数据由接口模块控制,接口模块给出wrn信号,发送器根据此信号将并行数据锁存,并通过发送保持寄存器和发送移位寄存器发送并行数据。由计数器no-bs-sent控制状态的转移,即数据的发送,计数值为1时,数据从发送保持寄存器传送到发送移位寄存器,计数值为2时,发送开始位(1b低电平),计数值为3~10,发送8位数据,计数器为11,发送校验位,计数值为12,发送1位停止位,计数器随后清零。发送时钟是根据数据传输的波特率产生的,16倍于波特率发生器产生的时钟。

  在Xilinx的ISE7.1.02i集成环境中,用Verilog编写代码,Synplifypro8.1进行逻辑综合,Modelsim6.0d进行仿真,其结果如图4所示。

  

  接收模块

  接收逻辑首先通过检测输入数据的下降沿来检查起始位,然后产生接收时钟,利用接收时钟来采样串行输入数据,在缓冲器中作移位操作,同时产生校验位,在第9位处比较校验位是否正确,在第10位处比较停止位是否为高,在校验位错误或停止位错误的情况下产生错误指示信号。接收时钟是根据数据传输的波特率产生的,16倍于波特率发生器产生的时钟。

  使用Modelsim6.0对接收模块做了时序仿真,其结果如图5所示。接收时钟与发送时钟相同,接收到一帧串行数据,由接收模块转换为并行输出,并且检验校验位和停止位,产生framing-error和parity-error信号输出。

  

  接口控制模块

  接口控制模块连接控制发送、接收、波特率发生模块,并与外部并行总线相连接,从外部(CPU或单片机)接收控制信号(nrst,nwrn,nbdn,nrdn),来控制UART的发送、接收以及内部时钟的生成。在nwrn有效并且内部信号tbre=‘0’(发送缓冲寄存器空)时,将数据总线输入的并行数据发送给发送模块数据线din(7:0),执行发送数据功能。在nrdn有效并且内部信号data-ready,parity-error,framing-error有效时,允许从接收模块读入接收到的数据。波特率发生器和发送模块的并行数据输入端口共用一个数据总线。

  综合实现其性能分析

  使用Xilinx的SpatanIIxc2s100FPGA芯片,对整个FPGA设计使用Synplifypro8.1进行逻辑综合,其实占用的FPGA资源总共仅为56个查找表(LUTs),占用的资源很少,可以很方便的集成在其他的FPGA设计中;最高时钟速度可以到达121.8MHz,可见此设计完全可以满足任何一种标准的波特率系列

  硬件电路实现及软件实现

  在验证此UARTFPGA设计时,使用了PADS来设计电路原理图和PCB图,并最终在硬件上下载调试成功。在验证UART通信时,此设计的PC机串口通信程序,采用了Ac2tiveX控件方式来实现。

  用FPGA实现了UART通信功能,可以实现对数据的接收和发送,并可以在接收数据时对其校验位、停止位进行判断,在发送数据时可以形成完整的一帧数据格式。其接收和发送数据的时钟有内部波特率发生器产生,根据预置的分频系数,对外部时钟进行分频,产生需要的接收或发送时钟。将该UARTFPGA设计作为一功能块嵌入到一个FPGA实现的数据采集与处理系统中,可以成功地实现和远端的PC机进行异步串行通信。实验证明该UART设计占用资源少,工作稳定可靠,可运使用在低端的异步通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭