一種基于FPGA+DSP的通用飛控計算機平臺設計
摘要:針對在舵機、導引頭、慣導等彈上設備日益數字化的趨勢下飛控系統的需求,提出了一種基于DSP+FPGA結構的通用飛控計算機平臺。DSP+FPGA結構能發揮兩種處理芯片各自的優勢,而且具有良好的通用性和擴展性。針對多個外部設備數據同步問題,采用2個雙端口RAM交替工作的方法,保證各彈上設備數據幀的同步和完整連續。通過半實物仿真系統的驗證,飛控計算機性能良好,性能滿足設計要求。
本文引用地址:http://www.j9360.com/article/249384.htm關鍵詞:DSP+FPGA;數字式飛控計算機;雙端口RAM;數據同步
飛控計算機是現代導彈制導與控制系統的核心裝置,其性能的好壞直接關系到精確制導的精度和殺傷目標的概率。近年來舵機、導引頭、慣導等彈載設備日益向著數字化方向發展,因此設計一種能兼容多數字式設備的通用飛控計算機平臺尤為重要。傳統的單處理器核心飛控計算機難以在多通道異步數據收發的同時保證數據處理速度,難以滿足現代導彈的要求。本文提出了一種基于DSP+FPGA結構,對外接口為422的通用數字飛控計算機平臺。此平臺能充分發揮DSP的運算速度,實現飛控算法。采用基于FPGA的雙RAM緩沖機制,能很好地解決異步串行數據實時同步數據處理問題,滿足飛控系統需求。
1 設計思想和工作原理
1.1 設計思想
對于單DSP核心的飛控計算機,要收發多路異步串行數據就會占用多路中斷,導致中斷響應不及時造成數據丟失。同時多路中斷也會影響到數據傳輸的實時性。飛控計算機對數據的完整性和實時性要求較高,傳統單DSP核心不能滿足彈上多數字式設備的要求。由于FPGA具有強大的并行處理能力,所以采用增加一片FPGA用于異步串行數據的收發的方法彌補單DSP核心的缺陷。DSP+FPGA的結構能將DSP從繁瑣的外部接口管理中解放出來,充分發揮DSP的運算優勢,提高運算效率的同時易于維護和擴展。
1.2 飛控計算機工作原理
飛控計算機的一般工作過程如下:飛控計算機上電之后進行自檢,向載機發出“導彈存在”指令。飛控計算機接收載機的裝訂信息,完成初始對準,并且向載機發出“允許發射”指令。當導引頭探測到目標向飛控計算機發出導引數據時,飛控計算機向載機發出“目標截獲”指令。載機經過判斷決策,向飛控計算機給出“發射”指令。發射之后,飛控計算機進行飛行時間計時,并開始按照已有的控制率,結合慣導和導引頭輸入進行飛控解算,得出四路舵機控制信號信號,控制導彈運動;并將接收到慣導數據、導引頭數據、舵控量等內容組成遙測信息,發送給觀測人員。
2 結構和硬件設計
根據飛控計算機工作原理,它具備以下功能:
能夠收發裝訂、慣導、導引頭和遙測等數據;
能夠實現導引率,完成導航數據解算功能;
能夠控制執行機構——舵機。
RS422通信協議具有抗干擾能力強,傳輸距離遠,實現簡單的特點,已經被各種數字設備廣泛采用。本彈載機對外通信接口均采用422通信協議。根據飛控計算機的功能可以得出,此系統至少應該包含裝訂、慣導、導引頭、遙測數據的收發和舵機控制5路數據通信。由于彈載機工作時收發“導彈存在”、“目標截獲”、“允許發射”等開關量,還需要開關量的輸入輸出。故FPGA對外的接口共包括5路RS422和8位DIO通信接口。系統結構簡圖如圖1所示(圖中XINTF接口和雙端口RAM的說明見本文第4部分)。

DSP選用TI公司的高性能浮點處理器,150 MHz主頻,性能相比于2812有大幅提升,廣泛應用于控制系統。FPGA選用ALTERA的Cyclone II系列,完全滿足應用需求。DSP+FPGA組成的最小系統主要由電源、復位電路、晶振、燒寫接口等部分組成。電源芯片選用TPS7 67D301PWP,可以為DSP提供3.3 V的工作電壓和1.9 V的內核電壓;FPGA的內核電壓由ASM1117-1.2穩壓得到。DSP復位芯片采用MAX809S,晶振采用30 MHz的有源晶振;FPGA用50 MHz的有源晶振。配置芯片選用EPCS1,容量為1M bits,用AS模式燒寫。
對外的RS422接口采用MAX3491協議芯片實現。MAX3491將FPGA的TTL電平轉換成422差分電平,和彈上設備通信。由于FPGA引腳的驅動能力弱,因此對外的8位DIO采用74LN244芯片,增強驅動能力。
3 軟件設計
DSP通過XINTF接口與FPGA通信。DSP將地址傳遞給FPGA,FPGA經過地址譯碼操作對應外部設備數據。
3.1 FPGA軟件設計
FPGA主要功能是完成5路RS422串口數據的同時收發操作開關量的輸入和輸出,并和DSP交換數據。FPGA可使用進程語句實現并行運行,對各外設的操作都是實時并行的,相互之間沒有影響。
3.1.1 串口通信
先將時鐘通過分頻得到8倍于波特率的串口時鐘。數據接收時,根據串口通信的特點,首先判斷低電平起始位。檢測到起始位之后,按照嚴格地每八個時鐘一位的關系采集一個字節8位的電平。由于噪聲的存在可能會導致采集到的瞬時電平有誤,此時采用表決機制,即在8個時鐘期間采樣3次,以其中2次相同的電平為準。實驗證明,表決機制能極大排除隨即噪聲干擾,降低串行通信的誤碼率。接收到數據之后存儲在對應的雙端口RAM中,等待DSP讀取。串口數據接受流程如圖2所示。

數據發送時先從雙端口RAM中讀出需要發送的數據,按照串口時鐘,先發送起始位(低電平),再依次通過移位寄存器將8位的數據轉換成串行的‘0’/‘1’發出。主要由下面語句實現:
txd<=txd_buf(0);
txd_buf(6 downto 0)<=txd_buf(7 downto 1);
其中txd是要發送的1位邏輯電平,txd_buf中存儲著將要發送的數據。發送流程如圖3所示。

fpga相關文章:fpga是什么
晶振相關文章:晶振原理
評論