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