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

上传人:laozhun 文档编号:2392846 上传时间:2023-02-17 格式:DOC 页数:5 大小:189.50KB
返回 下载 相关 举报
嵌入式应用在线编程开发系统的研制.doc_第1页
第1页 / 共5页
嵌入式应用在线编程开发系统的研制.doc_第2页
第2页 / 共5页
嵌入式应用在线编程开发系统的研制.doc_第3页
第3页 / 共5页
嵌入式应用在线编程开发系统的研制.doc_第4页
第4页 / 共5页
嵌入式应用在线编程开发系统的研制.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式应用在线编程开发系统的研制.doc》由会员分享,可在线阅读,更多相关《嵌入式应用在线编程开发系统的研制.doc(5页珍藏版)》请在三一办公上搜索。

1、文章编号: 文献识别码:A 中图分类号:TP183嵌入式应用在线编程开发系统的研制王宜怀 (苏州大学计算机工程系,苏州 215006)摘 要: 利用新一代MCU具有的Flash存储器在线编程功能这一特点,研制集仿真、二次开发、实验评估、程序写入等功能于一体的新型嵌入式应用在线编程开发系统的时机已经成熟,本文介绍了我们以MC68HC908GP32 MCU为应用目标开发的嵌入式应用在线编程开发系统。着重阐述了其性能特点、硬件体系结构与软件系统的主要技术,文中对一些技术难点进行了分析说明。关键词: 在线编程开发系统,闪速存储器,M68HC08系列单片机A Embedded Application D

2、evelopment System Based on In-Circuit ProgrammingWANG Yihuai (Department of Computer Engineering, Soochow, Suzhou 215006)【Abstract】 Based on the features of FLASH memory in-circuit programming in Motorola new serial MCU, this paper presents a embedded application development system. The system can b

3、e 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,

4、 Flash Memory, M68HC08 serial MCU1 引言传统的嵌入式应用开发方法主要是使用仿真器模拟目标系统中MCU的运行情况,希望达到在目标系统硬件尚未定型与制版情况下,先行调试目标系统的硬件、软件设计,为目标系统的研制提供前期基础。但是,一些情况下,难以实现100%的实时仿真,有些功能在用仿真器调试时十分正常,而到了实际应用系统却不能顺利运行。同时,传统的仿真方式的一些调试功能仅适用于初学者,对于具有一定开发经验并拥有通用功能模块积累的开发者,往往增加了开发时间。目前,随着计算机制造技术的发展,许多公司新推出的MCU具有片内Flash存储器,Flash存储器具有电可擦除、

5、无需后备电源保护数据、可在线编程等特点。在线编程(In-Circuit Program)允许单片机内部运行的程序去改写Flash存储器的内容,利用这个特点,不仅可以在运行过程中修改某些运行参数,也为研制新型嵌入式应用开发工具提供了技术基础。Motorola公司目前正在陆续推出的新一代8位嵌入式单片微机M68HC08系列,其片内集成的Flash存储器具有单一电源电压供电、支持在线编程等特点,它是Flash技术比较成熟的条件下推出的,在线写入、读出稳定。2000年4月,Motorola公司向苏州大学赠送了M68HC08系列MCU的实验开发设备,我校成为第一批从事M68HC08系列单片机教学推广单位

6、,一些研究生及教师的研究开发项目也以M68HC08系列单片机为蓝本。经过两年多的探索与实践,在对该系列MCU内核结构分析的基础上,利用该系列MCU支持Flash存储器在线编程这一特点,自主研制了新型嵌入式应用系统的开发系统。该系统与传统的仿真器相比具有如下新特点:传统仿真器的“仿真系统”与实际目标系统的硬件不是一套系统,难以实现目标系统的全部功能,这主要是由于过去的目标系统的程序存储器多为EPROM、OTP或不支持在线写入的Flash存储器。新型的开发系统的硬件可以直接构成目标系统的评估硬件,所调试的软件即运行于此系统,可以实现100%在线实时仿真;与传统仿真器相比,提供的调试功能与方法更多,

7、操作更加简便,可以缩短开发进程;由于开发系统的硬件体系就是目标评估系统,不必为仿真功能配置另外硬件,极大地减少了开发过程中的硬件实验成本;全部操作在Windows界面下完成,为开发者利用Windows系统支持多任务操作提供便利,使之对源程序的编辑、修改、编译、写入(下载)、调试可以顺利切换,加快了调试进程。鉴于国内具有这种功能的新型仿真开发工具还较少,技术仍在完善之中,本文介绍我们研制的以M68HC08系列中通用型MC68HC908GP32 MCU为应用目标的嵌入式应用在线编程开发系统,对其性能特点、硬件体系结构做扼要介绍,阐述软件系统的主要技术,并对其中的一些技术难点作了说明。2 在线编程开

