CAN總線在商用車上數(shù)據(jù)采集的實(shí)現(xiàn)
3 系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)軟件由數(shù)據(jù)采集發(fā)送單元軟件和數(shù)據(jù)接收顯示單元軟件兩大部分組成。數(shù)據(jù)采集發(fā)送單元軟件負(fù)責(zé)對(duì)商用車信號(hào)進(jìn)行采集、處理并發(fā)送;數(shù)據(jù)接收.顯示單元負(fù)責(zé)對(duì)以上數(shù)據(jù)進(jìn)行接受,并顯示輸出系統(tǒng)的主程序框圖、數(shù)據(jù)接收顯示單元軟件框圖和數(shù)據(jù)采集發(fā)送單元軟件框圖如圖6-8所示。
圖6 系統(tǒng)主程序框圖
圖7 接收單元框圖
商用車信號(hào)采集電路程序編寫可分為:
1) CAN總線通訊節(jié)點(diǎn)的初始化程序;
2) CAN總線數(shù)據(jù)采集發(fā)送單元程序;
3) CAN總線數(shù)據(jù)接收顯示單元程序。
CAN總線的初始化十分重要,這里給出CAN初始化程序。下面就以Keil C51為平臺(tái),系統(tǒng)介紹如何用C51語言對(duì)SJA1000 CAN總線控制器進(jìn)行初始化。
以上就是SJA1000初始化的全部程序,其中AT89C52.H是為89C52主控制器專門編寫的庫函數(shù),它在Keil軟件中是現(xiàn)成的,只要用#inelude語句包括進(jìn)來即可;int rins.h是為今后調(diào)用空函數(shù)-nop-()作準(zhǔn)備,它里面包括了一個(gè)類似于匯編語言的NOP語句;其中還須注意的就是在主函數(shù)中一般都有一個(gè)while(1)語句,表示不斷地做循環(huán),否則在程序編譯時(shí)會(huì)提示出錯(cuò)。
評(píng)論