




免费预览已结束,剩余24页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Keil软件仿真的串口调试技巧 软件仿真的串口调试技巧 I,1; 武汉邮电科学院虹信公司 邵子扬 黄保明 刘海涛 通信软件,也可以是通用的串口软件 如串口助手、串口调 引 言 试等 ,主要用来收发数据。如果没有合适的串口调试软 在单片机系统中,串口 ,通用异步收发接口 件,则可使用笔者编写的一个免费的串口小工具 UART Turbo- 是一个非常重要的组成部分。通常使用单片机串口通过 Com。除了与其他软件一样的数据收发功能外,它还有定 / 电平转换芯片与上位机连接,以进行上位 时轮流发送自定义数据帧和自动应答 接收到指定数据帧 RS232 RS485 机与下位机的数据交换、参数设置、组成网络以及各种外 后,自动返回相应的数据帧 这两个很有用的功能,特别适 部设备的连接等。 / 串行接口总线具有成本 合于老化测试。这个小工具可以从 :/ RS232 RS485 htt shaozian. p y g 低、简单可靠、容易使用等特点,加上其历史悠久,所以目 下载。 blo g 前应用仍然非常广泛;特别对于数据量不是很大的场合, 2 基本调试命令介绍 串口通信仍然是很好的选择,有着广阔的使用前景。 在单片机编程中,串口占了很重要的地位。传统方式 这个串口调试方法主要是利用了 Keil强大的软件仿 串口程序的调试,往往是利用专用的单片机硬件仿真器。 真功能。在新版本 高于 的 软件中,增强了软件 6.0 Keil 在编写好程序后,利用仿真器来设置断点,观察变量和程 的仿真能力,可以利用软件仿真更多的单片机功能。在这 序的流程,逐步对程序进行调试,修正错误。使用硬件仿 些功能中,其中有一个很重要的功能就是利用计算机的串 真器的确是很有效的方法,但是也有一些缺点: 口来模拟单片机的串口 这不同于很多软件在仿真时使用 很多仿真器不能做到完全硬件仿真,因而会造成 的激励文件方式,可以直接与其他串口进行通信,更加方 仿真时正常,而实际运行时出现错误的情况;也有 便、灵活 。首先要介绍仿真时需要使用的两个命令: AS- 仿真不能通过,但是实际运行正常的情况。 SIGN和 MODE。 对于一些较新的芯片或者是表面贴装的芯片,要 2.1 ASSIGN命令 么没有合适的仿真器或仿真头;要么就是硬件仿 将单片机的串口绑定到计算机的串口。基本使用方 真器非常昂贵,且不容易买到。 式为: 有时由于设备内部结构空间的限制,仿真头不方 ASSIGNchannel inre outre g g 便接入。 其中: 代表计算机的串口,可以是 、 channel COM1 有的仿真器属于简单的在线仿真型,仿真时有很 、 或 ;而 和 代表单片机的 COM2 COM3 COM4 inre outre g g 多限制。例如速度不高,实时性或稳定性不好,对 串口。对于只有一个串口的普通单片机,即 SIN 和 断点有限制等,造成仿真起来不太方便。 ;对于有两个或者多个串口的单片机,即 nIN和 SOUT S , , 即单片机的串 1 调试前的准备工作 SnOUT n 0 1 口号 。 下面介绍一种利用 Keil的软件仿真功能来实现 51 例如: 单片机串口调试用户程序的方法。使用这种方法,无需任 ASSIGNCOM1 SIN SOUT 何硬件仿真器,甚至都不需要用户电路板。所需的只是: 将计算机的串口 绑定到单片 1 硬件。 台普通计算机 需要带有 个标准串口 1 2 机的串口 针对只有一个串口的单 和 根串口线 两头都是母头,连线关系如图 所示 。 1 1 片机 。 串口软件可以是自己编写的专用调试或上下位机 ASSIGNCOM2 S0IN S0OUT 图1 串口连线示意图 年第 期 2006 7 广告专用 76 adv me 将计算机的串口 绑定到单片机的串口 针对有多 2 0 个串口的单片机,注意串口号的位置 。 需要注意的是, inre 参数的括号是不能省略的, g 而 outre 则是没有括号的。 g 2.2 MODE命令 设置被绑定计算机串口的参数。基本使用方式为: , , , MODECOMxbaudrate arit databits stobits p y p 其中: , , 代表计算机的串口号; COMx x 1 2 代表串口的波特率; 代表校验方式; baudrate arit dat- p y 代表数据位长度; 代表停止位长度。 abits stobits p 例如: , , , 图2 仿真参数设置 MODECOM19600 n 8 1 设置串口 。波特率为 ,无校验位, 位数据, 1 9600 8 1 位停止位。 , , , MODECOM219200 1 8 1 设置串口 。波特率为 ,奇校验, 位数据, 2 19200 8 1 位停止位。 使用以上两个命令,就能够将计算机的串口模拟成单 片机的串口了。在进行软件仿真时,所有发送到被绑定的 计算机串口上的数据都会转发到 模拟的单片机串口 Keil 上,用户程序可以通过中断处理程序或查询方式接收到这 些数据;同样,单片机程序中发送到单片机串口上的数据 也会通过被绑定的计算机串口发送出来,可以被其他软件 所接收。利用这个特点,就可以方便地仿真、调试单片机 的串口部分程序。要注意的是,这两个命令需要一起 图3 晶振参数设置 使用。 照实际使用的参数进行设置。要注意,这个参数的单位是 。 2.3 仿真步骤 MHz 设置好参数后,就可以进行仿真了。单击工具栏的图 首先,用串口线将计算机的两个串口连接起来 或者 标 进入 Debu 仿真调试 状态,在 Out utwindow窗口 是两台计算机上的两个串口 。这两个串口一个用来模拟 g p 中的 文本框 一般是在左下角 中输入上面介绍 单片机串口,另一个给调试程序使用。这个由用户自己分 command 的命令。例如,将 机的串口 设置为单片机的串口: 配,没有特殊要求。 PC 1 , , , 其次,编写好用户程序,并编译通过。 modecom19600 0 8 1 assincom1 Sin Sout 然后,设置工程文件 的相关参数,如图 和 g Proect 2 j 图 所示。主要是选择软件仿真模式 以 然后设置断点,一般是在关键地方或与串口相关联的 3 UseSimulator 及晶振参数。 地方设置。再单击 图标运行 用户程序,使用户程 Run 为了不必每次进入仿真状态后,都需要输入串口参数 序运转起来 不然是接收不到串口数据的 。 这时再使用 设置命令,可以建立一个初始化文件。初始化文件是一个 串口调试软件或用户调试软件,发送通信命令或者数据 普通的文本文件,内容就是仿真时需要的命令,按照顺序 包,看用户程序是否进入断点,以及相关的变量是否正确。 一行输入一条。如图 所示,建立了一个 的初 还可以有意发送带有错误数据的数据包,以观察用户程序 2 debu .ini g 始化文件。这样,当每次进入仿真调试状态时, 就会 的异常处理部分是否正常。一旦发现程序中的错误,可以 Keil 自动载入debu .ini的内容进行初始化。 马上停止仿真调试,立即修改代码,然后再次重复上面的步 g 为了正确仿真串口,在软件仿真调试时,在用户的 骤进行仿真。因为不需要与用户目标板联机,也不用下载 工程文件的属性中,还需要设置实际使用的晶振频 代码到用户板上,所以速度非常高。 以上这些步骤和使用 Keil 率。这个参数非常重要,直接影响通信的波特率,可以按 硬件仿真器的基本一样,只不过现在使用的是软件仿真。 年第 期 投稿专用 2006 7 Microcontrollers & EmbeddedS stems 77 aer me pp y 需要注意的是:仿真时单片机串口实际的波特率由 对于 单片机, 的仿真功能实在是太强大了,只要充 51 Keil 命令来指定,单片机程序中的 、 等参 分掌握其特点,能够熟练利用它,就可以解决工作中的大 MODE TMOD SCON 数是不影响串口仿真状态的 也就是说这些参数不影响仿 部分问题。很多工作都可以使用软件仿真来完成,根本无 真的波特率,即使它们是错误的 。但是中断的使能位 如 需任何硬件仿真器;只有一些新的外部器件的时序、接口 、 等 还是起作用的,如果 或 被禁止,那么就 的调试才有可能需要用到硬件仿真器。 目前介绍Keil软 ES EA ES EA 不会进入串口中断。 件仿真这方面的参考书籍很少,有些讲的还是老版本的用 因为这种方法是利用计算机的串口来仿真单片机的 法,不过没有关系, 的帮助文件写得很详细、很清楚, Keil 串口,而仿真是通过 软件来转换串口上的数据,不是 只要认真看明白就会使用了。使用熟练后,就会发现 Keil Keil 直接转发数据的,所以在实际仿真时,处理速度会比实际 的功能相当强。 单片机运行时稍微低一点。 比方说仿真状态时 只能 对于串口编程, 单片机有 这个功能强大的开 1s 51 Keil 发送/接收 个数据帧,但在单片机硬件上运行时可能 发软件,给我们带来了极大的便利;而在其他单片机软件 10 就可以接收/发送 个数据帧。这与使用的计算机的 的开发中,目前还没有这么强大的开发工具和方便的调试 1s 50 速度有关,但对仿真来说,是没有任何影响的。 手段。这里有个变通的办法,就是可以先在 Keil中编写 对于多串口的单片机,从理论上来说,可以一次绑定 并调试好串口程序,然后将程序移植到其他单片机平台中 多个串口,只要计算机有足够多的串口。基本上,使用这 笔者在PIC18单片机开发中就使用了这种方法,收到了 种方法需要占用计算机的串口数量是单片机绑定串口的 很好的效果。当然这是指在使用 语言开发单片机程序 2 C 倍。一个串口被 Keil占用,用来模拟单片机的串口;另外 时,汇编语言是没有可移植性的 。 至于如何能够减小程 一个串口被计算机占用,用来给单片机的串口收发数据。 序移植的工作量,使得程序具有更好的通用性,以最小的 代价就可以平滑地移植到其他单片机平台上,也是一个非 3 小 结 常值得探讨的问题。另外,为了方便初学者掌握这种方 这里介绍的方法对 和汇编语言都是适合的。它 法,笔者专门做了一个例子程序,放在 :/ htt shaozian. C51 p y g 最大的好处就是简单、方便,容易使用,不需要使用任何电 上,可以用来练习。 blo g 路,也没有特殊的要求;甚至可以在硬件电路制作好之前 参考文献 就将串口部分的程序编写、调试完毕。笔者使用这种方法 公司的帮助文件 1 Keil DBG51.CHM. 已经很长时间了,事实证明这种方法确实非常有效。其实 收稿日期: 2006-03-10 75 控制台程序 ,使得操作 MicrocontrollerToolKit MTK 代码通过 通信协议传递给硬件系统。计算机与硬件 更加方便。 ISP 系统距离不太远时,可直接通过串口 RS232连接通信,距 监控程序烧录完后,还可以设置芯片的安全保护级 离较远的系统也可通过 RS485连接通信。对于远程用户 别,用于对芯片程序进行加密保护。DS89C440芯片保护 的升级,可以采用以下方式。 功能在 程序中是不起作用的,但由于 只操作高 IAP IAP 地址 ,因此芯片的安全性还是由设计者完全掌握的。 4.1 监控程序烧录 Flash 利用 DS89C440 内部固化的ROM Loader程序,可将 计算机 控制程序 4.2 ISP 监控程序烧录到单片机的低地址 Flash程序块中。将硬 烧录了监控程序的 DS89C440芯片就可以安装到用 件 EA脚和 PSEN脚拉低,在 RST脚给一个上升沿,单片 户应用系统中了。通过计算机 控制程序即可与监控 ISP 机即可进入 程序,并等待串口 的连接。 ROM Loader 1 程序连接,并烧录、升级应用程序。计算机 程序源代 ISP 程序通过识别收到的第一个字符 要求为数 ROM Loader 码在文章“设计自己的 程序”中也有描述;也可参考 ISP 据 , 位起始位, 位数据位, 位停止位,不带校验 0x0D 1 8 1 。 DOWNLOAD.C 位 的波特率,确定其通信速率。连接成功后, ROM Load- 程序显示其版本信息: 结 语 er DS89
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 趣味参观指南课件
- 临水电安全培训
- 课件模板使用
- 神奇的眼镜课件
- 物理统计方法
- 产科异位妊娠课件
- 课件最后一次
- 凉山支教考试题及答案
- 教师招聘之《幼儿教师招聘》能力提升试题打印含答案详解(预热题)
- 客店理论考试题及答案
- 南京尚勤新材料科技有限公司药用表面活性剂研发项目环评报告表
- 【核心素养目标】人教版《劳动教育》六上 劳动项目一 《使用洗衣机》 课件
- 肥胖的危害课件
- 医院培训课件:《输血相关法规及输血知识培训》
- 新苏教版小学科学六年级上册《制作汽水》课件
- 眼科操作并发症及处理
- 药理学教案资料
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 零基础预算培训课件
- 可摘义齿修复工艺技术
- DB15-T 2241-2021 数据中心绿色分级评估规范
评论
0/150
提交评论