串行通信及串行扩展技术.ppt

上传人:牧羊曲112 文档编号:6535432 上传时间:2023-11-10 格式:PPT 页数:99 大小:1.62MB
返回 下载 相关 举报
串行通信及串行扩展技术.ppt_第1页
第1页 / 共99页
串行通信及串行扩展技术.ppt_第2页
第2页 / 共99页
串行通信及串行扩展技术.ppt_第3页
第3页 / 共99页
串行通信及串行扩展技术.ppt_第4页
第4页 / 共99页
串行通信及串行扩展技术.ppt_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《串行通信及串行扩展技术.ppt》由会员分享,可在线阅读,更多相关《串行通信及串行扩展技术.ppt(99页珍藏版)》请在三一办公上搜索。

1、单片型计算机原理及工程应用,陕西科技大学吉涛,第七章串行通信及串行扩展技术,第七章串行通信及串行扩展技术,内容提要:了解通信的概念,了解串行通信方式;了解RS-232等串行通信的标准;掌握51串行口的结构、通信原理方法;(重点)了解串行扩展、应用方法;熟悉单片机串行通信方法和常用的内部串行通信总线标准。学习难点:串行通信数据帧格式;RS-232C等的接口标准及电气标准;51串行口的通信方式设置及波特率设置方法;51单片机间的通信和单片机与PC机的通信方法;内部串行通信总线标准。,7.1串行通信概述,通信的两种基本方式:并行通信与串行通信。并行通信:将数据的各位用多条数据线同时进行传送,外加地址

2、线和通信控制线。串行通信:一条信息的各位数据被逐位按顺序在一条传输线上逐个地传送,传输线既传数据,又传联络信息。,并行通信 适用:近距离传输 30M;优点:传输速率高;缺点:多条传输线,成本高。,串行通信 适用:远距离或数据量少的通信;优点:远距离传输速率易提高、抗干扰能力强、成本低;缺点:传输速率低。,7.1串行通信概述,串行通信的基本方式 同步通信:按软件识别同步字符来实现数据的传送,由同一频率的时钟脉冲来实现发送和接收的同步;异步通信:发送端和接收端使用的不是同一个时钟,是以字符帧为单位进行传输,不需要在发送端和接收端之间传输时钟信号。,串行传输有二个问题需要解决如何区分一位?如何将一串

3、0和1还原成数据?,1001 1111 1001 1111,1001 1111 1111 1001,80C51单片机中主要使用异步串行通信方式。,7.1串行通信概述,串行通信的基本方式-异步通信,每帧数据由4部分组成:起始位(1位)、数据位(位)、奇偶校验位(位,也可以没有校验位)、停止位(1或2位)。实现异步通信的硬件电路称为UART。,异步通信字符帧格式,起始位:逻辑“0”信号,1位,通知接收端有一个新的字符数据到达,应准备接收。当信道上没有数据传送时,保持为高电平“1”,即空闲信号。对于接收端,不断的检测线路状态,若连续为“1”后又检测到一个“0”,则立即准备接收数据。,数据位:逻辑“0

4、”、“1”信号,占58位,在数据发送时,总是低位在先,高位最后。,奇偶校验位:逻辑“0”或“1”信号,占1位,用于在数据传送时作正确性检查,通常有:奇校验、偶校验和无校验三种情况。当该位不用于校验时可作为控制位,用于判定该字符所代表的信息(1-地址或0-数据等)。,停止位:逻辑“1”信号,用于表征字符的结束,表示一帧字符信息发送结束。该位可以时1、1.5或2个比特位,在实际应用中由用户根据需要设定。,7.1串行通信概述,串行通信的基本方式-同步通信,在同步信号字符的同步下实现数据信号的发送与接收,由同一频率的时钟脉冲来实现发送和接收的同步,传输的速度较高,通常在几十至几百千波特,实现的方法也较

