程 博,葉 敏,孔德剛,曹秉剛
(1.長安大學道路施工技術與裝備教育部重點實驗室,陜西 西安 710064;2.西安交通大學機械工程學院,陜西 西安 710049)
能源危機與環境問題的日益嚴重,導致電動汽車越來越得到重視,電動汽車總線及通信協議研究作為一項關鍵技術,能有效保證整車動力總成系統的可靠實時控制。控制器局域網(Controller area network,CAN)總線[1-2]是目前在電動汽車上應用最廣泛的通信協議,其研究得到了廣泛的重視。文獻[3-4]提出了基于CAN總線的電動汽車控制系統設計。在文獻[5-7]中,提出的設計著重從總體流程,CAN總線通訊協議方面對電池管理系統做了深入的研究。在文獻[8-9]中,分別對電動汽車燈光控制和液晶顯示做了研究。

圖1 電池管理系統框圖
在本文中,電動汽車的電池管理系統的框圖如圖1所示。基于CAN總線的電動汽車實時網絡通信系統,主要負責采集車體內的信息,主要包含電動車車體運行狀況數據以及電池的電壓和溫度數據。在通訊網絡中,將采集的信息通過CAN總線進行傳輸,然后通過CAN-USB適配卡連接到PC主機上,在主機上完成信息的顯示、存儲和處理等工作。然后,通過測試軟件,對通信過程進行了測試,驗證了系統的采集速率和可靠性,并在實際電動車上進行數據實測,得出了電動車空轉和實際路面運行的數據圖。
本系統的硬件由兩部分組成,一是電動汽車信息采集電路,二是CAN-USB適配器電路。整體硬件框圖如圖2。信息采集部分主要完成電池和車體信息的檢測,分別包括電池電壓和溫度信息,電池總電壓、電池總電流(+、-);電機電壓、電機電流(+、-)、油門踏板、剎車踏板信息。

圖2 系統整體硬件圖
通常選PDIUSBD12器件,用作微控制器系統中實現與高速通用并行接口進行通信,也支持DMA傳輸。它集成了許多特性,如SoftConnet、GoodLink、可編程時鐘輸出、低頻晶振和終止寄存器集合。這些特性能顯著節約系統成本,也使USB功能在外設上的應用變得容易。
CAN的通信協議主要由CAN控制器完成,主要由兩部分構成:CAN總線協議部分,由CAN總線控制器SJA1000來實現;接口部分,由接口芯片PCA82C250來實現。
本系統包括信息采集電路和CAN-USB適配器。系統硬件的中心是微控制器AT89C52單片機。
1.3.1 信息采集電路設計
(1)采集信號的種類
電壓信號是通過電量隔離傳感器將輸入電池電壓轉化為低電平電壓輸出(15 V轉化為5 V,比例為1/3),電動車信號輸出都為0~5 V的電壓信號。電池電壓和電動車信號,通過RC電路濾波,電阻選擇20 kΩ。電容為0.33 μF,則截止頻率f=1/2 πRC,經計算為 24 Hz。
溫度信號是通過溫度傳感器LM35轉換為電壓信號(100℃輸出1 V)。按最高溫度50℃計算,則溫度傳感器輸出0.5 V,因此需將信號放大10倍,轉換為5 V電壓信號。濾波放大電路如圖 3。其中:R14、R15、R16、R17和 C18、C19、U2(OP07)組成無限增益型多重反饋低通濾波器,R18、R19、R20組成一個負反饋放大電路。


