第A章串行接口_第1页
第A章串行接口_第2页
第A章串行接口_第3页
第A章串行接口_第4页
第A章串行接口_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业方向必修课、考查课,专业方向必修课、考查课,2.5学分、学分、40学时学时第第A章章 串行接口串行接口A.1 串行通信的基本概念串行通信的基本概念A.2 串行口基本结构与操作方式串行口基本结构与操作方式2 计算机1 GND 计算机2 GND并行通信 计算机1 GND 计算机2 GND发送接收串行通信A.1 串行通信的基本概念串行通信的基本概念 单片机与外界的信息交换称为通信。基本通信方式有两种:并行通信和串行通信。 并行通信传送数据的特点是各位同时发送或接收,而串行通信传送数据的特点是各位按顺序一位一位地发送或接收。3 并行通信 并行通信中一个并行数据占多少位二进制数,就要多少根传输线。其

2、特点是通信速度快,但传输线多,价格较贵,适合近距离传输。一般用于电路芯片内部,同一个插板上各部件之间的通信,距离小于30m。 前面关于存储器扩展、总线法扩展I/O口电路的通讯方式均为并行传送。 计算机1 GND 计算机2 GND并行通信4u 串行通信串行通信 串行通信仅需一到两根传输线即可实现,故在长距离传送数据时成本少,比较经济。但由于它每次只能传送一位,所以传送速度较慢。 计算机1 GND 计算机2 GND发送接收串行通信5A.1.1 串行数据传送方式串行数据传送方式 1单工方式单工方式 单向传送数据,通信双方中一方固定为发送端,另一端固定为接收端。只需要一条数据线。图图A-1(a) 单工

3、方式示意图单工方式示意图发送器A站接收器B站单工通信(a)6 这种方式允许数据在两个方向的任一方向传送,但每次只能有一端发送。使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据。 2半双工方式半双工方式图图A-1(b) 半双工方式示意图半双工方式示意图发收A站发收B站(b)7 3全双工方式全双工方式 当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工(Full Duplex)制。 它要求两端的通信设备具有完整和独立的发送、接收功能。图图A-1(c) 半双工方式示意图半双工方式示意图发收

4、A站发收B站(c)8A.1.2 波特率和发送波特率和发送/接收时钟接收时钟 1波特率波特率 并行通信中,传输速度以每秒传输的字节(B/s)表示。而串行通信数据传送的速率用波特率来表示。 波特率指每秒钟传送的二进制数码的位数,单位是bps(bit per second),即位/秒。 波特率是串行通信的重要指标,用于衡量数据传输的速率。91)发送时钟)发送时钟发送端使用的用于决定数据位宽度的时钟。2)接收时钟)接收时钟接收端使用的用于测定每一位输入数据位宽度的时钟。3)接收)接收/ 发送时钟频率发送时钟频率接收/ 发送时钟频率n波特率,其中n1,16,32,64 2发送发送/接收时钟接收时钟10A

5、.1.3 串行的基本通信方式串行的基本通信方式 1异步通信异步通信 串行数据按传递方式分为两种基本的通信方式:异步通信和同步通信。 异步通信中数据或字符是分为一帧一帧地传送,在帧格式中先用一个起始位“0”表示字符的开始,然后是58位数据,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后一个停止位“1”表示字符的结束,构成一帧。 由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外它还能利用校验位检测错误,所以这种通信方式应用较广泛。11 2同步通信同步通信 同步通信中,在数据或字符开始处就用一同步字符来指示(12个),由时

6、钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。 因为同步通信数据块传送时去掉了字符开始和结束的标志,所以其速度高于异步传送,但这种方式对硬件结构要求较高。这种通信方式中收/发双方必须建立准确的位定时信号,即收/发时钟的频率必须严格地一致。MCS-51单片机一般不使用。12 根据串行通信格式及约定(如同步方式、通信速率、数据帧格式等)的不同,形成了许多串行通信接口标准,如常见的UART(通用串行异步通信接口)、USB(通用串行总线接口)、I2C总线、SPI总线(同步通信)、485总线、CAN总线接口等。 下面结合MCS-51单片机介绍常用UART接口。A.

