基于陣列除法的數(shù)據(jù)接收/顯示模塊設(shè)計
根據(jù)系統(tǒng)要求,脈沖雷達(dá)高度表通過RS-422串行輸出高度數(shù)據(jù),要求數(shù)據(jù)接收模塊實時接收,并顯示雷達(dá)高度數(shù)據(jù)。接收模塊接收到的高度數(shù)據(jù)采用二進(jìn)制(BIN)碼表示,而數(shù)碼管等顯示設(shè)備需要BCD碼(即二進(jìn)制編碼的十進(jìn)制碼),所以二者之間的轉(zhuǎn)換非常必要。
BCD碼與BIN碼的相互轉(zhuǎn)換比較傳統(tǒng)的方法是采用DAA調(diào)節(jié)指令來實現(xiàn),需要逐位調(diào)節(jié),比較費時。文獻(xiàn)[3]提出利用模除,每次移動半字節(jié),使轉(zhuǎn)換效率大為提高,但也僅是軟件算法,無法滿足數(shù)制轉(zhuǎn)換高效率和實時性的要求。文獻(xiàn)[4]提出了采用分段查找EPROM的硬件方法,滿足點陣記錄實時性的要求,但是該算法需要大容量的EPROM。文獻(xiàn)[5]利用BCD碼與BIN碼的邏輯對應(yīng)關(guān)系直接轉(zhuǎn)換,需要經(jīng)過多級復(fù)雜的變換邏輯,面積和時延較差。
為此,本文采用Verilog HDL硬件描述語言將雷達(dá)高度數(shù)據(jù)接收/顯示的核心功能集成到XILINX公司的FPGA(XCS200)中,使得整個設(shè)計更加緊湊、小巧、穩(wěn)定和可靠。利用不恢復(fù)余數(shù)陣列除法快速準(zhǔn)確地實現(xiàn)BIN碼到BCD碼的轉(zhuǎn)換,僅需要少量的移位和加/減法操作,簡化實現(xiàn)數(shù)制轉(zhuǎn)換中的求余和整除運算。該單元陣列結(jié)構(gòu)規(guī)整,不僅節(jié)省了面積,適于超大規(guī)模集成電路實現(xiàn)需要,而且易向更高進(jìn)制擴(kuò)展,具有很高的轉(zhuǎn)換速度。
1 串行高度數(shù)據(jù)接收/顯示模塊簡介
數(shù)字式自動距離跟蹤脈沖雷達(dá)高度表串行輸出的高度數(shù)據(jù),首先通過串行高度數(shù)據(jù)接收模塊將串行數(shù)據(jù)轉(zhuǎn)換為并行報文數(shù)據(jù),再通過報文濾波/數(shù)據(jù)提取模塊,提取出高度數(shù)據(jù),并根據(jù)輸出高度數(shù)據(jù)的時間間隔標(biāo)識雷達(dá)的工作狀態(tài),然后BIN碼表示的高度數(shù)據(jù)通過以不恢復(fù)余數(shù)陣列除法為基礎(chǔ)的BIN/BCD碼轉(zhuǎn)換模塊,轉(zhuǎn)換為適合七段碼顯示的90BCD碼后送到掃描七段碼顯示控制器,以驅(qū)動四位七段共陽極動態(tài)顯示數(shù)碼管,如圖1所示。
串行高度數(shù)據(jù)收發(fā)模塊采用三線制連接方式,通信方式為異步傳輸,波特率:9 600,數(shù)據(jù)位:8位,停止位:1位,奇校驗,其字符格式及時鐘同步檢測與采樣過程如圖2所示。
2 基于不恢復(fù)余數(shù)陣列除法的二進(jìn)制到BCD碼的轉(zhuǎn)換
提出的BIN碼到BCD碼的轉(zhuǎn)換算法采用數(shù)據(jù)除以位權(quán)的方式得到千、百、十、個位BCD碼,因此除法器的設(shè)計是關(guān)鍵。在數(shù)字計算中各種除法都可以用下列遞歸公式來描述:
(1)
這里_j=0,1,…,n-1為遞歸下標(biāo);D為除數(shù);qj+1為小數(shù)點右邊第j+1位商;r為基數(shù),r×R(j)為部分被除數(shù);R(j+1)為部分余數(shù);R(0)為被除數(shù)(初始部分余數(shù));R(n)為最后余數(shù)。
評論