5、复杂,硬件要求较高,需要锁相技术保证相位一致。,一次传送一组数据,并在传递开始处添加SYN同步字符。波特率:101000k bps,同步传输,高位先送,7.1串行通信概述,串行通信的基本方式-同步通信,波特率(Baud Rate):指一秒钟传送数据位的个数。波特率是串行通信的重要指标,对数据的成功传送至关重要,每秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒),在这种通信方式中,数据块内的各位数据之间没有间隔,传输效率高;发送、接收双方必须保持同步(使用同一时钟信号),且数据块长度越大,对同步要求就越高。同步通信设备复杂,成本高,一般只用在高速数字通信系统中。,典型的同步通信格式如下

6、:,7.1串行通信概述,串行通信的基本方式 串行通信的数据传送方式:按照数据传送方向,串行通信可分为单工方式、半双工和全双工三种方式。单工(Simplex)方式:广播半双工(Half Duplex)方式:步话机全双工(Full Duplex)方式:电话,7.2常用的串行通信总线,RS-232接口标准,在实现计算机与计算机、计算机与外设间的串行通信时,通常采用标准通信接口,这样就能很方便地把各种计算机、外部设备、测量仪器等有机地连接起来,进行串行通信。,RS-232C标准(协议)的全称是EIA-RS-232C标准EIA:(Electronic Industry Association)美国电子工

7、业协会RS:(Recommended Standard)代表推荐标准232:是标识号C:代表RS232的最新一次修改(1969)。它规定连接电缆和机械、电气特性、信号功能及传送过程。目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。,7.2常用的串行通信总线,RS-232接口标准引脚定义:,7.2常用的串行通信总线,RS-232接口标准机械特性:,7.2常用的串行通信总线,RS-232接口标准电气特性:RS-232C采用负逻辑电平,规定DC(-3-15V)为逻辑1,DC(+3+15V)为逻辑0。传输最大距离:30m。最高传输速率:20kbit/s。RS-232C的逻辑电平

8、与通常的TTL和MOS电平不兼容,为了实现与TTL或MOS电路的连接,要外加电平转换电路。,7.2常用的串行通信总线,RS-422接口标准介绍RS-422A每个通道要用两条信号线,逻辑电平由A、B之间的电位差值来决定。逻辑1:为BA的状态逻辑0:AB的状态AB之间的电压差不小于200mv RS-422A总线采用平衡输出的发送器,差分输入的接收器,抗共模干扰能力强。4线制,全双工,可以实现多站互联通信,但标准规定电路中只有一个发送器,可以有多达10个接收器。在 100kb/s速率以下,最大传输距离为4000英尺(约1219米);最大传输速率为10Mb/s,一般100米长的双绞线上所能获得的最大传

9、输速率仅为 1Mb/s。在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。,7.2常用的串行通信总线,RS-485接口标准介绍RS-485是一种多发送器的电路标准,它扩展了RS-422A的性能。RS-485为半双工模式,这一改动,对实现多站互连提供了很大的方便,允许双导线上一个发送器驱动32个负载设备。RS-485最小型由两条信号电路线组成。每条连接电路必须有接地参考点,电缆能支持32个发送接收器对。为了避免地面漏电流的影响,每个设备一定要接地。,7.2常用的串行通信总线,7.351系列单片机的串行接口,51单片机串行接口结构 51单片机内部有一个全双工的串行接口,串行数据接收引脚RX

10、D(P3.0)和串行数据发送引脚TXD(P3.1),具有4种工作方式。与串行口有关的特殊功能寄存器(SBUF、SCON),7.351系列单片机的串行接口,51单片机串行接口结构 串行口数据缓冲器SBUF(99H),接收、发送对应于同一地址(99H),但实际上是两个缓冲器。所以可同时发送数据、接收数据。,发送缓冲器:只能写,CPU写入SBUF的时候(MOV SUBF,A)即为发送;接收缓冲器:只能读,CPU读取SBUF的过程(MOV A,SUBF)即为接收。,7.351系列单片机的串行接口,51单片机串行接口结构 串行接口控制寄存器 SCON(Serial Control),SCON.7.6-S

