陳琦,顧磊
(1 中國電子科技集團公司第二十研究所,西安 710068;2 總參信息化部駐西安地區(qū)軍事代表室)
戰(zhàn)術通信網絡系統(tǒng)(Tactical Communication Network System - TCNS)是集數據通信、導航定位、識別于一體的綜合性戰(zhàn)術系統(tǒng),不受地形、氣候條件、黑夜及電子戰(zhàn)的影響,可準確實時地確定網內作戰(zhàn)單元的三維位置,識別友軍,實現導航輔助、保密數據通信和傳輸戰(zhàn)術簡令,并在指揮控制中心給出各作戰(zhàn)單元及友軍的位置信息、戰(zhàn)區(qū)地圖、系統(tǒng)狀態(tài)等數據,形成戰(zhàn)場態(tài)勢圖,供作戰(zhàn)指揮員決策指揮。TCNS是各軍兵種指揮員實現實時掌握戰(zhàn)場態(tài)勢,進行指揮控制、協(xié)同作戰(zhàn)和數據通信的重要有效手段,可以滿足師旅及以下級作戰(zhàn)指揮及三軍聯(lián)合作戰(zhàn)C3I的需求。
便攜式手持設備作為TCNS的重要組成部分,擔負著與主控電臺設備進行信息交互的重任,以便實時了解主控設備工作情況。交互的信息主要有電臺設置命令、電臺狀態(tài)信息、網絡狀態(tài)信息等。便攜式手持設備同時可按照系統(tǒng)需求更改電臺配置參數,以用來調整主控電臺設備的工作狀態(tài)。它通過串口與主控設備進行通信。便攜式手持設備由于受功率及結構的制約,要求它具有體積小、重量輕、功耗小的特點。為使便攜式手持設備小型化,在設計時就需要考慮芯片使用個數。在設計串口時,常用 Philips公司或 TI公司生產的串口芯片,如TL16C554。此類方法設計簡單,但常用 UART接口芯片引腳多、體積大,與其他器件的接口復雜。與專用集成電路技術相比,基于可編程門陣列(FPGA)的嵌入式系統(tǒng)具有設計和開發(fā)周期短、設計成本和風險低、集成度高、維護和升級方便、可靠性高等特點。此外,FPGA還具備高速度和低功耗的優(yōu)點,同時含有豐富的硬件資源,可以設計UART單元和雙口RAM單元,允許任意設置所需的波特率,并可采用同一塊FPGA芯片設計收發(fā)控制器實現邏輯控制和時序控制,從而實現串行通信,采用此種方法,電路板體積小、功耗小?;谝陨蟽?yōu)點,本文采用一塊 Xilinx FPGA(XC2V250FG256)芯片實現串行通信。
便攜式手持設備串行通信系統(tǒng)由 3個部分組成:異步接收單元、異步發(fā)送單元和雙口RAM單元。接收數據時,外部串行數據經過電平轉換后被異步接收單元接收并轉換成并行數據,通過接收單元進入雙口RAM并進行緩存,最后送入DSP處理;數據發(fā)送時,數據從雙口RAM取出數據后,在異步發(fā)送單元的作用下將數據轉化為串行數據,再經過電平轉換后發(fā)出。本文將用FPGA設計以上3個模塊,通過接口設計,可將FPGA與DSP連接。系統(tǒng)結構框圖如圖1所示。
圖1 系統(tǒng)結構框圖
異步接收單元實現數據的有序接收,控制UART接口和雙口RAM以及向DSP提出數據接收中斷。異步接收單元由8倍倍頻器、8bit寄存器、串并轉換器、并口輸入構成。8倍倍頻器用來產生8倍串口傳輸時鐘脈沖;8bit寄存器用來存儲采樣后的串行數據;串并轉換器用來控制串行數據向并行數據轉換的時序和組合邏輯,是異步接收單元的核心組成部件;并口輸入用來向 DSP傳輸并行數據。異步接收單元各模塊信號連接如圖2所示。
圖2 異步接收單元信號連接圖
異步接收單元的工作流程如下:根據DSP控制指令查看串口的傳輸速率并選擇速率后,經倍頻器產生一個8倍傳輸速率的接收串行數據采樣時鐘脈沖,由采樣脈沖采樣串行數據后存至寄存器中。查看寄存器中的數據,若一直為高電平則表明串口無數據輸入;若8bit數據中由4個“1”和4個“0”組成,則表明接收到開始位,等采樣下一個8bit數據時開始保存串行數據。通過時序控制邏輯將接收到的有效串行數據轉換為并行數據后存入雙口RAM中;向DSP輸出中斷請求;待收到DSP的中斷響應后,讀出雙口RAM數據;將數據輸入DSP中,中斷請求信號和復位信號置0,數據接收完成。
在本系統(tǒng)中,一組串行數據由1bit開始位、8bit數據位、1bit校驗位和1bit結束位組成。開始位為“0”;結束位為“1”。在這里值得注意的是,接收串行數據時,我們需要判斷接收的串行數據是否有效,由于數據傳輸在異步工作方式,可以通過判斷它的開始位來記錄串行數據。將傳輸時鐘脈沖8倍頻后,作為接收采樣時鐘脈沖,進行連續(xù)采樣,待采樣到一組數據由4個“1”和4個“0”組成時,則表明接收到串行數據的開始位,從此以后的數據便為有效串行數據,將每次采樣8bit數據的最后一位存入雙口RAM中。在這里我們記錄寄存器的最后一位值,作為它每次采樣的有效值,這樣做的目的是為了保證它每次采樣到的數據為每位串行數據的中間值,從而防止采樣到數據邊沿值而帶來的錯誤信息。其主要VHDL編程案例如下所示:
相對于異步接收單元來說,異步發(fā)送單元的設計比較簡單。異步發(fā)送單元連接DSP和雙口RAM,來自DSP的并行數據在其控制作用下,有序地以串行方式發(fā)送到主控設備。異步發(fā)送單元由波特率產生器、波特率選擇器、并串轉換器、串口輸出器組成。波特率產生器用來產生串口傳輸的時鐘脈沖;波特率選擇器用來選擇系統(tǒng)所需的串口傳輸速率;并串轉換器用來控制并行數據向串行數據轉換的時序和組合邏輯,是異步發(fā)送單元的核心;串口輸出器用來發(fā)送串行數據。異步發(fā)送單元各模塊信號連接如圖3所示。
圖3 異步發(fā)送單元信號連接圖
異步發(fā)送單元的工作流程如下:由波特率產生器輸出 9.6Kbps、19.2Kbps、57.6Kbps時鐘脈沖。根據 DSP控制指令查看串口的傳輸速率并選擇速率。當并串轉換器從雙口RAM接收到“數據使能”(dataen)和“數據發(fā)送”(datasend)信號時,表示DSP有串行數據輸出;立即使能并串轉換器,計數并讀出要傳輸的串行數據,待計數器溢出時,將數據保存至緩存中,最后使能串口輸出器按位輸出,待串行數據傳輸完成后復位標志位“shfen”,下一組串行數據將從開始位計數。校驗位是將傳輸的串行數據按位“異或”操作后輸出的。其主要VHDL編程案例如下所示:
雙口RAM(A端口和B端口)在串行通信中起到了數據緩存和信息交互的作用,本設計中雙口RAM通過Xilinx IP核產生,緩沖深度設計為256,即地址總線位數為8,數據從A口寫入,從B口讀出。將雙口RAM劃分為兩個空間,一個為數據接收空間,一個為數據發(fā)送空間。接收數據時,存入接收空間的數據達到一個字節(jié),接收單元向DSP發(fā)出中斷請求,中斷響應后數據從B口讀入DSP;發(fā)送數據時,DSP向發(fā)送空間的A口中寫數據,并向并串轉換單元發(fā)出數據發(fā)送信號,數據從發(fā)送空間的B口讀入并串轉換單元,再經過UART口串行發(fā)送到主控設備。
本文通過使用一塊FPGA芯片,經過VHDL語言編程設計異步接收單元、異步發(fā)送單元和雙口RAM 模塊,并將以上模塊有序組合,實現了便攜式手持設備與主控設備的串口通信。該設計在實現預期功能的同時,避免了采用常用UART專用芯片帶來的電路復雜、體積大、功耗高等缺點,簡化了硬件電路,使便攜式手持設備具有體積小、功耗低的優(yōu)點。此外,利用FPGA的可任意編程的特點,可以通過編程而不改變外部電路就可實現不同功能,增加系統(tǒng)的靈活性。
[1]華清遠見嵌入式培訓中心.FPGA應用開發(fā)入門與典型實例[M].北京:人民郵電出版社,2008.
[2]甘歷.VHDL應用與開發(fā)實踐[M].北京:科學出版社,2003.
[3]趙海登,劉文曉,胡景軍等.基于FPGA的UART IP核的設計實現[J].通信技術,2009.
[4]孟志華.利用FPGA實現UART的設計[J].電子工程師,2007.
[5]王永州,范多旺.基于 FPGA/CPLD的高速和低速UART的設計及其應用[J].鐵路計算機應用,2006.
[6]劉富奇.FPGA目開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2009.