chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

使用Y modem協(xié)議進行瑞薩RX MCU OTA數(shù)據(jù)傳輸

瑞薩嵌入式小百科 ? 來源:瑞薩MCU小百科 ? 2025-07-29 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、Y modem協(xié)議

X modem是較早的文件傳輸協(xié)議。Y modem是X modem的改良版,有傳輸快速穩(wěn)定優(yōu)勢,通常所說的Y modem一般指YModem-1K。

bb2e3c28-6843-11f0-a6aa-92fbcf53809c.png

圖1 Y modem協(xié)議幀

二者核心差異可概括為下表:

bb424bfa-6843-11f0-a6aa-92fbcf53809c.png

點擊可查看大圖

二、基于X modem的OTA代碼修改

目前瑞薩官網(wǎng)提供的OTA代碼基于X modem協(xié)議(例如r20an0640ej樣例程序的System_BootLoader工程),改為Y modem協(xié)議需修改協(xié)議相關(guān)的傳輸邏輯、校驗邏輯、幀處理邏輯等部分。

01握手信號調(diào)整

X modem握手:

通常接收方可能以簡單ACK或特定字符(如有些實現(xiàn)中接收方發(fā)‘C’表示用CRC16校驗)啟動,邏輯相對簡單。

Y modem握手:

必須由接收方發(fā)起YMODEM_C(字符‘C’,ASCII碼0x43),發(fā)送方收到后才開始傳輸起始幀(含文件名、文件大)。

修改點:

新增函數(shù)void ymodem_send_c(void),用于發(fā)送Ymodem協(xié)議必需的0x43(‘C’)握手信號,通知發(fā)送方傳輸起始幀。

02起始幀結(jié)構(gòu)與處理

X modem起始幀:

一般直接傳輸數(shù)據(jù)塊,無文件信息。

Y modem起始幀:

需將文件名、文件大小放入起始幀(以SOH133字節(jié)長度幀傳輸,包號固定0x00,包號反碼0xff)。

bb5b64fa-6843-11f0-a6aa-92fbcf53809c.png

圖2 Y modem起始幀

修改點:

定義Y modem起始幀結(jié)構(gòu)體ymodem_start_frame_t

修改幀校驗函數(shù)uint8_t xmodem_check_frame (uint8_t* const p_xmodem_buff),增加對起始幀格式的校驗邏輯。

03數(shù)據(jù)幀接收處理

X modem數(shù)據(jù)幀:

幀頭為SOH(128字節(jié)塊)或STX(部分衍生版1024字節(jié)塊),現(xiàn)有代碼幀頭為SOH(128字節(jié)塊)。

Y modem數(shù)據(jù)幀:

幀頭以SOH(128字節(jié)信息塊)、STX(1024字節(jié)信息塊)區(qū)分,傳輸時需按規(guī)則填充數(shù)據(jù)。SOH幀如最后一包不足128字節(jié)時的填充0x1A處理,最后一幀長度仍為133字節(jié);STX幀最后一包數(shù)據(jù)小于等于128字節(jié)以133字節(jié)幀長度發(fā)送,大于128字節(jié)小于等于1024字節(jié),以1029長度幀發(fā)送,無效數(shù)據(jù)填充0x1A。

bb6cc7a4-6843-11f0-a6aa-92fbcf53809c.png

圖3 Y modem數(shù)據(jù)幀

修改點:

修改uint8_txmodem_check_frame(uint8_t* const p_xmodem_buff),修改數(shù)據(jù)幀的接收處理。

04結(jié)束幀處理

X modem結(jié)束幀:

一般發(fā)送EOT(0x04)字符,接收方回ACK即結(jié)束。

Y modem結(jié)束幀:

采用SOH133字節(jié)空包(數(shù)據(jù)區(qū)、校驗等填0x00)作為結(jié)束幀,需構(gòu)建對應(yīng)結(jié)束幀發(fā)送邏輯:

bb7e9efc-6843-11f0-a6aa-92fbcf53809c.png

圖4 Y modem結(jié)束幀

修改點:

修改uint8_t xmodem_rx_frame (uint8_t* p_xmodem_buff),對結(jié)束幀進行判斷,響應(yīng)兩次EOT,分別回復(fù)NACK和ACK。

05校驗機制升級

X modem校驗:

使用校驗和或CRC16,目前X modem例程使用校驗和。

Y modem校驗:

Y modem強制規(guī)范使用CRC16校驗,且計算范圍明確為信息塊數(shù)據(jù)(不含幀頭、包號等)。需確保CRC16計算函數(shù)精準,修改原X modem可能存在的簡易校驗邏輯:

修改點:

