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

基于S32K144的電控制動系統固件升級系統開發

2023-01-06 08:48:18許金鵬李軍偉李連強汪志瑩董文龍
內燃機與動力裝置 2022年6期
關鍵詞:單片機

許金鵬,李軍偉*,李連強,汪志瑩,董文龍

1.山東理工大學交通與車輛工程學院,山東 淄博 255049;2.一汽解放青島汽車有限公司,山東 青島 266217;3.北京裕峻汽車技術研究院,北京 100016

0 引言

電控制動系統(electronic brake system,EBS)的制動性能與人們的行車安全密切相關,EBS控制器的升級優化是行車安全的重要保障。傳統的升級方式是拆開EBS控制器的外殼,利用各種調試接口,使用寫入器對控制器進行升級維護。這種升級方式的缺點是需要單獨引出下載接口,升級過程操作復雜,費時費力,同時有泄露源程序的風險。現在的升級方式主要是通過EBS的控制器局域網絡(controller area network,CAN)接口升級程序,該升級方式可以提高保密性,減少現場升級維護的時間及成本[1-3]。文獻[4]中基于S32R274芯片開發汽車電子控制單元引導加載程序,為單片機固件升級系統開發提供了技術參考。文獻[5]中將基于S32K148芯片的引導加載程序與汽車網關結合,實現了車輛網關模塊開發。本文中針對S32K144主控芯片,設計開發EBS固件升級系統,結合循環冗余校驗(cyclic redundancy check,CRC)算法,提高升級過程中的可靠性與穩定性,解決實際工程中EBS升級困難的問題。

1 EBS固件升級系統開發

1.1 工作原理

EBS包括主控制器、前橋控制器和后橋控制器3個控制器。主控制器接收駕駛員發出的制動信號,信息處理后,發送給前、后橋控制器。前、后橋控制器接收到主控制器發來的信號后,控制常閉增壓電磁閥工作,輸出高壓氣體,分別控制前、后制動器工作。主控制器位于車輛內部,前、后橋控制器分別位于車輛的前、后橋位置,由于所在位置均不易拆卸,EBS后期升級維護比較困難。本文中采用CAN總線作為通信媒介,通過上位機向指定控制器發送特定的控制報文,指定控制器調用Flash模塊實現程序刷寫,實現EBS固件升級。

1.2 底層程序開發

主控制器、前橋控制器和后橋控制器的主控芯片均為S32K144,控制器升級系統底層程序開發主要分為CAN模塊、Flash模塊、中斷向量表的重映射、S19文件解析、CRC校驗5部分。

1.2.1 CAN模塊

CAN模塊實現控制器主控芯片S32K144與上位機的通信。CAN模塊時鐘頻率設置為8 MHz,波特率設置為500 kbit/s,報文傳輸格式設置為標準幀,上位機向EBS控制器發送報文的標識符(identification,ID)定義為0x601,EBS控制器向上位機發送報文的ID定義為0x602。CAN模塊的接收緩沖區開啟ID濾波器,只接收固定ID的報文,防止升級過程中其他報文干擾,提高工作效率。

1.2.2 Flash模塊

Flash模塊實現對控制器單片機內存空間的擦除和寫入。S32K144芯片擁有512 kB的P_Flash內存空間,P_Flash內存空間主要存儲運行程序,斷電時不丟失數據,分為128個扇區,最小擦除單位為1個扇區,S32K144芯片的Flash不支持邊讀邊寫,需將執行擦除和寫入部分的代碼復制到隨機存取存儲器(random access memory,RAM)中運行,設置Flash通用命令寄存器FTFC_FCCOB0為0x09,可擦除某個扇區。設置FTFC_FCCOB0寄存器的為0x07,可寫入數據至單片機內存中。在單片機寫入前必須將該區域擦除,才能保證數據正確寫入。

S32K144單片機Flash內存空間存儲地址分為2部分:升級系統分配地址段為0x00000000~0x00008FFF,用來存儲固件升級系統的底層程序;用戶程序分配地址段為0x00009000~0x0007FFFF,用來存儲用戶程序。

1.2.3 中斷向量表的重映射

