999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CAN總線的車載檢測模塊固件升級系統設計

2018-02-27 13:29:44陳曉韋楊開欣董海博郭謹瑋
電腦知識與技術 2018年35期

陳曉韋 楊開欣 董海博 郭謹瑋

摘要:智能車載檢測模塊是典型的嵌入式設備之一。嵌入式設備的主要特點是同一個硬件采用不同的固件便可以實現不同的功能。為了降低車載檢測模塊的維護成本,該文設計了一種基于CAN總線的車載檢測模塊固件升級系統。固件升級系統包括上位機和車載設備固件兩部分。車載設備固件將微控制器內部flash區域劃分成Bootloader引導區和APP用戶程序區。升級采用被動模式,車載設備收到上位機發送的升級命令后,跳轉到Bootloader區域并執行對應的操作完成固件燒寫。實驗證明,此方法在很大程度上提高了車載設備的可維護性,方便穩定可靠。

關鍵詞:嵌入式設備;CAN總線;Bootloader;固件升級

中圖分類號:TP311? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)35-0252-02

隨著科學技術的進步,車聯網技術的發展,汽車保有量的持續增加,各種各樣的車載設備需求量增加,新能源車輛的出現對智能車載設備需求量進一步增加。智能車載檢測模塊是典型的車載設備之一,主要用途是借用車輛的OBD診斷接口通過CAN總線實時獲取車輛的各種信息,如新能源汽車的電瓶電壓,電池溫度、電機轉速、剩余電池電量、行駛里程等。智能車載檢測模塊是典型的嵌入式設備之一,模塊可以實現的具體功能和模塊內部使用的微控制器燒寫的固件有關,不同車型可以使用同一個車載檢測模塊硬件。車載檢測模塊一旦批量出廠到達客戶手中,客戶如果想更改模塊的功能或是更換使用車型,供應商需要派出大量的技術支持人員前往支持,成本高,效率低。為了解決這一問題,充分利用車載檢測模塊的外部接口,本文設計了一款基于CAN總線的車載檢測模塊固件升級系統,車載檢測模塊通過CAN總線實現固件的升級方法,方便可靠,操作簡單,客戶只需要簡單幾步便能夠完成對固件的升級,對于模塊供應商,在很大程度上節約了工程師差旅成本。對于客戶,提高了工作效率。

1 微控制器固件升級方法介紹

微控制器固件升級通常有兩種方法,方法一是在系統編程(In-system programming, ISP),利用JTAG等專用工具和特定的協議將固件燒寫到內部flash中,通常在產品測試調試階段使用。由于此方法需要設備留有專用的外部接口和JTAG或ST-LINK下載器,通常成熟的設備部對外不會留有下載接口,所以此方法不適合已經出廠設備的固件升級燒寫。另一種方法是在應用編程(in-application programming,IAP),顧名思義就是在應用程序的運行過程中實現對應用程序的固件升級,此方法主要是借用微控制器支持的總線如:SPI,I2C,USART,CAN等實現對內部固件的升級,實現相對靈活、不比用專用的下載器等。使用在應用編程方法燒寫固件,工程師通常需要將微控制器的固件分成兩個部分,一是引導加載程序Bootloader,另一個是實現具體功能的用戶程序[1]。引導加載程序Bootloader通常包含啟動加載模式和下載模式兩種功能,啟動加載模式是引導用戶程序APP的正常執行,下載模式可以實現對用戶程序APP的更新。初次使用微控制器時,Bootloader部分的固件要通過在系統編程ISP方式燒寫到微控制器內,而APP固件部分既可以通過ISP也可以通過IAP方式燒寫到微控制器內。基于CAN總線的固件升級方法連接圖如圖1。PC通過USB線纜連接CAN主機,CAN主機和要升級固件的微控制器之間通過CAN總線進行通訊,根據CAN總線的特點[2]可知CAN主機和微控制器之間要有一個120歐姆的終端電阻。

2 基于CAN總線固件升級系統設計實現

基于CAN總線的固件升級系統包括上位機軟件和硬件兩個部分。軟件是實現發送升級命令和固件文件的上位機,硬件是智能車載檢測模塊。

2.1 智能車載檢測模塊

