Keil软件仿真的串口调试技巧

Keil软件仿真的串口调试技巧
Keil软件仿真的串口调试技巧

Keil 软件仿真的串口调试技巧

引言

在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组 成部分。通常使用单片机串口通过 RS232/RS485 电平转换芯片与上位机连接, 以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的 连接等。RS232/RS485 串行接口总线具有成本低、简单可靠、容易使用等特 点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大 的场合,串口通信仍然是很好的选择,有着广阔的使用前景。

在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往 往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断 点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真 器的确是很有效的方法,但是也有一些缺点:

很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行 时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。

对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿 真头;要么就是硬件仿真器非常昂贵,且不容易买到。

有时由于设备内部结构空间的限制,仿真头不方便接入。

有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高, 实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。

1.调试前的准备工作

下面介绍一种利用的功能来实现 51 单片机用户程序的方法。使用这种方 法,无需任何硬件仿真器,甚至都不需要用户电路板。所需的只是:

①硬件。1 台普通计算机(需要带有 2 个标准串口)和1根串口线(两头 都是母头,连线关系如图1所示)。

图1 串口连线示意图

②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通 用的串口软件(如串口助手、串口调试等),主要用来收发数据。

图2 串口调试助手

2.基本调试命令介绍

这个串口调试方法主要是利用了 Keil 强大的软件仿真功能。在新版本(高 于 6.0)的 Keil 软件中,增强了软件的仿真能力,可以利用软件仿真更多的单 片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来 模拟单片机的串口(这不同于很多软件在仿真时使用的激励文件方式,可以直

接与其他串口进行通信,更加方便、灵活)。首先要介绍仿真时需要使用的两 个命令:ASSIGN和MODE。

2.1 ASSIGN命令

将单片机的串口绑定到计算机的串口。基本使用方式为:

ASSIGN channeloutreg

其中: channel 代表计算机的串口,可以是 COM1、COM2、COM3 或 COM4; 而 inreg 和 outreg 代表单片机的串口。对于只有一个串口的普通单片机,即 SIN 和 SOUT;对于有两个或者多个串口的单片机,即 SnIN 和 SnOUT(n=0, 1,…即单片机的串口号)。

例如:ASSIGN COM1SOUT

将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。

ASSIGN COM2S0OUT

将计算机的串口 2 绑定到单片机的串口 0(针对有多个串口的单片机,注 意串口号的位置)。

需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。

2.2 MODE命令

设置被绑定计算机串口的参数。基本使用方式为:

MODE COMx baudrate, parity, databits, stopbits

其中: COMx(x = 1,2,…)代表计算机的串口号;baudrate 代表串口 的波特率;parity 代表校验方式;databits 代表数据位长度;stopbits 代表 停止位长度。

例如:MODE COM1 9600, n, 8, 1

设置串口1。波特率为9600,无校验位,8位数据,1位停止位。

MODE COM2 19200, 1, 8, 1

设置串口2。波特率为19200,奇校验,8位数据,1位停止位。

使用以上两个命令,就能够将计算机的串口模拟成单片机的串口了。在进 行软件仿真时,所有发送到被绑定的计算机串口上的数据都会转发到 Keil 模拟 的单片机串口上,用户程序可以通过中断处理程序或查询方式接收到这些数 据;同样,单片机程序中发送到单片机串口上的数据也会通过被绑定的计算机

串口发送出来,可以被其他软件所接收。利用这个特点,就可以方便地仿真、 调试单片机的串口部分程序。要注意的是,这两个命令需要一起使用。

2.3 仿真步骤

首先,用串口线将计算机的两个串口连接起来(或者是两台计算机上的两 个串口)。这两个串口一个用来模拟单片机串口,另一个给调试程序使用。这 个由用户自己分配,没有特殊要求。

其次,编写好用户程序,并编译通过。

然后,设置工程文件(Project)的相关参数,如图 2 和图 3 所示。主要是 选择模式(Use Simulator)以及晶振参数。

图3 仿真参数设置

为了不必每次进入仿真状态后,都需要输入串口参数设置命令,可以建立 一个初始化文件。初始化文件是一个普通的文本文件,内容就是仿真时需要的 命令,按照顺序一行输入一条。如图 3 所示,建立了一个 debug.ini 的初始化 文件。这样,当每次进入仿真调试状态时,就会自动载入 debug.ini 的内容进 行初始化。

图4 晶振参数设置

为了正确仿真串口,在软件仿真调试时,在用户的 Keil 工程文件的属性 中,还需要设置实际使用的晶振频率。这个参数非常重要,直接影响通信的波 特率,可以按照实际使用的参数进行设置。要注意,这个参数的单位是MHz。