7、1.4 串行通信接口种类串行通信接口种类131)接口信号 RS-232C通信接口又称RS-232C总线标准。它向外部的连接器有25针和9针两种“D”型插头,各针的功能及排列如图图9-2(a)、图9-2(b)。 1RS-232C通信接口通信接口142)电平转换 单片机电平通常是TTL电平,它与RS232C电平不兼容,必须进行电平转换。 RS-232C与TTL的电平转换的芯片有MCl488传输线驱动器和MCl489传输线接收器。由于MCl488和MCl489需要15v或12V供电,造成了使用不便,现常用+5v单电源供电的转换芯片,如MAXIM公司的MAX232芯片,它可以实现RS-232C与TTL

8、/CMOS电平之间的转换。MA-X232的组成及引脚图如图A-3所示。 1RS-232C通信接口通信接口152. RS-422A通信接口通信接口1)接口信号 RS-422A通信接口是对RS-232C通信接口的改进,它采用平衡传输电气标准,输人/输出均采用差分驱动,因此具有更强的抗干扰能力,传送速率也大大提高。它向外部的连接器常采用9针“D”型插头,各针的功能及排列如图A-4所示。162. RS-422A通信接口通信接口2)电平转换 能够将TTL电平转换为RS-422A电平的常用芯片有SN5174、MC3487等。能将RS-422A电平转换为TTL电平的常用芯片有SN75175、MC3486等。

9、SN75174、SN75175 分别具有三态输出的单片差分驱动器和接收器,符合E认标准的RS-422A规范,它采用+5V单电源供电,功能上可以与MC3487、MC3486互换。 下图图A-5是用SN75174、SN75175实现的电平转换电路图。17A.1.5 信号调制与解调信号调制与解调 MODEM与计算机连接的方式分成内接式和外接式。MODEM的调制方式有3种:1)振幅调制(ASK):以两种振幅的大小来区别数字信号“0”与“1”;2)频率调制(FSK):利用两个固定的频率来分别代表数字信号“0”与“1”;3)相位调制(PSK):利用相位的差异来区别信号,当相位差180时代表位值的变化。18

10、A.1.6 串行接口的任务串行接口的任务 1进行串并转换 2实现串行数据格式化 3可靠性检验 4实施接口与通信设备之间的联络控制 19图图A-2 (a) 25针插头引脚定义图针插头引脚定义图20图图A-2 (b) 9针插头引脚定义图针插头引脚定义图21图图A-3 MAX232组成及引脚图组成及引脚图22图图A-4 RS422A插头引脚定义图插头引脚定义图23图图A-5 RS-422A接口电平转移电路接口电平转移电路24A.2 51单片机串行口基本结构与操作方式单片机串行口基本结构与操作方式A.2.1 串行口的基本组成串行口的基本组成A.2.2 串行口的串行口的SFR寄存器寄存器A.2.3 串行

11、口的工作方式串行口的工作方式A.2.4 串行口的应用串行口的应用A.2.5 例题例题返返 回回25 如图9.2.1所示,串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲器SBUF组成。串行口的通信操作体现为累加器A与发送/接收缓冲器SBUF间的数据传送操作。A.2.1 串行口的基本组成串行口的基本组成发 送SBUF(99H)门发 送 控 制 器接 收 控 制 器1输 入 移 位 寄 存 器串行控制寄存器(98H)定时器1接 收SBUF(99H)888TIRI内 部 总 线TXD(P3.1)RXD(P3.0)串 行 口 中 断图图A.2.1 单片机串行口示意图单片机串行口示意图26 当

12、对串行口完成初始化操作后要发送数据时,待发送的数据由A送入SBUF中,在发送控制器控制下组成帧结构并自动以串行方式发送到TXD端,在发送完毕后置位TI。如果要继续发送,在指令中将TI清零。 接收数据时,置位接收允许位才开始串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据送入SBUF。发 送SBUF(99H)门发 送 控 制 器接 收 控 制 器1输 入 移 位 寄 存 器串行控制寄存器(98H)定时器1接 收SBUF(99H)888TIRI内 部 总 线TXD(P3.1)RXD(P3.0)串 行 口 中 断图图A.2.1 单片机串行口示意图单片机串行口示意图271. SBUF 串行口

