您的当前位置:首页正文

嵌入式应用在线编程开发系统的研制

2023-12-23 来源:客趣旅游网
第28卷 第12期Vol.28 № 12・ 博士论文・

计 算 机 工 程Computer Engineering

文章编号:1000—3428(2002)12 —0022—03

文献标识码:A

2002年12月 December 2002

中图分类号: TP311.52

嵌入式应用在线编程开发系统的研制王宜怀(苏州大学计算机工程系,苏州215006)

摘 要:利用新一代MCU具有的Flash存储器在线编程功能这一特点,研制集仿真、二次开发、实验评估、程序写入等功能于一体的新型嵌入式应用在线编程开发系统的时机已经成熟,文章介绍了以MC68HC908GP32 MCU为应用目标开发的嵌入式应用在线编程开发系统。着重阐述了其性能特点、硬件体系结构与软件系统的主要技术,文中对一些技术难点进行了分析说明。关键词:在线编程系统;闪速存储器;M68HC08系列单片机

An Embedded Application Development System

Based on In-circuit Programming

WANG Yihuai

(Department of Computer Engineering, Soochow University, Suzhou 215006)

【Abstract】Based on the features of Flash memory in-circuit programming in Motorola new serial MCU, this paper presents an embedded application development system. The system can be used to develop the application system based on MC68HC908GP32 MCU. It

has the function such as imitating, re-exploitation, experiment evaluation, writing program, etc. The paper gives the features, hardware

configuration, software technology of the system.

【Key words】In-circuit programming system;Flash memory;M68HC08 serial MCU

系统,可以实现100%在线实时仿真;②与传统仿真器相比,提供的调试功能与方法更多,操作更加简便,可以缩短传统的嵌入式应用开发方法主要是使用仿真器模拟目标

开发进程;③由于开发系统的硬件体系就是目标评估系统,系统中MCU的运行情况,希望达到在目标系统硬件尚未定

不必为仿真功能配置另外硬件,极大地减少了开发过程中的型与制版情况下,先行调试目标系统的硬件、软件设计,为

硬件实验成本;④全部操作在Windows界面下完成,为开发目标系统的研制提供前期基础。但是,一些情况下,难以实

者利用Windows系统支持多任务操作提供便利,使之对源程现100%的实时仿真,有些功能在用仿真器调试时十分正

序的编辑、修改、编译、写入(下载)、调试可以顺利切换,常,而到了实际应用系统却不能顺利运行。同时,传统的仿

加快了调试进程。鉴于国内具有这种功能的新型仿真开发工真方式的一些调试功能仅适用于初学者,对于具有一定开发

具还较少,技术仍在完善之中,本文介绍我们研制的以经验并拥有通用功能模块积累的开发者,往往增加了开发时

M68HC08系列中通用型MC68HC908GP32 MCU为应用目标间。目前,随着计算机制造技术的发展,许多公司新推出的

的嵌入式应用在线编程开发系统,对其性能特点、硬件体系MCU具有片内Flash存储器,Flash存储器具有电可擦除、无

结构作扼要介绍,阐述软件系统的主要技术,并对其中的一需后备电源保护数据、可在线编程等特点。在线编程(In-些技术难点作了说明。circuit Programming)允许单片机内部运行的程序去改写Flash

2 在线编程开发系统的体系结构与功能特点存储器的内容,利用这个特点,不仅可以在运行过程中修改

MC68HC908GP32的Flash存储器区共32kB,为了支持在某些运行参数,也为研制新型嵌入式应用开发工具提供了技

线编程,本系统编制了2kB的监控程序驻留在MCU的Flash存术基础。Motorola公司目前正在陆续推出的新一代8位嵌入

储区高端,考虑到用户可使用30kB,一般情况下2kB的监控式单片微机M68HC08系列,其片内集成的Flash存储器具有

程序对程序存储空间并不构成影响。系统的程序写入等功能单一电源电压供电、支持在线编程等特点,它是在Flash技

通过驻留于内部的监控程序与PC机软件通信完成。系统组术比较成熟的条件下推出的,在线写入、读出稳定。2000年

4月,Motorola公司向苏州大学赠送了M68HC08系列MCU的成如下:① MC68HC908GP32在线开发板一块,其中内部写

入支持在线编程的监控软件2kB;②PC机软件一套:标准实验开发设备,我校成为第一批从事M68HC08系列单片机

Windows界面,支持Motorola的.S19文件格式,内含帮助文教学推广单位,一些研究生及教师的研究开发项目也以

