《第9章-串行通讯口要点课件.ppt》由会员分享,可在线阅读,更多相关《第9章-串行通讯口要点课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、1,第9章 串行通讯口9.1 概述9.1.1 并行通讯与串行通讯(1)并行通讯:在同一时刻内,数据的各位并行传送。典型应用,计算机与并行打印机连接。优点:处理速度快。缺点:占用传输线多,传输距离短,一般小于30米。(2)串行通讯:数据一位一位的依次传送。优点:传输线少,适合于远距离传送。缺点:传送速度较慢。,2,3,说明:每一幀数据均以0开始,以1终止,中间传送的数据位可以是5位,7位,8位均可,中间有若干空闲位,空闲时一般处于1的状态。异步通讯比较灵活,实现起来比较简单(2)同步通讯 选用一个同步字符,例如0010010发送过去,约定同时开始同步传送。数据之间没有间隔,可连续发送。,4,比较
2、:同步传送效率比异步高。如果传送200个字节加一各同步字符,则辅助数据只佔0.5若用异步传送到200个字节则至少有400位辅助数据,其数量可观。9.1.3 异步串行通讯的信号格式:(1)近程通讯 RS232,5,近程通讯采用数字信号直接传送方式:计算机内部的数据信号是TTL电平标准,而通信线上的数据信号是RS-232电平标准。尽管电平标准不同,但数据信号的波形和频率并没有改变,近程串行通讯只需进行电平转换后,用传输线把两端接口电路直接连接起来即可实现。RS-232和TTL电平标准的逻辑值规定为:RS-232标准 TTL标准逻辑1(mark)-5-25V 2 5V(高电平额定值3V)逻辑0(sp
3、ace)+5+25V 0 0.8V(低电平额定值0.2V),6,(2)远程通讯 在远程通讯中,应使用专用通信电缆,出于经济的考虑,通常使用电话线作为传输线,如图:,7,远距离直接传送数字信号,信号会发生畸变,为此要把数字信号转变为模拟信号再进行传送,通常使用频率调制法(FSK),即以不同频率的载波信号代表数字信号的两种不同电平状态,这种数据传送方式称为频带传送方式。通常为:mark:1270HZ 或 2225HZ space:1070HZ 或 2025HZ 在串行通信发送端有调制器,用以把电平信号调制为频率信号,而在接收端有解调器,用以把频率信号解调为电平信号。通常串行通信两端均具有发送接收功
4、能,因此均应设置调制器和解调器,二者合二为一为调制解调器,即MODEM。,8,9.1.4 串行通讯的数据通路形式(1)单工形式数据单向传送,只需一条传输线。(2)半双工形式数据传送是双向,但不可同时进行。传输线可用一条,也可用两条。(3)全双工形式数据传送是双向,且可同时发送接收。需两条传输线。,9,9.1.5 串行通讯的传送速率 用每秒传送数据的位数衡量,现在常用 波特率(baudrate)表示,以波特为单位 1波特=1bit/s(位/秒)例如电传打字机传送速率为每秒10个字符,每个字符11位,则波特率为:11位/字符 10字符/秒=110位/秒 即110波特 传送一位需时间:1/110 秒
5、 9.1ms MCS-51系列单片机具有一个全双工的串行口,它在不同的工作方式中可同步或异步发送或接收数据。其波特率范围:以6MHZ晶振为例:为0.24波特 31250波特,10,9.2 8051单片机串行口的控制及工作方式(P110)串行口接收端:P3.0(10脚)RXD,发送端:P3.1(11脚)TXD。9.2.1 8051串行口的控制寄存器(1)串行口控制寄存器SCON 字节地址98H 可位寻址。SM0 SM1 SM2 REN TB8 RB8 TI RI 多机通信位 00:方式0 接收中断标志 01:方式1 发送中断标志 10:方式2 1:允许接收 接收到的第9位 11:方式3 0:禁止
6、接收 待发送的第9位,11,例:使串行口方式1发送 MOV SCON,#40H 0 1 0 0 0 0 0 0 方式1 禁止接收(2)电源控制寄存器:PCON 字节地址87H D7 SMOD 只有最高位D7位有定义,SMOD称波特率选择位。SMOD为1时比为0时波特率高一倍。(3)串行通道数据寄存器:SBUF 它是两个8位移位寄存器,一个是发送缓冲器,只写不读,另一个是接收缓冲器,只读不写,它们共用一个地址 99H,12,MCS-51串行口内部机构,13,9.2.2 串行口的四种工作方式(P110),14,(1)方式0 移位寄存器输入输出方式,同步发送、接收8位数据,每个机器周期移一位,移位脉
7、冲由TXD提供。如图:,输出方式 输入方式,15,方式0输出的基本指令:MOV SCON,#00H MOV A,#nnH CLR TI MOV SBUF,AWAIT:JNB TI,WAIT CLR TI,;SM0=SM1=0,选方式0;取待输出数据nnH;清发送中断标志;数据写入SBUF;判断数据是否发送完,TI=1?;清发送完标志,准 备发送下一字节,说明:数据写入SBUF后,单片机会立即自动启动发送TXD引脚每隔一个机器周期发出一个移位脉冲;SBUF中的数据在移位脉冲下右移一 次送至RXD;当SBUF中的数据全部移出后,单片机自动将TI置1;要再次发送数据必须清除TI。,16,方式0输入:
8、当REN=1,接收中断标志RI=0,则启动接收,移位脉冲仍从TXD端输出,数据从RXD端输入,当一个字节数据输入完毕时,置1接收中断标志RI。(2)方式1(波特率可变)异步串行通讯。发送或接收一帧数据为10位,其格式是:1 8 位 数 据 0 SCON 中SM0,SM1 为01则选方式1,17,发送过程:启动发送:执行一条访问SBUF指令即启动发送,且同时1装入第9位。发送一位的时间:由选定的波特率决定。发送过程:首先起始位0从TXD脚发出,且第9位写入1,然后每个移位脉冲将SBUF中数据右移一位,从TXD输出,空位由0填充。发送结束后,置位发送中断标志TI,申请中断。,18,接收过程:REN
9、=1且RI=0时,允许接收。起始位判断 以选定波特率的16倍速率采样RXD端,当连续三次采样中有两次是0时,确认为起始位,此时开始接收数据。数据接收:每来一个移位脉冲,RXD引脚移入一位数据,一帧数据接收完后,TI置1可申请中断。移位脉冲的频率由选定波特率决定。数据保留条件(P110)保留数据条件是:RI=0、SM2=0或者RI=0、停止位为1,符合两组条件其中之一则将数据保留在SBUF中,并置位RI。若不符合保留数据的条件,则将收到的数据丢弃,重新检测RXD端准备下次接收。,19,(3)方式2(波特率固定)异步发送或接收一帧数据为11位,其格式为:1 第9位 8 位 数 据 0 发送与接收操
10、作同方式1,注意保留数据条件为:RI=0、SM2=0 或者 RI=0、第9位数据为1(4)方式3(波特率可变)与方式2相同的是异步接收发送一帧数据是11位,但波特率与方式2不同,与方式1相同。注:所有方式当发送或接收一帧数据置位TI和RI标志后,必须软件清0,以备下一帧数据的发送或接收。,第9位数据接收时为RB8;发送时为TB8。,20,9.2.3 SCON中的TB8、RB8 第9位数据的用法举例 在数据通讯中,由于传输距离较远,数据在传输过程中可能发生畸变,从而引起误码,为了保证传输质量,除了硬件措施外,软件可采取检错措施,可用第9位数据进行奇偶检验。例1:利用TB8传送奇偶检验位MOV S
11、CON,#80H;选串行口方式2,传送11位数据MOV A,#DATA;待发送数据送A,该指令影响奇偶标志P MOV C,PSW.0(P);奇偶标志送C,奇为1、偶为0MOV TB8,C;奇偶标志送TB8,为发送的第9位数据MOV SBUF,A;启动一次发送共11位数据LOOP:JBC TI,OK;TI=1时,数据发送成功SJMP LOOP,21,例2:利用RB8接收奇偶检验位 MOV SCON,#90H;选方式2,REN=1,允许接收LOOP:JBC RI,ROK;等待接收完毕 SJMP LOOP ROK:MOV A,SBUF;接收完的数据送入A 同时获取P标志位 JB P,ONE;奇偶标志
12、为奇跳至RB8判断 JB RB8,ERR;接收到的数据为偶,而RB8为1,出错 SJMP OK;数据接收正确 ONE:JNB RB8,ERR;接收到的RB8不为1,出错 OK:;接收正确 ERR:.;接收出错处理,可通知对方重发,22,9.2.4 用SCON中的SM2实现多机通讯 在方式2和方式3中,当接收到一帧数据时,只有符合下列条件之一数据才会被保留,否则将被丢弃:RI=0 且SM2=0 RI=0且第九位数据为1(1)多机通讯设置:要求SM2=1,此时要求第9位数据为1。约定主机发出地址信息第9位为1,而数据信息第9位为0,(2)基本原理:主机先向各从机发出地址信息,地址信息第9位为1,符
13、合条件,各从机均能接收到地址信息,同时与自己的地址相比较,接收到的地址信息与本机地址相同,则使SM2=0,准备接收数据信息。,23,(3)数据传送 随后主机向总线发出数据,第9位为0,地址不符合的从机接收后均不符合条件,数据丢弃;只有地址相符的从机由于SM2=0符合条件而保存接收到的数据信息,从而实现了点对点的多机通讯。(4)通信结束 数据通信结束后,主机应当发送一个结束标志,通知从机,从机接收到该命令后,把SM2重新置1,或者从机接收完数据后自动判断,如果确认数据传送结束后,自动把SM2重新置1。恢复初始状态。,24,9.3 波特率的制定方法9.3.1 方式0(B代表波特率,以f 代表晶振频
14、率)方式0的波特率固定,为晶振频率的1/12(一个机器周期)如6M晶振,B=6M/12=0.5M位/秒=0.5106 波特 传送一位所需时间是2微秒注:方式0波特率只与晶振频率 f 有关,f 愈大传送速度愈快。9.3.2 方式2 B=f2SMOD/64 SMOD是PCON的最高位,可为0或1,若f=6M,SMOD=0 B=6M20/64=93750 波特 SMOD=1 B=6M21/64=187500 波特注:方式2波特率与晶振频率和SMOD有关,一经选定晶振频率,波特率只有两种可选择。,25,9.3.3 方式1和方式3B=T1溢出率2SMOD/32 溢出率定时器每秒溢出的次数。由于定时器工作
15、在不同的工作方式时,具有不同的计数器位数,(13位、16位、8位),装入不同的初始常数,因此溢出率也不同。溢出率1溢出周期,溢出周期:T=TC+TI 式中:TC 为定时时间,TC=(2n-X)机器周期 TI 为本次溢出到再次启动定时之间的时间间隔具体:a:转入中断入口硬件子程序所需的3个机器周期;b:重装时间常数后中断返回所需的6个机器周期。,26,说明:上述公式是对定时器方式0和1而言;定时器方式2由于可自动重装时间常数而省去了转入中断 服务重装时间常数所需的9个机器周期,即TI=0。因此定时器方式2时溢出率为:,合计大约共需要9个机器周期时间T(2n-X9)机器周期(12/f),27,综上
16、分析,串行口方式1和方式3的波特率计算公式为:(1)T1工作于方式0和方式1时:,(2)T1工作于方式2时:,28,由式 可知:当f=6M,T1方式0,当SMOD=0、X=0时,所获得的波特率为最小值:B=1.9052波特 当SMOD=1,X=1FFFH时,所获得的波特率为最大值:B=3125波特同理:T1方式1时:波特率范围为 0.24 3125波特由式T1方式2时,波特率范围为61 31250 波特,29,例:编一程序,设置8051串行口可发送、接收一帧数据为11位,其波特率选定125波特,设晶振频率为6MHZ。分析:(1)串口方式2和方式3可发送接收11位数据。若选方式2:B=f2SMO
17、D/64=610 62SMOD/64当SMOD=0时 B=93750波特当SMOD=1时 B=187500波特 均不满足125波特,因此只能选方式3SCON:1 1 0 1 0 0 0 0 方式3 允许接收 D0H,30,(2)设置计算波特率选T1方式2,其波特率范围为 61 31250 波特可满足125波特。T1工作于方式2时 选SMOD=1 则:解之得 X=6,31,程序如下:ORG 0000H AJMP MAIN ORG 0023H AJMP BTLMAIN:MOV SP,#30H MOV SCON,#0D0H;串行口方式3,允许接收 MOV PCON,#80H;SMOD=1 MOV T
18、MOD,#00100000B;T1方式2定时 MOV TL1,#06H;设置波特率125波特 SETB EA;允许CPU中断 SETB ES;允许串行口中断 SETB TR1;启动T1发出波特率.BTL:.,32,常用波特率一览表,33,应用实例:单片机和PC机的数据通信(P124)单片机向计算机上传数据硬件基础知识:,都经过电平转换,34,电压转换芯片:,Ti IN-TTL-单片机的TXDRiOUT TTL-单片机的RXD,35,TXD,RXD,8051,MAX231,R1OUT,T1IN,T1OUT,R1IN,PC串口,5,2,3,电路连接:,GND,GND,36,软件设计(单片机端):(
19、1)波特率选择 假设需要波特率为9600,外部晶振选择11.059,T1工作在方式2,计数初值为FDH,SMOD0MOV TMOD,00100000BMOV TL1,#0FDHMOV PCON,00H(2)串口工作方式选择 无需考虑奇偶校验,那么可让串行口工作在方式一,一帧数据为10位帧格式。MOV SCON,01000000B,37,(3)单片机程序设置 ORG 0000H AJMP MAINMAIN:MOV SP,#30H MOV SCON,#40H;串行口方式1 MOV TMOD,00100000B;T1工作在方式2 MOV TL1,#0FDH;波特率9600 MOV PCON,00H
20、SETB TR1 MOV R0,50H MOV R7,06H;6字节数据 LCALL CKFS.,CKFS:MOV A,R0 MOV SBUF,ANEXT:JNB TI,NEXT CLR TI INC R0 DJNZ R7,CKFS RET,38,(4)上位机(PC)程序设计 可使用VB6.0实现,选择MSComm控件,该控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。,