新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 低成本LIN總線協(xié)議在汽車網(wǎng)絡(luò)中的應用

低成本LIN總線協(xié)議在汽車網(wǎng)絡(luò)中的應用

作者: 時間:2012-07-07 來源:網(wǎng)絡(luò) 收藏

圖1顯示了LIN在汽車中的典型應用。總線上的地電位信號為顯性狀態(tài),只要任何節(jié)點將總線電壓拉低,就會出現(xiàn)這一狀態(tài)。當總線處于電池電壓且所有節(jié)點都使總線處于懸空狀態(tài)時,會出現(xiàn)隱性狀態(tài)。在空閑狀態(tài)下,總線通過上拉電阻懸空為高電平。

LIN總線的工作電壓范圍為9~18V,但總線上所有部件都必須能夠承受40V電壓。通常,單片機通過線路驅(qū)動器/接收器與總線隔離,這種方案下總線每個節(jié)點都端接為VBAT電平,主節(jié)點通過1kΩ電阻端接,從節(jié)點則通過20-47kΩ的電阻端接??偩€最大設(shè)計長度為40米。

每個字節(jié)都利用起始位和停止位作為頭尾標志位。起始位與空閑狀態(tài)相反,為0,而停止位則等同空閑狀態(tài)(即1)。在每個字節(jié)內(nèi),數(shù)據(jù)從最低位(LSB)開始傳送。

報文協(xié)議

主節(jié)點用于控制LIN總線,它通過對從節(jié)點進行查詢,將數(shù)據(jù)發(fā)布到總線上。從節(jié)點僅在主節(jié)點的命令下發(fā)送數(shù)據(jù),從而在無需仲裁的情況下實現(xiàn)雙向通訊。報文的傳送是在主節(jié)點發(fā)出一個同步間隔脈沖后開始的,然后跟隨的是同步字段和報文字段。主節(jié)點通過在每個報文的開始處發(fā)送同步字段可設(shè)定整個總線時鐘。

每條報文的第二字節(jié)是一個標識符字節(jié),它告訴LIN總線隨后將發(fā)送的是什么數(shù)據(jù),并指明哪個節(jié)點應該應答及應答的長度是多少。對于給定的命令,只有一個從節(jié)點可以應答。

從節(jié)點僅在主節(jié)點的控制下在LIN總線上發(fā)送數(shù)據(jù)。一旦數(shù)據(jù)發(fā)布到總線上,任何節(jié)點都可以接收該數(shù)據(jù)。因此,一個從節(jié)點向其它從節(jié)點發(fā)送數(shù)據(jù)無需主節(jié)點干預。

由于LIN協(xié)議使用低成本RC振蕩器,因此從節(jié)點必須檢測主節(jié)點每次發(fā)送的波特率,并調(diào)整為當前速率,所以每次通訊都以同步字段開始,它是一個0、1交替出現(xiàn)的字節(jié)。

同步字段之后是標識符字段,它告訴LIN總線接著出現(xiàn)的內(nèi)容。該字段進一步分為三個子字段:4位(0-3)用于對總線上的設(shè)備進行尋址;2位(4-5)指明此后報文的長度,最后2位(6-7)用于奇偶校驗。

除休眠命令之外,LIN協(xié)議沒有定義任何報文的內(nèi)容,其它命令是在具體應用中定義的。

錯誤檢測

以下錯誤必須在每一節(jié)點處進行檢測和計數(shù),一旦出現(xiàn)錯誤,該命令就要被丟棄,并記錄這一錯誤事件。位錯誤——正在發(fā)送的節(jié)點應該對希望發(fā)送的數(shù)據(jù)與總線上實際出現(xiàn)的數(shù)據(jù)進行比較,控制器必須等待足夠時間以確??偩€對發(fā)出的數(shù)據(jù)做出反應,然后才可測試這一數(shù)據(jù)。假定總線響應信號的最小邊沿變化速率為1V/μs,最大總線電壓為18V,那么發(fā)送器應等待18μs后才可進行測試。校驗和錯誤——每條報文的數(shù)據(jù)內(nèi)容都受到校驗和字節(jié)的保護,該字節(jié)是數(shù)據(jù)字節(jié)相加后取256模的余數(shù)再取反的結(jié)果。奇偶校驗——命令字節(jié)使用2個奇偶位來保護其它6個數(shù)位,這兩個數(shù)位在接收后要重新計算,再與接收結(jié)果進行比較。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