基于CAN總線的嵌入式汽車電子故障檢測(cè)系統(tǒng)設(shè)計(jì)
汽車產(chǎn)業(yè)是國(guó)家的支柱產(chǎn)業(yè),電子產(chǎn)業(yè)也是國(guó)家的支柱產(chǎn)業(yè),作為汽車產(chǎn)業(yè)和電子產(chǎn)業(yè)的交集,汽車電子零部件產(chǎn)業(yè)的興衰與國(guó)民經(jīng)濟(jì)息息相關(guān)。目前,我國(guó)汽車的產(chǎn)量逐年攀高,民族汽車品牌在自身不斷成長(zhǎng)的同時(shí),也迫使國(guó)際汽車公司或合資公司不得不降低生產(chǎn)成本,實(shí)施汽車電子零部件國(guó)產(chǎn)化戰(zhàn)略,這就為我國(guó)汽車電子產(chǎn)業(yè)化的發(fā)展提供了良好的機(jī)遇。
前裝汽車電子產(chǎn)品除了其復(fù)雜的功能要求外,對(duì)于實(shí)時(shí)性、安全性、可靠性和環(huán)保性等的要求都非常嚴(yán)格,并且汽車廠商都具有自己相關(guān)的執(zhí)行檢測(cè)標(biāo)準(zhǔn)和生產(chǎn)流程規(guī)范,因此為前裝汽車電子產(chǎn)品配套研發(fā)相應(yīng)的故障檢測(cè)系統(tǒng)是非常必要的。
1 系統(tǒng)設(shè)計(jì)方案
1.1 設(shè)計(jì)依據(jù)
CAN總線作為一種串行汽車總線,具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、技術(shù)成熟等優(yōu)點(diǎn),目前已在汽車領(lǐng)域廣泛應(yīng)用。前裝汽車電子產(chǎn)品一定遵循特定車型的CAN通信協(xié)議,整車幾乎全部的控制和狀態(tài)信息都依賴CAN總線傳輸,通過采集和分析CAN總線上的信號(hào),便可準(zhǔn)確獲得各個(gè)部件的工作狀態(tài)和實(shí)時(shí)參數(shù),這就是汽車電子測(cè)試系統(tǒng)的基本依據(jù)。
汽車廠商對(duì)測(cè)試儀器的一般要求包括實(shí)時(shí)性、可靠性、便攜式以及友好的人機(jī)交互等。嵌入式系統(tǒng)由于其靈活的軟硬件設(shè)計(jì)、良好的可靠性和實(shí)時(shí)性、較低的功耗等特點(diǎn),完全可以滿足廠商對(duì)于測(cè)試儀器的要求。因此,基于CAN幀測(cè)試和采用嵌入式設(shè)計(jì)是汽車電子測(cè)試系統(tǒng)的有效解決方案。
1.2 實(shí)現(xiàn)方案
嵌入式汽車電子測(cè)試系統(tǒng),一般選擇性能比較好的32位微處理器,比如ARM處理器,在硬件設(shè)計(jì)上包括嵌入式系統(tǒng)通用的電源模塊、存儲(chǔ)模塊、人機(jī)交互模塊等,基于CAN總線通訊必須設(shè)計(jì)相應(yīng)的CAN總線通信模塊,在該模塊中通常由兩部分組成,一部分是CAN控制器,用于實(shí)現(xiàn)CAN總線的數(shù)據(jù)鏈路層協(xié)議;另一部分是CAN驅(qū)動(dòng)器用于實(shí)現(xiàn)CAN總線的物理層。系統(tǒng)的基本結(jié)構(gòu)圖如圖1所示。
汽車電子測(cè)試儀器一般要求具備友好的人機(jī)交互,對(duì)界面設(shè)計(jì)的要求比較高,因此在軟件設(shè)計(jì)中宜采用分層的軟件設(shè)計(jì)方法,一般情況下需要移植相關(guān)的嵌入式操作系統(tǒng),目前常用的嵌入式操作系統(tǒng)主要有Linux、Wince等。軟件的設(shè)計(jì)流程主要包括操作系統(tǒng)移植、驅(qū)動(dòng)程序編寫、應(yīng)用程序設(shè)計(jì)3個(gè)階段。移植合適的嵌入式操作系統(tǒng),為軟件的開發(fā)搭建好開發(fā)平臺(tái);開發(fā)相關(guān)的驅(qū)動(dòng)程序來支持硬件設(shè)備,為應(yīng)用軟件訪問硬件提供接口,在CAN的模塊中,一般需要開發(fā)支持控制器和驅(qū)動(dòng)器的驅(qū)動(dòng)程序,以便于和汽車電子產(chǎn)品通信;應(yīng)用程序是最上層的軟件,直接面對(duì)用戶,為用戶使用提供友好的交互。
2 系統(tǒng)設(shè)計(jì)樣例
基于以上的系統(tǒng)分析,現(xiàn)給出一個(gè)具體的設(shè)計(jì)樣例解釋。USB汽車音頻播放系統(tǒng)是為某汽車制造商開發(fā)的一款前裝汽車電子產(chǎn)品。該產(chǎn)品在通信上嚴(yán)格遵守廠商提供的CAN總線協(xié)議。該測(cè)試系統(tǒng)主要用于部件出廠前的故障檢測(cè)。
2.1 硬件設(shè)計(jì)
考慮到性能、功耗、穩(wěn)定等方面的要求,選用Intel公司的32位工業(yè)級(jí)微處理器PXA270,該處理器基于ARM10內(nèi)核,運(yùn)行主頻高達(dá)520M- Hz,接口資源豐富,加入了IntelSpeedStep動(dòng)態(tài)電源管理技術(shù),在保證CPU性能的情況下可最大限度地降低設(shè)備功耗,利用該處理器簡(jiǎn)化了硬件設(shè)計(jì),并且保證了軟件的快速運(yùn)行;存儲(chǔ)模塊采用了64 MB的NorFlash和64 MB的SDRAM;人機(jī)交互采用的是液晶顯示和觸摸控制的方案。
在CAN總線通信模塊的設(shè)計(jì)中,采用的芯片是SJA1000、PCA82C250和TJA1055。SJA1000是PHLIPS公司發(fā)布的一款適用于汽車和一般工業(yè)環(huán)境的獨(dú)立CAN控制器,SJA1000是PCA82C200控制器的替代產(chǎn)品,除了支持BasicCAN操作模式外,還增加了新的操作模式 PeliCAN,這種模式支持具有很多新特性的CAN2.0B協(xié)議。SJA1000應(yīng)用于CAN硬件模塊中,用于實(shí)現(xiàn)CAN總線的數(shù)據(jù)鏈路層協(xié)議,在本設(shè)計(jì)中使用了2片SJA1000芯片,分別用于高速CAN和低速CAN通信。SJA1000的具體電路原理圖如圖2所示,數(shù)據(jù)總線AD0~AD7通過數(shù)據(jù)緩沖器件接到PXA270的數(shù)據(jù)總線MD0~MD7上,時(shí)序控制等信號(hào)線則是接到CPLD上,由PXA270處理器通過CPLD管理。
PCA82C250和TA1055都是驅(qū)動(dòng)收發(fā)器,用于實(shí)現(xiàn)CAN總線的物理層,不同之處在于2個(gè)芯片各自實(shí)現(xiàn)了CAN物理層的2個(gè)標(biāo)準(zhǔn):高速CAN和低速CAN。高速CAN根據(jù)線纜長(zhǎng)度最高可提供1 Mbit/s的波特率,低速CAN可提供5~125 kbit/s的波特率,并且允許CAN總線在連接失敗時(shí)通信得以繼續(xù)進(jìn)行,因此也叫容錯(cuò)CAN,該儀器支持2種物理標(biāo)準(zhǔn),驅(qū)動(dòng)器的電路圖如圖3所示。 HTXD0、HRXD0和LTXD0、LRXD0均來自于SJA1000,通過PCA82C250和TJA1055后分別得到高速CAN通道HCHNH、 HCHNL和低速CAN通道LGANH、LCANL。
2.2 軟件設(shè)計(jì)
考慮到廠商對(duì)人機(jī)交互要求比較高,并且為了縮短研發(fā)周期,選擇微軟的Windows CE作為嵌入式操作系統(tǒng)。Wince是一個(gè)緊湊、完整和可擴(kuò)展的嵌入式操作系統(tǒng),是一個(gè)多線程、基于優(yōu)先級(jí)可搶占的操作系統(tǒng),具有內(nèi)存管理功能,可以抑制由于應(yīng)用程序不正常而直接破壞系統(tǒng)的危險(xiǎn)性,特別適用于有限資源的硬件平臺(tái),并且Wince的操作系統(tǒng)在界面操作上繼承了桌面Windows系統(tǒng)的風(fēng)格,便于操作工人的熟悉和使用。
軟件設(shè)計(jì)的主要工作有Wince5.0系統(tǒng)在PXA270上的移植,CAN總線、液晶顯示、觸摸屏、Flash存儲(chǔ)、藍(lán)牙等驅(qū)動(dòng)程序的實(shí)現(xiàn),CAN協(xié)議實(shí)現(xiàn)及應(yīng)用程序的設(shè)計(jì)等。
Wince的驅(qū)動(dòng)程序主要分為本機(jī)驅(qū)動(dòng)和流接口驅(qū)動(dòng),本機(jī)驅(qū)動(dòng)是硬件必須的驅(qū)動(dòng),不支持通用的設(shè)備驅(qū)動(dòng)程序接口,如觸摸屏的驅(qū)動(dòng);流接口驅(qū)動(dòng)是指驅(qū)動(dòng)程序把流式接口函數(shù)公開出來,而不考慮驅(qū)動(dòng)所控制的設(shè)備類型。CAN總線的驅(qū)動(dòng)主要是對(duì)控制器SJA1000的軟件支持,在wince中是典型的流接口驅(qū)動(dòng),通過CAN_Init、CAN_Open、CAN_Close、CAN_Read、CAN_Write、CAN_IOControl,CAN_Deiit 等函數(shù)實(shí)現(xiàn)SJA-1000的功能;其中CAN_Init主要完成SJA1000的初始化工作,CAN_Open用于響應(yīng)應(yīng)用程序的請(qǐng)求,CAN_Read和CAN_Write用于從CAN總線讀取和向總線寫入字符,CAN_IOControl用來擴(kuò)展其他的功能,CAN_Close用于關(guān)閉響應(yīng),CAN_Deiit用于釋放資源和卸載驅(qū)動(dòng)。
應(yīng)用程序運(yùn)用Embedded Visual C++4.0開發(fā)。該測(cè)試儀器的任務(wù)較多,大部分的測(cè)試都是基于對(duì)部件發(fā)出CAN幀的分析,儀器的主要測(cè)試功能包括:音頻左右聲道測(cè)試、麥克測(cè)試、藍(lán)牙測(cè)試、USB測(cè)試等。系統(tǒng)的軟件流程如圖4所示,系統(tǒng)的主界面如圖5所示。
2.3 現(xiàn)場(chǎng)應(yīng)用
該測(cè)試儀器目前已經(jīng)應(yīng)用于現(xiàn)場(chǎng)生產(chǎn)中,對(duì)USB汽車音頻播放部件進(jìn)行出廠前質(zhì)量測(cè)試,實(shí)踐表明該測(cè)試儀器快速可靠、操作友好,每臺(tái)每個(gè)工作日可檢測(cè)300~500臺(tái)部件,檢測(cè)準(zhǔn)確率達(dá)到99%以上,完全滿足了廠商的需求。
3 結(jié)束語(yǔ)
本文針對(duì)汽車電子開發(fā)中的具體需求,提出了基于CAN通信和CAN幀分析的汽車電子測(cè)試方法,通過現(xiàn)場(chǎng)應(yīng)用表明該方法是對(duì)前裝汽車電子產(chǎn)品測(cè)試的快速有效的方法,基于該方法的嵌入式汽車電子測(cè)試儀器,滿足了廠商對(duì)于體積、價(jià)格、速度、可靠等方面的需求,在未來開發(fā)的前裝汽車電子產(chǎn)品中會(huì)繼續(xù)廣泛應(yīng)用。
c++相關(guān)文章:c++教程
評(píng)論