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

        ?

        變速箱控制系統(tǒng)Bootloader設(shè)計(jì)與實(shí)現(xiàn)

        2020-02-02 03:25:04郭帥孫曉鵬李苑瑋
        電子技術(shù)與軟件工程 2020年17期
        關(guān)鍵詞:程序融合設(shè)計(jì)

        郭帥 孫曉鵬 李苑瑋

        (濰柴動(dòng)力股份有限公司 山東省濰坊市 261000)

        Bootloader 作為引導(dǎo)加載程序,是變速箱控制器(TCU)應(yīng)用程序在線升級不可或缺的一部分,然而大多數(shù)研究中是將Bootloader 程序與用戶程序分開寫入變速箱控制器芯片內(nèi),這使得變速箱控制系統(tǒng)的開發(fā)便捷性降低,而在工程實(shí)際應(yīng)用中,往往需要簡化控制系統(tǒng)的開發(fā)流程,減少軟件的開發(fā)時(shí)間。

        開發(fā)人員對Bootloader 進(jìn)行了大量基礎(chǔ)研究,發(fā)現(xiàn)Bootloader與芯片內(nèi)存結(jié)構(gòu)是強(qiáng)相關(guān)的,不同控制器芯片對應(yīng)的Bootloader內(nèi)存及協(xié)議是完全不同的。樂志國等[1]設(shè)計(jì)了基于恩智浦MC9S12XDP512 控制器芯片的Bootloader 系統(tǒng),并設(shè)計(jì)了上位機(jī)操作系統(tǒng),實(shí)現(xiàn)了軟件在線編程;劉矗等[2]使用自定義的CAN總線傳輸協(xié)議,設(shè)計(jì)了基于恩智浦16 位微控制器的通用CAN Bootloader,實(shí)現(xiàn)該類控制器芯片的通用化設(shè)計(jì);戚長城等[3]設(shè)計(jì)了基于恩智浦MC9S12G128 的Bootloader 系統(tǒng),仿照電腦U 啟動(dòng)的模式,將Bootloader 目標(biāo)代碼存儲(chǔ)于U 盤中,節(jié)省了控制器的內(nèi)存空間。雖然這些研究從不同角度,闡述了基于各類控制器芯片的研究方法,但這僅將Bootloader 程序作為個(gè)體進(jìn)行研究,沒有將用戶程序和Bootloader 進(jìn)行融合考慮,不能體現(xiàn)Bootloader 技術(shù)在變速箱控制系統(tǒng)開發(fā)中的優(yōu)勢,不能滿足變速箱控制器應(yīng)用程序的開發(fā)效率。

        本文采用自定義的CAN 數(shù)據(jù)傳輸協(xié)議,設(shè)計(jì)一套融合用戶程序和Bootloader 程序的Bootloader 系統(tǒng),使用Flash 加載執(zhí)行的方法對TCU 的Bootloader 進(jìn)行設(shè)計(jì),將周立功USBCAN-II 智能CAN 接口卡作為連接硬件,通過VB6.0 開發(fā)上位機(jī)系統(tǒng),同時(shí)搭建一個(gè)基于恩智浦MC9S12XEP100 單片機(jī)的硬件平臺(tái),并對所設(shè)計(jì)的Bootloader 系統(tǒng)進(jìn)行功能測試。

        1 Bootloader原理

        Bootloader 是嵌入式控制器上電后運(yùn)行的第一段程序,它根據(jù)指令對數(shù)據(jù)升級和應(yīng)用程序執(zhí)行兩個(gè)功能進(jìn)行選擇[4,17]。所設(shè)計(jì)的變速箱控制系統(tǒng)Bootloader 以CAN 總線技術(shù)為基礎(chǔ),分為變速箱控制器Bootloader 程序和上位機(jī)Bootloader 程序兩部分。

        2 變速箱控制器Bootloader設(shè)計(jì)

        通常,Bootloader 嚴(yán)重依賴硬件,不同控制器之間Bootloader無法做到完全移植,所以對于嵌入式系統(tǒng)而言,不同主控芯片的硬件平臺(tái)Bootloader 的實(shí)現(xiàn)也各不相同,但是其思路和框架是基本一樣的[6]。本文設(shè)計(jì)的變速箱控制系統(tǒng)的Bootloader 主要有:Bootloader 初始化流程、CAN 通信模塊設(shè)置、FLASH 擦寫模塊設(shè)計(jì)、重建用戶程序中斷向量、融合Bootloader 程序和用戶程序。

        圖1:Bootloader 初始化流程

        圖2:MSCAN 初始化流程

        圖3:程序融合流程

        圖4:升級程序成功界面

        圖5:Bootloader 硬件平臺(tái)

        圖6:用戶程序的S19 文件

        2.1 Bootloader初始化流程

        一般在沒有Bootloader 的系統(tǒng)中,程序上電后,經(jīng)過底層初始化,會(huì)直接跳轉(zhuǎn)到用戶程序的main 函數(shù)內(nèi)執(zhí)行,而有Bootloader的系統(tǒng)上電后,首先要根據(jù)指令狀態(tài),在用戶程序和Bootloader 之間進(jìn)行選擇。通常,進(jìn)入Bootloader 程序的情況一般有三種:在復(fù)位時(shí),對特定通信口的關(guān)鍵字檢測;在復(fù)位時(shí),對特定硬件IO 檢測;在運(yùn)行時(shí),對特定通信口的關(guān)鍵字檢測。由于第一種方法屬于超時(shí)機(jī)制,需要編寫代碼實(shí)現(xiàn),比較復(fù)雜,第三種方法需要特定的協(xié)議棧做支持,所以選擇第二種簡便有效的方式。

        Bootloader 初始化流程如圖1所示。單片機(jī)的P 端口第0 引腳(PP0)接按鍵,系統(tǒng)復(fù)位后,獲取復(fù)位中斷地址處引導(dǎo)加載程序首地址,檢測到指令按鍵按下,則執(zhí)行Bootloader 程序;否則,檢測用戶程序復(fù)位中斷地址,防止控制器內(nèi)只有Bootloader 程序而沒有用戶程序的情況發(fā)生。

        2.2 CAN通信模塊設(shè)置

        通信模塊負(fù)責(zé)變速箱控制器與上位機(jī)間的指令交互,以及數(shù)據(jù)升級過程中數(shù)據(jù)文件的傳輸。本文通訊程序采用CAN 通信的方式,通過對MC9S12XEP100 單片機(jī)CAN 通訊模塊的寄存器進(jìn)行配置[7,8],實(shí)現(xiàn)正常的指令交互和數(shù)據(jù)傳輸。

        MSCAN 初始化流程如圖2所示。為了提高數(shù)據(jù)傳輸?shù)男剩鶕?jù)CAN 通信協(xié)議,選取合適的時(shí)鐘源,本文設(shè)計(jì)的TCU 選取振蕩器作為時(shí)鐘源,經(jīng)過預(yù)分頻器分頻處理得到的CAN 通信波特率為250Kbps;為了保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,設(shè)置CAN 通信濾波的代碼和掩碼,選取擴(kuò)展幀并設(shè)置相應(yīng)濾波器,使TCU 僅接收上位機(jī)發(fā)送的CAN 報(bào)文。

        2.3 FLASH擦寫模塊設(shè)計(jì)

        MC9S12XEP100 單片機(jī)在Flash 擦寫過程中,對時(shí)鐘和晶振有嚴(yán)格的要求。節(jié)點(diǎn)使用的晶振必須足夠高,才能保證對Flash 扇區(qū)的正常操作。FLASH 總線時(shí)鐘是外部振蕩器時(shí)鐘經(jīng)過時(shí)鐘分頻寄存器(FDIV)分頻得到的,晶振時(shí)鐘的分頻寄存器需要合理設(shè)置,太高太低,都會(huì)導(dǎo)致對內(nèi)存的操作產(chǎn)生問題。所以對于恩智浦EP100 微控制器來說,將外部晶振設(shè)為16MHz,F(xiàn)DIV 設(shè)為0x0F。

        MC9S12XEP100 單片機(jī)的寫入操作以8 個(gè)字節(jié)為基礎(chǔ),并且只能以8 個(gè)字節(jié)對齊的方式進(jìn)行寫入;在擦除時(shí),最小單位為扇區(qū),每個(gè)扇區(qū)大小為256 字節(jié),不能擦除一個(gè)字節(jié)或者小于一個(gè)扇區(qū)的內(nèi)容[9]。

        2.4 重建用戶程序中斷向量

        為了實(shí)現(xiàn)程序在Bootloader 模式和用戶程序模式之間轉(zhuǎn)換,Bootloader 程序內(nèi)需重建復(fù)位中斷向量。對于恩智浦MC9S12XEP100 單片機(jī)來說,在芯片末尾地址的這兩個(gè)字節(jié)的內(nèi)存空間處存放的是用戶程序的復(fù)位中斷向量的地址[10-13]。在沒有Bootloader 的程序內(nèi),上電復(fù)位后,芯片會(huì)從該地址處讀取用戶程序的首地址開始運(yùn)行;在有Bootloader 的程序內(nèi),該地址里存放的不再是用戶程序的首地址,而是引導(dǎo)加載程序的首地址,為了防止與Bootloader 中斷地址產(chǎn)生沖突,用戶程序的復(fù)位向量被放在了單獨(dú)開辟的一塊內(nèi)存中,使單片機(jī)上電復(fù)位后先判斷引導(dǎo)加載程序。

        企業(yè)存在對HSE管理體系運(yùn)行監(jiān)督不嚴(yán)格、不系統(tǒng)、不全面的實(shí)際問題,難以實(shí)現(xiàn)對HSE管理體系運(yùn)行的有效調(diào)控,出現(xiàn)了監(jiān)督缺位、工作缺失等一系列問題。代表性的問題有:一是,企業(yè)沒有對HSE管理體系運(yùn)行的重點(diǎn)監(jiān)督體系,出現(xiàn)對HSE管理體系實(shí)際運(yùn)行的控制不良、監(jiān)督不系統(tǒng)等問題,特別是對于HSE管理體系運(yùn)行的細(xì)節(jié)難以達(dá)到全面控制,被表面性的日常工作所困擾而造成監(jiān)督效果和功能不良等問題。二是,監(jiān)督體系中沒有將預(yù)防思想作為監(jiān)督工作的第一原則,“以罰代管”、“以查代管”的問題頻繁出現(xiàn),難以確保HSE管理體系全面、系統(tǒng)地運(yùn)行,產(chǎn)生了HSE管理體系運(yùn)行的危害性和危險(xiǎn)性。

        復(fù)雜的Bootloader 程序自身會(huì)用到定時(shí)器中斷、CAN 的接收和發(fā)送中斷等,因而Bootloader 程序內(nèi)需要重建中斷向量表,與用戶程序的中斷進(jìn)行區(qū)分,使兩個(gè)程序的中斷不至于產(chǎn)生沖突,即重新設(shè)置中斷向量表基址寄存器(IVBR)。本文設(shè)計(jì)的Bootloader程序采用在線編程的方法改變中斷函數(shù)的入口地址,將用戶程序中斷函數(shù)的入口地址改為所分扇區(qū)首地址,使用戶程序與Bootloader程序使用不同F(xiàn)LASH 區(qū)間來定義中斷向量表,使兩段程序的中斷互不影響[14,15]。這種方式雖然要在Bootloader 程序內(nèi)對用戶程序的中斷向量表進(jìn)行搬移,但是不需要更改用戶程序內(nèi)中斷向量表的存儲(chǔ)區(qū)間,使用戶程序和Bootloader 程序的中斷可以完美的融合。

        表1:Bootloader 上位機(jī)協(xié)議

        圖7:芯片內(nèi)存數(shù)據(jù)

        2.5 融合Bootloader程序和用戶程序

        Bootloader 和用戶程序融合的過程如圖3所示。

        圖3 中,程序融合需要將用戶程序作為基程序,程序融合過程中,會(huì)屏蔽用戶程序中的復(fù)位中斷向量,同時(shí)定位復(fù)位向量到用戶程序中的內(nèi)存地址的末尾,使芯片上電復(fù)位后進(jìn)入模式選擇狀態(tài),同時(shí)用戶程序的鏈接庫文件需要鏈接Bootloader 程序的S19 文件,并且要解除FLASH 保護(hù),以便對芯片的FLASH 進(jìn)行編程,最后通過BDM 下載融合程序。

        3 Bootloader上位機(jī)設(shè)計(jì)

        Bootloader 上位機(jī)主要作用是將編譯生成的S19 文件以數(shù)據(jù)形式發(fā)送給TCU,實(shí)現(xiàn)變速箱控制器對內(nèi)存的擦除和寫入的功能。

        3.1 通信協(xié)議制定

        Bootloader 是基于通信方式開發(fā)實(shí)現(xiàn)的,因而需要有一套專屬的數(shù)據(jù)傳輸協(xié)議。上位機(jī)與變速箱控制器的通訊協(xié)議見表1,主要功能指令有:開始Flash 擦除,F(xiàn)lash 擦除結(jié)束、開始Flash 編程、Flash 編程結(jié)束等。

        報(bào)文ID 參考1939 協(xié)議進(jìn)行自定義開發(fā),0x1000EFD0 和0x1000EFD1 是上位機(jī)發(fā)送的命令指令和S19 數(shù)據(jù),0x1000EFD2是TCU 反饋給上位機(jī)的刷寫狀態(tài),使用戶可以直觀了解程序升級過程。

        3.2 Bootloader上位機(jī)功能

        上位機(jī)升級程序界面如圖4所示。上位機(jī)與控制器連接成功后,在升級程序過程中,通過左面的人機(jī)界面的Message 窗口,可以實(shí)時(shí)更新當(dāng)前上位機(jī)與控制器的運(yùn)行狀態(tài);通過右面人機(jī)界面的Data窗口,可以觀測當(dāng)前上位機(jī)給控制器發(fā)送的程序數(shù)據(jù);期間出現(xiàn)故障時(shí),也可以方便的定位問題原因。

        4 結(jié)果驗(yàn)證

        為驗(yàn)證設(shè)計(jì)的Bootloader 的可靠性,搭建Bootloader 硬件平臺(tái),如圖5所示,該平臺(tái)以某變速箱控制系統(tǒng)硬件為基礎(chǔ),主芯片為MC9S12XEP100。將融合后程序通過BDM 寫入變速箱控制器硬件平臺(tái)內(nèi),上電復(fù)位之后可以正常選擇進(jìn)入用戶程序或是Bootloader程序,無需再進(jìn)行用戶程序升級,實(shí)現(xiàn)通過一次刷寫,該控制器同時(shí)含有Bootloader 程序和用戶程序,圖5 即為用戶程序正常運(yùn)行的界面。

        為驗(yàn)證融合了用戶程序的Bootloader 在程序升級方面的功能可靠性,單獨(dú)選取一版用戶程序,通過該Bootloader 下載進(jìn)單片機(jī)內(nèi)。編譯后用戶程序的S19 文件如圖6所示,Bootloader 程序下載到控制器芯片內(nèi)存中的數(shù)據(jù)如圖7所示。通過將圖6 和圖7 內(nèi)存中的數(shù)據(jù)進(jìn)行對比,二者數(shù)據(jù)完全一致。

        5 結(jié)論

        本文基于Bootloader 程序和用戶程序的融合設(shè)計(jì)了Bootloader 上位機(jī)和變速箱控制器端Bootloader,并搭建了基于MC9S12XEP100 的變速箱控制器硬件平臺(tái)。通過實(shí)測試驗(yàn)進(jìn)行了變速箱控制器融合程序功能驗(yàn)證,結(jié)果表明所設(shè)計(jì)的融合的Bootloader 能夠快速、準(zhǔn)確、方便地實(shí)現(xiàn)變速箱控制器應(yīng)用程序的在線升級,可以顯著提高軟件開發(fā)效率,為變速箱控制器應(yīng)用程序的數(shù)據(jù)更新提供有效參考。

        猜你喜歡
        程序融合設(shè)計(jì)
        村企黨建聯(lián)建融合共贏
        融合菜
        從創(chuàng)新出發(fā),與高考數(shù)列相遇、融合
        《融合》
        試論我國未決羈押程序的立法完善
        瞞天過海——仿生設(shè)計(jì)萌到家
        “程序猿”的生活什么樣
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        国产成人精品午夜二三区波多野| 亚洲区小说区图片区qvod伊| 无码aⅴ在线观看| 国产日韩欧美网站| 一个人免费观看在线视频播放| 在线免费午夜视频一区二区| 丰满巨臀人妻中文字幕| 媚药丝袜美女高清一二区| 综合色区亚洲熟妇另类| 无码AV高潮喷水无码专区线| 日日噜噜夜夜狠狠2021| 国产一区二区三区免费小视频| 亚洲第一幕一区二区三区在线观看 | 成人午夜视频一区二区无码| 亚洲女同系列高清在线观看 | 亚洲aⅴ无码日韩av无码网站| 精品日韩欧美| 毛片成人18毛片免费看| √天堂中文官网在线| 国产精品后入内射日本在线观看 | 成人av毛片免费大全| 日本视频二区在线观看| 国产成人精品午夜二三区波多野| 人妻夜夜爽天天爽三区麻豆AV网站 | 午夜精品人妻中字字幕| 久久99精品久久久大学生| 亚洲a∨国产av综合av下载| 人妻少妇看a偷人无码精品| 欧美成人久久久| 午夜无码国产18禁| 亚洲av天堂一区二区| 国产av国片精品有毛| 真人男女做爰无遮挡免费视频| 日本一区二区三区中文字幕最新| 在线观看人成网站深夜免费| 一区二区视频在线国产| 成人国产精品一区二区网站公司| 国产一及毛片| 少妇高潮呻吟求饶视频网站| 国产精品网站91九色| 亚洲熟女乱色综合亚洲av|