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

        ?

        基于MC9S12XS128的車載控制器CAN Bootloader的設計與實現(xiàn)

        2020-11-23 01:48:47田洪杰孔微
        理論與創(chuàng)新 2020年18期
        關(guān)鍵詞:CAN總線

        田洪杰 孔微

        【摘 ?要】飛思卡爾MC9S12XS128控制器刷寫程序按照常規(guī)做法需要使用BDM下載器通過專用接口進行刷寫,在車載控制器的開發(fā)過程中需要頻繁的進行程序刷寫操作,傳統(tǒng)的刷寫方式操作十分不便。Bootloader技術(shù)能夠使用通用接口對單片機程序進行刷寫,本文基于MC9S12XS128對Bootloader技術(shù)進行了應用和驗證,并成功的實現(xiàn)了通過CAN接口對程序的刷寫操作。

        【關(guān)鍵詞】Bootloader;單片機;CAN總線

        1. 技術(shù)背景

        車載控制器的開發(fā)周期長,程序控制邏輯復雜,在開發(fā)過程中會經(jīng)常對控制器的程序進行升級、更改。傳統(tǒng)的程序下載接口需要使用專用下載器進行程序的刷寫、修改,當控制器裝車后,如果需要修改程序,就需要重新拆卸控制器,操作極為不便。bootloader技術(shù)是預先在單片機中刷入一個底層服務程序,實現(xiàn)通過通用接口(如串口或者CAN接口)對單片機中的程序進行刷寫,無需對控制器進行重復拆裝,極大的方便了控制器的開發(fā)過程。也為后續(xù)產(chǎn)品程序的更新升級提供了更便捷的途徑。

        MC9S12XS128簡介:

        MC9S12XS128單片機是Freescale的一款成熟的16位經(jīng)型通用控制器,滿足車載環(huán)境要求,在汽車電子、工業(yè)控制等領(lǐng)域具有廣泛的應用。本文將使用MC9S12XS128單片機并通過其CAN接口實現(xiàn)bootloader功能。

        2. CANBootloader 總體設計

        Bootloader使用CAN接口進行數(shù)據(jù)通信,因此在單片機上電后需要對CAN接口進行必要的初始化設置,當初始化完成后,bootloader會監(jiān)聽通信接口的指令,如果收到bootloader刷寫命令,bootloader程序會跳轉(zhuǎn)到程序刷寫模式。接收上位機發(fā)送的程序數(shù)據(jù)并寫入到單片機的P-Flash中,即完成用戶程序的刷寫。在控制器實際使用時,大多數(shù)情況下是為了執(zhí)行控制功能,因此在沒有刷寫任務時應當自動跳轉(zhuǎn)到用戶程序執(zhí)行。在Bootloader的監(jiān)聽邏輯中,加入了一個延時判定條件,當端口上長時間(2s)沒有收到來自上位機的連接指令,Bootloader將會跳轉(zhuǎn)到用戶程序的起始地址,并執(zhí)行用戶程序。

        3. 自定義協(xié)議

        Bootloader使用的是通用數(shù)據(jù)接口,在CAN總線上同時還會有其他數(shù)據(jù)的交互。因此需要給bootloader程序和上位機規(guī)定一套通信協(xié)議,來區(qū)分數(shù)據(jù)指令和bootloader刷寫指令。本次設計中,將上位機的ID設置為02即只有報文的ID為02時才判定為執(zhí)行bootloader相關(guān)的指令,另外還規(guī)定了進行flash操作的口令以及進行flash擦除、flash寫入等指令操作的代碼等,協(xié)議規(guī)則如下。

        4. 內(nèi)存劃分

        Boot loader程序與用戶程序需要分別存儲在不同的內(nèi)存區(qū)域,這樣在程序執(zhí)行時才能避免兩個程序的數(shù)據(jù)相互干擾。因為Boot loader程序在程序啟動時就需要執(zhí)行,所以把bootloader劃分到存儲區(qū)域的起始區(qū)塊,剩余區(qū)域劃分為用戶區(qū)域,用于存儲用戶程序,用戶程序存儲區(qū)域的起始劃分為向量表地址。地址的劃分可以在程序工程的prm文件中進行,具體的地址劃分如下。

        0x4000 TO ? 0x43FF ;//1kB ?用于 bootloader

        0x4400 TO ? 0x47FF RELOCATE_TO 0x3C00;//映射到RAM

        0xC000 TO ? 0xDEFF ;//用戶程序中斷向量表

        0xE100 TO ? 0xFEFF ;//用戶程序

        劃分完成后在編寫程序時將程序按照劃分的地址進行分配即可。

        5. Bootloader 運行實現(xiàn)

        在Bootloader執(zhí)行flash刷寫操作時,因為刷寫的是程序存儲區(qū)域,需要將程序(bootloader程序)復制到單片機RAM中運行。在bootloader的通信程序中用到了CAN接收中斷,在RAM中運行程序時,需要將Bootloader 的中斷向量表映射到內(nèi)存中的相應區(qū)域,程序復制到RAM和中斷向量偏移代碼如下。

        MoveCodeIntoRam((byte *)0x4400, (byte *)0x3C00,0x400); //代碼復制到RAM

        IVBR= 0x3F; ?//偏移中斷向量表

        *(UINT16*)(0x3F00+0xB2)=(UINT16)CAN_receive; //中斷向量重定向

        Bootloader程序復制到RAM中運行后,就可以進行P-Flash的刷寫操作。通過CAN接口接收上位機發(fā)送的數(shù)據(jù)并將數(shù)據(jù)寫入到對應的地址。需要注意的是MC9S12XS128單片機在執(zhí)行Flash擦除操作時最小擦除單位是1扇區(qū),寫入時是一次寫入8個字節(jié)。當bootloader完成Flash刷寫后,需要將程序的運行位置跳轉(zhuǎn)到用戶程序,程序代碼如下。

        asm LDX ?startaddr;

        asm JMP ? 0,X ;

        上位機發(fā)送的跳轉(zhuǎn)指令和啟動后的超時跳轉(zhuǎn)判斷條件都能激活上述的跳轉(zhuǎn)語句。

        6. S19文件解析及上位機通信實現(xiàn)

        控制程序在CodeWarrior軟件中編譯完成后會自動生成S19格式的文件,文件記錄了刷寫到MCU中的數(shù)據(jù)和對應的地址。S19文件中的數(shù)據(jù)由很多行(又稱為記錄)組成,根據(jù)每行的起始標注了記錄的類型、數(shù)據(jù)長度、存儲區(qū)的起始地址、數(shù)據(jù)以及數(shù)據(jù)校驗。根據(jù)S19文件的規(guī)則,上位機可以解析出程序要刷寫的地址和要寫入的數(shù)據(jù)。上位機解析完數(shù)據(jù)后按照通信協(xié)議將刷寫指令和刷寫數(shù)據(jù)通過CAN接口傳送給單片機,bootloader對相應的存儲區(qū)域進行刷寫操作,上位機的編寫過程本文不再贅述。

        7. 結(jié)束語(功能、不足等)

        本次設計通過實際驗證,可以進行控制器程序的刷寫,用戶程序正確運行,并在某型控制器的開發(fā)過程中進行了成功應用。較傳統(tǒng)的程序刷寫方式節(jié)省了大量的時間。當然,本次設計的bootloader通信指令較為簡單,僅對flash的基本讀寫操作做了規(guī)定,并沒有對接收到的S19文件數(shù)據(jù)進行校驗,后續(xù)會繼續(xù)完善這部分的功能。

        參考文獻

        [1] 發(fā)動機控制器在線升級系統(tǒng)的設計與實現(xiàn)[J]. 稅靜,吳長水. ?農(nóng)業(yè)裝備與車輛工程. 2020(06).

        [2] 混合動力汽車電機控制器硬件設計與CAN通信[J]. 彭朝亮,馮國勝,袁新華. ?農(nóng)業(yè)裝備與車輛工程. 2017(03).

        [3]王宜懷,曹金華. 嵌入式系統(tǒng)設計實戰(zhàn)——基于飛思卡爾S12微控制器 [M]. 北京:北京航空航天大學出版社,2011:289-313.

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

        猜你喜歡
        CAN總線
        論網(wǎng)絡通信技術(shù)
        基于嵌入式的汽車輔助制動系統(tǒng)研究
        CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應用
        基于CANoe的J1939協(xié)議在ECU通信中的應用
        科技視界(2016年18期)2016-11-03 22:53:48
        商用車基于CAN總線的組合儀表開發(fā)與應用
        CAN總線在鐵路設備通信中的應用
        利用MC9S12(X)單片機構(gòu)建CAN總線網(wǎng)絡的研究
        基于CAN總線的智能微噴灌監(jiān)控系統(tǒng)中下位機的硬件電路組成與設計
        基于CAN總線的變電站通訊網(wǎng)絡設計
        CAN總線技術(shù)、系統(tǒng)實現(xiàn)及發(fā)展趨勢
        亚洲中文字幕无码久久| 国产精品毛片av毛片一区二区| 日本h片中文字幕在线| 少妇被粗大的猛烈进出免费视频 | 射精情感曰妓女色视频| 欧美成人网视频| 99久久婷婷国产精品综合| 乱色欧美激惰| 无码人妻精品一区二区三区在线| 亚色中文字幕| 国产一区二区三区精品乱码不卡| 射精区-区区三区| 婷婷丁香五月中文字幕 | 亚洲 欧美精品suv| 国内视频偷拍一区,二区,三区| 在线观看日本一区二区三区| 国产精品国产亚洲精品看不卡| 无码人妻黑人中文字幕| 欧美激情国产亚州一区二区| 日韩人妖干女同二区三区| 内射口爆少妇麻豆| 国产白嫩美女在线观看| 亚洲美女国产精品久久久久久久久 | 色视频综合无码一区二区三区| 成年女人永久免费看片| 日韩精品中文字幕人妻系列| 蜜桃一区二区三区视频| 伊人久久久精品区aaa片| 国产一级三级三级在线视| 日本高清一区在线你懂得| 色综合久久蜜芽国产精品| 中文人妻av久久人妻18| 亚洲成a人片在线观看中文!!!| 粉嫩的极品女神尤物在线| 女人和拘做受全程看视频| 国产成人精选在线不卡| 手机在线观看成年人视频| 四虎国产成人永久精品免费| 国产a三级久久精品| 97国产精品麻豆性色| 偷拍偷窥女厕一区二区视频|