999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Overlay動態分配的ECU在線標定實現

2021-05-14 03:57:58劉龍龍
計算機應用與軟件 2021年5期
關鍵詞:功能

王 民 劉龍龍

(上海汽車集團股份有限公司技術中心 上海 201804)

0 引 言

在整車V模型的開發流程中,軟件測試和標定是非常重要的一環,軟件的功能是否滿足需求需要測試和標定進行驗證。當前,軟件標定功能是基于XCP協議,利用不同的標定測量工具(如INCA、CANape等)開展的,通過將不同的參數進行標定驗證,得出軟件最優化的功能,最終將標定好的參數固化到FLASH中,完成整個標定的過程。傳統的標定方式是這樣實現的:在軟件初始化過程中,定義在FLASH中的參數(標定量)會被全部拷貝到RAM中進行重映射,在請求更改標定量時,通過更改RAM中的數據更改FLASH中的數據,進而影響參數的變化。此過程中,要將FLASH中的所有標定量拷貝到RAM中,需要有足夠大的RAM空間,工程上通常這需要定制有超大RAM的開發芯片。當RAM空間小于所要映射的FLASH空間時,由于部分標定量不能被拷貝到RAM中實現映射,進而導致此部分標定量不能被標定[1]。

由于有超大RAM的芯片只在開發階段使用,其使用量不多,價格通常是量產芯片的一百倍左右。同時能做在線標定的這種ECU控制器也非常昂貴,是常規量產控制器的幾十倍,所以如果在量產小RAM芯片上實現通常的標定功能就能顯而易見地節省一大筆開銷。因此,針對RAM空間小于標定FLASH空間的情況下,如何利用有限的RAM資源實現在線標定功能成為本文的研究目的。

1 在線標定實現原理

1.1 Overlay機制功能描述

本文基于英飛凌AURIX芯片的Overlay模塊實現ECU在線標定功能開發[2],其他芯片也具有類似的模塊來實現此功能[3-4]。英飛凌AURIX芯片提供了Data Overlay功能以實現FLASH和RAM之間的映射,其目的是實現更改RAM中的內容達到最終更改FLASH中的內容。在程序設計的時候,所有的標定量都會被定義在FLASH中,實現標定FLASH和RAM之間的映射,使得更改RAM中的數據也能更改映射之后的FLASH中的數據,以達到在線標定的目的,Data Overlay功能示意如圖1所示。

圖1 Data Overlay功能示意

針對Data Overlay功能的實現,AURIX芯片定義了32個Overlay塊,每個Overlay塊可通過如下三個參數實現目標地址(FLASH)和映射地址(RAM)之間的映射。

Overlay塊目標地址:被映射的FLASH起始地址。

Overlay塊大小:被映射的FLASH的大小,大小范圍是32~128 KB。

Overlay塊映射地址:映射到的RAM起始地址。

每個Overlay塊有3個寄存器來實現上述三個參數的配置:Overlay塊目標地址通過寄存器OTAR配置。Overlay塊大小通過寄存器OMASK配置。Overlay塊映射地址通過寄存器RABR來配置,其中:RABR.OMEM用于選擇重映射的RAM類型,共有LMU、DSPR、EMEM和EBU四種RAM可用;RABR.OBASE用于選擇映射的RAM起始地址;RABR.OVEN用于使能或不使能目標地址和映射地址之間的映射。Data Overlay的實現原理如圖2所示。

圖2 Data Overlay實現原理

1.2 ECU在線標定過程

由于XCP標準中已經詳細地描述了在線標定的流程[5],在此只簡單陳述標定的流程。當工程師利用標定工具(Master端,如INCA)與ECU連接的時候,主要包含了如表1所示的指令[6-8]。

表1 連接ECU時的XCP指令集

當Master端RAM空間的checksum數值與ECU端FLASH和RAM空間的checksum數值不一致時,Master會提示是否將Master端的數據下載到ECU RAM端,如果選擇下載,則會執行如表2所示的指令。

表2 ECU Download數據時的XCP指令集

在下載完數據之后,ECU就被切換到RAM PAGE區域,此時定義在FLASH中的標定量就可以被修改。當用戶通過SET_CAL_PAGE ECU to FLASH的時候,ECU就被切換到FLASH PAGE區域,此時定義在FLASH區的標定量就不可以被修改,軟件以定義在FLASH中的標定量原始數值運行。在整個標定過程中,最重要的就是DOWNLOAD和SET_CAL_PAGE指令,本文主要進行的工作就是在ECU接收到Master請求的DOWNLOAD命令時,利用Overlay機制如何動態分配FLASH空間與RAM空間的映射,并將所請求更改的數據拷貝到已實現映射的RAM中去。

2 軟件設計

2.1 內存劃分