新增static uint16_t CRC16_check (unsigned char *q,int len)函數(shù),對數(shù)據(jù)進行CRC16校驗。

移除Xmodem校驗和邏輯,強制使用CRC16校驗。

06數(shù)據(jù)緩沖區(qū)配置

X modem數(shù)據(jù)緩沖配置:

XModem數(shù)據(jù)包會被送入一個由buffer.c控制的緩沖區(qū)。該緩沖區(qū)為循環(huán)緩沖區(qū),即當(dāng)?shù)竭_緩沖區(qū)末尾時,會回環(huán)至起始位置。由于數(shù)據(jù)幀接收的數(shù)組從132字節(jié)變成1029字節(jié),RAM開銷變大。

XModem例程里,每個packet132bytes(128數(shù)據(jù)+3header+1校驗),代碼中的XMODEM_FRAME_SIZE是132U。

Y modem數(shù)據(jù)緩沖配置:

YModem例程里,定義YMODEM_FRAME_SIZE_1024為1029U,YMODEM_FRAME_SIZE_128為133U。

定義環(huán)形存儲的BUFFER_SIZE定義為1542,保持原有配置,數(shù)據(jù)的解析正常。

修改點:

可根據(jù)實際測試結(jié)果增加BUFFER_SIZE

07硬件驅(qū)動與配置適配

瑞薩RX系列需確保串口驅(qū)動適配Y modem的波特率、數(shù)據(jù)位、停止位等配置,可以使用smart configurator進行驅(qū)動配置(如常見的波特率 115200bps、8數(shù)據(jù)位、1停止位、無校驗等)。

088多文件傳輸適配

若OTA需傳輸多個文件,需在代碼中添加多文件遍歷、逐個構(gòu)建起始幀+數(shù)據(jù)幀+結(jié)束幀的邏輯。由于客戶只要求傳輸單個文件,不涉及相關(guān)修改。

三、實測結(jié)果

01測試環(huán)境搭建

bb90dd10-6843-11f0-a6aa-92fbcf53809c.png

點擊可查看大圖

02功能測試

MCU執(zhí)行bootloader升級程序,串口輸出"Please start file send using YModem protocol...";

Teraterm選擇Ymodem協(xié)議發(fā)送固件文件;

傳輸過程中通過Bus Hound抓取幀序列,驗證:

起始幀(文件名/大小正確);

數(shù)據(jù)幀(1024字節(jié)塊與CRC16校驗正確);

結(jié)束幀(判定正確)。

