宏虹技術 | BabyLIN產品如何輕鬆搞定K線協議實現?

為了實現K線通信,SDF-V3在協議部分中定義了新的協議類型KLine Raw。所有能夠運行SDF-V3檔(LinWorks版本在V.2.29.4以上)並使用最新固件(固件版本在V.6.18以上)的BabyLIN設備都可以執行KLine Raw協議,本文將介紹BabyLIN產品的K線協議實現。

與其他協議實現相同,需要在SessionConf中新建Protocols,定義KLine Raw類型協議。

在協議中可以自定義服務,Service由請求幀和回應幀組成。通過在屬性中選擇Request only,則可以省略回應幀的定義。

使用K線協議的LIN匯流排介面的串列傳輸速率和位元組格式可以通過巨集命令Set Speed (Write Speed)進行修改。

K線協議中幀的長度可以是常量、變數或從信號中檢索的值。如果將幀長度定義為變數,幀長度由實際映射的長度來計算。

如下圖所示,常量映射的步驟為:首先添加一個映射項(1),然後定義該映射項的起始位置和大小(2),然後定義該映射項的常量值(3),最後保存數據(4)。

如下圖所示,信號映射定義的步驟為:首先在右側信號列表中選擇所請求的信號(1),將其添加到映射列表(2),並最終將偏移量調整為有效載荷(3),添加好本幀中需要的所有信號後點擊OK完成(4)。

兩種有效載荷定義方法可以結合在一起,在這種情況下,首先應用常數映射,然後合併信號映射;幀的未映射區域將用通用協議屬性中給出的填充位元組填充。

回應幀的定義也以同樣的方式進行,只是常量負載映射在這裏沒有意義。

LIN匯流排通信啟動時,將自動啟動LDF的第一個調度或啟動命令給出的調度。在LIN匯流排上使用K線通信時,應該使用空調度表的方式進行。需要在LDF中設置一個僅診斷請求幀的調度表,用來啟動匯流排。由此來運行一個“空”調度,然後可以使用巨集命令執行K線協議服務,在匯流排上傳輸和接收K線幀。默認情況下,LIN匯流排啟動將產生喚醒脈衝事件。若想避免這一點,可以通過在Virtual Signal中將系統信號@@SYSCFG307的初始值設置為5來實現。

| 注意:BabyLIN系列產品的K線通信實現需要額外啟動,請聯繫宏虹獲取啟動方式。

宏虹LIN匯流排仿真測試解決方案,基於Baby-LIN系列產品,能夠對LIN、CAN節點/系統進行主從仿真和分析,支持基於事件的信號配置、順序控制、錯誤判斷和觸發動作,廣泛用於汽車零部件和生產線測試。產品都配有免費的LINWorks軟體,在測試件的功能操作與軟體介面之間建立起友好交互。此外, 宏虹也支持定制二次開發、測試服務,歡迎聯繫宏虹獲取更多詳細資料!