11、M0、SM1 控制串行口方式,7.351系列单片机的串行接口,51单片机串行接口结构 串行接口控制寄存器 SCON(Serial Control),SCON.5-SM2 允许方式2、3的多机通讯特征位,在方式2、3中若SM2=1表示接收的第九位数据(RB8)为0时不激活RI,丢弃以收8位数据。在方式1中若SM2=1只有收到有效的停止位(记录在RB8中)时才会激活RI。在方式0中SM2必须为0。,7.351系列单片机的串行接口,51单片机串行接口结构 串行接口控制寄存器 SCON(Serial Control),SCON.4-REN 允许串行接收位,由软件置/复位 1:允许接收 0:不允许接收(

12、允许发送),SCON.3-TB8 在方式2、3中要发送的第九位数据,可以作为奇偶位,多机通讯时0为数据,1为地址,由软件置/复位,SCON.2-RB8 在方式2、3中是接收的第九位数据在方式1中若SM2=0,RB8是接收的停止位。在方式0中不用RB8。,7.351系列单片机的串行接口,51单片机串行接口结构 串行接口控制寄存器 SCON(Serial Control),SCON.1-RI 接收中断标志(必须由软件清除)在方式0中串行接收到第8位结束时自动置位。在方式1、2、3中串行接收到停止位的中间时置位。,1,0 1,1 0 1,1 1 0 1,1 1 1 0 1,0 1 1 1 0 1,0

13、 0 1 1 1 0 1,1 0 0 1 1 1 0 1,SCON.0-TI 发送中断标志(必须由软件清除)在方式0中串行发送第8位结束时自动置位。在方式1、2、3中串行发送停止位后置位,7.351系列单片机的串行接口,51单片机串行接口结构 电源控制寄存器PCON(87H),SMOD:波特率选择位。例如:方式1的波特率的计算公式为:方式1波特率=(2SMOD/32)定时器T1的溢出率也称SMOD位为波特率倍增位。T1常工作在方式2。,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式0-同步移位寄存器I/O波特率:fosc/12用于:扩展I/O口RXD(P3.0)端输入

14、或输出,同步移位脉冲由TXD(P3.1)送出。,移位输出:方式0发送数据的原理图和工作时序如图5-13,采用74LS164串入并出移位寄存器实现,P1.0线提供片选信号(高电平有效,发送前用负脉冲复位清除74LS164的输出)。当一个数据写入串行口发送缓冲器时,串行口将8位数据以fosc/12的固定波特率从RxD引脚输出,从低位到高位。发送完成后,置中断标志TI为1,请求中断,在再次发送数据之前,必须用软件将TI清零,并再次执行写SBUF指令。同样的CMOS芯片:4094,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式1-同步移位寄存器I/O波特率:fosc/12用于

15、:扩展I/O口RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。,移位输入:方式0接收数据的原理图和工作时序如图5-14所示采用74LS165并入串出移位寄存器实现,P1.0线提供控制信号,当S/L=0时,允许置入并行数据,当S/L=1时,允许数据串行移位输出。在REN=1和RI=0的条件下,接收器以fosc/12的波特率对RxD引脚输入的数据信息采样,当接收器接收完8位数据后,置中断标志RI=1为请求中断,在再次接收之前,必须用软件将RI清零。同样的CMOS芯片:4014,图5-14 方式0输入原理图、时序,例题如图所示的8个LED指示灯,指示8个按键闭合状态,有键按下时

16、对应的指示灯亮。,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式1-同步移位寄存器I/O,【实现程序】SIO:MOVSCON,#10H;REN=1,RI=0,SM0=0,SM1=0,;串行口工作在方式0,且启动接收过程LOOP:CLR P1.0;允许并行读入按键到74LS165,S/=0;有按键的位读数为0 SETB P1.0;允许串行移位,S/=1 CLR RI;启动接收 JNB RI,$;若RI=0,8位数据未接收完,等待 MOV A,SBUF;若RI=1,8位数据接收完,读入A CLR TI;清发送标志,准备发送 MOV SBUF,A;启动发送,输出数据位0,;

