根据系统要求,脉冲雷达高度表通过RS-422串行输出高度数据,要求数据接收模块实时接收,并显示雷达高度数据。接收模块接收到的高度数据采用二进制(BIN)码表示,而数码管等显示设备需要BCD码(即二进制编码的十进制码),所以二者之间的转换非常必要。
BCD码与BIN码的相互转换比较传统的方法是采用DAA调节指令来实现,需要逐位调节,比较费时。文献[3]提出利用模除,每次移动半字节,使转换效率大为提高,但也仅是软件算法,无法满足数制转换高效率和实时性的要求。文献[4]提出了采用分段查找EPROM的硬件方法,满足点阵记录实时性的要求,但是该算法需要大容量的EPROM。文献[5]利用BCD码与BIN码的逻辑对应关系直接转换,需要经过多级复杂的变换逻辑,面积和时延较差。
为此,本文采用Verilog HDL硬件描述语言将雷达高度数据接收/显示的核心功能集成到XILINX公司的FPGA(XCS200)中,使得整个设计更加紧凑、小巧、稳定和可靠。利用不恢复余数阵列除法快速准确地实现BIN码到BCD码的转换,仅需要少量的移位和加/减法操作,简化实现数制转换中的求余和整除运算。该单元阵列结构规整,不仅节省了面积,适于超大规模集成电路实现需要,而且易向更高进制扩展,具有很高的转换速度。
1 串行高度数据接收/显示模块简介
数字式自动距离跟踪脉冲雷达高度表串行输出的高度数据,首先通过串行高度数据接收模块将串行数据转换为并行报文数据,再通过报文滤波/数据提取模块,提取出高度数据,并根据输出高度数据的时间间隔标识雷达的工作状态,然后BIN码表示的高度数据通过以不恢复余数阵列除法为基础的BIN/BCD码转换模块,转换为适合七段码显示的90BCD码后送到扫描七段码显示控制器,以驱动四位七段共阳极动态显示数码管,如图1所示。
串行高度数据收发模块采用三线制连接方式,通信方式为异步传输,波特率:9 600,数据位:8位,停止位:1位,奇校验,其字符格式及时钟同步检测与采样过程如图2所示。
2 基于不恢复余数阵列除法的二进制到BCD码的转换
提出的BIN码到BCD码的转换算法采用数据除以位权的方式得到千、百、十、个位BCD码,因此除法器的设计是关键。在数字计算中各种除法都可以用下列递归公式来描述:
(1)
这里_j=0,1,…,n-1为递归下标;D为除数;qj+1为小数点右边第j+1位商;r为基数,r×R(j)为部分被除数;R(j+1)为部分余数;R(0)为被除数(初始部分余数);R(n)为最后余数。