M68HC08系列单片机为蓝本。经过两年多的探索与实践,件。系统的硬件体系结构框图见图1。实际接线时,直接

220V交流电源接入模块化电源,模块化电源将220V交流电在对该系列MCU内核结构分析的基础上,利用该系列MCU

转为5V直流电给系统供电。其串行口为9芯标准串行接口,支持Flash存储器在线编程这一特点,自主研制了新型嵌入

通过三芯(发送、接收、地)与PC机的串行口相连,实现开发式应用系统的开发系统。该系统与传统的仿真器相比具有如

下新特点:①传统仿真器的“仿真系统”与实际目标系统的硬件不是一套系统,难以实现目标系统的全部功能,这主要基金项目:苏州大学科研基金(Q3118012)是由于过去的目标系统的程序存储器多为EPROM、OTP或作者简介:王宜怀(1962~),男,副教授、博士生,主研智能控不支持在线写入的Flash存储器。新型的开发系统的硬件可制、嵌入式系统以直接构成目标系统的评估硬件,所调试的软件即运行于此收稿日期:2001-05-211 概述—22—

板与PC机的通信。

系统主要功能有:

模块化电源 电源保护电路 及电源指示区 MCU外围 串型口串行口 区高端的2kB空间(约占总存储空间的6%),供监控程序使

用。使用存储区高端而不用低端作为驻留程序的存储区,其

原因在于用户程序一般从低地址开始存复位按钮 放。监控程序的主要功能模块有:

MAX232 模拟量接线区 (1)Flash擦除模块与Flash写入模块。由

LCD接线区 键盘接线区 于GP32单片机内部的监控ROM中没有固化支撑电路区 MC68HC908GP32芯片 Flash编程子程序,要在运行中能对Flash进行 在线编程,本系统的驻留程序,必须包含对 IC插线及其它元件扩展槽 Flash的擦除及写入模块。需要说明的是,由PTC PTA PTD PTB 于对Flash操作的擦除与写入模块驻留于Flash

区,在实际运行擦除及写入模块时,整个IC插线及其它元件扩展槽 输入开关量接线输出开关量接线排 Flash区会被加上高于普通工作电压的编程电 压(由内部电荷泵产生),致使对Flash区读取不稳定,可能导致程序不能正常执行。为了 图1 MCU在线编程开发系统硬件结构框图使擦除、写入程序正常执行,运行时将擦

(1)可以作为以MC68HC908GP32 MCU为蓝本进行单片机原理除、写入模块复制到RAM中,并转入RAM区执行。与嵌入式应用教学的实验仪器(学生分组、教师演示),不仅提供了(2)通信握手模块。该模块的任务是建立与PC机的通信连接,基本实验的接线端口,还提供了扩展实验的接线排孔。通过该系统内部含有一定延时,出口为握手成功与否标志,一旦握手成功,可以完成所有基于MC68HC908GP32单片机的接口实验。

MCU就可处于数据接收状态,等待PC指令与数据。握手的方法是

(2)可以作为开发实际嵌入式应用系统的评估板使用,提供在MCU处于主动方,不断地向PC机发送握手信号,同时判断接收PC线仿真功能。在该系统进行外部接线构成实际目标系统的评估系机的返回信号,若有正确的返回信号,即为握手成功。统,在此系统中进行程序调试、修改。用户板制作完毕后,经过评

(3)用户中断向量重组与分布模块。MC68HC908GP32单片机

估系统调试过的软件可以直接用于实际用户板。 的中断向量区为$FFDC-$FFFF,由于本系统驻留的监控程序先行启

(3)可以作为基础开发工具,提供程序写入功能,在用户程序动,从功能上讲,相当于一个小型实时操作系统(RTOS),它夺取了小于30kB的条件下,系统提供的带有监控程序的芯片直接可作为部分中断向量,因此必须对用户中断向量重新组织与分布。用户程序芯片,只是要求用户了解监控程序的初始化状况,以便处(4)数据接收与发送模块。接收PC机指令,根据命令接收有关理。数据,并根据地址要求擦除有关Flash区,将数据或程序写入Flash

系统的主要技术特点如下:区。同时,向PC机发送写入Flash区的数据或程序,供校验。(1)100%的在线实时仿真。用户下载自己的程序进入芯片后,(5)断点调试处理模块。为支持断点调试功能,专门编制断点监控程序的控制自动转入用户程序执行。该实验开发板通过外部接调试处理模块,处理与断点调试相关的任务,至于断点设置、支持插线完全可以模拟用户的实际应用系统板。所有程序均可在实验开符号化调试等功能,由PC机软件完成。发板上调试完成,给二次开发带来了极大方便。MCU系统复位 (2)标准Windows界面,帮助信息丰富,提供演示实例,不论对初学者还是对有经验的开发者均提供便利。直接支持Motorola的系统初始化 文件格式,显示所打开文件的内容,提示写入进程,自动擦除.S19

