基于1553B飛機(jī)總線系統(tǒng)通訊軟件的設(shè)計(jì)
這5層之間功能劃分明確,接口簡(jiǎn)單,從而為硬軟件的設(shè)計(jì)實(shí)現(xiàn)奠定良好的基礎(chǔ)[2]。應(yīng)用層是通信系統(tǒng)的最高層次,他實(shí)現(xiàn)通信系統(tǒng)管理功能(如初始化、維護(hù)、重構(gòu)等)和解釋功能(如描述數(shù)據(jù)交換的含義、有效性、范圍、格式等)。
驅(qū)動(dòng)層是應(yīng)用層與低層的軟件接口。為實(shí)現(xiàn)應(yīng)用層的管理功能,驅(qū)動(dòng)層應(yīng)能控制子系統(tǒng)內(nèi)多路傳輸總線接口(簡(jiǎn)稱(chēng)MBI)的初始化、啟動(dòng)、停止、連接、斷開(kāi)、啟動(dòng)其自測(cè)試,監(jiān)控其工作狀態(tài),控制其和子系統(tǒng)主機(jī)的數(shù)據(jù)交換。
傳輸層控制多路傳輸總線上的數(shù)據(jù)傳輸,傳輸層的任務(wù)包括信息處理、通道切換、同步管理等。
數(shù)據(jù)鏈路層按照MILSTD1553B規(guī)定,控制總線上各條消息的傳輸序列。
物理層按照MILSTD1553B規(guī)定,處理1553B總線物理介質(zhì)上的位流傳輸。
應(yīng)用層、驅(qū)動(dòng)層在各個(gè)子系統(tǒng)主機(jī)上實(shí)現(xiàn),傳輸層、數(shù)據(jù)鏈路層、物理層在MBI上實(shí)現(xiàn)。
5 總線系統(tǒng)通訊軟件設(shè)計(jì)
在某型飛機(jī)航空總線系統(tǒng)的設(shè)計(jì)中,一個(gè)很重要的工作就是總線通訊軟件的設(shè)計(jì)。航空總線通訊軟件設(shè)計(jì)包括:驅(qū)動(dòng)層和應(yīng)用層的軟件設(shè)計(jì)。其中驅(qū)動(dòng)層直接驅(qū)動(dòng)總線接口板主要完成各個(gè)寄存器的配置,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收;應(yīng)用層是設(shè)計(jì)中的最高層,他管理整個(gè)系統(tǒng)的功能[3]。作為一塊接口板,設(shè)計(jì)的重點(diǎn)在于驅(qū)動(dòng)層的軟件的設(shè)計(jì),他包括3個(gè)方面的內(nèi)容:
(1)FPGA部分的軟件。
(2)DSP部分的軟件。
(3)上位機(jī)操作系統(tǒng)驅(qū)動(dòng)軟件。
5.1 FPGA程序控制功能
該部分采用VHDL語(yǔ)言編寫(xiě),實(shí)現(xiàn)1553B總線數(shù)據(jù)的接收、發(fā)送、曼徹斯特II碼、錯(cuò)誤檢出、奇偶檢驗(yàn)、與DSP的接口和譯碼電路等功能。其中發(fā)送單元與接收單元是并行工作的,由邏輯門(mén)電路實(shí)現(xiàn)。這里從軟件角度畫(huà)出流程圖如圖5所示。
5.2 DSP程序控制功能
DSP控制部分程序?qū)崿F(xiàn)的功能如下:
(1)對(duì)總線接口板的初始化(包括初始化DSP本身內(nèi)部電路和寄存器FPGA及上位機(jī)通訊寄存器)。
(2)實(shí)現(xiàn)RT地址識(shí)別
由于是多RT總線接口板,所以收到數(shù)據(jù)后,應(yīng)該判別該RT地址是否屬于該接口板;
(3)與上位機(jī)消息傳輸控制功能
消息傳輸控制程序完成總線應(yīng)傳輸?shù)臄?shù)據(jù)在總線接口 板和上位機(jī)之間的數(shù)據(jù)交換。包括數(shù)據(jù)的讀寫(xiě)過(guò)程和自檢測(cè)過(guò)程,所要完成的操作如下: ①向FPGA寫(xiě)入發(fā)送數(shù)據(jù)(到總線)。
②從FPGA內(nèi)讀出數(shù)據(jù)(該數(shù)據(jù)由DSP處理)。
③向雙口RAM寫(xiě)入數(shù)據(jù)(到上位機(jī))。
④自檢測(cè)過(guò)程。自檢測(cè)過(guò)程是在收到上位機(jī)的自檢命令后,實(shí)現(xiàn)接口板的數(shù)據(jù)發(fā)送 和接收性能測(cè)試。
(4)中斷控制程序
在DSP芯片TMS320F206接口的設(shè)計(jì)中,使用3個(gè)硬件中斷,INT1,INT2由FPGA來(lái)產(chǎn)生,INT3 則由上位機(jī)來(lái)產(chǎn)生。INT1表明FPGA的接收單元已收到一個(gè)數(shù)據(jù),通知F206讀數(shù),INT2表明FPGA的接收單元已收到一個(gè)錯(cuò)誤數(shù)據(jù),通知F206讀取錯(cuò)誤狀態(tài)信息,INT3是上位機(jī)和接口板數(shù)據(jù)傳輸控制的一種手段,通過(guò)INT3中斷,上位機(jī)告訴接口板進(jìn)行數(shù)據(jù)接收還是數(shù)據(jù)發(fā)送操作,發(fā)送多少數(shù)據(jù),采用的消息格式以及總線控制等信息。
DSP部分的軟件采用C++和匯編語(yǔ)言混合編程,關(guān)鍵路徑如中斷服務(wù)程序,數(shù)據(jù)發(fā)送和接收程序都采用匯編語(yǔ)言以達(dá)到最大的執(zhí)行效率,主程序采用C++編寫(xiě)。
DSP部分軟件的流程圖,如圖6所示。
5.3 上位機(jī)控制程序
主要實(shí)現(xiàn)上位機(jī)在特定的操作系統(tǒng)下對(duì)接口板的軟件驅(qū)動(dòng)、數(shù)據(jù)通訊和傳輸控制。主要使用C++在Windows環(huán)境下進(jìn)行軟件開(kāi)發(fā)。
6結(jié)語(yǔ)
本文介紹了一種基于FPGA和DSP對(duì)某型飛機(jī)總線系統(tǒng)通訊軟件設(shè)計(jì)與實(shí)現(xiàn)的方法。在實(shí)際的運(yùn)用中,較好的實(shí)現(xiàn)了總線系統(tǒng)通訊功能,對(duì)1553B總線研究具有一定的使用和參考價(jià)值。
評(píng)論