基于CAN的大客飛機(jī)航電系統(tǒng)局域網(wǎng)通信設(shè)計
3.1 主模塊
主模塊通過調(diào)用適當(dāng)?shù)墓δ苣K,控制系統(tǒng)初始化及整個系統(tǒng)軟件的流程。
3.2 初始化模塊
初始化模塊通過調(diào)用API函數(shù)進(jìn)行硬件初始化和軟件初始化。主要完成各子系統(tǒng)之間通信所需要的通道選擇、波特率、幀格式、工作方式、發(fā)送數(shù)據(jù)方式、發(fā)送數(shù)據(jù)周期等初始化設(shè)置。
3.3 控制模塊
控制模塊主要完成對系統(tǒng)狀態(tài)、通信以及顯示的控制,根據(jù)操作人員的操作及其他系統(tǒng)節(jié)點的相應(yīng)狀態(tài),確定系統(tǒng)運(yùn)行狀態(tài)與工作方式的控制與切換、有關(guān)數(shù)據(jù)通信的控制等。
3.4 數(shù)據(jù)管理模塊
本模塊主要完成系統(tǒng)運(yùn)行過程中,對將要發(fā)送的數(shù)據(jù)進(jìn)行實時的編碼,對接收到的有關(guān)數(shù)據(jù)塊進(jìn)行實時解碼。數(shù)據(jù)處理的主要功能是根據(jù)接口控制文件(ICD)文件數(shù)據(jù)塊的大小,配合發(fā)送、接收模塊完成數(shù)據(jù)幀的封裝和解析。ICD用C++的結(jié)構(gòu)類來表示,并且每個子系統(tǒng)對應(yīng)一個惟一的ICD文件,ICD文件里面存放有多個數(shù)據(jù),形成數(shù)據(jù)塊。數(shù)據(jù)發(fā)送時通過調(diào)用軟件發(fā)送函數(shù),將ICD文件中的參數(shù)通過編碼組成對應(yīng)的CAN總線信息幀數(shù)據(jù)場并以字節(jié)的形式進(jìn)行發(fā)送。
3.5 數(shù)據(jù)通信模塊
通信模塊通過調(diào)用通信卡上底層的API函數(shù),配合數(shù)據(jù)發(fā)送和數(shù)據(jù)接收等模塊完成對各個子系統(tǒng)的數(shù)據(jù)發(fā)送和接收功能。
CAN協(xié)議規(guī)定數(shù)據(jù)幀每幀最多攜帶8個字節(jié)的數(shù)據(jù)。如果數(shù)據(jù)塊的總字節(jié)數(shù)大于8,那么需要分成多幀傳送,并且準(zhǔn)確標(biāo)示數(shù)據(jù)幀序列號,分辨出幀數(shù)據(jù)場中的數(shù)據(jù)對應(yīng)數(shù)據(jù)塊中的第幾個數(shù)據(jù)。比如在封裝時有可能遇到封裝某一兩字節(jié)數(shù)據(jù)時,本幀目前只能放下一個字節(jié)數(shù)據(jù),那么本幀將封裝低字節(jié),而高字節(jié)則被封裝進(jìn)下一幀。程序中設(shè)計int型變量ordernum標(biāo)示這種情況的封裝。接收時按封裝的反過程解析數(shù)據(jù)。
3.6 顯示模塊
顯示界面如圖7所示。本文引用地址:http://www.ex-cimer.com/article/154762.htm
圖7中左端顯示各子系統(tǒng)ICD文件節(jié)點名稱,右上方顯示該子系統(tǒng)從其他子系統(tǒng)接收到的最新數(shù)據(jù),右下方顯示收到最新數(shù)據(jù)的物理值及在ICD文件中的屬性。狀態(tài)欄顯示系統(tǒng)狀態(tài)。
3.7 應(yīng)用層協(xié)議
應(yīng)用層協(xié)議并不屬于軟件編程的范疇,但是CAN 2.0協(xié)議只規(guī)定物理層和鏈路層的標(biāo)準(zhǔn),沒有規(guī)定應(yīng)用層通信協(xié)議,而數(shù)據(jù)的通信必須按照應(yīng)用層協(xié)議來封裝幀、解析幀。目前有很多成熟的工業(yè)協(xié)議可以選擇,但不完全符合本系統(tǒng)的要求,為此,專門制定了針對本系統(tǒng)的應(yīng)用層協(xié)議。
本軟件采用擴(kuò)展格式的數(shù)據(jù)幀進(jìn)行通信,擴(kuò)展幀的29位標(biāo)識符結(jié)構(gòu)設(shè)計如表1所示,應(yīng)用層信息幀格式如表2所示。
利用本應(yīng)用層協(xié)議傳輸數(shù)據(jù),可以從信息幀中獲取數(shù)據(jù)來源、順序、是否為最后一幀等信息,完全滿足了仿真系統(tǒng)通信的需要,較好地完成了各個子系統(tǒng)之間的通信。
4 結(jié)論
CAN總線具有很好的應(yīng)用前景,它采用非破壞基于優(yōu)先權(quán)仲裁技術(shù),可實現(xiàn)多主工作方式,傳輸時間短,受干擾概率低,系統(tǒng)靈活、可擴(kuò)展性強(qiáng),報文摒除了傳統(tǒng)的源地址、目標(biāo)地址的概念,僅用標(biāo)識符來指示功能信息、優(yōu)先級信息,安裝簡單,易于維護(hù),經(jīng)濟(jì)性好。該仿真系統(tǒng)已交付使用。使用結(jié)果表明,CAN總線局域網(wǎng)通信卡工作良好,系統(tǒng)工作正常,實現(xiàn)了各子系統(tǒng)之間的通信,人機(jī)界面友好,為大客飛機(jī)航電綜合控制系統(tǒng)不斷發(fā)展做好技術(shù)和物質(zhì)準(zhǔn)備。
評論