由于AURIX芯片支持通過RABR寄存器的OVEN位控制每個Overlay塊單獨的使能和非使能,這就為動態分配Overlay塊以實現FLASH和RAM之間的映射提供了可能。與傳統的標定方式不同的是,基于AURIX的Overlay機制的標定方式不需要FLASH全部與RAM之間進行映射,而只需要對于被標定的變量所在的FLASH進行映射即可,這就需要對FLASH和RAM進行空間上的劃分。由于AURIX芯片只提供了32個Overlay塊可供映射,且可用標定RAM資源只有32 KB,為了最大化地利用RAM資源,在劃分的時候以1 KB為基本單位。例如,標定FLASH空間大小為512 KB,用于標定的RAM資源為32 KB,則需要將FLASH空間劃分為512塊,每塊大小為1 KB,編號為0~511,即FLS0-FLS511,每塊FLASH的起始地址也固定;RAM空間也劃分為32塊,每塊大小也是1 KB,編號為0~31,即RAM0-RAM31,每塊RAM的起始地址也因此固定。這樣就能夠建立起FLASH塊和RAM塊之間的映射網,即FLS0-FLS511可與RAM0-RAM31實現映射,FLS0可以映射到RAM0,FLSn(n不等于0,且小于512)也可以映射到RAM0,但同一時刻,FLS0和FLSn不能同時映射到同一個RAM塊。由于受制于RAM空間大小,最大只能映射32 KB的RAM空間,即FLASH和RAM之間的映射比例為16∶1。FLASH塊和RAM塊之間的映射關系如圖3所示。

圖3 Overlay機制中FLASH和RAM之間的映射關系

2.2 Overlay動態映射實現

Master發送DOWNLOAD指令到ECU,該指令包含了被標定量的地址、被標定量長度、被標定量的新數值信息。ECU解析到該指令時,實現流程如下:

1) 根據被標定量的地址信息,判斷被標定量所在的FLASH塊是否已經與某一RAM塊建立映射關系。若已經實現映射,則執行2);若沒有實現映射,則執行3)。

2) 該FLASH塊已經實現映射,只需要將被標定量的新數據拷貝到映射的RAM空間中即可,此時會出現兩種情況:若被標定量的新數據和FLASH中的數據一致,執行(1);若被標定量的新數據和FLASH中的數據不一致,執行(2)。

(1) 當被標定量的新數據和FLASH中的數據一致時,即軟件在運行時利用FLASH中的數據和RAM中的數據效果是一致的,為提高RAM的利用率,此RAM塊可以解除與FLASH的映射。在此過程中需要將寄存器OTAR設置為0,RABR寄存器的OBASE位設置為0,RABR寄存器的OVEN位設置為0,這樣此RAM塊就解除與FLASH的映射關系,可以為其他FLASH塊的映射提供資源。

(2) 當被標定量的新數據和FLASH中的數據不一致時,則原先的映射關系維持不變,只要將新的標定數據下載到對應的RAM空間中去即可。

3) 被標定量所在的FLASH塊沒有實現與RAM映射,則首先判斷RAM空間是否充足,判斷RAM空間是否充足的方法是掃描32個Overlay塊RABR寄存器的OVEN位是否為1,若所有的RAM塊都已實現映射關系,則表示空間不足,否則表示空間足夠。若空間足夠,則執行(1),若空間不足,則執行(2)。

(1) 當RAM空間充足時,則該FLASH在與RAM映射的時候,按照RAM編號從小到大的順序執行,搜尋到編號為n(n小于32)的RAM未被映射,則需將寄存器OTAR設置為該FLASH塊的起始地址,OMASK設置為代表1 KB大小的0xFE0,RABR寄存器的OBASE位設置為編號為RAMn的起始地址,RABR寄存器的OVEN位設置為1,表示映射已經使能。以上寄存器設置完畢之后,將該FLASH塊中的數據拷貝到映射之后的RAMn空間中,并將新標定數據下載到RAMn空間中的所對應的偏移地址中,這樣軟件在運行的時候利用的是RAMn中的新數據。

(2) 當RAM空間不足時,則不能使能新的映射關系,此時應該返回拒絕命令給Master,以此通知標定人員該標定請求被拒絕。在出現標定拒絕時,有兩種方案可以進行:第一種是將原先不需要的標定量更改回默認數值,根據1)中的(1)可知,此時可以騰出RAM空間為下一次新的標定請求做準備;第二種方案是將所有已經映射的標定量固化到FLASH中,這樣所有的RAM空間都會騰出,為下一次新的標定請求做準備。

上述整個軟件實現的流程如圖4所示。

圖4 基于Overlay動態分配的在線標定流程

3 測試驗證

為了驗證該軟件是否能夠在RAM空間小于FLASK空間的情況下實現在線標定功能,測試代碼中增加66個標定變量CAL_0-CAL_65和66個觀測變量MEA_0-MEA_65,MEA_0-MEA_65分別被相應的標定變量賦值,66個標定量在編譯時被分配到33個不同的FLASH塊中,其中CAL_0和CAL_1被分配到FLASH0,CAL_2和CAL_3被分配到FLASH1,以此類推。通過在線標定CAL_0-CAL_65為不同的數值,觀測變量MEA_0-MEA_65是否為相應的數值。測試結果如下:

