基于FPGA和BU-65170的1553B遠(yuǎn)程終端設(shè)計與實現(xiàn)
3.5 主控制器
FPGA中控制與BU-65170通信的主控制狀態(tài)機如圖9所示。初始化完成后程序進入等待狀態(tài)。此時如果收到中斷信號(INT=0),則首先讀取中斷寄存器,判斷是否為消息結(jié)束中斷(EOM),如果不是,進入錯誤狀態(tài),等待BC對RT進行檢查或重啟RT;如果是消息結(jié)束中斷,則繼續(xù)讀取上一個命令字,若是發(fā)送命令,則從FIFO中讀取28 B的狀態(tài)信息數(shù)據(jù),接著向相應(yīng)的發(fā)送子地址數(shù)據(jù)塊填寫數(shù)據(jù),在RT收到下一個發(fā)送命令后,BC從相應(yīng)子地址讀取上一條數(shù)據(jù),這與對BU-65170進行讀操作的原理相似。如果上一個命令字是接收命令,則讀取相應(yīng)子地址對應(yīng)的數(shù)據(jù)塊,然后讀取具體命令內(nèi)容,再根據(jù)命令進行相應(yīng)的處理,最后回到等待狀態(tài)。本文引用地址:http://butianyuan.cn/article/189492.htm
接收子地址1工作在雙緩沖模式,用于接收BC發(fā)送的廣播時間碼,加載到每一條從RT發(fā)送到BC的狀態(tài)信息的頭部。雙緩沖模式可以使FPGA訪問指定子地址剛接收到的消息,RT將接收的數(shù)據(jù)字交替存儲到數(shù)據(jù)塊0和數(shù)據(jù)塊1中。當(dāng)FPGA需要訪問接收子地址1內(nèi)的消息時,首先將其改成單消息模式,讀取數(shù)據(jù)塊地址,并將其bit5的值取反得到“非活躍”數(shù)據(jù)塊的地址,讀取其上的最新時間碼后再將接收子地址1改為雙緩沖模式。
4 測試
選用Alta公司的ECD54-1553多功能板卡(能模擬BC\RT\BM)作為BC,與設(shè)計的RT搭成一個測試系統(tǒng),如圖10所示。
首先在ECD54-1553的控制界面中設(shè)置RT地址為21,然后根據(jù)在FPGA邏輯中設(shè)定的RT子地址及傳輸數(shù)據(jù)量進行相應(yīng)的設(shè)置,再開啟總線監(jiān)控(BM)功能,測試RT→BC的過程如圖11所示。設(shè)置RT地址為21、發(fā)送子地址為6、數(shù)據(jù)量為32個字(2 B標(biāo)志位+28 B數(shù)據(jù)+2 B保留位);通過串口調(diào)試助手從PC機向RS 422發(fā)送28 B數(shù)據(jù);經(jīng)過FPGA處理后傳送給1553B總線控制器,BM顯示總線控制器正確收到從RS 422發(fā)來的數(shù)據(jù)。測試BC→RT的過程如圖12所示。
設(shè)置RT地址為21、接收子地址為4、數(shù)據(jù)量為2個字;由BC發(fā)送2個字的數(shù)據(jù)12FE 42DF;串口調(diào)試助手顯示RS 422正確接收到BC發(fā)送過來的數(shù)據(jù)。示波器測得的實際曼徹斯特Ⅱ型碼波形如圖13,圖14所示。
測試結(jié)果表明RT能正確、穩(wěn)定地跟BC進行通信,達到工程項目所需的要求。
5 結(jié)語
本文設(shè)計了基于FPGA和BU-65170的1553B遠(yuǎn)程終端,實現(xiàn)1553B通信。詳細(xì)介紹了硬件連接、BU-65170芯片配置、FPGA邏輯模塊、UART設(shè)計、測試過程和結(jié)果。通過引入RS 422接口,更加直觀地觀測到1553B通信過程,易于調(diào)試。采用FPGA的最大優(yōu)點是能迅速移植代碼,縮減研發(fā)周期。隨著技術(shù)的發(fā)展,對數(shù)據(jù)傳輸和處理提出了更高的要求,未來可以把控制其他子系統(tǒng)的模塊和數(shù)據(jù)處理功能集成在一塊FPGA芯片中提高集成性,便于開發(fā)和維護。
fpga相關(guān)文章:fpga是什么
評論