第8章单片机小系统及片外扩展BH课件.ppt

上传人:石*** 文档编号:49414619 上传时间:2022-10-08 格式:PPT 页数:64 大小:2.45MB
返回 下载 相关 举报
第8章单片机小系统及片外扩展BH课件.ppt_第1页
第1页 / 共64页
第8章单片机小系统及片外扩展BH课件.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《第8章单片机小系统及片外扩展BH课件.ppt》由会员分享,可在线阅读,更多相关《第8章单片机小系统及片外扩展BH课件.ppt(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、计算机科学学院计算机科学学院 电子信息科学教研室电子信息科学教研室第8章单片机小系统及片外扩展BH第1页,此课件共64页哦8.1 串行扩展总线接口技术89C51除芯片自身具有UART可用于串行扩展I/O口线以外,还可利用89C51的34根I/O口线进行SPI或I2C的外设芯片扩展,以及单总线的扩展。第2页,此课件共64页哦8.1.1 SPI串行外设接口总线SPI(Serial Peripheral Interface串行外设接口)总线是Motorola公司推出的一种同步串行外设接口,它用于MCU与各种外围设备以串行方式进行通信(8位数据同时同步地被发送和接收),系统可配置为主或从操作模式。外围

2、设备包括简单的TTL移位寄存器(用作并行输入或输出口)至复杂的LCD显示驱动器或A/D转换器等。第3页,此课件共64页哦SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,它只需4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS(SS)。在SPI接口中,数据的传输只需要1个时钟信号和2条数据线。第4页,此课件共64页哦由于SPI系统总线只需34位数据线和控制线即可扩展具有SPI的各种I/O器件,而并行总线扩展方法需8根数据线、816位地址线、23位控制线,因而SPI总线的使用可以简化电路设计,省掉了很多常规电路中的

3、接口器件,提高了设计的可靠性。第5页,此课件共64页哦1.SPI总线系统的组成图8-1是SPI总线系统典型结构示意图。图8-1 SPI外围扩展示意图第6页,此课件共64页哦单片机与外围扩展器件在时钟线SCK、数据线MOSI和MISO上都是同名端相连。带SPI接口的外围器件都有片选端CS。在扩展多个SPI外围器件(如图8-1所示)时,单片机应分别通过I/O口线来分时选通外围器件。当SPI接口上有多个SPI接口的单片机时,应区别其主从地位,在某一时刻只能由一个单片机为主器件。图8-1中MCU(主)为主器件,MCU(从)为从器件。第7页,此课件共64页哦SPI有较高的数据传送速度,主机方式最高速率可

4、达1.05 Mb/s,目前不少外围器件都带有SPI接口。在大多数应用场合中,使用1个MCU作为主机,控制数据向1个或多个从外围器件的传送。从器件只能在主机发命令时,才能接收或向主机传送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。第8页,此课件共64页哦当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。发送一字节后,从另一个外围器件接收的字节数据进入移位寄存器中。主SPI的时钟信号(SCK)使传输同步。第9页,此课件共64页哦SPI总线有以下主要特性:全双工、3线同步传输;主机或

5、从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。其典型时序图如图8-2所示。图8-2 SPI串行总线典型时序图第10页,此课件共64页哦2.89C51单片机串行扩展SPI外设接口的方法1)用一般I/O口线模拟SPI操作对于没有SPI接口的89C51来说,可使用软件来模拟SPI的操作,包括串行时钟、数据输入和输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应取图8-3中的串行时钟输出P1.1的初始状态为1;在允许接口芯片后,置P1.1为0。第11页,此课件共64页哦因此,MCU输出1位

6、SCK时钟,同时,使接口芯片串行左移,从而输出1位数据至89C51的P1.3(模拟MCU的MISO线);再置P1.1为1,使89C51从P1.0输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入/输出完成。以后再置P1.1为0,模拟下一位的输入/输出依次循环8次,可完成1次通过SPI传输1字节的操作。对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,在接口芯片允许时,先置P1.1为1,此时,外围接口芯片输出1位数据(MCU接收1位数据);再置时钟为0,外围接口芯片接收1位数据(MCU发送1位数据),可完成1位数据的传送。第12页,此课件共64页哦

