今日跟大家分享參加野火【瑞薩RA MCU創意氛圍賽】選手的項目——基于CAN總線的UDS診斷Bootloader升級MCU工具。
一個MCU固件升級工具,基于瑞薩RA4M2的CAN總線通信接口,UDS協議實現程序升級,可以滿足產品迭代、修復問題、優化性能等多方面的需求。實現操作,將升級包放到sd中,即可實現多個MCU自動化升級。更多具體操作一起看看下面的講解!
前言
UDS診斷協議(ISO14229),是一項國際標準,為汽車電子系統中的診斷通信定義了統一的協議和服務。它規定了與診斷相關的服務需求,并沒有設計通信機制。ISO14229僅對應用層和會話層做出了定義。UDS包含了ISO14229下屬的七個子協議,其中ISO14229-2是在會話層,其他6個子協議在應用層。這讓我想到大學學習計算機網絡知識中OSI七層網絡模型。
OSI模型
如果MCU要實現UDS功能,還需要建立傳輸層和網絡層,小昭使用的是ISO15765來實現這兩層功能,剩下就是數據鏈路層和物理層,這兩層屬于底層,MCU已經幫我們實現,做些簡單配置就可以了。
底層功能配置
① CAN總線配置
canID接收配置、中斷函數請點擊文末閱讀原文參考文章:
② 定時器配置
OSI網絡需要獲取毫秒系統時間,判斷數據傳輸是否超時。
③ SD卡配置
后面會介紹,升級文件放在SD卡中。
具體可以看
Renesa 瑞薩 RA4M2 移植文件系統FAT32
https://blog.csdn.net/weixin_43746325/article/details/130451569
SD卡DMA功能
網絡層
ISO15657協議,它是為上層應用做服務,假設上層應用下發了256個字節給到網絡層,要是物理層實現就頭很大了,大家都知道,在標準CAN中,一次最多只能傳八個字節數據。所以就有網絡層的出現,15675實現將上層數據進行拆包,八個八個字節數據給到物理層,相反,如果物理層接收到數據,然后將一幀一幀數據丟給網絡層,網絡層會找到頭數據和尾數據,將一幀幀數據進行打包給到應用層。這就是網絡層,ISO15765的作用,實現數據拆包和打包的作用。
保持會話,TesterPresent(0x3E)服務,該 服 務 用 于 將 一 個 或 多 個 服 務 器 保 存 在 defaultSession 之 外 的 診 斷 會 話 中 。
項目測試
未完待續
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17831瀏覽量
360307 -
CAN總線
+關注
關注
145文章
1973瀏覽量
132225 -
接口
+關注
關注
33文章
8933瀏覽量
153191 -
計算機
+關注
關注
19文章
7626瀏覽量
90163 -
bootloader
+關注
關注
2文章
238瀏覽量
46451
原文標題:【瑞薩RA MCU創意氛圍賽作品賞析】項目2——基于CAN總線的UDS診斷Bootloader升級MCU工具(上)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
基于CAN總線的UDS診斷bootloader升級MCU工具

TSMaster 的 CAN UDS 診斷操作指南(上)

TSMaster 的 CAN UDS 診斷操作指南(下)

評論