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