N 写入区并自动校验。

进行通信握手 有用户程序吗? (3)为系统组合方便,所有I/O口引脚直接引出到插孔,供外接

Y 使用,开发板上提供了并行I/O模拟区、A/D、LCD、键盘等模拟N 计时赋初值 握手成功吗? 区,可直接使用。同时还设计了IC插线及其它元件扩展槽,可以通

Y 过该扩展槽完成相关应用系统评估。

进行通信握手 (4)不要求用户改变中断向量,用户完全可以按照标准格式书写程序,PC的管理软件自动扫描用户程序,将中断向量改变送给Y 握手成功吗? 中的监控程序,中的监控程序将用户中断向量放入监控MCUMCU

N 区,待相应中断发生时,由监控程序转入。

N 接收PC机命令 (5)写入后自动转入用户程序执行,为用户调试程序带来了方时间到吗? 便,加快了调试速度。也支持断点调试功能,此时要求用户进行相

根据命令执行相应应输入或选择操作。转用户程序执行 子模块,完成所要求的功能 (6)复位后,在没有用户程序的情况下,一直处于监控联机状

态,若有用户程序,5秒内处于监控联机状态,无用户联机信号,

图2 MCU2  MCU方主程序流程图 图方主程序流程图转入用户程序执行。所以,对于无另外写入器的用户,可以利用本芯片作为用户程序芯片。

3 在线编程开发系统的软件设计在线编程开发系统的软件分为两个部分:一是驻留于

MCU内部的监控程序;另一是PC机的操作软件。3.1 MCU驻留于内部的监控程序为了达到程序下载、断点调试、Flash存储器的擦除、写入程序的校验及用户中断向量的重新组织等目的,利用MC68HC908GP32的Flash存储器区较大这一特点,划出存储

驻留于Flash区高端的监控程序的主程序流程图见图2。限于篇幅,图中只给出了初始工作过程,接收PC机命令之后根据命令执行相应子模块,完成所要求的功能等内容不再详细画出。

需要指出两点:

(1)根据图2,系统初始化后判断有无用户程序存在,若无用户存在,系统一直处于向PC机发送握手信号状态,试图连接,从而接受PC机指令,进行程序下载等工作。若有

—23—

用户存在,系统同样要向PC机发送握手信号,试图连接,

若连接成功,转入接收PC机指令,即进入监控状态,但是,这时不是一直处于通信连接状态,而是有一定时间限制,当时间到达后,无回答信号,转入用户程序执行。这个特点使得用户可把带有本系统驻留程序的用户芯片直接作为用户程序芯片,而不影响其功能,增加了系统开发的方便性。

(2)当程序从PC机下载至Flash区域后,系统立即获得用户复位向量,转入用户复位向量执行,这一特点,使得程序写入后,无需另外操作,立即可以看到程序的运行结果。对于具有一定调试经验的程序员,充分利用这一特点,在调试过程中,给程序附加可直观观察结果的语句,对加快调试进度,找出错误位置十分有效。这样做,有时比设置断点调试还更有效。

3.2 PC机方软件系统PC机方软件包含了通信连接、文件打开、文件扫描、文件重组、写入(含擦除)校验等功能,提供了输入操作按钮、命令与数据输入区及显示界面。为方便操作,系统给出了可视化操作界面与在线帮助,使得操作者不需记忆任何调试命令,通过界面按钮、选项等即可进行在线编程调试。系统还提供了断点调试、编译连接、源程序查看、符号化调试、寄存器及内存显示等界面,本文着重给出连接、打开文件及将程序写入芯片的界面的功能说明。至于断点在线调试及符号化在线调试功能,由于涉及的技术细节较多,将另文专门讨论其技术细节,本文只作概要性介绍,所以也不给出该界面。

系统软件采用Visual Basic6.0语言编写,图3给出了正在进行程序写入时的主界面。由图可以看出,操作界面主要分为左右两大区域,左区为显示区,右区为操作区。左区自上而下分别为连接状态显示区、打开文件显示区(文件名与文件内容分开)、写入进度显示区及运行状态显示区等。右区自上而下分别为连接、打开文件、写入芯片、帮助及退出等命令按钮。

