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