基于CAN總線技術(shù)的汽車儀表軟件實現(xiàn)方案
CAN2.0的分層結(jié)構(gòu)是按ISO/OSI模型對CAN結(jié)構(gòu)的描述。數(shù)據(jù)鏈路層又分為邏輯鏈路層(LLC,Logical Link Control)和媒體訪問控制(MAC,Medium Access Control)兩個層。LLC層完成下列功能:為數(shù)據(jù)發(fā)送以及以及遠(yuǎn)層數(shù)據(jù)請求傳送服務(wù);判斷是否接受接收到的數(shù)據(jù);提供恢復(fù)管理和超載處理。
MAC層主要定義了傳輸協(xié)議,包括信息幀格式、仲裁方式、應(yīng)答信號、錯誤檢測、錯誤信令和故障限制等。
物理層實現(xiàn)節(jié)點間的物理信號的傳送,主要定義網(wǎng)絡(luò)的電氣特性。CAN網(wǎng)絡(luò)中可以采用多種不同的物理層協(xié)議。
本研究用VC編程語言實現(xiàn)汽車儀表數(shù)據(jù)的顯示。PC—CAN接口卡自帶三個文件CAN232dll.DLL,CAN232dll.LIB,ExportHead.H,其中ExportHead.H描述了動態(tài)鏈接庫CAN232dll.DLL所定義的外部函數(shù)。如下所示:
void OpenSerialPort(int nPort,unsigned int Baud);
void CAN232Send(unsigned char*sdata,size_t Len);
void CAN232Setting(unsigned char*sdata,size_t Len);
char CAN232Receive(unsigned char*CANReceive);
將接口卡所帶的三個文件拷貝在VC目錄下,在VC菜單的PROJECT->SETTING中的LINK項下,填入CAN232dll.LIB。然后在程序的頭文件中加入“#include ExportHead.H”。
4、結(jié)論
本研究只有一個CAN節(jié)點,所以顯示器所顯示的數(shù)據(jù)只有轉(zhuǎn)速、機油壓力、水溫、燃油消耗,但是在實際的汽車網(wǎng)絡(luò)中,通過編程我們可以動態(tài)獲得CAN總線上的所有信息,并能夠以友好的人機界面顯示,使車輛信息對駕駛員或乘客透明化。所以基于CAN總線的汽車儀表軟件實現(xiàn)是汽車儀表設(shè)計的一個新的嘗試。
評論