圖3 濾波放大電路
(2)信號采集分析部分
采用AT89C52單片機系統,各模塊簡述如下:
單片機和存儲器:單片機AT89C52,內含8 K字節的FLASH閃速存儲器和256字節的內部RAM。在CAN-USB適配器中還配有32 K容量的閃存24LC256,可以在沒有PC機連接的情況下將信息存入閃存中。
信號轉換電路:將輸入的信號通過CD4051八路選通,將輸入的八路模擬信號逐一輸入到12位的A/D轉換芯片MAX1243中,將模擬信號轉換成數字信號。
1.3.2 CAN-USB適配器電路設計
CAN-USB適配器需要兩個接口電路分別與PC主機和CAN總線通訊。前者采用PDIUSBDI2,通過USB協議實現;后者采用SJA1000,通過CAN2.0B協議實現。
地址和數據總線由P0口分時復用,P0口連接SJA1000的AD0-AD7引腳和PDIUSBD12的DATA0-DATA7引腳。通過分時選通兩個芯片。以片選控制信號選通芯片,正確地分配有效地址,避免總線數據沖突。一般使用線性片選,單片機AT89C52的管腳P2.7控制D12的片選,P2.4控制SJA1000的片選,均為低有效。確定地址分配如下:
PDIUSBD12的命令地址為0xff03(奇數地址為命令地址),數據地址為0xff02(偶數地址為數據地址)。SJA1000內部寄存器的地址范圍為[0x00-0x6 C],共108個寄存器。
(1)CAN與單片機連接電路設計
P0.0-P0.7連接 SJA1000的 AD0-AD7引腳,P2.7為SJA1000的片選信號,低電平選通。地址鎖存引腳ALE和WR、RD引腳分別和單片機的ALE、WR、RD引腳相連。
MODE引腳接電源,為高電平,采用的是INTEL模式。中斷引腳INT接單片機的INT1引腳,當SJA1000向單片機發信號時,就引發中斷。電源與地之間采用去耦電容和極性電容相連。右邊電路為SJA1000的上電復位電路,低電平上電復位。單片機和SJA1000采用的是兩個單獨的時鐘,單片機為24 MHz的,SJA1000為16 MHz的,所以CLKOUT引腳懸空。電路如圖4所示。

圖4 CAN與單片機連接電路
(2)CAN的接口電路
SJA1000的TX0和RX0管腳通過光偶與驅動器PCA82C250的TX和RX引腳相連,用于向CAN總線發送和接收數據。此時,需將RX1引腳接到一個穩定的電平上,本系統通過兩個電阻分壓將RX1固定為1.73 V的低電平上。采用可調電阻實現斜率控制,不同的電阻值對應不同的輸出電壓即對應不同的輸出電流,則可通過調節電阻值來調節PCA82C250的斜率值。
采用光偶隔離電路可以防止CAN網絡信號對主電路的干擾,提高了整個系統的抗干擾能力。利用兩個電容來消除高頻信號的干擾,利用兩個雙穩態二極管能夠卸除瞬間的高壓脈沖,防止外界突發的高壓對CAN總線收發器帶來的破壞效應。為了增強CAN通訊的可靠性,CAN總線網絡的兩個端點通常要加入終端匹配電阻。本系統采用的終端電阻為120 Ω。CAN接口線采用屏蔽電纜,可降低電磁干擾和輻射帶來的影響。
(3)USB接口電路
P0.0-P0.7連接PDIUSBDI2的DATA0-DATA7引腳,P1.6為PDIUSBDI2的片選信號,低電平選通。DI2與CAN控制器SJA1000共用地址/數據總線,通過片選信號加以區別,以避免總線數據沖突。
SUSPEND引腳接單片機的P3.1引腳,并上拉10 kΩ電阻。中斷引腳INT_N連接單片機AT89C52的INT0引腳,并上拉10 kΩ電阻;采用多路地址/數據總線方式,將A0引腳忽略。地址鎖存引腳ALE與單片機ALE相連接,WR和RD引腳分別與單片機的WR和RD直接相連;Goodlink引腳GLN外接LED并拉高,有利于調試時觀察USB設備的連接和傳輸狀態。在枚舉時,LED根據通信的狀況間歇閃爍。
CAN總線總共有三個節點,采用主從式通信。接收過程采用中斷處理,保證系統的實時性。中斷主要處理數據的傳輸,而主程序負責數據的處理。軟件設計分為三部分:CAN總線各個節點間的通信,CAN-USB適配器的固件驅動程序,上位PC機的底層驅動程序和上層應用程序。CAN-USB為主節點,其他兩個節點為從節點。定義地址分別為:CAN-USB適配器主節點,地址為00H;采集電池信息的節點1,地址為01H;采集電動車信息的節點2,地址為02H。
主節點發送命令字符 (例如發送01H代表要電路板1發送數據到主機)到從節點上,從節點接收到主節點的命令,判斷是否要發送數據,如是則將采集的信息通過CAN總線發送到主機上。采集電池信息節點1的軟件分為兩部分:A/D轉換和數據處理程序;SJA1000的初始化和CAN的接收發送程序。其中CAN的接收發送程序通過中斷來完成,在中斷設置中需開啟接收中斷。以節點1為例,數據傳輸過程流程如圖5所示。中斷處理程序如圖6,主要負責處理CAN總線數據的接收和發送,采用中斷機制可以保證數據及時的傳輸。
系統具體的固件結構如圖7所示,圖中箭頭表示數據流向。整個固件一共包含7個函數模塊。完成數據結構定義后,固件編程的實現工作主要包括硬件提取層和CAN接口硬件,PDIUSBDI2命令接口的實現以及中斷服務程序的實現。

