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.

[通聯編輯:朱寶貴]

主站蜘蛛池模板: 免费毛片a| 97超级碰碰碰碰精品| 成人免费网站在线观看| 久久伊人色| 国产精品19p| 波多野结衣久久高清免费| 国内精品久久人妻无码大片高| 国产va免费精品| 成人在线第一页| 久久国产亚洲偷自| 波多野结衣国产精品| 玩两个丰满老熟女久久网| 欧洲精品视频在线观看| 99爱视频精品免视看| 国产精品 欧美激情 在线播放| 日韩精品一区二区深田咏美| 99久久精品无码专区免费| 2020国产免费久久精品99| 婷婷综合亚洲| 伊在人亞洲香蕉精品區| 国产精品无码久久久久AV| 国产香蕉在线视频| 四虎国产永久在线观看| 亚洲色欲色欲www网| 亚洲国产成人在线| 国产精品va免费视频| 国产91高跟丝袜| 精品一区二区三区中文字幕| 一级毛片基地| 国产精品免费久久久久影院无码| 99资源在线| 午夜丁香婷婷| 免费国产小视频在线观看| 久久综合色天堂av| 国产在线第二页| 国产门事件在线| 久久精品亚洲热综合一区二区| a天堂视频| 色综合天天娱乐综合网| 久久精品中文无码资源站| 99视频在线观看免费| 欧美中日韩在线| 国产主播在线一区| 免费人成网站在线高清| 2021天堂在线亚洲精品专区| 一区二区自拍| 丝袜无码一区二区三区| 日韩 欧美 小说 综合网 另类 | 美女免费黄网站| 亚洲一区毛片| 美女毛片在线| 国产成人亚洲毛片| 午夜一区二区三区| 无码高潮喷水在线观看| 中文字幕一区二区视频| 99热最新在线| 国产精品亚洲一区二区在线观看| 国产黄色爱视频| 欧美一级高清片欧美国产欧美| 日韩经典精品无码一区二区| 国产欧美日韩在线一区| 日韩免费毛片视频| 欧美成人一级| 老熟妇喷水一区二区三区| 精品国产亚洲人成在线| 亚洲黄色视频在线观看一区| 久久综合九色综合97婷婷| 亚洲第一区欧美国产综合| 亚洲无码高清一区二区| 中文字幕在线看| 香蕉久人久人青草青草| 99精品免费欧美成人小视频 | 人人爽人人爽人人片| 韩国自拍偷自拍亚洲精品| 国产手机在线观看| 在线无码九区| 欧美精品在线免费| 精品国产aⅴ一区二区三区| 污视频日本| 国产主播福利在线观看| 亚瑟天堂久久一区二区影院| 美女无遮挡拍拍拍免费视频|