资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,12,章 单片机的串行扩展技术,单片机的,串行扩展技术,与并行扩展技术相比具有显著的优点,串行接口器件与单片机接口时,需要的,I/O,口线很少,(仅需,1,4,条),极大地简化了器件间的连接,进而提高了可靠性。串行接口器件,体积小,,因而,占用电路板的空间小,,仅为并行接口器件的,10%,,明显减少了电路板空间和成本。,除上述优点外,还有工作电压宽、抗干扰能力强、功,耗低、数据不易丢失,等特点。,因此,串行扩展技术在,IC,卡、智能仪器仪表以及分布式控制系统等领域得到了,广泛的应用。,12.1,单总线接口简介,单总线(,1-Wire bus,),是由,DALLAS,公司,推出的外围串行扩展总线。它只有一条数据输入,/,输出线,DQ,,总线上的所有器件都挂在,DQ,上,电源也通过这条信号线供给,这种使用一条信号线的串行扩展技术,称为,单总线,技术。,各种器件,,由,DALLAS,公司提供的专用芯片实现。,每个芯片都有,64,位,ROM,,厂家对每一个芯片用激光烧写编码,其中存有,16,位,十进制,编码序列号,,它是,器件的地址编号,,确保它挂在总线上后,可以唯一被确定。除了器件的地址编码外,芯片内还包含收发控制和电源存储电路,如,图,12-1,所示。,图,12-1,这些芯片的,耗电量都很小,(空闲时几,W,,工作时几,mW,),工作时从总线上,馈送电能到大电容中,就可以工作,故,一般不需另加电源,。,图,12-2,为一个由单总线构成的,分布式温度监测系统,。多个带有单总线接口的数字温度计和多个集成电路,DS1820,芯片都挂在,DQ,总线上。单片机对每个,DS1820,通过总线,DQ,寻址。,DQ,为漏极开路,须加上拉电阻。,DALLAS,公司为单总线的寻址及数据的传送提供了,严格的时序规范,,具体内容读者可,查阅相关资料,。,图,12-2,12.2 SPI,总线接口简介,SPI,(,Serial Periperal Interface,),是,Motorola,公司,推出的,同步串行外设接口,,允许单片机与多个厂家生产的带有该接口的设备直接连接,以串行方式交换信息。,使用,条线,:串行时钟,SCK,,主器件输入,/,从器件输出数据线,MISO,(简称,SO,),主器件输出,/,从器件输入数据线,MOSI,(简称,SI,)和,从器件选择线,。,SPI,的典型应用是,单主系统,。该系统只有一台主器件,从器件通常是外围接口器件,如存储器、,I/O,接口、,A/D,、,D/A,、键盘、日历,/,时钟和显示驱动等。,图,12-3,是,SPI,外围串行扩展结构图。,图,12-3,单片机与外围器件在时钟线,SCK,、数据线,MISO,和,MOSI,都是,同名端相连。,扩展多个外围器件时,,SPI,无法通过数据线译码选择,故接口的外围器件都有片选端。在,扩展单个,SPI,器件,时,外围器件的片选端可以接地或通过,I/O,口控制;在,扩展多个,SPI,器件,时,单片机应分别通过,I/O,口线来分时选通外围器件。,在,SPI,串行扩展系统中,如果某一从器件,只作输入,(如键盘)或,只作输出,(如显示器)时,,可省去一条数据输出,(,MISO,)或一条数据输入(,MOSI,),从而,构成双线系统(接地)。,SPI,系统中从器件的选通依靠其引脚,数据传送软件十分简单,,省去了传输时的地址选通字节。,但在扩展器件较多时,连线较多。,在,SPI,串行扩展系统中,作为主器件的单片机在启动一次传送时,便,产生,8,个时钟,,传送给接口芯片,作为同步时钟,,控制数据的输入和输出。数据的传送格式是高位(,MSB,)在前,低位(,LSB,)在后,如,图,12-4,所示。,数据线上输出数据的变化以及输入数据时的采样,都取决于,SCK,。但对于不同的外围芯片,有的可能是,SCK,的上升沿起作用,有的可能是,SCK,的下降沿起作用。,图,12-4,SPI,有,较高的数据传输速度,,最高,可达,1.05Mb/s,。,Motorola,公司,为广大用户提供了一系列具有,SPI,接口的单片机和外围接口芯片,如存储器,MC2814,,显示驱动器,MC14499,和,MC14489,等芯片。,SPI,外围串行扩展系统的,主器件,是,单片机,,也可以不带,SPI,接口,,但是,从器件,一定要有,具有,SPI,接口,。,12.3 I,2,C,串行总线的组成及工作原理,I,2,C,串行总线只有,两条信号线,,一条是数据线,SDA,,另一条是时钟线,SCL,,所有连接到,I,2,C,总线上器件的数据线都接到,SDA,线上,各器件的时钟线均接到,SCL,线上,,I,2,C,总线系统的基本结构如,图,12-5,所示。,它可以使具有,I,2,C,总线的单片机,(如,PHILIPS,公司的,8xC552,),直接与具有,I,2,C,总线接口的各种扩展器件,(如存储器、,I/O,口、,A/D,、,D/A,、键盘、显示器、日历,/,时钟),连接,。,对不带有,I,2,C,接口的单片机,(如,89C51,)可采用普通的,I/O,口结合,软件模拟,I,2,C,串行接口总线时序,的方法,完成,I,2,C,总线的串行接口功能。,12.3.1,I,2,C,串行总线概述,只有,两条,信号线,,一条是,数据线,SDA,,另一条是,时钟线,SCL,,所有连接到,I,2,C,总线上器件的数据线都接到,SDA,线上,各器件的时钟线均接到,SCL,线上,,系统的基本结构,如,图,12-5,所示。,图,12-5,I,2,C,的运行由主器件控制,主器件是指启动数据的发送(发出起始信号)、发出时钟信号、传送结束时发出终止信号的器件。,主器件,可以具有,I,2,C,总线接口,也可以不带,I,2,C,总线接口。,从器件,可以是存储器、,LED,或,LCD,驱动器、,A/D,或,D/A,转换器、时钟,/,日历器件等,从器件,必须带有,I,2,C,总线接口,。,I,2,C,串行总线的,SDA,和,SCL,是双向的,带有,I,2,C,总线接口的器件的,输出端为漏级开路,,故,必须通过上拉电阻接正电源,(见图,12-5,中的两个电阻)。,总线空闲时,两条线均为高电平。由于连接到总线上的器件的输出级必须是漏级或集电极开路的,只要有一个器件输出低电平,都将使总线上的信号变低。,SCL,线,上的时钟信号对,SDA,线上的各器件间的数据传输起同步控制作用。,SDA,线上的数据起始、终止及数据的有效性均要根据,SDA,线上的时钟信号来判断。,标准,I,2,C,普通模式,,数据的传输速率为,100kb/s,,,高速模式,可达,400kb/s,。,总线上,扩展器件的数量,不是由电流负载决定,而是,由电容负载,确定。,I,2,C,总线上每个节点器件的接口都有一定的等效电容,连接的器件越多,电容值越大,这会造成信号传输的延迟。,总线上允许的器件数以总线上的电容量不超过,400pF,(,通过驱动扩展可达,4000pF,),据此可计算出总线长度及连接器件的数量。每个连到,I,2,C,总线上的器件都有一个唯一的地址,扩展器件时同时也要受器件地址数目的限制。,I,2,C,总线系统,允许多主器件,,为避免混乱,某一时刻究竟由哪一台主器件来控制总线要通过,总线仲裁,来决定。读者可,查阅,I,2,C,总线的仲裁协议,。当然,经常遇到的是以单片机为主器件,其他外围接口器件为从器件的单主器件情况。,12.3.2 I,2,C,总线的数据传送,1,数据位的有效性规定,在,I,2,C,总线上,每一数据位的传送都与时钟脉冲相对应,逻辑,“,0,”,和逻辑,“,1,”,的信号电平取决于相应电源,V,CC,的电压。,I,2,C,总线在,进行数据传送,时,,时钟线为高电平,期间,数据线上的数据必须保持稳定,只有在,时钟线为低电平,期间,数据线上的高电平或低电平状态才允许变化,如,图,12-6,所示。,根据,I,2,C,总线协议,总线上,数据传送的信号由起始信号(,S,)、终止信号(,P,)、应答信号(,A,)、非应答信号,(A,*,)以及总线数据位,组成,。,图,12-6,(,1,)起始信号(,S,)。,在,SCL,线,为高电平期间,,SDA,线,由高电平向低电平的变化表示起始信号,只有在起始信号以后,其他命令才有效。,(,2,)终止信号(,P,)。,在,SCL,线,为高电平期间,,SDA,线,由低电平向高电平的变化表示终止信号。随着终止信号的出现,所有外部操作都结束。,起始和终止信号都是由主器件发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号出现后,总线就处于空闲状态。起始信号和终止信号如,图,12-7,所示。,图,12-7,若连接到,I,2,C,总线上的器件,具有,I,2,C,总线的硬件接口,,则很容易检测到起始和终止信号。,对于,不具备,I,2,C,总线硬件接口,的有些单片机(如,89C51,),为了检测起始和终止信号,必须保证在每个时钟周期内对数据线,SDA,取样两次。,(,3,)应答信号(,A,)。,I,2,C,总线在每传送一字节数据后都必须有应答信号,与应答信号线对应的时钟信号由主器件产生。这时发送方必须在这一时钟位上使数据总线处于高电平状态,以便接收方在这一位上送出应答信号,如,图,12-8,所示。,应答信号在第,9,个时钟位上出现,接收方输出低电平为应答信号,A,。,(,4,)非应答信号(,A,*,)。,每传送完一字节数据后,在第,9,个时钟位上接收方输出高电平为应答信号,图,12-8,2,I,2,C,总线上数据字节的传送与应答,数据传送时,,传送的字节数(数据帧)没有限制,,但是每一字节必须是,8,位,长度。,先传送最高位,(,MSB,),每一个被传送的字节后面都,必须跟随,1,位应答位(即一帧共有,9,位),,见,图,12-8,。,接收器件收到一个完整的数据字节后,,有可能需要完成一些其他工作(如从器件正在进行实时性的处理工作而无法接收总线上的数据),不需要立刻接收下一字节,这时接收器件可以将,SCL,线拉成低电平,从而使主器件处于等待状态。直到接收器件准备好接收下一个字节时,再释放,SCL,线使之为高电平,从而使数据传送可以继续进行。,如果主器件对从器件进行了应答,但在数据传送一段时间后无法继续接收更多的数据,从器件可以通过对无法接收的第一个数据字节的,“,非应答,”,通知主器件,主器件则应发出终止信号以结束数据的继续传送。,当主器件接收数据时,它收到从器件发出的最后一个数据字节后,必须向主器件发出一个结束传送的信号。这个信号是由对从器件的,“,非应答,”,来实现的。然后,从器件释放,SDA,线,以允许主器件产生终止信号。,I,2,C,总线上应答与非应答信号见,图,12-8,。,12.4 AT89C51,单片机扩展,I,2,C,总线器件的接口设计,随着微电子技术的发展,许多公司,如,PHILIPS,、,Motorola,、,ATMEL,和,MAXIM,等,都推出许多带有,I,2,C,总线接口的单片机及各种外围器件,如,:,存储器、,A/D,转换器、,D/A,转换器、,LED,及,LCD,驱动器、日历时钟电路(且带有,256,8,RAM,),如,PHILIPS,公司,的,PCF8553,(和,PCF8570,(,256,8,RAM,)等。,MAXIM,公司,的,MAX127/128,(,A/D,)和,MAX517/518/519,(,D/A,),,ATMEL,公司,的,AT24C,系列存储器等。,I,2,C,总线系统中的主器件通常由单片机来担当,它可以具有,I,2,C,总线接口,也可以不带,I,2,C,总线接口。从器件必须带有,I,2,C,总线接口。对于,89C51,单片机,没有配置,I,2,C,总线接口,这时可以利用通用并行,I/O,口线模拟,I,2,C,总线接口的时序,使,89C51,单片机不受没带,I,2,C,总线接口的限制。,因此,在许多单
展开阅读全文