1) 更改標定變量CAL_0為1,觀測變量MEA_0也為1,并且此時只有一個Overlay塊實現FLASH0映射到RAM0,其他Overlay塊不會被設置,如圖5所示。

圖5 只有一個Overlay塊使能

2) 更改標定變量CAL_1為2,觀測變量MEA_1也為2,由于CAL_1和CAL_0被分配在同一個FLASH空間中,因此此時還是只有一個Overlay塊使能,其他Overlay塊不會被設置。

3) 更改標定量CAL_2-CAL_63的數值,觀測變量MEA_2-MEA_63也會隨之更改,此時所有的Overlay塊實現了RAM和FLASH的映射。

4) 更改標定量CAL_64的數值,由于無RAM資源可用,此時會拒絕標定人員的請求。

5) 更改標定變量CAL_0和CAL_1為默認數值,觀測變量MEA_0和MEA_1也回到默認數值,此時FLASH0所映射的RAM0資源已經釋放。再次請求更改標定量CAL_64的數值為65,則觀測變量MEA_64也變為65,標定請求實現,如圖6所示。

圖6 Overlay塊釋放并被重新使能

綜上測試結果,滿足設計要求,即在FLASH空間大于RAM空間的情況下,能夠實現標定量的標定請求,而在標定RAM空間不足的情況下,可提示標定人員釋放不需要的標定RAM空間以為后續標定請求做準備。

4 結 語

針對傳統的標定實現方式,本文分析了其利弊,提出了基于Overlay動態分配管理的在線標定解決方案,其在標定FLASH需求大于RAM空間的情況下,仍能實現所請求的標定變量的標定功能,而不需要與FLASH空間等大的RAM資源,這在開發階段對于節省控制器的成本是非常有利的。

同時,在FLASH和RAM空間比例較大的時候,極端情況下如果標定人員的標定請求非常大,可能會頻繁出現標定量不可被標定的情況。針對這種情況,可有兩種方案解決:一種方案是將使用頻率高的標定量集中定義在相同的幾個FLASH空間中,這樣在映射的時候,就不會占用新的RAM空間,保證每一個映射的RAM區域利用率非常高;另一種方案是增加其他可用的RAM映射區域,如每個核的DSPPR存儲區域,在軟件集成完畢之后,整個軟件運行的RAM使用情況已經明確,可以將暫未利用的RAM區域用來做映射,這也是后期研究的目標。

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 色偷偷一区| 在线播放国产99re| 欧美午夜在线观看| 美女扒开下面流白浆在线试听| swag国产精品| 欧美一道本| 国产精品成人AⅤ在线一二三四| 精品自拍视频在线观看| 青青草91视频| 日本亚洲欧美在线| 97久久免费视频| 国产特级毛片| 国产免费a级片| 欧美中出一区二区| 成人第一页| 日a本亚洲中文在线观看| 澳门av无码| 国产精品熟女亚洲AV麻豆| 亚洲最猛黑人xxxx黑人猛交 | 啪啪永久免费av| 久久精品国产精品国产一区| 亚洲天堂免费观看| 久久99精品国产麻豆宅宅| 亚洲综合色吧| 国模沟沟一区二区三区| 丝袜久久剧情精品国产| 亚洲精品欧美日本中文字幕| 91久久国产热精品免费| 亚洲福利视频一区二区| 99热这里只有免费国产精品| 国产精品午夜福利麻豆| 欧美啪啪精品| 99爱在线| 国产成人啪视频一区二区三区| 国产在线精品美女观看| 国产系列在线| 亚洲国产清纯| 亚洲日本中文综合在线| 中文纯内无码H| 在线观看国产精品日本不卡网| 波多野结衣一区二区三区四区| 亚洲欧美另类色图| 在线无码私拍| 国产成人综合亚洲欧美在| a级毛片免费网站| 国产欧美日韩精品第二区| 欧美翘臀一区二区三区| 国产综合在线观看视频| 中文字幕亚洲另类天堂| 无码在线激情片| 亚洲V日韩V无码一区二区| 久久窝窝国产精品午夜看片| 国产主播福利在线观看| 欧美亚洲香蕉| 国产亚洲美日韩AV中文字幕无码成人 | 真实国产精品vr专区| 国产成人亚洲毛片| 啪啪免费视频一区二区| 久久精品免费国产大片| 免费a在线观看播放| 亚洲婷婷丁香| 国产午夜看片| 亚洲国产清纯| 亚洲资源站av无码网址| 一级毛片免费不卡在线| 久久精品人人做人人综合试看| 亚洲最猛黑人xxxx黑人猛交| 国产在线观看99| 中文字幕色在线| 成色7777精品在线| 欧美一级大片在线观看| 成年女人a毛片免费视频| 一本色道久久88亚洲综合| 91久久精品国产| 91精品国产丝袜| 成人亚洲视频| 97se亚洲综合| 日本在线亚洲| 国产av剧情无码精品色午夜| 国产午夜一级淫片| 天天色天天综合网| 欧美国产日韩在线观看|