基于LIN2.1協議的車窗控制系統的應用
圖4 基于TLE9832的防夾車窗系統原理圖
3.3 LIN通信部分的軟件設計
LIN通信部分的程序流程如圖5所示。可將車窗控制器中LIN通信部分的程序分為兩個部分:
圖5 LIN通信部分程序流程
① 第一部分為初始化,在每次重新上電后,程序都會首先讀取Flash中的數據,若0x8000中的數據為0x78,則判斷產品在出廠后執行過保存配置的功能。所以程序會將存儲在Flash中的NAD和幀ID讀出來,作為當前的NAD和幀ID。接著是初始化LIN模塊,包括設置與LIN通信相關的定時器和 UART等外設,設置從節點的各個參數、波特率等。
② 第二部分則放在定時器中斷里面,在每次中斷時進行節點配置、數據的發送和接收。首先是根據幀ID判斷有無節點配置任務,若有則根據SID執行各種節點配置任務;接著根據收到的數據幀內容控制車窗的自動上升和自動下降;最后將車窗信息,包括電樞電流、車窗位置等發給主節點。
4 LIN通信的測試結果
本測試借助Kvaser公司出品的LIN通信測試工具Leaf Professional LIN及其配套軟件CANLab完成。測試時測試工具設置為主節點,TLE9832單片機設置為從節點,比特率設置為19 200 bps。初始NAD設置為0x06,初始幀ID為無條件幀0x00、0x01和診斷配置幀0x3C、0x3D,SupplierID和Function ID都為0x0000。
首先測試節點配置的各個功能:先測試分配NAD功能,將NAD修改為0x03;接著測試有條件分配NAD功能,將NAD修改為0x08;然后測試分配一系列幀ID功能,并保存設置;最后重新上電,并讀取從節點信息。節點配置功能的測試結果如圖6所示。
圖6 節點配置功能的測試結果
然后通過LIN總線控制車窗自動上升和下降,測試結果如圖7所示。
圖7 車窗自動上升下降功能的測試結果
最后通過LIN總線獲得車窗上升過程中電樞電流的數據,并轉換成圖形,如圖8所示。其中電流值為經過A/D轉換后的結果。
圖8 車窗上升過程中的電樞電流值
結語
本文基于LIN2.1協議設計了防夾車窗控制系統中的通信模塊。可以看出,該模塊可以很好地滿足用戶在數據傳輸和診斷等方面的需求。LIN總線自身的發展必將推動車身控制領域的進一步發展。
評論