用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析_第1頁
用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析_第2頁
用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析_第3頁
用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析_第4頁
用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、僅供個人參考用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析LIN協(xié)議適用于汽車內(nèi)進行低成本、短距離、低速網(wǎng) 絡(luò)通信,其用途是傳輸開關(guān)設(shè)置狀態(tài)以及對開關(guān)變化 響應(yīng)。本文詳細分析了 LIN總線協(xié)議的特性、消息協(xié) 議的組成、檢錯機制等,并介紹如何基于PICmicro器 件來實現(xiàn)LIN總線從節(jié)點。LIN協(xié)議是由歐洲車輛制造商協(xié)會開發(fā)用來進行 低成本、短距離、低速網(wǎng)絡(luò)通信,其用途是傳輸開關(guān) 設(shè)置狀態(tài)以及對開關(guān)變化響應(yīng),因此通信事件是在百 毫秒以上時間內(nèi)發(fā)生,而不像引擎管理等其它速度快 得多的汽車應(yīng)用。此協(xié)議支持在單根線上進行雙向通 信,使用由RC振蕩器驅(qū)動的低成本微控制器,這樣 可以省去晶振或陶瓷振蕩器的成本。另外,此協(xié)

2、議實 際上是以時間和軟件上的代價換取硬件上成本的節(jié) 約。LIN協(xié)議的每一條消息都包含自動波特率步進的 數(shù)據(jù),最高可以支持波特率為20k,同時低功耗睡眠 模式可以關(guān)斷總線,以避免產(chǎn)生不必要的功耗??偩€ 可以由任意一個節(jié)點提供電源。LIN總線特性圖1 :典型的LIN協(xié)議配置LIN總線融合了 I2C和RS232的特性:像I2C總 線那樣,LIN總線通過一個電阻上拉到高電平,而每 一個節(jié)點又都可以通過集電極開路驅(qū)動器將總線拉 低;像RS232那樣通過起始位和停止位標識出每一個 字節(jié),每一位在時鐘上異步傳輸。圖1給出了典型的LIN協(xié)議配置。當(dāng)任意一個節(jié) 點將總線拉低時,總線處于低電平,標識著總線進入 占

3、用狀態(tài);而當(dāng)所有節(jié)點都使總線浮空時總線處于電 池的電壓(9-18V),則意味著總線處于非占用狀態(tài) (Recessive state);在空閑狀態(tài)下浮空的總線通過電阻 被上拉到高電平??偩€工作在9到18伏的電壓下,但所有連接到總 線上的器件必須能承受40V的電壓。一般情況下,微 控制器通過線路驅(qū)動器或接收器與總線隔離??偩€在 每一個節(jié)點上被端接到 Vbat,主節(jié)點通過一個1kQ的 電阻端接而從節(jié)點則通過一個 20kQ到47kQ的電阻 端接??偩€最大長度為 40 米??偩€上傳輸?shù)拿恳粋€字節(jié)都是與起始位和停止位 一起組成幀。起始位的狀態(tài)與空閑狀態(tài)相反 (即為 0), 而停止位則與空閑狀態(tài)同為 1 。

4、在每個字節(jié)中,首先 傳輸?shù)氖亲畹陀行?。消息協(xié)議主節(jié)點控制總線的方式是輪詢各個從節(jié)點并與總 線上其余部分共享從節(jié)點的數(shù)據(jù)。從節(jié)點僅在接到主 節(jié)點的命令時才進行數(shù)據(jù)傳輸,這樣就可以進行雙向 傳輸并且無需進一步的仲裁。消息傳輸是以主節(jié)點發(fā) 出一次同步中斷開始,緊接著是消息的同步字段和消 息字段。通過在每條消息的起始處傳送的同步字段還 設(shè)定了整個總線的時鐘,每個從節(jié)點用該字節(jié)來調(diào)整 其波特率。同步中斷使總線進入占用狀態(tài),該狀態(tài)保持時間為13位數(shù)據(jù)的傳輸時間,緊接著是一個停止位(非占 用狀態(tài)),這告知從節(jié)點即將有消息傳輸。主節(jié)點與從 節(jié)點的時鐘漂移最大允許在15%,因此從節(jié)點接收的 同步中斷可能只有1