8、发系统的体系结构与功能特点MC68HC908GP32的Flash存储器区共32KB,为了支持在线编程,本系统编制了2KB的监控程序驻留在MCU的Flash存储区高端,考虑到用户可使用30KB,一般情况下2KB的监控程序对程序存储空间并不构成影响。系统的程序写入等功能通过驻留于内部的监控程序与PC机软件通信完成。系统组成如下: 在线开发板一块,其中MC68HC908GP32内部写入支持在线编程的监控软件2KB; PC机软件一套:标准Windows界面,支持Motorola的.S19文件格式,内含帮助文件。系统的硬件体系结构框图见图1。实际接线时,直接220伏交流电源接入模块化电源,模块化电源将2

9、20伏交流电转为5V直流电给系统供电。其串行口为9芯标准串行接口,通过三芯(发送、接收、地)与PC机的串行口相连,实现开发板与PC机的通信。图1 MCU在线编程开发系统硬件结构框图模块化电源串型口MC68HC908GP32芯片 复位按钮 IC插线及其它元件扩展槽PTCPTDPTBPTA输出开关量接线排输入开关量接线排MAX232MCU外围支撑电路区IC插线及其它元件扩展槽电源保护电路及电源指示区模拟量接线区键盘接线区LCD接线区系统主要功能有:可以作为以MC68HC908GP32 MCU为蓝本进行单片机原理与嵌入式应用教学的实验仪器(学生分组、教师演示),不仅提供了基本实验的接线端口,还提供了

10、扩展实验的接线排孔。通过该系统可以完成所有基于MC68HC908GP32单片机的接口实验。可以作为开发实际嵌入式应用系统的评估板使用,提供在线仿真功能。在该系统进行外部接线构成实际目标系统的评估系统,在此系统中进行程序调试、修改。用户板制作完毕后,经过评估系统调试过的软件可以直接用于实际用户板。 可以作为基础开发工具,提供程序写入功能,在用户程序小于30KB的条件下,系统提供的带有监控程序的芯片直接可作为用户程序芯片,只是要求用户了解监控程序的初始化状况,以便处理。系统的主要技术特点:100%的在线实时仿真。用户下载自己的程序进入芯片后,在监控程序的控制在自动转入用户程序执行。该实验开发板,通

11、过外部接插线完全可以模拟用户的实际应用系统板。所有程序均可的实验开发板上调试完成,给二次开发带来了极大方便。标准Windows界面,帮助信息丰富,提供演示实例,不论对初学者还是对有经验的开发者均提供便利。直接支持Motorola的.S19文件格式,显示所打开文件的内容,提示写入进程,自动擦除写入区并自动校验。为系统组合方便,所有I/O口引脚直接引出到插孔,供外接使用,开发板上提供了并行I/O模拟区、A/D、LCD、键盘等模拟区,可直接使用。同时还设计了IC插线及其它元件扩展槽,可以通过该扩展槽完成相关应用系统评估。不要求用户改变中断向量,用户完全可以按照标准格式书写程序,PC的管理软件自动扫描

12、用户程序,将中断向量改变送给MCU中的监控程序,MCU中的监控程序将用户中断向量放入监控区,待相应中断发生时,由监控程序转入。写入后自动转入用户程序执行,为用户调试程序带来了方便,加快了调试速度。也支持断点调试功能,此时要求用户进行相应输入或选择操作。复位后,在没有用户程序的情况下,一直处于监控联机状态,若有用户程序,5秒内处于监控联机状态,无用户联机信号,转入用户程序执行。所以,对于无另外写入器的用户,可以利用本芯片作为用户程序芯片。3 在线编程开发系统的软件设计在线编程开发系统的软件分为两个部分,一是驻留于MCU内部的监控程序,另一是PC机的操作软件。3.1 驻留于MCU内部的监控程序为了

13、达到程序下载、断点调试、Flash存储器的擦除、写入程序的校验及用户中断向量的重新组织等目的,利用MC68HC908GP32的Flash存储器区较大这一特点,划出存储区高端的2KB空间(约占总存储空间的6%),供监控程序使用。使用存储区高端而不用低端作为驻留程序的存储区,其原因在于用户程序一般从低地址开始存放。监控程序的主要功能模块有:Flash擦除模块与Flash写入模块。由于GP32单片机内部的监控ROM中没有固化Flash编程子程序,要在运行中能对Flash进行在线编程,本系统的驻留程序,必需包含对Flash的擦除及写入模块。需要说明的是,由于对Flash操作的擦除与写入模块驻留于Fla

