CN100517265C - 一种微控制器仿真系统 - Google Patents
一种微控制器仿真系统 Download PDFInfo
- Publication number
- CN100517265C CN100517265C CNB2006101481165A CN200610148116A CN100517265C CN 100517265 C CN100517265 C CN 100517265C CN B2006101481165 A CNB2006101481165 A CN B2006101481165A CN 200610148116 A CN200610148116 A CN 200610148116A CN 100517265 C CN100517265 C CN 100517265C
- Authority
- CN
- China
- Prior art keywords
- emulation
- microcontroller
- control panel
- emulator
- simulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种微控制器仿真系统,其结构包括:外设计算机、控制板、仿真板和电源。仿真器由控制板、仿真板和电源三个部分组成。外设计算机,通过运行仿真软件控制仿真器运作并读入仿真结果;控制板,根据所述外设计算机指令下载用户程序,监控仿真板的运行,并将运行结果报告给所述外设计算机;仿真板,仿真板受控于控制板,单步或连续运行用户目标程序或监控程序;电源,供电给仿真器控制板。本发明主要应用于微控制器仿真芯片的仿真。
Description
技术领域
本发明涉及电子控制装置领域,特别是涉及一种微控制器仿真系统。
背景技术
如今,基于MCU(微控制器)开发的产品在消费电子领域里已经占据绝大部分,并且广泛应用于各种领域,如计算器、遥控器、语音编码、家电控制及各类玩具电路中。产品的生命周期长,市场前景广阔。但是,微控制器的开发和应用离不开基于该微控制器的仿真器。
根据2005年8月31日申请的专利号为200510029285.2的发明专利申请公开说明书,微控制器的仿真器都有一些特征:(1)必须基于一定的微控制器构架设计的;(2)具备微控制器芯片能够实现的全部功能;(3)具备一定的微控制器的实时调试、仿真功能。但是,微控制器的仿真器芯片的这些特征也带来了一些本质的缺陷和不足:(1)仿真器芯片的构架是基于一定架构的微控制器;(2)仿真器的使用需要一定的软件硬件的支持;(3)仿真器芯片面积大于微控制器芯片面积,仿真器芯片的管脚数目大于微控制器芯片的管脚数目;(4)仿真器主要用于调试和仿真,所以芯片的量产不会很大。
相应的,市场上单片机仿真器也是名目繁多,但主要集中在51系列单片机、PIC等通用MCU方面,一些大公司也针对自己产品开发的专用仿真器,但用于手持类消费电子产品开发的仿真器很少。目前还没有开发仿真器来完成手持类消费电子产品的内核程序的开发和仿真,也没有能力为用户提供软体开发平台。
发明内容
本发明的发明目的是为用户提供了从内核程序编写、编译、仿真到完全独立运行的一系列功能完整的仿真开发工具。
本发明由外设计算机和仿真器两部分组成,所述仿真器由控制板、仿真板和电源三个部分组成。所述外设计算机通过运行仿真软件控制仿真器运作并读入仿真结果;所述控制板根据所述外设计算机指令下载用户程序,监控仿真板的运行,并将运行结果报告给所述外设计算机;所述仿真板受控于控制板,单步或连续运行用户目标程序或监控程序;所述电源将220VAC市电转化为9VDC,经2芯插座供给仿真器控制板。所述外设计算机通过串行电缆与控制板连接,控制板和仿真板之间由40芯扁平电缆连接,电源与控制板相连。
本发明分为软件部分和硬件部分。所述硬件部分运行态工作过程中,执行处理程序时,为了回到入口地址,需分两步执行:先将处理程序终点地址作为断点写入断点SRAM的断点标志D0位,然后由仿真芯片执行;然后回到暂停状态,再单步执行一次跳转指令,回至入口地址。
由于有些仿真芯片内部RAM读和写对应不同的存储单元,SRAM中对应的是写操作的存储单元,如果同时读控制板SRAM和仿真芯片内部RAM会引起误操作。本发明控制板上的SRAM除了作为用户程序和处理程序的存储器外,也与仿真芯片中的RAM对应,在程序运行中对RAM的写操作也反应在SRAM中,而对RAM的读操作则通过断点SRAM的RAM和ROM标志D1进行屏蔽。由此,数据读操作时只会读出仿真芯片内部RAM,而不读外部的SRAM。
本发明软件部分采用工程菜单,用户打开工程菜单建立一个工程名,系统将建立一个以工程名命名的文件目录,用户编辑的程序文本和编译生成的目标代码文件、列表文件、错误信息文件将会自动保存在所述以工程名命名的文件目录下。
本发明软件部分将编辑框放在主框架右侧,使输入文本显示在整个显示屏的中部。
本发明的开发成功填补了用于手持类消费电子产品开发的仿真器的技术空白,以软硬件的完美结合为用户提供了从内核程序编写、编译、仿真到完全独立运行的一系列功能完整的开发工具。
附图说明
图1是微控制器仿真系统的结构示意图;
图2是微控制器仿真系统的原理框图。
具体实施方式
下面结合附图和具体实施例,对本发明作更为详细的解释:
图1是本发明的结构示意图。如图1所示,本发明由外设计算机和仿真器两部分组成,所述仿真器由控制板、仿真板和电源三个部分组成。所述外设计算机通过运行仿真软件控制仿真器运作并读入仿真结果;所述控制板根据所述外设计算机指令下载用户程序,监控仿真板的运行,并将运行结果报告给外设计算机;所述仿真板受控于控制板,单步或连续运行用户目标程序或监控程序;所述电源将220VAC市电转化为9VDC,经2芯插座供给仿真器控制板。外设计算机通过串行电缆与控制板连接,控制板和仿真板之间由40芯扁平电缆连接,电源与控制板相连。
图2是本发明的原理框图。
仿真芯片运行的使能信号SRDY,高电平时仿真芯片运行,低电平时仿真芯片暂停运行;准备信号RDY,高电平时表示程序数据有效,仿真芯片把程序读进去并执行,低电平表示程序数据未准备好,仿真芯片暂停读取运行,处于等待状态;SRAM(静态随机存储器)地址空间选通信号SEL,SEL=0选择用户程序,SEL=1选择处理程序;仿真芯片输出的读操作码同步信号SYNC,高电平表示在读操作码周期,低电平表示非读操作码周期;单步运行信号TSLP,高电平表示正常运行,低电平表示单步运行;内部计时器控制信号STPCLK,高电平停止仿真芯片内部计时器,低电平正常运行。
如图2所示,框内部分为控制板部分,框外部分为仿真板部分。PC代表外设计算机。本实施例使用MCU89C52芯片作为主控芯片。P1端口分别分时复用为数据总线和状态输入线;P2端口是高位地址总线;P0端口是低位地址总线,通过锁存器输出控制信号;P3端口是实时控制线。所述MCU89C52芯片通过P1、P2、P0端口与端口扩展电路相连,SRAM通过数据总线D0-D7、SRAM地址空间选通信号SEL和地址总线A00-A15与端口扩展电路连接。所述MCU89C52芯片与SRAM通过端口扩展电路通讯。电平转换与传输门电路分别通过使能信号SRDY、单步运行信号TSLP和P3端口与MCU89C52芯片相连,通过地址总线A00-A15和数据总线D0-D7与SRAM相连,与端口扩展电路相连,通过准备信号RDY、使能信号SYNC和内部计时器控制信号SRPCLK端口与微控制器仿真芯片相连,与EEPROM相连。微控制器仿真芯片和EEPROM通过数据端口DATA和地址端口ADDR进行数据通讯。
本发明由软件和硬件两部分组成。
硬件部分:
本发明硬件部分的工作过程分为3种状态:通讯态、运行态和烧写态。所述运行态又分为用户程序运行、处理程序运行、脱机运行三种形式。
通讯态:
MCU89C52置使能信号SRDY和准备信号RDY为低电平,仿真芯片暂停运行,并使控制板与仿真板之间的数据总线D0-D7和地址总线A00-A15断开。在通讯态下,控制板接收各种外设计算机指令,从外设计算机机下载用户程序写入SRAM或读出SRAM数据,设置或清除断点。当接收到需运行处理程序的指令时(如读写仿真芯片内部RAM、特殊寄存器,复位、跳转操作等指令),MCU89C52将相应程序写入SRAM,并转入运行态执行处理程序,完成后回到通讯态,并将结果送回外设计算机程序。起始地址与当前仿真芯片暂停地址相同。当接受到单步或连续运行指令时,MCU89C52的流程转入运行态,仿真芯片执行用户程序。
运行态:
置准备信号RDY为高电平,仿真芯片进入运行态。当仿真芯片进入用户程序运行状态和处理程序运行状态时,控制板与仿真板间的数据总线D0-D7和地址总线A00-A15连接。通过SEL可以选通SRAM不同地址空间,运行用户程序或处理程序。此时,P1口作为状态输入口检测仿真芯片运行,直到准备信号RDY跳变为低电平,使仿真芯片暂停运行,控制程序回到通讯态。有三种情况准备信号RDY跳变为低电平:1、用户预置断点,即在通讯态时在断点SRAM的断点地址处的断点标志D0位写入0。当程序运行到预置断点处时,断点标志D0输出低电平使准备信号RDY跳变为低电平。2、单步执行,在运行前置单步运行信号TSLP为0,运行中由读操作码同步信号SYNCSYNC触发,使准备信号RDY跳变为低电平。3、连续运行中暂停,在运行中由MCU89C52置单步运行信号TSLP为0,由读操作码同步信号SYNC触发使准备信号RDY跳变为低电平。所述三种情况都可以保证仿真芯片停在读操作码周期。在单步或连续运行中如果准备信号RDY不变化,代表仿真芯片进入睡眠,仿真器向外设计算机发送报告内容后保持运行态。
执行处理程序时,为了回到入口地址,需分两步执行:先将处理程序终点地址作为断点写入断点SRAM的断点标志D0位,然后由仿真芯片执行;然后回到暂停状态,再单步执行一次跳转指令,回至入口地址。由此便继续从原位置执行用户程序。
当仿真芯片进入脱机运行状态时,仿真板上EEPROM被选通,控制板和仿真板间地址总线A00-A15和数据总线D0-D7断开,仿真芯片运行EEPROM中的程序。按控制板复位键或外设计算机程序发送任意指令可使仿真器退出脱机运行,回到通讯状态。
烧写态:
此时仿真芯片电源切断,EEPROM选通,控制板与仿真板地址总线A00-A15和数据总线D0-D7连通,P3口控制线复用为EEPROM读写线,控制板将SRAM中的用户程序写入EEPROM。在烧写结束指示灯亮或闪后,外设计算机发送任意指令或按控制板复位键可退出烧写态,转入通讯态。所述指示灯亮表示烧写成功,指示灯闪表示烧写失败。
在上述工作过程中,除了运行用户程序时以外,内部计时器控制信号STPCLK=1时可以停止计时器运作。
由于有些仿真芯片内部RAM读和写对应不同的存储单元,SRAM中对应的是写操作的存储单元,如果同时读控制板SRAM和仿真芯片内部RAM会引起误操作。本发明控制板上的SRAM除了作为用户程序和处理程序的存储器外,也与仿真芯片中的RAM对应,在程序运行中对RAM的写操作也反应在SRAM中,而对RAM的读操作则通过断点SRAM的RAM和ROM标志D1进行屏蔽。由此,数据读操作时只会读出仿真芯片内部RAM,而不读外部的SRAM。
软件部分:
软件主要分为三部分:编译部分、反编译部分和调试仿真部分。
编译:
编译部分主要实现了用户文本文件的编辑和编译。由于编译过程中生成的文件类型较多,往往给用户的使用带来不便。本发明软件部分采用工程菜单实现对用户工程的管理。用户首先应打开工程菜单建立一个工程名。系统将建立一个以工程名命名的文件目录,用户编辑的程序文本和编译生成的目标代码文件、列表文件、错误信息文件将会自动保存在该目录下。所有生成文件的文件名都与工程名相同,但是后缀名各不相同。本发明使用户操作更加方便、简捷。
本实施例软件主框架采用FormView控件,其中主要部分是一个编辑框,采用RichEditCtr控件。用户可在编辑框中输入程序文本。由于汇编语言的指令较短,所以整个文本在编辑框中位置偏左。本发明将编辑框放在主框架右侧,使输入文本显示在整个显示屏的中部。在视觉效果上避免了用户在编制程序过程中视觉长期停留在屏幕的左半边,造成不适。在用户输入同时,当前行被分解为操作码、操作数。所述操作码、操作数以及前行号、总行数显示在主框架左侧的文本框内。
用户程序编辑完成后可以使用编译菜单进行编译。程序调用编译器设置对话框来进行芯片类型和码型设置,读取编辑框中的程序信息进行编译。编译生成了程序数据链表。所述程序数据链表每行程序为一个结点,每个结点的数据结构包含了行号、操作码、操作数、寻址方式、目标代码等详细信息。所述程序数据链表结构在文档类中创建,以便于各个视图类引用。编译过程中如有错误,系统自动调用信息提示框函数提示用户,用户可以打开编译结果窗口查看编译错误信息并修改错误;编译过程如没有错误,生成目标文件和列表文件并保存于工程目录下,同时系统自动调用信息提示框函数提示用户。
反编译:
相对于编译系统,反编译系统功能更加模块化。用户只要打开工程菜单反编译子菜单,调入目标文件,系统会立即开始对目标代码读取并反编译。反编译程序同样在文档类中生成程序链表。由于系统不能自动识别目标代码数据是作为源程序的主程序还是表格数据,所以在反编译开始之前用户需要选择表格数据的起始地址。用户可以在反编译完成后,通过对源程序的判断来判定表格数据起始地址的选择是否正确。如果反编译不成功,用户可以更改表格的起始地址再次反编译;如果反编译成功,主窗口的编辑框中显示反编译产生的源文件。
调试仿真:
用户打开工程菜单仿真子菜单后即进入调试仿真部分。如果之前用户执行过编译或反编译,内存中则保留了目标程序,调试系统会自动加载目标程序;否则,系统会提示用户加载用户目标文件。在本实施例中调试仿真界面也使用FormView控件,风格与主框架一致。所述调试仿真界主体是一个列表框,加载目标文件后列表框中显示载入目标文件的反编译代码、行号、地址和地址标号。每行代码前有一个选择小方框,用于标记断点。断点的设置极其灵活。用户既可在选择小方框中直接点选,也可以打开断点设置菜单通过对话框输入断点地址,以便程序调用串口通讯函数对仿真器进行设置。用户通过单击界面左半部分的按钮来单步或连续执行程序,程序调用信息提示框函数提示用户“程序执行中”。所述提示框的确认键改作“停止”按钮,同时建立一个监控串口的新线程。当仿真器上用户程序运行暂停(单步运行完成或连续运行遇到断点),或者用户按下“停止”按钮强行中断仿真器上用户程序的运行时,串口监控线程接收到仿真器上传信号(其中主要包括特殊寄存器值)并将所述上传信号转发给主线程后结束本线程。主线程接收到信息后调用显示程序,在界面左下方的文本框内显示特殊寄存器值。用户还可打开视图菜单中的各个子菜单,包括其它通用寄存器、定时器、I/O端口、LCD等,所述子菜单的函数在文档类中实现。每打开一个菜单,程序就建立一个子窗口显示相应资源的状态。如果用户对子窗口中的资源状态进行修改,子窗口向文档类发送消息修改相应变量,并调用串口通讯函数对仿真器进行设置。
以上所述仅为本发明的具体实施方式而已,并不用于限定本发明。任何对本发明作本技术领域内熟知的步骤的替换、组合、分立均应包含在本发明的保护范围之内。
Claims (5)
1.一种微控制器仿真系统,其结构包括:
仿真器,所述仿真器受控于外设计算机,完成微控制器芯片的仿真;
所述外设计算机,通过运行仿真软件控制所述仿真器运作并读入仿真结果;
所述仿真器,其结构进一步包括:
控制板,根据所述外设计算机指令下载用户程序,监控仿真板的运行,并将运行结果报告给所述外设计算机;
所述仿真板受控于所述控制板,单步或连续运行用户目标程序或监控程序;
电源,将交流电转化为直流电,供给所述仿真器控制板;
所述外设计算机通过串行电缆与所述控制板连接,所述控制板和所述仿真板之间通过电缆连接,所述电源与所述控制板相连。
2.如权利要求1所述的微控制器仿真系统,其特征是:所述微控制器仿真系统的仿真板包括一仿真芯片,所述微控制器仿真系统可以通过所述仿真芯片的RAM和ROM标志来对RAM的读操作进行屏蔽。
3.如权利要求1所述的微控制器仿真系统,其特征是:所述的微控制器仿真系统分为硬件部分和软件部分,所述的控制板包括一SRAM,所述硬件部分工作过程执行处理程序时,为了回到入口地址,先将处理程序终点地址作为断点写入断点SRAM的断点标志,然后回到暂停状态,再单步执行一次跳转指令,回至入口地址。
4.如权利要求3所述的微控制器仿真系统,其特征是:所述微控制器仿真系统软件部分采用工程菜单,用户打开工程菜单建立一个工程名,系统将建立一个以工程名命名的文件目录,用户编辑的程序文本和编译生成的目标代码文件、列表文件、错误信息文件将会自动保存在所述以工程名命名的文件目录下。
5.如权利要求3所述的微控制器仿真系统,其特征是:所述微控制器仿真系统软件部分形成一主框架,该主框架包括一设置于该主框架右侧的编辑框,所述编辑框使输入文本显示在整个显示屏的中部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101481165A CN100517265C (zh) | 2006-12-27 | 2006-12-27 | 一种微控制器仿真系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101481165A CN100517265C (zh) | 2006-12-27 | 2006-12-27 | 一种微控制器仿真系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101211308A CN101211308A (zh) | 2008-07-02 |
CN100517265C true CN100517265C (zh) | 2009-07-22 |
Family
ID=39611349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101481165A Active CN100517265C (zh) | 2006-12-27 | 2006-12-27 | 一种微控制器仿真系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100517265C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346208B (zh) * | 2013-07-31 | 2017-09-15 | 上海华虹集成电路有限责任公司 | 仿真器系统及仿真芯片 |
CN104346207A (zh) * | 2013-07-31 | 2015-02-11 | 上海华虹集成电路有限责任公司 | 仿真器 |
CN105824990B (zh) * | 2016-03-10 | 2019-03-15 | 盛科网络(苏州)有限公司 | 一种实现芯片验证高效仿真编译的方法 |
CN106354549A (zh) * | 2016-10-08 | 2017-01-25 | 深圳市讯方技术股份有限公司 | 一种仿真实验方法及虚拟仿真系统 |
-
2006
- 2006-12-27 CN CNB2006101481165A patent/CN100517265C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101211308A (zh) | 2008-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6948164B2 (en) | Method and system for modifying executable code to add additional functionality | |
CN102279789B (zh) | 生产阶段嵌入式系统的调试系统及其调试方法 | |
CN103019941B (zh) | 程序调试方法和装置 | |
US8347278B2 (en) | Instrumenting a compiled software routine for augmentation | |
CN102096725A (zh) | 一种基于fpga的仿真器 | |
CN100517265C (zh) | 一种微控制器仿真系统 | |
CN103218293A (zh) | 一种plc在线调试系统和方法 | |
US11958511B2 (en) | Train signal system and linkage method therefor | |
Iyenghar et al. | A model based approach for debugging embedded systems in real-time | |
CN110196726A (zh) | 一种基于cpu+cpld实现fpga程序远程升级加载的方法 | |
US20220100637A1 (en) | Debugging assistance system and debugging assistance method | |
CN102331961B (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
Macher et al. | Filling the gap between automotive systems, safety, and software engineering. | |
Vogel | An integrated general purpose automated test environment | |
JP5212508B2 (ja) | デバッグ装置 | |
CN109144849A (zh) | 一种嵌入式软件调测方法 | |
CN116301836A (zh) | 一种基于国产自主可控环境的嵌入式开发系统 | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
KR100294633B1 (ko) | 피엘씨의시뮬레이터 | |
CN101308648B (zh) | 自动化测试显示装置的方法及其系统 | |
JPH11110256A (ja) | プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体 | |
JP2803090B2 (ja) | Mpuシミュレーション方法及びmpuシミュレータ | |
JPH02146630A (ja) | マイクロプロセッサのプログラム開発システム | |
CN110134405B (zh) | 一种灵活的向制造执行系统上传数据的方法及装置 | |
Eanes et al. | An environment for producing well-engineered microcomputer software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 214135 -6, Linghu Avenue, Wuxi Taihu international science and Technology Park, Wuxi, Jiangsu, China, 180 Patentee after: China Resources micro integrated circuit (Wuxi) Co., Ltd Address before: 214000 information room, Wuxi New District, Jiangsu, China 301 Patentee before: WUXI CHINA RESOURCES SEMICO Co.,Ltd. |