13、数据缓冲器串行口数据缓冲器2. SCON串行口控制寄存器串行口控制寄存器3. PCON电源及波特率选择寄存器电源及波特率选择寄存器A.2.2 串行口的串行口的SFR寄存器寄存器281)共两个:一个发送寄存器SBUF,一个接收 SBUF,二者共用一个地址99H。2)SBUF为不可位寻址寄存器。3)SBUF只能与A实现数据传送。1串行口串行口发送发送/接收缓冲器接收缓冲器SBUF29发送中断标志接收中断标志SM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位9FH9EH9DH9CH9BH9AH99H98H2串行口串行口控制寄存器控制寄

14、存器SCON SCON为可位寻址寄存器,用于串行口的方式设定和数据传送控制,直接地址为98H。其功能位规定如下:30SM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存器位同步移位寄存器fosc/120 1方式方式18位位UART可变可变1 0方式方式29位位UARTfosc/64或或fosc/321 1方式方式39位位UART可变可变例:设串行口工作在方式1,允许接收,则指令为: MOV SCON,#01010000B1)SM0、SM1 这两位为串行方式的定义方式选择位。用来选择串行口的四种工作方式,如下表。312)SM2 该位为串行多机通信控制位。在方式2、方

15、式3中用于多机通信控制。在方式2、方式3的接收状态中:若SM2=1,当接收到的第9位(RB8)为零时舍弃接收到的数据,RI清零;当RB8为1时,将接收到的数据送SBUF中,并将RI置1。3)REN 该位为允许接收位。REN=1时允许接收,REN由指令置位或清零。324)TB8 该位为第9位发送数据。多机通信(方式2、方式3)中TB8标明主机发送的是地址还是数据,TB8=0为数据,TB8=1为地址。TB8由指令置位或清零。5)RB8 该位为多机通信(方式2、方式3)中用来存放接收到的第9位数据,用以表明所接收的数据的特征。336)TI 该位为发送中断标志位。方式0时,发送完8位数据后由硬件置位,

16、其他方式下发送停止位时由硬件置位,并请求中断。T1=1表示帧发送结束,可供查询,TI由指令清零。7)RI 该位为接收中断标志位。方式0时,接收完8位数据后由硬件置位,其他方式下接收到停止位时由硬件置位,并请求中断。RI=1,表示帧接收终了。RI可供查询,由指令清零。34串行通信只用该位,SMOD=1时,波特率2;SMOD=0时,波特率不变。SMOD GF1 GF0PDIDL87H3电源及波特率选择寄存器电源及波特率选择寄存器PCON 串行口借用了电源控制寄存器PCON的最高位SMOD,用SMOD作为串行口波特率的倍增位。PCON为不可位寻址,直接地址为87H。 35A.2.3 串行口的工作方式

17、串行口的工作方式SM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存器位同步移位寄存器fosc/120 1方式方式18位位UART可变可变1 0方式方式29位位UARTfosc/64或或fosc/321 1方式方式39位位UART可变可变361. 方式方式01)特点)特点 用作串行I/0扩展,具有固定的波特率,为Fosc/12。 同步发送/接收,由TXD提供移位脉冲,RXD用作数据I/O通道。 发送/接收8位数据,低位在先。2)发送操作)发送操作 当执行一条“MOV SBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行发送SBUF中的数据。发送完

18、8位数据后自动置T1=1,请求中断。要继续发送时TI必须由指令清零(Tl=0)。3)接收操作)接收操作 在RI=0条件下,置REN=1时启动一帧数据的接收,由TXD输出移位脉冲,由RXD接收串行数据到A中。接收完一帧自动置位RI,请求中断,想继续接收时要用指令清除RI。372. 方式方式11)特点)特点 8位UART接口。 帧结构为10位,起始位0,8位数据,l位停止位。 波特率由指令设置,由T1的溢出率决定。2)发送操作)发送操作 当执行一条“MOV SBUF,A”指令时,A中的数据从TXD端实现异步发送。发送完一帧后置TI=0并请求中断,要求继续发送时,须指令清零TI。3)接收操作)接收操

