李風雷
(上海日立電器有限公司,上海201206)
空調壓縮機是車用空調系統的動力源和核心,也是傳統汽車向新能源汽車轉變時,空調系統中變動最大的零件。與傳統汽車相比,新能源汽車的空調壓縮機驅動源不再單純由發動機直接驅動,而更多地傾向于電驅動。目前,由于受新能源汽車能量存儲量的限制,整車能源必須兼顧動力源與舒適性的要求。空調壓縮機作為大量耗能部件,其自身能耗情況需要快速準確地反饋給汽車主控微控制器(Micro Controller Uuit,MCU),故傳統的空調壓縮機已經不能滿足使用的要求,需采用新型的電動空調壓縮機,同時,電動空調壓縮機的控制和通信也成為新能源汽車領域競相研究的對象。本文針對新能源車用電動壓縮機,采用許多汽車公司BENZ(奔馳)、BMW(寶馬)、大眾等推薦的控制器局域網(Controller Area Network,CAN)總線通信方式,開發了電動壓縮機CAN通信控制模塊,使電動壓縮機可作為車載網絡的一個節點,借助CAN總線網絡實現整車與空調壓縮機的信息交換,便于壓縮機的控制與監測。
CAN是德國BOSCH公司于20世紀80年代開發的一種高性能串行通信方式,解決了現代汽車中眾多控制與檢測儀器之間的數據交換問題,它可以在較惡劣的環境中實現長距離、高位速率、高抗電磁干擾性的數據傳輸,且能夠檢測出任何錯誤。基于上述優點,CAN迅速成為國際汽車業應用最廣泛的通信方式。技術規范CAN 2.0于1991年制定并發布,1993年ISO正式頒布了道路交通運輸工具—數字信息交換-高速通信控制器局域網(CAN)國際標準ISO 11898。CAN 2.0技術規范與國際標準ISO 11898就成為設計汽車高速網絡系統的基本依據[1]。

圖1 CAN總線網絡示意圖
CAN總線車載網絡的結構由諸多節點構成,如圖1所示。每一個節點包括CAN控制器和CAN收發器,節點之間通過物理總線互相連接。CAN總線上用顯性(Dominant)和隱性(Recessive)表示0和1;總線上使用差分信號傳送,這種傳送方式具有極強的抗干擾性,能夠避免各種噪聲,兩條信號線被稱為“CAN_H”和“CAN_L”,如圖2所示。在隱形狀態即邏輯1時,CAN_H和CAN_L均被固定在平均電壓2.5V附近,二者差值近似于0。在顯性狀態即邏輯0時,CAN_H比CAN_L高,此時,通常CAN_H電壓值為3.5V,CAN_L電壓值為1.5V,在總線空閑時,發送隱性位[2]。

圖2 總線位的數值表示
CAN總線報文傳輸由4種不同類型的幀表示,具體如表1所示,其中數據幀與遠程幀都有報文標識符(ID)用于區別不同的報文,這些報文又根據ID長度不同,可分為標準幀(11位ID)和擴展幀(29位ID);錯誤幀與過載幀沒有ID,僅用于狀態描述。在實際的應用中,每一種報文信息都有固定的ID來描述該報文的用途,節點也具有接收過濾功能(僅接收與自身相關的報文而忽略無關報文)。報文信息通過數據幀的數據字節來傳遞,數據字節的個數可為0~8。在報文傳輸過程中,數據依次串行傳輸至總線,總線傳輸數據的速度稱為波特率(Baud Rate),其單位為bps,含義為每秒鐘傳輸的位數(Bit)。常用的波特率有[3]100kbps、125kbps、500 kbps至1 000kbps。

表1 CAN通信報文幀
壓縮機控制板以型號Cortex-M3LPC1752為主控芯片,采用變頻控制技術驅動壓縮機電動機,并通過CAN通信實現壓縮機運轉信號及反饋信號的傳輸,主要包括以下3部分內容。
壓縮機通信控制板初始化包括時鐘配置、引腳配置與外設使能。通常為減少功耗,不使用的外設電源可以關閉,在使用前打開即可。初始化中較為重要的是CAN模塊初始化,CAN模塊時鐘與系統主時鐘一致,即外設分頻器的值為1,程序中設為48MHz;然后波特率為500kbps,保證在同一個CAN網絡的數據傳輸速度大致相同,能夠實現同步[4]。
壓縮機狀態監測即壓縮機節點通過CAN網絡發送報文數據至總線,報文的數據中包含壓縮機的實際轉速信息與工作狀態字節,總線上的相關節點正確接收到該信息后,壓縮機的狀態反饋完成。這一過程與壓縮機CAN控制器的報文發送操作相對應,具體包括以下步驟。
(1)需指定CAN控制器號,并選擇一個空閑的發送緩沖區,然后配置報文發送緩沖區[5],報文發送緩沖區的結構如圖3所示。

