cmbj5188)
汽車天窗馬達(dá)ECU通訊系統(tǒng)將成為操作人員,、檢測(cè)人員的幫手,因此設(shè)計(jì)它是非常必要的,。本著攜帶方便,、操作簡(jiǎn)單,、軟硬件的可移植性好,、成本低廉等原則,此通訊系統(tǒng)由如下裝置組成:一臺(tái)筆記本電腦,、一根串口線,、一個(gè)通訊盒和一個(gè)與馬達(dá)ECU連接的接插件(由Webasto車頂供暖系統(tǒng)有限公司提供)。
1 系統(tǒng)整體結(jié)構(gòu) 此系統(tǒng)的硬件是基于ISO9141標(biāo)準(zhǔn)的K 線通訊方式,,而其軟件部分是基于Webasto通訊協(xié)議的可以同時(shí)操作*.par文件,、*.s文件的通訊軟件。(微信加好友搜 cmbj5188)
(1) .s文件與.par文件 這兩種文件格式為ECU參數(shù)的不同編碼方式,,都記錄了設(shè)備需要寫入的ECU的參數(shù)值,。.s文件為標(biāo)準(zhǔn)MOTOROLA s-record,其代碼是由ASCII格式的字符組成的,,其中包含了存儲(chǔ)數(shù)據(jù)的地址,、數(shù)據(jù)長(zhǎng)度、存儲(chǔ)的數(shù)據(jù)以及校驗(yàn)碼,。.par文件包含了ECU具體參數(shù)的名稱和值,,需要與參數(shù)說明文件excel共同使用進(jìn)行ECU的讀寫。 (2) File Decoder 讀取,、識(shí)別兩種文件格式中的數(shù)據(jù),,儲(chǔ)存在應(yīng)用程序中供用戶使用,并進(jìn)行文件之間相互轉(zhuǎn)換的操作,。 (3) Message Handler 負(fù)責(zé)把應(yīng)用程序中的參數(shù)數(shù)據(jù)按照Webasto Telegram Specification格式打包準(zhǔn)備發(fā)送,,也負(fù)責(zé)把接收到的數(shù)據(jù)按照同樣協(xié)議拆包,識(shí)別后保存在應(yīng)用程序中,。 (4) Communication Agent 應(yīng)用程序通過調(diào)用該層次模塊實(shí)現(xiàn)對(duì)串行通信接口的透明操作,。 (5) COMM API Windows串行接口API函數(shù)庫(kù)。 (6) KBUS-232 ADAPTER 用來實(shí)現(xiàn)PC機(jī)到汽車天窗馬達(dá)ECU信息傳遞的硬件單元,。
2 硬件結(jié)構(gòu) 此汽車天窗馬達(dá)ECU通訊系統(tǒng)中,,其所選的硬件是基于ISO9141通訊協(xié)議的K線通訊的,所以這里先說明一下K線通訊的特點(diǎn),,然后在此基礎(chǔ)上說明此天窗馬達(dá)ECU通訊系統(tǒng)設(shè)計(jì)時(shí)所采用的硬件結(jié)構(gòu),。 2.1 診斷K線通訊特點(diǎn) 根據(jù)SAE規(guī)定的OBD標(biāo)準(zhǔn),車輛行業(yè)使用K、L線進(jìn)行診斷和標(biāo)定,。通過K線對(duì)某個(gè)控制單元進(jìn)行查詢,,通過K線、測(cè)試儀和控制單元可進(jìn)行數(shù)據(jù)交換,。換句話說,,即通過K線數(shù)據(jù)被雙向傳送(從測(cè)試儀到控制單元以及從控制單元到測(cè)試儀)。最近生產(chǎn)的車上都裝有K線,。而 L線則是用來對(duì)控制單元進(jìn)行查詢的導(dǎo)線,,此線在目前生產(chǎn)的車輛中已經(jīng)不存在。由于串口的普及,,所以K線實(shí)現(xiàn)起來更容易,。而邏輯電平的改變,只是需要轉(zhuǎn)換電路,。因此本系統(tǒng)采用K線的通訊方式,。由于K線只是一根線,而PC機(jī)與控制單元都要向?qū)Ψ桨l(fā)出信息,,所以可以判定此線是半雙工串行通訊,。(微信加好友搜 cmbj5188) K線通訊主要有以下特點(diǎn): (1) 雙方采用半雙工異步串行通訊。 (2) 工作電壓范圍為8~18V,。 (3) 使用環(huán)境溫度為-40°C~125°C,。 (4) 最大速度是50kbps。 (5) 支持大電流,。 (6) 與單片機(jī)CMOS電平無縫連接,。 (7) 具有對(duì)地線保護(hù)作用。 (8) 串行通訊碼的每個(gè)單元包括10位二進(jìn)制數(shù)據(jù),,分別為起始位,、8位數(shù)據(jù)、停止位,,每個(gè)單元發(fā)送完畢后設(shè)有空閑等待,。 (9) 雙方的通訊以“行”為單位輪流發(fā)送,即PC機(jī)發(fā)送一行消息后,,ECU再發(fā)送一行消息,,反之亦然。 (10) 一信息行由下列數(shù)據(jù)組成:第一位數(shù)據(jù)表示本行還要發(fā)送多少數(shù)據(jù),;第二個(gè)數(shù)據(jù)用來表示關(guān)鍵碼,,表示此次用來完成什么樣的操作,如開始參數(shù),、寫數(shù)據(jù)到EEPROM中等,;第三個(gè)數(shù)據(jù)表示要發(fā)送的數(shù)據(jù),。 (11) 在一信息行中,還包括用于校驗(yàn)的反碼,,一方每發(fā)出一個(gè)數(shù)據(jù)后,,對(duì)方必須對(duì)回應(yīng)此數(shù)據(jù)的反碼進(jìn)行校驗(yàn);由于K線是單線通訊,,所以只有在正確處理回應(yīng)數(shù)據(jù)的反碼進(jìn)行校驗(yàn)時(shí),,才能保證通訊的順利進(jìn)行。 (12) 至于PC機(jī)在每一個(gè)功能塊中如何發(fā)出命令,,ECU是如何給出相應(yīng)信息的,,在軟件結(jié)構(gòu)中會(huì)做說明。 2.2 K線通訊定義 (微信加好友搜 cmbj5188) 在車輛網(wǎng)絡(luò)中,為準(zhǔn)確,、可靠地通訊,必須確定一個(gè)固定的通訊波特率,。假設(shè)診斷設(shè)備及其連接導(dǎo)線的電容為CTE,K線對(duì)地電容為COBW,車輛ECU的電容為CECU,
設(shè)計(jì)時(shí)以上各電容必 須滿足以下關(guān)系: 12V電源供電:CECU+COBW≤7.2nF;CTE≤2nF;24V電源供電:CECU+COBW≤5nF;CTE≤2nF,。 假定K 線通訊波特率最大為10.4kbps,若通訊波特率高于最大波特率,則必須減小允許電容;反之,必須增加允許電容。同時(shí),,在車輛診斷網(wǎng)絡(luò)設(shè)計(jì)時(shí),必須保證任何ECU 信息不能引起其它ECU進(jìn)行數(shù)據(jù)通訊,在診斷儀初始化時(shí),只能有一個(gè)ECU響應(yīng),或若干個(gè)ECU按一定順序響應(yīng),。(微信加好友搜 cmbj5188) 2.3 K線電路連接方式 K 線通訊本質(zhì)上為半雙工串口通訊。為保證準(zhǔn)確,、可靠的數(shù)據(jù)通訊, ECU和K線都必須有正確的電平,。在K線系統(tǒng)中,發(fā)送時(shí)若電壓低于工作電壓的20%, 則認(rèn)為邏輯“0”,高于工作電壓的80%,則定義為邏輯“1”;接收時(shí)低于工作電壓的30%為邏輯“0”,高于工作電壓的70%為邏輯“1”,電壓在工作電壓的30%~70%之間狀態(tài)不確定,。由以上分析可知,其電平與常用的串口電平不一致,因此必須設(shè)計(jì)專門的K 線接口電路,以滿足車輛K 線診斷要求,。圖2 為利用L9637D完成的K 線接口轉(zhuǎn)換電路。 (微信加好友搜 cmbj5188) K線可雙向傳遞數(shù)據(jù),,系統(tǒng)初始化后先傳遞ECU地址,,連接成功后用于信息交換,典型接口轉(zhuǎn)換芯片有ST公司的L9637D和Motorola公司的33290等,。L9637D是一個(gè)與ISO9141標(biāo)準(zhǔn)功能兼容的集成芯片,,是專門為車輛診斷而開發(fā)的雙向、半雙工通訊接口芯片,。
3 軟件結(jié)構(gòu) 此汽車天窗馬達(dá)ECU通訊系統(tǒng)中所使用的參數(shù)主要有兩種類型:*.s參數(shù)類型和*.par參數(shù)類型的文件,。其主要的區(qū)別是:*.s參數(shù)文件所采用的代碼格式是S-record,它是 Motorola 公司提供的一種標(biāo)準(zhǔn)文件格式,,通過S-records代碼,,將可執(zhí)行代碼從主PC機(jī)發(fā)送到另外一個(gè)目標(biāo)系統(tǒng)。在發(fā)送的過程中,,S-records在其代碼頭上包含目標(biāo)地址信息和校驗(yàn)信息來檢驗(yàn)誤差,;而*.par參數(shù)文件是Webasto公司專用的代碼格式,,它的代碼主要是包含在ECU中的具體參數(shù)和此參數(shù)的具體數(shù)值。此馬達(dá)天窗ECU通訊系統(tǒng)的軟件部分就是在對(duì)這兩種參數(shù)類型熟悉的基礎(chǔ)上進(jìn)行的,。 3.1 S-record格式說明 每個(gè)S-record由如下六部分組成:
(1) SOR:代碼的開始部分(ASCII ‘S’),; (2) Type:S-record Type,有幾種類型: S0:代碼起始段(可選),,表示在其后還有其他的代碼,。S0后面的地址代碼不被使用,經(jīng)常是(0X0000),,有的還包括額外的信息,如表1所示,。
(微信加好友搜 cmbj5188) S0代碼不被加載,可以被忽略,,通常為S0030000 FC,; S1:16位地址的數(shù)據(jù)代碼; S2:24位地址的數(shù)據(jù)代碼,; S3:32位地址的數(shù)據(jù)代碼,; S4:不同的目標(biāo)系統(tǒng)不同的含義; S5:不同的目標(biāo)系統(tǒng)不同的含義,; S6:不同的目標(biāo)系統(tǒng)不同的含義,; S7:S3代碼結(jié)束段; S8:S2代碼結(jié)束段,; S9:S1代碼結(jié)束段,; 如果S9代碼后的地址代碼為 0X0000,則表示數(shù)據(jù)段的結(jié)束,;如果其后代碼不為0,,則地址代碼表示其開始執(zhí)行代碼的位置,通常為S9030000FC(注:S0,,S9代碼是被忽略的),; (3) Length:兩位十六進(jìn)制數(shù),表示Load Address,、Code/Data,、Checksum的字節(jié)數(shù); (4) Load Address: 4,、6,、8個(gè)ASCII字符,表示Code/Data要加載的目標(biāo)地址,。如s1,用4位十六進(jìn)制數(shù)來表示要加載的地址,;(微信加好友搜 cmbj5188) (5) Code/Data:0~64個(gè)ASCII字符,表示加載到目標(biāo)系統(tǒng)的實(shí)際代碼,; (6) Checksum:檢測(cè)在傳送中是否有錯(cuò)誤發(fā)生,,它的求法如下: (1+sump+checksum)mod256=0 注:sump 是length,、Load Address、Code/Data中從左至右每?jī)晌皇M(jìn)制數(shù)代表的十進(jìn)制數(shù)值進(jìn)行累加所得到的值,。 3.2 *.par 參數(shù)說明 .par文件包含了ECU具體的參數(shù)名稱和值,,需要與參數(shù)說明文件excel共同使用進(jìn)行ECU的讀寫。以圖3為例解釋excel中的信息和*.par文件代碼的意義,。
(微信加好友搜 cmbj5188) 代碼如下: [NORMAL] ucCarType=2 aucPartNumber[0]=17 其中包含的參數(shù)所代表的含義和參數(shù)具體值的信息如下: (1) Location表示此par參數(shù)在excel中的位置,,此例表示在NORMAL段; (2) Addr.表示代碼在EEPROM中的存儲(chǔ)地址信息,; (3) Parameter name表示代碼參數(shù)的名稱,; (4) Parameter description表示代碼參數(shù)的含義; (5) Specific description對(duì)此代碼進(jìn)行特定的描述,; (6) Allowed value表示此代碼取值的范圍,; (7) Excel value表示此代碼實(shí)際的數(shù)值,此例分別為2,、17,; (8) S Value以ASCII碼形式表示代碼,此例分別為02,、11,; (9) Drive Value表示通訊過程中實(shí)際發(fā)送和接收的數(shù)值; (10) Parameter表示參數(shù)類型,; (11) C source表示此代碼在ECU中,用哪段代碼來表示,; (12) Type key表示此代碼的數(shù)據(jù)類型,。 注: 0 代表無符號(hào)字符 1 代表有符號(hào)字符 2 代表無符號(hào)的短整型 3 代表有符號(hào)的短整型 4 代表8 bit 數(shù)組 5 代表16 bit 數(shù)組 3.3 K線通訊協(xié)議及應(yīng)用 ISO9141主要為車輛與診斷設(shè)備之間的通訊國(guó)際標(biāo)準(zhǔn), ISO9141已被美國(guó)加州大氣委員會(huì)(California Air Resource Board)所采納,其ISO14230為專門指定的用于道路車輛診斷的協(xié)議。根據(jù)ISO14230 的規(guī)定,
(微信加好友搜 cmbj5188) 各參數(shù)含義如下: Fmt:幀字節(jié);Tgt:目標(biāo)地址;Src:源地址;Len:附加長(zhǎng)度字節(jié); Sld :功能識(shí)別字節(jié);Data :數(shù)據(jù)字節(jié);CS:校驗(yàn)和,。 其校驗(yàn)和滿足以下公式: i={(i-1)+}mod256(1) 式(1)中:1=<1>,。 K 線協(xié)議采用消息結(jié)構(gòu)進(jìn)行信息傳遞,可分為請(qǐng)求消息、指示消息和響應(yīng)消息,其中,,響應(yīng)消息可分為正響應(yīng)和負(fù)響應(yīng),所有這些消息都具有相同的結(jié)構(gòu),。 Webasto汽車天窗馬達(dá)ECU與PC機(jī)的通訊方式是K 線通訊協(xié)議的一種應(yīng)用,其代碼基本格式如下:長(zhǎng)度位,、命令標(biāo)志位,、數(shù)據(jù)位(n=0…16)和校驗(yàn)位,如表3所示,。1>
所以最小的通訊長(zhǎng)度為3,,即:傳輸?shù)男畔↙EN、ID,、CHKSUM(傳輸?shù)臄?shù)據(jù)位數(shù)n=0),。 為了保證PC機(jī)與ECU之間的通訊正常,,使用校驗(yàn)碼來確保發(fā)送代碼的安全性,它是通過所有代碼的位與CHECKSUM_BASE=0xAA異或來求得,。計(jì)算方法如下: 發(fā)送端的校驗(yàn)碼: CHKSUM_s=CHECKSUM_BASE xor LEN xor ID xor DATA_1 xor... xor DATA_n 接收端的校驗(yàn)碼: CHKSUM_r=LEN xor ID xor DATA_1 xor... xor DATA_n xor CHKSUM_s xor CHECKSUM_BASE CHKSUM_r的結(jié)果為0,,說明通訊順利完成。 為了確保通訊正常,,在串行通訊過程中,,規(guī)定兩個(gè)接收字節(jié)之間的時(shí)間不得超過50ms,若超過,,則認(rèn)為此次操作失敗,。 此汽車天窗馬達(dá)ECU通訊系統(tǒng)軟件的程序流程如圖4所示。汽車天窗馬達(dá)ECU通訊系統(tǒng)的軟件運(yùn)行如圖5所示,。(微信加好友搜 cmbj5188)
界面上半部分負(fù)責(zé)*.s參數(shù)讀寫的部分,,下半部分負(fù)責(zé)*.par參數(shù)讀寫的部分。此系統(tǒng)的硬件和軟件在Webasto車頂供暖系統(tǒng)有限公司的測(cè)試平臺(tái)上已經(jīng)通過驗(yàn)證,。此系統(tǒng)對(duì)其天窗馬達(dá)ECU進(jìn)行參數(shù)讀寫,、故障分析時(shí),縮短了周期,,大大提高了工作效率,。
當(dāng)前,汽車天窗市場(chǎng)多由國(guó)外廠商控制,,價(jià)格昂貴,,其馬達(dá)檢測(cè)系統(tǒng)的理念也是隨著國(guó)外先進(jìn)技術(shù)的引進(jìn)而來的。因此,,開發(fā)適合我國(guó)的汽車天窗馬達(dá)ECU通訊系統(tǒng)不僅可以降低整車成本,,還可以提高其國(guó)產(chǎn)化速度。現(xiàn)在越來越多的電控系統(tǒng)將在車輛上使用,這些設(shè)備都可通過K 線使PC機(jī)與ECU進(jìn)行信息交換,以滿足實(shí)際車輛使用和維護(hù)的要求,。同時(shí)K線也可進(jìn)行電控標(biāo)定系統(tǒng)的開發(fā),因此,本研究工程應(yīng)用前景非常廣泛,。
不努力,別人想拉你一把,,都找不到你的手在哪里? 訂閱本微信號(hào)方法:
|