MEGA8单片机的远距离在线升级设计

上传人:新** 文档编号:499910340 上传时间:2023-08-11 格式:DOC 页数:6 大小:285.50KB
返回 下载 相关 举报
MEGA8单片机的远距离在线升级设计_第1页
第1页 / 共6页
MEGA8单片机的远距离在线升级设计_第2页
第2页 / 共6页
MEGA8单片机的远距离在线升级设计_第3页
第3页 / 共6页
MEGA8单片机的远距离在线升级设计_第4页
第4页 / 共6页
MEGA8单片机的远距离在线升级设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《MEGA8单片机的远距离在线升级设计》由会员分享,可在线阅读,更多相关《MEGA8单片机的远距离在线升级设计(6页珍藏版)》请在金锄头文库上搜索。

1、MEGA8单片机的远距离在线升级设计广州市天河双龙电子有限公司 耿德根北京汇讯电子技术有限公司 张树民摘要:本文介绍了如何利用MEGA8通过RS485总线进行远距离在线升级的方法,介绍了MEGA8的BOOT功能,并给出了比较详细的程序流程图和部分源程序。由于该部分具有通用性,所以可很容易地移植到AVR其它MEGA系列的设计方案中。关键词:ISP,IAP,BOOT引导,RISC,熔丝位一、MEGA8单片机简介ATMEL公司最新推出的AVR系列单片机MEGA8,内含8K FLASH程序存储器,1K的内部SRAM,512字节的内部EEPROM。为了便于升级,除了提供ISP在线编程功能以外,还提供了B

2、OOT引导功能,为实现IAP在系统升级提供了可能。与传统的51单片机不同,MEGA8为RISC结构,在16MHz的晶振下,可以提供高达16MIPS的处理性能,外设包括1个USART同异步串口,1个SPI接口,1个TWI(兼容I2C协议)接口,3个PWM,2个8位定时器,1个16位定时器,一个模拟比较器,还有最多6路10bit、2路8bit 的A/D接口等,内部还自带WDT、BOD,及最高达8M的可校准RC,供电电压最宽可从2.7V到5.5V。由于它具有如此多的功能及相对低廉的价格,使其在工控、仪表、电力、医疗、通讯、家电等诸多电子领域取得了广泛的应用。二、ISP和IAPISP即在系统编程(In

3、 System Program),可以通过下载线对PCB板上的单片机直接进行烧录,而不必将单片机取下来,这已经大大方面了我们的设计,而最新的IAP,即在应用中编程(In Application Program),则可以通过在程序运行中接收新的升级数据,然后将自身重新编程的一个过程。这需要一个引导程序,而这个程序可以由用户编写后保存在单片机的BOOT区当中。下面通过一个实际的例子,介绍MEGA8如何实现远距离在线升级。三、系统简介本系统包括30个分机,采用RS485总线连接,由上位计算机进行总控制。系统构成如图一。MEGA8含有一个USART,本次只使用其异步通讯功能。具体设置为19200bps

4、、8、N、1工作方式,经过MAX485E芯片转换为RS485工作电平。MAX485E的DT和RT接在一起,由MEGA8单片机的PD2口控制,这样可以避免单片机在发送的时候接收自己发送的数据。RS485总线分机1分机2分机30计算机232转485图一由于计算机只提供RS232接口,而要使用RS485通讯,就必须进行接口转换。目前市场上有多种型号RS232-RS485接口模块,功能也很强。基本上都采用了串口窃电、波特率自适应技术等,极大地简化了用户的重复开发,本次采用了迈威公司的MWE485-A型号转换模块。实际测试在19200波特率下,传送距离可达600m,发送和接收非常可靠。四、MEGA8的B

5、OOT介绍由于MEGA8具有IAP可在应用中升级的功能,本系统在软件设计上采用了BOOT引导功能。主程序采用C语言编写,BOOT程序则采用了汇编编写。为了提高下载速度,本次设计放弃了ATMEL提供的AVRPROG烧录软件,另外采用了一个下载烧录速度较高的通讯协议,在程序代码量比较大的时候,具有更明显的速度优势,并且也便于用户二次开发。MEGA8的引导功能可通过相应的熔丝位来确定,BOOT引导程序的入口、BOOT区的大小可以通过烧录单片机的BOOTSZ1、BOOTSZ0两个熔丝位来确定,熔丝位如表一:表一单片机复位后向量入口也是通过烧录单片机的BOOTRST熔丝位来确定。熔丝位如表二:表二另外,

6、单片机在执行IAP编程时需要用到Store Program Memory Contorl Register(SPMCR)寄存器,该寄存器结构如表三:表三该寄存器包含了页擦除,页写入,BOOT区加密设置,页填充及页的RWW(Read While Write)等功能的设置。需要注意的是在执行每个功能时,都需要设置SPMEN标志,在随后的4个时钟周期内运行SPM指令,该标志会在SPM执行完成后自动清零。函数如下:Do_SPM: Wait_SPM: ; 等待页操作完成intempl,SPMCRsbrc templ,SPMENrjmp Wait_SPMout SPMCR,tempspm ; 执行SPM指