设置好参数后,就可以进行仿真了。单击工具栏的图标 进入 Debug(仿 真调试)状态,在 Output window 窗口中的 command 文本框(一般是在左下 角)中输入上面介绍的命令。例如,将PC机的串口1设置为单片机的串口: mode com1 9600,0,8,1

assign com1sout

然后设置断点,一般是在关键地方或与串口相关联的地方设置。再单击图 标运行(Run)用户程序,使用户程序运转起来(不然是接收不到串口数据 的)。这时再使用软件或用户调试软件,发送通信命令或者数据包,看用户程 序是否进入断点,以及相关的变量是否正确。还可以有意发送带有错误数据的 数据包,以观察用户程序的异常处理部分是否正常。一旦发现程序中的错误, 可以马上停止仿真调试,立即修改代码,然后再次重复上面的步骤进行仿真。 因为不需要与用户目标板联机,也不用下载代码到用户板上,所以速度非常

高。以上这些步骤和使用硬件仿真器的基本一样,只不过现在使用的是软件仿 真。

需要注意的是:仿真时单片机串口实际的波特率由 MODE 命令来指定,单片 机程序中的 TMOD、SCON 等参数是不影响串口仿真状态的(也就是说这些参数不 影响仿真的波特率,即使它们是错误的)。但是中断的使能位(如 ES、EA 等) 还是起作用的,如果ES或EA被禁止,那么就不会进入串口中断。

因为这种方法是利用计算机的串口来仿真单片机的串口,而仿真是通过 Keil 软件来转换串口上的数据,不是直接转发数据的,所以在实际仿真时,处 理速度会比实际单片机运行时稍微低一点。比方说仿真状态时 1s 只能发送/接 收 10 个数据帧,但在单片机硬件上运行时可能 1s 就可以接收/发送 50 个数据 帧。这与使用的计算机的速度有关,但对仿真来说,是没有任何影响的。

对于多串口的单片机,从理论上来说,可以一次绑定多个串口,只要计算 机有足够多的串口。基本上,使用这种方法需要占用计算机的串口数量是单片 机绑定串口的 2 倍。一个串口被 Keil 占用,用来模拟单片机的串口;另外一个 串口被计算机占用,用来给单片机的串口收发数据。

3.小结

这里介绍的方法对 C51 和汇编语言都是适合的。它最大的好处就是简单、 方便,容易使用,不需要使用任何电路,也没有特殊的要求;甚至可以在硬件 电路制作好之前就将串口部分的程序编写、调试完毕。笔者使用这种方法已经 很长时间了,事实证明这种方法确实非常有效。其实对于 51 单片机,Keil 的 仿真功能实在是太强大了,只要充分掌握其特点,能够熟练利用它,就可以解 决工作中的大部分问题。很多工作都可以使用软件仿真来完成,根本无需任何 硬件仿真器;只有一些新的外部器件的时序、接口的调试才有可能需要用到硬 件仿真器。目前介绍 Keil 软件仿真这方面的参考书籍很少,有些讲的还是老版 本的用法,不过没有关系,Keil 的帮助文件写得很详细、很清楚,只要认真看 明白就会使用了。使用熟练后,就会发现Keil的功能相当强。

对于串口编程,51 单片机有 Keil 这个功能强大的开发软件,给我们带来 了极大的便利;而在其他单片机软件的开发中,目前还没有这么强大的开发工 具和方便的调试手段。这里有个变通的办法,就是可以先在 Keil 中编写并调试 好串口程序,然后将程序移植到其他单片机平台中。至于如何能够减小程序移

植的工作量,使得程序具有更好的通用性,以最小的代价就可以平滑地移植到 其他单片机平台上,也是一个非常值得探讨的问题。

4.再上一层楼

说了那么多,咱们现在的电脑大多只有一个串口,最起码机箱后面只有一 个串口的接口,而现在大多笔记本没有串口,即使使用 USB 转的串口,那也只 有一个。

那就不能用这种方法仿真了呗?

非也,还是有解决方法的,看看下边怎么处理。

这是什么软件?呵呵,可以虚拟串口的软件,先到 NT5 文件夹下执行那个 vsbsetup 的文件,看到一个黑窗口闪过,然后再回来运行 vspdconfig,就可以 运行起来了,运行的界面看看后面图片。

怎么样?什么?英文的?别怕,就点一个按钮而已。

看到右侧那个叫“Add pair”的按钮了?点击它。