14、sh区,在实际运行擦除及写入模块时,整个Flash区会被加上高于普通工作电压的编程电压(由内部电荷泵产生),致使对Flash区读取不稳定,可能导致程序不能正常执行。为了使擦除、写入程序正常执行,运行时将擦除、写入模块复制到RAM中,并转入RAM区执行。图2 MCU方主程序流程图系统初始化计时赋初值有用户程序吗?YN进行通信握手握手成功吗?NYY进行通信握手握手成功吗?N时间到吗?转用户程序执行N接收PC机命令MCU系统复位根据命令执行相应子模块,完成所要求的功能通信握手模块。该模块的任务是建立与PC机的通信连接,内部含有一定延时,出口为握手成功与否标志,一旦握手成功,MCU就可处于数据接收状态

15、,等待PC指令与数据。握手的方法是MCU处于主动方,不断地向PC机发送握手信号,同时判断接收PC机的返回信号,若有正确的返回信号,即为握手成功。用户中断向量重组与分布模块。MC68HC908GP32单片机的中断向量区为$FFDC-$FFFF,由于本系统驻留的监控程序先行启动,从功能上讲,相当于一个小型实时操作系统(RTOS),它夺取了部分中断向量,因此必须对用户中断向量重新组织与分布。数据接收与发送模块。接收PC机指令,根据命令接收有关数据,并根据地址要求擦除有关Flash区,将数据或程序写入Flash区。同时,向PC机发送写入Flash区的数据或程序,供校验。断点调试处理模块。为支持断点调试

16、功能,专门编制断点调试处理模块,处理与断点调试相关的任务,至于断点设置、支持符号化调试等功能,由PC机软件完成。驻留于Flash区高端的监控程序的主程序流程图见图2。限于篇幅,图中只给出了初始工作过程,接收PC机命令之后根据命令执行相应子模块,完成所要求的功能等内容不再详细画出。需要指出两点:图3 在线编程系统PC机界面之一根据图2,系统初始化后判断有无用户程序存在,若无用户存在,系统一直处于向PC机发送握手信号状态,试图连接,从而接受PC机指令,进行程序下载等工作。若有用户存在,系统同样要向PC机发送握手信号,试图连接,若连接成功,转入接收PC机指令,即进入监控状态,但是,这时不是一直处于通

17、信连接状态,而是有一定时间限制,当时间到达后,无回答信号,转入用户程序执行。这个特点使得用户可以把带有本系统驻留程序的用户芯片直接作为用户程序芯片,而不影响其功能,增加了系统开发的方便性。当程序从PC机下载至Flash区域后,系统立即获得用户复位向量,转入用户复位向量执行,这一特点,使得程序写入后,无需另外操作,立即可以看到程序的运行结果。对于具有一定调试经验的程序员,充分利用这一特点,在调试过程中,给程序附加可直观观察结果的语句,对加快调试进度,找出错误位置十分有效。这样做,有时比设置断点调试还更有效。3.2 PC机方软件系统PC机方软件包含了通信连接、文件打开、文件扫描、文件重组、写入(含

18、擦除)校验等功能,提供了输入操作按钮、命令与数据输入区及显示界面。为方便操作,系统给出了可视化操作界面与在线帮助,使得操作者不需记忆任何调试命令,通过界面按钮、选项等即可进行在线编程调试。系统还提供了断点调试、编译连接、源程序查看、符号化调试、寄存器及内存显示等界面,本文着重给出连接、打开文件及将程序写入芯片的界面的功能说明。至于断点在线调试及符号化在线调试功能,由于涉及的技术细节较多,将另文专门讨论其技术细节,本文只做概要性介绍,所以也不给出该界面。系统软件采用Visual Basic6.0语言编写,图3给出了正在进行程序写入时的主界面。由图可以看出,操作界面主要分为左右两大区域,左区为显示

19、区,右区为操作区。左区自上而下分别为连接状态显示区、打开文件显示区(文件名与文件内容分开)、写入进度显示区及运行状态显示区等。右区自上而下分别为连接、打开文件、写入芯片、帮助及退出等命令按钮。下面简要介绍PC机软件系统的主要模块的功能及技术要点:通信连接。在线开发系统板初始复位时,不断地向PC机发出握手信号,所以在PC机方,当程序员按下“连接”按钮时,系统自动检测开发板接在PC机的哪个串行口上,并通过该串行口接收开发板送来的握手信号,并进行识别,当确认是正确的握手信号后,向开发板发送回答信号,表明握手成功。同时,在屏幕连接提示区给出工作提示及连接成功的动画指示,并将“写入芯片”按钮置为有效状态