智能車載檢測模塊使用的微控制器是ST公司的STM32F105RC,此芯片有兩路CAN 接口,兩路ADC,256KB的Flash。車載模塊一路CAN通過OBD診斷接口和車輛通訊,獲取車輛的實時信息,第二路CAN將獲取的車輛實時信息傳到PC端或是用于接收固件實現對固件的更新。CAN遵循ISO/OSI參考模型,分數據鏈路層和物理層。根據ISO88002-2和ISO8802-3,數據鏈路層進一步細分為邏輯鏈路控制(LLC)和介質訪問控制(MAC);物理層進一步細分為物理信令(PLS,位編碼、定時、同步),物理介質附件(PMA,驅動器/接收器特性)和介質附屬接口(MDI,連接器)[2]。數據鏈路層和物理信令層之間的鏈接是通過CAN 控制器實現的。物理介質附件是協議控制器和物理線路之間的接口。在車載檢測模塊中,CAN 收發器選擇的是車規級別的恩智浦公司生產的TJA1043,車載檢測模塊硬件架構如圖2所示。主要包括維持MCU 運行的最小外圍系統,兩路CAN電路,電源轉換等其他電路。

2.2 MCU固件升級內部Flash區間劃分

STM32F105是基于Cortex-M3內核的互聯型微控制器,完成STM32固件升級首先要分析STM32的啟動流程,STM32的啟動流程封裝在啟動文件中。Cortex-M3內核[3]通過設置BOOT[1:0]兩個管腳的電平定位啟動模式[4],啟動模式有三種,分別是Main Flash、System memory、內嵌的SRAM。表1顯示了BOOT[1:0]管腳和啟動模式之間的關系。不同的啟動模式有不同的功能,通常我們的用戶固件程序是燒寫在Main Flash中的。System memory內部存放了內嵌的Bootloader[5]程序,這部分程序在芯片出廠時由ST廠商已經固化在芯片內部,工程師沒法修改只能使用。通過芯片廠商提供的此部分Bootloader可以更新芯片固件,可以選擇幾種外圍總線分別是兩個通用串行接口USART1、USART2,一個CAN總線接口CAN2和一個USB 接口DFU[6]。由于固件是燒寫在Main Flash中的,由表1可知選擇System memory啟動需要更換BOOT[1:0]管腳的電平,因此選擇芯片自帶的Bootloader的方法不適合對批量出廠設備的固件更新。因此本文參考芯片自帶的Bootloader啟動邏輯,通過CAN總線接口,編寫自己的Bootloader程序實現對固件的更新。主要方法是在Main Flash區域中劃分出一段區域存放自己編寫的Bootloader程序引導固件加載和固件升級,而不需要重新設定BOOT[1:0]管腳電平,簡單方便實用。

STM32F105內部有256KB的Main Flash ,起始地址是0x0800 0000, 結束地址是0x0803 FFFF,分成了128頁,每頁2KB。在此升級系統中將整個Flash劃分成三個區域,分別是bootloader區域,升級標志flag存放區域,和用戶應用程序APP區域。Bootloader區域的起始地址是0x0800 0000, 結束地址是0x0800 FFFF,共64KB,在這64KB中劃分出2KB用于存放升級標志,起始地址是0x0800 F800,結束地址是0x0800 FFFF。用戶應用程序APP區域的起始地址是0x0801 0000, 結束地址是0x0803 FFFF,共192KB。Main Flash區域劃分如圖3所示。

2.3 Bootloader程序設計

Bootloader部分的程序沒有實際的用戶功能,只是引導用戶程序APP的啟動和固件的更新。MCU上電后首先執行Bootloader部分的代碼,先判斷升級標志位是不是有效,在此程序中如果升級標志位的值為0xEEEE,則表示需要升級用戶程序固件,否則直接運行用戶應用程序。當需要升級用戶程序固件時,Bootloader接收到上位機發送的固件二進制文件后寫入到APP區域,升級過程中開啟錯誤檢查機制,一旦檢測到錯誤就重新啟動,整個固件程序成功寫入后才擦除升級標志位,MCU重啟,這樣防止將MCU刷成板磚。

2.4 APP用戶程序設計

APP用戶應用程序主要有三個功能,功能一是實現車輛實時信息的獲取和上傳,功能二是接收上位機發送的升級固件命令,將升級標志區域置位,功能三是接收上位機其他命令完成固件版本檢查,Bootloader程序和APP用戶應用程序跳轉,CAN總線波特率設置等。APP用戶應用程序在運行過程中,如果接收到上位機發送的升級固件命令,則直接將升級標志區域寫入0xEEEE,然后重啟整個系統。MCU 重啟后FLASH內數據不會被擦除,所以重啟后進如Bootloader區域后便可以接收固件程序進行升級。