呵呵,电脑好像响了一声,好像有时查U盘的声音,有硬件变化一样。

当然,看看左侧,出来了 COM3 和 COM4 了,对呀,虚拟出了两个串口,并 且已经配对了。

到设备管理器里看看,多出来两个串口,确实已经配对。

怎么用?Keil用一个,串口调试助手用一个呗!

一种基于仿真测试平台的实物自动化测试环境

一种基于仿真测试平台的实物自动化测试环境 摘要 针对FPGA软件测试过程中仿真测试和实物测试的不足,提出了一种基于仿真测试用例的实物自动化测试环境,将用于仿真测试的Testbench进行解析处理,形成能够用于FPGA 实物测试的传输信号,通过执行器将此信号转换为作用于被测FPGA芯片的实际信号,并采集被测FPGA芯片的响应,实现对FPGA的实物自动化测试。采用实物自动化测试环境验证平台对设计架构进行了验证,取得了良好的效果。 0 引言 随着FPGA设计规模的不断扩大,因FPGA软件设计而造成的质量问题也越来越突出,成为影响装备质量的重要因素。而测试是当前解决该问题的最有效手段,因此,越来越多的型号装备产品定型过程对FPGA软件测试提出了新的要求[3]。 然而FPGA测试与常规软件测试不同,因其测试环境限制,测试过程需大量依赖于仿真和分析的方法[4],而在实际芯片中开展的测试往往是板级、系统级测试,测试结果可信度低且无法有效发现FPGA软件设计缺陷[5-6]。为此,本文提出了一种基于仿真测试平台Testbench数据的自动化测试环境框架,测试结果具有较高的可信度,能够有效提高FPGA 测试质量。 1 FPGA动态测试概述1.1 FPGA动态测试环境原理 当前型号装备FPGA定型测试过程主要方法包括设计检查、功能仿真、门级仿真、时序仿真、静态时序分析、逻辑等效性检查和实物测试。其中功能仿真、门级仿真、时序仿真和实物测试均为动态测试,开展测试时需依据测试要求,建立FPGA运行的外围环境,根据测试对象的不同,可将此类环境分为仿真测试环境和实物测试环境。 采用仿真测试环境时,需根据测试用例将测试数据映射为不同时刻下的不同信号值,形成仿真测试平台文件Testbench,通过仿真测试工具将被测FPGA产生的响应进行采集和自动判断,形成测试结论[7]。

嵌入式系统仿真测试平台的体系结构研究