17、将点亮对应位LED JNB TI,$;8位数据未发送完,等待 SJMP LOOP;8位数据发送完,循环,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式1-同步移位寄存器I/O,图5-16 方式1串行发送时序,图5-17 方式1串行接收时序,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式1-波特率可变的10位异步通信接口波特率:波特率=(2SMOD/32)T1的溢出率用于:双机通讯一帧数据:1位起始位,8位数据位,1位停止位。TXD为数据发送端,RXD为数据接收端。,方式2和方式3接收:接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边

18、时,当接收器接收到第9位数据后,在RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),并置位RI,供查询或向CPU请求中断如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式2、3-11位数据的异步通信方式2波特率:晶振频率的64分频或32分频方式3波特率:设置方法与方式1相同。用于:多机通讯一帧数据:1位起始位,9位数据位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),1位停止位。TXD为数据发送端,RXD为数据接收

19、端,方式2和方式3发送:发送数据由TxD端输出,一帧信息中的9位数据包括8位数据位(先低位后高位)、一位附加可控位(1或0)。附加的第9位数据为SCON中的TB8的状态,它由软件置位或复位,可作为多机通信中地址数据信息的标志位,也可作为数据的奇偶校验位。一个字符帧发送完毕后,自动将TI位置“1”,供查询或向CPU请求中断。,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率 方式2、3-11位数据的异步通信方式2波特率:晶振频率的64分频或32分频方式3波特率:设置方法与方式1相同。用于:多机通讯一帧数据:1位起始位,9位数据位(含1位附加的第9位,发送时为SCON中的TB8,

20、接收时为RB8),1位停止位。TXD为数据发送端,RXD为数据接收端,7.351系列单片机的串行接口,51单片机串行口的工作方式及波特率,常用波特率、晶振频率与定时器(T1)的参数关系,7.351系列单片机的串行接口,51单片机串行口的应用串行口初始化操作步骤分为:确定串行口通信方式,设置SCON寄存器;确定T1的工作方式,设置TMOD寄存器;根据选定的波特率计算T1的初值,装载TH1、TL1;确定波特率倍率,设置PCON寄存器中SMOD值;启动T1(TCON中的TR1位置位);若串行口在中断方式工作时,还需要进行中断设置,对IE、IP寄存器编程。,7.351系列单片机的串行接口,51单片机串

21、行口的应用,例题使用方式1与PC机通信:通过9针RS-232异步串行接口,PC机向与单片机发送一个ASCII字符,单片机收到字符并通过7段LED显示该字符的ASCII码值,然后单片机对该字符的ASCII码值做加1处理,并回送新字符给PC机。,7.351系列单片机的串行接口,51单片机串行口的应用,采用查询方式的51单片机程序如下:ORG0030HSTART:MOVSP,#60HMOVSCON,#01010000B;设定串行方式:8位异步,允许接收MOVTMOD,#20H;设定计数器1为模式2ORLPCON,#10000000B;波特率加倍MOVTH1,#0F3H;设定波特率为4800MOVTL

22、1,#0F3HSETBTR1;计数器1开始计时AGAIN:JNBRI,$;等待接收完成CLRRI;清接收标志MOVA,SBUF;接收数据送缓冲区MOVP1,AINCAMOVSBUF,A;发送收到的数据JNBTI,$;等待发送完成CLRTI;清发送标志SJMPAGAINEND,7.4单片机串行扩展技术,采用串行总线进行扩展的优点在于,可以最大程度发挥最小系统的资源功能,P0口、P2口资源能直接用于I/O口;虽然没有并行总线那样大的吞吐能力,但连接线路简单,印制板面积缩小,可靠性提高;系统修改和扩展性好,可简化系统的设计。通常的串行扩展方法有两类:UART的移位寄存器方式和串行扩展总线方式。常用的

