色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MM32F0140的UDS Bootloader學習筆記

jf_pJlTbmA9 ? 來源:靈動MM32MCU ? 作者:靈動MM32MCU ? 2023-10-30 17:11 ? 次閱讀

本文將介紹在使用 MM32F0140 系列 MCU 實現 UDS Bootloader 過程中涉及到的 FlexCAN、UDS 和 Bootloader 等相關基本概念。

MM32F0140 簡介

MM32F0140 使用高性能的 Arm? Cortex-M0 內核的 32 位微控制器,最高工作頻率可達 72MHz,內置 64KB Flash 和 8KB SRAM,有豐富的增強型 I/O 端口和包括 FlexCAN 在內等多種外設,適用于汽車診斷儀,后裝汽車協控制器和消防監控等多種應用場合。

wKgZomUD3dqAA_MTAAI-pLN0XwE052.png 圖 1 MM32F1040 簡介

什么是 FlexCAN?

CAN 是控制器域網 (Controller Area Network, CAN) 的簡稱,是一種功能豐富的車用總線標準,被設計用于在不需要主機(Host)的情況下,允許網絡上的單芯片和儀器相互通信。是由研發和生產汽車電子產品著稱的德國 BOSCH 公司開發了,并最終成為國際標準(ISO11898)。是國際上應用最廣泛的現場總線之一。FlexCAN 是 CAN 協議的一個高完成度版本。

MM32F0140 系列 MCU 內嵌的 FlexCAN,符合 ISO 11898-1 標準,支持 CAN 2.0B 版本協議,位速率高達 1 Mbps,具有非常靈活的用于傳輸和接收的郵箱系統,可以接收和發送 11 位標識符的標準幀,也可以接收和發送 29 位標識符的擴展幀,主要被設計用作車載串行總線,可滿足實時處理、車輛在電磁干擾環境下的可靠操作、成本效益、帶寬等要求。

什么是 UDS?

UDS(Unified Diagnostic Services,統一診斷服務)是一種用于汽車電子控制器 ECU (Electronic Control Units) 環境下的一種診斷通信協議,可實現診斷、固件更新、日常測試等功能,在 ISO 14229 中規定了其實現標準。

在本實例中,UDS 通信是在客戶端-服務端關系中執行的??蛻舳耸?a target="_blank">上位機下載軟件運行于 PC 機,服務端是 MM32F0140 系列 MCU。例如,將 CAN 總線接口連接到 MCU,并將 UDS 請求發送到 MCU。當 MCU 支持 UDS 服務時,它將根據客戶端發出的請求做出相應的響應。

為什么用 Bootloader?

對于 ECU 而言,如果程序內置有基于FlexCAN Bootloader,則每次更新 ECU 的固件可不必再使用燒錄器進行燒錄,而可直接通過 CAN 總線來更新程序,而且隨著汽車智能化的普及,甚至可以對 ECU 進行遠程升級。有無 Bootloader 功能程序結構對比如圖 2 所示:

wKgaomUD3duAZn25AAEc8w8HiRs706.png 圖 2 程序結構對比框圖

為什么要基于 UDS?

為了規范 Bootloader 的全過程。因 UDS 在設計時考慮了 Bootloader 的需求,并為 Bootloader 提供了相關服務以供使用,故主機廠普遍會要求在 UDS 規范的基礎上完成 Bootloader 功能。

使用到哪些 UDS 服務?

● 在 Bootloader 中,使用到 UDS 的 $10、$11、$27 和 $3E 基礎診斷服務,$22、$2E 讀寫 DID 服務,$31、$34、$36 和 $37 固件數據傳輸相關服務。

● 在 APP 中,使用到 UDS 的 $85 和 $28 服務,保證暫停 CAN 正常通信,暫停記錄 DTC,讓被升級設備升級。

UDS 提供的服務概覽如圖 3 所示:

wKgaomUD3d2AfAneAAGkPR_jOn8663.png 圖 3 UDS 服務概覽

CAN、UDS 和 OSI 模型之間的關系

為了更好的理解 UDS, 讓我們了解一下 CAN 總線、UDS 和 OSI 模型之間的關系。

CAN 對應于 OSI 模型中的數據鏈路層和物理層描述(根據 ISO 11898)。

與 CAN 相比, UDS (ISO 14229) 是一種 “更高層協議”, 在 OSI 模型中使用到會話層和應用層,如下圖 4 所示:

wKgZomUD3d-AQqF_AADj8UApLK0518.png 圖 4 UDS 與 OSI 模型對應圖

UDS 的消息結構

PDU

Network_Protocol Data Unit, 網絡層協議數據單元

PDU 是用于建立對等實體間的通信,是一組信息和數據的集合,表示了發送發和接收方對等實體之間傳遞的信息和數據。由地址信息(CAN ID)、協議控制信息(PCI) 和數據構成。