!"##!年第$期 福建电脑注:本文得到广东省科技厅攻关项目资金资助%项目编号"##"&’(&)电子科技大学青年基金项目资助%项目编号*+#"#,#-。 &、 引言目前嵌入式系统开发已经成为了计算机工业最热门的领域之一,嵌入式系统应用渗透到信息家电、工业控制、通信与电子设备、人工智能设备等诸多领域。然而嵌入式系统的软件与目标硬件紧密相关,软件开发周期长,开发成本昂贵,软件质量无法保障.&/."/。特别是嵌入式软件的测试工作,在整个开发周期中通 常占用着大部分时间 (-#01,#0)。软件测试是一个非常重要而又艰苦的过程。软件测试工具用来全部或部分的代替人工进行软件的测试工作。它能极大的节省人力、物力和财力,缩短项目的开发周期。 国际上,许多软件公司致力于开发功能强大的软件测试工具。按获得测试信息的方式分为纯硬件、纯软件、软硬件相结合三种类型的测试工具。纯硬件测试工具如仿真器、逻辑分析仪、开发系统等。纯软件测试工具如234563786的2345938:,是一种软件逻辑分析仪。软硬件相结合的测试工具如以;<公司的=>?938:为代表的虚拟仪器和以@AB 公司的BC58DEFD 为代表的测试工具。这三类测试工具都有一个缺点:没有提供一个集成各种软硬件测试工具的框架,使各类测试工具能紧密协调工作。 为提高测试工作的效率,迫切需要功能强大的嵌入式系统测试工具。 仿真开发在嵌入式系统开发中正在发挥着越来越重要的作用。许多软件公司已经开发出成熟稳定的嵌入式仿真开发工具。但是在嵌入式仿真开发中,仍然缺乏一种嵌入式系统测试工具的集成框架。本文正是基于这个目标,从软件体系结构的角度,研究和设计了一种称为G EFDH G 的嵌入式系统仿真测试平台的集成框架。并基于其上实现了一个嵌入式仿真测试平台3I >EFDH 。 "、 嵌入式系统仿真测试平台的体系结构EFDH 对于大规模复杂软件系统,其总体结构设计远比算法和数据结构的选择更重要.J /.!/。基于这样的认识和背景,本文在对嵌入式测试和嵌入式仿真开发深入研究的基础上,研究和设计了EFDH 的体系结构。"K &EFDH 的结构模型 EFDH 的体系结构主要借鉴了当前流行的嵌入式交叉开发工具的目标服务器L 目标代理结构.’/,分为宿主机端和仿真目标机端两大部分。 EFDH 的结构模型见图&: 图&EFDH 结构模型 EFDH 结构模型的基本特征:&M EFDH 由宿主机端和目标机端两大部分构成,宿主机 端以测试服务器DF (D8NO F86786)为核心;目标机端以测试代理D@P D8NO @Q84O M 为核心。 "M 所有的测试工具不与目标机端交互, 而只与测试服务器DF 进行交互;测试服务器DF 同测试代理D@交互。这样只要更换相应的测试代理D@,即可与不同的仿真开发系统一起工作。 J M 测试服务器DF 与所有测试工具之间通过嵌入式仿真测试工具交换协议EFDDR (ES?85585F3STU>O3C4D8NO DCCU 8RI VW>4Q8X6COCVCU ) 规范接口进行交互。!M 测试服务器DF 和测试代理D@之间通过嵌入式仿真测试协议EFD P ES?85585F3STU>O3C4D8NO X6COCVCU M 规范接口进行交互。 ’M 测试工具以软插件的形式集成到EFDH 中%EFDDR 和EFD 规范定义的接口是公开的和可免费获得的,第三方测试工具非常容易的集成到EFDH 中来。 -M 测试工具多种多样,可以是软件代码测试工具,也可以是硬件诊断测试工具,都可以很容易的集成到EFDH 中来,从而达到各类测试工具的紧密协作。 $M EFDH 中各类测试工具紧密集成到一个图形用户接口中,大大提高了用户的工作效率。 ,M 测试代理D@以一个线程的形式存在于仿真运行环境中,与各类模拟器之间通过固定的接口交互,获取丰富的测试信息。 "K "测试服务器DF 模型 测试服务器DF 是EFDH 的核心结构部件,作为EFDH 的测试管理器,其结构模型如图"。 图"测试服务器DF 结构模型 DF 的主要功能:&M DF 提供相应的EFDDR 协议规范接口,接受来自测试工具的控制命令和状态查询,并提供相应的数据传输接口,向测试工具返回对应的测试结果。 "M DF 提供相应的EFD 协议规范接口,向采集代理发送控制命令信息和状态查询信息,并且根据EFD 协议规范提供的接口收取返回信息。 J M DF 提供测试高速缓冲管理、 测试存储器管理以及流测试协议,管理和控制整个宿主机端。"K J 测试代理D@模型 嵌入式系统仿真测试平台的体系结构研究 邵荣防,罗克露 P 电子科技大学计算机科学与工程学院,四川 成都-&##’!M 【摘要】仿真开发在嵌入式开发中正逐步成为热点,仿真测试工具在仿真开发过程中正发挥着日益重要的作用。本文首先简要分析了当前的嵌入式测试工具,然后给出一种嵌入式仿真测试平台的体系结构EFDH 。基于EFDH 体系结构,实现了一个面向信息家电的嵌入式仿真测试平台3>EFDH 。 【关键词】嵌入式系统仿真开发 仿真测试平台

系统仿真测试平台

仿真测试系统 系统概述 FireBlade系统仿真测试平台基于用户实用角度,能够辅助进行系统方案验证、调试环境构建、子系统联调联试、设计验证及测试,推进了半实物仿真的理论应用,并提出了虚拟设备这一具有优秀实践性的设计思想,在航电领域获得了广泛关注和好评 由于仿真技术本身具备一定的验证功能,因此与现有的测试技术有相当的可交融性。在航电设备的研制和测试过程中,都必须有仿真技术的支持:利用仿真技术,可根据系统设计方案快速构建系统原型,进行设计方案的验证;利用仿真验证成果,可在系统开发阶段进行产品调试;通过仿真功能,还可对与系统开发进度不一致的子系统进行模拟测试等。 针对航电设备产品结构和研制周期的特殊性,需要建立可以兼顾系统方案验证、调试环境构建、子系统联调联试、设计验证及测试的系统仿真平台。即以半实物仿真为基础,综合系统验证、系统测试、设备调试和快速原型等多种功能的硬件平台和软件环境。 目前,众多研发单位都在思索着如何应对航电设备研制工作日益复杂的情况。如何采取高效的工程技术手段,来保证系统验证的正确性和有效性,是航电设备系统工程的重要研究内容之一,FireBlade 系统仿真测试平台正是在这种大环境下应运而生的。 在航电设备研制工程中的定位设备可被认为是航电设备研制工程中的终端输出,其质量的高低直接关系到整个航电设备系统工程目标能否实现。在传统的系统验证过程中,地面综合测试是主要的验证手段,然而,它首先要求必须完成所有分系统的研制总装,才能进行综合测试。如果能够结合面向设备的仿真手段,则可以解决因部分设备未赶上研发进度导致综合测试时间延长的问题。在以往的开发周期中,面向设备的仿真技术并没有真正得到重视: (1)仿真技术的应用主要集中在单个测试对象上,并且缺乏对对象共性的重用; (2)仿真技术缺乏对复杂环境与测试对象的模拟; (3)仿真技术的应用缺乏系统性,比如各个阶段中仿真应用成果没有实现共享,