5、1位或長達15位數(shù)據(jù)位的傳輸時 間。每一條消息的第二個字節(jié)是標示字節(jié),用來告知 總線在該字節(jié)后面?zhèn)鬏數(shù)氖鞘裁磾?shù)據(jù)和哪一個節(jié)點應(yīng) 該應(yīng)答,以及應(yīng)答的長度(標示字段如圖2所示)。- 條命令僅會有一個從節(jié)點對其進行響應(yīng),從節(jié)點僅在 主節(jié)點的指示下才發(fā)送數(shù)據(jù)。數(shù)據(jù)只要出現(xiàn)在總線上, 每一個節(jié)點都可以接收到。因此,無須主節(jié)點專門控 制從節(jié)點之間的通信。AltVn*i 4-:圖2:標示字段組成由于設(shè)計中采用廉價的 RC 振蕩器,從節(jié)點必須在 每一次傳輸時檢測主節(jié)點的波特率并調(diào)整其自身當(dāng)前 的波特率。因此,每一次通信都由一個由交替的 “0” 和“1組”成的同步字節(jié)開始。 標識字段緊跟在同步字段 的后面,它告

6、知總線后面?zhèn)鬏數(shù)膬?nèi)容是什么。標識字 段又分為三個子字段,最低 4 位(0-3 位)是尋址總線上 的器件,中間兩位 (4-5 位)是后面?zhèn)鬏數(shù)南⒌拈L度, 最高兩位 (6-7) 用作奇偶校驗位。除了睡眠命令, LIN 協(xié)議并沒有定義每一條消息的 內(nèi)容。其它命令是由具體應(yīng)用來定義的。檢錯機制下面描述的錯誤必須被檢測出,并且在每個節(jié)點 內(nèi)進行計數(shù)。位錯誤 -傳輸節(jié)點必須將它認為應(yīng)該傳輸?shù)臄?shù)據(jù)位 與總線上實際出現(xiàn)的數(shù)據(jù)位進行比較。由于總線需要 響應(yīng)時間,控制器必須在檢測數(shù)據(jù)位之前等待足夠長 的時間。假設(shè)最小的電壓翻轉(zhuǎn)速率為 1V/ ns而總線最高電壓為18V,則發(fā)送器必須等待18 才能檢測總 線上的數(shù)

7、據(jù)位是否正確。校驗和錯誤 -每一條消息的內(nèi)容都是由校驗和字節(jié) 進行保護。奇偶校驗錯 -命令字節(jié)的 6 個數(shù)據(jù)位由兩個奇偶校 驗位進行保護,需要重新進行計算這些位并比較。如 果錯誤出現(xiàn), 應(yīng)當(dāng)忽略當(dāng)前命令并且記錄下錯誤。 LIN 協(xié)議中沒有直接的錯誤報告機制,但每一個從節(jié)點應(yīng) 當(dāng)跟蹤其自身的錯誤,主節(jié)點可以要求從節(jié)點將錯誤 狀態(tài)作為正常消息協(xié)議的一部分來傳輸。LIN 總線與 CAN 總線LIN 協(xié)議并不直接與 CAN 總線兼容,但人們期望 兩者進行相互操作。 CAN 總線可能用在整個汽車內(nèi)來 實現(xiàn)通信,而 LIN 總線僅用在汽車的局部電路內(nèi),如 車門。為了連接兩種總線,需要采用 CAN-LIN

8、協(xié)議接 口節(jié)點,該節(jié)點從 LIN 總線節(jié)點收集信息然后傳送到 CAN總線上。低功耗睡眠模式主節(jié)點通過發(fā)送標識碼0x80指示所有節(jié)點進入睡 眠模式,睡眠命令后面跟隨的數(shù)據(jù)字節(jié)的內(nèi)容沒有定 義。收到睡眠命令的從節(jié)點應(yīng)當(dāng)對本身進行設(shè)置,以 便當(dāng)總線發(fā)生改變時能喚醒,并關(guān)閉自身的電壓以使 電流消耗最低。當(dāng)處于睡眠模式時總線將處于高電平 并且不消耗電流。任意一個節(jié)點都可以通過發(fā)送喚醒信號來喚醒總 線。當(dāng)收到喚醒信號后,一般情況下所有的節(jié)點應(yīng)當(dāng) 激活并等待主節(jié)點開始總線輪詢。硬件示例圖 3 :采用 LIN 協(xié)議的示例硬件。圖 3 給出了有兩個按鈕和三個 LED 組成的硬件示 例。每按動十下按鈕 1 LED

