- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序下载器之Ymodem移植
程序下载器之 Ymodem 移植 程序下载器之 Ymodem 移植 程程序序下下载载器器之之YYmmooddeemm移移植植 文/图 linquan315 最近一个项目要用到程序下载器,自己画了一个LPC1754 的板子,其主要功能是为了完成 井下采煤支架控制器的远程程序更新。板子是画出来了但是由于研究院里的软件工程师太忙, 这个项目时间不是很紧张,软件的编写工作只能滞后,由于我对 LPC系列的微控制器不熟,想 拿来练一下手,自己试试写下软件。 程序下载提供了两个接口,USB 接口和 232 接口,由于USB 涉及到上位机程序、USB驱 动、以及微控制器程序的编写,暂时打算用 232 实现程序的下载。自己写一套协议太不划算, 所以打算用YModem 协议进行文件的传输。首先进行的是 YModem的移植工作。 进入下载界面 基于LPC1788 的程序包 ourdev_723845V5YYG0.rar(文件大小:94K) (原文件名:UART0-YModem.rar) 选择 1,下位机程序会一直等待文件的传送 程序发送成功以后会显示如上界面,会显示文件名,和程序大小 1 首先在网上收集资料: 1.1 Ymodem协议分析 Ymodem协议是一种发送并等待的协议。即发送方发送一个数据包以后,都要等待接收方的确 认。如果是ACK 信号,则可以发送新的包。如果是NAK 信号,则重发或者错误退出。 1.2 文件传输过程 文件传输过程的开启: (1)开启是由接收方开启传输,它发一个大写字母C 开启传输。然后进入等待(SOH)状态, 如果没有回应,就会超时退出。 (2)发送方开始时处于等待过程中,等待 C。收到 C 以后,发送(SOH)数据包开始信号, 发送序号(00),补码(FF),“文件名”,“空格”“文件大小”“除去序号和序号补码外,补满 128 字节”,CRC 校验两个字节。进入等待(ACK)状态。 注意,开启过程中的程序包的大小是固定的 128 字节,在文件传送的过程中,最后一个文件也 将会被填满 0x1A的数据,数据帧的CRC 校验失败也会导致重传,这样说来程序传送的字节数 不能作为文件的空间大小的计量单位。要想准确的获知文件的大小,必须通过读取起始帧的信 息来取得。起始帧的格式如下:首先是文件名,然后文件名结束后是一个空的字符’\0’用于 指示文件名字符串已经结束,接下来就是文件的大小,这个更简单,譬如文件大小有 100,这 里的字符就是 0x31,0x30,0x30,同样,最后一个字符就是以’\0’指示文件大小字符串已 经结束。要想取得文件的大小只需将读取的值减去0x30,然后乘以十进制的位权数就能得到。 (3)接收方收到以后,CRC 校验满足,则发送ACK。发送方接收到ACK,又进入等待“文件 传输开启”信号,即重新进入等待“C”的状态。 文件传输过程: (4)前面接收方只是收到了一个文件名,现在正式开启文件传输,Ymodem 支持128 字节和 1024 字节一个数据包。128 字节以(SOH)开始,1024字节以(STX)开始。 接收方又发出一个“C”信号,开始准备接收文件。进入等待“SOH”或者“STX”状态。 (5)发送接收到“C”以后,发送数据包,(SOH)(01序号)(FE补码)(128位数据) (CRC校验),等待接收方“ACK”。 (6)重复上一个过程,直到文件传送完毕。 文件传输结束: (7)文件发送完以后,发送方发出一个“EOT”信号,接收方也以“ACK”回应。 然后接收方会再次发出“C”开启另一次传输,若接着发送方会发出一个“全0数据包”,接收 方“ACK”以后,本次通信正式结束。 (8)当然Ymodem相对于 Xmodem改进的地方就在于传输再次开启以后,又可以发送另外 一个文件,即一次传输允许发送多个文件,但这个特性我就不准备实现了。 2 编写程序 关键的代码如下所示,限于篇幅,笔者不打算在此把所有的代码详细列出,这些代码比较简单, 文章中加了少许的注释。至于CRC 校验部分,笔者参考的是网上的资料,这些文档在一些电子 论坛上可以轻易的得到,不再详述。 /*******************************************************************************
您可能关注的文档
最近下载
- 个人开通天然气委托书范本 .pdf VIP
- 2025-2026学年人教版(2024)小学体育与健康二年级(全一册)教学设计(附教材目录).docx
- MG-WD系列采煤机说明书.doc
- 2025年河南省高考物理试卷(含答案解析).docx
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx VIP
- 2025年第42届全国中学生物理竞赛预赛试题(学生版+解析版) .pdf VIP
- 安全牛:API安全技术应用指南(2024版).pdf VIP
- 2024年浙江省中考统考科学试卷试题真题(含答案解析).pdf VIP
- 《吴门验方》学习笔记.docx VIP
- 新目标大学英语-《综合教学教程》第四册(WELearn答案解析).DOC VIP
文档评论(0)