羅文俊,孔慧芳
(合肥工業(yè)大學(xué) 電氣與自動(dòng)化工程學(xué)院,安徽 合肥 230009)
TCU(Transmission Control Unit)作為電控機(jī)械式自動(dòng)變速系統(tǒng)的控制單元,并不是簡(jiǎn)單地實(shí)現(xiàn)各種選擋、換擋以及離合器的分離與接合等功能。為了獲得良好的控制效果,TCU必須與其他控制單元進(jìn)行通信。
CAN總線以其強(qiáng)大的優(yōu)勢(shì)能夠滿足TCU的各種要求。在CAN總線通信的基礎(chǔ)上,TCU與汽車中其他電子控制單元實(shí)現(xiàn)數(shù)據(jù)共享,如與發(fā)動(dòng)機(jī)ECU進(jìn)行通信時(shí)將換擋、起步過(guò)程中對(duì)發(fā)動(dòng)機(jī)油門控制的要求通知發(fā)動(dòng)機(jī)ECU,然后由發(fā)動(dòng)機(jī)發(fā)出指令執(zhí)行動(dòng)作來(lái)調(diào)節(jié)發(fā)動(dòng)機(jī)扭矩和轉(zhuǎn)速,使之與離合器相互協(xié)調(diào)配合。這樣不僅可以降低整個(gè)系統(tǒng)的成本,而且還可以獲得良好的控制效果。
基于以上認(rèn)識(shí),本文設(shè)計(jì)了TCU中CAN總線通信模塊的硬件和軟件,并通過(guò)模擬TCU與發(fā)動(dòng)機(jī)ECU之間的通信驗(yàn)證了設(shè)計(jì)的可行性。
圖1 TCU的基本結(jié)構(gòu)
TCU主要由模擬量、開(kāi)關(guān)量、頻率量、選換擋驅(qū)動(dòng)電路、離合器驅(qū)動(dòng)電路以及CAN總線模塊等部分組成,其結(jié)構(gòu)如圖1所示。作為電控機(jī)械式自動(dòng)變速系統(tǒng)的控制單元,TCU并不是單獨(dú)地實(shí)現(xiàn)各種功能,如最佳動(dòng)力型換擋規(guī)律、最佳經(jīng)濟(jì)型換擋規(guī)律等一系列的換擋規(guī)律以及發(fā)動(dòng)機(jī)恒轉(zhuǎn)速控制等一系列離合器的控制規(guī)律,這并不是TCU能獨(dú)立完成的。因此,TCU與其他控制單元之間的通信成為TCU最重要的組成部分之一。
CAN總線模塊作為TCU與其他控制單元進(jìn)行通信的主要方式,其重要性顯得舉足輕重。TCU的通信主要是與發(fā)動(dòng)機(jī)ECU、顯示儀表等單元進(jìn)行信息共享。
TCU與發(fā)動(dòng)機(jī)ECU、顯示儀表等單元之間進(jìn)行數(shù)據(jù)通信的網(wǎng)絡(luò)拓?fù)鋱D如圖2所示。信息的傳輸采用CAN通信協(xié)議版本2.0A/B,傳輸介質(zhì)選用普通的雙絞線。
圖2 TCU通信結(jié)構(gòu)框圖
接口電路中,CAN驅(qū)動(dòng)器選用的是英飛凌公司的TLE6250,此微控制器有 5 V和3.3 V 2種接線方式,其傳輸速率最高能達(dá)到1 Mb/s。TCU中CPU芯片采用的是飛思卡爾公司的MC9S12系列的一款芯片,該芯片內(nèi)部有集成的CAN模塊,數(shù)據(jù)傳輸速率最大可達(dá)到1 Mb/s,與TLE6250 CAN驅(qū)動(dòng)器相匹配。該單片機(jī)還允許多個(gè)連接到CAN總線的節(jié)點(diǎn)之間相互通信。由此所設(shè)計(jì)的CAN接口電路原理圖[1]如圖3所示。
圖3 CAN接口電路原理圖
CAN模塊的軟件部分主要包括:CAN模塊的初始化、CAN模塊信號(hào)的發(fā)送、CAN模塊信號(hào)的接收,以及由信號(hào)發(fā)送或接收完成后產(chǎn)生的中斷等部分。
(1)CAN模塊的初始化模塊主要是用于設(shè)置CAN模塊接收時(shí)采用8位、16位還是32位過(guò)濾器以及設(shè)置CAN通信的波特率,接收信號(hào)時(shí)需要屏蔽的位和字節(jié)等,之后則需要等待與其他CAN節(jié)點(diǎn)時(shí)鐘同步。其流程圖如圖4所示。
(2)CAN模塊信號(hào)的接收部分主要是用來(lái)分辨數(shù)據(jù)的ID,區(qū)分信號(hào)幀是數(shù)據(jù)幀還是請(qǐng)求幀,如果是數(shù)據(jù)幀,則需要知道數(shù)據(jù)的長(zhǎng)度;如果是請(qǐng)求幀,則程序需要跳到發(fā)送模塊應(yīng)答請(qǐng)求節(jié)點(diǎn)。其程序流程圖如圖5所示。
(3)CAN模塊信號(hào)的發(fā)送部分主要是設(shè)置發(fā)送信息的ID號(hào),采用什么方式發(fā)送以及區(qū)分?jǐn)?shù)據(jù)幀與請(qǐng)求幀,如果是數(shù)據(jù)幀則需要設(shè)置發(fā)送數(shù)據(jù)的長(zhǎng)度以及優(yōu)先級(jí)。其程序流程如圖6所示。
圖4 CAN模塊初始化流程圖
圖5 CAN模塊接收數(shù)據(jù)流程圖
(4)中斷部分是由于CAN模塊發(fā)送信號(hào)或接收信號(hào)完成后產(chǎn)生的中斷。如果是發(fā)送完成產(chǎn)生的中斷則表示可以發(fā)送新的數(shù)據(jù);如果是接收完成產(chǎn)生的中斷則表示可以同數(shù)據(jù)寄存器讀取數(shù)據(jù),用于分析數(shù)據(jù)。
圖6 CAN模塊發(fā)送數(shù)據(jù)流程圖
測(cè)試步驟如下:
(1)在 MC9S12系 列單片機(jī)的CAN模塊中存在自循環(huán)模式,可以通過(guò)設(shè)置CANCTL1_LOOPB=1進(jìn)入循環(huán)。這可以用來(lái)測(cè)試CAN模塊程序(包括發(fā)送程序,接收程序)的正確性。
(2)驗(yàn)證程序正確后,關(guān)閉循環(huán)模式。
(3)對(duì)TLE6250硬件電路進(jìn)行測(cè)試。硬件電路測(cè)試主要有2種方式:一種是采用專門的CAN調(diào)試軟件進(jìn)行測(cè)試;另外一種是采用2個(gè)CAN模塊,1個(gè)作為發(fā)送節(jié)點(diǎn),另外1個(gè)作為接收節(jié)點(diǎn),用示波器觀察CAN_H、CAN_L之間的信號(hào)樣式,并與已經(jīng)調(diào)試成功的CAN通信信號(hào)樣式進(jìn)行對(duì)比,這樣可以確定硬件電路正確與否,使信號(hào)能正常發(fā)送。然后,通過(guò)接收節(jié)點(diǎn)可接收到已知的信號(hào)并確定CAN模塊能否正常接收。
本文采用第2種方式對(duì)CAN模塊硬件進(jìn)行測(cè)試。(4)反復(fù)驗(yàn)證CAN通信,確保信號(hào)接收和發(fā)送的準(zhǔn)確無(wú)誤。
以鋸齒波形為例,通過(guò)CAN通信,得到的鋸齒波如圖7所示。
圖7 通過(guò)CAN通信獲得的鋸齒波形
從測(cè)試結(jié)果可以看出,此設(shè)計(jì)方案能確保信號(hào)接收和發(fā)送的準(zhǔn)確無(wú)誤。
本設(shè)計(jì)以國(guó)內(nèi)某款車型作為試驗(yàn)平臺(tái),將文中驗(yàn)證過(guò)的CAN模塊作為一個(gè)新節(jié)點(diǎn)接入到車輛的CAN網(wǎng)絡(luò)中,并斷開(kāi)原有TCU的CAN模塊。圖8為通過(guò)新的CAN模塊發(fā)送、顯示儀表顯示的擋位信號(hào)。
接通原汽車網(wǎng)絡(luò)中TCU的CAN模塊,并將TCU采集到的剎車信號(hào)通過(guò)CAN發(fā)送到新的節(jié)點(diǎn)。由此新節(jié)點(diǎn)獲得的剎車信號(hào)如圖9所示。
從以上的試驗(yàn)測(cè)得數(shù)據(jù)顯示,本設(shè)計(jì)方案能滿足TCU的各種通信要求。
本文以MC9S12系列單片機(jī)芯片和TLE6250為基礎(chǔ)設(shè)計(jì)了CAN通信模塊的硬件電路和軟件,并通過(guò)測(cè)試,證明此方案能滿足TCU的各種通信要求。
圖8 擋位信號(hào)
圖9 剎車信號(hào)
[1]Infineon.Infineon TLE 6250 CAN-transceive.data sheet version 3.4.2002.