7、图8-3为89C51(MCU)与MCM2814(E2PROM)的硬件连接图。图8-3 SPI总线接口原理图第13页,此课件共64页哦图8-3中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。下面介绍用89C51汇编语言模拟SPI串行输入、串行输出和串行输入/输出3个子程序。这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的各种串行外围接口芯片,如8位或10位A/D芯片,74LS系列输出芯片等。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只须改变P1.1的输出顺序,即输出0,再输

8、入1;再输出0则这些子程序也同样适用。第14页,此课件共64页哦8.1.2 I2C总线I2C总线是PHILIPS公司推出的串行总线。I2C总线的应用非常广泛,在很多器件上都配备有I2C总线接口,使用这些器件时一般都需要通过I2C总线进行控制。这里简要介绍I2C总线的工作原理,介绍如何用51单片机进行控制以及相应的汇编语言控制程序的编写。I2C第15页,此课件共64页哦1 I2C总线的概念I2C总线是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输,是各种总线中使用信号线数量最少的。I2C总线只有两根信号线:数据线SDA和时钟线SCL。第16页,此课件共

9、64页哦所有进入I2C总线系统中的设备都带有I2C总线接口,符合I2C总线电气规范的特性,只需将I2C总线上所有节点的串行数据线SDA和时钟线SCL分别与总线的SDA和SCL相连即可。各节点供电可以不同,但需共地,另外SDA和SCL需分别接上拉电阻。第17页,此课件共64页哦当执行数据传送时,启动数据发送并产生时钟信号的器件称为主器件;被寻址的任何器件都可看作从器件;发送数据到总线上的器件称为发送器;从总线上接收数据的器件称为接收器。I2C总线是多主机总线,可以有两个或更多的能够控制总线的器件与总线连接;同时I2C总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只允许一个有效,从而保

10、证数据不被破坏。第18页,此课件共64页哦I2C总线的寻址采用纯软件的寻址方法,无需片选线的连接,这样就简少了总线数量。主机在发送完启动信号后,立即发送寻址字节来寻址被控器件,并规定数据传送方向。寻址字节由7位从机地址(D7D1)和1位方向位(D0,0/1,读/写)组成。当主机发送寻址字节时,总线上所有器件都将该寻址字节中的高7位地址与自己器件的地址比较,若两者相同,则该器件认为被主机寻址,并根据读/写位确定是从发送器还是从接收器。第19页,此课件共64页哦I2C总线具有多重主控能力,这就意味着可以允许多个作为主控器的电路模块(具有I2C总线接口的单片机)去抢占总线。因此挂接在I2C总线上的集

11、成电路模块的发送器/接收器可以根据不同的工作状态分为主控发送器、主控接收器、被控发送器和被控接收器。显然,具有I2C总线接口的单片机可以工作在上述4种工作状态中的任一状态,而一些带有I2C总线接口的存储器(RAM或E2PROM)模块只能充当被控发送器或被控接收器。第20页,此课件共64页哦图8-9 示出了带有两个单片机和其他一些外围电路模块接入I2C总线的一个实例。图8-9 I2C总线典型系统示意图第21页,此课件共64页哦在图8-9中,假设单片机A要向单片机B发送信息,单片机A首先作为主控器在I2C总线上发送起始信号和时钟,寻址作为被控器的单片机B,并确立信息传送方向。接着,单片机A作为主控

12、发送器便可通过SDA线向被控接收器(单片机B)发送信息,并在信息发送完毕后发送终止信号,以结束信息的传送过程。第22页,此课件共64页哦假设单片机A要从单片机B读取信息,单片机A同样作为主控器在I2C总线上发送起始信号和时钟,寻址作为被控器的单片机B,并确立信息传送方向。此时,单片机A作为主控接收器接收单片机B发送的信息,一旦作为主控接收器的单片机A接收完单片机B发来的信息后就发出终止信号,以结束整个信息的读取过程。第23页,此课件共64页哦 上述分析表明:不论作为主控器的单片机A向作为被控器的单片机B是发送信息还是读取信息,被传信息的起始和终止信号以及时钟信号都是由作为主控器的单片机A发送的

13、。第24页,此课件共64页哦2 I2C总线的应用I2C总线为同步串行数据传输总线,用于单片机的外围扩展。其总线传输速率为100 kb/s(改进后的规范为400 kb/s),总线驱动能力为400 pF。图8-10为I2C总线外围扩展示意图。第25页,此课件共64页哦图8-10 I2C总线外围扩展示意图第26页,此课件共64页哦图中只表示出单片机应用系统中常用的I2C总线外围通用器件、外围设备模块、接口以及其他单片机节点。最常使用的通用外围器件有SRAM、E2PROM、ADC/DAC、RTC、I/O口和DTMF等。第27页,此课件共64页哦外围设备模块有LED驱动控制器构成的LED显示器,各种LC

