任何一套电子系统,都必须经过“设计-制作-调试-修改设计-制作-调试……”等多次反复的过程。单片机的应用系统也不例外。特殊的是单片机在程序固化后(一个实际运行的单片机应用系统就是这样),仅仅从外部是很难测试单片机的硬件和软件是否设计合理、运行是否正常。因此,在开发单片机应用系统时人们往往要采用一定的工具或工具组合。所谓单片机开发系统是一种用来进行单片机系统开发、调试、维修和分析的专用工具组成的系统。
也有人用下面的等式简单地来表示单片机开发系统:
MDS=OLE十SLD十Other Tools (2-1)
其中:MDS指单片机开发系统(Microprocessor Development Systems);OLE指在线仿真器(On Line Emulator);SLD指源级调试器(Source Level Debugger);other too1s指开发系统中的其它一些工具。
对单片机开发系统的基本要求是:首先把编译好的目标代码存人单片机,然后控制并追踪系统的执行,在设置的断点处可以更改一些寄存器中内容,分析一些基本数据。总的来说,对单片机开发系统的一个总的要求是对于系统组合和综合调试具备控制和分析的能力。单片机开发系统可以有以下的分类方式:
1. 通用型单片机开发系统和专用型单片机开发系统。通用型开发系统是指可以开发不同类型的单片机,而专用型单片机开发系统只能开发某一类型、某一系列甚至某种单片机。
2. 局部占用型与全透明型开发系统。局部占用型开发系统是指仿真时要占用一部分用户资源系统,而全透明型开发系统则是使用自成体系的专门硬件和软件系统,能对各种复杂用户系统进行完全的开发。
3. 非交互式开发系统主要由仿真器构成,对硬件、实时系统软件的调试能力差;交互式开发系统则由仿真器、仿真存储器和逻辑分析仪等多种设备组成,具有很强的在线仿真功能和逻辑分析功能。
从另一个角度,单片机开发工具可分为准硬件(Hardware-only)、准软件(Software-only)和软、硬件混合式三大类。其中,准硬件的开发工具用得最少,软、硬件混合式开发工具品种最多,准软件的开发工具虽然数量少但仍在发展之中。应用最多的仍然是混合式开发工具。下面重点介绍混合式开发工具中的软件和硬件。
1.混合式开发工具中的软件
几乎所有的单片机开发工具都要使用软件,常用的软件有交叉汇编程序、交叉编译程序、全页编辑程序、联结程序、仿真程序、除错程序和格式转换程序等几种。这些程序通常以不同版本的形式提供给不同的操作系统(例如,PC机平台的DOS或windows、大型系统的Unix等)。
开发系统最常用的编程语言是汇编语言和C语言。8051及其派生的单片机在C语言编程方面已建立起一定的基础,由于C语言编程具有工作效率高、可移植性好、维护方便、便于团队协作共同完成单片机应用系统的开发等特点,是工程上主要的应用语言。而汇编语言则在运行速度和存储空间利用效率上具有明显的优势,在工程上有些关键的程序和系统比较简单的时候也经常采用或必须采用汇编语言。由于本书作为教材,而汇编语言具有直观、与硬件结合密切和有助于理解单片机工作原理等高级语言难以替代的特点,所以本教材仍然以汇编语言为主。
大多数开发工具的软件具有以下功能和特点:
——能与主计算机通信;
——能将程序上装到主计算机,或从主计算机下装到单片机;
——符号除错和单步除错;
——设定断点、进行单点检查(Snapshot)、寄存器冻结、寄存器跟踪、设定监视点(watch point)等等;
——提供在线汇编程序和反汇编程序。
许多单片机和开发工具生产厂家可为用户提供一种叫做“集成开发环境”(Integrated Development Enviroment,简称IDE)的产品,该产品的目的是使用户能够访问自己希望使用的任何开发工具。目前在windows下运行的IDE数量正在迅速增长。IDE通过操作简便而高效的用户接口为用户提供一个良好的开发环境,其特点是具有多窗口编辑程序、鼠标控制程序、半自动汇编程序至目的码的翻译程序、交互式在线辅助功能和开发阶段用于记录简短笔记的“记录簿”(Notepad)。下面将要介绍的Keil C51 μVision2就是一款功能强大、目前最为流行的单片机(特别是51系列单片机)的集成开发环境。
大多数开发系统的汇编程序具有二进制至Intel16进制文件格式的转换程序(Intell6进制格式是大多数开发系统和仿真板的标准格式);交叉汇编程序则为若干种单片机提供目的码的编译,使用交叉汇编程序的好处是允许用户借助一个开发工具对几种不同型号的单片机实现编程。
2、混合式开发工具中的硬件
混合式开发工具中的硬件有仿真器、逻辑分析仪、编程器、仿真卡、开发套件等。一般说,仿真器应具有实时跟踪、设定断点、工作于单步模式、测量指令周期、使存储器的使用形象化(即目视检查)等功能。仿真软件可以在DOS或Windows下运行。
下面简要地介绍具体的单片机开发工具功能与作用。
①仿真器
仿真器是开发系统的关键设备,它能以与用户处理器相同的时序执行用户程序,并按用户需要产生各种断点响应,同时也可接受主机系统的命令,对用户系统进行全面测试和数据传送。仿真器通常由控制电路、存储器、仿真电线、接口电路等组成。
②逻辑分析仪
在调试用户系统时常常需要观察系统总线的一些硬件断点的实时波形,以便根据它们的时序关系来综合判断系统软件、硬件是否正常,逻辑分析仪就是具有这种功能的设备。
⑧编程器(烧写器)
烧写器是将机器码烧录进单片机的一种设备,一般由烧写器主板和各种烧写适配器组成,通常具有以下特点:以串行接口和PC相连,读/写/校验等功能齐全,Windows平台,界面友好。但目前已有很多单片机具有可在线下载的FLASH Memory(闪存),可以不需要编程器。
④软件支持
各种单片机开发系统的软件支持的差别只是在功能上,一般都具有窗口调试技术,开发系统全部功能的选择、各种命令和调试参数的设置、检查、修改、删除均可通过屏幕上的命令窗口完成,它可以支持调试各种复杂程序,可以支持高级语言和汇编语言文本调试,可用高级语言语句行方式、宏汇编语言指令行方式或高级语言/汇编语言混合方式进行系统调试。
选用开发系统时主要考虑的性能指标有:①仿真的真实性及所占用资源。②程序地址/数据地址/外部信号断点功能。③仿真频率的高低。④仿真存储器大小。⑤调试环境及所能仿真的CPU种类。