上,并通过该串行口接收开发板送来的握手信号,并进行识别,当确认是正确的握手信号后,向开发板发送回答信号,表明握手成功。同时,在屏幕连接提示区给出工作提示及连接成功的动画指示,并将“写入芯片”按钮置为有效状态。若一段时间内未收到握手信号,提示连接失败,需按下开发板上的复位按钮,进行重新连接。

(2)文件扫描与重组在“打开文件”按钮下,首先执行打开.S19文件的操作,系统给出打开文件对话框,当程序员选定文件后,系统首先识别文件类型,若不是.S19文件,将给出错误提示,若是.S19文件,系统将该文件调入内存。第二,对文件进行第一次扫描,主要判别用户程序地址是否符合范围,若符合要求,对文件按地址进行重新组织,为写

入芯片做准备。第三,对文件进行第二次扫描,主要目的是对文件按照MC68HC908GP32单片机对Flash擦除及写入的要求进行合理的分页(每页128B,页地址必须满足MCU方要求,不连续的机器代码,进行补FF处理),并对中断矢量区进行重组,以满足写入要求。第四,文件正确组织后,将文件名(包括其路径)、文件内容分别显示在屏幕的\"打开文件\"显示框的两个区内,若文件内容较多,将出现移动条。

(3)写入芯片模块在“写入芯片”按钮下,系统首先

判定连接是否成功、文件打开是否正确,若错误则给出错误提示,若正确则转入下一步。第二,系统向开发板发送写入命令,随后发送总页数。第三,逐页向开发板发送写入地址及程序的机器代码,开发板进行擦除Flash一页的操作并写入程序的一页,同时将写入后的程序代码读出反送给PC机,PC机软件系统接收该程序代码,与发送的程序代码进行逐个校验,若正确继续发送下一页;若错误,给出提示对话框。第四,在正确写入过程中,给出写入进度指示。第五,写入完毕后,系统提示程序员\"开发板已经转入执行写入的

程序,请观察执行情况\"。此后,可根据写入程序的功能,观察开发板的有关I/O情况,还可以利用本系统的“在线调试”界面进行断点设置、符号化在线调试。

(4)断点功能与符号化调试的支持断点功能给初学者调试程序提供方面,一般的断点功能是让程序员输入断点地址,当程序执行到该地址时,程序中断执行,在PC机屏幕上显示有关寄存器、内存的内容,供程序员观察。但是,断点地址与源程序之间存在鸿沟,给程序员调试程序带来不便。本系统通过.LST文件的调入,给出了直接选择操作的符号化调试功能,解决了断点地址与源程序之间鸿沟问题,使得调试开发板中MCU程序的过程,与目前直接在PC机上调试高级语言程序的过程相似。关于这些内容的技术细节,内容较多,也比较复杂,将另文讨论。

此外,系统还提供了标准Windows帮助系统,方便程序员操作。

4 结束语本文给出的在线编程开发系统是建立在Flash存储器技术发展基础上的,没有近年来Flash存储器技术的发展,要实现嵌入式系统的在线编程与调试是困难的。Flash存储器的在线编程技术为开发新型的编程开发系统提供了有力的技术支持。但是有关MCU的Flash在线编程的技术文献资料比较少,特别是实用程序及在线仿真应用等方面技术实例目前还较少见到,涉及Flash在线编程的技术细节也应进一步研究。本文利用Motorola的MCU所具有的Flash在线编程功能开发的在线编程开发系统,为MCU应用系统的开发提供了

(下转第73页)

图3 在线编程系统PC机界面之一 下面简要介绍PC机软件系统的主要模块的功能及技术要点:

(1)通信连接在线开发系统板初始复位时,不断地向PC机发出握手信号,所以在PC机方,当程序员按下“连接”按钮时,系统自动检测开发板接在PC机的哪个串行口

—24—

所有的SDRM的功能,实现跨平台的交换。

STF是支持所有环境数据的信息格式。有了STF,M&S只需要使用SEDRIS的数据模型就可以进行数据的交换。对于M&S的用户来说,STF是透明的,不依赖于任何平台。

这5个核心技术紧密结合在一起,解决了环境数据的表示和交换问题。SEDRIS的SDRM、EDCS和SRM用来实现环境数据的表示,提供了一种环境数据的描述机制,清晰地将所有环境数据整合在一起,确保环境数据的含义和语义的捕获和交换。SEDRIS的API和STF提供了强大的交换功能,实现了环境数据的交换。2.4 SEDRIS的应用SEDRIS捕获、整合了数据元素和数据之间的相互关系,构成了一个表示综合环境的完整集合,用来支持跨越所有环境场所(地形、海洋、大气和空间)的所有应用领域(CGF、计算机图像、可视系统生成、传感器仿真、电子地图、游戏等)的仿真应用。在图3中给出了使用SEDRIS的数据库生成和共享系统。