14、D驱动控制器构成的段式、图形点阵、字符点阵液晶显示器等。通过I2C总线通用I/O口器件可构成许多通用接口如键盘、码盘、打印机接口和LCD接口等。第28页,此课件共64页哦I2C总线有利于系统设计的模块化和标准化,省去了电路板上的大量连线,提高了可靠性,降低了成本。在多种串行总线中,I2C总线只用两条线,不需要片选线,支持带电插拔,并有众多的外围接口芯片,可以作为优先选择。第29页,此课件共64页哦I2C总线上支持多主和主从两种工作方式。在多主方式中,通过硬件和软件的仲裁主控制器取得总线控制权。而在多数情况下,系统中只有一个主器件,即单主节点,总线上的其他器件都是具有I2C总线的外围从器件,这时

15、的I2C总线就工作在主从工作方式。第30页,此课件共64页哦在主从方式中,从器件的地址包括器件编号地址和引脚地址,器件编写地址由I2C总线委员会分配,引脚地址决定于引脚外接电平的高低。当器件内部有连续的子地址空间时,对这些空间进行N个字节的连续读/写,子地址会自动加1。在主从方式的I2C总线系统中,只须考虑主方式的I2C总线操作。第31页,此课件共64页哦3.I2C总线基本知识1)I2C总线的接口电路结构I2C总线由一根数据线SDA和一根时钟线SCL构成。I2C总线中一个节点的每个电路器件都可视为有如图8-11虚框所示的一个I2C总线接口电路,用于与I2C总线的SDA和SCL线挂接。数据线SD

16、A和时钟线SCL都是双向传输线,平时均处于高电平备用状态,只有当需要关闭I2C总线时,SCL线才会箝位在低电平。第32页,此课件共64页哦图8-11 I2C总线的器件连接第33页,此课件共64页哦2)I2C总线信号定义在I2C总线上,SDA用于传送有效数据,其上传输的每位有效数据均对应于SCL线上的一个时钟脉冲。也就是说,只有当SCL线上为高电平(SCL=1)时,SDA线上的数据信号才会有效(高电平表示1,低电平表示0);SCL线为低电平(SCL=0)时,SDA线上的数据信号无效。因此,只有当SCL线为低电平(SCL=0)时,SDA线上的电平状态才允许发生变化(见图8-12)。第34页,此课件

17、共64页哦图8-12 I2C总线信号的时序第35页,此课件共64页哦SDA线上传送的数据均以起始信号(START)开始,停止信号(STOP)结束,SCL线在不传送数据时保持Mark(SCL=1)。当串行时钟线SCL为Mark(SCL=1)时,串行数据线SDA上发生一个由高到低的变化过程(下降沿),即为起始信号;发生一个由低到高的变化过程,即称为停止信号。第36页,此课件共64页哦起始信号和停止信号均由作为主控器的单片机发出,并由挂接在I2C总线上的被控器检测。对于不具备I2C总线接口的单片机,为了能准确检测到这些信号,必须保证在总线的一个时钟周期内对SAD线进行至少两次采样。第37页,此课件共

18、64页哦4.I2C总线的数据传送在I2C总线上每传输一位数据都有一个时钟脉冲相对应。注意这里的时钟脉冲不像一般的时钟那样必须是周期性的,它的时钟间隔可以不同。总线备用时(即处于“非忙”状态),SDA和SCL都必须保持高电平状态,关闭I2C总线时才使SCL箝位在低电平。只有当总线处于“非忙”状态时,数据传输才能被初始化。在数据传输期间,只要时钟线为高电平,数据线就必须保持稳定。只有在时钟线为低电平时,才允许数据线上的电平状态变化。在时钟线保持高电平期间,数据线出现下降沿为启动信号、上升沿为停止信号,启动和停止信号都由主机产生,总线上带有I2C总线接口的器件很容易检测到这些信号。第38页,此课件共

