2 单片机的总线
一直以来,单片机没有自己的专门的总线标准,通常是由厂家推出自己产品时配套设计的。如MC S-51系列单片机就设计有完善的三总线结构(地址总线AB,数据总线DB,控制总线CB),要构成不同的单片机应用系统是方便的。虽然,单片机可以归结为工控机的一种,而工控机的成熟主流总线是STD总线,但单片机却没有完全执行STD总线标(IEEE961),而以控制总线差别较大。
这里只论及完全根据单片机的特点,按照控制系统网络及多机系统的需要而设计的串行接口总线。有了此总线,多个单片机就能以一定的拓朴结构组成多种系统,弥补了在网络控制方面的不足。
单片机应用系统涉及多种多样的外部设备或系统的互连和通信,有必要在单片机与外部芯片间插入有通信功能的接口。这样做的好处是:1)串行总线连线少,结构简单,安装调整方便。在传送速度不太高的场合,串行总线是可取的;2)总线接口部分已集成到芯片中,系统可以按功能模块直接联接;3)故障诊断排除十分简单;4)可利用软件库进行安装,减少软件开发时间;5)取消外部接口电路,外部接线少,体积小,可靠,价廉。目前已生产出多种产品,但仍未有正式批准的国际标准:
·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 单片机的开发工具 因单片机本身不具备开发功能,因此,在开发单片机时必须借助某些开发工具。这些开发工具通常称为
仿真器或开发系统:
·在线仿真器。简称仿真器。仿真器通过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语言已经汉化。
参考文献:
[1]. plus datasheet https://www.dzsc.com/datasheet/plus_2541182.html.
[2]. DDB datasheet https://www.dzsc.com/datasheet/DDB_1870709.html.
[3]. EPROM datasheet https://www.dzsc.com/datasheet/EPROM_1128137.html.