EBS固件升級系統底層程序的中斷向量表使用默認地址,地址段為0x00000000~0x00000400,將用戶程序中鏈接文件m_interrupts起始位置修改為0x00009000,可實現用戶程序中斷向量表重映射,用戶程序中斷向量表地址為0x00009000~0x00009400。

1.2.4 S19文件解析

S19文件由S32DS IDE開發環境編譯生成,用來存儲用戶程序。S19文件包括記錄數據的類型、剩余數據字節數、存儲地址、數據及校驗和,前2個字符用ASCII碼表示,其余數據用十六進制表示。記錄數據的類型字節數為2個,用S0、S1、S2、S3、S5、S7、S8、S9表示,S0表示記錄的開始,代表S19文件開始;S1、S2、S3分別表示需要寫入至單片機內存中的數據存儲地址長度為2個字節、3個字節、4個字節;S5不是每個S文件必須包含的,表示S1、S2、S3的個數;S7、S8、S9表示中止記錄,代表S19文件結束;剩余數據字節數表示存儲地址、數據以及校驗和的總字節數,字節數為1個;存儲地址表示該行S19數據在單片機中的具體地址;數據表示需更新寫入的代碼,字節數為0~32;校驗和字節數為1[6]。

S19文件寫入單片機內存時,要對S19文件每行數據解析與校驗,保證每行數據正確傳輸,具體流程如圖1所示。

圖1 解析與校驗一行S19記錄流程圖

由圖1可知:解析S19文件時先判斷該行寫入的數據首字符是否為S,若是則解析記錄數據的類型,確定存儲地址的長度,若不是S會返回錯誤指令;對剩余數據字節數、存儲地址、數據、校驗和分別進行解析;解析完畢后根據校驗和對該行需要寫入的數據進行校驗,校驗通過該行S19數據會寫入至單片機內存中,不通過則返回錯誤指令。

1.2.5 CRC校驗

EBS固件升級系統對數據的通信安全要求非常嚴格,如果用戶程序不能正確升級,控制器無法正常工作。CRC是數據通信中常用的查錯校驗方法,該方法基于線性編碼理論,對傳輸數據按照一定的規則進行多項式計算,保證數據傳輸的完整性和正確性[7]。基本原理為:將發送方發送的m位信息序列作為1個多項式的系數,按照某種規則產生CRC碼并發送出去;接收方接收到CRC碼,根據接收到的信息序列按照一定規則進行解析,確定傳輸過程是否出現錯誤。

發送方在編碼前由原始數據產生原始多項式p(x),p(x)最高次冪為m-1,選用CRC_16查表校驗法,生成多項式k(x)=x16+x15+x2+1,最高次冪為16,將原始多項式p(x)與x16相乘后除以k(x),所得的余式為q(x)[8],即為產生的CRC碼,將CRC碼按照一定的規則編碼后,得到的多項式

T(x)=x16p(x)+q(x)。

接收方將T(x)除以k(x),若余數為0,則傳輸正確,否則傳輸錯誤。S19所有傳輸數據寫入單片機內存后,對寫入的所有數據進行CRC計算,得到校驗碼A。上位機對發送給控制器的S19數據也進行同樣的CRC算法,得到校驗碼B,對比校驗碼A、B,若相同則證明寫入到控制器單片機內存的程序和S19文件完全相同,不同則證明寫入錯誤。

1.3 工作流程

S32K144單片機使用ARM Cortex M系列的內核,每次單片機上電或復位后從Reset_Handler復位向量開始,對內部系統及RAM等進行初始化后再跳轉到main函數執行程序[9]。EBS 3個控制器芯片相同,升級工作流程相同,控制器升級工作流程如圖2所示。

圖2 控制器升級工作流程

1)當控制器上電或復位后,對單片機應用環境初始化,對時鐘模塊、CAN模塊、Flash模塊等初始化。

2)在主函數中等待3 s,如果3 s內收到來自上位機的升級指令,進入用戶升級程序,如果未收到來自上位機的升級指令,跳出升級程序,直接執行用戶程序。

3)執行用戶升級程序,對原來用戶程序的Flash區域進行擦除,擦除地址為0x9000~0x7FFFF。

