同步串行扩展总线接口
扫描二维码
随时随地手机看文章
[摘要]简要论述了当前单片机测控领域常见的几种同步串行扩展总线的基本原理,给出了它们典型的应用接口方式,同时对单片机测控系统的总线选择提出一些建议。
[关键词]同步串行总线;单总线;I2C;SPI
1串行总线接口简介
众所周知,单片机与外围设备的通信方式可分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。并行通信速度快,实时性好,但由于占用单片机的口线多(即使地址和数据线可部分复用),不适合作为小型化产品和分布式、远程测控系统的数据通信方式。串行通信只需一根和几根数据传输线(兼作地址、控制线),不仅大大降低硬件成本,也有利于系统的扩展设计,所以串行总线广泛应用于单片机测控中。目前串行总线除了使用通用异步串行接口(UART,如:RS-232C/449/423/422/485)以外,应用越来越多的是同步串行扩展总线接口,主要有单总线、I2C、SPI、USB、MPS、Microwire/PLUS等。越来越多的外围器件如A/D、E2PROM、集成智能传感器等,都配置了同步串行扩展总线接口I2C、SPI等,而摈弃了以往的并行总线接口。从20世纪90年代开始,众多的单片机厂商都陆续推出了
带有同步串行接口的单片机(一般保留了异步口UART),如:Philips公司的8XC552和LPC76X系列,带I2C接口;Motorola公司的M68HC05和M68HC11,ATMEL公司的AT89S8252以及新一代的基于RISC的AVR系列单片机都集成有SPI接口。可以说串行总线是当今单片机测控系统开发的首选,只有在没必要或不能使用串行总线的场合才用并行总线。文中将逐一介绍上述几种同步串行扩展总线及其接口方式,以便给大家选择外围器件及进行系统设计提供一点借鉴。
2几种常见的同步串行总线接口的基本原理和使用方法
2.1I2C总线
I2C(Inter-IC)总线是英文INTERICBUS或ICTOICBUS的简称,它是由Philips公司推出的一种基于两线制的同步串行总线,被广泛应用于消费类电子产品、通信产品、仪器仪表及工业测控系统中。在标准模式下,I2C总线的数据传输速率可达100间进行双向传送。各种器件均并联在这条总线上,而且每个器件都有惟一的地址。MCU发出的控制信号分为地址码和数据码两部分:地址码用来标识器件地址,即确定和哪个器件进行通信;数据码就是通信的内容。这样,各器件虽然挂在同一条总线上,却彼此独立,互不干扰。图2—1以AT89C51(本身不带I2C接口,用I/O口模拟)接两片E2PROMAT24C16为例简要说明I2C接口的使用方法。
图2—1中,由A0、A1、A2确定器件的地址,故U1的地址为000,U2的地址为001;R1、R2为上拉电阻;用AT89C51的P1.0、P1.1脚模拟出I2C的SCL和SDA信号,对于有I2C的MCU直接接到对应的SCL和SDA脚即可。
2.2SPI总线
SPI(SerialPeripheralInterface串行外设接口)是由Motorola公司提出的一种基于四线制的同步串行总线,它在速度要求不高、低功耗、需保存少量参数的智能化仪表及测控系统中得到广泛应用。使用SPI总线接口不仅能简化电路设计,还可以提高设计的可靠性。SPI总线使用4条线:1)SCK(SerialClock),串行时钟线,主机启动发送并产生SCK,从机被动接收时钟;2)MISO(MasterInSlaveOut),主机输入从机输出;3)MOSI(MasterOutSlaveIn),主机输出从机输入;4)(SlaveSelect),从机选择信号,低电平有效。典型的由SPI总线构成的分布式测控系统如图2—2所示。
图2—2中,各器件的片选端或使能端由MCU的其它I/O端口来控制。同I2C一样,SPI总线也可以用软件来模拟。
2.3单总线(1-WIRE)
单总线是DALLAS公司的一项专利技术,它将地址线、数据线、控制线、电源线合为一根信号线,允许在这根信号线上挂数百个测控对象,这些测控对象使用的芯片每个都有一个64位的ROM,也称之为身份证号,确保挂在单总线上后,可以被惟一地区分识别出来。ROM中含有CRC检验码,能确保数据交换可靠。芯片内还有收、发控制和电源存储电路,一般不用另附电源。这些芯片在检测地点就把模拟信号数字化,单总线上传送的是数字信号,使系统的抗干扰性能好、可靠性高。单总线系统按单总线协议规定的时序和信号波形进行初始化、识别器件和交换数据,单片机I/O口P1、P2、P3中的任一位端口都可以与总线进行双向数据传输。通过单总线可以方便、便宜地构建分布式单片机测控系统。图2—3所示的环境监控系统,只需要一条双绞线(一根为信号线,一根为地线)从单片机拉向监控系统,然后将各种监控对象挂在其上就可以了。
2.4USB总线
USB(UniversalSerialBus)是1995年Microsoft、Compaq、IBM等公司联合制定的一种新的串行通信协议。USB支持热插拔和即插即用,USB接口可对外提供电源,USB2.0规范提供高达480Mbit/s的数据传输速率,最多支持127个设备。数据传输除了支持同步方式外,还可以采用控制、中断和批量传输等方式。在单片机应用系统中,常用的USB接口方法有两种:一种是系统外部扩展USB接口器件(如NS公司的USBN9602);另一种是选用内部带USB接口的单片机(如ATMEL公司的AT43USB351M等)。
2.5MPS总线
MPS是MicroPortSaver(节省微处理器接口的器件)的缩写,代表产品是Xicor公司的串行E2PROM存储器X84XXX系列。MPS接口器件可直接连到处理器总线上,并通过标准总线读写时序进行数据传输(可看作同步方式),在微控制器的控制线如、等的配合下,可以最大限度地节省I/O口,并简化逻辑编程。图2—4以AT89C51接两片E2PROMX84041为例简要说明MPS接口的使用方法(X84041的片选接74LS138输出即可,图中省略)。
2.6Microwire和Microwire/PLUS总线
Microwire总线是美国国家半导体(NS)公司推出的三线同步串行总线。这种总线由一根数据输出线(SO)、一根数据输入线(SI)和一根时钟线(SK)组成(但每个器件还要接一根片选线)。原始的Microwire总线上只能连接一片单片机作为主机,总线上的其它设备都是从机。此后,NS公司推出了8位的COP800单片机系列,仍采用原来的Microwire总线,但单片机上的总线接口改成既可由自身发出时钟,也可由外部输入时钟信号,也就是说,连接到总线上的单片机既可以是主机,也可以是从机。为了区别于原有的Microwire总线,称这种新产品为增强型的Microwire/PLUS总线。增强型的Microwire/PLUS总线上允许连接多片单片机和外围器件,因此,总线具有更大的灵活性和可变性,非常适用于分布式、多处理器的单片机测控系统。要改变一个系统,只需改变连接到总线上的单片机及外围器件的数量和型号。Microwire总线系统的典型结构如图2—5所示。
2.7其它的串行接口
除了以上介绍的5种串行扩展总线接口,还有一些器件具有类似的总线接口,如DS1302,它是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行记时,具有闰年补偿功能。它采用三线制与MCU进行通信:(1)I/O,串行数据输入/输出;(2)SCLK,串行时钟输入端,是串行数据的同步信号;(3),复位兼片选端。
3结论
以上简要论述了当前单片机测控领域常见的几种同步串行扩展总线的接口方式,大家可以根据需要选择适当的接口方式来组成自己的单片机测控系统。一般来说,外围器件或被控器(从机)具有上述的一种或几种串行接口;主控机可以有两种选择:(1)选择有对应接口的单片机。它们的内部已经具有了相应的时序硬件控制逻辑,并提供了相应的控制寄存器和中断向量,只要按资料进行编程控制即可;(2)用常用的单片机,但是没有相应的同步串行接口,此时,大部分情况下可以通过I/O口的模拟来实现接口的功能(就是用软件模拟出通信过程中的时序变化),这样做必然会增加编程的代码量和降低系统的可靠性。