5. LIN錯誤檢測及限制
LIN 2.0規范聲明,應當由從任務處理錯誤檢測,且主任務的錯誤監控不是必需的。LIN 2.0規范不要求在一個LIN幀中處理多個錯誤,也不要求使用錯誤計數器。一旦在幀內遇到第一個錯誤,從任務將中止幀處理,直到檢測到下一個中斷-同步序列(在主任務傳輸的下一個標題中)。若記錄總線錯誤屬性設置為true,那么總線錯誤幀將記錄至讀取隊列。若記錄總線錯誤屬性設置為false,ncWriteNet或ncWriteNetMult將返回錯誤。
LIN還可向網絡提供錯誤報告。LIN 2.0規范定義了一個Response_Error狀態位,其中,從設備需在其傳輸的一幀中向主設備報告。當從節點接收或傳輸的幀的響應字段中包含錯誤,該位設置完畢。通過從任務的已發布響應中傳輸后,該狀態位就被清空。用于LIN的NI-CAN幀API無法對Response_Error狀態位提供原生支持,但終端用戶可在應用程序層輕松實現該功能。該過程將記錄總線錯誤屬性設置為1,允許在讀取隊列中記錄總線錯誤幀。錯誤代碼代表響應中的錯誤,應用程序可通過該代碼,監控總線錯誤幀的讀取。這時,應用程序將在局部變量中設置一個Response_Error狀態位。應用程序可使用NI LIN響應輸入幀類型,更新從響應隊列中包含Response_Error狀態字段的數據,并清空局部變量中的字段。
6. LIN睡眠和喚醒
LIN的特色是允許設備進入睡眠狀態并節約用電。根據LIN 2.0規范,當主任務發送的診斷主要求幀(ID=60)首個數據字節等于0時,所有從任務必須進入睡眠模式。該特殊幀稱為睡眠命令。若LIN的非活動時間大于4秒,從任務也將自動進入睡眠模式。用于LIN的NI-CAN幀API允許用戶在應用程序層將LIN接口設置為睡眠模式,提供了極大的便利性。一旦接收到包含睡眠請求信息的完整幀,或表明總線非活動時間超過4秒的總線非活動幀,用戶可設置LIN Sleep屬性為TRUE,讓LIN接口進入睡眠模式。
LIN還可喚醒總線上的設備??偩€上的任何節點都可發起喚醒任務(不論是從節點還是主節點)。根據LIN 2.0規范,強制總線顯性時間持續250 μs至5 ms可觸發喚醒請求。每個從節點應當檢測喚醒請求,并在100 ms內準備好處理標題。主節點也應當檢測喚醒請求,并在從節點準備完畢時開始發送標題(在接收到喚醒請求的100 ms至150 ms內)。若主節點未在接收首個喚醒請求后的150 ms內發送標題,請求喚醒的從節點可能發起第二次喚醒請求(并再次等待150 ms)。若主節點仍無響應,從節點將發起第三次喚醒請求,并再次等待150 ms。若仍然無響應,從節點必須等待1.5秒,才可發起第四次喚醒請求。根據LIN 2.0規范,用于LIN的NI-CAN幀API允許執行喚醒,無論LIN接口作為主設備還是從設備運行。
7. 高級幀類型
LIN 2.0規范進一步將LIN幀分為6種類型:
1、無條件型
2、事件觸發型
3、偶發型
4、診斷型
5、用戶定義型
6、預留型
值得指出的是,不同幀類型之間的區別在于其傳輸方式的定時,或數據字節的內容。不論屬于哪種類型,一個完整的LIN幀總是包含一個由主任務傳輸的標題和一個由從任務傳輸的響應。用于LIN的NI-CAN幀API可處理各種LIN指定幀類型。無條件幀類型最為常用。無條件幀可攜帶信號(數據),標識符位于0~59的區間內。
事件觸發幀類型試嘗試預留總線帶寬,方法是在一個幀槽時間內從多個從節點請求一個無條件幀響應。
事件觸發幀的ID位于0~59的范圍內。若主節點從無條件幀對其發起查詢,每個可能響應事件觸發型標題ID的從節點將在首個數據字段載入其需要響應的受保護ID。事件觸發幀的工作原理如下。主方在標題中寫入一個事件觸發ID。從方在數據更新時,只響應事件觸發ID。
若僅有一個從方發布響應,主方將接受該響應,并在讀取第一個數據字段后了解哪個從方(根據受保護的ID)發布了該響應。若有多個從方發布響應,將發生碰撞,主設備的從任務將報告總線錯誤。主設備將通過無條件幀從每個從方查詢響應。
偶發幀嘗試向LIN提供一些動態行為。偶發幀總是攜帶信號(數據),ID范圍為0~59。當主任務知道幀內數據值(信號)已更新時,偶發幀的標題應當僅在其幀槽內發送。該要求使主設備的從任務成為偶發幀響應的標準發布者。
診斷幀的長度總是8數據字段,攜帶診斷或配置數據。對于主請求幀,其ID為60;對于從請求幀,其ID為61。用戶定義幀的ID為62,可攜帶任意類型的信息。保留幀的ID為63,且必須在LIN 2.0簇內使用。
8. 推薦的PC LIN接口
NI-XNET LIN
NI-XNET產品線包括加速的CAN、LIN以及FlexRay接口;優化的驅動;易用的API;以及配置和調試工具。通過NI-XNET接口,用戶可在NI LabVIEW、LabVIEW Real-Time和C/C++中更加快捷簡單地開發應用程序,用于原型設計、仿真和測試CAN、LIN以及FlexRay網絡。
NI-XNET PCI/PXI及C系列LIN接口還具備集成式LDF支持、硬件定時調度主任務以及幀和信號通信。
?
?
圖4. 用于CAN、LIN和FlexRay的NI-XNET平臺
了解更多關于NI-XNET CAN、LIN以及FlexRay接口的信息
NI USB LIN
?
圖5. NI USB-8476 LIN接口
用戶還可通過NI?USB-8476 LIN接口與LIN設備進行通信。這是一種廉價、可移動的與LIN網絡進行通信的方法。 ?
評論