20、。若一段时间内未收到握手信号,提示连接失败,需按下开发板上的复位按钮,进行重新连接。文件扫描与重组。在“打开文件”按钮下,首先执行打开.S19文件的操作,系统给出打开文件对话框,当程序员选定文件后,系统首先识别文件类型,若不是.S19文件,将给出错误提示,若是.S19文件,系统将该文件调入内存。第二,对文件进行第一次扫描,主要判别用户程序地址是否符合范围,若符合要求,对文件按地址进行重新组织,为写入芯片做准备。第三,对文件进行第二次扫描,主要目的是对文件按照MC68HC908GP32单片机对Flash擦除及写入的要求进行合理的分页(每页128字节,页地址必须满足MCU方要求,不连续的机器代码,

21、进行补FF处理),并对中断矢量区进行重组,以满足写入要求。第四,文件正确组织后,将文件名(包括其路径)、文件内容分别显示在屏幕的“打开文件”显示框的两个区内,若文件内容较多,将出现移动条。写入芯片模块在“写入芯片”按钮下,系统首先判定连接是否成功、文件打开是否正确,若错误则给出错误提示,若正确则转入下一步。第二,系统向开发板发送写入命令,随后发送总页数。第三,逐页向开发板发送写入地址及程序的机器代码,开发板进行擦除Flash一页的操作并写入程序的一页,同时将写入后的程序代码读出反送给PC机,PC机软件系统接收该程序代码,与发送的程序代码进行逐个校验,若正确继续发送下一页,若错误,给出提示对话框

22、。第四,在正确写入过程中,给出写入进度指示。第五,写入完毕后,系统提示程序员“开发板已经转入执行写入的程序,请观察执行情况”。此后,可根据写入程序的功能,观察开发板的有关I/O情况,还可以利用本系统的“在线调试”界面进行断点设置、符号化在线调试。断点功能与符号化调试的支持。断点功能给初学者调试程序提供方面,一般的断点功能是让程序员输入断点地址,当程序执行到该地址时,程序中断执行,在PC机屏幕上显示有关寄存器、内存的内容,供程序员观察。但是,断点地址与源程序之间存在鸿沟,给程序员调试程序带来不变。本系统通过.LST文件的调入,给出了直接选择操作的符号化调试功能,解决了断点地址与源程序之间鸿沟问题

23、,使得调试开发板中MCU程序的过程,与目前直接在PC机上调试高级语言程序的过程相似。关于这些内容的技术细节,由于内容较多,也比较复杂,将另文讨论。此外,系统还提供了标准Windows帮助系统,方便程序员操作。4 结束语本文给出的在线编程开发系统是建立Flash存储器技术发展基础上的,没有近年来Flash存储器技术的发展,要实现嵌入式系统的在线编程与调试是困难的。Flash存储器的在线编程技术为开发新型的编程开发系统提供了有力的技术支持。但是有关MCU的Flash在线编程的技术文献资料比较少,特别是实用程序及在线仿真应用等方面技术实例目前还较少见到,涉及Flash在线编程的技术细节也应进一步研究

24、。本文利用Motorola的MCU所具有的Flash在线编程功能开发的在线编程开发系统,为MCU应用系统的开发提供了有力的支持,已经在教学、科研开发中发挥了良好的作用,实际应用表明,系统开发是成功的。同时,我们将进一步对系统进行升级与移植,使之适用更广。致谢:感谢Motorola公司提供实验开发设备、样片及技术资料。参考文献1 MOTOROLA.MC68HC908GP32 HCMOS Micro-controller Unit Technical Data,19992 第三届Motorola杯单片机设计应用大奖赛竞赛委员会编.第三届Motorola杯单片机设计应用大奖赛论文集.电子产品世界特刊

25、.2000年1月.3 Microsoft Corporation 著,微软(中国)有限公司译.Visual Basic 6.0 中文版程序员指南.北京:希望电脑公司,19984 刘慧银,程建平,龚光华等.Motorola微控制器M68HC08原理及其嵌入式应用.北京:清华大学出版社,2001.5 张友德,涂时亮,陈章龙编著.M68HC08系列单片机原理与应用-嵌入式系统初步.上海:复旦大学出版社,2001.基金项目:苏州大学科研基金(Q3118012)作者简介:王宜怀(1962),男,副教授,博士研究生,主要研究方向:智能控制、嵌入式系统联系地址:苏州市十梓街1号,苏州大学158信箱邮编:215006 电话:0512-65113205E_mail:uuszuwyh

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号