圖 5 為 UDS 消息結構示意圖,圖 6 為 UDS 消極響應示意圖。

wKgaomUD3eCAX-WNAADCGs_74Sc728.png 圖 5 UDS 消息結構
wKgZomUD3eGAJiV_AADtgHNXd-s380.png 圖 6 UDS 消極響應示意

PCI

Protocol Control Information,協議控制信息

PCI 字段本身與 UDS 請求本身沒有關系,但是對于在 CAN 總線上發出的診斷 UDS 請求是必需的。PCI 字段可以長達 1 ~ 3 字節,并且包含與傳輸不適合單個 CAN 幀的消息有關的信息。

SID

Service ID,服務標識符

當希望使用特定的 UDS 服務時,UDS 請求消息應該在數據有效負載中包含 UDS 服務標識符 (SID)。標識符分為請求 SID 和響應 SID。

SFB

Sub Function Byte,子函數字節

在一些 UDS 請求幀中使用,在一些 UDS 服務中,如 0x22,子函數字節沒有使用。一般來說,當一個請求被發送到 ECU 時,ECU 可以做出正向或負向的響應。在響應為正向的情況下,測試人員可能想要抑制響應(因為它可能是不相關的)。這是通過在子函數字節中將第 1 位設置為 1 來完成的。負向的反應是無法被抑制的。剩下的7位可以用來定義最多 128 個子函數值。例如,當通過 SID 0x19(讀取診斷信息)讀取 DTC 信息時,子函數字節可用于控制報告類型。

DID

Data Identifier,數據標識符

在大多數 UDS 請求服務中,各種類型的請求數據參數用于提供 SID 和可選子函數字節以外的請求進一步配置。

ISO-TP 標準

ECU 固件更新通常涉及大量有效載荷的通信,而 ISO-TP 標準(ISO 15765 )就是為了解決基于 CAN 的車輛診斷的大量有效載荷問題而提出。該標準指定了基于CAN 的車輛網絡傳輸協議和網絡層服務,最常見的用例就有 UDS (ISO 14229-1)。

ISO-TP 標準概述了如何通過分段、流量控制和重組來傳輸高達 4096 字節的 CAN 數據有效載荷。ISO-TP 定義了用于通信的 CAN 幀,如下圖 7 所示。

wKgaomUD3eOAX7uQAAGStRcFXEU389.png 圖 7 ISO-TP 幀類型

通過使用 ISO-TP 標準將 UDS 的消息結構 PDU 分為了四種類型:

SF (Single Frame, 單幀)

描述單幀傳輸。

FF (First Frame, 首幀)

描述多幀傳輸的起始。

CF (Consecutive Frame,連續幀)

用于在多幀傳輸中傳輸數據。

FC (Flow Control Frame,流控幀)

用于在多幀傳輸過程中,對報文流控制。

UDS 的單幀通信和多幀通信:

單幀通信如圖 8 所示:

wKgZomUD3eSAD-48AAB9wQ3YCuo207.png 圖 8 單幀通信

多幀通信過程如圖 9 所示:

wKgZomUD3eWAcGg9AAFsnwc8nFk785.png 圖 9 多幀通信

基于 UDS Bootloader 實現更新 APP 流程框圖

MM32F0140 系列 MCU 使用 FlexCAN 實現基于 UDS Bootloader 更新 APP 的流程框圖如10所示:

wKgaomUD3eeAXHPiAAIkt_wa-PE265.png 圖10 更新 APP 流程

結語

本文以 MM32F0140 系列 MCU 的 FlexCAN 為例,簡要介紹了在使用 MM32F0140 系列 MCU 實現 UDS Bootloader 過程中涉及到的 FlexCAN、UDS 和 Bootloader 等相關基本概念,并介紹了 UDS 的消息結構和 ISO-TP 標準,以及展示了 MM32F0140 系列 MCU 使用 FlexCAN 實現 UDS Bootloader 更新 APP 的流程框圖。

來源:靈動MM32MCU

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7568

    瀏覽量

    151615
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17176

    瀏覽量

    351660
  • bootloader
    +關注

    關注

    2

    文章

    235

    瀏覽量

    45656
