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