基于CAN總線的電動汽車實驗平臺
![]() |
![]() |
數(shù)據顯示驅動電路由MC9S08GZ16的SPI輸出端口開始,即圖3中的DOUT4、DOUT3和DOUT2三個管腳,加上數(shù)碼管顯示電路,構成了完整的SPI模塊。
數(shù)碼管顯示電路以MAXIM公司的MAX7219為核心,如圖7所示,它是專門的數(shù)碼管驅動芯片,可以同時驅動8個8段數(shù)碼管,驅動電壓和驅動電流可以通過程序來設置。它的操作很簡單,MCU只需通過SPI接口就可以將相關的指令寫入MAX7219的內部指令和數(shù)據寄存器。它還支持多片7219串聯(lián)方式,這樣MCU就可以通過3根線(即數(shù)據線、時鐘線和芯片選通線)控制更多的數(shù)碼管顯示。
![]() |
在MC顯示節(jié)點中用PWM輸出來控制一個小電機工作,并且根據MC傳上來的電機轉速來控制小電機的旋轉速度,如圖8所示。
![]() |
各個顯示節(jié)點的程序主要根據其功能來設計,同時在總體結構上保持一致。整個程序大部分操作是在主程序中完成的,只有CAN接收和發(fā)送程序在中斷中完成。
主程序
主程序中的操作先是初始化各寄存器,然后在死循環(huán)中根據標志位來進行相應處理,具體流程如圖9所示。
![]() |
當CAN總線上有數(shù)據送到各節(jié)點時,MCU產生CAN中斷,程序立即跳到CAN中斷程序,如圖10所示。中斷程序中先判斷數(shù)據幀的ID號,以確定是否是自己想要的數(shù)據,如果是,則將CAN數(shù)據寄存器中的數(shù)據放入已經定義的數(shù)組中,然后置位CAN中斷標志,接著退出中斷處理程序;如果不是,則直接跳出中斷處理程序。
![]() |
首先根據各個節(jié)點的重要性和節(jié)點需要傳送的數(shù)據量大小來設計網絡協(xié)議。然后利用CANoe軟件對網絡進行仿真,對比仿真的結果來不斷的修改網絡協(xié)議。
在實際CAN網絡的調試過程中,使用VECTOR公司的CANoe網絡監(jiān)控套件來監(jiān)控CAN網絡的運行狀況,了解各節(jié)點的數(shù)據幀是否正常發(fā)送,同時查看網絡是否正常運行。為了使調試更方便,還應用CANoe軟件做了一個上位機界面,它將各節(jié)點傳來的數(shù)據按照協(xié)議進行計算,然后顯示在界面上,這樣可以更直接了解各節(jié)點的運行狀況。
6 系統(tǒng)應用及結論
電動汽車試驗臺在設計安裝完成后,運行穩(wěn)定,并通過了“863”動力總成節(jié)點驗收。本試驗平臺采用CAN總線來傳遞數(shù)據,不但減少了試驗平臺的線束用量,而且提高了整個系統(tǒng)數(shù)據傳遞的可靠性。
評論