1.2.3 利用用户自定义升级
MSP430系列单片机的Flash存储器分为多个512字节段( 除数据信息段大小是128或者64 个字节)。 各段可单独或多段擦除, 用户可以通过自己编写程序对Flash 实现擦除和写操作,所以很适合于应用程序进行自定义升级[4]。
自定义升级就是在Flash存储器中先植入一段升级程序的代码, 利用该代码通过现有的通信接口实现应用代码升级。原理是在Flash存储器中写入两段不同的程序代码: 一段为升级程序;另一段为用户应用程序,两段代码的地址空间段不能重叠,。从而可以利用升级程序来擦除原有的代码, 然后写入新应用程序代码[5]。
这方法优点在于使用灵活、升级容易、操作方便、现场接线很简单,只需连接通信接口,效率高。用户无需开箱,无需对产品逐个操作就能完成内部程序更新换代,大大减少资源消耗。该方法的缺点是要自己编程一段升级程序,占用了Flash的一部分空间,减少了Flash存储容量。
综合上述对MSP430系列单片机进行程序升级,利用自定义升级程序给用户带来方便、简单,同时也减少了时间和资源。是目前使用比较多的程序升级方式。
1.3 UART原理
UART通用异步收发传输器[6](Universal Asynchronous Receiver/Transmitter [7])。在嵌入式设计应用中,UART用来使主机和外围设备之间进行通信。UART接口包含RS-232、RS-422、RS-485等串口。其它的工作原理是将数据的每一个字符一位一位地发送和接收,在传输过程中由波特率时钟来控制[8]。
UART在发送过程中,首先它将保存在缓冲区的并行数据读取,然后转换成串行数据进行发送。消息帧从一个起始位开始,后面跟着是5到8个数据位,一个奇偶校验位(奇偶校验可有可没有)和一个或两个停止位[9]。如果发现起始位的时候它就知道数据准备发送,并和发送时钟频率进行同步。若添加了奇偶校验,UART在数据位后面加上奇偶校验位数。奇偶校验位可用来帮助错误检测。
在接收过程中,UART从消息帧中去掉起始位和结束位,如果发送端添加奇偶校验,它将对收到的字节进行奇偶校验操作,然后将数据从串行转换成并行,并保存到接收缓冲区[10]。UART能产生信号来提示传输过程的状态。例如,如果出现奇偶校验错误,UART将置位奇偶校验标志,然后发送中断请求,要求主机重新发送数据操作。
1.4 本课题研究的主要内容
本课题所研究是基于UART接口的MSP430程序自动升级设备的设计与开发。在IAR Systems公司的IAR Embedded Workbench嵌入式系统开发软件环境下,采用C++语言编写一段升级程序的代码,并通过BSL升级工具将该代码植入到Flash存储器空间的一部分。利用MSP430单片机现有的UART串口由升级程序来实现用户应用程序升级,其全文的主要内容如下:
(1)本课题研究的背景和意义。介绍了单片机系统的发展现状,UART的基本原理。同时也概述MSP430系列单片机的特点,探论它的升级方式。
(2)介绍本课题使用的MSP430开发板主要设计到模块的硬件电路和工作原理。
(3)根据课题要求提出系统的总体设计方案和设计要注意问题包括:代码生成格式、Flash地址空间分配、升级程序生成等。
(4)从系统的设计方案,对每个模块进行详细的设计。
(5)系统调试与结果,采用工程化设计方法,先对每个模块进行调试,最后再对整个系统进行联调。
(6)对课题的研究过程进行了总结。
2 系统硬件分析
本课题以MSP430F149芯片开发板做硬件调试,只需做少量修改,即可适用于其他MSP430系列单片机。开发板采用独立模块设计方法,精心布局,便于学习。MSP430F149单片机内部资源丰富,存储容量大,有60KB+256B的FLash闪速存储器以及2KB的RAM,共64个引脚,芯片中还包含两个USART模块可进行两种通信方式:UART异步通信和SPI同步通信。图2.1是电路设计的示意图。 基于UART接口的MSP430程序自动升级设备的设计与开发(3):http://www.751com.cn/tongxin/lunwen_11521.html