《【教学课件】第7章单片机系统的串行扩展.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章单片机系统的串行扩展.ppt(37页珍藏版)》请在三一办公上搜索。
1、第7章 单片机系统的串行扩展,西安思源学院,电子信息工程学院,2,7.1 MCS-51系统的串行扩展原理 目前,对控制系统微型化的要求越来越高,便携式的智 化仪器需求量越来越大。为了使仪器微型化,首先要设法减 少仪器所用芯片的引脚数。这样一来过去常用的并行总线 接口方案由于需要较多的引脚数而不得不舍弃,转而采用 只需少量引脚数的串行总线接口方案。SPI(Serial Peripheral Interface)和I2C(Inter-Integrated Circuit)就是两种常用的串行总线接口。SPI三线总线只需3根引脚线就可与外部设备相连。而I2C 两线总线则只需2根引脚线就可与外部设备相连
2、。,3,7.1.1 SPI三线总线 一SPI总线概述SPI实际上是一种串行总线接口标准。SPI方式可允许同时同步传送和接收8位数据,它工作时传输速率最高可达几十兆位/秒。SPI用以下3个引脚来完成通信:(1)串行数据输出SDO(Serial Data Out)。(2)串行数据输入SDI(Serial Data In)。(3)串行时钟SCK(Serial Clock)。,图 7-1 主机、从机之间SPI总线连接示意图,4,二.SPI总线的结构与工作原理 SPI总线有主机、从机的概念。主机的发送与从机的接收相连,主机的接收与从机的发送相连,主机产生的时钟信号输出到从机的时钟引脚上,除了以上三根通讯
3、线外,一般从机还需一根片选控制线。由于SPI的数据输出线(SDO)和数据输入线(SDI)是分开的,因此允许主机、从机之间发送和接收同时进行,至于数据是否有效取决与应用软件。当主机发出片选控制信号以后,数据的传输节拍由主机的SCK信号控制。对具有SPI功能的单片机,时序图中的SDO和SCK的波形由硬件自动产生,数据的接收也是由硬件自动完成的。,5,图7-2 SPI通讯的时序图,主机的SS信号有效后,选中从设备,在SCK的上升沿主机发送数据,SCK的下降沿主机接收数据。而对没有SPI功能的单片机,则时序图中的SDO和SCK的波形要由软件产生,数据的接收也要由软件来完成。,6,7.2 单片机的外部串
4、行扩展 串行外围器件由于具有体积小、价格低、占用I/O口线少等优点。正在越来越多的领域被广泛应用。下面分别介绍串行E2PROM、串行输入输出接口、串行A/D转换器。7.2.1 串行扩展E2 PROM 串行E2PROM具有体积小(通常为8脚封装)、价格低、占用I/O口线少、寿命长(能重复使用100,000次及100年数据不丢失)、抗干扰能力强、不易被改写等优点。随着当今智能化仪表趋于小型化,再加真正需要预设的数据位、控制位、保密位等数据并不占据太多的存储空间,串行E2PROM正被广泛应用于多功能的智能化仪表中。表7-2列出了美国ATMEL公司I2C总线的AT24C系列串行E2PROM,表7-3列
5、出了美国ATMEL公司SPI总线的AT25系列串行E2PROM。为读者选择不同容量、不同接口总线及了解有关串行E2PROM的详细性能提供参考。,7,8,9,I2C的结构与工作原理 I2C总线上所有器件的SDA 线并接在一起,所有器件的SCL线并接在一起,且SDA 线和SCL线必须通过上拉电阻连接到正电源。图7-3为I2C总线器件的连接图。,图7-3 I2C总线器件电气连接图,10,I2C总线的数据传输协议要比SPI总线复杂一些,因为I2C总线器件没有片选控制线,所以I2C总线数据传输的开始必须,由主器件产生通讯的开始条件(SCL高电平时,SDA产生负跳变);通讯结束时,由主器件产生通讯的结束条
6、件(SCL高电平时,SDA产生正跳变)。SDA线上的数据在SCL高电平期间必须保持稳定,否则会被误认为开始条件或结束条件,只有在SCL低电平期间才能改变SDA线上的数据。图7-4为I2C总线的数据传输波形图。,图7-4 I2C总线的数据传输波形图。,11,一.AT24C系列E2PROM的功能及特点 AT24C系列为美国ATMEL公司推出的串行CMOS型E2PROM,具有功耗小,宽电压范围等优点。工作电流约3mA,静态电流随电源电压不同为30uA110 uA,存储容量有1288、2568、5128、1K8、2K8、4K8、8K8、16K8、32K8和64K8等多种规格,图7-5为AT24C系列串
7、行E2PROM的引脚图。图中A0、A1、A2为器件地址引脚,VSS为地,VCC为正电源,写保护,SCL为串行时钟线,SDA为串行数据线。,图7-5 AT24C系列串行E2PROM的引脚图,12,二.AT24C系列E2PROM接口及地址选择 AT24C系列E2PROM采用I2C总线,I2C总线上可挂接多个接口器件,在I2C总线上的每个器件应有唯一的器件地址,按I2C总线规则,器件地址为7位二进制数,它与1位数据方向位构成一个器件寻址字节。器件寻址字节的最低位(D0)为方向位(读/写);最高4位(D7D4)为器件型号地址(不同的I2C总线接口器件的型号地址由厂家给定,AT24C系列E2PROM的型
8、号地址皆为1010);其余3位(D3D1)与器件引脚地址A2A1A0相对应。器件地址格式:1010 A2A1A0,13,对于E2PROM的片内地址,AT24C01和AT24C02由于芯片容量可用一个字节表示,故读写某个单元前,先向E2PROM写入一个字节的器件地址,再写入一个字节的片内地址。而AT24C04、AT24C08 和AT24C16分别需要9位、10位和11位片内地址,所以AT24C04把器件地址中的D1作为片内地址的最高位,AT24C08把器件地址中的D2D1作为片内地址的最高两位,AT24C16把器件地址中的D3D2D1作为片内地址的最高三位。凡在系统中把器件的引脚地址用作片内地址
9、后,该引脚在电路中不得使用,作悬空处理。AT24C32、AT24C64、AT24C128、AT24C256和 AT24C512的片内地址采用两个字节。,14,三.AT24C系列E2PROM的读写操作原理 下列读写操作中SDA线上数据传送状态标记注释如下:S为开始信号(SCL高电平时,SDA产生负跳变),由主机发送。P为结束信号(SCL高电平时,SDA产生正跳变),由 主机发送。addr、addr_H 和addr_L 为地址字节,指定片内某一 单元地址,由主机发送。data 为数据字节,由数据发送方发送。0为肯定应答信号,由数据接收方发送。1为否定应答信号,由数据接收方发送。,15,主机控制数据
10、线SDA时,在SCL高电平期间必须保持SDA线上的数据稳定,否则会被误认为对从机开始条件或结束条件。主机只能在SCL低电平期间改变SDA线上的数据。主机写操作期间,用SCL的上升沿写入数据;主机读操作期间,用SCL的下降沿读出数据。AT24C系列AT24C01AT24C16芯片的存储容量最多为中读n个字节的数据格式 从AT24C系列AT24C01AT24C16中读n个字节的数据格式:,16,从AT24C系列AT24C32AT24C512中读n个字节的数据格式:,向AT24C系列AT24C01AT24C16中写n个字节的数据格式(n页长,且n个字节不能跨页):,向AT24C系列AT24C32AT
11、24C512中写n个字节的数据格式(n页长,且n个字节不能跨页):,17,四、AT24C系列E2PROM与MCS-51单片机 的数据交换 图7-6 为一片AT24C系列E2PROM与MCS-51单片机的连接电 路图。若有多片E2PROM与MCS-51单片机相连,则各 E2PROM的器件地址引脚接线要不同。,图7-6 AT24C系列E2PROM与MCS-51单片机的连接电路图,18,图7-7 74LS165内部结构图,7.2.2 串行扩展I/O接口 MCS-51单片机的并行I/O接口与外部RAM是统一编址的,即扩展并行I/O接口要占用单片机的外部RAM的空间。若用串行的方法扩展I/O接口,则可以
12、节省系统的硬件开销,是一种经济、实用的方法。下面分别介绍串行输入接口和串行输出接口。一.串行输入接口74LS165 74LS165是一个8输入,串行输出的接口电路。其内部结构如图7-7所示。,19,为数据锁存端,当 为低电平时锁存数据;CP1和CP2为移位脉冲输入端;Q7为数据输出端;DS为数据输出端;CP的上升沿移出数据。74LS165作为串行输入接口可以单片使用,也可级联使用。级联使用的电路图7-8所示。,图7-8 74LS165级联使用电路连接图,二串行输出接口74LS164 74LS164是一个串行输入,8位并行输出的接口电路。其内部结构如图7-9所示。为清零端,当 为低电平时清零;A
13、和B为数据输出端;CP端为移位脉冲输入端,CP的上升沿移入数据。74LS164作为串行输出接口可以单片使用,也可级联使用。级联使用的电路连接如图7-10,20,图7-9 74LS164内部结构图,图7-10 74LS164级联使用电路连接图,21,7.2.3 串行扩展A/D转换器 随着对智能化仪表微型化要求的越来越高,串行A/D转换器件由于具有体积小、价格低、占用I/O口线少等优点而被广泛应用。美国的模拟器件公司(ADI)、MAXIM公司和德州仪器(TI)公司等许多公司纷纷推出能满足不同用户要求的串行A/D转换器件。表7.4列出了美国TI公司系列串行A/D转换器件。一、11通道12位串行模数转
14、换器TLC2543引脚及内部结构介绍。,22,TLC2543是德州仪器公司生产的12位开关电容型逐次逼近模数转换器,最大转换时间10s,11个模拟输入通道,3路内置自测试方式,采样率为66kbps,线性误差1LSBmax,有转换结束输出EOC,具有单、双极性输出,可编程的MSB或LSB前导,可编程输出数据长度。它具有三个控制输入端,采用简单的3线SPI串行接口可方便地与微机进行连接,是12位数据采集系统的最佳选择器件之一。图7-11和图7-12分别是TLC2543的引脚排列图和内部结构图。TLC2543有两种封装形式。表7.5是TLC2543的引脚功能说明,23,图7-11 TLC2543的引
15、脚排列图,图7-12 TLC2543的内部结构图,24,25,表7-5 TLC2543的引脚功能说明,26,二TLC2543的工作方式和输入通道的选择 TLC2543是一个多通道和多工作方式的模数转换器件,其工作方式和输入通道的选择是通过向TLC2543的控制寄存器写入一个八位的控制字来实现的。这个八位的控制字由四个部份组成:D7 D6 D5 D4选择输入通道,D3 D2选择输出数据长度,D1选择输出数据顺序,D0选择转换结果的极性。八位控制字的各位的含义如表7-6表7-9所示。主机以MSB为前导方式将控制字写入TLC2543的控制寄存器,每个数据位都是在CLOCK序列的上升沿被写入控制寄存器
16、。,27,表7-6 输入通道选择,表7-7 输出数据长度选择,28,表7-8 输出数据顺序选择,表7-9 转换结果极性选择,29,三TLC2543的读写时序 当片选信号为高电平时,CLOCK 和 DATA_ IN 被禁止、DATA_ OUT为高阻状态,以便为SPI总线上的其它器件让出总线。在片选信号的下降沿,A/D转换结果的第一位数据出现在DATA_ OUT引脚上,A/D转换结果的其它数据位在时钟信号CLOCK 的下降沿被串行输出到DATA_ OUT引脚。在片选信号下降沿以后,时钟信号CLOCK 的前八个上升沿将八位控制字从DATA_ IN引脚串行输入到TLC2543的控制寄存器。在片选信号下
17、降沿以后,经历8个(或12个/或16个)时钟信号完成对A/D转换器的一次读写。本次写入的控制字在下一次转换中起作用,本次读出的结果由上次输入的控制字决定。A/D转换可由片选的下降沿触发,也可由CLOCK信号触发。,30,图7-13是由片选的下降沿触发A/D转换,输出数据长度为8位、以MSB导前的读写时序图。图7-14是由CLOCK信号触发A/D转换,输出数据长度为8位、以MSB导前的读写时序图。图7-15是由片选的下降沿触发A/D转换,输出数据长度为12位、以MSB导前的读写时序图。图7-16是由CLOCK信号触发A/D转换,输出数据长度为12位、以MSB导前的读写时序图。图中的(A11 A1
18、0 A9 A8)A7 A0为(12)8位的A/D转换结果,B7 B6 B0为控制字。,31,图7-13 片选的下降沿触发A/D转换、输出数据长度为8位、以MSB导前的读写时序图。,32,图7-14 CLOCK信号触发A/D转换、输出数据长度为8位、以MSB导前的读写时序图。,33,图7-15 片选的下降沿触发A/D转换、输出数据长度为12位、以MSB导前的读写时序图。,34,图7-16 CLOCK信号触发A/D转换、输出数据长度为12位、以MSB导前的读写时序图。,35,四MCS-51 单片机对TLC2543的读写子程序 以下的子程序RAD用于读上次的12位A/D转换结果和写下一次转换的控制字
19、。转换结果存放于寄存器R4R5中。下一次转换的控制字选择AIN1通道、输出数据长度为12位、MSB导前、转换结果为单极性。MCS-51单片机与TLC2543的硬件连接为:P1.0,P1.1CLOCK,P1.2 DATA INPUT,P1.3 DATA OUT。A/D转换的程序清单如下:AD_CS BIT P1.0 AD_SCK BIT P1.1 AD_SDI BIT P1.2 AD_SDO BIT P1.3 RAD:CLRAD_CS CLRA MOV R5,A MOV R2,#12 MOV A,#00010000B MOV R3,A,36,AD1:MOV C,AD_SDO MOV A,R5 RLC A,MOV R5,AMOV A,R4RLC AMOV R4,AMOV A,R3 RLC AMOV R3,AMOV AD_SDI,C SETB AD_SCK,NOPNOPCLR AD_SCKDJNZ R2,AD1SETB AD_CSRET,第七章 结 束,谢谢!,