实验一 软件仿真器Simulator的使用方法

实验一软件仿真器Simulator的使用方法 一、实验目的 1、了解DSP开发系统平台的构成。 2、了解Code Composer Studio 3.3 的操作环境和基本功能。了解DSP软件开发过程。 二、实验要求 按照实验步骤熟练掌握CCS的使用方法。 三、实验设备 PC一台;操作系统为Windows XP;安装Code Composer Studio 3.3 四、实验原理 开发TMS320C5000应用系统一般需要以下几个调试工具来完成: (1)软件集成开发环境(Code Composer Studio3.3):主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语 言程序编译连接生成COFF格式的可执行文件,并能将程序下载到目标DSP上 运行调试。 (2)开发系统(ICETEK 5100 USB):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。 (3)评估模块(ICETEK VC5416-A):提供软件运行和调试的平台和用户系统开发的参照。 五、实验步骤 1、启动Code Composer Studio 3.3 双击桌面“CCS3.3(C5000)”,启动Code Composer Studio 3.3; 2、创建工程 (1)创建新的工程文件 选择菜单Project的“new…”项;在Project Creation 对话框中,在project项输入 volume;单击location项末尾的浏览按钮,改变目录到 C:\ICETEK-VC5416-EDULAB\Lab01-UseCC,单击OK;单击完成;这时建立的是 一个空的工程,展开主窗口左侧工程管理窗口中Projects下新建立的“volume.pjt”,其中各项均为空。 (2)在工程文件中添加程序文件

虚拟仿真实验平台使用教程

虚拟仿真实验平台使用教程 一、首次使用 1. 虚拟仿真实验平台登录网址为::6050 2. 点击右上角“系统使用说明(首次登录必看)” 3. 根据视频教程安装虚拟运行环境 4. 查看系统各模块的视频教程

二、预习测试 1. 登录仿真平台(初始账号密码均为10位学号,登录后请设置邮箱和密保问题, 设置后可以自行找回密码) 2. 进入“实验预习系统” 3. 在“完成预习”选项卡下进入预习,根据提示完成预习测试题。 注意:“实验预习系统”仅具有答题功能,请同学们完成预习测试题前先在“仿真实验V4.0”系统进行实验学习!

三、仿真实验 1. 进入“仿真实验V4.0” 2. 进入各实验项目进行学习和实验 3. 实验操作由系统评分,同时考察实验操作过程和测量数据情况。 注意:请在结束实验操作前截图保存原始数据,以进行后续的数据处理和报告撰写,实验结束后无法查看原始数据!

四、实验报告提交 1. 完成虚拟仿真实验后,在“开始实验”选项卡下点击“上传实验报告” 2. 点击“报告模板下载”按钮下载该实验的报告模板,根据模板要求完成实验报告并上传。 3. 在教师评阅前实验报告可多次上传,新上传的实验报告会覆盖之前上传的。 五、技术问题 1. 虚拟仿真实验平台使用过程中遇到技术问题时,可在“虚拟仿真实验环境安装

及使用问题解决方案”中查找解决方案。 2. 遇到无法解决的问题,同学们可以将问题反馈给学习委员,由学习委员在“物理实验课程通知群”统一反馈给实验指导教师和公司技术人员。 附:虚拟仿真实验环境安装及使用问题解决方案

虚拟仿真实验环境安装及使用问题解决方案 1. 安装过程中如果遇到如图所示的情况 解决方案:请关闭杀毒软件(360安全卫士,360管家,联想电脑管家,鲁大师等),再重新安装,如果还不行就按照如下链接给注册表权限再安装

相关文档
最新文档