9、1 改變一次狀態(tài)。同樣, 每按動十下按鈕 2,LED2 改變一次狀態(tài)。 作為標識為 ID1 的響應(yīng),按鈕的按動次數(shù)被傳送到總線上。作為 標識為 ID4 的響應(yīng),按鈕的按動次數(shù)的刷新被傳送到 總線上。軟件操作LIN 協(xié)議程序工作在由 RB0 觸發(fā)的中斷下以實現(xiàn) 總線的睡眠 / 喚醒。在觸發(fā)中斷時, 程序?qū)Φ碗娖綌?shù)據(jù) 位的長度進行計數(shù),然后讀同步字節(jié)并確定數(shù)據(jù)位時 間,最后再將其與最初的數(shù)據(jù)位時間進行比較,以確 定最初的低電平時間是否大于 10 個數(shù)據(jù)位的時間, 大于 10 為同步中斷,小于 10 為喚醒信號。如果是喚 醒信號,程序退出并繼續(xù)等待同步中斷;如果是同步 中斷,程序就讀取命令字節(jié),檢查

10、奇偶位并檢查動作 表(action table)來確定接下來的動作。動作表定義了 總線上數(shù)據(jù)的來源或目的地。為了初始化 LIN 協(xié)議的從節(jié)點句柄 (Slavehandler) ,用戶必須調(diào)用 InitLinSlave 程序,這 個程序初始化RBO中斷引腳和TMRO寄存器。TMRO 寄存器用來測量數(shù)據(jù)位的長度并生成波特率。初始化 完成之后,用戶可以執(zhí)行自己的程序。 一旦檢測到 RBO 引腳上的下降沿,用戶程序就將被中斷。當(dāng)檢測到下 降沿時,程序就跳轉(zhuǎn)到中斷服務(wù)程序。必須禁止除了 TMRO和RBO中斷之外所有的中斷源,以便對同步字 段進行精確測量。計算出波特率之后,中斷服務(wù)程序 就退出執(zhí)行。在下一

11、次RBO中斷發(fā)生時,LIN協(xié)議Slavehandler 自動進入接收模式,以接收標識字段或數(shù)據(jù)字節(jié)。如 果檢測到標識字段的起始位,就對標識字段進行接收 和解碼。然后,根據(jù)收到的標識執(zhí)行相應(yīng)的代碼,例 如存儲數(shù)據(jù)或點亮LED。總線上一個幀傳輸完成之后, 標志FCOMPLETE被置位。這個標志指示所有的數(shù)據(jù) 都已正確接收完畢并可以進行后續(xù)的處理。此標志由 用戶固件清除。LIN 協(xié)議從節(jié)點句柄 Slavehandler 最高可以工作 在 2OK 的波特率下, 需要 42O 字的程序存儲空間以及23 字節(jié)的數(shù)據(jù)存儲空間由于其低成本, LIN 協(xié)議具有在汽車應(yīng)用中廣泛采 用的潛力??梢允褂脙?nèi)置的 RC

12、振蕩器并且運行在4MHz 的時鐘頻率下的諸如 Microchip 的各種器件的微 處理器,使得設(shè)計師們能以最低的可能成本設(shè)計應(yīng)用 系統(tǒng)。旅程電腦應(yīng)用一ON BOARD COMPUTER(BCV)For personal use only in study and research; not for commercial use功能鍵說明 :1. 數(shù)字鍵 :1000,100,10,1, 提供鍵入數(shù)字功能 .例如要鍵入 2315 的數(shù)字時 ,應(yīng)如下操作鍵入 :按 1000 鍵 2 次。按 100 鍵 3 次。按 10 鍵 1 次。按 1 鍵 5 次。數(shù)字鍵可提供 09或0090,或00090,或0

13、0009000的鍵入,因此數(shù)字 鍵可從 0000 到 9999 范圍。如果按住任何一個數(shù)字鍵,時間超過0.75 秒以上時 ,數(shù)字會自動從 0 到 9,以每 0.5 秒進一位。該四個數(shù)字鍵在此功能設(shè)定時 1000 這個鍵功能不存在。2. 設(shè)定 重設(shè)定鍵 :SETRES 提供設(shè) 全入完結(jié)后 ,按此鍵確認功能 ,或重新設(shè)定。3. 檢查鍵 :CHECK 提供系統(tǒng)自我診斷 ,該功能鍵具有如儀表板資訊區(qū)以文字模式顯示一般故障指示或具有 CHECK CONTROL 功能,如果系統(tǒng)正常,按下 CHECK 鍵后, 會顯示“ CHECK CONTROL OK ”。4. 報時鍵 :MEM 提供設(shè)定報時聲響 ,平時未

