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

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

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

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

使用Y modem協(xié)議進(jìn)行瑞薩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)勢(shì),通常所說的Y modem一般指YModem-1K。

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

圖1 Y modem協(xié)議幀

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

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

點(diǎn)擊可查看大圖

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

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

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

X modem握手:

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

Y modem握手:

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

修改點(diǎn):

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

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

X modem起始幀:

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

Y modem起始幀:

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

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

圖2 Y modem起始幀

修改點(diǎn):

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

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

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ū)分,傳輸時(shí)需按規(guī)則填充數(shù)據(jù)。SOH幀如最后一包不足128字節(jié)時(shí)的填充0x1A處理,最后一幀長(zhǎng)度仍為133字節(jié);STX幀最后一包數(shù)據(jù)小于等于128字節(jié)以133字節(jié)幀長(zhǎng)度發(fā)送,大于128字節(jié)小于等于1024字節(jié),以1029長(zhǎng)度幀發(fā)送,無效數(shù)據(jù)填充0x1A。

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

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

修改點(diǎn):

修改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ū)、校驗(yàn)等填0x00)作為結(jié)束幀,需構(gòu)建對(duì)應(yīng)結(jié)束幀發(fā)送邏輯:

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

圖4 Y modem結(jié)束幀

修改點(diǎn):

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

05校驗(yàn)機(jī)制升級(jí)

X modem校驗(yàn):

使用校驗(yàn)和或CRC16,目前X modem例程使用校驗(yàn)和。

Y modem校驗(yàn):

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

修改點(diǎn):

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

移除Xmodem校驗(yàn)和邏輯,強(qiáng)制使用CRC16校驗(yàn)。

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

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

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

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

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

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

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

修改點(diǎn):

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

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

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

088多文件傳輸適配

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

三、實(shí)測(cè)結(jié)果

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

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

點(diǎn)擊可查看大圖

02功能測(cè)試

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

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

傳輸過程中通過Bus Hound抓取幀序列,驗(yàn)證:

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

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

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

升級(jí)完成后,MCU自動(dòng)跳轉(zhuǎn)至新固件,功能驗(yàn)證通過。

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

    關(guān)注

    147

    文章

    18797

    瀏覽量

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

    關(guān)注

    37

    文章

    22459

    瀏覽量

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

    關(guān)注

    15

    文章

    1614

    瀏覽量

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

    關(guān)注

    30

    文章

    4956

    瀏覽量

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

    關(guān)注

    0

    文章

    4

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    電子MCU無感OTA升級(jí)功能介紹

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

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

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

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

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

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

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

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

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

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

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

    Modem數(shù)據(jù)傳輸標(biāo)準(zhǔn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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