《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于XC2287M的工程機(jī)械ECU設(shè)計(jì)
基于XC2287M的工程機(jī)械ECU設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第12期
何海波
(江蘇自動(dòng)化研究所,江蘇 連云港222061)
摘要: ECU是工程機(jī)械電控系統(tǒng)的核心部件,目前國(guó)內(nèi)中高端ECU市場(chǎng)基本被國(guó)外廠商所壟斷。設(shè)計(jì)了一款基于XC2287M微控制器的工程機(jī)械智能ECU,采用CODESYS軟PLC作為編程平臺(tái),支持IEC 61131-3定義的5種標(biāo)準(zhǔn)PLC語言進(jìn)行編程。所設(shè)計(jì)的ECU擁有豐富的I/O資源和完善的安全保護(hù)機(jī)制,能夠廣泛應(yīng)用于各種工程機(jī)械控制系統(tǒng),打破國(guó)外廠商對(duì)ECU市場(chǎng)的壟斷。
中圖分類號(hào): TP332.3
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)12-0027-03
Design of ECU for construction machinery based on XC2287M
He Haibo
Jiangsu Automation Research Institute,Lianyungang 222061,China
Abstract: ECU is a core component of the control system for construction machinery, and the current domestic market of ECU is almost monopolized by foreign manufacturers. This paper introduces the design of an intelligent ECU based on XC2287M microcontroller, using CODESYS Soft-PLC which supports five IEC 61131-3 defined PLC languages as the programming platform. The designed ECU has highly multiplexed input and out modules and rich I/O resources, providing sufficient safety protection mechanisms. It can be widely used in a variety of control systems, breaking the monopoly of foreign manufacturers on ECU market.
Key words : XC2287M;ECU;CODESYS;IEC 61131-3;Soft-PLC

 0 引言

  工程機(jī)械ECU(Electronic Control Unit)是工程機(jī)械的核心控制部件之一,它通過各種安裝在動(dòng)力系統(tǒng)、執(zhí)行機(jī)構(gòu)上的傳感器,感知系統(tǒng)的運(yùn)行狀態(tài),以用戶的預(yù)期運(yùn)動(dòng)為目標(biāo),由其內(nèi)部的控制算法實(shí)現(xiàn)工程機(jī)械的狀態(tài)控制[1]。目前國(guó)內(nèi)ECU廠商較少,且產(chǎn)品性能偏低,國(guó)內(nèi)ECU市場(chǎng)基本被國(guó)外產(chǎn)品所壟斷。

  基于英飛凌公司新一代C166v2架構(gòu)微控制器XC2287M[2]設(shè)計(jì)了一款智能ECU,擁有高度復(fù)用的輸入輸出模塊和豐富的I/O資源,軟件上采用工程機(jī)械控制領(lǐng)域廣泛應(yīng)用的CODESYS軟PLC平臺(tái),支持IEC 61131-3定義的5種標(biāo)準(zhǔn)PLC語言進(jìn)行編程[3-4]。

1 硬件設(shè)計(jì)

  設(shè)計(jì)的ECU采用XC2287M作為處理核心,通過XC2287M的外設(shè)資源擴(kuò)展PWM、DO、DI、AI和PI等工程機(jī)械常用輸入輸出接口。硬件部分包括主處理電路和外圍電路,外圍電路由電源電路、存儲(chǔ)器電路、安全監(jiān)控電路、輸入輸出電路和通信接口電路等組成。

  1.1 主處理電路

  主處理電路選用英飛凌公司具有32位性能的16/32位微控制器XC2287M作為控制核心,外圍電路基于XC2287M的外設(shè)資源進(jìn)行擴(kuò)展。XC2287M將高性能CPU和一組功能強(qiáng)大的外設(shè)單元以高效的方式互連,并集成到一顆芯片中,其原理框圖如圖1所示。