4)單片機內存接收來自上位機傳輸的S19數據,接收1幀S19文件數據后保存至數組中,同時應答上位機。

5)上位機發送完1行S19數據后,發出完畢命令,控制器接收到命令后,將保存在數組中的整行S19文件數據進行解析校驗,校驗通過后應答上位機。

6)循環往復,直至上位機發送完畢所有S19文件數據。

7)單片機接收完來自上位機S19文件的所有數據后,對寫入至單片機內部所有數據進行CRC校驗,并與S19文件數據CRC校驗碼對比;若校驗通過,則回應上位機升級成功,跳轉至新用戶程序的開始地址執行程序;若校驗未通過,則回應上位機升級失敗,不執行新的用戶程序。

2 EBS固件升級系統上位機開發

調用某公司CAN分析儀的相關庫函數,發送和接收CAN報文,實現上位機與控制器之間的信息交互[10]。

2.1 上位機界面設計

使用PyCharm中的工具包pyqt5調用QT Designer庫[11],搭建EBS固件升級系統上位機圖形界面,對搭建好的界面生成對應的Python界面配置代碼,如圖3所示。

圖3 上位機界面

由圖3可知,上位機界面主要分為CAN配置、下載設置2部分。CAN配置功能包括配置波特率、打開CAN卡、復位CAN卡以及關閉CAN卡。下載設置功能包括發送指定控制器(主控制器、前橋控制器、后橋控制器)升級命令報文、加載S19文件、開始更新、導出信息。發送指定控制器(主控制器、前橋控制器、后橋控制器)升級命令報文對應上位機3個不同按鍵,對應的升級命令分別為0xFF01、0xFF02、0xFF03。上位機顯示界面分為3個部分:顯示運行狀態、進度條、運行窗口。顯示運行狀態將上位機當前運行狀態在窗口中顯示,進度條顯示當前下載進度,運行窗口實時顯示S19文件下載到第幾行。

2.2 上位機通信協議

為實現上位機與控制器的正常通信,需要自定義通信協議[12-13]。本通信協議使用的CAN報文為標準幀,上位機使用CAN分析儀分別與主控制器、前橋控制器及后橋控制器進行通信,上位機與主控制器通信過程如圖4所示。

圖4 上位機與主控制器間的通信過程

1)上位機通過ID為0x601的報文發送主控制器開始升級命令(0xFF01),主控制器接收到命令后進入用戶升級程序。先對保存用戶程序的Flash區域進行擦除,擦除成功后,通過ID為0x602的報文向上位機發送0xAC,表示連接成功。

2)上位機收到0xAC后,通過ID為0x601的報文發送主控制器要刷寫的S19文件數據,主控制器接收數據后回應0xAC,發送1行S19數據完畢后,上位機通過ID為0x601的報文向主控制器發送0xFE,表示1行S19發送完畢。

3)主控制器收到0xFE后,將保存的1行S19數據寫入到指定的單片機內存,寫入成功后,通過ID為0x602的報文向上位機發送0xAC,表示刷寫成功。

4)循環往復,直至上位機將所有的S19文件數據發送完畢。

5)上位機通過ID為0x601的報文向主控制器發送0xFB以及該S19文件的CRC校驗碼,主控制器接收后對寫入到單片機內存的數據進行CRC校驗,得到另1個校驗碼,比較2個校驗碼,相同則表示數據寫入成功,主控制器通過報文ID為0x602的報文發送0xAB,表示寫入成功;不同表示寫入失敗,主控制器通過報文ID為0x602的報文發送0xAE,表示CRC校驗失敗,寫入失敗。

6)S19文件數據成功寫入后,主控制器跳出用戶升級程序,執行新的用戶程序,實現用戶程序在線升級。

7)某控制器在用戶程序刷寫時,另2個控制器正常工作。如3個控制器都需進行程序寫入,先選擇1個控制器進行程序寫入,完成后對下1個控制器進行程序寫入,依次完成在線升級。

3 臺架試驗驗證

