第25卷第5期
2008年5月
机 电 工 程
MECHANICAL&ELECTRICALENGINEERINGMAGAZINE
V01.25No.5
Mav2008
Netlab单片机实验单步调试功能
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
及实现
孙志海,朱善安
(浙江大学电气工程学院,浙江杭州310027)
摘 要:浙江大学网络实验室原有的单片机实验系统只支持连续执行用户汇编程序的功能,在此基础
上,提出了一种将单步功能程序段嵌入用户程序的单步调试技术。在单步执行用户程序主程序段前将
外部中断位寄存器软件清零,通过软件方式触发外部中断,在中断程序中,将特殊功能寄存器的值通过
串口发送给控制机,控制机再将该组数据通过中心服务器转发到用户终端,结合用户终端程序可以对用
户程序的主程序段进行单步调试。
关键词:单片机;单步调试;网络实验室;AT89S52
中图分类号:TP368.2 文献标识码:A 文章编号:1001—4551(2008)05—0086—03
StepdebuggingdesignandrealizationofNetlabsinglechipexperiment
SUNZhi—hai,ZHUShan-an
(CollegeofElectricalEngineering,ZhejiangUniversity,Hangzhou310027,China)
Abstract:AstepdebuggingtechniqueforNetlabsinglechipexperimentsystemwasproposed.Theproposedmethodwasafur-
therdevelopmentoftheexperimentsystem.Userscoulddebugtheirmainassemblercodestepbystepinremoteexperimentenvi—
ronment.Theexternalinterruptwasusedforproposeddebuggingfunctionanditwastriggered,usingsoftwaremethodbutnotin
commonmeans.Insidetheinterruptserviceroutine,thevaluesofthespecialfunctionregisterweretransmittedtocontrolmachine
throughserialport.Allthedataoftheregisterswerecollectedandretransmittedtouserclientbycenterservicebroker.Users
coulddebugtheirmaincodetogetherwiththeterminalsoftwareclient.
Keywords:singlechipcomputer;stepdebugging;Netlab;AT89S52
O前言
浙江大学网络实验室(简称Netlab)是一个以提供
工科电类及控制类实验为目标的远程综合实验室。该
实验室目前已能容纳控制类、电工电子类、电力电子
类、电机类以及微处理器类共5大类23组80多个实
验,所有实验都基于真实的物理对象。单片机实验系
统是Netlab中属于微处理器类的基于AT89S52处理器
的实验系统。通过登录Netlab提供的网络实验终端,学
习者可以通过网络进行基于51单片机的远程实验。
由于网络环境、硬件资源共享以及开发条件的约
束,若要在远程环境下,针对放在网络实验室的单片机
实验板,实现如市面上伟福仿真器或KeilC的实时单
步调试功能,其开发难度太大,所以,目前供学习者使
用的Netlab单片机实验系统仅支持连续执行用户程
序的工作模式,不支持对用户程序的单步调试。但随
着登录Netlab单片机实验系统的学习者的增多,用户
对程序单步调试功能的需求也与日俱增。
在已开发系统的基础上,本研究给出一种嵌入用
户程序的单步调试功能的设计方法。
1网络实验室架构
浙江大学网络实验室的物理拓扑结构,如图1所
示,它由客户端、服务器端和控制器端3部分组成。
用户无论在何时何地只要使自己的计算机联入
Internet,就可以在网络实验室的主页下载客户端到本
地计算机,然后连接网络实验室服务器进行实验。多
个客户端可以同时登录服务器,多个控制端也可同时
连接服务器,不同的实验可以同时进行,互不影响,网络
实验室系统的这种物理拓扑结构称为双C/S结构¨一1。
收稿日期:2007—11—13
作者简介:孙志海(1981一),男,福建漳州人,主要从事虚拟实验室、嵌入式系统设计及视频信号处理等方面的研究。
万方数据
第5期 孙志海,等:Netlab单片机实验单步调试功能设计及实现 ·87·
用户
电力电子类实验
图1 网络实验室的物理拓扑结构
2单片机实验系统
单片机实验系统基于Internet,运用了面向对象编
程、计算机实时控制、在系统编程(ISP:InSystemPro—
gramming)以及嵌入式应用系统设计等技术,使得学生
可以远程登录该实验系统进行单片机实验"。。该单
片机实验系统在客户端自带了汇编文件的编译器,所
以学习者能够像使用伟福编程环境一样,在远程客户
端进行汇编程序的编辑、编译以及调试。在用户发送
运行命令时,客户端会把编译生成的目标文件通过网
络实验室的中心服务器传送到单片机实验系统的控制
端进行下载、运行。单片机实验系统控制端实验板的
单片机采用Atmel公司的AT89S52单片机,该单片机
支持ISP编程技术,所以在控制端利用计算机并口虚
拟实现了ISP编程方式下的程序下载波形,把用户的
目标程序写进单片机的FlashROM里面。4o。在用户程
序下载结束后,控制端自动向单片机发送复位信号,用
户程序开始运行。其运行过程中的状态则由控制端负
责采集,并把采集到的状态通过中心服务器传送到客
户端,客户端再把这些状态数据显示给用户。实验板
的状态还可以通过客户端的实时视频在线观察。
Netlab单片机实验系统的结构,如图2所示。
;压巫匝巫D:嬉塑觋
网络
实验事
中心
服务器
图2 Netlab单片机实验系统结构
最集卡
,8l8LS
.73l
3单步调试功能设计及实现
本研究的单步调试功能是指:在Netlab单片机实
验终端控制面板单步执行按钮的控制下,用户的汇编
程序指令被逐条执行,并可以在远程单片机实验终端
实时观察单步执行时51单片机内21个特殊功能寄存
器值(SFR)的功能。
文献[5,6]给出了一种利用单片机的外部中断功
能单步执行用户程序的方法,即利用“51单片机在执
行中断返回指令RETI后,必须至少执行一条其他指
令后,才能响应新的中断”这一重要特性,以单步的方
式执行用户程序。一般是采用一个外接按钮,控制
INT0中断。但这种利用控制按钮产生高低电平中断的
方法存在如下问题:由于单片机复位时P3口全被置为
高电平,这时P3.2为高电平而不会马上产生INTO中
断,但单片机此时已处于连续执行用户指令的状态,即
用户无法控制单步程序的指令起始地址,这样用户在
单步调试的初始点可能处于一种盲目状态。针对该问
题,本研究在经过多次试验后,提出了一种嵌入用户程
序的单步调试技术,即在用户单步程序前软件清零
P3.2引脚,通过软件方式触发INT0中断,在中断程序
中,将SFR的21个寄存器的值通过串行口发送给控
制机,控制机再将该组数据通过中心服务器转发到用
户终端。
3.1 单步调试汇编程序框架
进行单步调试时的用户汇编程序框架,如
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
1
所示。
表1单步调试用户汇编程序框架
嚣鐾
万方数据
机 电 工 程 第25卷
从表1中可以看出,单片机复位后,先执行表中第
2部分的初始化程序,并在初始化程序的末尾置P3.2
为低电平,从而在用户主程序的入I=1处开始执行单步。
用户程序则在表中的第3部分。第4部分为中断程
序,该段程序应放于程序存储器的末尾,并在中断程序
中实时监听控制机的单步命令,如果收到上位机的单
步调试命令则根据一定的协议将SFR寄存器的值逐
一通过RS.232串行口发送给控制端Pc。
3.2客户端软件实现
客户端接收到控制端返回的含有SFR寄存器值
的数据时,客户端则根据自定义的协议解析出各个
SFR寄存器的值,并在客户端进行显示,串行数据存放
的格式,如表2所示,数据长度为n+3字节。
本研究在件设客户端软计时采用VC++6.0的
MFC编程方式,其中显示SFR窗口的软件界面,如图
3所示。
表2串行数据格式
图3客户端SFR窗口的软件界面
4实验效果
本研究所设计的单步调试技术进一步增强了Net—
lab单片机实验系统的功能,同时也是对原有实验系统
的又一次升级,软件编程均采用VC++6.0开发环境。
由于单步调试功能的程序直接嵌入用户程序,学习者
可以选择程序执行方式(连续或单步)。如果选用单
步调试模式,则只需在表1程序框架的第3部分添加
用户程序,即可以结合客户端软件进行程序的单步调
试。在实验中,控制端单片机实验板上的P1口接着共
阳极的8个发光二极管,当用户主程序为以下程序段,
并单步执行到第1条指令时的用户界面效果,如图4
所示。
ORG0045H ;用户程序人口地址
MAIN:MOVP1,#ODBH
MOVPI,#06DH
MOVPI,#0AEH
MOVPI,#0FFH
AJMPMAIN
图4单步调试实验效果图
5结束语
本研究给出了Netlab单片机实验单步调试功能
的设计及实现,是对原有单片机实验系统的又一次
升级。
由于本研究的方法是将单步调试功能代码嵌入用
户程序的方式实现的,必将占用单片机的外部中断、串
行I:I、定时器资源及部分程序存储器空间,对用户程序
仍有一定约束。如果能利用FPGA模拟51内核,再设
计专门的调试软件,则可以较为彻底地解决单片机实
验远程环境的调试问题。但作为一个性能稳定、高性
价比的远程单片机实验系统,本研究无疑是一种实用
的设计方案。
参考文献(Reference):
[1]ZHANGS,ZHUSA,LINQ,etai.Netlab—anInternet
basedlaboratoryforelectricalengineeringeducation[J].
JournalofZhejiangUniversityScienceA,2005,6(5):
393—398.
[2]YINGSD,ZHUSA.RemoteLaboratoryBasedonClient—
server.ontrollerAchitecture[C].CARCV,2004:2194—2198.
[3]孙志海,朱善安.基于Internet的51单片机实验系统[J].
实验室研究与探索,2006,25(2):189—191.
[4]孙志海,朱善安,张煜彦.1SP技术在Netlab单片机实验
系统中的应用[J].自动化仪表,2006(9):42—44.
[5]孙俊逸。盛秋林,张 铮.单片机原理及应用[M].北京:
清华大学出版社,2006.
[6]高锋.单片微型计算机原理与接口技术[M].北京:科
学出版社,2007.
[编辑:李辉] 万方数据
Netlab单片机实验单步调试功能设计及实现
作者: 孙志海, 朱善安, SUN Zhi-hai, ZHU Shan-an
作者单位: 浙江大学,电气工程学院,浙江,杭州,310027
刊名: 机电工程
英文刊名: MECHANICAL & ELECTRICAL ENGINEERING MAGAZINE
年,卷(期): 2008,25(5)
引用次数: 0次
参考文献(6条)
1.ZHANG Shu.ZHU Shan-an.LIN Qun.XU Zhi-wei.YING Shao-dong NETLAB-An Internet based laboratory for
electrical engineering education[期刊论文]-浙江大学学报A(英文版) 2005(5)
2.YING S D.ZHU S A Remote Laboratory Based on Clientserver-ontroller Achitecture 2004
3.孙志海.朱善安 基于Internet的51单片机实验系统[期刊论文]-实验室研究与探索 2006(2)
4.孙志海.朱善安.张煜彦 ISP技术在Netlab单片机实验系统中的应用[期刊论文]-自动化仪表 2006(9)
5.孙俊逸.盛秋林.张铮 单片机原理及应用 2006
6.高锋 单片微型计算机原理与接口技术 2007
相似文献(1条)
1.期刊论文 刘鸣.陈兴梧.马国华 单片机系统加密中的动态反跟踪措施 -单片机与嵌入式系统应用2002(1)
众所周知,有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行,而且解密者可以使用
单片机开发系统单步调试ROM中的程序.当解密者了解了指令的运行过程之后,也就获得了加密的程序,如某些智能计价器的运算方法等,通过修改程序并仿
制新的ROM芯片,就可以达到解密的目的.因此,对单片机的加密还要在程序的运行上进行加密处理,也就是程序的动态加密措施.
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jdgc200805026.aspx
下载时间:2010年1月5日