001.jpg

  XC2287M的最高工作頻率為80 MHz,擁有16位外部數(shù)據(jù)總線,具有兩個(gè)可同步ADC、一個(gè)16通道捕獲/比較單元CC2、最多4個(gè)可產(chǎn)生靈活PWM信號(hào)的捕獲/比較單元CCU6、兩個(gè)多功能通用定時(shí)器單元GPT、最多8個(gè)通用串行通道USIC、最多6個(gè)CAN節(jié)點(diǎn)的MultiCAN和最多119個(gè)GPIO等豐富的外設(shè)資源,完全能夠滿足工程機(jī)械智能ECU的硬件需求。

  1.2 電源電路


002.jpg

  工程機(jī)械ECU由主機(jī)的蓄電池供電,電源電路將電池電壓轉(zhuǎn)換為ECU所需的3.3 V、5 V等內(nèi)部電壓,并對(duì)電源反接、過壓和過流等進(jìn)行保護(hù)。電源電路如圖2所示,其允許的輸入電壓范圍為9~36 V。

  電源電路選用英飛凌公司的TLE6368多電壓處理器供電芯片[5],它具有高效調(diào)壓系統(tǒng)、5.5 V~60 V寬輸入電壓、待機(jī)功耗低、可通過SPI進(jìn)行控制和診斷,非常適合于車載12 V/24 V蓄電池供電系統(tǒng)。TLE6368的輸入級(jí)使用肖特基二級(jí)管和瞬態(tài)抑制二級(jí)管實(shí)現(xiàn)電源反接和過壓保護(hù);SPI接口與XC2287M的USIC相連,控制TRACK LDO輸出,并可關(guān)斷所有電源供電,使系統(tǒng)進(jìn)入待機(jī)狀態(tài);WAKE引腳與整車的點(diǎn)火線開關(guān)相連,控制系統(tǒng)的上電,MCU監(jiān)測(cè)WAKE引腳的狀態(tài),當(dāng)檢測(cè)到點(diǎn)火線開關(guān)關(guān)閉時(shí),通過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 功率級(jí)輸出電路