升級完成后,MCU自動跳轉(zhuǎn)至新固件,功能驗證通過。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18392

    瀏覽量

    379037
  • 瑞薩
    +關(guān)注

    關(guān)注

    36

    文章

    22414

    瀏覽量

    89237
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1597

    瀏覽量

    81390
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4922

    瀏覽量

    72251
  • 文件傳輸協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    961
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    電子MCU無感OTA升級功能介紹

    在工業(yè)控制、電機驅(qū)動乃至物聯(lián)網(wǎng)邊緣節(jié)點中,固件在線升級(OTA)已成為產(chǎn)品生命周期管理的標配。然而傳統(tǒng)OTA往往伴隨停機、風(fēng)險與低效。電子MCU
    的頭像 發(fā)表于 05-15 14:36 ?1176次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>MCU</b>無感<b class='flag-5'>OTA</b>升級功能介紹

    UART協(xié)議數(shù)據(jù)傳輸格式是怎樣的

    什么是UART協(xié)議?UART的工作原理是什么?UART協(xié)議數(shù)據(jù)傳輸格式是怎樣的?
    發(fā)表于 11-02 08:14

    如何使用IrDa進行紅外數(shù)據(jù)傳輸?

    我們正在使用 IrDa 進行紅外數(shù)據(jù)傳輸。但是在 LPC54018 的用戶手冊中沒有提到 IrDa。請更新此控制器是否具有 IrDa 兼容性,否則我們?nèi)绾?b class='flag-5'>進行此通信。在 LPC 1768 和 1788 中對 UART
    發(fā)表于 03-21 06:19

    DMA進行數(shù)據(jù)傳輸和CPU進行數(shù)據(jù)傳輸的疑問

    求大佬解答,本人正在學(xué)習(xí)STM32單片機中DMA直接數(shù)據(jù)存儲部分的內(nèi)容 看了DMA簡介后,也上手過實例代碼,但是沒有實際的項目經(jīng)驗,所以有以下疑問: DMA外設(shè)在進行數(shù)據(jù)傳輸的操作,是否也是需要經(jīng)過
    發(fā)表于 05-25 17:18

    數(shù)據(jù)傳輸的通信系統(tǒng)設(shè)計

    本文主要針對單片機在有線數(shù)據(jù)傳輸方面的應(yīng)用,介紹了一種基于單片機MSP430 實現(xiàn)的MODEM數(shù)據(jù)傳輸系統(tǒng)。方案采用一個嵌入式的MODEM 作為系統(tǒng)
    發(fā)表于 06-13 13:38 ?21次下載

    基于短消息的OTA數(shù)據(jù)傳輸安全機制

    基于短消息的OTA數(shù)據(jù)傳輸安全機制 摘要:OTA技術(shù)的應(yīng)用,使得移動通信不僅能夠提供語音和數(shù)據(jù)服務(wù),還能提供更便捷的增值服務(wù)。依靠基于短消息的OT
    發(fā)表于 05-23 15:13 ?22次下載

    Modem數(shù)據(jù)傳輸標準

     Modem數(shù)據(jù)傳輸標準 數(shù)據(jù)傳輸標準是指MODEM
    發(fā)表于 12-28 13:29 ?1222次閱讀

    數(shù)據(jù)傳輸速率是什么意思

    數(shù)據(jù)傳輸速率是什么意思 數(shù)據(jù)傳輸速率是通過信道每秒可傳輸的數(shù)字信息量的量度。數(shù)據(jù)傳輸速率也稱為吞吐率。數(shù)據(jù)傳輸速率由很
    發(fā)表于 03-18 14:45 ?5120次閱讀

    tcp_ip 協(xié)議講座:介紹數(shù)據(jù)傳輸

    介紹了tcp協(xié)議數(shù)據(jù)傳輸的問題(交互式數(shù)據(jù)傳輸,批量數(shù)據(jù)傳輸,流量控制,擁塞避免)
    的頭像 發(fā)表于 07-03 11:05 ?3949次閱讀
    tcp_ip <b class='flag-5'>協(xié)議</b>講座:介紹<b class='flag-5'>數(shù)據(jù)傳輸</b>

    如何實現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸?

    如何實現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸? 隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的設(shè)備和應(yīng)用需要實現(xiàn)互聯(lián)互通。而MQTT作為一種輕量級的發(fā)布/訂閱消息傳輸協(xié)議,在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用廣泛,成為了許多設(shè)備之
    的頭像 發(fā)表于 11-15 17:23 ?1644次閱讀

    DTU的多種協(xié)議,解鎖數(shù)據(jù)傳輸的無限可能

    DTU,即數(shù)據(jù)傳輸單元,是一種在物聯(lián)網(wǎng)(IoT)網(wǎng)絡(luò)中常用的設(shè)備,主要用于在傳感器和智能設(shè)備之間進行數(shù)據(jù)傳輸。DTU使用多種協(xié)議來實現(xiàn)這一目標,這些協(xié)議不僅提高了
    的頭像 發(fā)表于 03-01 11:00 ?1495次閱讀
    DTU的多種<b class='flag-5'>協(xié)議</b>,解鎖<b class='flag-5'>數(shù)據(jù)傳輸</b>的無限可能

    PCIe數(shù)據(jù)傳輸協(xié)議詳解

    、網(wǎng)卡和聲卡等,以實現(xiàn)高效的數(shù)據(jù)傳輸。以下是對PCIe數(shù)據(jù)傳輸協(xié)議的介紹: 一、PCIe協(xié)議的基本概念 PCIe協(xié)議定義了一系列規(guī)范和要求,
    的頭像 發(fā)表于 11-26 16:12 ?4849次閱讀

    如何使用 HTTP 協(xié)議進行數(shù)據(jù)傳輸

    在互聯(lián)網(wǎng)時代,數(shù)據(jù)傳輸是信息交換的基礎(chǔ)。HTTP協(xié)議作為最常用的數(shù)據(jù)傳輸協(xié)議之一,支撐著全球數(shù)十億用戶的數(shù)據(jù)交互。 HTTP
    的頭像 發(fā)表于 12-30 09:24 ?1955次閱讀

    MPU數(shù)據(jù)傳輸協(xié)議詳解

    在現(xiàn)代電子系統(tǒng)中,微控制器(MPU)扮演著核心角色,負責(zé)處理各種任務(wù)和數(shù)據(jù)。為了實現(xiàn)這些功能,MPU需要與其他設(shè)備進行數(shù)據(jù)交換。數(shù)據(jù)傳輸協(xié)議就是規(guī)定這些
    的頭像 發(fā)表于 01-08 09:37 ?1231次閱讀

    電子RX261/RX260 32位觸摸控制MCU數(shù)據(jù)表與技術(shù)手冊

    電子RX261/RX260 32位觸摸控制MCU數(shù)據(jù)表與技術(shù)手冊
    的頭像 發(fā)表于 03-17 16:32 ?986次閱讀