串行通讯口ppt

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第七章串行通讯口第一节概述一.并行通讯与串行通讯1.并行通讯:在同一时刻内,数据的各位并行传送。典型应用,计算机与并行打印机连接。优点:处理速度快。缺点:占用传输线多,传输距离短,一般小于30米。2.串行通讯:数据一位一位的依次传送。优点:传输线少,适合于远距离传送。缺点:传送速度较慢。2二.串行通讯的字符格式:1.异步通讯:传送方向……..1数据0……..1数据0……..1数据0停止位起始位停止位起始位停止位起始位若干空闲位数据中信息的两种状态分别以mark和space标志,其中:mark译为”标号”,对应逻辑1的状态。Space译为”空格”,对应逻辑0的状态。3每一幀数据均以0开始,以1终止,中间传送的数据位可以是5位,7位,8位均可,中间有若干空闲位,空闲时一般处于1的状态。异步通讯比较灵活,实现起来比较简单2.同步通讯:选用一个同步字符,例如0010010发送过去,约定同时开始同步传送。传送方向数据数据数据数据同步字符数据之间没有间隔,可连续发送。4比较:同步传送效率比异步高。如果传送200个字节加一各同步字符,则辅助数据只佔0.5%若用异步传送到200个字节则至少有400位辅助数据,其数量可观。三.异步串行通讯的信号格式:1.近程通讯RS232TXD甲机RXDGND1488148914891488RXD乙机TXDGNDTTLTTLTTLTTLRS2325近程通讯采用数字信号直接传送方式:计算机内部的数据信号是TTL电平标准,而通信线上的数据信号是RS-232电平标准。尽管电平标准不同,但数据信号的波形和频率并没有改变,近程串行通讯只需用传输线把两端接口电路直接连接起来即可实现。RS-232和TTL电平标准的逻辑值规定为:RS-232标准TTL标准逻辑1(mark)-3~-25V2~5V(高电平额定值3V)逻辑0(space)+3+25V0~0.8V(低电平额定值0.2V)62.远程通讯在远程通讯中,应使用专用通信电缆,出于经济的考虑,通常使用电话线作为传输线,如图:计算机MODEMMODEM计算机数字信号数字信号RS-232标准RS-232标准模拟信号电话线地地7远距离直接传送数字信号,信号会发生畸变,为此要把数字信号转变为模拟信号再进行传送,通常使用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态,这种数据传送方式称为频带传送方式。通常为:mark:1270HZ或2225HZspace:1070HZ或2025HZ在串行通信发送端有调制器,用以把电平信号调制为频率信号,而在接收端有解调器,用以把频率信号解调为电平信号。通常串行通信两端均具有发送接收功能,因此均应设置调制器和解调器,二者合二为一为调制解调器,即MODEM。8四.串行通讯的数据通路形式:1.单工形式数据单向传送,只需一条传输线。2.半双工形式数据传送是双向,但不可同时进行。传输线可用一条,也可用两条。3.全双工形式数据传送是双向,且可同时发送接收。需两条传输线。ABABAB9五.串行通讯的传送速率:用每秒传送数据的位数衡量,称波特率(baudrate)以波特为单位1波特=1bit/s(位/秒)例如电传打字机传送速率为每秒10个字符,每个字符11位,则波特率为:11位/字符×10字符/秒=110位/秒即110波特传送一位需时间:1/110秒≈9.1msMCS-51系列单片机具有一个全双工的串行口,它在不同的工作方式中可同步或异步发送或接收数据。其波特率范围:以6MHZ晶振为例、为0.24波特~31250波特10第二节8031单片机串行口的控制及工作方式串行口的接收端为P3.0(10脚)称RXD,发送端为P3.1(11脚)称TXD。一.8031串行口的控制寄存器:1.串行口控制寄存器SCON字节地址98H可位寻址。SM0SM1SM2RENTB8RB8TIRI00:方式0接收中断标志01:方式1发送中断标志10:方式21:允许接收接收到的第9位11:方式30:禁止接收待发送的第9位11例:使串行口方式1发送MOVSCON,#40H01000000方式1禁止接收2.PCON字节地址87HD7SMOD只有最高位D7位有定义,SMOD称波特率选择位。SMOD为1时比为0时波特率高一倍。3.串行通道数据寄存器SBUF它是两个9位移位寄存器,一个是发送缓冲器,只写不读,另一个是接收缓冲器,只读不写,它们共用一个地址99H12二.串行口的四种工作方式:1.方式0移位寄存器输入输出方式,同步发送接收8位数据,每个机器周期移一位。如图:DSADSBCP74LS164Q0Q7RXDTXD8031RXDTXD8031Q7CP74LS165D0D7输出方式输入方式13方式0输出的基本指令:MOVSCON,#00H;SM0=SM1=0,选方式0MOVA,#nnH;取待输出数据nnHCLRTI;清发送中断标志MOVSBUF,A;对SBUF写入即启动发送,TXD端每个机器周期发出一个移位脉冲,数据即从RXD端输出一位,74LS164的CP端每接收TXD端一个移位脉冲,数据右移一次,输出时以并行方式出现。WAIT:JNBTI,WAIT;发送一个字节后TI=1标志一帧数据发送完毕CLRTI;清发送中断标志,准备发送下一字节14方式0输入:当REN=1,接收中断标志RI=0,则启动接收,移位脉冲仍从TXD端输出,数据从RXD端输入,当一个字节数据输入完毕时,置1接收中断标志RI。2.方式1异步通讯。发送或接收一帧数据为10位,其格式是:18位数据0SCON中SM0,SM1为01则选方式115发送过程:①启动发送:执行一条访问SBUF的指令即启动发送,且同时1装入第9位。②发送一位的时间:由选定的波特率决定。③发送过程:首先起始位0从TXD脚发出,且第9位写入1,然后每个移位脉冲将SBUF中数据右移一位,从TXD输出,空位由0填充。发送结束后,置位发送中断标志TI,申请中断。16接收过程:当REN=1,且接收中断标志RI=0时,允许接收。①判断起始位:以选定波特率的16倍速率采样RXD端,当连续三次采样中有两次是0时,则确认为起始位0,此时开始一帧数据的接收。②开始接收:1FFH写入移位寄存器,每个位移脉冲左移一位,一帧数据接收完后置1接收中断标志,申请中断。移位脉冲的频率由选定波特率决定。③判断保留数据的条件保留数据的条件是:RI=0、SM2=0或者RI=0、停止位为1,符合两组条件其中之一则将数据保留在SBUF中,并置位接收中断标志RI。若不符合保留数据的条件,则将收到的数据丢弃,重新检测RXD端以备下次接收。173.方式2.异步发送或接收一帧数据为11位,其格式为:1第9位8位数据0发送与接收操作同方式1,注意保留数据的两组条件为:RI=0、SM2=0或者RI=0、第9位数据为14.方式3与方式2相同的是异步接收发送一帧数据是11位,但波特率与方式2不同。注:所有方式当发送或接收一帧数据置1TI和RI中断标志后,必须软件清0,以备下一帧数据的发送或接收。18三.SCON中的TB8、RB8第9位数据的用法举例在数据通讯中,由于传输距离较远,数据信号在传输过程中可能发生畸变,从而引起误码,为了保证传输质量,除了硬件上采取措施之外,软件可采取排错措施,例如可用第9位数据作为奇偶检验。例:发送端发送一个字节数据及奇偶位:MOVSCON,#80H;选串行口方式2,传送11位数据MOVA,#DATA;待发送8位数据送A,注意此时A的内容将影响PSW中的奇偶标志P,即PSW.0MOVC,PSW.0;奇偶标志送C,奇为1、偶为0MOVTB8,C;奇偶标志送TB8,待发送的第9位MOVSBUF,A;启动一次发送共11位数据LOOP:JBCTI,NEXT;TI=1时,一帧数据发完,清TI转下SJMPLOOP…………….NEXT:…19接收端将收到的数据用奇偶校验位进行核对排错:MOVSCON,#90H;选方式2,10010000,REN==1,允许接收LOOP:JBCRI,RIV;等待接收完毕SJMPLOOPRIV:MOVA,SBUF;接收完一帧数据取出送A此时收到的数据将影响PSW中奇偶位PSW.0JBPSW.0,ONE;为奇跳下JBRB8,ERR;接收到的数据为偶,而第9位为1,出错SJMPLD;接收正确ONE:JNBRB8,ERR;接收到的第9位不为1,出错LD:……………;接收正确ERR:…………….;接收出错处理,可通知对方重发20四.用SCON中的SM2实现多机通讯在方式2和方式3中,当接收到一帧数据时,只有符合下列条件之一数据才会被保留,否则将被丢弃:①RI=0②RI=0SM2=0第九位数据为11.多机通讯时约定主机发出地址信息时第9位为1,而数据信息第9位为0,且初始化时使SM2=12.主机先向各从机发出地址信息,此时由于地址信息第9位为1,各从机接收到的信息均符合第②组条件而被接收保存,各从机即将收到的地址信息与自己的地址相比较,如果与本机地址相符则使SM2=0213.随后主机向各从机发出数据,第9位为0,各从机收到后均不符合条件②,只有地址相符的从机由于SM2=0符合条件①而保存接收到的数据信息,其余各从机均将数据信息丢弃,这就实现了点对点的多机通讯。第三节波特率的制定方法一.方式0:以下以B代表波特率,以f代表晶振频率方式0的波特率固定为晶振频率的1/12例如6M晶振,则B=6M/12=0.5M位/秒=0.5×106波特传送一位所需时间是:2微秒注:方式0波特率只与晶振频率f有关,f愈大传送速度愈快。22二.方式2:B=f×2SMOD/64其中SMOD是PCON的最高位,可为0或1,以f=6M为例:当SMOD=0B=6M×20/64=93750波特当SMOD=1B=6M×21/64=187500波特注:方式2波特率与晶振频率和SMOD有关,一经选定晶振频率,波特率只有两种可选择。23三.方式1和方式3:B=T1溢出率×2SMOD/32什么是溢出率?溢出率即定时器每秒溢出的次数。由于定时器工作于不同的工作方式时,具有不同的计数器位数,(13位、16位、8位),装入不同的初始常数,因此溢出率也不同。下面从溢出周期(隔多长时间溢出一次)来推出溢出率:24溢出周期:T=TC+TI式中:TC为定时器的定时间隔TC=(2N-Z)×机器周期其中Z是定时器的初始常数N当定时器选择方式0、1、2时分别为13、16、8机器周期为12/f25TI为本次定时结束到下次启动定时的时间,它包括:a:转入中断入口的硬件子程序所需的3个机器周期b:中断服务程序中重装时间常数又返回所需时间,一般为6个机器周期TI=9×12/f所以,溢出周期为:T=TC+TI=(2N-Z)×12/f+9×12/f=(2N-Z+9)×12/ff溢出率=1/T=(2N-Z+9)×1226需要说明的是上述公式是对定时器方式0和1而言,对于定时器方式2则由于可自动重装时间常数而省去了转入中断服务重装时间常数所需的9个机器周期,即TI=0因此定时器方式2时溢出率为:f溢出率=(2N-Z)×1227综上分析,串行口方式1和方式3的波特率计算公式为:T1工作于方式0和方式1时B=f×2SMODN=13或16①(2N-Z+9)×1232T1工作于方式2时B=f×2SMODN=8②(2N–Z)×123228由①式以f=6M为例T1方式0:当SMOD=0、Z=0时获得最小波特率:B=1.905≈2波特当SMOD=1、Z=1FFFH时获得最大波特率:B=3125波特T1方式1:波特率范围为0.24~3125波特由②式,T1方式2:波特率范围为61~31250波特29例编一程序,设置8031串行口可发送接收一帧数据为11位,其波特率选定125波特。设晶振频率为6MHZ分析:1.方式2和方式3可发送接收11位数据。若选方式2B=f×2SMOD/64=6×106×2SMOD/64当SMOD=0时B=93750波特当SMOD=1时B=187500波特均不可满足125波特,因此只能选方式3SCON:11010000方式3允许接收D0H

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功