摘要:CAN
總線以其通信效率高、可靠性強(qiáng)、連接方便等優(yōu)點(diǎn)在汽車電子領(lǐng)域得到了廣泛的應(yīng)用。CCP協(xié)議作為CAN通信系統(tǒng)的標(biāo)定協(xié)議,以主從機(jī)通信模式實(shí)現(xiàn)了CAN網(wǎng)絡(luò)中標(biāo)定工具對(duì)一個(gè)或多個(gè)控制器的在線標(biāo)定和實(shí)時(shí)監(jiān)測(cè)。基于CCP協(xié)議的汽車ABS標(biāo)定系統(tǒng)CAN模塊的研發(fā),為ABS控制系統(tǒng)的開發(fā)提供了準(zhǔn)確、實(shí)時(shí)的通信保證,顯著縮短了ABS控制系統(tǒng)的開發(fā)周期。
關(guān)鍵詞:防抱死系統(tǒng) CAN CCP
0 引言
傳統(tǒng)的ABS參數(shù)匹配一般采用手工修改控制程序、調(diào)試匹配控制參數(shù),重新編譯下載方式來(lái)實(shí)現(xiàn),開發(fā)的周期較長(zhǎng)。而基于CCP協(xié)議的ABS標(biāo)定系統(tǒng),利用標(biāo)定系統(tǒng)的實(shí)時(shí)消息處理機(jī)制,可在線檢測(cè)ABS控制效果并對(duì)控制參數(shù)進(jìn)行標(biāo)定。借助標(biāo)定系統(tǒng)的工具可對(duì)控制效果進(jìn)行分析和評(píng)價(jià),并對(duì)控制參數(shù)進(jìn)行優(yōu)化,縮短了ABS控制系統(tǒng)的開發(fā)周期。其中通信模塊是標(biāo)定系統(tǒng)中電控單元ECU和PC標(biāo)定平臺(tái)數(shù)據(jù)傳輸?shù)暮诵牟糠郑苯佑绊憯?shù)據(jù)傳輸?shù)臏?zhǔn)確性和實(shí)時(shí)性。
控制局部網(wǎng)(CAN總線)是一種具有很高保密性、有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。CAN的應(yīng)用范圍從高速網(wǎng)絡(luò)到低成本的多線路網(wǎng)絡(luò)。在自動(dòng)化電子領(lǐng)域、發(fā)動(dòng)機(jī)控制部件、傳感器、抗滑系統(tǒng)等應(yīng)用中,CAN的位速率可高達(dá)1Mbit/s。
1 CAN總線通信
1.1 CAN總線介紹
CAN總線是德國(guó)BOSCH公司在20世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制器和
測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),CAN總線的數(shù)據(jù)通訊具有突出的可靠性、實(shí)時(shí)性、開放性、靈活性等特點(diǎn)。CAN總線通信接口集成了CAN協(xié)議中的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理。CAN控制器具有單片形式和集成于通用微控制器上的片上形式兩種。筆者采用集成了片上TwinCAN模塊的XCl64單片機(jī)。
1.2 CAN總線通信的優(yōu)點(diǎn)
CAN總線采用了獨(dú)特的設(shè)計(jì),可靠性、抗干擾性及通信方式靈活性高于已有的通信技術(shù),其優(yōu)點(diǎn)概括如下:
⑴ 使用簡(jiǎn)單方便。許多CAN控制器實(shí)現(xiàn)了CAN物理層及數(shù)據(jù)鏈路層的大部分功能,用戶只須對(duì)CAN控制器進(jìn)行初始化和對(duì)CAN總線上的數(shù)據(jù)進(jìn)行收發(fā)操作即可實(shí)現(xiàn)通信。
⑵ 高可靠性。CAN上的最大通信速率可達(dá)1Mbps,CAN總線是多主節(jié)點(diǎn),各節(jié)點(diǎn)通過(guò)總線仲裁獲得總線控制權(quán)。完善的錯(cuò)誤處理機(jī)制保證了高噪聲干擾環(huán)境下數(shù)據(jù)傳送的安全可靠。
⑶ 系統(tǒng)可擴(kuò)展性能好。
2 CCP協(xié)議
CCP協(xié)議(CAN Calibration Protocol)即CAN標(biāo)定協(xié)議屬于CAN通信的應(yīng)用層協(xié)議,主要用于對(duì)控制器的標(biāo)定,同時(shí)可進(jìn)行循環(huán)或事件驅(qū)動(dòng)的數(shù)據(jù)采集和檢測(cè)。目前廣泛應(yīng)用的CCP協(xié)議2.0版采用CAN2。0B(11位或29位ID)實(shí)現(xiàn)測(cè)量標(biāo)定系統(tǒng)與ECU之間的通信,該協(xié)議具有通用性強(qiáng)和適用范圍廣的特點(diǎn),無(wú)論是8位低速帶CAN的控制器還是32位高速帶CAN的控制器,均可滿足工作要求。
基于CCP協(xié)議的ECU標(biāo)定采用主-從通信方式,主設(shè)備通過(guò)CAN總線與多個(gè)從設(shè)備相連,如圖1所示。其中主設(shè)備是測(cè)量標(biāo)定系統(tǒng),從設(shè)備是需要標(biāo)定的ECU。根據(jù)CCP協(xié)議,主設(shè)備首先與其中一個(gè)從設(shè)備建立邏輯連接,建立邏輯連接后主、從機(jī)之間所有的數(shù)據(jù)傳遞均由主機(jī)控制,從機(jī)執(zhí)行主機(jī)命令后返回包含命令響應(yīng)值或錯(cuò)誤代碼等信息的報(bào)文。任何一個(gè)從機(jī)都可以定時(shí)地根據(jù)由主機(jī)通過(guò)控制命令所設(shè)置的列表來(lái)傳遞內(nèi)部的數(shù)據(jù)。因此數(shù)據(jù)的傳遞是由主機(jī)初始化并且由從機(jī)來(lái)執(zhí)行的,并且是由固定的循環(huán)采樣頻率或者事件來(lái)觸發(fā)的。