19、作 当置位REN时,串行口采样RXD,当采样到I至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中,置位RI请求中断并通知CPU从SBUF中取走接收的数据。RI由指令清零。383. 方式方式2和方式和方式31)特点)特点 9位UART接口。 帧结构为11位,包括起始位0、8位数据位、1位可编程位TB8/RB8和停止位l。 波特率在方式2中固定为Fosc/32或Fosc/64由SMOD位选择。SMOD=1时,波特率为Fosc/32;SMOD=0时波特率为Fosc/64。方式3中波特率决定于T1的溢出率。 方式2和方式3具有多机通信功能,两种方式除了波特

20、率设置不同外,其余完全相同。392)发送操作)发送操作 发送数据操作前,由指令设置TB8(如作为奇偶校验位或地址/数据标志位),将要发送的数据由A写入SBUF中后启动发送操作。在发送操作中内部逻辑会把TB8装入发送移位寄存器的第9位位置,然后发送一帧完整的数据,发送完毕时置位TI。TI由指令清零。 多机通信的发送操作中,用TB8作地址/数据标识,TB8=l为地址帧,TB8=0为数据帧。403)接收操作)接收操作 当置位REN位且RI=0时,启动接收操作,帧结构上的第9位送入RB8中。对所接收的数据则视SM2和RB8的状态决定是否会使RI置1,并清求中断,接收数据。 当置SM2=0时,RB8不论

21、任何状态R1都置1,串行口都接收发送来的数据。 当置SM2=1时,为多机通信方式,接收到的RB8为地址/数据标识位。 当RB8=1时接收的信息为地址帧,此时置位R1,串行口接收发进来的数据。 当RB8=0时接收的信息为数据帧。若SM2=1时,R1不会置位,此帧数据丢弃;若SM2=0,则SBUF接收发送来的数据。411串行口的波特率串行口的波特率A.2.4 串行口的应用串行口的应用 方式0和方式2的波特率是不变的。方式0的波特率为Fosc/12,方式2的波特率为Fosc/32或Fosc/64,视SMOD位设置选择而定。SMOD=1时波特率为Fosc/32,SMOD=0时波特率为Fosc/64。

22、方式l和方式3中的波特率是可变的,其具体数值由定时器T1的溢出率和SMOD位确定,即: 波特率= 溢出率2132SMODT42 T1作波特率发生器使用时,通常选择计数初值自动重装的方式即方式2,工作在定时器状态,设计数初值为X,每过256-X个机器周期,T1就会产生一次溢出,其溢出周期为: 溢出率为溢出周期的倒数,故 波特率=12(256)BOSCTXf23212(256)SMODOSCfX43波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1 M方式2:375 k方式1,3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012

23、121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=)x256(12f322oscsmod表表A-1 常用波特率表常用波特率表2串行口的多机通信串行口的多机通信1)多机通信的连接方式)多机通信的连接方式 串行口的方式2和方式3具有多机通信功能,即可实现一台主单片机和若干个从单片机构成总线式的多机分布式系统,其连接方式如图A .2.2所示。图图A.2.2 51的多机通信连接方式的多机通信连接方式452)多机通信原理)多机通信原理 多机通信时

24、充分利用了单片机内的多机通信控制位SM2。当从机SM2=1时,从机只接收主机发出的地址帧(第9位为1),对数据帧(第9位为0)不予理睬;而当SM20时,可以接收主机发送的所有信息。 多机通信过程如下:l 所有从机的SM2置位1,都处于只接收地址帧的状态。l 主机发送一帧地址信息,其中8位地址,第9位为1表示是地址帧。l 所有从机接收到地址帧后,进行中断处理,把接收到的地址与自身地址相比较,地址相符时置SM2=0,不相符时维持SM2=1。l 由于被寻址的从机使SM2=0,可以接受主机随后发送的信息,实现主机与被寻址从机的双机通信。l 被寻址的从机通信完毕后,置SM2=1,恢复多机系统原有状态。4

25、63)通信协议)通信协议 多机通信是一个复杂的通信过程,必须有通信协议来保证多机通信的可操作性和操作秩序,这些通信协议应包括从机的地址、主机的控制命令、从机的状态字格式和数据通信格式等的约定。3数据通信中的校验与纠错数据通信中的校验与纠错1)奇偶校验)奇偶校验 51数据通信使用7位的ASC码时,奇偶校验位可放在字节的最高位;而8位数据通信时,使用方式2和方式3的9位数据通信,奇偶校验位为第9位。 奇偶校验的操作过程:当发送一个数据字节时,数据与奇偶位组成一帧一并发送;当接收方接收到一帧数据后,将数据和奇偶位分解,将接收数据送入A中,并将PSW中的奇偶位与传送过来的奇偶位相比较,若不同,则传进出

