关键词:单片机 综述 应用技术
单片机在集成度、功能、性能、体系结构方面都有了飞速发展,已能集成一个完整的功能强大、性能优良的计算机应用系统。但目前国内许多单片机应用单位仍停留在采用片内无ROM等低档单片机的状态,无论在系统设计上、使用维护上、经济效益上这都是不合算的。这种状况必须改变。本文就单片机的发展现状进行综述,希望能对提高国内单片机技术的应用水平有所促进。
1 单片机的硬件
单片微型计算机,简称单片机,是微型计算机的一个分支。它是在一块芯片上集成(嵌入)了CPU、RAM和ROM存储器、I/O接口等而构成的微型计算机。因主要用于工业测控领域,故又称为微控制器或嵌入式控制器。单片机的核心是中央处理器CPU。用超大规模集成技术把CPU集成在一块芯片上,称为微处理器。微处理器、微控制器和微型计算机三者的关系十分密切。目前,单片机在工业测控领域中已占重要地位。各电气厂商、机电行业和测控企业都把单片机作为本部门产品更新换代、产品智能化的重要工具。全世界单片机的生产厂家有30多家,能生产60多个系列,1000多个型号的产品。产量大,仅1996年的产量就达18亿片。
1.1 单片机的特点
单片机问世以来所走的路与微处理器是不同的。微处理器向着高速运算、数据分析与处理能力、大规模容量存储等方向发展,以提高通用计算机的性能。其接口界面也是为了满足外设和网络接口而设计的 。单片机则是从工业测控对象、环境、接口特点出发,向着增强控制功能、提高工业环境下的可靠性、灵活方便的构成应用计算机系统的界面接口的方向发展。因此,单片机有着自已的特点,主要是:〔1〕〔2 〕
·品种多样,型号繁多。品种型号逐年扩充以适应各种需要。使系统开发者有很大的选择自由。CPU从4、8、16、32到64位,有些还采用RISC技术;
·提高性能,扩大容量。集成度已达200万个晶体管以上。总线工作速度已达数十微秒。工作频率达到30MHz甚至40MHz。指令执行周期减到数十微秒。存储器容量RAM发展到1K、2K,RO M发展到32K、64K;
·增加控制功能,向外部接口延伸。把原属外围芯片的功能集成到本芯片内。现今的单片机已发展到在一块含有CPU的芯片上,除嵌入RAM、ROM存储器和I/O接口外,还有A/D、PWM、U ART、Timer/Counter、DMA、Watchdog、Serial Port、Sensor、driver、还有显示驱动、键盘控制、函数发生器、比较器等,构成一个完整的功能强的计算机应用系统;
·低功耗。供电电压从5V降到3V、2V甚至1V左右。工作电流从mA级降到μA级。在生产工艺上以CMOS代替NMOS,并向HCMOS过渡;
·应用软件配套。提供了软件库,包括标准应用软件,示范设计方法。使用户开发单片机应用系统时更快速、方便。使有可能做到用一周时间开发一个新的应用产品;
·系统扩展与配置。有供扩展外部电路用的三总线结构DB、AB、CB,以方便构成各种应用系统。根据单片机网络系统、多机系统的特点专门开发出单片机串行总线。此外,还特别配置有传感器,人机对话 、网络多通道等接口,以便构成网络和多机系统。
1.2 单片机的性能〔3〕
单片机通常按其微处理器字长的位数来分类,如4、8、16、32、64位单片机。
1.2.1 4位机
1971年Intel首先推出了4位微处理器芯片4004。此后各厂家相继推出4位机产品。因4位机每次只能处理一位BCD码数据,故只适于简单控制场合。但因其价廉,在家电等消费类产品中仍有广泛应用。近年来 ,为了抵御8位机的侵蚀,4位机在结构和性能上有了很大发展。主要有:
·采用<1μm CMOS工艺,使指令执行速度达到1μs.ROM为32~64kB,RAM为4k×4位。这些增强性能已与8位机相当;
·将LED、LCD、VFD等显示驱动集成在单片中。这种增强的I/O功能甚至比一般的8位机还强;
·降低功耗。低于2.2V电压和μA级电流也能运行。这比一般8位机还低一些;
·采用类似于RISC的结构。使4位机的性能大幅度提高;
·针对特定的应用加入特定的功能。如A/D、D/A、过零检测、比较器、计数器、定时器、图形显示、遥控等。
但即使如此,4位机的市场占有率仍然较小。性能如表1(篇幅所限,仅举数种说明)所列。
1.2.2 8位机
由于8位机可以一次处理一个ASCII字符,因而用途十分广泛。如显示、终端键盘、打印、字处理、工业控制等。市场占有率70%以上。功能丰富,品种齐全,通用性强。1972年Intel首先推出了8位微处理器8008,随后于1976年率先推出8位机MCS-48系列。1980年又推出MCS-51系列产品,其性能大大超过48系列产品。如计算速度为48系列的10倍,时钟12MHz时指令周期可为1μs等。Motorola到78年才推出第一个单片机MC6801系列,不过,功能已相当丰富,如嵌入有EEPROM、A/D、LED驱动、PWM输出等,成为功能很强的工业控制器。Zilog也在78年推出Z8系列单片机,它一开始就以一种新面貌出现,不单可用作单片机,还可作为微处理器用于微计算机系统中。值得特别提出的是,Atmel公司推出的89C系列单片机〔4〕,其内核与工业标准的80C51同,即指令集与管脚分布与MCS51产品兼容。它的特点是时钟频率更高 ,可达33MHz,最高可达40MHz,因而运算速度更快。我国单片机主要应用领域之一为工业测控 ,用于此领域的单片机多为8位机,而以MCS-51系列和AT89C5系列用得最多。不少高校的微机原理或单片机原理课程都以这种机型为背景机。
生产8位机的厂家相当多,品种型号很多。在我国,主流则是上述几家公司的派系产品。而每一派系又有多个厂家及其多种型号产品。如属于Intel派系的有Philips/Signetics,Siemens,AMD,OKI,MARTRA-MHS等公司型号的产品。属于Motorola派系的有Hitachi,Mitsubish,Rockwell,WDC等公司型号产品。属于Zilog派系的有NEC,Hitachi,SGS-Thomson等公司型号的产品。在这几个派系中以Intel的市场占有率最高,Motorola居中,Zilog最低。为了占领市场,Motorola还研制了6804/68HC04芯片,它是介于4位机与8位机之间的系列,CPU处理8位数据,运行8位指令,但数据则是每次串行输出一位,设计目标是4位机的价格,很适于质高价廉的场合。
1.2.3 16位机
1978年Intel最先推出16位微处理器868系列,与随后Motorola的M68000,Zilog的Z8000成为当时的三大系列16位微处理器。由于8位机应用广泛而且能解决问题,使16位单片机进入市场较晚,到1988年Inte l才推出MCS-96系列机。此机具有高速运算及高速处理和控制能力,具有16位的CPU,8位的外部总线( 因此又称准16位机),丰富高效的指令系统,性能价格比优异,其售价只比8位机稍微高一些。片内有A /D、PWM、Watchdog及灵活的中断系统。在工作频率12MHz时指令执行时间为1~2μs。由于性能功能均良好,一出现便引起工业界广泛注意 。在我国,早年以MCS-96应用最多,近年来,Intel80C196、80C25 1、80C51XA等有广泛的应用 。生产16位机的厂家还有Motorola,MATRA-MHS,Mostek(Thomson),NEC ,OKI,Phil ips/Signetic,Sieme ns等。但到目前总产量仍不大,远低于8位机。不过由于采取了增强功能、提高性能、品种多样化和不断降低价格等措施,近年来发展迅速,估计90年代末期可望赶上8位机。所采取的措施主要有:
·增强运算能力,加大容量。片内有健全的乘除指令,RAM容量加大到2k,ROM到64k,可直接支持C和Forth语言;
·提高数据处理与传输能力。一般都增加了DMA传输和快速I/O功能;
·提高速度。如80C51XA工作频率达30MHz,HPC系列达40MHz。指令周期降至数μs。
·采用RISC结构。如Waterscale的PSC1000,Harris的RTX2000等均采用RISC结构。
现今16位机以Intel的8096系列的产量最大,准16位机8098已停产。CMOS工艺的单片机以国家半导体的HPC系列的性能价格比最高,Hitachi的H8/500则是目前综合性能最好的单片机。
1.2.4 32位机
随着高技术在智能机器人、光盘、激光打印机、图像与数据实时处理、复杂实时控制、网络服务器等领域的应用发展,16位机已显得无能为力,需要32位机才能满足要求。80年代末推出了多种32位机产品 。如Motorola推出的产品68300、Intel的80960都是1989年出品。其共同特点是:
·寻址能力在GB级以上(存储、处理彩色图像需要特大存储器);
·高指令执行速度。每秒M级条指令。如Intel的i960A速度为66MIPS;
·快速运算能力。有的嵌入浮点运算部件,运算能力大为增强;
·直接支持高级语言和实时多任务执行。如支持C、Forth语言。嵌入实时多任务操作系统。大多数采用RISC结构。除Motorola的MC68332、国家半导体的NS32CG160等仍用CISC外,均用RISC。
1.2.5 64位机
64位机在引擎控制、智能机器人控制、磁盘控制、语音/图像通信、算法密集的实时控制等场合使用。但国内仍未见有应用。下面给出一个产品例子。
英国Inmos公司的Transputer T800是64位高性能机。它集成有处理器、高速缓存、64位浮点运算器、存储控制器、串行接口,适用于超高速并行处理。
中央处理器为32位,其浮点运算速度达12亿次/秒。RAM 4k,I/O链接通道4组20Mbit/s,时钟频率25MHz,数据传输率100MB/s,可寻址外部存储空间4GB。外存储器传输率33MB/s。
2 单片机的总线
一直以来,单片机没有自己的专门的总线标准,通常是由著名厂家推出自己产品时配套设计的。如MC S-51系列单片机就设计有完善的三总线结构(地址总线AB,数据总线DB,控制总线CB),要构成不同的单片机应用系统是方便的。虽然,单片机可以归结为工控机的一种,而工控机的成熟主流总线是STD总线,但单片机却没有完全执行STD总线标(IEEE961),而以控制总线差别较大。
这里只论及完全根据单片机的特点,按照控制系统网络及多机系统的需要而设计的串行接口总线。有了此总线,多个单片机就能以一定的拓朴结构组成多种系统,弥补了在网络控制方面的不足。
单片机应用系统涉及多种多样的外部设备或系统的互连和通信,有必要在单片机与外部芯片间插入有通信功能的接口。这样做的好处是:1)串行总线连线少,结构简单,安装调整方便。在传送速度不太高的场合,串行总线是可取的;2)总线接口部分已集成到芯片中,系统可以按功能模块直接联接;3)故障诊断排除十分简单;4)可利用软件库进行安装,减少软件开发时间;5)取消外部接口电路,外部接线少,体积小,可靠,价廉。目前已生产出多种产品,但仍未有正式批准的国际标准。常见的有以下几种总线〔5〕〔6〕:
·IIC总线(Inter-Integrated Circuit)。这是Philips开发的一种内部双向二线串行总线。一为串行数据总线。另一为串行时钟总线。线上设备可用软件寻址,且可自动冲突仲裁 。标准传送速率100kbit/s,最大400kbit/s.适于非高速系统。
·BIT总线。这是Intel开发的一种分布式机间通信的串行总线。通过RUPI-44系列的串行接口单元,可实现点对点、多点主从、环形网三种链路结构的通信。外同步速率2.4MB/s(点对点,多点),1.0MB/s(环形网)。
·MicroWire总线。这是国家半导体开发的一种三线串行接口总线。一为数据输出线,二为数据输入线,三为时钟线。线上只有一台机为主机,其余为从机。MicroWire/plus是增强型。各型号功能各异。
·SPI/SCI总线(串行输入接口/串行通信口)。由Motorola开发。SPI为并行同步总线(两条串行数据线,一条串行时钟线)通过SPI的互连可构成各种应用系统。SCI为异步通信接口。
·VESA总线(Video Electronics StandardAssociation)。由视频电子标准协会等多家公司联合推出的全开放模块式的局部总线。又称VESALocal总线,简称VL。此总线支持高速视频处理,总线宽32位,数据线可扩至64位。数据传输率132MB/s。适于多媒体场合。
·CAN总线(Controller Area Network)。这是一种单片机外部串行总线。采用多元竞争式结构。按设定仲裁字的方式进行总线仲裁。是网络系统的一种重要总线型式。
此外,还有Signetics公司的芯片内部的DDB总线等。
1995年末,世界上最新开发的Intel公司的总线产品compact PCI被介绍给我国的工控〔7〕 〔8〕,而该类产品在我国目前仍处于初创研发阶段。作为归结为工控机类的单片机,如何彻底解决设备共享问题 ,从而加入现场控制系统(FCS)中,一直是工控界关注的问题。
3 单片机的软件
通常单片机开发中用的程序设计语言是汇编语言。编写程序后用PE、EDLIN等软件在计算机上编辑,然后编译成机器码文件,再由通信软件将机器码文件送入单片机联机调试。随着单片机系统规模的扩大和功能的复杂,用汇编语言编制程序的方法有明显的缺点。主要是效率低,程序不易维护,不能移植,很不适应要求。有必要寻求一种高效率的结构化的高级程序设计语言。这些语言现在有C、PL/M、Forth 、Pascal、Modula-2等〔9〕。
C语言是一种介于高级语言和汇编语言之间的适于单片机开发用的语言。它既有高级语言的特点,又易与汇编语言接口。原来用汇编语言写的程序现在可以用C语言编写。只是在体现速度的场合如信息的实时处理、实时控制,以及和硬件打交道的场合如接口驱动程序,才会插入汇编语言程序。一些开发系统都配有C语言调试程序、编译器等。
PL/M是Intel开发的一种结构化高级语言。如PL/M-96是其中一种。其编译生成的机器码就是MCS-96系列单片机的机器码。其编译、连接、定位程序可以在80386及其兼容机上运行。
Forth语言原来是60年代美国人CharlesMoore发明的一种中级计算机语言,用于控制天文望远镜,1986年移植到单片机中。它具有速度快、程序简单、结构精巧、扩充方便、空间节省等特点。适宜向工控、设备管理、数据处理、智能机器人、仪表等领域推广应用。Forth语言别具一格,与其它高级语言不同,它以词典为核心,以堆栈为运算场所,把解释、编译、调度、设备管理等集于一体,能同时使用For th高级语言、编语言、机器语言。因Forth的内核只占2k~8k,很容易装入仪表内部。
因Modula-2是基于Pascal开发系统移植来的,具有Pascal的特点,它们都比C差些。在此不再叙述。
4 单片机的开发工具
因单片机本身不具备开发功能,因此,在开发单片机时必须借助某些开发工具。这些开发工具通常称为仿真器或开发系统。可供采用的有〔10〕:
·在线仿真器。简称仿真器。仿真器通过RS-232接口(或并行口)与宿主机相连。又用电缆线把仿真器与目标系统相接。用仿真器中的“仿真单片机”取代目标系统的同类型的“目标单片机”。然后在宿主机上进行各种操作,从而获得对仿真单片机也即对目标单片机的仿真和控制功能。这是我国用得最多的一种,其操作平台由DOS系统发展到WINDOWS。
·在位仿真式的在线仿真器。与在线仿真器不同的是,把仿真器与目标系统间的连接电缆归并到仿真器的负载之中,从而不会影响目标系统的性能(如噪声干扰、稳定性等)。北京东方计算机技术研究所开发的UD-96/C196仿真器采用了这种技术。
·综合开发系统。把在线仿真器、逻辑分析仪、信息发生器、EPROM写入器等原来分开的功能部分有机地结合在一起。使开发工作更有效、方便,但价格昂贵。
·自开发系统。与在线仿真器不同的是取消用电缆连接另外的目标系统。开发完毕后就将自身作为目标系统使用。开发价格较低。
下面介绍一下国内外的几种Forth语言开发系统。
·英国Triangle DigitalServices公司的TDS-9090跟踪数据仿真器(Track Data Simulato r)。通过RS-232与计算机相连,即可用Forth语言编程。然后将程序代码存入PROM中,生成一个独立的系统。在非易失性RAM支持下独立运行。TDS的硬件是CMOSHatchi的HD63A03Y 8位单片机,指令与Motorola的680 0兼容。RAM 30K,ROM16K,EPROM 16K,EEPROM 256B。包含有一个写机器语言的符号汇编器,可同时使用Forth及汇编语言。具有全屏幕编辑、多任务、时钟、看门狗、低电源运行功能。
·加拿大SDS电子技术公司的SDSForth-51开发系统。其硬件为Intel的8051系列8位单片机。包括For th-51软件和SL-51Kit开发工具两部分。将Kit与PC机连接,即可用Forth或汇编语言编程。可用PC联机调试。最后生成二进制文件装入仿真器。
·MCS96-Forth 1.0开发系统。1996年,国内有人在MCS-96系列单片机上开发出一种Fort h系统,命名为MCS96-Forth 1.0,提供一个实用的Forth开发工具,已经通过鉴定。已具备正式投入运行条件 。Forth语言已经汉化。