1、第6章 单片机系统串行扩展技术6.1 单片机串行扩展概述6.2 I2C总线 6.3 SPI串行外设接口 6.4 单总线(1-WIRE BUS)6.5 串行A/D和D/A转换接口 6.1 单片机串行扩展概述 单片机应用系统中使用的串行扩展总线主要有单片机应用系统中使用的串行扩展总线主要有I I2 2C Bus(Inter IC C Bus(Inter IC Bus),SPI(Serial Peripheral Interface)Bus),SPI(Serial Peripheral Interface)以及单总线(以及单总线(1-Wire Bus1-Wire Bus)等,这类串行通信总线接口是一
2、种二)等,这类串行通信总线接口是一种二/三线的串行通信标准,在使用三线的串行通信标准,在使用时,硬件要符合接口标准时序的要求,软件要遵守标准要求的通信协时,硬件要符合接口标准时序的要求,软件要遵守标准要求的通信协议,并且在信号定义、接口方法以及操作上各有不同。对于没有这种议,并且在信号定义、接口方法以及操作上各有不同。对于没有这种接口的单片机只要在硬件和软件上能模拟它的通信要求,同样可以与接口的单片机只要在硬件和软件上能模拟它的通信要求,同样可以与带有这类串行通信标准的芯片相连使用。带有这类串行通信标准的芯片相连使用。优点优点:仅占用很少的资源和:仅占用很少的资源和I/OI/O线,器件接线简单
3、,结构紧凑,同线,器件接线简单,结构紧凑,同时还具有工作电压宽、抗干扰能力强、功率低、数据不易丢失和支持时还具有工作电压宽、抗干扰能力强、功率低、数据不易丢失和支持在线编程等优点。在线编程等优点。6.2 I2C总线6.2.1 I2C总线的基本原理6.2.2 I2C总线数据传输格式6.2.3 AT24系列串行E2PROM 6.2 I2C总线 I I2 2C C总线的数据传送只需两根信号线,一根是双向的数据线总线的数据传送只需两根信号线,一根是双向的数据线SDASDA,另一根是时钟线,另一根是时钟线SCLSCL。I2CI2C总线通过这两根线传送信息,可总线通过这两根线传送信息,可发送和接收数据,并
4、允许若干兼容器件共享总线。发送和接收数据,并允许若干兼容器件共享总线。I2CI2C总线传输总线传输速率为速率为100kbps100kbps(改进后的规范为(改进后的规范为400 kbps400 kbps););I2CI2C总线上的外总线上的外围器件都是围器件都是CMOSCMOS器件,属于电压型负载,总线上的器件数量不器件,属于电压型负载,总线上的器件数量不是由电流负载能力决定,而是由电容负载确定。是由电流负载能力决定,而是由电容负载确定。6.2 I I2 2C C总线总线 两线式传输。总线上的所有节点,如主器件两线式传输。总线上的所有节点,如主器件(单片机,微处理器单片机,微处理器)、外、外围
5、器件、接口模块等都连到同名端的围器件、接口模块等都连到同名端的SDASDA、SCLSCL线上。线上。系统中有多个主器件时,这些器件都可作为总线的主控制器,总线工系统中有多个主器件时,这些器件都可作为总线的主控制器,总线工作时任何一个主器件都可以成为主控制器,多机竞争时的时钟同步与作时任何一个主器件都可以成为主控制器,多机竞争时的时钟同步与总线仲裁都由硬件与标准软件模块自动完成,无须用户介入。总线仲裁都由硬件与标准软件模块自动完成,无须用户介入。按照按照I I2 2C C总线规范,总线传输中将所有状态都生成相应的状态码,主总线规范,总线传输中将所有状态都生成相应的状态码,主器件能够依据这些状态码
6、自动进行总线管理。器件能够依据这些状态码自动进行总线管理。系统中所有外围器件及模块采用器件地址及引脚地址的编址方法。系统中所有外围器件及模块采用器件地址及引脚地址的编址方法。所有带所有带I2CI2C接口的外围器件都具有应答功能。接口的外围器件都具有应答功能。u I I2 2C C总线主要特性如下:总线主要特性如下:6.2.1 I2C总线的基本原理 由于由于I I2 2C C总线为双向同步串行总线,因此,总线为双向同步串行总线,因此,I I2 2C C总线接口内部为总线接口内部为双向传输电路,即各器件连接到总线的输出端是漏极开路输出或集双向传输电路,即各器件连接到总线的输出端是漏极开路输出或集电
7、极开路输出的电路结构,故两条总线上必须有上拉电阻电极开路输出的电路结构,故两条总线上必须有上拉电阻R R,R R通常通常可以选可以选5 5 10k10k。典型的典型的I I2 2C C总线接口电路如图总线接口电路如图1 1所示所示:6.2.1 I2C总线的基本原理图图6-1 I6-1 I2 2C C总线接口电路结构图总线接口电路结构图6.2.1 I2C总线的基本原理 I I2 2C C总线的寻址方式总线的寻址方式:在:在I2CI2C总线开始信号后,主器件发出的总线开始信号后,主器件发出的第一个字节数据是用来选择从器件地址的,其中前第一个字节数据是用来选择从器件地址的,其中前7 7位地址码,第位
8、地址码,第8 8位为方向位位为方向位(R/W)(R/W)。方向位为。方向位为“0 0”表示发送,即主器件把信息写表示发送,即主器件把信息写到所选择的从器件,方向位为到所选择的从器件,方向位为“1 1”表示主器件将向从器件读信息。表示主器件将向从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,其接收信息还是发送信息则由该器件即为被主器件寻址的器件,其接收信息还是发送信息则由第第8
9、8位位(R/W)(R/W)确定。确定。6.2.2 I2C总线数据传输格式 1.I 1.I2 2C C总线信号总线信号 主器件和从器件之间一次数据传送称为一帧。一帧由启动信号、主器件和从器件之间一次数据传送称为一帧。一帧由启动信号、若干个数据字节和应答位以及停止信号组成。若干个数据字节和应答位以及停止信号组成。I I2 2C C总线是按位传送的,总线是按位传送的,在时钟线在时钟线SCLSCL的一个时钟周期只能传送一位数据。而且,数据线的一个时钟周期只能传送一位数据。而且,数据线SDASDA上上的信号电平在的信号电平在SCLSCL为高电平期间必须稳定(除启动和停止信号),数为高电平期间必须稳定(除
10、启动和停止信号),数据线上的信号变化只允许在据线上的信号变化只允许在SCLSCL的低电平期间发生。如图的低电平期间发生。如图6-26-2所示。所示。6.2.2 I2C总线数据传输格式图图6-2 I6-2 I2 2C C总线接口电路时序总线接口电路时序 在在I I2 2C C总线技术规范中,开始和结束信号(也称启动和停止信号)总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如图的定义如图6-36-3所示。当时钟线所示。当时钟线SCLSCL为高电平时,主器件向为高电平时,主器件向SDASDA线上送线上送出一个由高到低的电平,表示出一个由高到低的电平,表示“开始开始”信号,总线上出现开始信
11、号后,信号,总线上出现开始信号后,就认为总线处在工作状态;当就认为总线处在工作状态;当SCLSCL线为高电平时,主器件向线为高电平时,主器件向SDASDA线上送线上送出的由低到高的电平,表示出的由低到高的电平,表示“结束结束”信号,总线上出现结束信号后,信号,总线上出现结束信号后,就认为总线处于不忙或空闲状态。就认为总线处于不忙或空闲状态。6.2.2 I2C总线数据传输格式图图6-3 6-3 开始和结束信号开始和结束信号6.2.2 I2C总线数据传输格式6.2.2 I2C总线数据传输格式 2.I 2.I2 2C C总线上的数据传输总线上的数据传输 在在I I2 2C C总线上每次传送的数据字节
12、数不限,但每一个字节必须为总线上每次传送的数据字节数不限,但每一个字节必须为8 8位,位,而且每个传送的字节后面必须跟一个认可位(第而且每个传送的字节后面必须跟一个认可位(第9 9位),也叫应答位位),也叫应答位(ACKACK),数据的传送过程如图),数据的传送过程如图6-46-4所示。数据传送每次都是先传最高位,所示。数据传送每次都是先传最高位,通常从器件在接收到每个字节后都会做出响应,准备接收下一个数据字通常从器件在接收到每个字节后都会做出响应,准备接收下一个数据字节,主器件可继续传送。节,主器件可继续传送。如果从器件正在处理一个实时事件而不能接收数据时,例如正在如果从器件正在处理一个实时
13、事件而不能接收数据时,例如正在处理一个内部中断,在这个中断处理完之前就不能接收处理一个内部中断,在这个中断处理完之前就不能接收I2CI2C总线上的数总线上的数据字节,这时可以在应答信号后,使时钟据字节,这时可以在应答信号后,使时钟SCLSCL线保持低电平,控制总线线保持低电平,控制总线暂停。当接收器准备好接收下一个字节时再释放时钟线暂停。当接收器准备好接收下一个字节时再释放时钟线SCLSCL,使数据传,使数据传输继续进行。输继续进行。图图6-4 6-4 数据传送时序图数据传送时序图 6.2.2 I2C总线数据传输格式6.2.3 AT24系列串行E2PROM 带带I I2 2C C总线接口的总线
14、接口的E2PROME2PROM芯片有许多型号,其中芯片有许多型号,其中AT24CXXAT24CXX系列系列使用十分普遍,其中典型的型号有使用十分普遍,其中典型的型号有AT24C01A/02/04/08/16AT24C01A/02/04/08/16等等5 5种,种,它们的存储容量分别是它们的存储容量分别是1024/2048/4096/8192/163841024/2048/4096/8192/16384位,即位,即128/256/512/1024/2048128/256/512/1024/2048字节。字节。AT24CXXAT24CXX系列的串行电改写及可编系列的串行电改写及可编程不需要加高电压
15、,操作可靠性高,读写寿命可达程不需要加高电压,操作可靠性高,读写寿命可达100100万次,数万次,数据可保存据可保存100100年。年。6.2.3 AT24系列串行E2PROM1.1.存储器结构及引脚功能说明存储器结构及引脚功能说明 AT24CXX AT24CXX系列常用的系列常用的DIPDIP封装形式所对应的引脚如图封装形式所对应的引脚如图6-56-5所示所示:图图6-5 AT24CXX6-5 AT24CXX封装封装各引脚的功能和意义如下:各引脚的功能和意义如下:VCCVCC:+5V+5V电源。电源。GNDGND:地线地线 SCLSCL:串行时钟输入端。在时钟的上升沿把数据写入串行时钟输入端
16、。在时钟的上升沿把数据写入E2PROME2PROM;在时钟;在时钟为下降沿时把数据从为下降沿时把数据从E2PROME2PROM中读出来。中读出来。SDASDA:串行数据串行数据I/OI/O端,用于输入和输出串行数据。由于在端,用于输入和输出串行数据。由于在E2PROME2PROM内内部,部,SCLSCL和和SDASDA是漏极开路结构的,所以,使用时需要外接上拉电阻。是漏极开路结构的,所以,使用时需要外接上拉电阻。6.2.3 AT24系列串行E2PROM A0 A0,A1A1,A2A2:是芯片地址引脚。在型号不同时接法不同。是芯片地址引脚。在型号不同时接法不同。对于对于AT24C01AAT24C
17、01A和和AT24C02AT24C02,A0A0,A1A1,A2A2这这3 3位引脚均可以用于芯位引脚均可以用于芯片寻址。当用片寻址。当用8 8片片AT24C01AAT24C01A组成组成1KB1KB的存储器时,则第的存储器时,则第1 1片地址为片地址为“000000”,故,故A0A0,A1A1,A2A2全部接地;第全部接地;第2 2片地址为片地址为“001001”,故,故A0A0接高电接高电平平5V5V,A2A2,A1A1接地;接地;第第8 8片地址为片地址为“111111”,故,故A0A0,A1A1,A2A2全部接全部接高电平高电平5V5V。在用。在用AT24C02AT24C02组成组成2
18、KB2KB存储器时,也同样处理。存储器时,也同样处理。对于对于AT24C04AT24C04,这时只用,这时只用A1A1,A2A2两位作为地址线,两位作为地址线,A0A0引脚不用,引脚不用,故最多只能用故最多只能用4 4片片AT24C04AT24C04来构成来构成2KB2KB的存储器。的存储器。6.2.3 AT24系列串行E2PROM 对于对于AT24C08AT24C08,这时只用,这时只用A2A2这这1 1位作为地址线。位作为地址线。A0A0,A1A1引脚不用,引脚不用,故最多只能用故最多只能用2 2片片AT24C08AT24C08来构成来构成2KB2KB的存储器。的存储器。对于对于AT24C
19、16AT24C16,地址,地址A0A0,A1A1,A2A2引脚全部不用。这时,只能用引脚全部不用。这时,只能用1 1片片AT24C16AT24C16来构成来构成2KB2KB的存储器。的存储器。WPWP:写保护端。通过此引脚可提供硬件数据保护。当把写保护端。通过此引脚可提供硬件数据保护。当把WPWP接地时,允接地时,允许芯片执行一般读写操作;当把许芯片执行一般读写操作;当把WPWP接到接到VCCVCC时,则对芯片实施写保护。时,则对芯片实施写保护。6.2.3 AT24系列串行E2PROM6.2.3 AT24系列串行E2PROM 表表6-5 AT24CXX6-5 AT24CXX系列各种型系列各种型
20、E2PROME2PROM参数参数型号型号容量容量/B/B页数页数页写字节数页写字节数总线可接片数总线可接片数可用地址脚可用地址脚AT24C01AAT24C01A1281281 14 48 8A0A0,A1A1,A2A2AT24C02AT24C022562561 18 88 8A0A0,A1A1,A2A2AT24C04AT24C045125122 216164 4A0A0,A1A1AT24C08AT24C08102410244 416162 2A2A2AT24C16AT24C16204820488 816161 1无无6.2.3 AT24系列串行E2PROM2.2.芯片寻址和存储器单元寻址芯片寻
21、址和存储器单元寻址 表表6-6 6-6 控制字格式控制字格式型号型号容量容量/K/K位位D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0特征码特征码芯片地址芯片地址/页页地址地址读写控制读写控制AT24C01AAT24C01A1 11 10 01 10 0A2A2A1A1A0A0R/WR/WAT24C02AT24C022 21 10 01 10 0A2A2A1A1A0A0R/WR/WAT24C04AT24C044 41 10 01 10 0A2A2A1A1P0P0R/WR/WAT24C08AT24C088 81 10 01 10 0A2A2P1P1P0P0R/WR/WAT24C
22、016AT24C01616161 10 01 10 0P2P2P1P1P0P0R/WR/W6.2.3 AT24系列串行E2PROM 综上所述,由于综上所述,由于I I2 2C C总线可挂接多个串行接口器件,在总线可挂接多个串行接口器件,在I I2 2C C总线中总线中每个器件应有唯一的器件地址,按每个器件应有唯一的器件地址,按I2CI2C总线规则,器件地址为总线规则,器件地址为7 7位数据位数据(即一个即一个I I2 2C C总线系统中理论上可挂接总线系统中理论上可挂接128128个不同地址的器件个不同地址的器件),它和,它和1 1位位数据方向位构成一个器件寻址字节,最低位数据方向位构成一个器
23、件寻址字节,最低位D0D0为方向位为方向位(读读/写写)。器。器件寻址字节中的最高件寻址字节中的最高4 4位位(D7-D4)(D7-D4)为器件型号地址,不同的为器件型号地址,不同的I I2 2C C总线接口总线接口器件的型号地址是厂家给定的,如器件的型号地址是厂家给定的,如AT24CAT24C系列系列E2PROME2PROM的型号地址皆为的型号地址皆为10101010,器件地址中的低,器件地址中的低3 3位为引脚地址位为引脚地址A2A1A0,A2A1A0,对应器件寻址字节中的对应器件寻址字节中的D3D2D1D3D2D1位,在硬件设计时由连接的引脚电平给定。位,在硬件设计时由连接的引脚电平给定
24、。对 于对 于 E 2 P R O ME 2 P R O M 的 片 内 地 址,容 量 小 于的 片 内 地 址,容 量 小 于 2 5 62 5 6 字 节 的 芯 片字 节 的 芯 片(AT24C01/02),8(AT24C01/02),8位片内寻址位片内寻址(A0-A7)(A0-A7)即可满足要求。然而对于容量即可满足要求。然而对于容量大于大于256256字节的芯片,则字节的芯片,则8 8位片内寻址范围不够,如位片内寻址范围不够,如AT24C16AT24C16,相应的,相应的寻址位数应为寻址位数应为1111位位(211=2048)(211=2048)。若以。若以256256字节为字节为
25、1 1页,则多于页,则多于8 8位的寻位的寻址视为页面寻址。在址视为页面寻址。在AT24CAT24C系列中对页面寻址位采取占用器件引脚地系列中对页面寻址位采取占用器件引脚地址址(A2A1A0)(A2A1A0)的办法,如的办法,如AT24C16AT24C16将将A2A2、A1A1、A0A0作为页地址。凡在系统作为页地址。凡在系统中引脚地址用作页地址后,该引脚在电路中不得使用,作悬空处理。中引脚地址用作页地址后,该引脚在电路中不得使用,作悬空处理。6.2.3 AT24系列串行E2PROM6.2.3 AT24系列串行E2PROM3.E2PROM3.E2PROM与单片机的接口与单片机的接口图图6-6
26、EEPROM6-6 EEPROM与与MCS-51MCS-51的连接的连接 6.2.3 AT24系列串行E2PROM 图中的图中的AT24C08AT24C08地址线只有地址线只有A2A2有效,有效,AT24C04AT24C04地址线只有地址线只有A2,A1A2,A1有有效,效,AT24C01A 3AT24C01A 3根地址线都有效。根地址线都有效。WPWP接低电平,芯片都没有使用写保接低电平,芯片都没有使用写保护。护。同样,对同样,对AT24CXX E2PROMAT24CXX E2PROM的读出操作完全遵循的读出操作完全遵循I I2 2C C总线的主收从总线的主收从发和主发从收的规则,在数据的传
27、送过程中,每次送数据位操作都在发和主发从收的规则,在数据的传送过程中,每次送数据位操作都在SCLSCL为高电平时执行,此期间为高电平时执行,此期间SDASDA线上的数据必须保持稳定,而数据的线上的数据必须保持稳定,而数据的更迭操作必须在更迭操作必须在SCLSCL为低电平时执行。为低电平时执行。SCLSCL在高电平期间在高电平期间SDASDA线上的任线上的任何变化均被理解为控制信号,何变化均被理解为控制信号,SDASDA由高变低意味着读由高变低意味着读/写操作的开始,写操作的开始,由低变高则表示读由低变高则表示读/写操作的结束。写操作的结束。AT24CXXAT24CXX的数据读的数据读/写格式可
28、用图写格式可用图6-76-7来表示。来表示。图图6-7 AT24CXX6-7 AT24CXX的数据读的数据读/写格式写格式6.2.3 AT24系列串行E2PROM6.2.3 AT24系列串行E2PROM 启动信号发出,启动信号发出,E2PROME2PROM收到的第一字节为指令代码,其中高四位收到的第一字节为指令代码,其中高四位D7-D4D7-D4为器件标志,为器件标志,D3-D1D3-D1用于器件寻址,用于器件寻址,D0D0指示数据传输方向,即指示数据传输方向,即D0=1D0=1为读方式,为读方式,D0=0D0=0为写方式。并由此决定后面的数据是单片机发出还是由为写方式。并由此决定后面的数据是
29、单片机发出还是由E2PROME2PROM发出,如是写方式,则需再发送片内地址字节。在传输过程中,发出,如是写方式,则需再发送片内地址字节。在传输过程中,数据均以从高至低顺序发送,在每字节结尾,数据接收方应向发送方回数据均以从高至低顺序发送,在每字节结尾,数据接收方应向发送方回送一个应答信号以示读送一个应答信号以示读/写的继续,一般应答为低电平,如此时单片机写的继续,一般应答为低电平,如此时单片机送高电平,则紧接着发生停止信号,则读送高电平,则紧接着发生停止信号,则读/写过程结束。时序如图写过程结束。时序如图6-86-8:图图6-8 I6-8 I2 2C C总线上数据的传送总线上数据的传送 6.
30、2.3 AT24系列串行E2PROM6.3.1 SPI6.3.1 SPI的基本原理的基本原理6.3.2 SPI6.3.2 SPI数据传输格式数据传输格式6.3 SPI串行外设接口6.3 SPI串行外设接口 SPI(Serial Peripheral Interface-SPI(Serial Peripheral Interface-串行外设接口串行外设接口)总线系统总线系统是一种同步串行外设接口,它可以使单片机与各种外围设备以串行方是一种同步串行外设接口,它可以使单片机与各种外围设备以串行方式进行通信以交换信息。外围设备包括式进行通信以交换信息。外围设备包括FLASHRAMFLASHRAM、网
31、络控制器、网络控制器、LCDLCD显示驱动器、显示驱动器、A/DA/D转换器和转换器和MCUMCU等。等。SPISPI系统可直接与各个厂家生产的多种标准外围器件直接接口,系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用该接口一般使用4 4条线:串行时钟线条线:串行时钟线SCKSCK、主机输入、主机输入/从机输出数据线从机输出数据线SDISDI、主机输出、主机输出/从机输入数据线从机输入数据线SDOSDO和低电平有效的从机选择线和低电平有效的从机选择线CS(CS(有有的的SPISPI接口芯片带有中断信号线接口芯片带有中断信号线INTINT或或/INT/INT,有的,有的SPIS
32、PI接口芯片没有主接口芯片没有主机输出机输出/从机输入数据线从机输入数据线SDO)SDO)。6.3.1 SPI的基本原理 利用利用SPISPI可在软件的控制下构成各种系统。如可在软件的控制下构成各种系统。如1 1个主控制器和几个个主控制器和几个从控制器、几个从控制器相互连接构成多主机系统(分布式系统)、从控制器、几个从控制器相互连接构成多主机系统(分布式系统)、1 1个主控制器和个主控制器和1 1个或几个从个或几个从I/OI/O设备所构成的各种系统等。在大多数设备所构成的各种系统等。在大多数应用场合,可使用应用场合,可使用1 1个主控制器作为主控机来控制数据,并向个主控制器作为主控机来控制数据
33、,并向1 1个或几个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传输格式是高位(送数据。其数据的传输格式是高位(MSBMSB)在前,低位()在前,低位(LSBLSB)在后。)在后。SPISPI接口系统的典型结构如图接口系统的典型结构如图6-96-9所示。图中为典型的单主系统,该系所示。图中为典型的单主系统,该系统只有一台主控制器,其它皆为从控制器。统只有一台主控制器,其它皆为从控制器。6.3.1 SPI的基本原理图图6-9 SPI6-9 SPI接口系统接口系统6.3.2 SPI数据传输格式 当一个主
34、控机通过当一个主控机通过SPISPI与几种不同的串行与几种不同的串行I/OI/O芯片相连时,必须使用每芯片相连时,必须使用每片的允许控制端,这可通过主控制器的从机选择线来实现。但应特别注意片的允许控制端,这可通过主控制器的从机选择线来实现。但应特别注意这些串行这些串行I/OI/O芯片的输入输出特性:首先是芯片的输入输出特性:首先是I/OI/O芯片的串行数据输出是否有芯片的串行数据输出是否有三态控制端。平时未选中芯片时,输出端应处于高阻态。若没有三态控制三态控制端。平时未选中芯片时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则端,则应外加三态门。否则MCUMCU的的SDISDI端只
35、能连接端只能连接1 1个输入芯片。其次是个输入芯片。其次是I/OI/O芯片的串行数据输入是否有允许控制端。因此只有在此芯片允许时,芯片的串行数据输入是否有允许控制端。因此只有在此芯片允许时,SCKSCK脉冲才把串行数据移入该芯片;在禁止时,脉冲才把串行数据移入该芯片;在禁止时,SCKSCK对芯片无影响。若没有允对芯片无影响。若没有允许控制端,则应在外围用门电路对许控制端,则应在外围用门电路对SCKSCK进行控制,然后再加到芯片的时钟进行控制,然后再加到芯片的时钟输入端;当然,也可以只在输入端;当然,也可以只在SPISPI上连接上连接1 1个芯片,而不再连接其它个芯片,而不再连接其它I/OI/O
36、芯片。芯片。通过通过SPISPI接口进行数据通讯的数据传送格式如图接口进行数据通讯的数据传送格式如图6 61010所示,数据读写所示,数据读写应在应在SCKSCK上升沿(或下降沿)。上升沿(或下降沿)。6.3.2 SPI数据传输格式图图6-10 SPI6-10 SPI数据传送格式数据传送格式 6.3.2 SPI数据传输格式 SPI SPI的读写时序如图的读写时序如图6-116-11所示。在基于所示。在基于SPISPI接口构成的通信网络中,接口构成的通信网络中,通信可由主节点发起,也可由从节点发起。当主节点发起通信时,它可通信可由主节点发起,也可由从节点发起。当主节点发起通信时,它可主动对从节点
37、进行数据的读写操作。工作过程叙述如下主动对从节点进行数据的读写操作。工作过程叙述如下:首先选中要与之首先选中要与之通信的从节点通信的从节点(通常片选端通常片选端CSCS为低有效为低有效),而后送出时钟信号,读取数据,而后送出时钟信号,读取数据信息的操作将在时钟的上升沿信息的操作将在时钟的上升沿(或下降沿或下降沿)进行。每送出八个时钟脉冲,进行。每送出八个时钟脉冲,从节点产生一个中断信号,该中断信号通知主节点一个字节己完整接收,从节点产生一个中断信号,该中断信号通知主节点一个字节己完整接收,可以发送下一个字节的数据。可以发送下一个字节的数据。而当从节点主动请求与主节点进行通信时,从节点会主动发出
38、一个而当从节点主动请求与主节点进行通信时,从节点会主动发出一个中断请求信号,要求主节点服务于自己的通信要求,这时主节点可以通中断请求信号,要求主节点服务于自己的通信要求,这时主节点可以通过查询的方式确定申请源,并给出相应的服务信息,其时序一般如图过查询的方式确定申请源,并给出相应的服务信息,其时序一般如图6-6-1212示。示。6.3.2 SPI数据传输格式图图6-11 6-11 读写指令逻辑时序读写指令逻辑时序 图图6-12 6-12 从节点主动发起的通信时序图从节点主动发起的通信时序图6.3.2 SPI数据传输格式6.3.2 SPI数据传输格式 通过以上的说明可以看出,基于通过以上的说明可
39、以看出,基于SPISPI接口构成的主从分布式通信接口构成的主从分布式通信网络的主从节点是相对的。对于网络的主从节点是相对的。对于SPISPI接口网络而言,主节点需要完成接口网络而言,主节点需要完成的是给出片选信号及时钟信号,它可以主动地与各从节点进行信息的的是给出片选信号及时钟信号,它可以主动地与各从节点进行信息的交流交流;而在从节点主动要求服务的情况下,它又是一种半主动的形式。而在从节点主动要求服务的情况下,它又是一种半主动的形式。6.4.1 6.4.1 单总线的基本原理单总线的基本原理6.4.2 6.4.2 单总线的数据传输格式单总线的数据传输格式 6.4 单总线(1-WIRE BUS)6
40、.4 单总线(1-WIRE BUS)单总线(单总线(1-Wire bus1-Wire bus)是美国)是美国Dallas SemiconductorDallas Semiconductor公司的一公司的一项专利技术,它采用单根信号线完成数据的双向传输,并通过该信号项专利技术,它采用单根信号线完成数据的双向传输,并通过该信号线为单总线器件提供电源,具有节省线为单总线器件提供电源,具有节省I/OI/O引脚资源、结构简单、成本引脚资源、结构简单、成本低廉、便于总线扩展和维护等优点。低廉、便于总线扩展和维护等优点。由单总线芯片组成的网络称为微型局域网,是一种主从式网络。由单总线芯片组成的网络称为微型局
41、域网,是一种主从式网络。该系统中只有一个主设备,但可以有多个从设备。系统设备间的通信该系统中只有一个主设备,但可以有多个从设备。系统设备间的通信由主设备集中管理。微型局域网只需要一条普通的双绞线就能组网,由主设备集中管理。微型局域网只需要一条普通的双绞线就能组网,而且设备无需自带电源,具有组网方便、成本低的优点,非常适于现而且设备无需自带电源,具有组网方便、成本低的优点,非常适于现场应用。场应用。6.4.1 单总线的基本原理 单总线通信硬件联接如图单总线通信硬件联接如图6-136-13连接,它们构成一个简捷的单总连接,它们构成一个简捷的单总线网络,它包括三个主要部分线网络,它包括三个主要部分:
42、带有控制软件的主控器带有控制软件的主控器(Master)(Master),连,连接上拉电阻和稳压二极管的连接线,以及各种功能的单总线器件接上拉电阻和稳压二极管的连接线,以及各种功能的单总线器件(Slave)(Slave)。漏极开路的端口结构和上拉电阻。漏极开路的端口结构和上拉电阻R R使总线空闲时处于高电平使总线空闲时处于高电平状态状态(3V(3V至至5.5V)5.5V),从器件可直接从数据线上获得工作电能。稳压二极,从器件可直接从数据线上获得工作电能。稳压二极管将总线最高电平限定在管将总线最高电平限定在5.6V5.6V,起保护端口的作用。,起保护端口的作用。图图6-13 6-13 单总线连接
43、方式及单总线器件结构框图单总线连接方式及单总线器件结构框图6.4.1 单总线的基本原理6.4.1 单总线的基本原理 单总线器件与总线匹配的端口必须具有开漏输出或单总线器件与总线匹配的端口必须具有开漏输出或3 3态输出的功能,主态输出的功能,主控器的总线侧必须有上拉电阻,系统才能正常工作。单总线器件通常采用控器的总线侧必须有上拉电阻,系统才能正常工作。单总线器件通常采用3 3引脚封装,引脚封装,3 3个引脚分别为公共地、数据线和电源端,电源端可以为单总线个引脚分别为公共地、数据线和电源端,电源端可以为单总线器件提供外部电源。器件提供外部电源。单总线接口一个显著的特点是不需要使用独立的电源,所有的
44、单总线单总线接口一个显著的特点是不需要使用独立的电源,所有的单总线芯片都可以通过单线寄生电源供电,其原理如图芯片都可以通过单线寄生电源供电,其原理如图6-146-14所示。当总线处于高所示。当总线处于高电平时不仅通过二极管给芯片供电,同时又给内部的大电容充电;当总线电平时不仅通过二极管给芯片供电,同时又给内部的大电容充电;当总线变为低电平时,二极管截止,电容可以给芯片供电一段时间。可见为了确变为低电平时,二极管截止,电容可以给芯片供电一段时间。可见为了确保器件正常工作,总线上应该间隔地输出高电平。但是当同一单总线上有保器件正常工作,总线上应该间隔地输出高电平。但是当同一单总线上有多个器件同时操
45、作时会出现供电不足的问题。多个器件同时操作时会出现供电不足的问题。单总线器件的另外一个特点是每一个单总线器件都被厂家用激光刻录单总线器件的另外一个特点是每一个单总线器件都被厂家用激光刻录了一个全世界唯一的序列号,任何单总线器件的序列号都不会重复。这样了一个全世界唯一的序列号,任何单总线器件的序列号都不会重复。这样主控器就可以通过查询器件的序列号选出需要访问的器件。主控器就可以通过查询器件的序列号选出需要访问的器件。6.4.1 单总线的基本原理图图6-14 6-14 单总线芯片的供电原理单总线芯片的供电原理6.4.2 单总线的数据传输格式 1.1.单总线通信信号类型单总线通信信号类型 在数据传输
46、过程中,每个单总线芯片有唯一的地址,主控器一旦在数据传输过程中,每个单总线芯片有唯一的地址,主控器一旦选中某个芯片,就会保持通信连接直到复位,其他器件则全部脱离总线,选中某个芯片,就会保持通信连接直到复位,其他器件则全部脱离总线,在下次复位之前不参与任何通信。在下次复位之前不参与任何通信。单总线通信定义了如下几种信号:复位脉冲、应答脉冲、写单总线通信定义了如下几种信号:复位脉冲、应答脉冲、写0 0、写、写1 1、读、读0 0以及读以及读1 1,除了应答脉冲以外,所有的信号都由主机发出同步信,除了应答脉冲以外,所有的信号都由主机发出同步信号,并且发送所有的命令和数据都是字节的低位在前。单总线通信
47、协议号,并且发送所有的命令和数据都是字节的低位在前。单总线通信协议中不同类型的信号都采用一种类似于脉宽调制的波形表示,逻辑中不同类型的信号都采用一种类似于脉宽调制的波形表示,逻辑“0 0”用用较长的低电平持续周期,逻辑较长的低电平持续周期,逻辑“1 1”用较长的高电平表示。用较长的高电平表示。6.4.2 单总线的数据传输格式 2.2.单总线通信时序单总线通信时序 在单总线通信中引入了时隙的概念,当主控器向从设备输出数据时产在单总线通信中引入了时隙的概念,当主控器向从设备输出数据时产生写时隙,当主控器向从设备读数据时产生读时隙,每个时隙内总线只能生写时隙,当主控器向从设备读数据时产生读时隙,每个
48、时隙内总线只能传输一位数据。读写时隙都以主控器驱动数据线为低电平开始,数据线的传输一位数据。读写时隙都以主控器驱动数据线为低电平开始,数据线的下降沿使从设备触发内部的延迟电路,使之与主机同步。下降沿使从设备触发内部的延迟电路,使之与主机同步。写时隙包括写写时隙包括写0 0和写和写1 1,主控器分别采用写,主控器分别采用写0 0时隙和写时隙和写1 1时隙向从设备写时隙向从设备写入入0 0和和1 1。写时隙至少需要。写时隙至少需要60ms60ms,并且在两次独立的写时隙之间至少需要,并且在两次独立的写时隙之间至少需要1ms1ms的恢复时间。产生写的恢复时间。产生写1 1时隙的方式:主控器在拉低总线
49、后,接着必须在时隙的方式:主控器在拉低总线后,接着必须在15ms15ms之内释放总线,由上拉电阻将总线拉至高电平;产生写之内释放总线,由上拉电阻将总线拉至高电平;产生写0 0时隙的方式时隙的方式为:在主机拉低总线后,只需在整个时隙期间保持低电平(至少为:在主机拉低总线后,只需在整个时隙期间保持低电平(至少60ms60ms)。)。在写时隙开始后的在写时隙开始后的15ms15ms60ms60ms期间,从设备采样总线电平状态,如果采样期间,从设备采样总线电平状态,如果采样值为高电平则逻辑值为高电平则逻辑1 1被写入该器件,否则写入逻辑被写入该器件,否则写入逻辑0 0。6.4.2 单总线的数据传输格式
50、图图6-15 6-15 单总线中写时隙时序图单总线中写时隙时序图6.4.2 单总线的数据传输格式 图图6-156-15给出了写时隙的数据信号波形。粗实线代表主控器拉低总给出了写时隙的数据信号波形。粗实线代表主控器拉低总线,虚线代表上拉电阻将总线拉高。线,虚线代表上拉电阻将总线拉高。单总线从设备在主控器发出读时隙时,才向主机传输数据。所以单总线从设备在主控器发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙。读时隙至少需要在主机发出读数据命令后,必须马上产生读时隙。读时隙至少需要60ms60ms,在两次独立的读时隙之间至少需要,在两次独立的读时隙之间至少需要1ms1m