23、串行总线:Philips公司的I2C总线(两线制)Motorola的SPI总线(三线制)NS(National Semiconductor)公司的Microwire/Plus总线(三线制)Dallas公司的1-wire总线(一线制)BOSCH公司推出并被ISO认可的CAN总线。,7.4单片机串行扩展技术,一线制:典型代表为Dallas公司推出的单总线(1-wire),两线制:典型代表为Philips公司推出的I2C(Intel Integrated Circuit BUS)总线,三线制:典型代表Motorala公司推出的SPI(Serial peripheral Interface)、NS公司

24、推出的Micro wire/PLUS(不包括片选线),I2C(InterIntegrated Circuit)总线是由Philips公司开发的一种简单、双向、二线制、同步串行总线。它只需两根信号线(串行数据线和串行时钟线)来实现连接于总线上的器件之间的通信。由于 I2C 总线连线少、结构简单,因此被广泛应用于消费类电子产品、通信产品、仪器仪表及工业控制系统中。目前有很多半导体集成电路上都集成了 I2C 总线接口。带有 I2C 总线接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。I2C 总线最主要的优点:

25、其简单性和有效性。由于接口直接在组件之上,因此 I2C 总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件;I2C 总线的另一个优点是支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主控器件。一个主控器件能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控器件。,I2C串行扩展总线,I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控器件之间、器件与器件之间进行双向传送,最高传送速率100kbps。各种被控制电路

26、均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制信息两部分,地址码用来选址,即接通需要控制的器件电路,确定控制的种类;控制信息决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线的结构原理如图所示。,一、I2C总线的结构原理,I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电

27、平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。,一、I2C总线的结构原理,信号 I2C总线在传送数据前,主控器应发送起始信号,通知从控器作好接收准备;在传送结束时,主控器应发送停止信号,通知从控器停止接收,这两个信号是启动和关闭I2C总线器件的关键信号。起始信号:SCL为高电平时,SDA由高电平向低电平跳变;停止信号:SCL为低电平时,SDA由低电平向高电平跳变。应答信号:接收数据的从控器在接收到8位数据后,向发送数据的主控器发出特定的低电平脉冲,表示已收到数据。CPU向从控器发出一个信号后,等待从控器发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递

28、信号的判断。若未收到应答信号,判断为受控单元出现故障。,主机 在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。在80C51单片机应用系统的串行总线扩展中,我们经常遇到的是以80C51单片机为主机,其它接口器件为从机的单主机情况。,一、I2C总线的结构原理,1、数据位的有效性规定 I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。,二、I2C总线的数据传送,并且SDA线上传送的数据位数必须是8的整倍数。每传送一个字节后必须

29、由一个确认(应答:ACK)信号。I2C总线的时序如图所示。,2、起始和终止信号,SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。,二、I2C总线的数据传送,起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。,连接到I2C总线上的器件,若具有I2C总线的硬件接口,则很容易检测到起始和终止信号。对于不具备I2C总线硬件接口的有些单片机来说,为了检测起始和终止信号,必须保证在每个时钟周期内对数据线SDA采样两次。,接收器件收到一个完整的数据字节后,有可能需

30、要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。,二、I2C总线的数据传送,3、数据传送格式(1)字节传送与应答,每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。,二、I2C总线的数据传送,由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总

31、线的数据传送。,如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续传送。,当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。这个信号是由对从机的“非应答”来实现的。然后,从机释放SDA线,以允许主机产生终止信号。,(2)数据帧格式 I2C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。,在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/W),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每

32、次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。在总线的一次数据传送过程中,可以有以下几种组合方式:,二、I2C总线的数据传送,a、主机向从机发送数据,数据传送方向在整个传送过程中不变:,注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。A:应答,/A:非应答(高电平)。S:起始信号,P:终止信号。,b、主机在第一个字节后,立即由从机读数据,c、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。,二、I2C总线的数据传

33、送,四、总线的寻址,I2C总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。(1)寻址字节的位定义,D7D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。,二、I2C总线的数据传送,主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/位将自己确定为发送器或接收器。从机的地址由固定部分和可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。如一个从机的7位寻址位有4位是固定位,3位是可编程位,

