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