低成本LIN總線協議在汽車網絡中的應用
發布時間:2008/5/27 0:00:00 訪問次數:590
    
    
    當前汽車應用開發人員正面臨著眾多設計挑戰,由于現代汽車增加了更多電子功能,對低功耗和更小印刷電路板的需求也越來越強烈,所有這些都表明在諸如車身控制和傳動系統等應用領域中這樣的特性將日益重要。
    
    如今汽車中的絕大多數電子控制單元互相之間都有連接,但汽車制造商對不同的應用使用了不同的總線系統。例如傳動系統和制動系統多數通過控制器局域網絡(can)來聯系,而通訊不太密集的應用(如車窗升降電機和控制車鏡的按鍵)則可能使用局域互聯網絡(lin)協議。本文將論述怎樣利用lin總線來滿足汽車業所需要的新增電子功能,并同時確保低功耗以及使用較小面積的pcb。
    
    
    
    圖1:lin在汽車上的典型應用領域。
    
    lin協議
    
    lin協議由歐洲汽車制造商協會設計,是一種低成本短距離低速網絡。它旨在傳送開關設置和傳感器輸入等狀態的變化,并對這類變化做出響應,因此可用于傳送發生時間約為幾分之一秒的事件,并不適用于汽車應用中的高速事件(如引擎管理)。lin的另一個目的是利用該協議的簡單性降低系統成本,以便能夠方便地在質優價廉的8位單片機中實現。lin總線協議的最新版本是v2.0,可以在lin聯盟的網站(www.lin-subbus.de)上得到。
    
    lin支持單線雙向通訊,采用廉價的由rc振蕩器驅動的單片機,可省掉晶體振蕩器或陶瓷振蕩器的費用。雖然lin降低了系統總成本,但在時間和軟件上卻要付出代價,每條報文都必須經過一個自動確定波特率的過程。lin協議支持最高20kbps傳輸速率,以及一個低功耗休眠模式,此時總線將被關閉,不再消耗汽車電池。采用8位單片機并結合外部或內部rc有助于降低系統成本,并減少pcb實際的面積。
    
    圖1顯示了lin在汽車中的典型應用。總線上的地電位信號為顯性狀態,只要任何節點將總線電壓拉低,就會出現這一狀態。當總線處于電池電壓且所有節點都使總線處于懸空狀態時,會出現隱性狀態。在空閑狀態下,總線通過上拉電阻懸空為高電平。
    
    lin總線的工作電壓范圍為9~18v,但總線上所有部件都必須能夠承受40v電壓。通常,單片機通過線路驅動器/接收器與總線隔離,這種方案下總線每個節點都端接為vbat電平,主節點通過1kω電阻端接,從節點則通過20-47kω的電阻端接。總線最大設計長度為40米。
    
    每個字節都利用起始位和停止位作為頭尾標志位。起始位與空閑狀態相反,為0,而停止位則等同空閑狀態(即1)。在每個字節內,數據從最低位(lsb)開始傳送。
    
    報文協議
    
    
    
    圖2:lin網絡在車鏡控制上的應用。
    
    主節點用于控制lin總線,它通過對從節點進行查詢,將數據發布到總線上。從節點僅在主節點的命令下發送數據,從而在無需仲裁的情況下實現雙向通訊。報文的傳送是在主節點發出一個同步間隔脈沖后開始的,然后跟隨的是同步字段和報文字段。主節點通過在每個報文的開始處發送同步字段可設定整個總線時鐘。
    
    每條報文的第二字節是一個標識符字節,它告訴lin總線隨后將發送的是什么數據,并指明哪個節點應該應答及應答的長度是多少。對于給定的命令,只有一個從節點可以應答。
    
    從節點僅在主節點的控制下在lin總線上發送數據。一旦數據發布到總線上,任何節點都可以接收該數據。因此,一個從節點向其它從節點發送數據無需主節點干預。
    
    由于lin協議使用低成本rc振蕩器,因此從節點必須檢測主節點每次發送的波特率,并調整為當前速率,所以每次通訊都以同步字段開始,它是一個0、1交替出現的字節。
    
    同步字段之后是標識符字段,它告訴lin總線接著出現的內容。該字段進一步分為三個子字段:4位(0-3)用于對總
    
    
    當前汽車應用開發人員正面臨著眾多設計挑戰,由于現代汽車增加了更多電子功能,對低功耗和更小印刷電路板的需求也越來越強烈,所有這些都表明在諸如車身控制和傳動系統等應用領域中這樣的特性將日益重要。
    
    如今汽車中的絕大多數電子控制單元互相之間都有連接,但汽車制造商對不同的應用使用了不同的總線系統。例如傳動系統和制動系統多數通過控制器局域網絡(can)來聯系,而通訊不太密集的應用(如車窗升降電機和控制車鏡的按鍵)則可能使用局域互聯網絡(lin)協議。本文將論述怎樣利用lin總線來滿足汽車業所需要的新增電子功能,并同時確保低功耗以及使用較小面積的pcb。
    
    
    
    圖1:lin在汽車上的典型應用領域。
    
    lin協議
    
    lin協議由歐洲汽車制造商協會設計,是一種低成本短距離低速網絡。它旨在傳送開關設置和傳感器輸入等狀態的變化,并對這類變化做出響應,因此可用于傳送發生時間約為幾分之一秒的事件,并不適用于汽車應用中的高速事件(如引擎管理)。lin的另一個目的是利用該協議的簡單性降低系統成本,以便能夠方便地在質優價廉的8位單片機中實現。lin總線協議的最新版本是v2.0,可以在lin聯盟的網站(www.lin-subbus.de)上得到。
    
    lin支持單線雙向通訊,采用廉價的由rc振蕩器驅動的單片機,可省掉晶體振蕩器或陶瓷振蕩器的費用。雖然lin降低了系統總成本,但在時間和軟件上卻要付出代價,每條報文都必須經過一個自動確定波特率的過程。lin協議支持最高20kbps傳輸速率,以及一個低功耗休眠模式,此時總線將被關閉,不再消耗汽車電池。采用8位單片機并結合外部或內部rc有助于降低系統成本,并減少pcb實際的面積。
    
    圖1顯示了lin在汽車中的典型應用。總線上的地電位信號為顯性狀態,只要任何節點將總線電壓拉低,就會出現這一狀態。當總線處于電池電壓且所有節點都使總線處于懸空狀態時,會出現隱性狀態。在空閑狀態下,總線通過上拉電阻懸空為高電平。
    
    lin總線的工作電壓范圍為9~18v,但總線上所有部件都必須能夠承受40v電壓。通常,單片機通過線路驅動器/接收器與總線隔離,這種方案下總線每個節點都端接為vbat電平,主節點通過1kω電阻端接,從節點則通過20-47kω的電阻端接。總線最大設計長度為40米。
    
    每個字節都利用起始位和停止位作為頭尾標志位。起始位與空閑狀態相反,為0,而停止位則等同空閑狀態(即1)。在每個字節內,數據從最低位(lsb)開始傳送。
    
    報文協議
    
    
    
    圖2:lin網絡在車鏡控制上的應用。
    
    主節點用于控制lin總線,它通過對從節點進行查詢,將數據發布到總線上。從節點僅在主節點的命令下發送數據,從而在無需仲裁的情況下實現雙向通訊。報文的傳送是在主節點發出一個同步間隔脈沖后開始的,然后跟隨的是同步字段和報文字段。主節點通過在每個報文的開始處發送同步字段可設定整個總線時鐘。
    
    每條報文的第二字節是一個標識符字節,它告訴lin總線隨后將發送的是什么數據,并指明哪個節點應該應答及應答的長度是多少。對于給定的命令,只有一個從節點可以應答。
    
    從節點僅在主節點的控制下在lin總線上發送數據。一旦數據發布到總線上,任何節點都可以接收該數據。因此,一個從節點向其它從節點發送數據無需主節點干預。
    
    由于lin協議使用低成本rc振蕩器,因此從節點必須檢測主節點每次發送的波特率,并調整為當前速率,所以每次通訊都以同步字段開始,它是一個0、1交替出現的字節。
    
    同步字段之后是標識符字段,它告訴lin總線接著出現的內容。該字段進一步分為三個子字段:4位(0-3)用于對總