基于Artix⁃7FPGA的异步高速串行通信IP设计
摘 要: 设计一种基于Artix⁃7 FPGA的异步高速串行通信IP核,包含协议解析和抗干扰设计、跨时钟域缓冲区设计、用户接口和物理层接口设计,实现最小硬件系统。该IP核可结合高速串口驱动芯片简单对接至主流处理器,如DSP,ARM,PowerPC等,以扩展处理器的异步串行通信接口数量和通信速率。其中,通信速率最高可至30 Mb/s,扩展数量视FPGA内部资源而定,理论上无上限。在机载和地面设备中可广泛应用。
关键词: 高速率通信; 异步串行通信; DSP; ARM; Artix⁃7; 处理器
中图分类号: TN919.6⁃34 文献标识码: A 文章编号: 1004⁃373X(2018)19⁃0006⁃05
Abstract: An asynchronous high⁃speed serial communication IP core based on Artix?7 FPGA was designed, for which the protocol analysis, anti⁃jamming capability, clock crossing domain buffer, user interface and physical layer interface are designed to realize the minimum hardware system. The IP core combined with high⁃speed serial driving chip can simply connect to the mainstream processors such as DSP, ARM and PowerPC to increase the extension quantity of asynchronous serial communication interface and improve the communication rate. The maximum communication rate can reach up to 30 Mb/s, and the extension quantity is determined by the internal resource of FPGA and has no upper limit theoretically. This IP core can be widely used in airborne and ground equipments.
Keywords: high⁃speed communication; asynchronous serial communication; DSP; ARM; Artix⁃7; processor
0 引 言
通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)包括RS 232,RS 499,RS 423,RS 422和RS 485等总线标准规范。UART协议作为一种串行通信协议,广泛应用于通信、语音、图像、仪器仪表、军事域等各种场合,具有电路结构可靠、通信接口简单、传输距离远等特点。随着硬件处理能力的提升和通信技术的快速发展,无线信道上的数据速率和带宽也稳步提升。简单的UART协议在集成度较高的处理器标配外设平台上通信速率较低,不能满足高速率数据接口和多源接入的要求。
本文设计的异步高速串行通信IP继承UART传统优点并进行改进设计。基于Xilinx公司的Artix⁃7 FPGA芯片进行实现,并成功应用于某型地空通信电台数据输入输出接口。按照RS 422电平标准通过硬件平台测试后,通信距离可达10 m,通信速率可达30 Mb/s。异步高速串行通信IP具有高可靠通信速率、容量可扩展的数据缓冲区、便于多目例化实现等优点,在军事装备领域具有广泛的应用前景。
1 软件协议
开放式系统互连参考模型(OSI)描述了计算机网络通信的基本框架,其采用分层的结构体系,模型如图1所示。它作为一个概念性框架规定了各层次位置和提供的服务,协调和组织各层协议的制定和执行,满足开放系统环境互联和应用可移植性[1]。通信协议设计时可参考OSI模型,根据系统信息交换问题分解到一系列可控的软硬件模块层中,各层进行独立修改和功能扩充。本文设计的异步高速串行通信IP根据应用场景,需要应用物理层和数据链路层协同通信,物理层利用硬件传输介质为数据链路层提供物理连接。数据链路层负责将数据分帧,处理流控制。
1.1 物理层设计
异步高速串行通信IP采用UART起止式异步协议。基本的UART通信需要4条信号线: 接收端RXD±和发送端TXD±。UART数据发送和接收的帧格式: 第一位为起始位,置“0”,表示通信开始; 最后一位为停止位,置“1”,表示通信结束。每一个字符的前面都有一位起始位:低电平,逻辑值“0”。字符本身由8 bit数据位组成,字符后面是一位校验位,最后一位是停止位高电平,逻辑值“1”。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿。传输时,数据的低位在前,高位在后。字符之间没有固定的时间间隔要求[2]。其格式如图2所示。协议分析:异步通信按字符传输,每传输一个字符,就用起始位通知收方,以此来重新核对收发双方同步,从而避免由于接收设备和发送设备之间的时钟频率偏差累积而导致的错位,加之字符间的空闲位也为这种偏差提供一种缓冲,所以起止式异步协议具有较高的传输可靠性[3]。
1.2 数据链路层设计
本文设计的异步高速串行通信IP采用中断源与外部处理器进行通信;内部设计寄存器用作状态和数据存储;数据收发时使用异步FIFO,保证外部处理器和Artix⁃7 FPGA之间实现跨时钟域正常通信,具体数据链路层设计如图3所示。
其中,中断源设计如下:
处理器收超时轮询中断:在多串口多中断情况下处理器内部对每个中断源轮询查找,按优先级别控制执行中断执行源;处理器收有效中断:通知处理器接收数据;处理器接收异常中断:对中断异常情况处理,保证系统接收稳健性;处理器发送完成中断:通知处理器整包解析发送完成,可进入下一次发送状态。
寄存器设计如下:
UART发寄存器:存储需要串并转换的字节数据;UART收寄存器:存储需要并串转换的字节数据;UART状态寄存器:将异步FIFO状态的输出按位组合为状态寄存器发送至处理器进行状态判断;中断寄存器:高低电平转换控制具体串口中断发生;处理器接收门限寄存器:异步FIFO可读门限值,保证数据转换完整,可正确地按序读取,提高系统运行时间[4]。