19、64页哦I2C总线上传输的数据和地址字节均为8位,且高位在前,低位在后。I2C总线以起始信号为启动信号,接着传输的是地址和数据字节,数据字节是没有限制的,但每个字节后都必须跟随一个应答位,全部数据传输完毕后,以终止信号结尾。I2C总线上数据的传送时序如图8-13所示。第39页,此课件共64页哦图8-13 I2C总线的数据传送字节格式第40页,此课件共64页哦如前所述,SCL线为低电平时,SDA线上数据就被停止传送。SCL线的这一线“与”特性十分有用:当接收器接收到一个数据/地址字节后需要进行其他工作而无法立即接收下一个字节时,接收器便可向SCL线输出低电平而箝住SCL(SCL=0),迫使SDA

20、线处于等待状态,直到接收器准备好接收新的数据/地址字节时,再释放时钟线SCL(SCL)=1),使SDA线上数据传输得以继续进行。例如,当被控接收器在A点(见图8-13)接收完主控器发来的一个数据字节时,若被控器需要处理接收中断而无法令其接收器继续接收,则被控器便可箝住SCL线为低电平,使主控发送器处于等待状态,直到被控器处理完接收中断后,再释放SCL线。第41页,此课件共64页哦利用SDA线进行数据传输时,发送器每发完一个数据字节后,都要求接收方发回一个应答信号。但与应答信号相对应的时钟仍由主控器在SCL线上产生,因此主控发送器必须在被控接收器发送应答信号前,预先释放对SDA线的控制,以便主控

21、器对SDA线上应答信号的检测。第42页,此课件共64页哦应答信号在第9个时钟位上出现,接收器在SDA线上输出低电平为应答信号(A),输出高电平为非应答信号(A)。时钟信号以及应答和非应答信号间的关系如图8-14所示。图8-14 I2C总线的应答位第43页,此课件共64页哦在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个应答信号(A),主控器据此便可进行下一字节的发送。但如果被控器由于某种原因需要进行其他处理而无法继续接收SDA线上数据时,便可向SDA线输出一个非应答信号(A),使SDA线保持高电平,主控器据此便可产生一个停止信号来终止SDA线上的数据传输。第44页,此课件共6

22、4页哦当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个非应答信号(A),令被控器释放SDA线,以便主控器可以发送停止信号来结束数据的传输。I2C总线上的应答信号是比较重要的,在编制程序时应该着重考虑。第45页,此课件共64页哦5 I2C总线数据传输协议1)总线节点的寻址字节主机产生起始条件后,发送的第一个字节为寻址字节。该字节的头7位(高7位)为从机地址,最后位(LSB)决定了报文的方向:0表示主机写信息到从机,1表示主机读从机中的信息。当发送了一个地址后,系统中的每个器件都将头7位与它自己的地址比较。如果一样,器件会应答主机的寻址,至于是从机接收器还是从机发送器由R/W

23、位决定。第46页,此课件共64页哦从机地址由一个固定的和一个可编程的部分构成。例如,某些器件有4个固定的位(高4位)和3个可编程的地址位(低3位),那么同一总线上共可以连接8个相同的器件。I2C总线委员会协调I2C地址的分配,保留了2组8位地址(0000和1111),这2组地址的用途可查阅有关资料。第47页,此课件共64页哦挂接到总线上的所有外围器件、外设接口都是总线上的节点。在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,分时实现点点的数据传送。因此,总线上每个节点都有一个固定的节点地址。第48页,此课件共64页哦I2C总线上的单片机都可以成为主节点,其

24、器件地址由软件给定,存放在I2C总线的地址寄存器中,称为主器件的从地址。在I2C总线的多主系统中,单片机作为从节点时,其从地址才有意义。I2C总线上所有的外围器件都有规范的器件地址。器件地址由7位组成,它和1位方向位构成了I2C总线器件的寻址字节SLA。第49页,此课件共64页哦主机产生起始信号后的第一个寻址字节格式如下:D7 D0SLADA3DA2DA1DA0A2A1A0R/W 从机地址第50页,此课件共64页哦其各位含义如下:器件地址(DA3、DA2、DA1和DA0):是I2C总线外围接口器件固有的地址编码,器件出厂时,就已给定。例如,I2C总线E2PROM AT24C的器件地址为1010