26、错。472)累加和校验)累加和校验 如果传送一个数据块中有n个字节,在数据块传送之前对n个字节进行加运算,形成累加和,把累加和附在n个字节后面传送,接收方接收到n个字节后也按同样方法进行n 个字节的加运算,并将两个累加和进行比较,如果不同,表示数据块传送出错。3)循环冗余校验)循环冗余校验 其基本原理是将一个数据块看成一个很长的二进制数(如将一个128个字节的数据块看成是一个1024位的二进制数),然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。在接收到该数据块和校验码后,对它们进行同样的运算,所得余数应为零,如果不为零表示数据传送出错。485)通信中的纠错)通信中的纠错 无论采

27、用上述那种校验方法t只能发现数据通信中的错误,发现出错后要求对方重发一遍来纠正错误,这在实时信息系统中无法实现(因信源已变)。即使保留有信源样本,当差错很频繁时会消耗大量的通信时间。这时就应借助具有纠错能力的编码通信。 纠错码是采用加大码距的办法来区别非法代码,其纠错原理建立在概率统计的基础上,即出现两个差错的概率远小于出现一个差错的概率,而出现三个差错的概率又远小于出现两个差错的概率。因此,当接收到一个非法代码时,其正确代码应是逻辑空间中离它最近的有效代码。目前,常用的纠错码有汉明码、检二纠一码、矩形码等。49例例1 利用51的串行口UART实现一个数据块的发送。设发送数据缓冲区首地址为50

28、H,发送数据长度(字节数)为10H;串行口为方式1工作状态,选定波特率为1200,时钟频率为Fosc=11.0529MHz。A.2.5 例例 题题解题设计思路: UART方式1工作状态下波特率需编程设定。通常用定时器/计数器1方式2工作状态下作波特率发生器。当选定波特率为1200,时钟频率为11.0529MHz时,计数器中的计数初值为E8H(SMOD=0时)。本练习的发送程序中,在数据发送前要将定时器/计数器1进行波特率发生器的初始化。50TXD1:MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H CLRET1 SETB TR1 MOV SCON,#40H M

29、OV PCON,#00H MOV R0, #50H MOV R7, #10HTRS: MOVA, R0发送程序发送程序TXD1TXD1清单:清单: MOV SBUF,AWAIT: JBC TI,CONT SJMP WAITCONT: INC R0 DJNZ R7, TRS RET51例例2 利用80C51的串行口UART实现一个数据块的接收。设接送数据缓冲区的首地址为40H,接收数据长度为10H;串行口方式2工作状态。解题设计思路: 利用51的串行口UART实现数据块接收时,其波特率要与发送的波特率相一致。不考虑发送的工作方式及波特率时,接收时的工作方式也有方式1方式3。选择方式2时,波特率固

30、定为Fosc/32 (当SMOD=1)或Fosc/64 (当SMOD=0)。52RXD2:MOV SCON,#80H MOV PCON,#80H MOV R0,#40H MOV R7, #10HRDS: SETB RENWAIT: JBC RI,REND SJMP WAIT REND: MOV A, SBUF MOV R0,A INC R0 DJNZ R7,RDS RET方式方式2 2下接收子程序下接收子程序RXD2RXD2清单:清单:535455A.4.1 串行标准总线串行标准总线RS-232C 1RS-232C的信号定义 2RS-232C信号线的连接和应用 3RS-232C电气特性返返 回回561RS-232C的信号定义的信号定义(1)传送信息信号 发送数据TXD 接收数据RXD(2)联络信号 请求传送信号RTS 清除发送CTS 数据准备就绪DSR 数据终端就绪信号DTR 数据载波检测信号DCD 振铃指示信号RI图图A-6 DB-25型连接器型连接器78131211109654321DCDGNDDSRCTSRTSRxDTxD211814151

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论