亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LIN總線ECU遠(yuǎn)程升級系統(tǒng)的設(shè)計與實(shí)現(xiàn)

        2016-10-25 07:55:04朱志斌張祥
        廣東通信技術(shù) 2016年9期
        關(guān)鍵詞:配置文件下位上位

        [朱志斌 張祥]

        基于LIN總線ECU遠(yuǎn)程升級系統(tǒng)的設(shè)計與實(shí)現(xiàn)

        [朱志斌 張祥]

        LIN總線 MC9S12G128 ISO15765-2 ISO14229-1 兩級Bootloader

        朱志斌

        重慶郵電大學(xué)光通信與網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,重慶集誠汽車電子有限責(zé)任公司,碩士研究生,主研方向?yàn)槠囯娮印?/p>

        張祥

        重慶集誠汽車電子有限責(zé)任公司,軟件工程師,主研方向?yàn)槠囯娮印?/p>

        引言

        隨著汽車電子行業(yè)的不斷發(fā)展,LIN總線憑借著其低成本性、配置靈活性、良好的工藝性在汽車網(wǎng)絡(luò)中占據(jù)著不可替代的地位[1]。然而,當(dāng)對LIN總線上的汽車電子控制單元ECU(Electronic Control Unit)進(jìn)行固件升級時將會遇到很大阻礙--相關(guān)人員需要將待升級的ECU從汽車上拆卸下來然后打開ECU的保護(hù)殼,用專門的燒錄器把更新好的代碼燒寫進(jìn)去,最后再把ECU裝回車上。這種方法不僅麻煩而且還很容易造成硬件的損壞。因此,設(shè)計出一種通過LIN總線對ECU進(jìn)行在線升級的系統(tǒng)顯得尤為必要。本方案下位機(jī)的bootloader亦可稱為兩級bootloader。第一級bootloader主要實(shí)現(xiàn)初始化堆棧指針、分配內(nèi)存映射、初始化外圍硬件設(shè)備、判斷是否請求升級等功能,該部分程序從flash中加載運(yùn)行(Load Flash And Execute,LFAE)[2]。第二級bootloader主要實(shí)現(xiàn)程序的下載功能,該部分程序直接從RAM中加載運(yùn)行(Load RAM And Execute,LRAE)[3]。只有當(dāng)應(yīng)用程序請求升級時LRAE才會通過上位機(jī)下載至下位機(jī)的RAM中執(zhí)行,由于LRAE不常駐在程序中所以在一定程度上增強(qiáng)了程序的安全性。

        1 系統(tǒng)升級原理

        遠(yuǎn)程系統(tǒng)升級架構(gòu)如圖1。

        圖1 系統(tǒng)架構(gòu)圖

        LIN網(wǎng)絡(luò)的節(jié)點(diǎn)分為主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn)。文中主要針對LIN網(wǎng)絡(luò)中的主機(jī)節(jié)點(diǎn)進(jìn)行升級。采用硬件觸發(fā)機(jī)制使網(wǎng)絡(luò)中的主機(jī)進(jìn)入一級Bootloader,此時待升級的主機(jī)轉(zhuǎn)化為從機(jī)。上位機(jī)通過CANOE連接到汽車LIN網(wǎng)絡(luò)中,在升級的過程中上位機(jī)臨時充當(dāng)LIN主機(jī)的角色,通過調(diào)度機(jī)制分別將二級Bootloader和待升級的程序下載至待升級的ECU中,從而完成遠(yuǎn)程升級。

        2 Bootloader的設(shè)計與實(shí)現(xiàn)

        Bootloader又稱引導(dǎo)加載程序,是單片機(jī)通電后首先獲得CPU控制權(quán)的程序,它主要實(shí)現(xiàn)兩個功能[8]:

        (1)初始化堆棧指針、分配內(nèi)存映射、初始化外圍硬件設(shè)備等;

        (2)對flash中已存在的程序進(jìn)行升級;

        在汽車LIN網(wǎng)絡(luò)中,擁有一套在線升級系統(tǒng)不僅可以減少對固件的損壞而且還可以極大提高汽車ECU開發(fā)效率[9]。本方案的下位機(jī)實(shí)現(xiàn)依托于飛思卡爾MC9S12G128實(shí)現(xiàn),G128 擁有128K flash 、8K RAM。其空間劃分如圖2。

        圖2 S12G內(nèi)存劃分

        S12G 系列微控制器允許在重新編程過程中不需要額外的高壓源[10]。LARE中Falsh 擦寫函數(shù)的工作頻率是從總線頻率獲得的,其大小應(yīng)在在0.8M-1M之間。通過設(shè)置FDIVLD寄存器獲得工作頻率[10]。S12G系列有一個內(nèi)存控制器,該內(nèi)存控制器可以執(zhí)行有效的flash命令。Flash的相關(guān)命令通過兩個寄存器(FCCOB和FCCOBIX)的配合實(shí)現(xiàn)[10]。由于擦寫函數(shù)用到的是全局地址,所以局部地址要先轉(zhuǎn)換成全局地址才可以直接被擦寫函數(shù)使用而且必須在擦除之后才能夠?qū)懭耄駝t會造成程序跑飛。在擦除寫入的過程是不允許被其他程序打斷的,所以在擦寫函數(shù)執(zhí)行時盡量關(guān)閉所有中斷和看門狗。

        S12G系列微控制器的中斷向量表默認(rèn)放在0x0F頁的0xff80-0xffff處,復(fù)位向量在0xfffe-0xffff處。由于S12G系列微控制器有一個中斷向量基址寄存器IVBR,所以用戶可以通過修改IVBR可以順利實(shí)現(xiàn)Bootloader與APP使用各自的中斷向量而互不干擾。需要注意的地方是APP的所有用到的中斷向量都必須放在未分頁區(qū),而Bootloader使用默認(rèn)的中斷向量表即可。

        本升級系統(tǒng)可分為三個時期:編程前期、編程中期、編程后期。根據(jù)ISO14229-1下位機(jī)有三種運(yùn)行模式:默認(rèn)模式、編程模式、擴(kuò)展模式。三種模式之間的切換關(guān)系如圖3。

        圖3 狀態(tài)轉(zhuǎn)移圖

        編程前期主要實(shí)現(xiàn)下位機(jī)進(jìn)入編程模式的功能,在進(jìn)入編程模式之前下位機(jī)首先要驗(yàn)證上位機(jī)的合法性,上位機(jī)會根據(jù)配置文件的步驟發(fā)送0x27 0x01 進(jìn)行請求安全認(rèn)證,下位機(jī)接收到該信息返回四個隨機(jī)數(shù)sand[4],上位機(jī)收到隨機(jī)數(shù)后根據(jù)雙方統(tǒng)一的加密算法f(sand)進(jìn)行加密,并把結(jié)果通過0x27 0x02 result1 result2 result3 result4 返回給下位機(jī),下位機(jī)進(jìn)行同樣加密并對比兩個加密結(jié)果一致則可以進(jìn)入編程模式,不一致則拒絕進(jìn)入。

        編程中期上位機(jī)主要通過0x34,0x36,0x37,0x31四項(xiàng)服務(wù)進(jìn)行LARE與應(yīng)用程序數(shù)據(jù)的下載,更多詳細(xì)的介紹請讀者參考文獻(xiàn)[7] 。

        編程后期主要任務(wù)是校驗(yàn)下載數(shù)據(jù)的正確性以及復(fù)位下位機(jī)。進(jìn)行程序校驗(yàn)時,上位機(jī)會把發(fā)送的所有數(shù)據(jù)通過雙方統(tǒng)一的算法fcrc(data)獲得校驗(yàn)值CRC,通過0x31 01 服務(wù)把CRC 傳送給下位機(jī),下位機(jī)讀取寫入的所有數(shù)據(jù)進(jìn)行相同算法并對比CRC,結(jié)果一致回復(fù)正響應(yīng)并寫入應(yīng)用程序有效標(biāo)志,升級成功,否則回復(fù)負(fù)響應(yīng)升級失敗。

        下位機(jī)Bootloader分為兩種模式:LARE和LFAE。兩種模式不可同時運(yùn)行[2][3]。LFAE主要實(shí)現(xiàn)初始化外圍設(shè)備、堆棧大小、RAM以及判斷請求升級標(biāo)志是否有效和應(yīng)用程序是否有效的功能。其軟件流程圖如圖4。

        圖4 LFAE流程

        LARE主要實(shí)現(xiàn)程序的擦除寫入、校驗(yàn)數(shù)據(jù)、寫入應(yīng)用程序有效標(biāo)志和復(fù)位下位機(jī)。升級結(jié)束后LARE命令下位機(jī)復(fù)位,RAM區(qū)被重新初始化從而會清除LARE程序,因此LARE不會常駐在程序中從而在一定程度上保證了flash中程序的安全性。LARE軟件流程圖如圖5。

        3 上位機(jī)實(shí)現(xiàn)

        圖5 LARE程序流程

        本方案上位機(jī)是用vs2010 MFC實(shí)現(xiàn)。其應(yīng)用層是在ISO14229-1的架構(gòu)之上結(jié)合自己的需要設(shè)計出診斷流程上位機(jī)整體實(shí)現(xiàn)架構(gòu)如圖6。

        圖6 上位機(jī)架構(gòu)表

        為了提高該系統(tǒng)的通用性,上位機(jī)又增加了讀取配置文件的功能,配置文件格式如圖7。

        圖7 配置文件截圖

        系統(tǒng)升級時上位機(jī)首先讀取配置文件中[init]中的內(nèi)容從而完成上位機(jī)的基本配置,主要包括:上位機(jī)物理ID,上位機(jī)功能ID,下位機(jī)ID,下位機(jī)功能ID,波特率。配置結(jié)束后上位機(jī)根據(jù)[stepn](n從1開始依次遞增直至升級流程結(jié)束)中的內(nèi)容執(zhí)行相應(yīng)的服務(wù),如:request表示終端要發(fā)送的數(shù)據(jù),respond 表示下位機(jī)正確響應(yīng),retry 表示如果此步驟失敗重試次數(shù),numstep 表示該步驟失敗后向前或向后幾步開始繼續(xù)執(zhí)行。用戶可以根據(jù)需求自行修改波特率、ID、升級順序、發(fā)送的數(shù)據(jù)等信息,從而極大的提高上位機(jī)的兼容性。

        4 功能測試

        該功能的測試由三部分組成:PC機(jī)、CANOE、待升級ECU。其連接示意圖如圖8。

        圖8 升級系統(tǒng)連接圖

        產(chǎn)品功能測試使用公司已量產(chǎn)的某款BCM(車身控制器)程序。每次下載完成后測試程序功能,正常則表示升級成功否則為升級失敗。該測試根據(jù)程序大小共分為四組,每組分別進(jìn)行100次升級,時間取平均值。關(guān)于代碼的大小通過適當(dāng)?shù)貙υ揃CM程序刪減一些功能或增加一些無效的代碼進(jìn)行控制。其升級用時時間與理論用時時間對比如表1:(LIN的傳輸速率V = 19.2kbit/s,flash擦寫函數(shù)擦除16k用時約Td16= 167ms,寫入1k字節(jié)標(biāo)準(zhǔn)用時約Tw1=32ms)[10]假設(shè)需要升級的程序?yàn)镹 K。則理論用時時間:

        t = 150*(N*1024)/(19.2*8) +(N/16)*Td16+N*Tw1

        表1 升級用時時間

        由表1分析可知該Bootloader執(zhí)行的時間與理論時間差距主要取決于0x27服務(wù)的加密算法時間、升級完成后讀取flash中的數(shù)據(jù)并進(jìn)行校驗(yàn)時間以及升級流程所用到的時間。本實(shí)驗(yàn)結(jié)果表明該方案具有較強(qiáng)的系統(tǒng)穩(wěn)定性。本方案的Bootloader總大小為7 354字節(jié),其中LARE 4 893字節(jié) LFAE 2 461字節(jié)。若按傳統(tǒng)方案設(shè)計該Bootloader需全部放入flash中,而按本文的方案只需將LFAE駐留在flash中,Bootloader占用flash空間相比傳統(tǒng)方案降低了66.5%。不僅如此,升級完成后由于復(fù)位ECU會重新初始化RAM區(qū),在應(yīng)用程序運(yùn)行時LARE不會駐留在程序中從而極大地提高了程序的安全性。

        5 總結(jié)

        本文以飛思卡爾MC9S12G1128為系統(tǒng)平臺,提出一種基于LIN總線進(jìn)行升級的系統(tǒng)解決方案,實(shí)現(xiàn)了對汽車CLIN總線ECU的在線升級。并且將ISO15765-2順利移植到LIN網(wǎng)絡(luò)診斷幀中。 本文的兩級Bootloader方案不僅可減少對flash占用空間而且還具有很強(qiáng)的穩(wěn)定性。而對上位機(jī),用戶只需根據(jù)自己需要修改配置文件即可獲得自己所需升級流程的上位機(jī)。該方案在基于LIN總線Bootloader開發(fā)設(shè)計中具有一定的參考價值。

        1LIN Specification Package( Revision 2.2A).Munich,Germany;Motorola,2003

        2Daniel M,Scotland E. LFAE bootloader example and interface for use with AN2546[Z].Freescale Semiconductor,Inc.,2004

        3Martvn G.HCS12 load RAM and execute bootloader user guide [Z] .Freescale Semiconductor,Inc.,2004

        4蘇洪.基于LIN總線的車窗防夾控制系統(tǒng)研究[D].黑龍江:哈爾濱工業(yè)大學(xué),2015,06

        5Swedish Standards Institute.ISO 15765-2 Road Vehicles Diagnosties on CAN-Part2:Network Layer Services[S].2004

        6唐樂.基于can總線的通用性汽車ECU故障診斷儀的研究與設(shè)計[D].重慶:重慶郵電大學(xué),2012,05

        7International Organization for Standardization. ISO14229-2006 road vehicles unified diagnostics services(UDS)Specilica-tionand Requirements(v2)[S].2006

        8王亞剛.嵌入式Bootloader機(jī)制的分析與移植[J].計算機(jī)工程,2010,36(6):267-269

        9郭凱凱.can總線UDS的研究與設(shè)計[D].安徽:安徽理工大學(xué),2013.06

        10MC9S12G Family Reference Manual(0.41Revision)[M].Austin,Texas;Freescale Semiconductor,2010

        10.3969/j.issn.1006-6403.2016.09.008

        2016-08-12)

        針對汽車LIN(Local Interconnect Network)節(jié)點(diǎn)進(jìn)行程序更新困難的問題,文章設(shè)計并開發(fā)出了一種通過汽車LIN總線對ECU(Electronic Control Unit)進(jìn)行遠(yuǎn)程在線升級的系統(tǒng)。該系統(tǒng)的應(yīng)用層采用國際診斷協(xié)議ISO14229-1,傳輸層在ISO15765-2協(xié)議的基礎(chǔ)上進(jìn)行改進(jìn)使其移植到汽車LIN網(wǎng)絡(luò)的診斷幀中?;贚IN總線設(shè)計具有兩級Bootloader功能的下位機(jī),該方案設(shè)計不僅可以減少CAN 和LIN網(wǎng)絡(luò)之間數(shù)據(jù)格式的轉(zhuǎn)換量、提高flash空間的利用率而且增強(qiáng)了系統(tǒng)的安全性。該系統(tǒng)設(shè)計已經(jīng)在某款已量產(chǎn)的基于飛思卡爾MC9S12G128的車身控制器(BCM)中得到充分驗(yàn)證。

        猜你喜歡
        配置文件下位上位
        提示用戶配置文件錯誤 這樣解決
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        忘記ESXi主機(jī)root密碼怎么辦
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        永久免费视频网站在线| 国产成人精品麻豆| 少妇被爽到自拍高潮在线观看| 国产黄色一区二区在线看 | 欧美多毛肥胖老妇做爰| 无码a级毛片免费视频内谢| 国产另类人妖在线观看| 国产av天堂亚洲国产av天堂| 久久人人玩人妻潮喷内射人人| 国产精品久久久久久久专区| 国产影片免费一级内射| 国产午夜片无码区在线播放| 手机在线看永久av片免费| 最新日韩av在线不卡| 国内精品毛片av在线播放| 亚洲av国产av综合av卡| 99re久久精品国产| 日韩av无码午夜福利电影| 亚洲av熟女中文字幕| 欧美精品亚洲精品日韩专区 | 国产大片内射1区2区| 久久久久99精品成人片试看| 午夜精品久视频在线观看| 亚洲一区二区三区在线最新| 中文字幕中文有码在线| 国产呦精品系列在线播放| 日韩精品成人一区二区三区久久久| 蜜桃传媒一区二区亚洲av婷婷| 欧美精品一区二区蜜臀亚洲| 久久精品国产亚洲5555| 狠狠亚洲超碰狼人久久老人| 国内自拍偷国视频系列| 欧美成人在线视频| 亚洲av乱码中文一区二区三区| 亚洲av色香蕉一区二区蜜桃| 91精品人妻一区二区三区久久久 | 亚洲一区二区三区99| 国产真实强被迫伦姧女在线观看| 中年人妻丰满AV无码久久不卡| 成年男女免费视频网站点播| 国产精品国产三级第一集|