34、这时仅能寻址8个同样的器件,即可以有8个同样的器件接入到该I2C总线系统中。,(2)寻址字节中的特殊地址 固定地址编号0000和1111已被保留作为特殊用途。,二、I2C总线的数据传送,起始信号后的第一字节的8位为“0000 0000”时,称为通用呼叫地址。通用呼叫地址的用意在第二字节中加以说明。格式为:,第二字节为 06H时,所有能响应通用呼叫地址的从机器件复位,并由硬件装入从机地址的可编程部分。能响应命令的从机器件复位时不拉低SDA和SCL线,以免堵塞总线。,第二字节为 04H时,所有能响应通用呼叫地址并通过硬件来定义其可编程地址的从机器件将锁定地址中的可编程位,但不进行复位。,二、I2C

35、总线的数据传送,如果第二字节的方向位B为“1”,则这两个字节命令称为硬件通用呼叫命令。在这第二字节的高7位说明自己的地址。接在总线上的智能器件,如单片机或其他微处理器能识别这个地址,并与之传送数据。硬件主器件作为从机使用时,也用这个地址作为从机地址。格式为:,(3)起始字节,不具备I2C总线接口的单片机,则必须通过软件不断地检测总线,以便及时地响应总线的请求。单片机的速度与硬件接口器件的速度就出现了较大的差别,为此,I2C总线上的数据传送要由一个较长的起始过程加以引导。,起始字节:提供给没有I2C总线接口的单片机查询I2C总线的特殊字节。,二、I2C总线的数据传送,引导过程由起始信号、起始字节

36、、应答位、重复起始信号(Sr)组成。,请求访问总线的主机发出起始信号后,发送起始字节(0000 0001),另一个单片机可以用一个比较低的速率采样SDA线,直到检测到起始字节中的7个“0”中的一个为止。在检测到SDA线上的高电平后,单片机就可以用较高的采样速率,以便寻找作为同步信号使用的第二个起始信号Sr。在起始信号后的应答时钟脉冲仅仅是为了和总线所使用的格式一致,并不要求器件在这个脉冲期间作应答。,I2C总线实际上已经成为一个国际标准在超过100 种不同的IC上实现,而且得到超过50家公司的许可。如今利用I2C总线接口的芯片很多,例如时钟芯片、EEPROM芯片,IC卡等。对于所有采用I2C总

37、线接口的芯片其使用方法基本类似,基本思路都是对具有I2C总线的芯片进行读、写操作。主机可以采用不带I2C总线接口的单片机,如80C51、AT89C2051等单片机,利用软件实现I2C总线的数据传送,即软件与硬件结合的信号模拟。,三、I2C串行扩展应用实例,1、典型信号模拟 为了保证数据传送的可靠性,标准的I2C总线的数据传送有严格的时序要求。I2C总线的起始信号、终止信号、发送“0”及发送“1”的模拟时序:,三、I2C串行扩展应用实例,二、典型信号模拟子程序,(1)起始信号Void I2CStart(void)SDA=1;SomeNop();SCL=1;SomeNop();SDA=0;Some

38、Nop();SCL=0;SomeNop();,(2)终止信号void I2CStop(void)SDA=0;SomeNop();SCL=1;SomeNop();SDA=1;SomeNop();SCL=0;SomeNop();,本节以AT24CXX系列芯片为例,介绍80C51单片机如何实现对I2C总线接口芯片的读、写操作。AT24CXX系列是具有I2C总线标准的E2PROM存储器。由于在I2C总线上可以连接多个器件,因此每个器件应该有唯一的器件地址,I2C总线规定:器件地址为7位(即一个I2C总线系统中理论上可以连接128个不同地址的器件)数据和1位读/写(R/W)方向控制。D7D4:器件型号识

