張宏,李陽春,李洪雷(華晨汽車工程研究院,遼寧 沈陽 110141)
?
基于控制器刷寫效率的軟件開發方法
張宏,李陽春,李洪雷
(華晨汽車工程研究院,遼寧 沈陽 110141)
摘要:隨著汽車市場對配置要求更新頻率的增加,對整車廠而言,與配置和功能密切相關的控制器的更新也要提高效率來應對市場變化。針對僅需要更新控制器軟件就可以滿足配置或功能變化的情況,控制器刷寫功能來升級功能是最直接有效的方式,但是由于軟件的字節數較多,加之需要升級的控制器數量多,故刷寫控制器需要較長的時間。生產上,其會影響生產線節拍和生產效率;而對于經銷商,為客戶升級車輛配置,花費時間長易引起客戶的抱怨以及維修人員的調配。故如何提高刷寫控制器的效率是整車廠需要解決的問題。文章提出一種軟件開發方法,將控制器的軟件分塊開發,每個模塊都有各自的功能,故功能更新時,只需要刷寫有需要更新的軟件模塊即可,無需刷寫所有軟件。這樣,在保證控制器客戶功能實現的同時,提高了控制器在執行診斷刷寫功能時的效率。
關鍵詞:診斷刷寫;配置升級;軟件開發;提高效率
10.16638/j.cnki.1671-7988.2016.05.033
CLC NO.: U463.3Document Code: AArticle ID: 1671-7988 (2016)05-125-03
隨著汽車市場對功能的多元化要求越來越高,對配置升級的需求越來越頻繁,整車廠為了適應變化滿足需求,對與配置功能密切相關的控制器升級方式也層出不窮。針對只需要更新控制器軟件即可以實現配置功能升級的情況,基于診斷功能刷寫控制器的應用得到整車廠的青睞,無論是在生產線,還是在經銷商處。但是,由于功能復雜和多元,控制器的軟件代碼字節數也增加很多,在加之有時需要刷寫升級的控制器較多,這就很影響在線刷寫時候的效率,刷寫的軟件字節數越多,所需要的時間越長,其對生產線上會影響生產節拍,經銷商處則易引起客戶抱怨,所以刷寫效率是整車廠急需解決的問題。
本文針對通過刷寫控制器軟件來升級配置功能情況,提出一種控制器模塊化開發方法,目的是滿足市場對配置功能升級需求的同時,降低刷寫控制器軟件所需要的時間以改善效率,以及促進產品設計開發的平臺化發展。
多數整車的配置功能由控制器的軟件實現的,為了節省零部件開發和管理成本,整車廠開發控制器時硬件上盡量做到平臺化,用軟件差異實現不同的配置功能。故針對配置功能升級的情況,只需升級控制器軟件即可實現。但由于控制器軟件字節數多,在加之可能升級的控制器數目增加,故刷寫軟件的效率則顯得尤為重要。
針對效率提升,影響刷寫控制器效率的主要原因是需要刷寫的每個控制器的軟件字節數多,即便升級的功能很簡單,也需要刷寫控制器的整個軟件,尤其是底層和驅動軟件,功能升級幾乎是不涉及更改,但是卻要重新刷寫,這都影響刷寫字節數和效率。故減小刷寫軟件字節數是最有效的方式。
本文提出控制器軟件模塊化開發方法,就是基于配置和功能,將控制器的軟件分模塊,即分類,開發時按照所對應的模塊進行開發,并且做好每個軟件模塊接口定義從而實現功能。這樣開發的好處在于日后升級控制器時,根據不同升級配置的需求,僅更新對應模塊的程序即可,刷寫時也只需要刷寫該模塊的程序,而無需更新控制器所有程序,以達到減少需要刷寫軟件字節數從而提高刷寫效率的目的。下面以組合儀表為例,詳細闡述該軟件開發和刷寫方式。
2.1軟件模塊化
組合儀表作為行車電腦,需要集成的信息很多,顯示屏圖片信息,數值信息,設置信息等,故其軟件開發很具有代表性。根據整車功能配置需求定義,可以將軟件開發分為如圖1模塊。