14、設(shè)定時 ,會在每個小時前 15 秒的聲響 ,告知駕駛?cè)艘粋€小時又到了。設(shè)定程序如下 : W710G$B+l 按下 MEM 鍵三少后,大顯示幕會出現(xiàn) MEMO 字幕,在小顯示幕會出現(xiàn): 00, 可利用 10 與 1 鍵去設(shè)發(fā)鐘報時,如你要每個小時 45分鐘前 15 秒即報時, 可按 10鍵 4下,按 1鍵 5下,再按 SETRES 鍵確認即可。 如此每到 45 分鐘前 15 秒即會有報時聲響。5外部溫度指示鍵:A-TEMP可指示車外溫度在 3C以下溫度時,會有專程警示。6. 平均耗油量值鍵 :CONSUM 或 VERBR, 當(dāng)按此鍵可顯示該車輛平均耗油量指示,可利用SET'RES 鍵去歸

15、零。Ar_#_O& c7. 平均車速鍵“ SPEED 或 GESCHW 可計算從甲地到乙地目前所行駛之平均車速。8. 范圍鍵 :RANG 或 REICHW 可顯示目前油箱中之油量還可行駛多遠距離之公里數(shù)。9. 預(yù)定到達鍵 IST 在出發(fā)前先鍵入甲地到乙地時間或還有多少距離。10. 限速鍵 IMIT 當(dāng)車速超過速線時即會有警告 ,提高速即警告之程序 : 將車輛行駛到所要警告的車速 ,再按一下 LIMIT 鍵即可。 只要車速超過此速度即會有警告聲響。11. 計時器鍵 :TIMER 只要按下此鍵即進入跑馬表計時器功能,再按一下即停止計時。12. 密碼功能鍵 :CODE 防盜碼鍵入設(shè)定作用時

16、,引擎無法發(fā)動。 防盜程序:點火開關(guān) KEY ON。 按 CODE 鍵一下。 利用數(shù)字鍵鍵入一組你記得住的防盜碼。 按 SETRES 鍵一下。 點火開關(guān) KEY OFF。 即進入防盜功能。解除防盜程序: *方法一:點火開關(guān) KEY ON。 鍵入你原鍵入之防盜碼。 發(fā)動引擎即完成。*方法二:拆開電瓶線 5分鐘以上。 裝回電瓶線,將點火開關(guān) KEY ON。 防盜會叫約 15 秒鐘后停止。 等待 15 分鐘后,即可發(fā)動引擎完成解除13. 公 英制切換鍵 :KMMLS 按下此鍵切換公里 英里單位。14. 日期鍵 DAT 按此鍵顯示目前日期 ,可利用 SETRES 鍵及數(shù)字健去重新鍵入日期。15. 時鐘

17、鍵 :UHR 按此鍵顯示目前時間 ,可利用 SETRES 鍵及數(shù)字鍵去重新鍵入時間。 旅程電腦功能測試程序 :同時按1000及10鍵,直到大顯示幕出現(xiàn):“ TEST NO: ”字幕。 _可鍵入 1 到 21 數(shù)字,以 SETRES 鍵確認。測試項目 1 到 21 項功能:鍵入 1 :顯示幕測試。 (大、小顯示幕所有字全顯示 )鍵入 2:顯示目前耗油量以公制顯示公升 100公里。鍵入 3:顯示目前耗油量以公制顯示公升 小時。鍵入 4:顯示平均耗油量可再行駛之里程數(shù)。鍵入 5:顯示目前油箱油量可再行駛之里程數(shù)。鍵入 6 :蜇?zé)o功能 ( 沒有使用 )鍵入 7: 顯示目前油箱油量鍵入 8:顯示目前車速

18、。 (公里 小時)鍵入 9:顯示 IGN 電源電壓。 (伏特)鍵入 10:讀出該車之國別碼及設(shè)定。鍵入 11:讀出及設(shè) AMPM 。 (上午 下午 )鍵入 12:計算平均車速及到達目的地時間。鍵入 13:計算預(yù)計到達目的地時間。鍵入 14:設(shè)定軟體時間。 (BC IV 才有)鍵入 15:制造單位測試用。鍵入 16:制造單位測試用。鍵入 17:顯示該車特殊資料。 (全車 )鍵入 18:改聲響持續(xù)或間歇。鍵入 19:此測試功能鎖住或開放鍵入 20:耗油量修正值。鍵入 21:軟體重新設(shè)定 (利用 SETRES) 鍵操作。不得用于商業(yè)用途僅供個人用于學(xué)習(xí)、研究;不得用于商業(yè)用途For personal use only in study and research; not for commercial use.Nur f u r den pers?nlichen f u r Studien, Forschung, zu kommerzei Zwecken verwendet werden.Pour l ' e tude et la recherche

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論