新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA在導彈上信息處理機中的應用

        FPGA在導彈上信息處理機中的應用

        作者: 時間:2011-12-18 來源:網絡 收藏

        引言

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

          (圖1)用于完成上多路遙測信息的采集、處理、組包發送。主要功能包括高速1553B總線的數據收發 、422接口設備的數據加載與檢測、多路數據融合和數據接收、處理、組包發送的功能。其中,總線數據和其他422接口送來的數據同時進行并行處理;各路輸入信息按預定格式進行融合與輸出;數據輸出速率以高速同步422口的幀同步脈沖為源,如果高速同步422口異常不影響總線數據和其它422口的數據融合與輸出功能。在CPU發生異常或總線數據異常時不影響其它422口數據的融合與輸出功能;能夠對從總線上接收的數據進行二次篩選、組包,并發送往總線,供其它設備接收。

        信息處理機功能框圖彈上功能框圖

        圖1 功能框圖彈上功能框圖

          系統設計

          CPU選擇

          4M 1553B總線數據的采集,由4M總線智能通訊接口管理,經CPU接收、組包,再回到4M總線,發送至進行采集。CPU選擇Atmel公司的AT91FR40162S, 內部自帶256KB的SRAM和容量為2M x 8b FLASH存儲器,主頻最高可達75MHz。該ARM的等待電路由硬件等待邏輯產生,在內部實現。ARM外部中斷源主要有:4M 1553B通訊控制器中斷;20ms緩沖區切換中斷。其中,4M 1553B通訊控制器中斷信號經過整形后送入ARM。20ms緩沖區切換中斷提供給FPGA內部各個同步、異步通訊IP組幀狀態機用于緩沖區切換。

          3路輸入數字量接口

          3路輸入數字量,碼速率分別為:1.28Mbps、115.2Kbps、38.4Kbps的數據流,數據流在FPGA內部經過串并轉換將接收的數據存儲在數據緩沖區A和數據緩沖區B中,再經過狀態控制機來控制數據的不斷更新。

          同步422接口輸出

          采用兩路單向RS422同步串行通訊接口,差分傳輸,一路為串行數據,一路為時鐘數據 ,采用雙線制傳輸。輸出碼速率2.56Mbps,15位加擾。

          FPGA設計

          當3 路輸入數字量的數據流和4M的1553數據在20ms的時間內傳輸時,所需的內存約為10KB。

          緩沖區存儲切換有2種方式:

          1)當1.28M的同步串行接口接收的數據個數達到64x100時切換;

          2)由內部的20ms定時器切換。

          因此當ARM異常后,能夠確保除4M總線數據之外的其它通道正常輸出。當1.28M的同步串行接口異常后,FPGA內的狀態機自動切換到內部的20ms定時器進行切換。FPGA設計及IP核通過SPARTAN3AN集成開發環境進行仿真驗證。

          FPGA選用Xilinx公司的SPARTAN3AN系列的XC3S700AN-4FG484,電壓1.2~3.3V,電流50mA~2A,主頻最高達70MHz以上。

          地面單元測試儀的設計

          單元測試儀(圖2)主要完成對各種功能和參數的測試,模擬產生彈上機的所有輸入信號,并測試其所有輸出信號,可用于信息處理機的生產調試、出廠測試和外廠維修。

        地面單元測試儀框圖

        圖2 地面單元測試儀框圖

          單元測試儀由便攜式工控機內插相應PCI板卡和相應軟件程序組成,PCI板卡為1塊COM通訊測試板卡,其主要實現和彈上高速內總線4Mbps(或以上)1553B總線接口,在軟件的控制下,向彈上發送各種測試命令、并接收彈上機的測試結果。

          系統實現

          信息處理機的系統工作流程見圖3,具體包括:

          (1)上電復位及初始化

          上電后,FPGA和ARM同時復位,進行初始化過程,其中FPGA初始化中, FPGA內部寄存器和邏輯狀態的初始值、內部緩沖區數據清零依靠復位信號來完成,其中的“FPGA參數設定”由監控程序負責執行或由FPGA使用缺省參數完成。

          如果上電或復位時出現問題,FPGA使用缺省參數自動初始化所有參數并自動進行后續工作。

          (2)20ms緩沖區切換信號同步

          完成初始化后,FPGA內部的“20ms緩沖區切換信號”生成邏輯,自動執行和“1.28M同步輸入串口”的同步過程,同步過程中不向外發送任何數據,一旦同步后,會給出同步鎖定信號Sync Locked=“1”,所有通道的數據采集工作均開始,進入遙測信息接收過程。

          (3)遙測信息接收

          通道的數據采集都以FPGA內部產生的“20ms緩沖區切換信號SwitchBuf”為20ms周期標志進行緩沖區的切換(雙端口),分別為A,B兩個緩沖區。

          1.28M通道在20ms內應完成32x100=3200 Bytes的數據接收。并根據字計數器反轉當前的SwitchBuf信號。

          4M 1553B通道應由ARM完成4M 1553B總線遙測數據的接收、過濾、打包,形成20ms內約1500 Bytes的遙測數據包填入分配給它的包緩沖區,由FPGA自動生成對應的包長度信息放入一個包長度FIFO中。此后,ARM重新開始下一20ms數據接收工作,,如此反復循環下去。組幀狀態機(MFSTM)在組幀過程中,一旦發現包長度FIFO不空,就從包緩沖區FIFO中讀取對應長度的數據包,按照規定格式和位置填入數據融合表。

        信息處理機工作流程

        圖3 信息處理機工作流程

         38.4K異步串行輸入通道由FPGA的UART IP核完成串行輸入數據的接收,IP核根據字間隔是否超過2個字的接收時間來判斷是否完成一幀的接收,原理和1553總線數據的接收相同。

          115.2K異步串行輸入通道由FPGA的UART IP核完成串行輸入數據的接收.緩沖區由一個FIFO組成。組幀狀態機會隨時查詢該FIFO空滿狀態,若不空,則就開始連續的讀取過程,每間隔200μs從FIFO中讀取一個數據并按照規定格式和位置填入數據融合表,直到該FIFO的數據取完為止,若為空,則新幀對應通道的位置數據填零。

          (4)組幀

          組幀工作即遙測數據的數據融合,將各路遙測信息按照給定的數據融合格式組織成一個完整的100幀(1幀200us,100幀20ms)格式進行發送,該功能由設計在FPGA內部“組幀狀態機(MFSTM)IP”完成。

          (5)數據融合表

          上電復位后,組幀狀態機MFSTM等待同步鎖定信號Sync Locked=“1”后開始工作,并根據20ms緩沖區切換信號SwitchBuf進行周期性的切換。按照數據融合表設計好的順序依次訪問1.28M同步輸入串口緩沖區、4M 1553B總線數據緩沖區、115.2K異步輸入串口緩沖區、38.4K異步輸入串口緩沖區等等,并讀取指定數量的數據依次填入本次20ms的數據融合表中,重復100次,從而完成表中1~100行數據的填寫。數據融合表的數據結構設計成FIFO, 使用FIFO可以平衡快速的組幀狀態機和慢速的發送狀態機之間的速度差異,使發送的數據流保持在2.56Mbps的波特率之下,持續發送。

          (6)發送

          數據融合表的發送則由“發送狀態機(SendSTM) IP”完成。它以數據融合表FIFO、2.56M發送時鐘為輸入,一旦啟動就不再停止。發送狀態機首先查詢數據融合表FIFO, 若FIFO為空,則等待;若FIFO不空,則以2.56M/8的固定時鐘頻率持續讀取數據融合表FIFO的數據,再送入“15段加擾器”進行加擾,加擾后的數據和時鐘經RS-422驅動電路轉化為RS-422差分形式發送給加密器,即2.56M輸出。

          (7)1.28M同步輸入串口故障檢測

          FPGA中的故障檢測單元(FDU)負責檢測1.28M同步輸入串口的輸入信號是否正常。當故障檢測單元FDU發現1.28M同步輸入串口產生的SwitchBuf信號的周期和晶振產生的20ms時鐘周期誤差超過△T(如±2ms),則認為1.28M同步輸入串口故障,立即將SwitchBuf信號切換到由晶振分頻產生的20ms時鐘上。

          系統仿真

          以下為相關軟件對系統主要功能進行的仿真:

        ISE編譯后得出的FPGA資源利用情況

        圖4 ISE編譯后得出的FPGA資源利用情況

        數據融合表的仿真結果

        圖5 數據融合表的仿真結果

          數據融合表的結構為100行,64列,第1-32列為高速同步接口數據,第33-50列為總線數據,第51、52列分別為115.2K、38.4K接口數據,還有少量模擬量數據、全幀計數、同步碼組等。

        數據融合表輸入及輸出的對比

        圖6 數據融合表輸入及輸出的對比

          由于組幀速度遠比讀出速度快,所以分兩個圖顯示。

         2.56M發送數據

        圖7 2.56M發送數據

          結語

          用FPGA代替常規處理器實現多路數據的采集、融合并實時發送,利用FPGA豐富的可編程邏輯資源和內部存儲器進行邏輯設計,大大減少了外圍元器件種類和數量,提高了系統的處理和I/O帶寬。

          同時,FPGA在航天領域的也推動了可編程技術的發展。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 滨州市| 马龙县| 湟源县| 松滋市| 嵊泗县| 江都市| 新宾| 涟源市| 东城区| 临沧市| 南宫市| 昔阳县| 内黄县| 资源县| 丰都县| 会宁县| 维西| 西青区| 互助| 平安县| 会理县| 苍山县| 张北县| 瑞丽市| 织金县| 建德市| 北宁市| 蓬安县| 台州市| 达孜县| 舒兰市| 白水县| 奉贤区| 南华县| 康平县| 远安县| 雷波县| 尼玛县| 时尚| 涞源县| 富锦市|