39、别,不同的I2C总线接口器件的型号地址由生产商提供,AT24CXX系列的型号识别地址为1010(AD公司的AD7XXX系列数字温度传感器的型号识别地址为1001);D3D1位:为片选信号,与芯片的外部引脚A2、A1、A0相对应,在硬件系统设计时由所连接的引脚电平给定;D0位:读/写控制,该位为0,表示对器件进行写操作,该位为1,表示对器件进行读操作。,三、I2C串行扩展应用实例,三、I2C串行扩展应用实例,ATMEL公司的AT24C系列:,1、写入过程 AT24C系列E2PROM芯片地址的固定部分为1010,A2、A1、A0引脚接高、低电平后得到确定的3位编码。形成的7位编码即为该器件的地址码

40、。对于EEPROM的容量大于256B的芯片(AT24C04/O8/16),8位片内寻址(A0-A7)不够,系统以256B为1页,则多于8位的寻址视为页面寻址,页面地址占用器件引脚地址(A2、A1、A0)。凡在系统中引脚地址用作页地址后,该引脚在电路中不得使用,作悬空处理。,三、I2C串行扩展应用实例,1、写入过程单片机进行写操作时,首先发送该器件的7位地址码和写方向位“0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为相应,单片机收到应答后就可以传送数据了。传送方式:按字节地址写、按页面写(

41、可以连续装载一批n个字节数据的写入操作,n随型号不同而不同)。,器件地址(写)片内地址 n个字节数据,传送数据时,单片机首先发送一个字节的被写入器件的存储区的首地址,收到存储器器件的应答后,单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。AT24C系列器件片内地址在接收到每一个数据字节地址后自动加1,在芯片的“一次装载字节数”(不同芯片字节数不同)限度内,只需输入首地址。装载字节数超过芯片的“一次装载字节数”时,数据地址将“上卷”,前面的数据将被覆盖。,三、I2C串行扩展应用实例,2、读出过程传送方式:按地址读、当前地址读、连续读。连续方式读时,先要完成一次按地址读、或当前地址读,