收藏 人收藏

    評論

    相關推薦

    基于MM32F0140系列MCU實現UDS Bootloader的設計

    1、使用MM32F0140系列MCU實現UDS Bootloader  MM32F0140 使用高性能的 Arm?Cortex-M0 內核的 32 位微控制器,最高工作頻率可達 72M
    發表于 09-15 16:35

    AN0052從MM32F0130移植到MM32F0140(英文版)

    AN0052 從MM32F0130移植到MM32F0140(英文版)
    發表于 02-22 18:43 ?0次下載
    AN0052從<b class='flag-5'>MM32F</b>0130移植到<b class='flag-5'>MM32F0140</b>(英文版)

    MM32F0140 產品手冊(中文版)

    MM32F0140 產品手冊(中文版)
    發表于 02-22 18:45 ?0次下載
    <b class='flag-5'>MM32F0140</b> 產品手冊(中文版)

    MM32F0140 產品手冊(英文版)

    MM32F0140 產品手冊(英文版)
    發表于 02-22 18:45 ?0次下載
    <b class='flag-5'>MM32F0140</b> 產品手冊(英文版)

    MM32F0140 用戶手冊(中文版)

    MM32F0140 用戶手冊(中文版)
    發表于 02-22 18:46 ?0次下載
    <b class='flag-5'>MM32F0140</b> 用戶手冊(中文版)

    MM32F0140 用戶手冊(英文版)

    MM32F0140 用戶手冊(英文版)
    發表于 02-22 18:46 ?0次下載
    <b class='flag-5'>MM32F0140</b> 用戶手冊(英文版)

    MM32F0140 勘誤表(中文版)

    MM32F0140 勘誤表(中文版)
    發表于 02-22 18:47 ?0次下載
    <b class='flag-5'>MM32F0140</b> 勘誤表(中文版)

    MM32F0140 勘誤表(英文版)

    MM32F0140 勘誤表(英文版)
    發表于 02-22 18:48 ?0次下載
    <b class='flag-5'>MM32F0140</b> 勘誤表(英文版)

    MM32F0140學習筆記——CRC

    MM32F0140學習筆記——CRC
    的頭像 發表于 11-10 18:27 ?641次閱讀
    <b class='flag-5'>MM32F0140</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——CRC

    MM32F0140學習筆記——窗口看門狗(WWDG)

    MM32F0140學習筆記——窗口看門狗(WWDG)
    的頭像 發表于 10-27 09:45 ?645次閱讀
    <b class='flag-5'>MM32F0140</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——窗口看門狗(WWDG)

    MM32F0140學習筆記——FlexCAN 控制器局域網

    MM32F0140學習筆記——FlexCAN 控制器局域網
    的頭像 發表于 10-27 09:25 ?1487次閱讀
    <b class='flag-5'>MM32F0140</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——FlexCAN 控制器局域網

    MM32F0140 SPI學習筆記

    MM32F0140 SPI學習筆記
    的頭像 發表于 09-26 16:51 ?613次閱讀
    <b class='flag-5'>MM32F0140</b> SPI<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    MM32F0140 DMA學習筆記

    MM32F0140 DMA 學習筆記
    的頭像 發表于 09-18 16:57 ?726次閱讀
    <b class='flag-5'>MM32F0140</b> DMA<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    MM32F0140 UART學習筆記

    MM32F0140 UART學習筆記
    的頭像 發表于 09-26 16:45 ?774次閱讀
    <b class='flag-5'>MM32F0140</b> UART<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    MM32F0140 GPIO學習筆記

    MM32F0140 GPIO學習筆記
    的頭像 發表于 09-26 16:42 ?573次閱讀
    <b class='flag-5'>MM32F0140</b> GPIO<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>
    主站蜘蛛池模板: 欧美另类极品videosbest| 无码任你躁久久久久久久| 亚洲一区二区女搞男| 久久91精品国产91| 在线观看亚洲专区5555| 免费鲁丝片一级在线观看| 阿片在线播放| 无码专区久久综合久综合字幕| 国产曰批试看免费视频播放免费| 伊人大香线蕉精品在线播放| 免费A级毛片无码鲁大师| 啊…嗯啊好深男男小黄文| 污到湿的爽文免费阅读| 久久香蕉国产线看观看精品| 超碰最新地址| 亚洲欧洲无码AV在线观看你懂的| 免费观看美女的网站| 囯产愉拍亚洲精品一区| 一日本道伊人久久综合影| 青青伊人久久| 九九在线中文字幕无码| 哺乳期妇女挤奶水36d| 亚洲欧美中文在线一区| 奇米色偷偷| 精品福利一区| 成人精品视频在线观看播放| 亚洲午夜精品A片久久不卡蜜桃 | 538在线播放| 色播成人影院| 久久这里只有精品国产精品99 | 青娱乐在线一区| 精品无码国产AV一区二区三区| 成年视频xxxxxx在线| 亚洲综合春色另类久久| 日韩精品卡1卡2三卡四卡乱码 | 好男人在线观看免费视频WWW| 99久久免费国产精精品| 亚洲AV色香蕉一区二区9255| 内射白浆一区二区在线观看| 国产又粗又猛又爽又黄的免费视频 | www黄色com|