汽車(chē)儀表系統(tǒng)軟件設(shè)計(jì)分為主程序、CAN通信、數(shù)據(jù)采集處理和數(shù)據(jù)顯示等4個(gè)模塊。主程序模塊通過(guò)調(diào)用各個(gè)子模塊程序來(lái)處理數(shù)據(jù)處理:CAN通信模塊負(fù)責(zé)發(fā)送和接收數(shù)據(jù);數(shù)據(jù)采集及處理模塊完成對(duì)各種類(lèi)型數(shù)據(jù)的采集以及計(jì)算;數(shù)據(jù)顯示模塊將車(chē)速、油壓以及信號(hào)燈等信息顯示在儀表上。
其主程序流程分為五個(gè)部分:
1)系統(tǒng)初始化。系統(tǒng)初始化主要包括初始化系統(tǒng)時(shí)鐘、CAN節(jié)點(diǎn)、LCD液晶屏、步進(jìn)電機(jī)等,并使能CAN中斷,設(shè)置CAN屏蔽碼和驗(yàn)收碼。CAN節(jié)點(diǎn)初始化主要是初始化CAN控制器并中斷CAN控制器。
2)讀取傳感器以及CAN總線數(shù)據(jù),并驅(qū)動(dòng)指針以及LCD等顯示,同時(shí)等待CAN接收中斷。
3)CAN接收中斷產(chǎn)生,進(jìn)入接收中斷子程序讀取數(shù)據(jù)。判斷數(shù)據(jù)是否符合數(shù)據(jù)接收條件,如果符合,則接收數(shù)據(jù)。此過(guò)程逐位比較接收到的29位標(biāo)識(shí)符與驗(yàn)收碼、屏蔽碼,只有標(biāo)識(shí)符相應(yīng)位與驗(yàn)收碼相應(yīng)位相同,系統(tǒng)才開(kāi)始接收數(shù)據(jù)。
4)處理器將接收的報(bào)文進(jìn)行解析,提取需要的數(shù)據(jù)并進(jìn)行處理。處理器對(duì)傳感器傳來(lái)的數(shù)據(jù)和CAN總線讀取的數(shù)據(jù)進(jìn)行處理計(jì)算,得到相應(yīng)的指針驅(qū)動(dòng)參數(shù),計(jì)算出指針轉(zhuǎn)角,并根據(jù)初始化的 步進(jìn)電機(jī)的參數(shù)計(jì)算出指針轉(zhuǎn)動(dòng)速度。指針轉(zhuǎn)動(dòng)速度與相應(yīng)的參數(shù)變化速度成正比。同時(shí)計(jì)算出車(chē)輛行駛里程并累加到總路程上。 5)處理器將包含車(chē)輛工況的一組脈沖序列發(fā)送至步進(jìn)電機(jī)驅(qū)動(dòng)器,驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)以微步方式轉(zhuǎn)動(dòng),指示出相應(yīng)的發(fā)動(dòng)機(jī)轉(zhuǎn)速、車(chē)速、水溫以及油壓等;處理器將包含車(chē)輛總路程等信息的數(shù)據(jù)發(fā)送至LCD控制器,控制器控制LCD顯示相應(yīng)的總路程等:處理器改變相應(yīng)的I/O引腳狀態(tài)直接點(diǎn)亮/關(guān)閉相應(yīng)的指示燈。資料來(lái)源:www.samsrmotor.com.cn |