文獻標識碼: A
文章編號: 0258-7998(2014)12-0027-03
0 引言
工程機械ECU(Electronic Control Unit)是工程機械的核心控制部件之一,它通過各種安裝在動力系統(tǒng),、執(zhí)行機構上的傳感器,,感知系統(tǒng)的運行狀態(tài),以用戶的預期運動為目標,,由其內部的控制算法實現(xiàn)工程機械的狀態(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位外部數(shù)據(jù)總線,,具有兩個可同步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)抑制二級管實現(xiàn)電源反接和過壓保護,;SPI接口與XC2287M的USIC相連,,控制TRACK LDO輸出,并可關斷所有電源供電,使系統(tǒng)進入待機狀態(tài),;WAKE引腳與整車的點火線開關相連,,控制系統(tǒng)的上電,MCU監(jiān)測WAKE引腳的狀態(tài),,當檢測到點火線開關關閉時,,通過SPI關閉所有供電輸出。TLE6368為數(shù)字和模擬外設提供1路高達800 mA的5 V輸出,,主處理器和與主處理器相連的數(shù)字電路使用3.3 V輸出,,6路TRACK LDO輸出并聯(lián)起來提供高達100 mA的5 V傳感器供電輸出。
1.3 功率級輸出電路
功率級輸出用于控制外部電磁閥,、電機等執(zhí)行器,,實現(xiàn)對整車動作的控制。圖3為2.5 A功率級輸出電路的原理圖,。BTS5125L為2路智能高邊開關,,導通電阻90 mΩ,負載電流可達3.7 A,,提供短路保護、過壓保護,、ESD保護和過熱關斷等功能,,可通過狀態(tài)反饋引腳監(jiān)測輸出狀態(tài),支持阻性,、容性和感性負載,。
BTS5215L的輸入引腳與XC2287M的CCU63的輸出引腳相連,實現(xiàn)PWM輸出和DO輸出的復用,,可滿足不同負載需求,。XC2287M的I/O端口在上電復位時為弱上拉,而BTS5215L的輸入為高有效,,需要在輸入引腳連接10 kΩ下拉電阻以確保功率級在上電時處于關斷狀態(tài),。BTS5215L的GND引腳連接100 Ω電阻實現(xiàn)反向電池電壓保護,輸出引腳連接的續(xù)流二級管可支持感性負載,。為了增加ECU的靈活性,,BTS5215L的輸出引腳通過分壓電阻網(wǎng)絡與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),,應用時可根據(jù)需要選擇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語言算法庫實現(xiàn)復雜的控制算法,,為應用程序提供算法加速;安全監(jiān)控服務對系統(tǒng)運行狀態(tài)進行監(jiān)測,;CODESYS運行時為用戶IEC程序提供運行環(huán)境,,并通過Debug接口實現(xiàn)程序的斷點調試;IEC程序通過外部庫接口和I/O映像與運行時和外部硬件進行數(shù)據(jù)交互,。
2.2 Bootloader設計
工程機械ECU通常工作在較為惡劣的現(xiàn)場環(huán)境中,,為了達到特定的防護等級,,一般采用密封的外殼結構。為了方便后續(xù)的升級與維護,,需要在ECU中實現(xiàn)Bootloader,,其工作流程如圖6所示。
Bootloader是系統(tǒng)上電之后運行的第一段程序,,它首先執(zhí)行基本的系統(tǒng)初始化和通信接口初始化,,然后一直輪詢以檢查是否有上位機更新請求。當接收到更新請求時,,進入更新服務流程,,若100 ms內無更新請求,檢查Flash中指定位置的應用程序是否有效,,有效時執(zhí)行相應的程序,,無效時則進入更新服務流程。
2.3 CODESYS運行時移植
使用基于IEC 61131-3標準的CODESYS編程環(huán)境對硬件設備進行編程之前,,在設備中必須安裝部署CODESYS運行時,。基于XC2287M的運行時移植主要包括對Main.c,、RtsCst.c,、RtsCst.h、RtsInc.h,、RtsUsr.h,、RtsUtil.c和RtsCan.c等文件的修改與適配。
RtsCst.c是移植工作的重點和難點,,它主要為運行時提供I/O配置解析、I/O映像讀寫,、外部庫函數(shù)接口的實現(xiàn),,以及IEC程序的保存與加載等功能。在移植中需要根據(jù)ECU的外設實現(xiàn)CstIOConfigChanged,、CstReadInputs,、CstWriteOutputs、CstGetExtRefTable,、CstFlashProgram和CstLoadProgram等函數(shù)接口,。
運行時通過外部庫函數(shù)表為IEC程序提供外部庫函數(shù)接口。函數(shù)CstGetExtRefTable返回用戶外部庫函數(shù)表s_ExtRefTable的指針,。s_ExtRefTable是以NULL結尾的結構體ExtRef的數(shù)組,,其成員結構為:
typedef struct tagExtRef {
char szName[32];//外部庫函數(shù)名稱,通常為大寫
void(*pFunction)(void);//外部庫函數(shù)的函數(shù)指針
} ExtRef;
其中,,szName為在CODESYS編程環(huán)境中調用此外部庫函數(shù)時使用的樁函數(shù)名稱,,pFunction為指向運行時中相應函數(shù)的函數(shù)指針,。任何需要由運行時導出給IEC程序使用的用戶函數(shù)都需要包含在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)數(shù)據(jù),,當通信中斷或外設異常時,,主CPU和看門狗CPU都將進入安全狀態(tài),并關閉所有安全關鍵的功率輸出,。
3 結束語
設計的ECU具有豐富的I/O資源和完善的安全保護機制,,支持在系統(tǒng)失效時切換到預定義的安全輸出狀態(tài),保證異常條件下ECU及外圍設備的安全,。ECU軟件遵循IEC 61131-3標準,,可以通過CODESYS進行用戶編程,支持5種標準PLC編程語言,,提供豐富的外部庫函數(shù)接口,。本設計具有編程靈活、性能穩(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)的設計與實現(xiàn)[J].現(xiàn)代制造工程,,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網(wǎng)關研究[J].電子技術應用,2009(12):125-127.
基金項目:國家自然科學基金項目(61303045),;江蘇省自然科學基金項目(BK2012237)