基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
82C250 與CAN 總線的接口部分采用了一定的安全和抗干擾措施。82C250 的CANH 和CANL 引腳各自通過一個5 的電阻與CAN 總線相連, 電阻可起到一定的限流作用, 保護82C250 免受過流的沖擊。
CANH 和CANL 與地之間并聯(lián)了2 個30 pF 的小電容, 可以起到濾除總線上的干擾和一定的防電磁輻射的能力。82C250 的Rs 腳上接有一個斜率電阻, 電阻大小可以根據(jù)總線通信速度適當調(diào)整, 一般在16~ 140 k 。
2. 3 微處理器的選擇
汽車電子控制系統(tǒng)的實時性是建立在微處理器的高速運算功能上的, 因此微處理器的選擇是系統(tǒng)設計的重要環(huán)節(jié), 與一般的電子設備相比較, 汽車電子控制系統(tǒng)的微處理器特點在于經(jīng)常處理大量的輸入和輸出信號, 而且要實現(xiàn)高精度和實時控制, 因此必須能夠同時進行多種獨立的操作。為了滿足這些要求, 微處理器必須具有高速計算、高速實時輸入和輸出以及多種中斷響應等特性。由于通用電子計算機電子控制系統(tǒng)的控制功能較為簡單, 所以大多數(shù)電子控制單元( ECU ) 中主要使用8 位微處理器。在選擇微處理器上, 不僅要注重滿足技術(shù)要求, 還要綜合考慮成本和實用因素, 不應片面追求微處理器的高速和高位數(shù)。
本研究是對按鈕開關的邏輯信號進行處理, 對微處理器的控制核心CPU 的要求不高, 選用AT89C51 即可滿足要求。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
3 汽車前照燈CAN 總線多路傳輸系統(tǒng)的軟件設計
多路傳輸系統(tǒng)的軟件設計包括CAN 節(jié)點的初始化、CAN 報文的發(fā)送和接收、PC 機與CAN 適配卡的通信。
3. 1 初始化
系統(tǒng)節(jié)點初始化包括: 自檢、CAN 通訊初始化、A/ D初始化、各種系統(tǒng)標志初始化以及看門狗初始化等。其中89C51 的CAN 控制器初始化流程如圖4所示。
圖4 CAN 初始化流程圖。
3. 2 CAN 子節(jié)點收發(fā)軟件設計
子節(jié)點主要功能是實現(xiàn)對按鍵信號進行采集, 并響應主控節(jié)點命令, 通過CAN 總線向主控節(jié)點發(fā)送檢測點信息。在軟件設計上, 子節(jié)點采取命令應答方式, 即等待命令—分析命令類型—發(fā)回相應數(shù)據(jù)。
系統(tǒng)中子節(jié)點在上電復位后主要工作為:
( 1) 對系統(tǒng)進行初始化;( 2) 向主控節(jié)點發(fā)出加入請求;( 3) 主控節(jié)點接受請求, 并給該子節(jié)點一個網(wǎng)絡編號;( 4) 等待主控節(jié)點命令;( 5) 根據(jù)命令將監(jiān)測點的相關數(shù)據(jù)通過CAN 總線發(fā)送給主控節(jié)點。
因此, 子節(jié)點的主要流程如圖5 所示。
3. 3 主控節(jié)點軟件設計
主控節(jié)點軟件采用事件驅(qū)動方式, 事件信號由各種中斷信號產(chǎn)生; CPU 在進入中斷處理程序后, 僅僅判斷事件類型, 設置相應的事件標志位, 并不對事件做任何處理; 主控節(jié)點主程序?qū)⒀h(huán)讀取事件標志, 并轉(zhuǎn)入相應的事件處理程序。
主控節(jié)點具有兩種工作模式。一種是系統(tǒng)中存在上位機, 上位機作為命令發(fā)出點, 主控節(jié)點處于被動控制模式。此時, 主控節(jié)點的工作是通過RS 232 接收上位機的命令, 分析命令的目的節(jié)點, 并將命令通過CAN網(wǎng)絡發(fā)送給目的節(jié)點; 同時, 主控節(jié)點檢測CAN 網(wǎng)絡上的節(jié)點數(shù)據(jù), 將節(jié)點發(fā)出的數(shù)據(jù)通過RS 232 發(fā)送給上位機; 重復以上流程直到工作方式發(fā)生改變。在這種方式下主控節(jié)點的主要工作流程如圖6 所示。
圖6 被動控制狀態(tài)流程。
當系統(tǒng)中不存在上位機或上位機發(fā)出脫離系統(tǒng)命令后, 主控節(jié)點進入主動控制工作模式。在這種狀態(tài)中, 命令發(fā)送者為主控節(jié)點, 主控節(jié)點可通過定時器事件輪循查詢各節(jié)點工作狀態(tài); 響應鍵盤事件, 并根據(jù)用戶輸入的命令向目標節(jié)點發(fā)出命令或響應相應子節(jié)點的數(shù)據(jù); 通過LED 燈顯示子節(jié)點工作狀態(tài)。
兩種工作模式間可以通過上位機發(fā)出命令、用戶通過鍵盤輸入命令以及主控節(jié)點查詢上位機工作狀態(tài)異常( 如在被動狀態(tài)中, 上位機長時間沒有命令) 等幾種方式切換。
3. 4 上位機監(jiān)控系統(tǒng)設計
上位機監(jiān)控系統(tǒng)基于C+ + 設計, 可以實現(xiàn)同時對多路數(shù)據(jù)進行采集、存儲, 并設計了圖形化的監(jiān)控顯示。監(jiān)控系統(tǒng)功能包括:
( 1) 向主控節(jié)點發(fā)出聯(lián)機或脫機命令, 切換節(jié)點工作狀態(tài);( 2) 定時發(fā)送節(jié)點查詢命令, 查詢子節(jié)點工作狀況, 更新系統(tǒng)節(jié)點表;( 3) 根據(jù)用戶需要, 定時向監(jiān)控節(jié)點發(fā)送讀取命令, 取得節(jié)點的監(jiān)控數(shù)據(jù), 并保存數(shù)據(jù), 形成監(jiān)控數(shù)據(jù)文件;( 4) 以圖形化的方式顯示監(jiān)控曲線。
上位機系統(tǒng)中還包含了數(shù)據(jù)分析功能, 其中設計了算法接口; 系統(tǒng)用戶可編寫自己的算法庫, 系統(tǒng)可調(diào)用用戶算法庫對采集的原始數(shù)據(jù)進行進一步的分析。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
4 結(jié) 語
由于CAN 總線具有極強的抗干擾能力, 系統(tǒng)在使用現(xiàn)場數(shù)據(jù)通訊非??煽浚?并且通過CAN 中繼器可以進一步提高通訊質(zhì)量和距離。隨著CAN 總線芯片性能的提高、價格的降低, 逐漸應用到普通轎車上, 也為其在農(nóng)業(yè)機械上的應用提供了條件。研究CAN 總線在拖拉機等農(nóng)業(yè)機械上的應用, 對于提高農(nóng)機性能和經(jīng)濟性, 促進我國農(nóng)業(yè)機械化發(fā)展, 具有重要意義。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。
評論