• 欢迎光临重庆谱思机器人
  • 023-63207381
  • 18996196754
  • sales@pusirobot.com
  • 中文  |  English
    pusirobot-logo-newcolorpusirobot-logo-newcolorpusirobot-logo-newcolorpusirobot-logo-newcolor
    • 首页
    • 公司介绍
    • 产品中心
      • 一体化步进电机
      • 小型步进电机控制器
      • 小型步进电机驱动器
      • 电容式液位传感器
      • Python 可编程控制器
      • 分析仪
      • 再生放电钳
    • 技术服务
      • 技术文章
      • 产品用户手册
      • 常见问题
      • 软件工具
      • 驱动下载
    • 最新消息
      • 产品发布
      • 公司动态
    • 行业应用
      • 医疗器械设备行业
      • 印刷包装机械行业
      • 文创行业
      • 机器人行业
      • 纺织机械设备行业
      • 自动化行业
    • 联系我们
    • 商城中心
      • 我的帐户
      • 结账
      • 购物车
    ✕

    YModem协议解析

    • 首页
    • 技术服务 技术文章
    • YModem协议解析
    YModem协议解析

    XModem是最早的文件传输协议之一,以每次传输128字节的速度传输文件,而YModem是基于XModem的改进传输协议,也是现在最常用的文件传输协议之一。相较于XModem,YModem的优点在于,它可以每次传输1024字节,传输的速度大大提升,且传输稳定。不仅如此,YModem协议还支持多文件同时传输。谱思各款控制器进行固件升级便是采用的该协议。

    为了提升固件升级的效率以及让客户更加方便地使用谱思控制器,我们将固件升级写到python程序中,封装为一个脚本。如何将固件升级写到程序里呢?首先需要了解升级文件的传输过程。将两个485转换器并联到控制器的通讯端口,打开串口助手,在固件升级过程中就可以通过串口助手监控到数据传输的具体格式。通过监控的数据可以发现,第一步是给控制器发送回车符让控制器进入bootloader模式,而后的数据传输的过程便与YModem协议完全符合。数据监控除了可以验证数据传输规律以外,在程序编写出现bug时,还可以帮助我们快速地找到问题所在。

    YModem协议是固件升级的重头戏,大致分为三个部分:起始帧、数据帧、结束帧。

    起始帧传输的内容包括:帧头、帧序、升级文件的文件名、文件大小、帧尾,数据部分一共是128字节,写完文件大小后总字节不足128个字节需要写’00补齐’。其结构如下:
    SOH num -num filename filesize nul crch crcl
    帧头固定为SOH或STH,SOH=0x01,表示这帧数据有128字节的数据,当一帧数据有1024字节时,即用STH=0x02表示。num表示帧序,从’00’开始,-num为帧序的反码,也就是说’num’ + ‘-num’ = FF。filename为文件名,filesize为文件大小,filename和filesize都要以空字符’00’结束。CRC为校验码,需要注意的是YModem协议采用的是CRC16-CCITT欧洲版本的CRC校验。
    数据帧真正开始进行升级文件的数据传输。将升级文件以每帧1024字节的大小进行切割,依次传输。其结构如下:
    STH num -num data[1024] crch crcl
    当最后一帧数据不足1024字节时,补’1A’即可。还有一种特殊情况,当最后一帧数据不足128字节时,仍补’1A’,此时的帧结构为:SOH num -num data[128] crch crcl。
    结束帧传输的数据也是128字节,只是其传输的数据全为’00’,结构如下:
    STH num -num nul[128] crch crcl
    传输这条数据的目的在于告诉控制器升级文件全部传输结束啦!

    在这个过程中需要注意两个问题:
    1、CRC校验码的计算:CRC校验采用的是CRC16-CCITT,高位在前,低位在后。当校验码高位为00时,一定要非常注意,千万不要省略掉,否则升级过程中断,控制器就变砖头了。
    2、对最后一帧数据的判断:判断条件一定要充足,小于128字节,等于128字节,大于128字节小于1024字节,等于1024字节,漏掉其中任何一个条件都可能导致升级失败。

    相关文章

    2025年6月5日

    谱思应用案例丨智能消防水炮


    阅读全文
    2025年5月16日

    谱思应用案例 | 纠偏系统


    阅读全文
    2025年4月19日

    谱思 | 精密控制的关键:限位


    阅读全文
    • 首页
    • 公司介绍
    • 产品中心
      • 一体化步进电机
      • 小型步进电机控制器
      • 小型步进电机驱动器
      • 电容式液位传感器
      • Python 可编程控制器
      • 分析仪
      • 再生放电钳
    • 技术服务
      • 技术文章
      • 产品用户手册
      • 常见问题
      • 软件工具
      • 驱动下载
    • 最新消息
      • 产品发布
      • 公司动态
    • 行业应用
      • 医疗器械设备行业
      • 印刷包装机械行业
      • 文创行业
      • 机器人行业
      • 纺织机械设备行业
      • 自动化行业
    • 联系我们
    • 商城中心
      • 我的帐户
      • 结账
      • 购物车

    我们的使命

    顺应时代需求,我们积极投入到研发工作中去。向市场提供新技术新产品的同时,进一步将客户的意见融于产品设计中,从而向市场和客户提供更为易用的产品。

    关于我们

    公司致力于工业自动控制系统及机器人的研制和销售,并为行业客户提供智能化控制系统解决方案,帮助客户提高生产效率和产品品质。开发的产品均具有自主知识产权,核心技术获得多项国家专利。



    公司电话: 023-63207381 18996196754

    传       真: 023-63207381

    邮       箱:sales@pusirobot.com

    中文网址:http://www.pusirobot.com

    公司地址:重庆市渝北区黄山大道中段5号5楼18号

    渝ICP备15001176号-1

    © 2019 重庆谱思机器人控制系统有限公司. All Rights Reserved     网站地图
      ✕

      登录

      忘记密码?

      创建一个帐户?

      ✕

      购物车

      您的购物车目前是空的。

      小计: ¥0.00
      合计: ¥0.00
      进行结账 查看购物车
      • Shop
      • 我的帐户
      • 0 购物车