和交换问题。

使用SDRM、EDCS、SRM可以完成环境数据的分析和建模工作。地形公用数据模型(Terrain Common Data Model)

以及随后的一系列的项目,都显示了EDCS和SDRM的超值价值。使用SEDRIS的API和STF实现了数据的交换功能,可以对规模庞大的数据集合进行更加直接的访问,减少了维护和研制多种单个格式转换器的费用。在美国一系列的政府项目的系统设计中,都采用了SDRM的概念和体系结构;一些商业组织使用SEDRIS来拓展现有的工具集、开发下一代的环境工具。这些都证明了SEDRIS的强大功能。

3 结束语环境数据具有复杂、多维和相互关联的特性,一同为用户提供有意义的信息。无论仿真系统的体系、实现方案(如:同构/异构,集中分布等/)有什么差异,环境数据的表示和交换都是极为重要的,它贯穿在仿真的整个生命周期中。综合环境数据的重用可以节省经费,互操作可以提高仿真系统的效率。

环境数据已经成为许多

转数据库当今IT应用中的重要组成部本  地换生成系统数据库分。未来的信息技术应用会2格式 2器越来越关注综合环境数据的标  准转无缝表示。SEDRIS是IT应用数据库本  地公用数生成系统数据库中环境数据的表示、理解、换据模型3格式 3器共享和重用的基础。SEDRIS接  口可以实现环境数据的集成、评估、查看、分析、转换和转本  地操作等功能,还可以用于解数据库换数据库生成系统格式 n决与环境数据关联的更为复n器杂的问题。传感器参考文献编译器地    图数据库1 Worley M.SEDRIS Data Repres

- entation Model Overview.STC '2001,Lake Tahoe,Nevada,2001-

传感器 06数据库2 Birkel P,Carson S,Gravitz P. En

-vironmental Data Coding Specification. STC'2001,Lake Tahoe, Nevada, 2001-06

3 Welch M R.Synthetic Environment Database. http://www.sedris.org4 Welch M R.SEDRIS AS an Interchange Medium.http://www.sedris. org

5 James M R.The Synthetic Environment . http://www.sedris.org

赵沁平分布式虚拟战场环境-现代战争的实验场.系统仿真学报, 6 .

2001,13(增刊)

生成系统地  图地图海图标  准纹理图像公用数据模型接  口储存库资  源转换器数据库生成系统1综  合数据库格式 1转换器3D模型CGF编译器视  觉编译器属 性观测值 描 述SEDRIS数据库CGF数据库CIG数据库图3 SEDRIS使用的数据库生成和共享系统尽管SEDRIS最初起源于M&S领域,人们很快认识到:

在诸多应用领域中,环境数据的表示和共享都是一个根本性的问题,都必须予以解决。

在仿真界(军事和商用)、多兵种军事训练与演练、4

CISR、新武器系统在内的大型产品的设计研制、气象、自然灾害预报、医疗手术的模拟与训练、GIS(或更为广泛的环境信息系统)等应用领域都需要解决环境数据的共享和交换问题。SEDRIS可来用于解决这些应用中的环境数据的表示

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(上接第24页)第三届杯单片机设计应用大奖赛竞赛委员会编.第三届2 Motorola

有力的支持,已经在教学、科研开发中发挥了良好的作用,实际应用表明,系统开发是成功的。同时,我们将进一步对系统进行升级与移植,使之适用更广。

致谢:感谢Motorola公司提供实验开发设备、样片及技术资料。

参考文献1 MOTOROLA.MC68HC908GP32 HCMOS Micro-controller Unit Technical Data.1999

Motorola杯单片机设计应用大奖赛论文集电子产品世界特刊., 2000 -01

中3 Microsoft Corporation.微软(中国)有限公司译.Visual Basic 6.0 文版程序员指南北京希望电脑公司 .:,1998刘慧银程建平龚光华4 ,,.Motorola微控制器M68HC08原理及其嵌入 式应用.北京:清华大学出版社,2001

张友德涂时亮陈章龙编著5 ,,.M68HC08系列单片机原理与应用-嵌 入式系统初步上海 .:复旦大学出版社,2001

—73—

因篇幅问题不能全部显示,请点此查看更多更全内容