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