首页 透过UART端口实现C8051F系列单片机的固件更新

透过UART端口实现C8051F系列单片机的固件更新

举报
开通vip

透过UART端口实现C8051F系列单片机的固件更新 第20卷第2期 2010年 4月 安 徽 冶金 科 技 职 业 学 院 学报 Journal of Anhui Vocational College of Metallurgy and Technology V01.20.No.2 Apr.2010 透过 UART端口实现 C805 1 F 系列单片机的固件更新 范 森 巳 秣 (安徽冶金科技职业学院科研处 安徽马鞍山 243041) 摘 要 :针对C8051Fxxx系列单片机,通过对串行通信协议、固件存储结构、固件擦写过程等诸多方面...

透过UART端口实现C8051F系列单片机的固件更新
第20卷第2期 2010年 4月 安 徽 冶金 科 技 职 业 学 院 学报 Journal of Anhui Vocational College of Metallurgy and Technology V01.20.No.2 Apr.2010 透过 UART端口实现 C805 1 F 系列单片机的固件更新 范 森 巳 秣 (安徽冶金科技职业学院科研处 安徽马鞍山 243041) 摘 要 :针对C8051Fxxx系列单片机,通过对串行通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 、固件存储结构、固件擦写过程等诸多方面考虑,提出了一种通 过 UART端口实现稳定、可靠、健壮的固件更新 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。 关键{司:C8051Fxxx;UART;FLASH页;中断向量表;监控程序;通信协议;编译指令 中图分类号:TP368.1 文献标识码:B 文章编号:1672—9994(2010)02—0053—03 单片计算机在工业 自动控制、仪器仪表中被广 泛使用,这些仪器仪表中的固件,总会存在升级更 新问题。很多情况,现场工作的仪表不方便拆卸或 不允许拆卸,那么仪表固件的更新就成了很大的问 题,本文就目前比较广泛使用的 C8051F系列单片 机,通过常用的串行通信端 口,提供一种稳定、可 靠、健壮的固件更新方案。 1 固件存储结构分析 C8051F系列单 片机所有器 件都有 内置 的 FLASH程序存储器,并且提供了比较完善的读写指 令,为固件提供了一个 自己读写 自己的平台。内置 的FLASH程序存储器擦除是按照页方式实现的, 页的大小为 512字节。也就是说用户在擦除固件 时必须按照 512字节、5 12字节擦除,无法进行单个 字节的擦除。内置的 FLASH程序存储器大体上可 以分为这样三个区域,启动中断向量区、程序区、软 件保护锁定字节,其结构如图 1。 系统启动页,也就是 FLASH的第零页,通常它 主要包括这样两部分程序,一是系统中断向量表, 另一部分是其它程序代码。从 FLASH的第一页 (0x0200)开始就是我们的自由代码区。要实现软 件的自我更新,必须编写一个管理程序,在这称其 为监控程序。它主要 完成硬件 的必要初始化: 收稿日期:2Oo9—12—06;改回日期:2010—03—10 作者简介:范森(1966一),男,安徽冶金科技职业学院管理研究与科 研开发处,工程师。 UART的数据报文解析;固件的擦除、更新。这一 段代码的存放位置至关重要,由于 C8051F的程序 存储器是按页擦除的,要使得这段代码不被破坏, 必须 占用整页的地址空问。这里将其放置在从 0x0200开始的页中。 图 1 FLASH程序存储器结构 固件的更新过程通常是:首先擦除第零页,跳 过监控程序页,然后擦除后续的程序页。程序存储 器一旦被擦除其值就会变成 OxFF(汇编指令 MOV R7,A)。这时如果开始固件更新并出现了意外掉 电、通信异常等故障出现,只要 FLASH第零页不写 入代码在故障排除后,重新开机系统在执行 512次 “MOV R7,A”操作后就会进入监控程序,可以确保 系统不会崩溃。 2 UART通信协议的定制 为了安全可靠的通过 UART端口更新固件,制 · 54 · 安 徽 冶 金 科 技 职 业 学 院 学 报 2010年第 2期 定一套完善的通信协议是必要的。实际应用可以 采用比较常用的解决方案,定制如下的通信帧格 式: 兰 I 垒I望l l 垒!垒: l 璺I垦 其中: SD DA LE FC DATA UNrr FCS ED 开始定界符 目的地址 命令及数据码长 功能码 数据 帧检查顺序 结束定界符 3 软件及编译 实际应用中监控程序完全用 C代码编写,编 译后大约有 1.6K的代码量 ,为它开了 4页空间。 下面是监控程序中要说明的两个函数: (1)页擦除函数 void FLASH — PageErase(uint addr){ | FLASH write pointer | char xdata * data pwrite; pwrite= (char xdata*)addr; | enable H writes/erases*| FI_SCL l= OxO1; /* PSWE = 1:PSEE = 1*/ PSCTL l= 0x03; l initiate page erase l pwrite = O: /* PSWE = 0:PSEE = 0*/ PSCTL& = ~0x03: ,* disable F1ASH writes/erases*/ FLSCL&= ~0x01;} (2)固件擦除函数 void Erase — AllFrmwr(void){ uint d: | disable interrupts | EA = 0: FLASH — PageErase(Ox(K~); f0r(d= FLASH—FIRST;d
本文档为【透过UART端口实现C8051F系列单片机的固件更新】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_577837
暂无简介~
格式:pdf
大小:135KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2011-03-04
浏览量:28