CCP定義了兩種工作模式:Polling(查詢)模式;DAQ(Data Acquisition Command)模式。查詢模式下,主設(shè)備與從設(shè)備間的每一次通信都由主設(shè)備發(fā)送命令來(lái)起始,從設(shè)備收到主設(shè)備的命令后,執(zhí)行相應(yīng)的操作并反饋一幀報(bào)文。這種工作模式實(shí)現(xiàn)簡(jiǎn)單,而且占用ECU內(nèi)存資源較小,但由于需要主機(jī)與從機(jī)之間進(jìn)行“一問(wèn)一答”的信息交互,工作效率不高。DAQ模式使從設(shè)備可以脫離主設(shè)備的命令控制按一定周期自動(dòng)向主設(shè)備上傳數(shù)據(jù)。DAQ模式下,主設(shè)備首先發(fā)送一條請(qǐng)求DAQ的命令,從設(shè)備收到后,按命令中的參數(shù)自行配置并組織需要上傳的數(shù)據(jù),然后按一定周期自主向主設(shè)備上傳數(shù)據(jù)。這種模式由于不需要主機(jī)通過(guò)命令逐步控制,工作效率高,但實(shí)現(xiàn)較復(fù)雜,如果需要上傳的數(shù)據(jù)量很大,會(huì)占用大量ECU內(nèi)存空間。
基于CCP協(xié)議的標(biāo)定只占用兩幀CAN報(bào)文,分別是命令接收對(duì)象CRO(Command Receive Object)和數(shù)據(jù)傳輸對(duì)象DTO(Data Transmission Object),如圖2所示。CRO由主設(shè)備發(fā)給從設(shè)備,DTO是從設(shè)備反饋的報(bào)文。兩者分別通過(guò)一個(gè)自己的ID標(biāo)識(shí)符進(jìn)標(biāo)識(shí)(CRO-ID與DTO-ID)。
3 應(yīng)用實(shí)例
3.1 硬件設(shè)計(jì)
該控器選用集成了CAN控制器的英飛凌公司的XCl64CS芯片作為主控制器。TwinCAN模塊包括兩個(gè)全功的CAN功能節(jié)點(diǎn),這兩個(gè)節(jié)點(diǎn)可獨(dú)立工作或者通過(guò)網(wǎng)關(guān)功能交換數(shù)據(jù)幀和遠(yuǎn)程幀。CAN幀的發(fā)送和接收遵循CAN2.0B規(guī)范,可以發(fā)送和接收1l位標(biāo)識(shí)符的標(biāo)準(zhǔn)幀,或29位標(biāo)識(shí)符的擴(kuò)展幀。TwinCAN模塊能夠滿足復(fù)雜嵌入式控制應(yīng)用的實(shí)時(shí)需求。
兩個(gè)CAN節(jié)點(diǎn)的定時(shí)都源于外設(shè)時(shí)鐘,可以通過(guò)編程使其達(dá)到l Mbps。每個(gè)CAN節(jié)點(diǎn)通過(guò)一對(duì)接收和發(fā)送引腳鏈接到總線
收發(fā)器。根據(jù)實(shí)際需要,32個(gè)報(bào)文對(duì)象可獨(dú)立地分配給兩個(gè)CAN節(jié)點(diǎn)之一。仲裁寄存器對(duì)接收到的報(bào)文進(jìn)行濾波,接收到的報(bào)文標(biāo)識(shí)符與保存在內(nèi)部CAN控制器中的所有報(bào)文對(duì)象的標(biāo)識(shí)符進(jìn)行比較,比較操作的結(jié)果與驗(yàn)收屏蔽寄存器中的內(nèi)容是否相同。如果檢測(cè)到是一致的,接收到的報(bào)文存儲(chǔ)到CAN控制器的報(bào)文對(duì)象中。TwinCAN模塊框圖如圖3所示。