圖1 軟件模塊劃分
1)System block:用于軟件底層與控制器硬件接口。
2)Calibration block:有些功能需要組合儀表參與學習,標定。該軟件模塊中可以集成該方面的參數,該模塊軟件組合儀表應用不多,例如空調控制器,動力方面的控制器的應用較多。
3)Basic block:主要集成網絡層等信息數據傳遞的相關參數。
4)HMI block:主要是集成人機交互界面的信息。
5)Application block:主要是集成控制器功能應用信息。
由于模塊中的Application block中集成了組合儀表的多數功能,如果功能區別明顯,也可以劃分子模塊進行開發。
根據車型配置信息,將與組合儀表相關的功能逐個分解到各個軟件模塊中進行開發,并且根據接口定義開發每個block之間的軟件,做到各個模塊之間完美調用以實現功能。
2.2具體實現
圖2舉例說明一個功能的實現如何將對應的軟件程序進行模塊劃分。

圖2 軟件模塊劃分實例
基于上圖實例,如果日后升級車輛配置,例如增加前雷達配置,故更新的內容是屏幕切換雷達圖,波紋狀態指示等信息,這樣至于基礎軟件或者底層驅動根本就無缺更新,這樣只需要刷寫,HMI和application block即可。以此方式,來減少更新軟件需要刷寫字節的數量來提高效率。如果application block也有子模塊,這樣只需要刷寫子模塊軟件即可,如此刷寫效率會進一步提高。
基于以上理論基礎,進行了仿真分析,其思路是定義一些簡單功能,將控制器的軟件進行模塊劃分式開發,假設需要更新配置,則刷寫對應的block驗證是否有效。

圖3 控制器軟件模塊劃分
圖3為基于配置信息,將控制器的功能代碼分解成個逐個模塊,當然刷寫時候必然要加載驅動,例如擦除,檢查刷寫數據的可靠性等。
圖4和圖5為對控制器的軟件模塊刷寫的刷寫代碼,目的是驗證基于該開發方式的控制器在功能升級時,能否實現刷寫成功。
將需要刷寫的程序模塊,放在指定路徑下,刷寫時加載該路徑后,等待控制器是否能被刷寫成功,由圖6得,刷寫成功。

圖4 刷寫控制器代碼

圖5 flashing程序

圖6 刷寫控制器結果
基于以上分析,可知本文提出控制器軟件模塊化開發來提高控制器軟件刷寫效率是可以實現的。開發階段將車輛配置與控制器軟件功能對應后,逐個將每個功能分解到各自的軟件模塊中進行開發,且做到每個模塊的接口定義從而實現控制器的功能。故在產品更新或者功能升級時,只需將與需要升級功能的軟件升級即可,則務必升級全部軟件,以此提高控制器軟件刷寫效率和產品的平臺化開發。
參考文獻
[1]陸葉.ISO Bootloader控制器安全高效實現程序刷寫.中國集成電路,2011,20,5,79-82.
[2]王玲利,孟晨興.基于CAN總線的車載控制器標定系統設計.汽車與配件,2014,43,39-40.
ECU software development based on Efficient Flashing
Zhang Hong, Li Yangchun, Li Honglei
( Brilliance auto engineering research institute, Liaoning Shenyang 110141 )
Abstract:As increasing requirement and variation of vehicle configuration from market, the efficiency of ECU updating is necessary for OEM to handle with challenge from market. For situation of only flashing software to update function, not change hardware of ECU, Flashing is effective for ECU which is relevant with function updated. But more function of ECU, more much software is needed to be developed, additionally more than one ECU need to be flashed, much time costs. It have negative impact on both timing of production line and customer complain or mechanic adjustment for dealer shop. It is necessary and essential to improve efficiency of flashing job. A new software development way is provided in this paper. ECU function software is divided into some block for development based on function distribution. When vehicle configuration is updated, the software block which is relevant with updated function only is flashed, not all software flashed. It can ensure to improve flashing efficiency of ECU and implement updated function well.
Keywords:Flashing; Function update; Software development; Improve efficiency
中圖分類號:U468.3
文獻標識碼:A文章編碼:1671-7988 (2016)05-125-03
作者簡介:張宏,就職于華晨汽車工程研究院。