基于CAN總線(xiàn)的汽車(chē)儀表軟件實(shí)現(xiàn)方案
3.2 系統(tǒng)硬件結(jié)構(gòu)及所用器件
該測(cè)試系統(tǒng)由液晶顯示器、PC-CAN接口卡、單片機(jī)、CAN控制器(SJA1000)、CAN總線(xiàn)發(fā)送/接收驅(qū)動(dòng)器(PCA82C250)、和各數(shù)據(jù)采集系統(tǒng)組成。
專(zhuān)用液晶顯示屏用來(lái)顯示轉(zhuǎn)速、機(jī)油壓力、水溫、燃油消耗等;PC機(jī)用來(lái)處理CAN總線(xiàn)上的數(shù)據(jù)并通過(guò)軟件顯示于顯示屏上;PC-CAN接口卡完成PC機(jī)與CAN之間的通信;自行設(shè)計(jì)的ECU完成從各傳感器采集數(shù)據(jù),通過(guò)CAN收發(fā)器連于CAN總線(xiàn)上。其中的PC-CAN接口卡通過(guò)RS232接口或UAB與PC機(jī)相連,PC-CAN接口卡再通過(guò)總線(xiàn)與自行設(shè)計(jì)的ECU相連。在實(shí)際中PC-CAN接口卡與車(chē)輛CAN總線(xiàn)相連,可采集大量數(shù)據(jù)信息,從而隨時(shí)可通過(guò)軟件編程把這些信息在顯示屏上動(dòng)態(tài)顯示出來(lái)。
3.3 系統(tǒng)的硬件設(shè)計(jì)
PC-CAN接口卡選用CAN232智能CAN接口卡,它適合CAN-bus的小流量數(shù)據(jù)傳輸應(yīng)用,最高可達(dá)500幀/秒的數(shù)據(jù)傳輸速率,提供廣泛和強(qiáng)大的軟件支持。支持在VC++、C++Builder、Delphi和VB等開(kāi)發(fā)環(huán)境下進(jìn)行設(shè)計(jì)。該接口卡為用戶(hù)提供了編程需要的三個(gè)文件:CAN232dll.DLL,CAN232dll.LIB,ExportHead.H。
CAN協(xié)議控制器選用SJA1000,它是Philips公司生產(chǎn)的適合汽車(chē)環(huán)境的獨(dú)立CAN控制器,支持CAN2.0B協(xié)議。CAN發(fā)送/接收驅(qū)動(dòng)器選用Philip公司的PCA82C250,它是CAN控制器和物理傳輸線(xiàn)路之間的接口,它可以用高達(dá)1Mbits/s的位速率在兩條有差動(dòng)電壓的總線(xiàn)電纜上傳輸數(shù)據(jù)。
3.4 系統(tǒng)軟件設(shè)計(jì)
CAN2.0的分層結(jié)構(gòu)是按ISO/OSI模型對(duì)CAN結(jié)構(gòu)的描述。數(shù)據(jù)鏈路層又分為邏輯鏈路層(LLC,Logical Link Control)和媒體訪問(wèn)控制(MAC,Medium Access Control)兩個(gè)層。LLC層完成下列功能:為數(shù)據(jù)發(fā)送以及以及遠(yuǎn)層數(shù)據(jù)請(qǐng)求傳送服務(wù);判斷是否接受接收到的數(shù)據(jù);提供恢復(fù)管理和超載處理。
MAC層主要定義了傳輸協(xié)議,包括信息幀格式、仲裁方式、應(yīng)答信號(hào)、錯(cuò)誤檢測(cè)、錯(cuò)誤信令和故障限制等。
物理層實(shí)現(xiàn)節(jié)點(diǎn)間的物理信號(hào)的傳送,主要定義網(wǎng)絡(luò)的電氣特性。CAN網(wǎng)絡(luò)中可以采用多種不同的物理層協(xié)議。
本研究用VC編程語(yǔ)言實(shí)現(xiàn)汽車(chē)儀表數(shù)據(jù)的顯示。PC—CAN接口卡自帶三個(gè)文件CAN232dll.DLL,CAN232dll.LIB,ExportHead.H,其中ExportHead.H描述了動(dòng)態(tài)鏈接庫(kù)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);
將接口卡所帶的三個(gè)文件拷貝在VC目錄下,在VC菜單的PROJECT->SETTING中的LINK項(xiàng)下,填入CAN232dll.LIB。然后在程序的頭文件中加入“#include ExportHead.H”。
4、結(jié)論
本研究只有一個(gè)CAN節(jié)點(diǎn),所以顯示器所顯示的數(shù)據(jù)只有轉(zhuǎn)速、機(jī)油壓力、水溫、燃油消耗,但是在實(shí)際的汽車(chē)網(wǎng)絡(luò)中,通過(guò)編程我們可以動(dòng)態(tài)獲得CAN總線(xiàn)上的所有信息,并能夠以友好的人機(jī)界面顯示,使車(chē)輛信息對(duì)駕駛員或乘客透明化。所以基于CAN總線(xiàn)的汽車(chē)儀表軟件實(shí)現(xiàn)是汽車(chē)儀表設(shè)計(jì)的一個(gè)新的嘗試。
參考文獻(xiàn)
[1]楊忠敏.汽車(chē)儀表的發(fā)展現(xiàn)狀[J].汽車(chē)電器,2004,1:1~3.
[2]康建輝,張慶順. 單片機(jī)控制液晶顯示器在汽車(chē)儀表板中的應(yīng)用[J].現(xiàn)代電子技術(shù),2002,3:6~7.
[3]向云秀.汽車(chē)儀表板電子化技術(shù)[J].湖南大學(xué)學(xué)報(bào),2001,6:50~55.
[4]秦貴和.車(chē)上網(wǎng)絡(luò)技術(shù)[M].北京.機(jī)械工業(yè)出版社,2003,19~20.(end)
評(píng)論