7、令.dw 0xffffnop ret有了以上的函数,就可以很容易的进行页擦除、页写入、页填充等程序的设计了。比如需要执行页擦除指令,则首先要将需要擦除的页地址写入Z寄存器,然后置位SPM的PGERS(页擦除位)和SPMEN(SPM允许位),然后再调用Do_SPM函数即可。程序如下:ldtemp,y+mov zl,temp ; Z指针地址赋值ldtemp,y+mov zh,temp ldi temp,(1PGERS)|(1SPMEN) ; 页写入标志rcall Do_SPM; 执行页写入五、串口函数单片机所有的控制命令和数据都是通过串口接收和发送的,由于为RS485总线,单片机通过PD2对RS4

8、85的发送允许进行控制。串口发送和接收及初始化函数如下:串口接收函数:uartGet:cbiportd,2; rs485接收允许uartGet_wait:sbis UCSRA,RXC; 等待串口数据 (直到RXC=1)rjmp uartGet_waitin temp,UDR; 返回接收数据ret串口发送函数:uartSend:sbiportd,2; rs485 发送语序out UDR,temp; 开始发送uartSend_wait:sbis UCSRA,TXC; 等待发送完成 (直到 TXC=1)rjmp uartSend_waitsbiUCSRA,TXCcbiportd,2; rs485 发

9、送完成,关闭发送。ret串口初始化函数:uartInit:; 允许发送,接收,8,N,1模式ldi temp,12outUBRRL,templditemp,0out UBRRH,templdi temp,(1RXEN)|(1TXEN)out UCSRB,templditemp,(1URSEL)|(1UCSZ1)|(1UCSZ0)outUCSRC,tempret六、BOOT程序介绍及流程图MEGA8单片机上电后设置冷启动标志,而热启动入口则设置热启动标志。然后初始化堆栈、串口以及必要的I/O状态等。初始化完成后,如果BOOT程序检测到热启动标志则直接进入烧录状态;如果为冷启动标志则继续检测下载位

10、是否允许(本设计通过PB0开关选择),如为高电平则进入烧录状态,如为低电平则进入用户程序。BOOT引导程序在设计时提供了两个入口,一个是系统复位时的冷启动入口,另一个是用户程序在运行时进入升级程序的热启动入口。BOOT程序主要包括烧录子程序、串口发送、串口接收、引导主程序等。串口发送采用了查询发送完成标志。这样当该标志被设置时,证明串口的停止位已经发送完成,这对于RS485通讯非常有用。另外在发送时还要打开MAX485E的发送允许,发送完成后再关闭。烧录程序主要使用“SPM”指令,该指令完成对MEGA8的烧录等功能。而读取MEGA8的指令则使用“LPM”。由于擦除,页填充,写入,读出等基本命令

11、单片机都已解释完成,因此所有过程都可以由计算机端程序进行控制。程序开始时,计算机端发送命令,先对单片机的页进行擦除,然后接收一帧数据,接收完毕后执行页写入命令,写入完成再进行读出进行校验,如果校验无误再继续写入下一页,直到所有页都写入完毕,即完成一次下载过程。如果传输或页校验出现错误,程序会连续进行5次测试,如再仍不成功,则认为本次下载失败。主程序流程图如图二。MEGA8单片机的主程序通过RS485接口执行计算机发送的命令,并且定义了一个更新代码的特殊命令,当接收到该命令时,主程序首先关闭中断,关闭看门狗,然后跳转到BOOT的热启动入口,再执行BOOT下载烧录程序。下载完成后再直接跳转到$00

12、00地址进入用户程序区,这样就完成了代码的在线升级。为了保证该命令的可靠性,本程序设计时规定单片机必须在100ms内同时接收到两次该命令才认为正确,超过100ms则不予认可。计算机端的程序采用了VB6编写,执行界面如图三。当然用户可以根据实际情况来编写适合于自己的界面。BOOT入口设置冷启动标志设置热启动标志主程序入口初始化热启动?YPB0=1?转应用程序:$0000Y上载程序开始帧数据接收页擦除命令A页写入命令B页读出命令E页数据填充上载完成D返回ACK返回NAK转应用程序:$0000帧接收错误图二图三七、结束语由于采用了MEGA8单片机的BOOT功能,使得远距离在线升级,譬如通过以太网、无线等方式,成为了可能,这对于系统调试及以后的升级维护都提供了极大的便利,这也是今后单片机发展的一个方向。参考文献1 耿德根,等.AVR高速嵌入式单片机原理与应用.北京:北京航空航天大学出版社,20022 马潮,等.ATmega8原理及应用手册.北京:清华大学出版社,20033 MAX485.PDF,MAXIM产品资料全集6.0版(光盘)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号