新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于FPGA+DSP的通用飛控計算機平臺設計

        一種基于FPGA+DSP的通用飛控計算機平臺設計

        作者: 時間:2014-07-08 來源:網絡 收藏

          將按照上述流程設計的程序在FPGA中進行測試。將FPGA串口和PC機連接,采用115 200波特率連續工作3分鐘,收發均無錯誤字節。

        本文引用地址:http://www.104case.com/article/249384.htm

          3.1.2 雙RAM緩沖機制

          由于串口外設的波特率是115 200,屬于低速外設,因此在串口數據和DSP之間采用作為緩沖區。由于此FPGA上自帶片上RAM,因此可以利用開發環境自帶的IP核生成片上,不用額外增加片外RAM器件(圖1)。的實體定義和讀寫時序:

          

         

          

         

          將每個RAM中的最后一個字節作為反映RAM存儲狀態的狀態字。RAM的狀態字代表的含義如下:

          

        基于DSP+FPGA的數字導彈飛控計算機設計

         

          bit0:1-串口接收到新數據幀 0-無新數據幀;

          bit1:1-數據已經被讀取 0-數據未被讀取;

          慣導和導引頭向彈載機每6 ms傳輸一幀數據,將數據存儲到雙端口RAM中,同時將bit0置‘1’,bit1清零,即RAM狀態為“新數據幀未被讀取”。由于慣導和導引頭的數據不同步,因此DSP每1ms就查詢一次RAM的狀態字。若接收到新的數據幀(bit0=1),則讀取RAM數據,并將“數據被讀取”位置1(bit1=1)。這樣,慣導和導引頭給DSP發送的數據延遲不超過1 ms,可以認為慣導和導引頭的數據是實時同步的。

          在串口接收數據期間,如果串口和DSP在同一時間操作RAM,可能導致DSP讀取到幀錯亂的數據。為了保證數據幀的完整,不使兩者同時讀取RAM,采用雙RAM緩沖機制,即為每個串口配置2個雙端口RAM的作為緩沖,如圖5所示。串口數據接收程序通過查詢RAMa和RAMb的狀態字,若bit1=1,則將接收到的數據幀存儲到對應的RAM中,完成之后將bit0置1,bit1清0,這個周期為6 ms。與此同時,DSP每1 ms查詢一次RAMa和RAMb,若bit0為1,則讀取對應RAM中的數據幀,同時將bit0清0。bit1置1。串口數據發送過程與接收類似,數據傳輸方向相反。

          

         

          采用雙RAM緩沖機制,使得串口和DSP不在同一時間訪問同一RAM區,避免了錯幀和丟幀,同時保證了數據傳輸的實時性。

          3.2 DSP軟件設計

          DSP軟件設計采用模塊化設計方式,分為應用層和底層軟件兩部分。應用層軟件主要實現飛控流程和飛控算法;底層軟件主要實現數據格式的轉換,以便通過DSP總線和FPGA進行數據交換。

          3.2.1 應用層軟件設計

          外部的慣導和導引頭6 ms產生一次數據,DSP開啟1ms的定時器中斷,在中斷中每1 ms查詢一次雙端口RAM的狀態字,判斷是否有新數據產生,這樣采集的數據延遲不會超過1 ms。飛控解算的周期為6 ms,遙測數據發送的周期為12 ms,在定時器中斷程序中完成飛控解算和遙測數據發送。

          中斷服務程序每1 ms運行一次,每次首先查詢導引頭和慣導有沒有更新數據,再讀取新數據存儲在全局結構體里。每6ms用全局結構體里得到的新數據解算一次飛控指令,得到舵機的輸出角度,輸出舵控指令,控制舵機。流程如圖6所示。

          

         

          3.2.2 底層軟件設計

          DSP底層軟件主要完成外部數據交換和數據格式的轉換。DSP通過XINTF產生讀寫時序(圖2圖3所示時序),FPGA也設計與之相匹配的時序完成兩者之間的數據交換。

          DSP應用層軟件使用的是浮點數,而DSP和FPGA之間只能傳遞二進制數,因此需要按照IEEE標準進行浮點數和二進制數之間的轉換。根據IEEE標準,可以用32位,即8個字節表示一個浮點數。如果將代表浮點數的4個字節組合成32位的整型數inte32,進行強制類型轉換皆可以得到浮點數,轉換函數如下:

          

         

          將浮點數轉換成整型數的方法與此類似。底層軟件按照上述方法實現數據轉換,供應用層調用。

          4 系統驗證

          彈載機實物設汁制作完成之后可以利用半實物仿真平臺進行測試,該半實物仿真平臺由上位機、慣導、舵機和三軸轉臺組成。如圖上位機的作用是模擬導彈動力學模型和導引頭信息,并控制三軸轉臺運動模擬導彈姿態。導彈的運動信息由慣導測量之后發送給飛控計算機,飛控計算機根據運動信息解算出舵機控制量控制舵機轉動,同時將遙測數據發送給上位機。上位機采集舵機反饋的實際角度,將其代入導彈動力學模型,計算導彈姿態,控制三軸轉臺,這樣就形成了完整的半實物仿真回路。

          

         

          仿真實驗中,首先不接入飛控計算機,由仿真計算機中的控制系統數學模型直接實現控制算法,所得導彈運動軌跡如圖8所示;將飛控計算機接入仿真回路,由飛控計算機實現制導控制算法所得運動軌跡如圖9所示。

          由圖8和圖9的對比可以看出,飛控計算機接入之后飛控系統工作正常,導彈飛行軌跡基本一致,飛控計算機控制效果理想。

          5 結論

          文中提出了一種基于DSP+FPGA的飛控計算機設計方法,在半實物仿真系統中驗證了其性能,滿足設計要求。解決了在多數字彈上設備存在情況下的數據幀實時同步問題。由于FPGA可以通過編程實現各種時序,所以此飛控計算機可以擴展為除了RS422外部接口外的其他多種數字設備接口,滿足模塊化、通用化的實際應用需求。

        fpga相關文章:fpga是什么


        晶振相關文章:晶振原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 如东县| 苗栗县| 湛江市| 明光市| 伊吾县| 舟山市| 苍溪县| 化德县| 嘉义县| 通渭县| 格尔木市| 华蓥市| 民勤县| 洛隆县| 蒲城县| 蓬安县| 麟游县| 盐边县| 东源县| 凤阳县| 伊宁市| 南澳县| 乌拉特中旗| 滕州市| 临西县| 乐都县| 浙江省| 新和县| 延寿县| 丘北县| 准格尔旗| 永平县| 屯门区| 左云县| 信宜市| 措美县| 天津市| 高邮市| 辽宁省| 英山县| 甘肃省|