圖4是CAN通信接口電路。TLE6250針對(duì)汽車環(huán)境設(shè)計(jì)的CAN收發(fā)器,支持傳輸速率高達(dá)1Mbps,具有短路和開路保護(hù)功能以及抗干擾性能。終端負(fù)載電阻連接在CAN-H與CAN-L之間,用于抑制反射,本系統(tǒng)電阻為120Ω。

3.2 軟件設(shè)計(jì)
根據(jù)CCP協(xié)議,本系統(tǒng)將在標(biāo)定平臺(tái)與ABS控制器之間建立邏輯連接。標(biāo)定平臺(tái)的站地址為0X49,ABS控制器的站地址為00X28。
CCP協(xié)議至少需要兩個(gè)消息對(duì)象:主設(shè)備發(fā)給從設(shè)備的消息對(duì)象(CRO);從設(shè)備發(fā)送給主設(shè)備的消息對(duì)象(DTO)。CRO用來(lái)接收命令代碼和相關(guān)的參數(shù),以執(zhí)行內(nèi)部函數(shù)或者在多個(gè)已建立邏輯連接的CAN節(jié)點(diǎn)之間進(jìn)行內(nèi)存內(nèi)容傳輸,即傳送主設(shè)備下達(dá)給從設(shè)備的命令。當(dāng)從設(shè)備收到CRO命令后,就給主設(shè)備以DTO的形式發(fā)送一個(gè)握手消息。這個(gè)DTO消息的返回代碼是用來(lái)決定與之關(guān)聯(lián)的CRO命令執(zhí)行的成功與否。
CCP驅(qū)動(dòng)模塊中兩個(gè)報(bào)文對(duì)象取如下擴(kuò)展ID標(biāo)識(shí)碼:CRO為0x01020304;DTO為0x03040506。在實(shí)際設(shè)計(jì)中,用第0個(gè)報(bào)文對(duì)象來(lái)作為DTO報(bào)文的發(fā)送,第5個(gè)報(bào)文對(duì)象來(lái)作為CRO報(bào)文的接收。接收采用中斷方式,以實(shí)現(xiàn)系統(tǒng)的實(shí)時(shí)性。流程如圖5所示。

3.3 實(shí)驗(yàn)結(jié)果
圖6即為在本文開發(fā)的基于CCP協(xié)議的汽車ABS標(biāo)定平臺(tái)基礎(chǔ)上,進(jìn)行實(shí)時(shí)標(biāo)定的一個(gè)界面。標(biāo)定平臺(tái)中修改的標(biāo)定參數(shù)可以通過(guò)CCP協(xié)議的標(biāo)定系統(tǒng)通過(guò)CAN通信模塊實(shí)時(shí)地傳遞給ABS ECU中,再次進(jìn)行驗(yàn)證,驗(yàn)證的結(jié)果通過(guò)檢測(cè)曲線實(shí)時(shí)反映出來(lái)。通過(guò)多次的標(biāo)定修改,最終達(dá)到理想的控制效果,省去了修改控制參數(shù)后再燒寫入ECU的繁瑣過(guò)程,大大縮短了開發(fā)周期。

4 結(jié)論
基于CCP協(xié)議的ABS標(biāo)定系統(tǒng)大大縮短了ABS控制系統(tǒng)的開發(fā)時(shí)間,節(jié)約了ABS控制器的調(diào)試成本。同時(shí),建立在CAN通信基礎(chǔ)上的標(biāo)定系統(tǒng),具有實(shí)時(shí)性好,安全可靠,可實(shí)現(xiàn)同時(shí)進(jìn)行控制器的在線標(biāo)定和數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè),傳輸速率高等優(yōu)點(diǎn)。隨著汽車工業(yè)的不斷發(fā)展和人們對(duì)CAN總線的不斷深入研究,CAN總線技術(shù)將會(huì)在汽車電子的其他領(lǐng)域獲得廣泛的