基于FPGA的UART设计与实现0引言通用异步收发器(UniversalAsynchronousReceiver/Transmitter,UART)可以和各种标准串行接口,如RS232和RS485等进行全双工异步通信,具有传输距离远、成本低、可靠性高等优点
一般UART由专用芯片如8250,16450来实现,但专用芯片引脚都较多,内含许多辅助功能,在实际使用时往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高
一般而言UART和外界通信只需要两条信号线RXD和TXD,其中RXD是UART的接收端,TXD是UART的发送端,接收与发送是全双工形式
由于可编程逻辑器件技术的快速发展,FPGA的功能日益强大,其开发周期短、可重复编程的优点也越来越明显,在FPGA芯片上集成UART功能模块并和其他模块组合可以很方便地实现一个能与其他设备进行串行通信的片上系统
FPGA(FieldProgrammableGateArray)现场可编程门阵列在数字电路的设计中已经被广泛使用
这种设计方式可以将以前需要多块集成芯片的电路设计到一块大模块可编程逻辑器件中,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性
1UART功能设计1
1UART的工作原理异步通信时,UART发送/接收数据的传输格式表1所示,一个字符单位由开始位、数据位、停止位组成
表1UART发送/接收数据的传输格式STARTD0D1D2D3D4D5D6D7PSTOP起始位数据位较验位停止位异步通信的一帧传输经历以下步骤:(1)无传输
发送方连续发送信号,处于信息“1”状态
(2)起始传输
发送方在任何时刻将传号变成空号,即“1”跳变到“O”,并持续1位时间表明发送方开始传输数据
而同时,接收方收到空号后,开始与发送方同步,并期望收到随后的数据
(3)奇偶传输
数据传输之后是可供选择的奇偶位发送或接收