《第六章 串行通信ppt课件.ppt》由会员分享,可在线阅读,更多相关《第六章 串行通信ppt课件.ppt(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章 串行通信 单 片 机 应 用 技 术 DANPIANJI YINGYONG JISHU第六章第六章 串行通信串行通信6.1 串行通信与并行通信6.2 串行通信的基本知识6.3 单片机的串行通信6.4 串行通信接口标准6.5 串行通信应用举例实验 单片机与PC串口通信第六章第六章 串行通信串行通信通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。其工作的基本原理是将电信号转换为逻辑信号,也就是把高、低电平分别表示为二进制中的1和0, 再通过不同的二进制序列来表示所有的信息。并将转换后的信息以脉冲形式通过媒介(通讯
2、设备)来传输,从而达到通信的功能。6.1 串行通信与并行通信1 并行通信并行通信并行通信时数据的各个位同时传送,以字或字节为单位并行进行,需要多根数据线。发送设备将这些数据位通过对应的数据线直接传送给接收设备(也可附加一位数据校验位)。接收设备同时接收到这些数据,不需要做任何变换就可直接使用。6.1 串行通信与并行通信并行通信速度快,适用于近距离通信。但使用的数据线多、成本高,不宜进行远距离通信。计算机内部总线就是以并行方式传送数据的。6.1 串行通信与并行通信2 串行通信串行通信串口通信时数据中的每个字符都是一位一位传送的,仅使用一条数据线。数据一位一位地依次传输,每一位数据占据一个固定的时
3、间长度。6.1 串行通信与并行通信3 串行通信与并行通信的应用从介绍的通信原理来看,并行方式优于串行方式。通俗地说,并行通信犹如高等级并行通信犹如高等级的多车道高速公路,而串行通信犹如单车道的多车道高速公路,而串行通信犹如单车道普通公路。普通公路。但由于并行通信虽然传输速度快,但通信成本高,不支持长距离传输等特点,一般只用于计算机一般只用于计算机内部通信内部通信。如计算机内部的各种总线等。而串行通信虽然传输速度不快,但通信成本低,适合长距离传输,一般用于计算机外部通信一般用于计算机外部通信。6.2 串行通信的基本知识1 数据传输速率数据传输率也叫数据通信速率是指单位时间内传输的信息量,可用比特
4、率和波特率来表示。比特率每秒钟通过信道传输的信息量称为位传输速率,简称比特率。比特率表示有效数据的传输速率。单位为bit/s。6.2 串行通信的基本知识波特率在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。单位为Bd。6.2 串行通信的基本知识比特率与波特率的关系波特率与比特率的关系是:比特率=波特率*单个调制状态对应的二进制位数。两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的
5、三倍;依次类推。在二进制传输系统中,一个符号(码元)的含义为高、低电平,分别用来代表逻辑“1”和逻辑“0”;每个符号所含的信息量刚好为1个二进制数,所以其波特率就是每秒传输的二进制位的个数,可以使用比特/秒或bit/s来表示。6.2 串行通信的基本知识比如:电传打字机最快传输率为每秒10个字符/秒,每个字符包含11个二进制位,则数据传输速率为:11位/字符10个字符/秒=110位/秒=110波特(Baud)。计算机中常用的波特率是:110、300、600、1200、2400、4800、9600、19200、28800、33600。 若波特率为660波特,则其最快的传输率可达几个字符/秒?6.2
6、 串行通信的基本知识课堂练习在某计算机串行通信系统中,每传送一个字符,需要包含1个起始位,8个数据位,1个校验位,2个停止位。若传输速率为1200波特,则该系统每秒种可以传输多少个字符?分 析 1200波特1200bit/s 传送一个字符需要的二进制位数为 1+8+1+212bit 1200 /12100 该系统每秒可传输100个字符。6.2 串行通信的基本知识2 数据传送方向在串行通信中,按照数据流的方向,可以分为:单工传送、半双工传送和全双工传送。单工单工传送是单方向的数据传送。 数据仅能从发送设备传送到接收设备,数据只允许按照固定的方向进行传送。日常生活中的广播、电视等信号的传送都是单工
7、传送。半双工半双工传送是双向的数据传送,但在同一时刻,只能进行单方向的传送,通过电子开关设备,可以改变传送的方向。虽然通信的双方都可以进行收或发,都有发送和接收设备,但在同一时刻,只能或收或发。日常生活中的对讲机就是典型的半双工传送。全双工全双工传送需要两根数据线,连接通信的双方,可以同时进行发送和接收。全双工传送效率高、控制也很简单,但通信设备结构复杂、成本高。日常使用的电话就是全双工传送。6.2 串行通信的基本知识3 数据传输方式在串行通信中要将构成字符的二进制位转化为二进制序列,然后逐位传送。其传送的方式有两种:异步通信方式和同步通信方式。同步通信是一种比特同步通信技术,要求发收双方必须
8、具有同频同相的同步时钟信号,传送前要在传送数据块的最前面附加特定的同步字符,使发收双方建立同步,然后在同步时钟的控制下逐位发送/接收。6.2 串行通信的基本知识同步字符同步字符数据数据1 数据数据n校验字符校验字符在同步通信时,为了表示数据传输的开始,发送方先发送一个或两个特殊字符,该字符称为同同步字符步字符。利用这个字符,可以使发送方和接收方达到同步,然后就可以同步收(发)数据了。在同步过程中,收发双方还必须使用同频同相的时钟进行协调,用于确定串行传输中每一位的位置。6.2 串行通信的基本知识起始位起始位D0 Dn校验字符校验字符停止位停止位异步通信相对于同步通信而言,不需要严格的时钟同步,
9、而且所发送的字符之间的时隙也是任意的,但每一个字符的开始和结束的地方都要加上特殊标志,即开始位和停止位。而且要求接收方必须随时做好接收数据的准备。6.2 串行通信的基本知识异步通信也可以是以帧作为发送单位。接收端必须随时做好接收帧的准备。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。但在一帧中的所有比特是连续发送的。6.2 串行通信的基本知识4 错误校验为了保证高效率且准确无误地进行数据传送,必须对传送的数据进行校验。常用的核验方法有奇偶校验、代码和检验和循环冗余
10、校验。6.2 串行通信的基本知识奇偶校验在发送数据时,数据位尾随的1位为校验位。 采用奇检验时,若数据中(包含校验位)1的个数为奇数,表示传输过程正确。 采用偶校验时,若数据中(包含核验位)1的个数为偶数,表示传输过程正确。若发现不一致,则表示传输过程中出现了错误。将该数据丢掉重发。奇偶校验具有局限性,只能检测出一位错误(或奇数位错误),而且不能确定出错位置,也不能检测出偶数位错误。6.2 串行通信的基本知识课堂练习 信息位为10010111,写出其奇校验码和偶校验码。分 析 信息位中1的个数为5个。 其奇校验码位为0,其奇校验码为 100101110。 偶校验码位为1,其偶校验码为 1001
11、01111。6.2 串行通信的基本知识代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的检验字符(校验和)附加到数据块尾。接收方接收到数据块时,同时对数据块(除校验字节外)求和(或各字节异或),将所得结果与接收的校验和相比较,相符则传送正确,否则传送过程出现了差错。 如发送的代码为10101010,则其代码和为4(100)。将其附加到代码后发送,接到后,再求代码和与后面的比较,即可知道传送的是否正确。6.2 串行通信的基本知识 循环冗余校验这种校验通过数据运算实现有效信息与校验位之间的循环检验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛用于同步通
12、信中。6.3 单片机的串行通信51单片机只有一个串口,通过引脚RXD(p3.0)和TXD(p3.1)与外部电路进行全双工的异步通信,具备UART(Universal Asynchronous Receiver/Transmitter)的全部功能,还可以作为同步移位寄存器使用。6.3 单片机的串行通信1 串行口结结构51单片机的串行口结构中发送缓冲寄存器和接收缓发送缓冲寄存器和接收缓冲寄存器都叫冲寄存器都叫SBUF,他们共用一个寻址地址共用一个寻址地址,但他们是两个物理上独立的寄存器,二者职责不同,发送缓冲发送缓冲寄存器只管发,不管收;寄存器只管发,不管收;接收缓冲寄存器只管收,不管接收缓冲寄存
13、器只管收,不管发发。二者结合起来便可完成同时接收数据、发送数据的功能。此外还包括发送控制器、接收控制器、移位寄存器以及串行通信控制寄存器SCON等。6.3 单片机的串行通信6.3 单片机的串行通信2 串行通信控制寄存器SCON串行通信控制寄存器SCON主要用于设定串行口的工作方式、接收/发送控制以及设置状态标志等。其最后两位用于设定串行口的中断标志。这个寄存器可以进行位寻址,在C51编程中可以直接使用各控制位的名字。在单片机复位时,SCON会被全部清0。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位。 串行口有四种工作方式,如下
14、表所示。SM0 SM1工作方式工作方式说明说明 00方式08位移位寄存器方式,用于I/O扩展 01方式110位UART,波特率可以变化,由定时器1的溢出率控制 10方式211位UART,波特率固定 11方式311位UART,波特率可以变化,由定时器1的溢出率控制6.3 单片机的串行通信SM2:多机通信控制位。因为多机通信是在方式2和方式3下进行的,因此SM2位主要用于方式2或方式3中。 当串行口以方式2或方式3接收时 当SM2=1时,若接收到的第9位数据(RB8)是1时,使RI置l,并产生中断请求,同时将接收到的前8位数据送入SBUF;若接收到的第9位数据(RB8)是0时,则将接收到的前8位数
15、据丢弃。 当SM2=0时,不论第9位数据是l还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。 在方式1时,如果SM2=1,那么只有收到有效的停止位时RI才会置位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0时,SM2必须为0。6.3 单片机的串行通信REN:允许串行接收位。由软件置1或清0。当REN=1时,允许串行口接收数据。当REN=0时,禁止串行口接收数据。TB8:方式2和方式3中发送的第9位数据。其值由软件置l或清0。在双机串行通信时,TB8一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧
16、。RB8:方式2和方式3中接收的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。6.3 单片机的串行通信TI:发送中断标志位。在方式0时,当串行发送的第8位数据结束时TI由硬件置1;在其他工作方式中,当串行口发送停止位的开始时由硬件置1。当TI=1时,表示一帧数据发送结束,可以向CPU申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。 TI不会自动复位不会自动复位,必须在中断服务程序,必须在中断服务程序中用软件清中用软件清0。6.3 单片机的串行通信RI:接收中断标志位。在方式0时,接收完第8位数据时,RI由硬件置1。在其他工作
17、方式中,当串行接收到停止位时由硬件置l。当RI=1时,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。RI不会自动复位不会自动复位,必须在中断服务程序,必须在中断服务程序中使用软件清中使用软件清0。6.3 单片机的串行通信注意注意:由于串行发送中断和接收中断是同一个中断源,因此在向CPU提出中断申请时,必须要使用软件对RI和TI进行判断,以决定进入哪一个中断服务程序。6.3 单片机的串行通信D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDL3 电源控制寄存器PCON电源控制寄存器用来管理单片机的电源部分,仅有最高位与串行通信有关。SMOD:串行口波特率选择位。
18、 在串行口的工作方式1、2、3时 当SMOD1时,串行口的波特率加倍。 当SMOD0时,串行口的波特率为正常值。6.3 单片机的串行通信GF1、GF0:通用工作标志位,用户可以自由使用。PD:掉电模式设定位。 当PD1时,掉电模式。 当PD0时,正常工作模式。IDL:空闲模式设定位。 当IDL1时,空闲模式。 当IDL0时,正常工作模式。6.3 单片机的串行通信4 串行口的工作方式与波特率设定工作方式0工作方式0为8位移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也能外接同步输入/输出设备。8位串行数据都是从RXD输入或输出,而TXD用来输出同步移位脉冲。发送时串行数据从RXD管脚
19、输出,TXD管脚输出移位脉冲。CPU将数据写入发送寄存器SBUF时,立即启动发送,低位在前,高位在后。发送完一帧数据后,TI由硬件置位。6.3 单片机的串行通信接收时先要置位允许接收控制位REN。当RI=0并且REN=1时,开始接收。串行数据从RXD管脚输入,TXD管脚输出同步移位脉冲。当接收到第8位数据时,将数据移入接收寄存器SBUF,并由硬件置位RI。 在工作方式0下,其波特率固定的。 工作方式0的波特率 12oscf6.3 单片机的串行通信工作方式1工作方式1为波特率可变的波特率可变的10位异步通信位异步通信方式方式。发送或接收的一帧信息,由发送或接收的一帧信息,由1个起始位个起始位0,
20、8个数据位和个数据位和1个停止位组成个停止位组成。TXD为数据发送引脚,RXD为数据接收引脚。发送时, 当数据写入到发送缓冲SBUF时,就启动发送。发送完一帧数据后,由硬件对TI置位。6.3 单片机的串行通信接收时先要置位允许接收控制位REN,然后以选择的波特率的16速率采样RXD引脚,当采样到1至0的负跳变时,确认是开始位0,接着就开始接收一帧数据。只有当RI=0且停止位为1或者SM2=0时,停止位才会进入RB8,8位数据才能进入接收寄存器,并由硬件置位RI,否则信息丢失。因此在方式1接收时,要先用软件对RI和SM2复位。在工作方式1下,其波特率是可变的,由定时器/计数器T1的溢出率决定。
21、工作方式1波特率的溢出率1322TSMOD6.3 单片机的串行通信工作方式2工作方式2为固定波特率的固定波特率的11位位UART方式方式。与工作方式1相比,增加了一个第9位数据,其值来自来SCON寄存器的TB8。这一位可以用软件进行置位或复位,它既可以作为多机通信中地址帧/数据帧的标志位,也可以作为数据的奇偶校验位。TXD为数据发送引脚,RXD为数据接收引脚。发送时,当数据写入SUBF时,启动发送器发送。发送一帧信息后,由硬件置位TI。6.3 单片机的串行通信接收时先要置位允许接收控制位REN,然后串行口采样RXD引脚,当采样到1至0的负跳变时,确认是开始位0,接着开始接收一帧数据。在接收到附
22、加的第9位数据后,如果RI=0或者是SM2=0时,第9位数据进入到RB8,其余8位数据进入接收寄存器,并由硬件置位RI;否则信息丢失,且不会置位RI。经过一位时间后,不管上述条件时否满足,接收电路自行复位,并重新检测RXD上从1到0的跳变。在工作方式2下,其波特率固定的。 工作方式2的波特率oscSMODf6426.3 单片机的串行通信的溢出率1322TSMOD工作方式3工作方式3为波特率可变的波特率可变的11位位UART方式方式。除波特率外,其余与方式2相同。在工作方式3下,其波特率是可变的。 工作方式3的波特率6.3 单片机的串行通信T1溢出率工作方式1和工作方式3的波特率计算都涉及到T1
23、的溢出率,所谓T1的溢出率就是的溢出率就是T1的溢出频率的溢出频率。T1的自动重装初值的8位定时器/计数器模式(方式2),最适宜作为串行通信的波特率发生器。而且当系统晶振频率选用11.0592MHZ时,比较容易获得标准的波特率。6.3 单片机的串行通信波特率波特率晶振(晶振(fosc)SMODTH1初值初值1920011.05921FDH960011.05920FDH480011.05920FAH240011.05920F4H120011.05920E8H常用波特率及装入初值表6.3 单片机的串行通信课堂练习 51单片机的定时器1工作于方式2,作为串行口的波特率发生器,如果此时的串行工作方式是
24、工作方式1,波特率为9600,PCON0 x80,系统的晶振为11.0592MHz,那么定时器1应装入的初值为多少。6.3 单片机的串行通信课堂练习51单片机的串行口设为方式1工作,若每分钟传送28800个字符,求其波特率。分 析 51单片机串口的方式1,通常用于标准的串口通信。数据传输的帧格式固定,第一帧数据共有10位,包括1个起始位、8个数据位(最低有效位在前)、1个停止位。即串口工作在方式1下,一个字符要传送10位。 波特率=(28800/60)*10=4800bit/s 其波特率为4800。6.4 串行通信接口标准由于串行通信应用广泛,为了便于实现计算机、外围设备之间的串行通信连接,人
25、们制订了若干种串行通信接口标准,包括RS-232C、RS-422、RS485、USB等。其中RS-232C、RS-422与RS485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是最新最流行的新型接口标准,主要应用于高速数据传输。此外还有SPI、I2C、单总线等其它串行通信接口。6.4 串行通信接口标准1 RS-232C、RS422、RS485和USBRS-232C是一种外部串行总线,由EIA于1962公布。推出这种总线的目的是为了实现数据终端设备(data terminal equipment,DTE)和数据通信设备(data communication equipment
26、,DCE)之间的串行通信。后来人们将其广泛地应用于计算机与终端之间,计算机与计算机之间或者计算机与串行打印机及其他串行接口设备之间的近距离通信。6.4 串行通信接口标准RS232C总线共有25根信号线,其中2根地线、4根数据线、11根控制线、3根定时线、5根备用线。通过标准的DB25或DB9物理连接器实现连接互换性。6.4 串行通信接口标准在连接时,需要注意以下几点: 发送设备与接收设备的TXD、RXD应交叉连接。 RTS与CTS形成一对握手线,发送端发出发送请求,当允许发送端应答同意后才能发送数据。在最简单的双工通信中,一般只需要连接三根线:TXD、RXD、GND。使用RS-232C接口进行
27、串行通信时,采用的是“负逻辑”的RS-232C电平(EIA电平)。RS-232C是为点对点通信而设计的,其传送距离最大约为15米,最高速率为20kb/s。6.4 串行通信接口标准RS-422是为改进RS-232C的通信距离短、传输速率低等缺点,而开发的一种平衡通信接口。典型的RS-422是四线接口,实际上还有1根地线,总共有5根线。由于接收器采用高输入阻抗和发送驱动器比RS-232C更强的驱动能力,所以允许在相同的传输线路上连接多个接收节点,最多可以接10个节点。即一个主设备,其余为从设备,主设主设备和从设备之间可以进行通信,但从设备之间不备和从设备之间可以进行通信,但从设备之间不能互相通信能
28、互相通信。传输速率最高可达10Mb/s,最远传输距离可达1219米(速率低于100kb/s)。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。6.4 串行通信接口标准 RS-485是从RS-422基础之上发展而来的,采用平平衡发送和差分接收方式实现通信衡发送和差分接收方式实现通信。即发送端将串口的TTL电平信号转换成差分信号A、B两路输出,经过线缆传输后在接收端将差分信号再还原成TTL电平信号。由于传输线使用双绞线,又是差分传输,所以具有极极强的抗共模干扰能力强的抗共模干扰能力。 与RS-422一样,最大通信距离为1219米,最大传输速率为10
29、0Mb/s,传输速率与传输距离成反比,在100kb/s的传输速率下,才可以达到最大的传输距离。 RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,采用四线制时,与RS-422一样只能实现点对多的通信。与RS-422不同,无论四线还是二线连接方式,总线上可以连接32个设备。6.4 串行通信接口标准USB(Universal Serial Bus,即通用串行接口)是当前计算机上应用最为广泛的接口。其内部结构简单,信号的定义仅用用4线线完成,其中2根是用来传送数据的串行通道,另外2根为下游设备提供电源;而且USB接口支持设备的“热插拔热插拔”,实现了真正的即插即用。USB接口的另一
30、个特点是传输速度快,USB1.0的速度为12Mb/s,而USB2.0的传输速度高达480Mb/s,最新的USB3.0的传输速度更是达到了高达5Gbps。6.4 串行通信接口标准2 SPI总线SPI(Serial Peripheral Interface)即串行外围接口,是一种高速的、全双工的、同高速的、全双工的、同步的串行通信接口步的串行通信接口。SPI接口主要用于CPU和外部低速器件之间进行同步串行数据传输。但是SPI并不是国际标准化组织推出的标准协议,它是一个事实标准。SPI接口最早由Motorola提出,SPI接口采用主从式工作方式,为全双工通信全双工通信,数据传输速率可达到几Mb每秒。
31、6.4 串行通信接口标准SPI接口的通信原理很简单,在主从方式工作下通常有一个主器件和一个或多个从器件,通信主要通过四根信号线来完成。 MOSI 主器件数据输出,从器件的数据输入 MISO 主器件数据输入,从器件数据输出 SCLK 由主器件产生的为数据通信提供的同步时钟信号 CS 由主器件控制的从设备的使能信号6.4 串行通信接口标准SPI接口实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件的使能信号和移位脉冲(在SCK的上升沿进行发送,在下降沿完成数据的接收)共同作用下,按位进行数据传输,传输时高位在前,低位在后。6.4 串行通信接口标准51单片机的串行口工作方式0为8位
32、同步移位寄存器方式,其实就是一种简化的SPI总线接口。其中SCL信号由TxD输出,MOSI/MISO信号则由RxD输出或输入。使用SPI接口的外围器件很多,如FLASH、RAM、网络控制器、显示驱动器、A/D转换器、传感器等。6.4 串行通信接口标准3 I2C总线I2C(Inter-Integated Circuit)接口是PHILIPS公司开发的一种用于内部IC控制的简单的双向二线制串行总线。I2C总线支持任何一种IC制造工艺,并且PHILIPS公司和其他厂商提供了非常丰富的I2C兼容芯片。作为一个专利控制总线,与SPI不同,I2C是世界性的工业标准。I2C总线结构简单,只使用两条线两条线进
33、行信息传输,一条数据线(SDA)和一条串行时钟线(SCL)。6.4 串行通信接口标准具有I2C总线接口的器件可以通过这两根线连接到总线上,进行相互之间的信息传递。由于I2C总线上各器件的SDA和SCL引脚都是开漏结构开漏结构,因此使用时需要增加上拉电阻上拉电阻,以保持空闲时的高电平状态。连接到I2C总线的器件由器件本身和引脚状态确定地址由器件本身和引脚状态确定地址,无需使用无需使用片选片选。CPU根据不同的地址进行识别,从而实现对硬件系统简单灵活的控制。在I2C总线上数据是按位传送的,I2C总线每传送一位数据必须有一个时钟脉冲,并且被传送的数据在时被传送的数据在时钟钟SCL的高电平期间必须保持
34、稳定的高电平期间必须保持稳定,只有在只有在SCL低电平低电平期间才能够发生变化期间才能够发生变化。6.4 串行通信接口标准6.4 串行通信接口标准 I2C总线在传输数据过程中共有三种类型的信号,分别是开始信号、结束信号和应答信号开始信号、结束信号和应答信号。 开始信号:当SCL为高电平时,SDA由高电平向低电平的跳变,意味着传输开始 结束信号:当SCL为高电平时,SDA由低电平向高电平的跳变,意味着传输结束 应答信号:当主器件传送一个字节后,在第9个SCL时钟内拉高SDA线,而从器件的响应信号会将SDA拉低,这是从器件给主器件的一个响应。只有收到了响应信号才能继续通信。6.4 串行通信接口标准
35、I2C总线的数据传输协议: 通信首先要由主机发出开始信号 主器件发出的第一个字节,用来选通从器件。其中前7位为地址码,第8位为方向码。从器件回复应答后,进入下一个传送周期,执行下面的第4步。如果从器件没有给出应答,则本次传送无效,结束通信。接下来,主从器件开始正式通信。这时在总线上传送的数据字节数不受限,但每次传送一个字节,必须有一个应答。这样一直进行下去,直到收到结束信号或没有收到应答信号结束传送。6.4 串行通信接口标准4 单总线单总线故名思义就是一条总线,因此也称为1-wire,或单线总线单线总线。这个总线协议是美国DALLAS公司推出的,仅仅使用一根信号线就能完成与外部设备间的双向信息
36、交换。这根信号线既能传输时钟,又能同时传输这根信号线既能传输时钟,又能同时传输数据,而且其工作电源也完全从总线获取数据,而且其工作电源也完全从总线获取,并不需要额外的电源支持,且允许直接插入热/有源设备。因此这种总线技术具有线路简单、硬件开销少、成本低廉、便于总线扩展与维护等特点。6.4 串行通信接口标准 凡是支持单总线协议的设备都具有一个通过工厂光刻的64位ROM ID,这是该设备的唯一的识别标识,它存储在设备的只读存储器(ROM)中。 64位ROM ID由8位校验码、位校验码、48位序列号和位序列号和8位家族位家族码码共同构成,其中家族码标识的是该设备的类型,序列号标识的此设备的ID,校验
37、码用于保证通信的可靠性。 单总线上可以同时挂接多个设备,借助于ROM ID实现彼此区分。工作时主控器件通过从器件唯一的ROM ID来识别与之联系的从器件,整个通信过程中整个通信过程中从器件不能主动发送数据,只有当主器件对其下达了从器件不能主动发送数据,只有当主器件对其下达了命令后才能进行被动式的回复或响应命令后才能进行被动式的回复或响应。6.4 串行通信接口标准 在单总线通信中,传输的同样是二进制的0和1,或者说是高、低电平。但因为单总线只有一根数据线,所以这里的0和1要通过不同的时隙来表达。单总线协议中存在着写和读两种时隙和读两种时隙。写时隙写时隙又分为写0和写1,主器件采用写1时隙向从器件
38、写入1,使用写0时隙向从器件写入0。所有写时隙至少需要60us,并且两次独立的写时隙之间至少要有1us的恢复时间。6.4 串行通信接口标准两种写时隙均由主器件拉低总线开始。产生1时隙的方式为:主器件拉低总线后,接着在15us内释放总线,由上拉电阻将总线再拉高;产生0时隙的方式为:主器件拉低总线后,要至少保持低电平状态60us。在写时隙开始后的15-60us内,单总线器件采样总线状态,如果此期间采样值为高电平,则表示要向从器件中写入1,如果采样值为低电平,则表示要向从器件写入0。6.4 串行通信接口标准单总线协议中的读时隙,用来读取从器件发回的单总线协议中的读时隙,用来读取从器件发回的数据数据。
39、从器件只有在主器件发出读时隙时,才向主机传输数据。所有主器件发出读数据命令后,必须马上产生读时隙,以便接收到从器件传输数据。所有的读时隙至少需要60us,且两次独立的读时隙之间至少要有1us的恢复时间。每一个读时隙均由主机产生,并至少拉低总线1us,主器件在发出读数据命令后,才会产生读时隙,然后从器件就开始在总线上发送1或0。如果从机发送的是1,则保持总线的高电平,如果为0,则拉低总线。当从机发送0时,在读时隙结束后(即60us后)立即释放总线,由上拉电阻将总线拉高。6.4 串行通信接口标准单总线上的所有通信,都是以初始化开始的单总线上的所有通信,都是以初始化开始的。初始化序列包括主器件发出的
40、复位脉冲及从机的初始化序列包括主器件发出的复位脉冲及从机的应答脉冲应答脉冲。通常通信开始时,先由主器件发出一个复位脉冲(主器件拉低总线480960us),然后释放总线等待从器件的响应脉冲,这一等待时间至少480us。在等待期间主器件释放了总线,因为上拉电阻的原因,总线又恢复为高电平,这一时间约为15-60us。与此同时从器件检测到引脚上的下降沿,就会向总线发出应答信号,表示已经准备就绪。接着就可以按预定的程序设计进行通信了。6.5 串行通信应用举例 51单片机串口工作之前,需要对其进行初始化工作,主要是设置波特率发生器、串行口控制以及中断控制等。其初始化工作的步骤如下其初始化工作的步骤如下:
41、确定T1的工作方式,主要通过对TMOD寄存器设定完成。 依据波特率,设定T1的计数初值,并装入到TH1、TL1中。 确定串行口的控制,主要通过SCON寄存器来设定。 串行口工作于中断方式时,也要进行中断的设定,主要是通过IE、IP寄存器设定实现。6.5 串行通信应用举例课堂练习 使用51单片机的串行口进行8位数据、无校验的异步传输。波特率为4800bps,振荡频率为11.0592MHz。定时/计数器T1作为波特率发生器,发送使用查询方式,而接收过程用中断处理。请写出该串行口的初始化程序。6.5 串行通信应用举例分析 使用T1作为波特率发生器,那么T1必须工作于方式2,且依据给定的波特率要计算出
42、计数初值,这一点可以通过查询表64得到(也可以自行计算得出),TH1的值为FAH。串行口应工作于方式1,即10位的UART,可以通过对PCON和SCON寄存器的设定来设置串口的工作方式等。6.5 串行通信应用举例2 使用E2PROM进行存储使用单片机进行系统开发设计时,经常需要将系统运行过程中产生的重要信息进行存储,并希望再次加电重启时这些信息依然存在,这就需要使用E2PROM芯片来实现信息的存储。在单片机开发中经常用的E2PROM芯片有AT24C01/02/04等型号,其内部的存储容量分别为1Kb、2Kb、4Kb等。其串行通信方式即采用I2C总线接口。6.5 串行通信应用举例课堂练习使用51
43、单片机向AT24C02中依次存入8个数据07后,再将这8个数字依次读出,并在8位数码管中显示出来。6.5 串行通信应用举例分 析AT24C02的引脚除了I2C总线规定的SCL和SDA以外,还有四条线。其中WP为写保护引脚,用来保护芯片内部的数据不被改写。使用时需要将其接低电平,意味去除写保护,允许写入信息。另外三个引脚A2、A1、A0是用来确定从器件地址的,若有多片AT24C02连接在总线上,就可以通过对这三个引脚的设定,来彼此区分。本例中只用到一个,故三个引脚全部接地即可。proteus绘制出电路原理图时。直接在器件查找框内输入AT24C02,就可以找到仿真的该芯片,8位共阴极数码管模块的仿
44、真名称为7SEG-MPX8-CC-BLUE。Proteus中提供的I2C调试工具,使用该工具能看到使用该总线协议进行传输的每个细节。点击左侧工具栏上的 图标,在弹出的 列表 中,选择 即为I2C调试器。该调试器有三个输入,通常只需将SCL和SDA连接至I2C总线的对应线路上即可。仿真运行时,就会弹出即时的信息传输信息。参考代码较长请详见教材。实验 单片机与PC机串口通信实验目的掌握串行口的控制与状态寄存器SCON掌握特殊功能寄存器PCON掌握串行口的工作方式及其设置掌握串行口的波特率选择实验任务: 实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC
45、机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。实验 单片机与PC机串口通信实验过程首先在KEIL里编译写好的程序(见参考程序)。建立虚拟的串口。打开VSPD,如图所示。实验 单片机与PC机串口通信 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 这里设置的是com1的波特率、奇偶校验位、数据位、停止位实验 单片机与PC机串口通信打开串口调试助手。实验 单片机与PC机串口通信参考代码详见教材。课后习题一、填空题(1、2、3、5、6、9、11、12、14、15、18、20、21、22、24、25、29)二、选择题(1、5、10、11)三、多选题(全部)四、判断题(全部)五、计算与简答(1、2)