• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-02-02 03:25:04郭帥孫曉鵬李苑瑋
      電子技術(shù)與軟件工程 2020年17期
      關(guān)鍵詞:用戶程序變速箱上位

      郭帥 孫曉鵬 李苑瑋

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

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

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

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

      1 Bootloader原理

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

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

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

      圖1:Bootloader 初始化流程

      圖2:MSCAN 初始化流程

      圖3:程序融合流程

      圖4:升級程序成功界面

      圖5:Bootloader 硬件平臺

      圖6:用戶程序的S19 文件

      2.1 Bootloader初始化流程

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

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

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

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

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

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

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

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

      2.4 重建用戶程序中斷向量

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

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

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

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

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

      2.5 融合Bootloader程序和用戶程序

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

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

      3 Bootloader上位機設(shè)計

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

      3.1 通信協(xié)議制定

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

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

      3.2 Bootloader上位機功能

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

      4 結(jié)果驗證

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

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

      5 結(jié)論

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

      猜你喜歡
      用戶程序變速箱上位
      嵌入式設(shè)備遠程升級方案設(shè)計
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      帶你走近一個你不知道的自動變速箱
      車迷(2017年12期)2018-01-18 02:16:13
      基于CCS5.5的TMS320C6000程序Flash上電自舉設(shè)計及三種固化方法對比
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      淺析農(nóng)機用變速箱殼生產(chǎn)工藝的改進
      人間(2015年8期)2016-01-09 13:12:40
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      艾里遜變速箱助力日野FE系列
      C8051F410單片機BootLoader的實現(xiàn)
      儋州市| 德州市| 宁海县| 介休市| 渭源县| 双鸭山市| 大石桥市| 上虞市| 广宗县| 临高县| 蛟河市| 翁源县| 曲水县| 连城县| 桦甸市| 广东省| 宁晋县| 玛纳斯县| 鄂伦春自治旗| 兴海县| 长宁区| 石台县| 谷城县| 鹤壁市| 鲁甸县| 哈密市| 丰县| 清远市| 海兴县| 岐山县| 永川市| 康保县| 上饶县| 镇宁| 彭泽县| 新泰市| 石狮市| 阿图什市| 晋城| 湖北省| 永宁县|