在商用車氣壓制動系統臺架上進行EBS固件升級試驗。通過S32DS軟件對用戶程序編譯后生成S19文件,上位機CAN卡配置完畢后,點擊主控制器按鍵,完成上位機與主控制器的連接,之后點擊“加載文件”“開始更新”按鈕,主控制器開始升級用戶程序。升級后所有的按鈕變為不可使用狀態,防止誤觸導致程序下載失敗。當上位機的運行狀態框中出現“S文件更新完成”后,主控制器完成升級,使用相同的方式對前橋和后橋的控制器進行程序更新。

EBS系統的3個控制器升級完畢后,使用J_Link讀取單片機內存中的數據,并與下載的S19文件進行對比,驗證程序下載的完整性以及準確性。通過對比用戶程序的S19文件以及讀取的單片機內存數據,二者完全一致,用戶程序正確下載至單片機內存中。

將EBS的3個控制器安裝在商用車氣壓制動系統臺架上,進行制動試驗,踩下制動踏板后,前、后制動控制器工作,打開電磁閥,氣罐中的壓縮氣體被輸送到對應管路中實現制動,完成EBS控制器系統升級。

4 結語

1)EBS固件升級系統實現了基于CAN總線通信技術的在線升級,方便了后期技術人員對EBS控制器的升級維護。

2)EBS固件升級系統對用戶程序進行了雙重校驗,S19文件每行數據按照S19文件解析校驗方式進行校驗,所有數據寫入單片機內存后進行1次CRC校驗,提高了升級系統的準確性。

3)EBS固件升級系統能夠滿足實際工程要求,解決了實車環境中EBS控制器升級困難的問題,提升了后期維護升級的便利性、安全性。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 成人福利在线免费观看| 免费一级成人毛片| 亚洲国产欧美国产综合久久| 正在播放久久| a免费毛片在线播放| 午夜毛片免费观看视频 | 丁香婷婷综合激情| 国产精品hd在线播放| 国产精品永久在线| 无码aaa视频| 亚洲va欧美ⅴa国产va影院| 亚洲国产精品无码久久一线| 高清无码手机在线观看| 国产SUV精品一区二区6| 伊人久热这里只有精品视频99| 九九香蕉视频| 99久久99视频| 波多野结衣在线一区二区| 狠狠躁天天躁夜夜躁婷婷| 亚洲国产欧美目韩成人综合| 色欲不卡无码一区二区| 在线另类稀缺国产呦| 亚洲美女操| 一边摸一边做爽的视频17国产| 亚洲欧美在线综合一区二区三区 | 女同久久精品国产99国| 午夜电影在线观看国产1区| 亚洲欧洲自拍拍偷午夜色| 欧美午夜一区| 91麻豆国产在线| 亚洲最黄视频| 亚洲综合专区| 日韩一级毛一欧美一国产| 国产69精品久久久久妇女| 国产精品美女自慰喷水| 中文无码日韩精品| 九九热免费在线视频| jizz在线观看| 欧美成人aⅴ| 欧美另类第一页| 欧美激情第一欧美在线| 毛片视频网址| 欧美中文字幕无线码视频| 精品欧美日韩国产日漫一区不卡| 欧美激情福利| 亚洲国产成人综合精品2020| 欧美h在线观看| 麻豆精品久久久久久久99蜜桃| 啦啦啦网站在线观看a毛片| 少妇极品熟妇人妻专区视频| 五月婷婷综合网| 国产网站免费看| 欧美一级99在线观看国产| 91无码网站| 欧美午夜视频| 久久伊伊香蕉综合精品| 中文一级毛片| 51国产偷自视频区视频手机观看 | 久久精品人妻中文视频| 精品国产免费第一区二区三区日韩| 国产一级裸网站| 精品国产99久久| 91免费在线看| 精品国产污污免费网站| 国产亚洲欧美日韩在线一区二区三区| 成人免费视频一区| 久久综合久久鬼| 亚洲人成亚洲精品| 国产91色在线| 麻豆精品视频在线原创| 亚洲无码91视频| 欧美福利在线观看| 亚洲伊人天堂| 中文字幕啪啪| 午夜性刺激在线观看免费| 国产91小视频在线观看| 久久99热这里只有精品免费看 | 潮喷在线无码白浆| 亚洲美女视频一区| 欧美精品高清| 国产91丝袜在线观看| 欧美日韩成人|