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