汽車上的電子裝置隨著汽車電子的發展日益增多,仍采用傳統的通信模式必然導致汽車電器布線復雜,維修檢測困難等問題。而CAN總線的提出為解決此問題提出了可能。CAN(C0ntmller Area Network)總線是20世紀80年代德國Bosch公司為實現現代汽車上眾多電子模塊相互間的通信而提出的一種串行通信協議,是目前唯一具有國際統一標準的總線。但由于國內關于CAN總線的研究起步很晚,至今國產化的產品不多。因此文獻基于科研教學及產品開發的多重目的,研制開發了基于CAN總線的車身電器控制系統實驗臺。該實驗臺以CAN總線為基礎,以某汽車車身電器為對象簡化了汽車車身電器的控制網絡,減少了線束,實驗也證明了所開發系統的正確性和CAN總線取代傳統車身線束的可行性。該實驗臺的成功開發其現實意義很重要,但也存在以下不足之處應加以改進:1)試驗臺將車燈控制節點分為前燈、后燈 2個節點,這樣在通信中不僅沒有完全利用單片機的接口,還要考慮前后節點的優先權,把軟件的設計復雜化。2)單片機引腳電流過小不足以驅動大功率的車燈和車門電機等功率器件,該試驗臺選用驅動芯片、繼電器和保險絲來實現功能,這樣設計接口電路使節點的總體體積偏大,不便車載。本文主要針對以上2個問題提出解決方案,先從總體上對節點重新分類設計,基于AT89S52微處理器和CAN控制器SJAl000重新構建硬件環境,然后以AT89S52為核心,結合所選器件的運行環境改進程序。
1 車身電器控制系統節點分類及其功能
該控制系統將車身電器分為上位機轉換節點、開關控制節點、車燈控制節點、車門控制節點4類。各類節點所包含的電器設備及要傳輸的信號如下:1)上位機轉換節點:將CAN協議信號轉換為RS232協議信號輸出,由上位機的串口接收;2)開關控制節點:燈具開關節點需要的各開關輸入,通過單片機將物理的開關信號轉換為數據信號;3)車燈控制節點:接收總線上傳來的可控數據,并將數據轉換后控制車燈各燈具的狀態,控制的車身電器主要是遠光燈、近光燈、霧燈、轉向燈、倒車燈、剎車燈等燈具;4)車門控制節點:控制車門的開關輸入及玻璃升降電機的輸出。節點的分類及功能如圖1所示。
2 系統硬件電路設計
硬件通訊電路部分由單片機AT89S52、CAN控制器SJAl000、CAN收發器PCA82C250連接組成。任何類型的節點其硬件設計中都由該通訊電路和接口電路組成,CAN控制器及收發器與單片機連接電路如圖2所示。為使總線上有信號時,系統能夠快速響應,單片機與SJAl000采用獨立的晶振。SJAl000的晶振頻率為16 MHz,單片機的晶振頻率為12 MHz,這樣可使CAN控制器接收或發送數據速度快于單片機的處理速度,總線傳來的數據或待發送到總線的數據可暫存于SJA1000的緩沖器中,等待單片機處理或自動向總線發送。
2.1 上位機轉換節點接口電路
上位機轉換節點中,接口電路的功能主要是將數據轉換為符合RS232電平協議的數據,可供上位機串口接收。由于單片機輸出的數據中邏輯電平“1”和“0” 分別用5 V和O V表示,而]RS232電平的邏輯“0”電平范圍為-5~15 V,邏輯“1”的電平范圍是+5~+15 V,因此這里選用MAX232進行電平轉換,完成上位機轉換節點接口電路的功能,圖3所示為上位機轉換節點接口電路。
2.2 開關控制節點接口電路
開關控制節點中,接口電路的功能主要是將節點電器中的多路開關狀態轉換為數字信號,并且實現由車載電源12 V到單片機使用的5 V電源的轉換。該接口電路選用的74HC244是一款CMOS型8位總線收發器,主要用在開關的輸入時,開關和SJA1000共用單片機P0端口時的切換;電源轉換主要通過穩壓管LM7805實現。圖4為開關控制節點接口電路。
2.3 車燈控制節點接口電路
車燈控制節點中,接口電路的功能主要是實現通過CAN總線的傳輸數據控制車燈功率電器。從單片機引腳流出的電流很小,無法直接驅動車燈,若采用驅動電路和繼電器來完成車燈的驅動作用,必然會導致車燈控制節點偏大,不夠實用和美觀。該接口電路選用MC33888器件。該器件內部集成有4路高端驅動器和8路繼電器或發光二極管驅動器,是一個可控制網絡,具有在線診斷、與微控制器通信報錯能力及故障軟化等優點。圖5所示為車燈控制節點接口電路。
2.4 車門控制節點接口電路
車門控制節點接口電路的功能和車燈控制節點接口電路的功能類似,也是將單片機輸出的小電流信號轉換成可驅動大功率電器的電信號,完成相應工作。該電路采用 MC33887器件。該器件功耗低,在等待模式下電流為25 mA,輸出電流超過8 A自動短路關斷。圖6為車門控制節點接口電路。
3 系統軟件設計
任何CAN總線系統的通信協議都由物理層協議、數據鏈路層協議和應用層協議組成。SJAl000和PCA82C250的硬件結構保證了協議的物理層和數據鏈路層。對于應用層,在不同的應用領域,人們制定了不同的協議,包括CANopen、DeviceNet及SAE J1939等。應用層協議決定了CAN總線系統的可擴展性。將CAN應用層合理分配后應用于軟件結構中可提高軟件的兼容性。
本設計各類節點可將程序分為主程序和子程序。主程序的目的是監控本節點中各電器的狀態,采用查詢方式編程:子程序分為接收子程序和發送子程序,采用模塊化編程,將節點的功能分成各種模塊并形成文件,在編寫各節點程序時直接調用各個模塊程序函數即可。這里參考SAE J1939的編碼規則對CAN系統的應用層進行分配,并介紹各節點的軟件結構。
3.1節點主程序
上位機轉換節點主程序的作用是:查詢總線上的數據,并將依據CAN協議的數據轉換為依據RS232電平標準的數據。圖7為上位機轉換節點流程:開關控制節點主程序用于查詢開關的閉合或斷開狀態并將開關狀態存儲到單片機的寄存器中。圖8所示為開關控制節點的程序流程,其車燈控制節點主程序用于查詢CAN總線上的數據以控制相應的電器。圖9所示為車燈控制節點的程序流程,其車門控制節點既要查詢開關的狀態存人單片機,又要查詢CAN總線的數據控制相應的電機,其主程序包含開關控制節點和車燈控制節點主程序的功能。
3.2 節點子程序
接收子程序的作用是將CAN總線上傳來的數據存儲到單片機中合適的位置,需要用時,CPU直接從該位置查詢即可。在運行接收函數前,需先檢查CAN控制器 SJAl000的寄存器中是否有傳來的數據,如果有則運行此程序;如果無,則放棄或繼續查詢。發送子程序的作用是將所要發送的數據包裝并發送到CAN控制器。在主程序中,系統不斷查詢SJAl000的狀態,一旦空閑,CPU將待發送的數據發送到CAN控制器。
4 結束語
通過對基于CAN總線的車身電器控制系統的整體優化設計,得出結論:對車身節點進行優化后,資源得到合理使用,并增強了節點的實用和美觀性,使節點的接口電路設計更加靈活。本方案側重于對實驗臺實用性的改進。通信過程中存在的干擾、基于時間觸發的CAN(即TTCAN)的應用問題尚待進一步的研究。
-
單片機
+關注
關注
6043文章
44621瀏覽量
638576 -
CAN總線
+關注
關注
145文章
1955瀏覽量
131097 -
汽車電子
+關注
關注
3029文章
8023瀏覽量
167818
發布評論請先 登錄
相關推薦
評論