圖5 數據傳輸的流程圖

圖6 中斷流程圖

圖7 固件程序結構圖
WDM(Windows Driver Model)是微軟公司全新的驅動程序模式,支持即插即用、電源管理和WMI技術[10]。WDM驅動程序采用分層的驅動模型,如圖8所示。
所有軟件設計主要完成:CAN總線各個節點間的通信,CAN-USB適配器的固件驅動程序,上位PC機的底層驅動程序和應用程序。

圖8 WDM驅動程序采用分層的驅動模型
本系統應用于電動汽車EV-2號上,為了驗證系統采集數據的可靠性,在兩種工況下進行測試,一個是電動汽車空轉,采集了電流在30、50、70、80 A四種情況下電動車內的數據情況。另一種是電動車在實際路況上的運行情況。
(1)電動汽車空轉數據
圖9~12為30 A放電時,電動車空轉對應的各個電池的電壓曲線圖,采集時刻的溫度為18℃。從圖中可以看出電池1、電池3和總電池電壓在不同電流下的變化曲線大致是一致的,從而證明了系統采集數據的可靠性。電池電壓迅速升高的點對應于電機達到最大速度的時刻,在不同電流下,電機達到最大速度的時間依次縮短。圖中的電流為30 A,電機達到最大速度的時間是73 s;若電流增大為80 A,則電機達到最大速度的時間是9 s。電流越大,電機達到最大速度的時間就越短,當給電動車提供電流時,電池在60 s內可以恢復到穩定值。

圖9 30 A電池1數據曲線圖

圖10 30 A電池3數據曲線圖

圖11 30 A電池總電壓數據曲線圖

圖12 電動汽車實際運行曲線圖
(2)電動車實際路面數據
電動汽車實際路況電池電壓變化曲線如圖12所示,記錄了電池電壓從124~108 V變化的曲線圖,124、108 V均為停車穩定后測的電壓值。
本文中基于AT89C52單片機和SJA1000接口芯片、PDISUBD12接口芯片CAN總線通訊系統硬件設計,以光耦隔離、硬件濾波和斜率模式保證了系統硬件運行的可靠性。在此基礎上完成了系統的軟件設計。最后,通過電動汽車空轉運行和路面運行狀態測試,驗證了實時通訊系統的可靠性。
[1]陽憲惠.現場總線技術及其應用[M].北京:清華大學出版社,1999.
[2]FARSI M,RATCLIFF K,BARBOSA M.An overview of controller area network[J].Computer&Control Engineering Journal,1999,3(10):113-120.
[3]李芳,張俊智,王麗芳,等.電動汽車動力總成系統控制器局域網(CAN)總線通信協議[J].機械工程學報,2008,44(5):102-108.
[4]冉振亞,周智慶,李越,等.電動汽車CAN總線驅動控制系統設計[J].重慶大學學報,2010,31(6):603-610.
[5]黃章華,陸華忠,呂恩利,等.基于ARM和CAN的電動汽車電池管理系統[J].華南農業大學學報,2009,30(4):105-110.
[6]鄭敏信,齊鉑金,吳紅杰.基于雙CAN總線的電動汽車電池管理系統[J].汽車工程,2008,30(9):788-793.
[7]劉倩,熊麗榮.基于CAN總線的混合動力電動汽車的鎳氫電池管理系統[J].農業裝備與車輛工程,2008,5:11-14.
[8]郭俊飛,李軍偉,鄭玉英.基于CAN總線的電動汽車燈光控制系統設計[J].農業裝備與車輛工程,2009(3):15-19.
[9]徐丹旭,王艷,殷天明.純電動汽車CAN總線通信液晶顯示系統[J].現場總線技術,2009,31(6):46-49.
[10]吳鵬,陶正蘇,胡宇貞.基于單片機USB接口的PC主機驅動程序和應用程序設計[J].電子器件,2005,28(3):612-614.