42、在控制器收到第一个字节的数据后,即可以连续读出。,器件地址(写)片内地址器件地址(读)读出地址,单片机先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为相应。然后,再发一个字节的要读出器件的存储区的首地址,收到应答后,单片机要重复一次起始信号并发出器件地址和读方向位(“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。,SPI(Serial P

43、eripheral Interface)总线是一种同步串行外设接口总线系统,它可以使主控器(MCU)与各种外围设备(从控器:SCU)以串行方式进行通信。该接口一般使用4条线:SCK:串行时钟同步脉冲线MISO:主机输入/从机输出数据线MOSI:主机输出/从机输入数据线/SS:从机选择线(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。具有SPI总线接口的外围设备类型很多,如:FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器等。,5.7 SPI串行扩展接口,SPI总线可在软件的控制下构成各种功能完善的系统。如:1个主MCU和几个SCU

44、 多个SCU相互连接构成多主机系统(分布式系统)1个MCU和1个或几个SCU设备等 1主多从是主要的应用形式。SCU只有在主控器发送命令时才能接收或向主控器发送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。SPI主机方式最高数据传输率可达1.05 Mb/s。,一、SPI总线的结构原理,注:有多个SPI接口的单片机时,应为一主多从,在某一时刻只能由一个单片机为主器件;在扩展多个SPI外围器件时,单片机应分别通过I/O口线来分时选通外围器件。,一、SPI总线的结构原理,SPI总线有以下主要特性:全双工、3线同步传输;主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护

45、;总线竞争保护等。典型时序图如下所示(在一个CLK中,下降沿输出,上升沿输入。或反之)。从器件只能在主机发命令时,才能接收或向主机传送数据。主SPI的时钟信号(SCK)使传输同步。,一、SPI总线的结构原理,一、SPI总线的结构原理,二、串行扩展SPI的方法,1、用一般I/O口线模拟SPI操作 对于不同的串行接口外围芯片,它们的时钟时序是不同的。,对于在时钟上升沿输入数据和在下降沿输出数据的器件,一般取时钟输出P1.1的初态为1;在允许接口芯片后,置P1.1为0。,模拟:P1.0 MOSI,P1.1-SCK,P1.2-/ss,P1.3-MISO,二、串行扩展SPI的方法,1、用一般I/O口线模

46、拟SPI操作,单片机模拟1位数据输入/输出的过程:,MCU输出1位SCK时钟的低电平,使接口芯片串行左移,1位数据输入至89C51的P1.3(模拟MCU的MISO线);再置P1.1为1,使89C51从P1.0输出1位数据(先为高位)至串行接口芯片。依次循环8次,完成1次通过SPI传输1个字节的操作。,用于89C51模拟SPI串行输入、串行输出和串行输入/输出的3个子程序如下。它们适用于在串行时钟的下降沿输出和上升沿输入的各种串行外围接口芯片,如A/D芯片,74系列输出芯片等。,例1.MCU串行输入子程序SPIIN 从2814的SPISO线上接收1字节数据并放入寄存器R0中。,SPIIN:SET

47、B P1.1;使P1.1(时钟)输出为1CLRP1.2;选择从机MOVR1,#08H;置循环次数SPIN1:CLRP1.1;使P1.1(时钟)输出为0(有效)NOP;延时NOPMOVC,P1.3;从机输出SPISO送进位CRLCA;左移至累加器ACCSETBP1.1;使P1.1(时钟)输出为1DJNZR1,SPIN1;判断是否循环8次(1个字节数据)MOVR0,A;1个字节数据送R0RET;返回,例2.MCU串行输出子程序SPIOUT 将89C51中R0寄存器的内容传送到2814的SPISI线上。,SPIOUT:SETBP1.1;使P1.1(时钟)输出为1CLRP1.2;选择从机MOVR1,#

48、08H;置循环次数MOVA,R0;1个字节数据送累加器ACCSPIOT1:CLRP1.1;使P1.1(时钟)输出为0NOP;延时NOPRLCA;左移累加器ACC最高位至CMOVP1.0,C;进位C送从机输入SPISI线上SETBP1.1;使P1.1(时钟)输出为1(有效)DJNZR1,SPIOT1;判断是否循环8次(1个字节数据)RET;返回,例3.MCU串行输入/输出子程序SPIIO 将89C51中R0的内容传送到2814的SPISI线上,同时从2814的SPISO接收1字节数据存入R0中。,SPIIO:SETBP1.1;使P1.1(时钟)输出为1CLRP1,2;选择从机MOVR1,#08H

49、;置循环次数MOVA,R0;1字节数据送累加器ACCSPIO1:CLR P1.1;使P1.1(时钟)输出为0(输入有效)NOP;延时NOPMOVC,P1.3;从机输出SPISO送进位CRLCA;左移ACC最高位至C,C至ACCMOVP1.0,C;进位C送从机输入SETBP1.1;使P1.1(时钟)输出为1(输出有效)DJNZR1,SPIO1;判断是否循环8次MOVR0,ARET;返回,二、串行扩展SPI的方法,2、利用89C51串行口方式0实现SPI操作常用于开关量I/O、A/D、D/A、时钟、显示及打印功能等。,串行时钟芯片 在对绝对时钟要求较高的场合使用外部时钟芯片,串行日历时钟芯片HT1

50、380就是一个典型的器件。,HT1380与单片机接口电路,I/O端:串行输入输出端口 RST:复位PIN,RST 为高时可以对其进行读/写操作(类似于芯片选择信号)。为低时,I/O引脚对外是高阻状态,因此它允许多个串行芯片同时挂接在串行端口上。,二、串行扩展SPI的方法,2、利用89C51串行口方式0实现SPI操作常用于开关量I/O、A/D、D/A、时钟、显示及打印功能等。,串行LED显示接口MAX7219 MAX7219可驱动8个LED显示器,89C51与它的接口如图:,MAX7219与单片机接口电路,单片机通过串行口以方式0与MAX7219交换信息:,TXD作为移位时钟 RXD作为串行数据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号