- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR自引导IAP的应用设计
AVR 自引导IAP 的应用设计
ATmega128 具备引导加载支持的用户程序自编程功能(In-Sysytem Programming by
On-chip Boot Program),它提供了一个真正的由MCU 本身自动下载和更新(采用读/写同
时“Read-While-Write”进行的方式)程序代码的系统程序自编程更新的机制。利用AVR 的这
个功能,可以实现在应用编程(IAP)以及实现系统程序的远程自动更新的应用。
IAP 的本质就是,MCU 可以灵活地运行一个常驻Flash 的引导加载程序(Boot Loader
Program),实现对用户应用程序的在线自编程更新。引导加载程序的设计可以使用任何的
可用的数据接口和相关的协议读取代码,或者从程序存储器中读取代码,然后将代码写入(编
程)到Flash 存储器中。
引导加载程序有能力读写整个Flash 存储器,包括引导加载程序所在的引导加载区本身。引
导加载程序还可以对自身进行更新修改,甚至可以将自身删除,使系统的自编程能力消失。
引导加载程序区的大小可以由芯片的熔丝位设置,该段程序区还提供两组锁定位,以便用户
选择对该段程序区的不同级别的保护。
本节将给出一个实际的的Boot Loader 程序,它可以配合Windows 中的超级终端程序,采
用Xmodem 传输协议,通过RS232 接口下载更新用户的应用程序。
5.2.1 基本设计思想
1. Boot Loader 程序的设计要点
Boot Loader 程序的设计是实现IAP 的关键,它必须能过通过一个通信接口,采用某种协议
正确的接收数据,再将完整的数据写入到用户程序区中。本例Boot Loader 程序的设计要点
有:
l 采用ATmega128 的USART 口实现与PC 之间的简易RS232 三线通信;
l 采用Xmodem 通信协议完成与PC 机之间的数据交换;
l 用户程序更新完成后自动转入用户程序执行;
l Boot Loader 程序采用C 语言内嵌AVR 汇编方式编写,阅读理解方便,可移植性强,
代码小于1K 字。
2 . Xmodem 通信协议
Xmodem 协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协
议。这种协议以128 字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错
误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方
发送一个认可字节。为了便于读者阅读程序,下面简要说明该协议的主要特点,有关Xmoden
的完整的协议请参考其它相关的资料。
l Xmodem 的控制字符:soh 01H、eot 04H、ack 06H、nak 15H、can 18H、
eof 1AH。
l Xmodem 传输数据块格式:“soh packNO 255-packNO …128 个字节的数据
块… cksum”。其中soh为起始字节;packNO为数据块编号字节,每次加一;
255-packNO是前一字节的反码;接下来是长度为128 字节的数据块;最后的cksum
是128 字节数据的CRC 校验码,长度为2 个字节。
l 接收端收到一个数据块并校验正确时,回送ack;接收错误回送nak;而回送can
表示要发送端停止发送。
l 发送端收到ack后,可继续发送下一个数据块(packNO+1);而收到nak则可再次
重发上一个数据块。
l 发送端发送eot表示全部数据发送完成。如果最后需要发送的数据不足128 个字节,
用eof填满一个数据块。
l 控制字符“C”有特殊的作用,当发送端收到“C”控制字符时,它回重新开始以CRC 校验
方式发送数据块(packNO = 1)。
l 每发送一个新的数据块packNO加1,加到OxFF 后下一个数据块的packNO为零。
l 校验方式采用16 位CRC 校验(X^16 + X^12 + X^5 + 1)。
5.2.2 源程序代码
下面给出的源程序是在ICCAVR 中实现的。
/*****************************************************
采用串行接口实现Boot_load 应用的实例
华东师大电子系 马 潮 2004.07
Compiler: ICC-AVR 6.3 1
Target: Mega128
Crystal: 16Mhz
Used: T/C0,USART0
******************************************
您可能关注的文档
- 2015一级消防案例真题.pdf
- 新目标英语九年级Unit3 复习.ppt
- 新目标英语九年级unit7sectionB课件.ppt
- 新目标英语九年级units 1-15重点词汇句型和语法.docx
- 新目标英语七年级下册 Unit12 单元总复习课件 (共21张PPT).ppt
- 新目标英语九年级期末复习Unit 10课件.ppt
- 新目标英语九年级第六单元复习课件.ppt
- 新目标英语七下unit4Section B2.ppt
- 新目标英语七年级下册unit2SectionB1.ppt
- 新目标英语九年级_Unit_3_课件.ppt
- DB23_T 3866-2024冰上龙舟赛事组织服务规范.docx
- DB32 2163-2012 棉纱单位可比综合电耗限额及计算方法.docx
- DB32∕T 2429-2013 棉花田间生长发育观察记载规范.docx
- DB23_T 3820-2024 工业互联网综合平台数据质量管理规范.docx
- DB23_T 3474-2023非煤智慧矿山信息系统技术规范.docx
- DB3201_T 1106-2022 工程地质层划分技术规范.docx
- DB33T 2515-2022公共机构“零碳”管理与评价规范.docx
- DB3301_T 0415-2023 装修垃圾收运处置管理规范.docx
- DB3311/T 106―2019“丽水山居”民宿服务要求与评价规范.docx
- DB3201T 1127-2022 慈善捐赠受赠管理规范.docx
最近下载
- 金蝶云苍穹考试认证理论考题汇总(精华版).pdf VIP
- 钢梯设计图集15J401.pdf VIP
- 在项目规划评审会上的致辞发言3.docx
- 建筑工程图集 G410-1~2:1.5m×6.0m预应力混凝土屋面板(2004年合订本).pdf VIP
- 《康复评定技术》课件——第十七章 常见神经疾病的评定技术.ppt VIP
- 山东省水产品出口贸易现状、问题及对策分析.docx VIP
- 2025年上海黄浦区中考模拟语文试卷(含答案) .pdf VIP
- 《综合与实践:白昼时长规律的探究》教案.docx VIP
- 2025年妇产科护理技术规范.pdf VIP
- 施工现场高温季节安全防护与防暑管理培训.pptx VIP
文档评论(0)