003.jpg

  功率級(jí)輸出用于控制外部電磁閥、電機(jī)等執(zhí)行器,實(shí)現(xiàn)對(duì)整車動(dòng)作的控制。圖3為2.5 A功率級(jí)輸出電路的原理圖。BTS5125L為2路智能高邊開關(guān),導(dǎo)通電阻90 mΩ,負(fù)載電流可達(dá)3.7 A,提供短路保護(hù)、過壓保護(hù)、ESD保護(hù)和過熱關(guān)斷等功能,可通過狀態(tài)反饋引腳監(jiān)測(cè)輸出狀態(tài),支持阻性、容性和感性負(fù)載。

  BTS5215L的輸入引腳與XC2287M的CCU63的輸出引腳相連,實(shí)現(xiàn)PWM輸出和DO輸出的復(fù)用,可滿足不同負(fù)載需求。XC2287M的I/O端口在上電復(fù)位時(shí)為弱上拉,而BTS5215L的輸入為高有效,需要在輸入引腳連接10 kΩ下拉電阻以確保功率級(jí)在上電時(shí)處于關(guān)斷狀態(tài)。BTS5215L的GND引腳連接100 Ω電阻實(shí)現(xiàn)反向電池電壓保護(hù),輸出引腳連接的續(xù)流二級(jí)管可支持感性負(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共同控制所有功率級(jí)輸出的使能。

  XC2287M和XC866各有一個(gè)GPIO用作功率級(jí)使能信號(hào)(PWREN#),所有的功率級(jí)輸出(PWM和DO)都受MCU_PWREN#和DOG_PWREN#的共同控制,只有兩者都有效時(shí),功率級(jí)輸出才被使能。

  1.5 通信接口電路

  ECU通過CAN總線連接支持CAN總線的傳感器,CAN總線還作為ECU與CODESYS編程環(huán)境的通信通道。通信接口電路由XC2287M的MultiCAN外接CAN總線收發(fā)器構(gòu)成[6],其電路原理圖如圖4所示。

004.jpg

  設(shè)計(jì)中XC2287M的工作電壓為3.3 V,CAN總線收發(fā)器選用NXP公司的TJA1042T/3,它兼容3 V~5 V微處理器接口,由VIO(I/O電平適配)引腳決定接口電平。為了提高兼容性,圖4中芯片的第5引腳連接了2個(gè)可選電阻,RXD引腳連接了2.2 kΩ限流電阻,該電路可兼容3 V~5 V系統(tǒng),應(yīng)用時(shí)可根據(jù)需要選擇CAN總線收發(fā)器。設(shè)計(jì)中使用了分裂終端電阻形式,可以有效減少電磁發(fā)射并具有更高的抗干擾性。

2 軟件設(shè)計(jì)

  2.1 軟件總體框架

  設(shè)計(jì)的ECU運(yùn)行CODESYS軟PLC運(yùn)行時(shí),構(gòu)建了適合IEC 61131-3標(biāo)準(zhǔn)的開放式、可擴(kuò)展ECU平臺(tái)。ECU軟件由Bootloader、BSP和C語言算法庫(kù)、安全監(jiān)控服務(wù)和CODESYS運(yùn)行時(shí)、IEC接口層、IEC應(yīng)用層等構(gòu)成,其軟件架構(gòu)框圖如圖5所示。

005.jpg

  Bootloader用于系統(tǒng)程序下載和升級(jí)維護(hù);BSP包含硬件驅(qū)動(dòng)程序,為上層提供平臺(tái)無關(guān)的接口;C語言算法庫(kù)實(shí)現(xiàn)復(fù)雜的控制算法,為應(yīng)用程序提供算法加速;安全監(jiān)控服務(wù)對(duì)系統(tǒng)運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);CODESYS運(yùn)行時(shí)為用戶IEC程序提供運(yùn)行環(huán)境,并通過Debug接口實(shí)現(xiàn)程序的斷點(diǎn)調(diào)試;IEC程序通過外部庫(kù)接口和I/O映像與運(yùn)行時(shí)和外部硬件進(jìn)行數(shù)據(jù)交互。

  2.2 Bootloader設(shè)計(jì)

  工程機(jī)械ECU通常工作在較為惡劣的現(xiàn)場(chǎng)環(huán)境中,為了達(dá)到特定的防護(hù)等級(jí),一般采用密封的外殼結(jié)構(gòu)。為了方便后續(xù)的升級(jí)與維護(hù),需要在ECU中實(shí)現(xiàn)Bootloader,其工作流程如圖6所示。

006.jpg

  Bootloader是系統(tǒng)上電之后運(yùn)行的第一段程序,它首先執(zhí)行基本的系統(tǒng)初始化和通信接口初始化,然后一直輪詢以檢查是否有上位機(jī)更新請(qǐng)求。當(dāng)接收到更新請(qǐng)求時(shí),進(jìn)入更新服務(wù)流程,若100 ms內(nèi)無更新請(qǐng)求,檢查Flash中指定位置的應(yīng)用程序是否有效,有效時(shí)執(zhí)行相應(yīng)的程序,無效時(shí)則進(jìn)入更新服務(wù)流程。

  2.3 CODESYS運(yùn)行時(shí)移植

  使用基于IEC 61131-3標(biāo)準(zhǔn)的CODESYS編程環(huán)境對(duì)硬件設(shè)備進(jìn)行編程之前,在設(shè)備中必須安裝部署CODESYS運(yùn)行時(shí)。基于XC2287M的運(yùn)行時(shí)移植主要包括對(duì)Main.c、RtsCst.c、RtsCst.h、RtsInc.h、RtsUsr.h、RtsUtil.c和RtsCan.c等文件的修改與適配。

  RtsCst.c是移植工作的重點(diǎn)和難點(diǎn),它主要為運(yùn)行時(shí)提供I/O配置解析、I/O映像讀寫、外部庫(kù)函數(shù)接口的實(shí)現(xiàn),以及IEC程序的保存與加載等功能。在移植中需要根據(jù)ECU的外設(shè)實(shí)現(xiàn)CstIOConfigChanged、CstReadInputs、CstWriteOutputs、CstGetExtRefTable、CstFlashProgram和CstLoadProgram等函數(shù)接口。

  運(yùn)行時(shí)通過外部庫(kù)函數(shù)表為IEC程序提供外部庫(kù)函數(shù)接口。函數(shù)CstGetExtRefTable返回用戶外部庫(kù)函數(shù)表s_ExtRefTable的指針。s_ExtRefTable是以NULL結(jié)尾的結(jié)構(gòu)體ExtRef的數(shù)組,其成員結(jié)構(gòu)為:

  typedef struct tagExtRef {

  char szName[32];//外部庫(kù)函數(shù)名稱,通常為大寫

  void(*pFunction)(void);//外部庫(kù)函數(shù)的函數(shù)指針

  } ExtRef;

  其中,szName為在CODESYS編程環(huán)境中調(diào)用此外部庫(kù)函數(shù)時(shí)使用的樁函數(shù)名稱,pFunction為指向運(yùn)行時(shí)中相應(yīng)函數(shù)的函數(shù)指針。任何需要由運(yùn)行時(shí)導(dǎo)出給IEC程序使用的用戶函數(shù)都需要包含在s_ExtRefTable中,C語言算法庫(kù)也由它提供給IEC程序調(diào)用。

  2.4 安全監(jiān)控軟件設(shè)計(jì)

  為了滿足工程機(jī)械的安全性要求,設(shè)計(jì)的ECU采用了雙CPU架構(gòu)。XC2287M為主CPU,負(fù)責(zé)執(zhí)行主要功能;XC866為看門狗CPU,負(fù)責(zé)對(duì)整個(gè)ECU進(jìn)行安全監(jiān)控,并在異常時(shí)關(guān)斷安全關(guān)鍵的外部輸出,確保系統(tǒng)安全。ECU的安全狀態(tài)轉(zhuǎn)換如圖7所示。

007.jpg

  系統(tǒng)上電后,整個(gè)系統(tǒng)處于初始狀態(tài),所有功率級(jí)輸出被關(guān)閉。主CPU嘗試與看門狗CPU建立通信,并下載安全關(guān)鍵的外設(shè)配置到看門狗CPU。成功建立通信后,看門狗CPU開始監(jiān)測(cè)安全關(guān)鍵外設(shè)和主CPU的狀態(tài),整個(gè)系統(tǒng)進(jìn)入正常工作狀態(tài)。隨后主CPU與看門狗CPU周期性的交換狀態(tài)數(shù)據(jù),當(dāng)通信中斷或外設(shè)異常時(shí),主CPU和看門狗CPU都將進(jìn)入安全狀態(tài),并關(guān)閉所有安全關(guān)鍵的功率輸出。

3 結(jié)束語

  設(shè)計(jì)的ECU具有豐富的I/O資源和完善的安全保護(hù)機(jī)制,支持在系統(tǒng)失效時(shí)切換到預(yù)定義的安全輸出狀態(tài),保證異常條件下ECU及外圍設(shè)備的安全。ECU軟件遵循IEC 61131-3標(biāo)準(zhǔn),可以通過CODESYS進(jìn)行用戶編程,支持5種標(biāo)準(zhǔn)PLC編程語言,提供豐富的外部庫(kù)函數(shù)接口。本設(shè)計(jì)具有編程靈活、性能穩(wěn)定、安全可靠、易于擴(kuò)展等諸多優(yōu)點(diǎn),可以廣泛應(yīng)用于各種工程機(jī)械控制系統(tǒng)。設(shè)計(jì)的ECU目前已經(jīng)成功應(yīng)用于包括挖掘機(jī)、推土機(jī)、高空作業(yè)車、大噸位平板車等在內(nèi)的多種工程機(jī)械車型,取得了良好的經(jīng)濟(jì)效益。

參考文獻(xiàn)

  [1] 王國(guó)慶,劉潔,張宗濤,等.工程機(jī)械智能化控制器研究[J].筑路機(jī)械與施工機(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è)計(jì)與實(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單片機(jī)的CAN網(wǎng)關(guān)研究[J].電子技術(shù)應(yīng)用,2009(12):125-127.

基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61303045);江蘇省自然科學(xué)基金項(xiàng)目(BK2012237)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。