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