文獻標識碼: A
文章編號: 0258-7998(2014)12-0027-03
0 引言
工程機械ECU(Electronic Control Unit)是工程機械的核心控制部件之一,它通過各種安裝在動力系統(tǒng)、執(zhí)行機構上的傳感器,感知系統(tǒng)的運行狀態(tài),以用戶的預期運動為目標,由其內部的控制算法實現工程機械的狀態(tài)控制[1]。目前國內ECU廠商較少,且產品性能偏低,國內ECU市場基本被國外產品所壟斷。
基于英飛凌公司新一代C166v2架構微控制器XC2287M[2]設計了一款智能ECU,擁有高度復用的輸入輸出模塊和豐富的I/O資源,軟件上采用工程機械控制領域廣泛應用的CODESYS軟PLC平臺,支持IEC 61131-3定義的5種標準PLC語言進行編程[3-4]。
1 硬件設計
設計的ECU采用XC2287M作為處理核心,通過XC2287M的外設資源擴展PWM、DO、DI、AI和PI等工程機械常用輸入輸出接口。硬件部分包括主處理電路和外圍電路,外圍電路由電源電路、存儲器電路、安全監(jiān)控電路、輸入輸出電路和通信接口電路等組成。
1.1 主處理電路
主處理電路選用英飛凌公司具有32位性能的16/32位微控制器XC2287M作為控制核心,外圍電路基于XC2287M的外設資源進行擴展。XC2287M將高性能CPU和一組功能強大的外設單元以高效的方式互連,并集成到一顆芯片中,其原理框圖如圖1所示。
XC2287M的最高工作頻率為80 MHz,擁有16位外部數據總線,具有兩個可同步ADC、一個16通道捕獲/比較單元CC2、最多4個可產生靈活PWM信號的捕獲/比較單元CCU6、兩個多功能通用定時器單元GPT、最多8個通用串行通道USIC、最多6個CAN節(jié)點的MultiCAN和最多119個GPIO等豐富的外設資源,完全能夠滿足工程機械智能ECU的硬件需求。
1.2 電源電路
工程機械ECU由主機的蓄電池供電,電源電路將電池電壓轉換為ECU所需的3.3 V、5 V等內部電壓,并對電源反接、過壓和過流等進行保護。電源電路如圖2所示,其允許的輸入電壓范圍為9~36 V。
電源電路選用英飛凌公司的TLE6368多電壓處理器供電芯片[5],它具有高效調壓系統(tǒng)、5.5 V~60 V寬輸入電壓、待機功耗低、可通過SPI進行控制和診斷,非常適合于車載12 V/24 V蓄電池供電系統(tǒng)。TLE6368的輸入級使用肖特基二級管和瞬態(tài)抑制二級管實現電源反接和過壓保護;SPI接口與XC2287M的USIC相連,控制TRACK LDO輸出,并可關斷所有電源供電,使系統(tǒng)進入待機狀態(tài);WAKE引腳與整車的點火線開關相連,控制系統(tǒng)的上電,MCU監(jiān)測WAKE引腳的狀態(tài),當檢測到點火線開關關閉時,通過SPI關閉所有供電輸出。TLE6368為數字和模擬外設提供1路高達800 mA的5 V輸出,主處理器和與主處理器相連的數字電路使用3.3 V輸出,6路TRACK LDO輸出并聯起來提供高達100 mA的5 V傳感器供電輸出。
1.3 功率級輸出電路
功率級輸出用于控制外部電磁閥、電機等執(zhí)行器,實現對整車動作的控制。圖3為2.5 A功率級輸出電路的原理圖。BTS5125L為2路智能高邊開關,導通電阻90 mΩ,負載電流可達3.7 A,提供短路保護、過壓保護、ESD保護和過熱關斷等功能,可通過狀態(tài)反饋引腳監(jiān)測輸出狀態(tài),支持阻性、容性和感性負載。
BTS5215L的輸入引腳與XC2287M的CCU63的輸出引腳相連,實現PWM輸出和DO輸出的復用,可滿足不同負載需求。XC2287M的I/O端口在上電復位時為弱上拉,而BTS5215L的輸入為高有效,需要在輸入引腳連接10 kΩ下拉電阻以確保功率級在上電時處于關斷狀態(tài)。BTS5215L的GND引腳連接100 Ω電阻實現反向電池電壓保護,輸出引腳連接的續(xù)流二級管可支持感性負載。為了增加ECU的靈活性,BTS5215L的輸出引腳通過分壓電阻網絡與MCU的輸入引腳相連,通過軟件可以將輸出端口復用為輸入。
1.4 安全監(jiān)控電路
安全監(jiān)控電路選用英飛凌公司高性能8051微控制器XC866。XC2287M通過USIC與XC866的SSC相連,XC866工作在SPI從模式,用于監(jiān)控系統(tǒng)的工作狀態(tài),控制安全繼電器,并與工作在SPI主模式的XC2287M共同控制所有功率級輸出的使能。
XC2287M和XC866各有一個GPIO用作功率級使能信號(PWREN#),所有的功率級輸出(PWM和DO)都受MCU_PWREN#和DOG_PWREN#的共同控制,只有兩者都有效時,功率級輸出才被使能。
1.5 通信接口電路
ECU通過CAN總線連接支持CAN總線的傳感器,CAN總線還作為ECU與CODESYS編程環(huán)境的通信通道。通信接口電路由XC2287M的MultiCAN外接CAN總線收發(fā)器構成[6],其電路原理圖如圖4所示。
設計中XC2287M的工作電壓為3.3 V,CAN總線收發(fā)器選用NXP公司的TJA1042T/3,它兼容3 V~5 V微處理器接口,由VIO(I/O電平適配)引腳決定接口電平。為了提高兼容性,圖4中芯片的第5引腳連接了2個可選電阻,RXD引腳連接了2.2 kΩ限流電阻,該電路可兼容3 V~5 V系統(tǒng),應用時可根據需要選擇CAN總線收發(fā)器。設計中使用了分裂終端電阻形式,可以有效減少電磁發(fā)射并具有更高的抗干擾性。
2 軟件設計
2.1 軟件總體框架
設計的ECU運行CODESYS軟PLC運行時,構建了適合IEC 61131-3標準的開放式、可擴展ECU平臺。ECU軟件由Bootloader、BSP和C語言算法庫、安全監(jiān)控服務和CODESYS運行時、IEC接口層、IEC應用層等構成,其軟件架構框圖如圖5所示。
Bootloader用于系統(tǒng)程序下載和升級維護;BSP包含硬件驅動程序,為上層提供平臺無關的接口;C語言算法庫實現復雜的控制算法,為應用程序提供算法加速;安全監(jiān)控服務對系統(tǒng)運行狀態(tài)進行監(jiān)測;CODESYS運行時為用戶IEC程序提供運行環(huán)境,并通過Debug接口實現程序的斷點調試;IEC程序通過外部庫接口和I/O映像與運行時和外部硬件進行數據交互。
2.2 Bootloader設計
工程機械ECU通常工作在較為惡劣的現場環(huán)境中,為了達到特定的防護等級,一般采用密封的外殼結構。為了方便后續(xù)的升級與維護,需要在ECU中實現Bootloader,其工作流程如圖6所示。
Bootloader是系統(tǒng)上電之后運行的第一段程序,它首先執(zhí)行基本的系統(tǒng)初始化和通信接口初始化,然后一直輪詢以檢查是否有上位機更新請求。當接收到更新請求時,進入更新服務流程,若100 ms內無更新請求,檢查Flash中指定位置的應用程序是否有效,有效時執(zhí)行相應的程序,無效時則進入更新服務流程。
2.3 CODESYS運行時移植
使用基于IEC 61131-3標準的CODESYS編程環(huán)境對硬件設備進行編程之前,在設備中必須安裝部署CODESYS運行時?;赬C2287M的運行時移植主要包括對Main.c、RtsCst.c、RtsCst.h、RtsInc.h、RtsUsr.h、RtsUtil.c和RtsCan.c等文件的修改與適配。
RtsCst.c是移植工作的重點和難點,它主要為運行時提供I/O配置解析、I/O映像讀寫、外部庫函數接口的實現,以及IEC程序的保存與加載等功能。在移植中需要根據ECU的外設實現CstIOConfigChanged、CstReadInputs、CstWriteOutputs、CstGetExtRefTable、CstFlashProgram和CstLoadProgram等函數接口。
運行時通過外部庫函數表為IEC程序提供外部庫函數接口。函數CstGetExtRefTable返回用戶外部庫函數表s_ExtRefTable的指針。s_ExtRefTable是以NULL結尾的結構體ExtRef的數組,其成員結構為:
typedef struct tagExtRef {
char szName[32];//外部庫函數名稱,通常為大寫
void(*pFunction)(void);//外部庫函數的函數指針
} ExtRef;
其中,szName為在CODESYS編程環(huán)境中調用此外部庫函數時使用的樁函數名稱,pFunction為指向運行時中相應函數的函數指針。任何需要由運行時導出給IEC程序使用的用戶函數都需要包含在s_ExtRefTable中,C語言算法庫也由它提供給IEC程序調用。
2.4 安全監(jiān)控軟件設計
為了滿足工程機械的安全性要求,設計的ECU采用了雙CPU架構。XC2287M為主CPU,負責執(zhí)行主要功能;XC866為看門狗CPU,負責對整個ECU進行安全監(jiān)控,并在異常時關斷安全關鍵的外部輸出,確保系統(tǒng)安全。ECU的安全狀態(tài)轉換如圖7所示。
系統(tǒng)上電后,整個系統(tǒng)處于初始狀態(tài),所有功率級輸出被關閉。主CPU嘗試與看門狗CPU建立通信,并下載安全關鍵的外設配置到看門狗CPU。成功建立通信后,看門狗CPU開始監(jiān)測安全關鍵外設和主CPU的狀態(tài),整個系統(tǒng)進入正常工作狀態(tài)。隨后主CPU與看門狗CPU周期性的交換狀態(tài)數據,當通信中斷或外設異常時,主CPU和看門狗CPU都將進入安全狀態(tài),并關閉所有安全關鍵的功率輸出。
3 結束語
設計的ECU具有豐富的I/O資源和完善的安全保護機制,支持在系統(tǒng)失效時切換到預定義的安全輸出狀態(tài),保證異常條件下ECU及外圍設備的安全。ECU軟件遵循IEC 61131-3標準,可以通過CODESYS進行用戶編程,支持5種標準PLC編程語言,提供豐富的外部庫函數接口。本設計具有編程靈活、性能穩(wěn)定、安全可靠、易于擴展等諸多優(yōu)點,可以廣泛應用于各種工程機械控制系統(tǒng)。設計的ECU目前已經成功應用于包括挖掘機、推土機、高空作業(yè)車、大噸位平板車等在內的多種工程機械車型,取得了良好的經濟效益。
參考文獻
[1] 王國慶,劉潔,張宗濤,等.工程機械智能化控制器研究[J].筑路機械與施工機械化,2008,25(3):73-75.
[2] Infineon Technologies AG.XC2200M Derivatives user′s manual V2.0[D/OL].(2009-03)[2014-09].http://www.infi- neon.com.
[3] 3S-Smart Software Solutions GmbH.The CoDeSys runtime system For C16x Infineon processors V2.2[D/OL].(2001-03)[2014-09].http://www.codesys.com.
[4] 王麗麗,康存鋒,馬春敏,等.基于CoDeSys的嵌入式軟PLC系統(tǒng)的設計與實現[J].現代制造工程,2007(3):54-56.
[5] Infineon Technologies AG.TLE6368/SONIC data sheet V2.1[D/OL].(2006-12)[2014-09].http://www.infineon.com.
[6] 張素偉,王志剛,王紅,等.基于Infineon單片機的CAN網關研究[J].電子技術應用,2009(12):125-127.
基金項目:國家自然科學基金項目(61303045);江蘇省自然科學基金項目(BK2012237)