25、,4位LED驱动器SAA1064的器件地址为0111。引脚地址(A2、A1和A0):是由I2C总线外围器件地址端口A2、A1和A0在电路中接电源或接地的不同而形成的地址数据。数据方向(R/W):规定了总线上主节点对从节点的数据传送方向,R接收,发送。表8-1列出了一些常用外围器件的节点地址和寻址字节。第51页,此课件共64页哦表8-1 常用I2C接口通用器件的种类、型号和寻址字节第52页,此课件共64页哦2)I2C总线数据传输的格式I2C总线传输数据时必须遵循规定的数据传输格式,图815示出了I2C总线一次完整的数据传输格式。图815 I2C总线一次完整的数据传输格式第53页,此课件共64页哦

26、在图815中,起始信号表明一次数据传送的开始,其后为被控器的地址字节,高位在前,低位在后,第8位为R/W方向位。方向位R/W表明主控器和被控器间数据传输的方向。若R/W=0,表明数据由主控器按地址字节写入被控器;若R/W=1,表明数据从由地址字节决定的被控器读入主控器。方向位后面是被控器发出的应答位ACK。地址字节传输完后是数据字节,数据字节仍是高位在前,低位在后,然后是应答位。第54页,此课件共64页哦若有多个数据字节需要传送,则每个数据字节的格式相同。数据字节传送完后,被控接收器发回一个非应答信号(高电平有效),主控器据此发送停止信号,以结束这次数据的传输。但是,如果主机仍希望在总线上通信

27、,它可以产生重复的起始信号(Sr)和寻址另一个从机,而不是首先产生一个停止信号。总线上数据传输有多种组合方式,现以图解方式分别介绍如下3类数据传输格式。第55页,此课件共64页哦(1)主控器的写数据操作格式主控器产生起始信号后,发送一个寻址字节,收到应答后跟着就是数据传输,当主机产生停止信号后,数据传输停止。主机向被寻址的从机写入n个数据字节。整个过程均为主机发送,从机接收,先发数据高位,再发低位,应答位ACK由从机发送。主控器向被控器发送数据时,数据的方向位(R/W=0)是不会改变的。传输n字节的数据格式如下:第56页,此课件共64页哦具体内容为:其中:为主控器发送,被控器接收;为被控器发送

28、,主控器接收;A为应答信号,为非应答信号;S为起始信号,P为停止信号;SLA为寻址字节(写);data 1data n为被传输的n个数据字节。第57页,此课件共64页哦(2)主控器的读数据操作格式主机从被寻址的从机读出n个数据字节。在传输过程中,除了寻址字节为主机发送、从机接收外,其余的n字节均为从机发送,主机接收。主机接收完数据后,应发非应答位,向从机表明读操作结束。第58页,此课件共64页哦主控器从被控器读取数据时,数据传输的方向位R/W=1。主控器从被控器读取n字节的数据格式为:第59页,此课件共64页哦具体内容为:其中:SLAR为寻址字节(读),其余与前述相同。注意:主控器在发送停止信

29、号前,应先给被控器发送一个非应答信号,向被控器表明读操作结束。第60页,此课件共64页哦3)主控器的读/写数据操作格式读/写操作时,在一次数据传输过程中需要改变数据的传送方向,即主机在一段时间内为读操作,在另一段时间内为写操作。由于读/写方向有变化,起始信号和寻址字节都会重复一次,但读/写方向(R/W)相反。例如,由单片机主机读取存储器从机中某存储单元的内容,就需要主机先向从机写入该存储单元的地址,再发一个启动位,进行读操作。第61页,此课件共64页哦主控器向被控器先读后写的数据格式如下:第62页,此课件共64页哦具体内容为:其中:Sr为重复起始信号;data 1data n为主控器的读数据;

30、DATA 1DATA n为主控器的写数据;其余与前述相同。第63页,此课件共64页哦通过上述分析,可以得出如下结论:无论总线处于何种方式,起始信号、终止信号和寻址字节均由主控器发送和被控器接收。寻址字节中,7位地址是指器件地址,即被寻址的被控器的固有地址,R/W方向位用于指定SDA线上数据传送的方向。R/W=0为主控器写和被控器收,R/W=1为主控器读(收)和被控器发。每个器件(主控器或被控器)内部都有一个数据存储器RAM,RAM的地址是连续的,并能自动加/减1。n个被传送数据的RAM地址可由系统设计者规定,通常作为数据放在上述数据传输格式中,即第一个数据字节data 1或DATA 1。总线上传输的每个字节后必须跟一个应答或非应答信号A/A。第64页,此课件共64页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com