摘 要:隨著汽車(chē)電子化的發(fā)展,CAN總線(xiàn)通信系統(tǒng)在汽車(chē)維修專(zhuān)業(yè)中的重要性日益凸顯。本文探討了基于CAN的車(chē)窗控制系統(tǒng),結(jié)合硬件電路和軟件程序設(shè)計(jì)以及示波器和CAN分析儀的使用,來(lái)加深學(xué)生對(duì)CAN總線(xiàn)通信系統(tǒng)原理和協(xié)議及數(shù)據(jù)收發(fā)過(guò)程的理解。這種實(shí)踐性學(xué)習(xí)方法能夠增強(qiáng)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的創(chuàng)新能力,為未來(lái)做好汽車(chē)維修等崗位工作打下堅(jiān)實(shí)基礎(chǔ)。
關(guān)鍵詞:汽車(chē)維修專(zhuān)業(yè);CAN總線(xiàn)通信系統(tǒng);車(chē)窗控制系統(tǒng);硬件電路設(shè)計(jì);軟件程序設(shè)計(jì)
汽車(chē)CAN總線(xiàn)通信系統(tǒng)是現(xiàn)代汽車(chē)中廣泛應(yīng)用的一種通信技術(shù),它可以實(shí)現(xiàn)車(chē)輛各個(gè)系統(tǒng)之間的數(shù)據(jù)交換和共享。也就是說(shuō)不論是汽車(chē)維修專(zhuān)業(yè),還是汽車(chē)電器以及汽車(chē)設(shè)計(jì)專(zhuān)業(yè),汽車(chē)CAN總線(xiàn)通信系統(tǒng)都是繞不過(guò)去的必須學(xué)習(xí)的系統(tǒng),那么如何學(xué)習(xí)CAN總線(xiàn)通信系統(tǒng)才能高效掌握CAN總線(xiàn)通信系統(tǒng)的原理呢?
筆者認(rèn)為帶學(xué)生設(shè)計(jì)一個(gè)CAN總線(xiàn)通信系統(tǒng)比單純講解CAN總線(xiàn)通信系統(tǒng)的組成、原理、檢測(cè)方法要有效,這也是“行勝于言”的教學(xué)思想的體現(xiàn),同時(shí)在“設(shè)計(jì)—完成”中體現(xiàn)出教學(xué)的價(jià)值,學(xué)生有了學(xué)習(xí)成果,有了輸出,這樣的教學(xué)才是更高效的。
在CAN總線(xiàn)通信系統(tǒng)的教學(xué)中,筆者選取一個(gè)“基于CAN總線(xiàn)通信系統(tǒng)的車(chē)窗控制系統(tǒng)的設(shè)計(jì)”為課題,帶領(lǐng)學(xué)生完成了這一課題,并用于教學(xué)實(shí)踐中,這樣學(xué)生學(xué)得容易,教師教得輕松,學(xué)習(xí)達(dá)到事半功倍的效果?,F(xiàn)就具體的設(shè)計(jì)方案與同行們分享一下,旨在拋磚引玉,供同行參考。
本系統(tǒng)的硬件設(shè)計(jì)主要包括STC32單片機(jī)、CAN總線(xiàn)收發(fā)器、車(chē)窗電機(jī)驅(qū)動(dòng)電路和按鍵輸入電路等部分。最終實(shí)現(xiàn)與車(chē)上車(chē)窗控制功能一致的功能,能夠?qū)崿F(xiàn)車(chē)窗的主控與分控、單觸上升與下降、鑰匙聯(lián)動(dòng)等功能。
我們采用嘉立創(chuàng)EDA進(jìn)行PCB設(shè)計(jì),并與學(xué)生共同完成電子元件的焊接。
系統(tǒng)電路組成主要由電源電路、四個(gè)單片機(jī)最小系統(tǒng)、CAN總線(xiàn)收發(fā)器、各車(chē)窗的按鍵開(kāi)關(guān)輸入電路、各個(gè)車(chē)窗電機(jī)的正反轉(zhuǎn)控制電路組成。
本系統(tǒng)選用STC3 2G1 2K1 2 8-LQFP32系列單片機(jī)作為主控制器,具有高性能、低功耗的特點(diǎn)。該單片機(jī)集成了CAN模塊和GPIO模塊,能夠滿(mǎn)足系統(tǒng)的需求。
本系統(tǒng)采用TJA1050作為CAN總線(xiàn)通信系統(tǒng)收發(fā)器,實(shí)現(xiàn)單片機(jī)與車(chē)窗電機(jī)之間的通信。TJA1050具有高速傳輸和抗干擾能力強(qiáng)的特點(diǎn),能夠保證系統(tǒng)的可靠性和實(shí)時(shí)性。為了使教學(xué)不至于枯燥乏味,教師使用了連線(xiàn)操作,讓學(xué)生了解模塊的供電及通信線(xiàn)路連接,這也是一個(gè)必要的互動(dòng)環(huán)節(jié)。
按鍵輸入電路,用于實(shí)現(xiàn)車(chē)窗的控制功能。按鍵輸入電路包括上升鍵、下降鍵、自動(dòng)鍵和分控鎖止鍵、車(chē)門(mén)鑰匙聯(lián)動(dòng)開(kāi)關(guān)等。通過(guò)按鍵輸入電路,用戶(hù)可以實(shí)現(xiàn)對(duì)車(chē)窗的控制操作。
車(chē)窗電機(jī)的正反轉(zhuǎn)控制電路采用兩個(gè)五腳繼電器來(lái)切換,而繼電器的驅(qū)動(dòng)采用ULN2003A芯片來(lái)驅(qū)動(dòng),電路簡(jiǎn)單而穩(wěn)定可靠。
整個(gè)電路板采用按功能進(jìn)行分區(qū)設(shè)計(jì),讓人一看就能明白這一塊電路的主要功能。如駕駛側(cè)車(chē)窗控制模塊下方的按鈕與開(kāi)關(guān)區(qū)域,分別是鑰匙聯(lián)動(dòng)開(kāi)關(guān)、各車(chē)窗的上升、下降及自動(dòng)按鈕,自動(dòng)上升與下降需同時(shí)按下自動(dòng)按鈕與上升或下降按鈕。
本系統(tǒng)的軟件設(shè)計(jì)主要包括主程序、 CAN總線(xiàn)接收中斷程序和按鍵處理程序等部分。
主程序主要負(fù)責(zé)系統(tǒng)的初始化和狀態(tài)檢測(cè)。在主程序中,首先進(jìn)行系統(tǒng)初始化,包括CAN總線(xiàn)的初始化和GPIO模塊的初始化。然后進(jìn)行狀態(tài)檢測(cè),判斷是否有按鍵輸入和CAN總線(xiàn)接收到的數(shù)據(jù)。根據(jù)不同的狀態(tài),執(zhí)行相應(yīng)的操作。
CAN總線(xiàn)接收中斷程序主要用于處理CAN總線(xiàn)接收到的數(shù)據(jù)。當(dāng)CAN總線(xiàn)接收到數(shù)據(jù)時(shí),觸發(fā)中斷并進(jìn)入中斷程序。在中斷程序中,首先判斷接收到的數(shù)據(jù)是否有效,然后根據(jù)數(shù)據(jù)的內(nèi)容進(jìn)行相應(yīng)的操作。例如,如果接收到的是上升指令,則控制車(chē)窗電機(jī)上升;如果接收到的是下降指令,則控制車(chē)窗電機(jī)下降。
按鍵處理程序主要用于處理按鍵輸入的操作。當(dāng)有按鍵輸入時(shí),觸發(fā)中斷并進(jìn)入中斷程序。在中斷程序中,首先判斷按鍵的類(lèi)型,然后根據(jù)按鍵的類(lèi)型進(jìn)行相應(yīng)的操作。例如,如果按下的是上升鍵,則控制車(chē)窗電機(jī)上升;如果按下的是下降鍵,則控制車(chē)窗電機(jī)下降。
為了驗(yàn)證系統(tǒng)的性能和穩(wěn)定性,進(jìn)行了一系列的測(cè)試和分析。測(cè)試結(jié)果表明,該系統(tǒng)能夠?qū)崿F(xiàn)車(chē)窗的主控與分控、單觸上升與下降、鑰匙聯(lián)動(dòng)等功能。同時(shí),系統(tǒng)具有較高的可靠性和實(shí)時(shí)性,能夠滿(mǎn)足車(chē)窗控制的需求。
在教學(xué)過(guò)程中,有條件的學(xué)校教師可先把原理圖分享給學(xué)生,并要求學(xué)生按原理圖畫(huà)出PCB,并自行定制電路板,焊接元件。對(duì)時(shí)間與條件不允許的學(xué)校,可直接發(fā)電路板給學(xué)生,讓學(xué)生按要求焊接電子元件,接著準(zhǔn)備編程。
筆者推薦使用“天問(wèn)BLOCKER”進(jìn)行編程,因?yàn)樗懿捎脠D形化編程,簡(jiǎn)單易學(xué)易用。
首先,學(xué)生需要了解CAN總線(xiàn)通信系統(tǒng)的基本原理和通信協(xié)議??梢詫W(xué)習(xí)CAN總線(xiàn)通信系統(tǒng)的數(shù)據(jù)傳輸方式、錯(cuò)誤檢測(cè)和糾正等基本概念。然后,可以學(xué)習(xí)如何使用CAN總線(xiàn)控制器和CAN總線(xiàn)收發(fā)器來(lái)實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收。如先發(fā)送ID為01數(shù)據(jù)為00的標(biāo)準(zhǔn)幀,再依次改變數(shù)據(jù),同時(shí)用示波器測(cè)量其波形,可把多個(gè)波形及標(biāo)準(zhǔn)幀的組成格式合成一個(gè)圖片,這樣便于觀察,學(xué)生按這樣的圖來(lái)理解CAN的報(bào)文就容易多了。
對(duì)于汽車(chē)上真實(shí)的數(shù)據(jù)長(zhǎng)度可能不止一個(gè)字節(jié),示波器在同一屏幕上不太好完整顯示同一幀數(shù)據(jù),除了通過(guò)波圖理解CAN報(bào)文格式,還使用CAN分析儀進(jìn)行數(shù)據(jù)的讀取??赏瑫r(shí)使用CAN分析儀與示波器進(jìn)行車(chē)窗控制系統(tǒng)調(diào)試。
通過(guò)硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)來(lái)學(xué)習(xí)CAN總線(xiàn)通信系統(tǒng)。同時(shí),結(jié)合示波器測(cè)量波形和CAN分析儀的使用,學(xué)生可以更好地理解CAN總線(xiàn)通信系統(tǒng)的協(xié)議和數(shù)據(jù)收發(fā)過(guò)程。
學(xué)生需要設(shè)計(jì)車(chē)窗控制系統(tǒng)的硬件部分??梢赃x擇適合的微控制器和傳感器來(lái)實(shí)現(xiàn)車(chē)窗的控制功能,也可直接參考我們的電路進(jìn)行PCB設(shè)計(jì),做出自己的電路板,焊接電子元件后,進(jìn)行軟件編程。使用“天問(wèn)BLOCKER”進(jìn)行編程,CAN發(fā)送函數(shù)的核心代碼可由教師講授,弄懂一個(gè)車(chē)窗控制模塊的編程,其他車(chē)窗控制模塊的編程基本類(lèi)似,只是ID號(hào)與數(shù)據(jù)不同。教師會(huì)給出關(guān)鍵的代碼,供學(xué)生參考。然后,學(xué)生需要編寫(xiě)程序來(lái)實(shí)現(xiàn)車(chē)窗控制系統(tǒng)的功能。學(xué)生可以使用“天問(wèn)BLOCKER”進(jìn)行編程或C語(yǔ)言來(lái)編寫(xiě)程序,通過(guò)CAN總線(xiàn)通信系統(tǒng)進(jìn)行數(shù)據(jù)的發(fā)送和接收,來(lái)實(shí)現(xiàn)車(chē)窗的開(kāi)關(guān)控制等功能。
學(xué)生需要進(jìn)行系統(tǒng)的測(cè)試和調(diào)試。可以使用示波器和邏輯分析儀等工具來(lái)監(jiān)測(cè)CAN總線(xiàn)通信系統(tǒng)上的數(shù)據(jù)信號(hào),檢查系統(tǒng)的工作情況。還可以進(jìn)行故障排除和性能優(yōu)化,確保系統(tǒng)的穩(wěn)定性和可靠性。接好車(chē)窗馬達(dá),進(jìn)行實(shí)物測(cè)試,觀察是否實(shí)現(xiàn)車(chē)窗控制功能。這樣,就完成了一個(gè)基于CAN總線(xiàn)通信系統(tǒng)的車(chē)窗控制系統(tǒng)的設(shè)計(jì)任務(wù),同時(shí)也完成了CAN總線(xiàn)通信系統(tǒng)的學(xué)習(xí)。
通過(guò)設(shè)計(jì)一個(gè)基于CAN總線(xiàn)通信系統(tǒng)的車(chē)窗控制系統(tǒng),學(xué)生能夠更加深入地理解和學(xué)習(xí)CAN總線(xiàn)通信系統(tǒng)的原理與檢修方法。這種實(shí)踐性的學(xué)習(xí)方法不僅能夠提高學(xué)生的學(xué)習(xí)興趣和動(dòng)力,還能夠培養(yǎng)學(xué)生的問(wèn)題解決能力和團(tuán)隊(duì)合作精神,能夠有效地提升學(xué)生對(duì)CAN總線(xiàn)通信系統(tǒng)的掌握程度。希望本文能夠?qū)ζ?chē)維修專(zhuān)業(yè)、汽車(chē)電器以及汽車(chē)設(shè)計(jì)專(zhuān)業(yè)的教師與學(xué)生在講授與學(xué)習(xí)CAN總線(xiàn)通信系統(tǒng)知識(shí)方面提供一定的借鑒和幫助。
(作者:李清明、梁業(yè)慶,深圳技師學(xué)院教師)