圖3 報文發送緩沖區
其中,需設置的參數共有5個:FF、RTR、DLC、數據字節、ID,各變量含義如表2所述。為了便于后期整體操作,建立一個包含變量FF、DLC、數據字節、ID的結構類型 Message Detail,未包括RTR遠程幀標志是因為數據字節的長度已包括RTR的值:若數據字節為0,則 RTR=1,否則RTR=0。


(2)定義一個全局變量Message DetailT用于保存每次發送的壓縮機狀態報文信息:Message-Detail Message DetailT。

表2 CAN報文幀結構體成員描述
(3)編寫結構體Message DetailT的賦值子函數Writedetail(),依次對表2中的變量賦值,數據字節源于長度為8的數組data,它包含壓縮機最新的狀態信息描述字節,流程圖見圖4。

圖4 賦值子函數Writedetail()流程圖
(4)啟動命令寄存器開始發送數據,并監測發送狀態是否成功,若成功則表明壓縮機的狀態信息反饋成功,將會等待固定時間后再傳輸,流程圖見圖5。

圖5 發送報文函數流程圖
壓縮機運轉控制通過壓縮機節點從總線接收運轉報文來完成,即壓縮機CAN控制器此刻應配置為報文接收,主要通過查詢主控芯片LPC 1752的CAN模塊接收狀態標志位RBS來判定是否接收到報文。若成功接收報文,則從接收緩沖區(結構與發送緩沖區類似)讀出報文信息即可。初期為了驗證接收數據的正確性,采用了接收報文后將其直接轉發的方法,以保證數據的正確性,流程圖見圖6。

圖6 報文接收轉發函數流程圖
本CAN通信應用系統中,新能源汽車空調控制器與壓縮機控制器通過物理總線連接,2個節點的通信波特率為500kbps,并指定壓縮機運轉控制報文的ID為0x229,壓縮機狀態反饋的報文ID為0x240,通信采用周期性報文傳送操作,周期長度為100ms。壓縮機狀態反饋的報文采用定時器實現,而運轉控制的報文接收則通過CAN中斷接收實現,總體的通信圖如圖7所示。通信過程中節點通過報文ID來識別報文信息,并且通過CAN總線的競爭與仲裁規則自動實現報文按優先級傳輸[6],這里壓縮機運轉控制報文ID比壓縮機狀態反饋報文ID小(0x229<0x240),所以若空調控制器節點與壓縮機控制器節點同時發起報文,那么將由空調控制器節點取得總線操作的權利,等到總線空閑時,壓縮機反饋報文再啟動傳輸。經過多次的通信測試,壓縮機節點在CAN網絡中能夠受控于空調控制器節點,并且壓縮機的狀態也能被空調控制器監測,該系統已經在新能源汽車進行了實際應用,完全滿足設計需求。

圖7 空調控制器與壓縮機控制器節點通信圖
新能源汽車電動壓縮機通信控制系統采用CANBUS通信方式,不僅避免了多余的通信布線,又提高了數據的可靠性與傳輸速度,使空調控制器對壓縮機的控制簡單化,同時壓縮機的狀態監測數據能夠實時提供自身能量消耗情況,為整車的能源分配與快速決策奠定了基礎。
[1]羅 峰,孫澤昌.汽車CAN總線系統原理、設計與應用[M].北京:電子工業出版社,2010:27.
[2]王宜懷,劉曉升.嵌入式技術基礎與實踐[M].北京:清華大學出版社,2007:375.
[3]周立功.深入淺出Cortex-M3——LPC175X[M].廣州:廣州致遠電子有限公司,2010.
[4]Holger Zeltwanger.現場總線CANopen設計與應用[M].周立功,黃曉清,譯.北京:北京航空航天大學出版社,2011:7.
[5]NXP Semiconductors.LPC17xx Rev 6User Manual[EB/OL].(2010-08-19)[2012-02-23].http://www.nxp.com/documents/user manual/UM10360.pdf,346.
[6]史久根.CAN現場總線系統設計技術[M].北京:國防工業出版社,2004:29.