李巖,張曉謙,孫忠剛,劉超
(中國第一汽車股份有限公司技術(shù)中心汽車電子部,吉林長春130011)
車用電子控制器分頁標定軟件技術(shù)研究與實現(xiàn)
李巖,張曉謙,孫忠剛,劉超
(中國第一汽車股份有限公司技術(shù)中心汽車電子部,吉林長春130011)
近年來,車用電子控制器在開發(fā)階段需要調(diào)試和優(yōu)化的標定量大量增加。由于控制算法和標定數(shù)據(jù)都需占用大量的存儲空間,標定軟件在設(shè)計時不僅要滿足數(shù)據(jù)測量、在線標定、數(shù)據(jù)下載等基本功能,還要兼顧控制器芯片的RAM資源情況。根據(jù)XCP協(xié)議規(guī)范,在MPC5644硬件平臺上設(shè)計了基于CAN總線的分頁標定軟件,具有較好的通用性和可靠性。該技術(shù)通過內(nèi)存管理單元對標定區(qū)的地址進行切換,有效解決了標定大量數(shù)據(jù)時單片機RAM資源緊缺的問題,同時優(yōu)化了數(shù)據(jù)下載功能。該標定軟件目前已應用于某汽車公司研發(fā)的產(chǎn)品ECU上,取得了良好的效果。
電子控制器;分頁標定;XCP協(xié)議
標定軟件是車用電子控制器平臺軟件的重要組成部分,在產(chǎn)品開發(fā)階段,應用軟件設(shè)計人員通過該軟件來動態(tài)修改和優(yōu)化控制器內(nèi)部的參數(shù)。隨著電控系統(tǒng)控制邏輯復雜度和控制變量數(shù)量的增加,控制器內(nèi)部的RAM資源難以滿足大量標定數(shù)據(jù)進行在線標定的需求。出于成本和性能的考慮,作者采用分頁標定技術(shù),利用一塊標定RAM區(qū)支持多塊標定ROM區(qū)域的標定,同時對分頁后的標定數(shù)據(jù)刷寫功能做了優(yōu)化。該方法通過單片機本身的地址切換機制實現(xiàn),支持在臺架和實車的環(huán)境下進行標定工作,對于大量數(shù)據(jù)的標定無須增加外擴RAM,節(jié)省了控制器的開發(fā)成本。
標定模塊工作的系統(tǒng)環(huán)境如圖1所示,上位機工具通過ECU描述文件來獲得ECU內(nèi)部變量的地址、長度、數(shù)據(jù)類型等信息,再通過CAN總線與ECU控制器進行命令和數(shù)據(jù)傳輸,從而實現(xiàn)對控制器變量測量和在線標定等功能[1]。
圖1 標定模塊的系統(tǒng)環(huán)境
在車用電子控制器開發(fā)的過程中,除了控制算法本身復雜度逐步提高以外,某些控制器對數(shù)據(jù)融合、功能安全的要求也越來越高,需要觀測的變量數(shù)大幅增加。與此同時,電子控制器的開發(fā)對于觀測數(shù)據(jù)的采集速度也提出了更高的要求,而XCP協(xié)議的通用性使得它具備針對其他通信速率更快的總線的可移植性,比如FlexRay、以太網(wǎng)等[2]。因此,基于該協(xié)議的研究和軟件實現(xiàn)不僅可以滿足當前ECU的產(chǎn)品開發(fā)需求,對于未來高速標定技術(shù)的應用也有著重要意義。
XCP協(xié)議是目前標定軟件中常用的規(guī)范,它最早是由自動化和測量系統(tǒng)標準化協(xié)會(ASAM)提出的。為了兼顧標定的速度和標定軟件的可重用性,XCP協(xié)議被設(shè)計成協(xié)議層和傳輸層完全獨立開,XCP中的X就代表該協(xié)議所支持的總線。這使得XCP成為一種更為通用的標定和測量協(xié)議,因為它的實現(xiàn)可以獨立于具體的物理層傳輸。根據(jù)XCP協(xié)議層規(guī)范,協(xié)議中所有通信的數(shù)據(jù)包都叫作XCP傳輸包,在標定的過程中,主從節(jié)點所發(fā)送和接收的傳輸包分為兩種:命令傳輸包(Command Transfer Object,CTO)和同步數(shù)據(jù)包(Data Transfer Object,DTO)[3]。XCP的報文格式(如圖2所示)由報文頭、數(shù)據(jù)包和XCP報文尾三部分組成,這種結(jié)構(gòu)適用于不同網(wǎng)絡(luò)上的數(shù)據(jù)傳輸,保證消息傳遞不受物理層的影響。
圖2 XCP傳輸包格式
2.1 標定模塊軟件架構(gòu)
采用32位單片機MPC564A80作為控制器硬件平臺,該型號芯片有192 kB RAM資源和4 MB Flash資源,其中預留64 kB RAM作為在線標定使用、128 kB ROM作為標定數(shù)據(jù)的存儲區(qū)域。為了提高標定模塊程序的復用性,整個系統(tǒng)軟件的實現(xiàn)主要由應用程序?qū)?、XCP協(xié)議實現(xiàn)層、CAN傳輸層和底層模塊驅(qū)動幾部分組成。APP層實現(xiàn)應用的控制策略,XCP協(xié)議實現(xiàn)層包括初始化任務(wù)、數(shù)據(jù)采集周期任務(wù)、錯誤處理、XCP標準協(xié)議棧實現(xiàn)、通信服務(wù)子程序?qū)崿F(xiàn)和用于分頁標定的頁切換模塊。由于傳輸層和協(xié)議層的分離,使得XCP協(xié)議可以應用于不同的總線,所以將協(xié)議棧與通信層相關(guān)的接口提取出來,方便在其他芯片上進行移植。從平臺化的角度考慮,底層FLASH驅(qū)動和CAN驅(qū)動的實現(xiàn)均采用標準的AUTOSAR接口,增加了標定組件這部分代碼的可重用性,為將來標定軟件應用在其他控制器提供了方便。
2.2 在線分頁標定
為了在可靠性、經(jīng)濟性等方面提高控制器的性能,開發(fā)人員需要在臺架和實車環(huán)境中實時地調(diào)整和修正ECU內(nèi)部的控制變量。在軟件設(shè)計上,這些變量被存放在Flash上的固定區(qū)域內(nèi),程序運行時,將這部分數(shù)據(jù)的內(nèi)容拷貝到相應的RAM區(qū)域,再利用芯片的MMU(內(nèi)存管理單元)模塊將這些需要實時修改的控制變量進行地址切換,從而實現(xiàn)了動態(tài)修改標定量的功能。對ECU系統(tǒng)的標定分在線標定和離線標定[4]。文中提出的軟件實現(xiàn)方式支持在線和離線兩種標定模式,開發(fā)人員可以在上位機工具上預先修改后標定數(shù)據(jù),這些數(shù)值和地址信息保存在標定工具內(nèi),重新建立連接后,可以將標定數(shù)據(jù)更新到ECU的鏡像區(qū)域內(nèi),或者將保存好的二進制數(shù)據(jù)文件下載到Flash區(qū)域。
利用64 kB的RAM區(qū)域來標定128 kB的數(shù)據(jù),首先定義兩個標定ROM區(qū)域,對標定數(shù)據(jù)分別進行定位,定位的方法如下:
#pragma ghs section rodata = ".Cal_Flash_Rom1"
const volatile uint8 cal_download = 1;
#pragma ghs section rodata = default
#pragma ghs section rodata= ".Cal_Flash_Rom2"
const volatile uint8 cal_download2 = 0;
#pragma ghs section rodata = default
每個分頁標定ROM區(qū)大小為64 kB,通過對MMU的操作進行標定區(qū)地址的映射[5]。文中利用MMU來實現(xiàn)標定區(qū)的分頁功能。MPC5644擁有16個TLB(Translation Lookaside Buffer)地址入口,支持從1 kB到4 GB的地址空間映射。通過對MMU編程來實現(xiàn)從虛擬地址(Virtual Address)向物理地址(Real Address)的轉(zhuǎn)化,MMU虛擬地址到物理地址的映射過程如圖3所示。TLB的作用是保存虛擬頁和物理頁之間的對應關(guān)系,當標定軟件做頁切換操作時,實際上是芯片MMU模塊更新了TLB的記錄,包括地址信息、分頁區(qū)大小等信息,使得單片機內(nèi)存中虛擬地址和實際地址的映射關(guān)系發(fā)生了改變。
同一時刻,只有一個分頁ROM區(qū)可以映射到標定RAM區(qū),所以分布在不同分頁區(qū)的標定量不允許被同時標定,分頁標定的切換機制如圖4所示。調(diào)和有限的MCU內(nèi)部RAM資源和逐步增加的系統(tǒng)標定數(shù)據(jù)之間的矛盾,用一塊RAM完成兩塊以上ROM數(shù)據(jù)的標定,節(jié)省MCU外擴RAM的投入。文中沒有依賴XCP命令包中的相關(guān)頁切換命令來實現(xiàn),而是根據(jù)所選芯片的特點,將標定頁切換的具體切換過程融合到XCP的標準命令包中,將頁切換開關(guān)做成一個標定量,通過修改標定開關(guān)來切換不同的標定區(qū)域。操作過程與單頁標定的操作過程一致,方便程序開發(fā)人員使用,同時進一步提高了XCP模塊的可移植性和對上位機工具的兼容性。
圖3 虛擬地址與物理地址映射關(guān)系
圖4 標定分頁區(qū)域?qū)P(guān)系
2.3 數(shù)據(jù)觀測和下載
對于數(shù)據(jù)采集功能,此軟件支持靜態(tài)DAQ采集和動態(tài)DAQ采集兩種方式[6],能夠在不同周期任務(wù)中實現(xiàn)數(shù)據(jù)傳輸。對于標定數(shù)據(jù)下載,該模塊除了支持標準的XCP協(xié)議外,還具備掉電下載功能,即通過下載數(shù)據(jù)開關(guān)實現(xiàn)當前標定RAM內(nèi)數(shù)據(jù)的刷寫,兩種數(shù)據(jù)刷寫方式如圖5所示。
第一種方式通過上位機工具和ECU交互,基于PROGRAM_START、SET_MTA、PROGRAM_CLEAR、PROGRAM、PROGRAM_NEXT等XCP協(xié)議命令進行數(shù)據(jù)下載,需要將標定RAM區(qū)域的數(shù)據(jù)保存到上位機,再進行下載。第二種方式通過標定量開關(guān),標定軟件將當前的標定RAM區(qū)數(shù)據(jù)下載到對應的分頁ROM區(qū)域中,下載過程沒有數(shù)據(jù)交互,也不需要將標定數(shù)據(jù)保存到上位機,簡化了操作步驟,同時節(jié)省了數(shù)據(jù)下載時間。
圖5 標定數(shù)據(jù)刷寫
通過上述研究,提出的ECU端標定軟件實現(xiàn)方案具備了數(shù)據(jù)測量、分頁標定等功能,達到了設(shè)計目的,實際使用的效果滿足預期的要求。除實現(xiàn)了標準的XCP-On-CAN協(xié)議外,還具備以下特點:
占用芯片資源少。采用分頁技術(shù),將128 kB的標定數(shù)據(jù)映射到64 kB RAM區(qū)域,通過分頁機制實現(xiàn)了對全部數(shù)據(jù)進行在線修改,節(jié)省了單片機RAM資源。
通用性強。該標定軟件采用國際通用的XCP協(xié)議實現(xiàn)了數(shù)據(jù)測量、在線標定和數(shù)據(jù)下載等功能。軟件架構(gòu)層次清晰,可在不同芯片平臺上進行移植。標定分頁功能通過一個標定量作為切換開關(guān),不依賴上位機工具的選取。
可靠性高。對整個標定系統(tǒng)在實驗室、臺架和實車環(huán)境下進行測試,并且已在某汽車公司開發(fā)的電控系統(tǒng)中得到應用。
【1】邵貝貝.單片機嵌入式應用的在線開發(fā)方法[M].北京:清華大學出版社,2004:51-90.
【2】SCHUERMANS R,ZAISER R,HEPPERLE F,et al.XCP-Part2:Protocol Layer Specification-1.0[M].Association for Standardization of Automation and Measuring Systems,2003.
【3】SCHUERMANS R,ZAISER R,HEPPERLE F,et al.XCP-Part3:Transport Layer Specification XCP on CAN-1.0[M].Association for Standardization of Automation and Measuring Systems,2003.
【4】熊婉儀,吳宏志,朱元.基于CAN總線的XCP標定協(xié)議研究[J].信息通信,2015(9):19-20. XIONG W Y,WU H Z,ZHU Y.Research of Based on CAN Bus XCP Calibration Protocol[J].Information & Communications,2015(9):19-20.
【5】程春桃.XCP協(xié)議在電控柴油機標定系統(tǒng)中的應用研究[D].西安:長安大學,2011.
【6】肖亞迪,肖兵.基于XCP協(xié)議的ECU標定系統(tǒng)開發(fā)[J].計算機測量與控制,2015,23(2):600-603. XIAO Y D,XIAO B.Development of ECU Calibration System Based on XCP Protocol[J].Computer Measurement & Control,2015,23(2):600-603.
Research and Implementation of Paging Calibration Software Technology on Automotive Electronic Controller
LI Yan, ZHANG Xiaoqian, SUN Zhonggang, LIU Chao
(Research & Development Center, FAW Group Corporation,Changchun Jilin 130011,China)
In recent years, values required debugging and optimization in development phase for automotive electronic controller are increased more and more. Since the control algorithm and calibrated data are required to take up a lot of storage space, not only calibration software should have the data measuring, on-line calibration, data download and other basic functions, but also RAM resources of the controller should be considered. The paging calibration software was designed on the MPC5644 platform, which had good universality and reliability. The calibration area was switched through the memory management unit. So RAM resources shortage problem when a large number of data were needed to calibrate was solved, at the same time, the data download function was optimized. The calibration software has been applied to a product ECU of some company, and good results have be achieved.
Electronic controller; Paging calibration; XCP protocol
2016-08-29
李巖(1986—),男,工程師,從事嵌入式軟件開發(fā)工作。E-mail:liyan6@rdc.faw.com.cn。
10.19466/j.cnki.1674-1986.2017.02.006
U463.6
B
1674-1986(2017)02-025-03