2.5 固件升級系統上位機設計

上位機用MFC編寫,運行上位機后首先掃描CAN設備節點,檢查是否有CAN 設備節點存在,如果設備節點存在則發送查詢設備運行固件類型(Bootloader還是APP)和固件版本的命令,將節點的當前運行固件類型和版本顯示出來,之后便可以發送各種命令對車載設備進行控制,如設置CAN總線波特率、運行APP固件、運行Bootloader固件、擦除APPflash區域的數據、對APP固件升級等。上位機發送的命令,見表2。固件升級步驟見圖4。

3 結束語

本文設計了一款基于CAN總線的車載檢測模塊固件升級系統,包括上位機和固件兩個部分,固件分成引導加載程序Bootloader部分和用戶應用程序APP部分,避免了由于使用芯片自帶的Bootloader對固件進行升級時改變BOOT[1:0]管腳電平的操作,操作簡單、方便。此系統可以用于STM32任何一款支持CAN總線接口的微控制器的固件升級,對采用STM32做微控制器的嵌入式產品有一定的指導意義。

參考文獻:

[1] 陳程杰.基于CAN總線的ECU在線刷新和遠程服務系統的開發[D].天津大學,2017.

[2] 羅峰,孫澤昌.汽車CAN總線系統原理、設計與應用[M].北京:電子工業出版社,2017.

[3] Yiu J. ARM Cortex-M3權威指南[M].北京:北京航空航天大學出版社,2009.

[通聯編輯:朱寶貴]

主站蜘蛛池模板: 日韩毛片在线播放| 日韩毛片基地| 亚洲无码视频一区二区三区| 999福利激情视频| 中国国产一级毛片| 美女被狂躁www在线观看| 亚洲人成网7777777国产| 丝袜国产一区| 亚洲男人天堂久久| 日韩精品免费一线在线观看| 午夜国产在线观看| 日本日韩欧美| 亚洲一区国色天香| 国产性生大片免费观看性欧美| 美女被躁出白浆视频播放| 日本a级免费| 色悠久久久| 午夜日b视频| 国产毛片久久国产| 亚洲小视频网站| 怡红院美国分院一区二区| 色婷婷色丁香| 在线欧美日韩国产| 国产一区二区三区在线精品专区| 免费观看无遮挡www的小视频| 亚洲美女久久| 91亚洲精选| 亚洲中文字幕av无码区| 欧美日本不卡| 亚洲日本精品一区二区| 国产91成人| 国产尤物jk自慰制服喷水| 国产手机在线ΑⅤ片无码观看| 亚洲另类色| AV片亚洲国产男人的天堂| 尤物精品国产福利网站| 国产专区综合另类日韩一区| 9久久伊人精品综合| 国产粉嫩粉嫩的18在线播放91| 日韩在线视频网| 在线国产欧美| 精品国产aⅴ一区二区三区| 国产精品19p| 国产麻豆精品手机在线观看| 国产成人精品综合| 日韩美女福利视频| 国产噜噜噜视频在线观看| 尤物在线观看乱码| 日韩精品资源| 四虎永久免费在线| 国产精品浪潮Av| 免费不卡在线观看av| 久久天天躁狠狠躁夜夜2020一| 99手机在线视频| 91久久青青草原精品国产| 97狠狠操| 思思热精品在线8| 精品欧美日韩国产日漫一区不卡| 777国产精品永久免费观看| 亚洲精品第五页| 日韩欧美综合在线制服| 日本高清在线看免费观看| 老司机午夜精品网站在线观看 | 国产网站在线看| 自拍亚洲欧美精品| 激情网址在线观看| 久久国产精品嫖妓| 亚洲精品成人7777在线观看| 91原创视频在线| 国产精品视频导航| 欧美亚洲中文精品三区| 欧美一级在线看| 欧美狠狠干| 97超级碰碰碰碰精品| 99999久久久久久亚洲| 日韩在线成年视频人网站观看| 女人爽到高潮免费视频大全| 婷婷亚洲视频| 久久无码免费束人妻| 久久国产免费观看| 美女无遮挡拍拍拍免费视频| a在线亚洲男人的天堂试看|