一、方案組成
4Mbps 1553B高速總線接口卡的主要實現兩路4Mbps 1553B總線到FSMC并行接口之間的數據轉換及轉發。其原理方案框圖如圖1所示,該板卡采用單處理器方案,型號為XILINX公司的ZYNQ 7020/10芯片,ZYNQ7020/10集成了2個ARM9內核和1個A7 FPGA單元。該芯片在處理器側提供多種常用外設接口(DDR3、RGMII、UART、SPI、EMMC、I2C、QSPI、USB等),ARM 內核可直接訪問這些接口外設。同時ARM與FPGA之間通過高速AXI4總線互聯,實現FPGA與ARM之間的高速雙向數據交換。通過在FPGA側添加不同外設的IP核,非常容易實現多種類、多數量的外設擴展。
1553B高速總線接口卡的主要功能及接口特性如下:
? 配置電路,為主芯片提供上電復位及正確的工作配置模式
? DDR模塊,板上設計2片16位寬DDR3芯片,單片容量4Gbit,提供總容量32位寬,1GByte內存空間,數據速率1066Mbps,吞吐速率最大32Gbps
? 時鐘模塊,提供33.3333MHz系統工作時鐘和25MHz平臺工作時鐘
? JTAG,作為處理芯片的在線調試、程序下載接口
? QSPI,板上設計1片128Mb容量QSPI芯片,作為啟動存儲芯片,存放啟動文件
? 調試UART,板上提供1路UART收發接口作為調試串口
? 1553B接口,板上提供兩路1553B總線接口,作為雙冗余備份。每路1553B總線均由1片收發器芯片和1個變壓器組成,最高通訊速率可達4Mbps。
? FSMC接口,板上提供1路FSMC 并行總線接口,該總線由16位數據線、16位地址線,以及讀、寫等控制信號線組成
二、技術途徑
1553B到FMSC并行總線之間的數據轉換及轉發功能主要通過FPGA開發實現。1553B側的幀收發、協議分析處理、數據提取通過專用1553B IP核實現。在接收到1553B側過來的幀后,會把匹配自身地址的數據提取出來放置在內部RAM中,然后通過FSMC接口邏輯向外輸出中斷提醒主機側收取。主機側發送過來的數據通過FSMC接口寫入到內部RAM中后,1553B IP會加上相應的同步頭、RT地址等信息組成標準1553B幀發送出去。ZYNQ中的ARM主要負責各FPGA模塊的配置。
本設計中的元器件選型均考慮了后期國產化的要求。目前1553收發器、變壓器均采用國產元器件。其它元器件以及電路的設計均考慮了國產兼容替代。后期可通過調整電路焊接、少量修改軟件的方式可實現全國產化。
三、邏輯分析
1553B通信協議由FPGA實現,主要由曼徹斯特編解碼模塊和1553B協議處理模塊組成。
3.1 曼徹斯特編解碼模塊
1553B總線以字為單位進行數據傳輸,每個字包含20位,其中前3位為同步頭,后17位為數據位和奇偶校驗位。本設計中總線數據傳輸速率為4 Mb/s,采用曼徹斯特Ⅱ雙相碼編碼方式,每位數據中間均有一個跳變沿,由正到負的跳變表示邏輯‘1’,由負到正的跳變表示邏輯‘0’。
編碼模塊主要完成對待發送消息字的曼徹斯特編碼,并將其并串轉換后輸出。由于曼徹斯特碼每位數據中間均有跳變,故發送時需將每一位分割成兩位,分別發送,其工作過程為:
(1) 同步頭編碼,若為數據字同步頭,則編碼為“111000”(由高位到低位,下同),若為狀態字或命令字同步頭,則編碼為“000111”;
(2)數據和奇偶校驗位編碼,若為‘0’,則編碼為“01”,若為‘1’,則編碼為“10”;
(3)按由低到高的順序將編碼后的40位數據串行輸出。
解碼模塊主要完成消息字的解碼,并將其串并轉換后輸出,其工作過程為:
(1)檢測到總線上有效電平,解碼器開始工作;
(2)同步頭解碼,檢測到指令字和狀態字同步頭用“011”表示,檢測到數據字同步頭用“100”表示;
(3)16位數據位和1位奇偶校驗位解碼;
(4)將解碼后的消息字(20位)并行輸出。
3.2 協議處理模塊設計
3.2.1 協議處理模塊響應流程
協議處理模塊實現BC、 RT、MT三種總線終端的協議處理,在FPGA模塊設計之前,根據1553B協議對協議處理模塊三種工作模式下的響應流程分別進行分析設計。
? BC模式
BC(總線控制器)是1553B 總線的核心,總線上任何類型的數據交換都由它發起。1553B協議規定了BC需要完成的主要任務包括:
(1)命令字和數據字的正確發送,包括接收器、同步檢出、數據檢出、曼徹斯特碼錯誤檢出、奇偶校驗,位/字計數;
(2)數據字和狀態字的正確接收,包括發送控制,同步/數據編碼,時鐘產生;
(3)字/消息的處理,包括接收部分、計數器、狀態寄存器,自測試部分,主子系統接口部分、控制、數據地址、控制寄存器,存儲器緩沖部分,狀態字譯碼部分、字計數識別、消息錯誤檢出等任務。
1553B 協議規定的總線指令可分發送指令、接收指令和方式指令三種,共能實現四種類型的功能:RT 到BC 的數據傳輸、BC 到RT 的數據傳輸、RT 到RT 的數據傳輸和總線管理。根據圖4,BC 模式下接口主要工作過程為:
(1)根據外部系統需求發送相應命令字,發起總線傳輸;
(2)根據指令類型的不同,進入不同響應流程,主要包括數據字發送、數據字接收和狀態字接收等;
(3)消息完成后進行消息結束處理,主要包括消息結束標志的產生,差錯處理,以及根據收到的RT狀態字判斷總線終端狀態等。
需要注意的是,BC 如果在規定的時間內沒有收到RT狀態回復,則需重新發送命令字進行重試(Retry)。
? RT模式
RT(遠程終端)是1553B 總線上的指令/響應型終端,它響應BC發送的指令,按要求接收或發送數據,在規定時間內回送狀態字,并服從BC的總線管理。協議規定RT需要完成的任務包括:
(1)數據字的正確接收,包括接收器、同步檢出、數據檢出、曼徹斯特碼錯誤檢出、奇偶校驗,位/字計數;
(2)數據字和狀態字的正確發送,包括發送控制,同步/數據編碼,時鐘產生;
(3)字/消息的處理,包括接收部分、命令字譯碼、狀態字譯碼、地址識別、方式指令執行、字計數識別、錯誤消息檢出,發送部分、字計數、狀態寄存器,自測試部分,子系統接口控制、數據地址、控制寄存器,存儲緩沖區等任務。
根據RT模式下接口主要工作過程為:
(1)收到命令字后進行指令分析,根據指令類型進入相應的響應流程;
(2)按照流程進行數據字接收、發送,并回復狀態字;
(3)消息完成后進行消息結束處理,主要包括消息結束標志的產生,差錯處理,以及特殊方式指令下方式標志的產生等。
? MT模式
MT(總線監控器)是總線上的監聽單元,它監控總線上的信息傳輸,完成對總線的上原始數據的記錄,但它本身不參與總線的通信。
MT需要完成的任務包括:
(1)數據字的正確接收,包括接收器、同步檢出、數據檢出、曼徹斯特碼錯誤檢出、奇偶校驗,位/字計數;
(2)字/消息的處理,包括接收部分、命令字譯碼、狀態字譯碼、地址識別、方式指令執行、字計數識別、錯誤消息檢出,發送部分、字計數、狀態寄存器,自測試部分,子系統接口控制、數據地址、控制寄存器,存儲緩沖區等任務。
3.2.2 協議處理模塊FPGA總體設計
根據以上三種模式下接口響應流程的分析,對協議處理模塊各FPGA 子功能模塊進行了劃分,總體設計框圖如圖7所示。
協議處理模塊主要由數據接收部分、數據發送部分和數據緩存部分組成,此外還包括超時檢測、地址譯碼及讀寫控制、中斷管理等輔助部分。由于三種模式下某些功能重復,為了提高FPGA 資源利用率,設計時充分考慮了相應模塊的模式復用,整個協議處理邏輯可在外部模式選擇信號的控制下工作在BC,RT和MT模式。
協議處理模塊總體設計框圖
全局時鐘通過時鐘管理模塊為各FPGA功能模塊提供工作時鐘,各模塊間通過一定的握手信號互聯,保證協議處理邏輯有序工作。整個協議處理模塊的基本工作原理如下:按照1553B 協議規范,通過接收器接收總線上的數據并存入緩存,通過發送器取出緩存中的數據并發送到總線上,同時不斷以中斷和握手信號與外部系統進行通信,通知外部系統向緩存中寫入待發送數據或從緩存中讀取已接收數據,并共同完成差錯處理和協議邏輯的管理。