新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于CAN總線的車身電器控制系統(tǒng)網(wǎng)絡(luò)實驗臺設(shè)計

基于CAN總線的車身電器控制系統(tǒng)網(wǎng)絡(luò)實驗臺設(shè)計

作者: 時間:2010-08-03 來源:網(wǎng)絡(luò) 收藏

3 系統(tǒng)軟件設(shè)計
任何系統(tǒng)的通信協(xié)議都由物理層協(xié)議、數(shù)據(jù)鏈路層協(xié)議和應(yīng)用層協(xié)議組成。SJAl000和PCA82C250的硬件結(jié)構(gòu)保證了協(xié)議的物理層和數(shù)據(jù)鏈路層。對于應(yīng)用層,在不同的應(yīng)用領(lǐng)域,人們制定了不同的協(xié)議,包括open、DeviceNet及SAE J1939等。應(yīng)用層協(xié)議決定了系統(tǒng)的可擴展性。將CAN應(yīng)用層合理分配后應(yīng)用于軟件結(jié)構(gòu)中可提高軟件的兼容性。
本設(shè)計各類節(jié)點可將程序分為主程序和子程序。主程序的目的是監(jiān)控本節(jié)點中各電器的狀態(tài),采用查詢方式編程:子程序分為接收子程序和發(fā)送子程序,采用模塊化編程,將節(jié)點的功能分成各種模塊并形成文件,在編寫各節(jié)點程序時直接調(diào)用各個模塊程序函數(shù)即可。這里參考SAE J1939的編碼規(guī)則對CAN系統(tǒng)的應(yīng)用層進(jìn)行分配,并介紹各節(jié)點的軟件結(jié)構(gòu)。
3.1節(jié)點主程序
上位機轉(zhuǎn)換節(jié)點主程序的作用是:查詢上的數(shù)據(jù),并將依據(jù)CAN協(xié)議的數(shù)據(jù)轉(zhuǎn)換為依據(jù)RS232電平標(biāo)準(zhǔn)的數(shù)據(jù)。圖7為上位機轉(zhuǎn)換節(jié)點流程:開關(guān)控制節(jié)點主程序用于查詢開關(guān)的閉合或斷開狀態(tài)并將開關(guān)狀態(tài)存儲到單片機的寄存器中。圖8所示為開關(guān)控制節(jié)點的程序流程,其車燈控制節(jié)點主程序用于查詢CAN總線上的數(shù)據(jù)以控制相應(yīng)的電器。圖9所示為車燈控制節(jié)點的程序流程,其車門控制節(jié)點既要查詢開關(guān)的狀態(tài)存人單片機,又要查詢CAN總線的數(shù)據(jù)控制相應(yīng)的電機,其主程序包含開關(guān)控制節(jié)點和車燈控制節(jié)點主程序的功能。


3.2 節(jié)點子程序
接收子程序的作用是將CAN總線上傳來的數(shù)據(jù)存儲到單片機中合適的位置,需要用時,CPU直接從該位置查詢即可。在運行接收函數(shù)前,需先檢查CAN控制器SJAl000的寄存器中是否有傳來的數(shù)據(jù),如果有則運行此程序;如果無,則放棄或繼續(xù)查詢。發(fā)送子程序的作用是將所要發(fā)送的數(shù)據(jù)包裝并發(fā)送到CAN控制器。在主程序中,系統(tǒng)不斷查詢SJAl000的狀態(tài),一旦空閑,CPU將待發(fā)送的數(shù)據(jù)發(fā)送到CAN控制器。

4 結(jié)束語
通過對基于CAN總線的系統(tǒng)的整體優(yōu)化設(shè)計,得出結(jié)論:對節(jié)點進(jìn)行優(yōu)化后,資源得到合理使用,并增強了節(jié)點的實用和美觀性,使節(jié)點的接口電路設(shè)計更加靈活。本方案側(cè)重于對實驗臺實用性的改進(jìn)。通信過程中存在的干擾、基于時間觸發(fā)的CAN(即TTCAN)的應(yīng)用問題尚待進(jìn)一步的研究。


上一頁 1 2 3 下一頁

關(guān)鍵詞: CAN 總線 車身 電器控制

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