串行口及其通信概况_第1页
串行口及其通信概况_第2页
串行口及其通信概况_第3页
串行口及其通信概况_第4页
串行口及其通信概况_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章 8051串行口 及串行通信技术 9.1串行通信基本知识 9.2串行口及应用 9.3 RS-232C标准接口总线 9.4 8051与8051点对点通信 9.5 8051与PC机间通信软件的设计 9.6 PC机与多个单片机间的通信 9.1串行通信基本知识 9.1.1数据通信 1、什么是通信? 计算机的CPU与外部设备之间、计算机与计算机之间的信 息交换称为通信。 2、通信方式 串行通信和并行通信。如果距离小于30米可采用并行通信 方式;当距离大于30米时采用串行通行方式。 (1)并行通信 并行通信是指数据的各位同时进行传送(发送或接收)的 通信方式。其优点是传送速度快;缺点是数据有多少位,

2、就需 要有多少根传送线。因此并行通信在位数多、传送距离又远时 就不太适合了。 (2)串行通信 串行通信指数据是一位一位按顺序传送的通信方式。它 的突出优点是只需一对传输线,这样就大大地降低了传输成 本,特别适用于远距离通信;其缺点是传送速度较低。 下图为两种方式的连接图: (町(b) 9.1.2串行通信的传输方式 串行通信的传送方向通常有三种: (1)单向(或单工)配置,只允许数据向一个方向传送。 (2)半双向(或半双工)配置,允许数据向两个方向中的任 一方向传送,但每次只能有一个站点发送。 (3)全双向(或全双工)配置,允许同时双向传送数据。 串行通信传输方式如下图所示。 收 st 乙 屮双

3、工方式 全双工方丈 9.1.3异步通信和同步通信 一、异步通信 在异步通信中,数据是一帧一帧(包括一个字符代码或一 字节数据)传送的,每一帧数据的格式如下所示: 罡 位 位 盅8位敢攝裟盘 八 位 o/l|o/l| fl O 10/11 0/11 0/11 0/11 0/11 0/11 O/1J o/lfo/l 1 O o/ljo/lj (a) 体个字符 宀、 位 - _ - 研佯1 tstaft 罡 位 1 O I 0/11 0/11 0/11 0/11 O/l| O/l| O/l| O/l| O/J 1 111 O 0/11 位 二、同步通信 同步通信中,数据开始传送前用同步字符来指示(常

4、 约定1个2个),并由时钟来实现发送端和接收端同步,即 检测到规定的同步字符后,下面就连续按顺序传送数据, 直到通信告一段落。 为了保证接收工作正确无误,发送方除了传送数据外, 还要同时传送时钟信号。 同步传送可以提高传送速率(达56KB/S或更高),但 硬件比较复杂。 同步传送时,字符与字符之间没有间隙,也不用起始 位和停止位,仅在数据开始时用同步字符SYNC来指示,其 数据格式如下图所示: 同步字符1 ,同步字符2 i n I I n I i n I m散損i数掛 同步字符 同步字符的插入可以是单同步字符方式或双同步字符 方式,然后是连续的数据块。同步字符可以由用户约定, 当然也可以采用A

5、SCII码中规定的SYNC代码,即16Ho按 同步方式通信时,先发送同步字符,接收方检测到同步字 符之后,即准备接收数据。 三、波特率(Baud rate) 波特率,即数据传送速率,表示每秒钟传送二进制代码的 位数,它的单位是B/S。波特率对于CPU与外界的通信是很重 要的。 异步通信的传送速率在50B/S19200B/S之间,常用于计算 机到终端机和打印机之间的通信、直通电报以及无线电通信的 数据发送等。 9.1.4串行通信的过程及通信协议 一、串并转换与设备同步 两个通信设备在串行线路上成功地实现通信必须解决两 个问题:即串并转换和设备同步。 1、串并转换 FWo-s * 壬吋 8歼_ *

6、 2、设备同步 设备同步对通信双方有两个共同要求: 通信双方必须釆用统一的编码方法; 通信双方必须能产生相同的传送速率。 二、串行通信协议 通信协议是对数据传送方式的规定,包括数据格式定义 和数据位定义等。通信双方必须遵守统一的通信协议。串行 通信协议包括同步协议和异步协议两种。异步协议包括: 1、数据格式:数据位、奇偶校验位、停止位约定 5、波特率设置 6、握手信号约定 9.2 串行口及应用 9.2.1 8051 串行口 一. 结构 、结构如下图所示: 9.2 串行口及应用 921 8051 串行口 一、结构移位时钟 RI 二、串行口控制字及控制寄存器 SCON(98H)、PCON (87H

7、) 1、SCON (98H):可位寻址 D7 D6 D5 D4 D3 D2 DI D0 SM0 SM1 SM2 REN TB8 RB8 TI RI (1) SM0和SM1 串行口工作方式选择位,共有四种选择方式。 SM0 SM1 工作方式 说明 波特率 0 0 方式0 同步移位寄存器 Fosc/12 0 1 方式丄 10位异步收发 由定时器控制 1 0 方式2 11位异步收发 Fosc/32 fsc/64 1 1 方式3 11位异步收发 由定时器控制 (2)SM2多机通信控制位,主要用于方式2和方式3 当SM2时,允许多机通讯。多机通讯协议规定,第9 位数据(D8)为1,说明本帧数据为地址帧,

8、若第9位数据为 0,则本帧为数据帧。 若SM2=0,则不属于多机通讯情况,则接收一帧数据后, 不管第9位数据是0还是1,都置RI=1,接收到的数据装入 SBUF 中 (3) REN允许接收控制位 由软件置1或清0,只有当REN=1时才允许接收。 (4) TB8发送数据的第9位(D8)装入TB8中。在方式2、 3中由编程设定,在方式0、1中没用。 (5) RB8接收数据的第9位 在方式2、3中,接收到的第9位数据放在RB8中,它或 是奇偶校验位,或为地址/数据标志位;在方式1中,若 SM2=0, RB8中存放的是已接收到的停止位,在方式0中该 位没用。 (6) TI发送中断标志 该位在一帧数据发

9、送完时被置位,中断响应时不会自 动清0,必须由软件清0。 (7) RI接收中断标志 2、PCON (87H) 电源控制寄存器PCON中只有SMOD位与串行口工作有 关。 2 PCON (87H) D7 SMOI) SMOD (PCON.7) 波特率倍增位。在串行口方式1、2、3 时,波特率和2SMOD成正比,即SMOD=1时,波特率提高一倍。复 位时,SMOD=0 三、串行通信工作方式 串行口方式0、方式1、方式2和3的帧格式: DO DI D2 D3 D4 D5 D D7 方式1以10位为一帧传输,设有1个起始位(0),8个数据位和1个停止位(1)。其帧格式 为 起始 DO DI D2 D3

10、 D4 D5 D6 D7 停止 方式2和方式3以11位为1帧传输,设有1个起始位(0),8个数据位,1个附加第9位和 1个停止位(1)。其帧格式为 起始 DO Dl D2 D3 D4 D5 D6 D7 D8 停止 附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。 1、串行口方式0:同步移位寄存器输入瀚出方式 以8位数据为一帧,不设起始位和停止位,先发送最低位。 RXD为数据,TXD为移位脉冲, 波特率为fosc/12 方式0常用于扩展并行I/O 口,其扩展电路如下: J1 RXIXttm) TXD n_n_n_rurvn_n_rxj TI (b Sis 曾 SCOW _

11、n RXD E DI D2 D3 Di I5D7 CMZHDOH3a0O TXD (移位时併 Lrun_ru_n_n_n_rTJ 2、串行口方式1:10位通用异步接口 收发一帧数据的格式为1位起始位,8位数据位、 1位停止位,在接收时,停止位进入SCON的RB8。 RXD一发送数据端,TXD一接受数据端 波特率可变 ”时 JTLTLTLJLJLrLJlJlJT-JrLJLl SEND 包始位 5 _n_n_TLJLJTJl_rLJLJPEJUI 位叱竺1血11_肌51051 RXD 屆始位 D2XD3 D5 06X07. 停止位 RI 图9T2 方武1发送和接收时序 3、串行口方式2、3:11

12、位通用异步接口 收发一帧数据的格式为1位起始位,8位数据位、 1位可编程第9位和1位停止位。在接收时,第9位进入 SCON 的 RB8。 RXD一发送数据端,TXD一接受数据端 方式2波特率固定;方式3波特率可变 K 11 四、波特率设计 1、方式0的波特率 方式0的波特率是固定的,即fosc/12o 2、方式2的波特率 方式2的波特为2Smod/64 * fosc,即为晶振频率的32分频 或64分频。 3、方式1和方式3 方式1和3的波特率=2Smod/32 * T1溢出速率 定时器1 方式 波特率 fosc SMOD C/T 模式 定时器初值 方式0 1M 12 X X X X 方式2 3

13、75K 12 1 X X X 187.5K 12 0 X X X 方式4 3 62.5K 12 1 0 2 FFH 19.2K 11.059 1 0 2 FDH 9.6K 11.059 0 0 2 FDH 4.8K 11.059 0 0 2 FAH 2.4K 11.059 0 0 2 F4H 1.2K 11.059 0 0 2 E8H 例、8051单片机时钟振荡频率为11.0592MH乙 选用定时器 T1工作模式2作为波特率发生器,波特率为2400B/S,求初 值。 解:设波特率控制位SMOD=0 X=256 - (11.0592* 106 *(0 + 1) / (384*2400) =244

14、 = F4H 9.2.2 8051串行口应用 一、串行口方式()的应用 方式()时是同步操作,外接串入并出或并入串出器件,可 实现I/O的扩展。 例:用8031串行口外接CD4049或164串入并出移位寄存器扩 展8位并行口; 8位并行口的每位都接一个发光二极管,要求 发光二极管从左到右以一定延迟轮流显示,并不断循环。设 发光二极管为共阴极接法,如下图所示: 解:设数据串行发送采用中断方式,显示的延迟通过调用延 迟程序DELAY来实现。 ORG 0023H ;串行口中断入口 AJMP SBR ;转中断服务程序 ORG 2000H ;主程序起始地址 MOV SCON, #0()H ;串行口方式0

15、初始化 MOV A, #80H ;最左一位二极管先亮 CLR P1.0 ; 关闭并行输出 MOV SBUF, A ;开始串行输出 LOOP: SJMP LOOP;等待屮断 SBR: SETB P1.0 ;启动并行输出 ACALL DELAY;显示延时一段时间 CLR TI ;清发送中断 RR A ; 准备右边一位显示 CLR P1.0 ;关闭并行输出_ MOV SBUF, A ;再一次串行输出 RETI ;中断返回 例.用8051串行口外加移位寄存器CD4014 (或165、166) 扩展8位输入口,输入数据右8位开关提供,另有一个开关K 提供联络信号。当K=0时,表示要求输入数据,输入的X位

16、 为开关量,提供逻辑模拟子程序的输入信号,如下图所示: 解:串行口方式0的接收要用SCON寄存器中的REN位作为开 关来控制。因此,初始化时,除了设置工作方式之外,还要 使REN位为1,其余各位仍然为0 对RI采用査询方式来编写程序,当然,先要査询开关K是 否闭合。 START: JB Pl.l, START ;开关未闭合等待 SETB P1.0 ;并行置入数据 CLR P1.0 ;准备串行移位输入 MOV SCON, #10H;方式0, REN为1启动接收 JNB RI, $ ;查询RI CLR RI ;査询结束,清RI MOV A, SBUF;读数据到累加器 ACALL LOGSIM ;

17、进行逻辑模拟 2 = SJMP START ;准备下一次模拟 例:串口控制的键盘/显示器接口。静态显示方式。 采用共阳极LEDo接口电路如图所示: PIO Pl.1 8031 RXD rxi) PI2 SV 74LS08 74LS164 叱一 A UCTR oo LJMP KI LJMP K3 TABL: DB COH, F9H, A4H, BOH, 99H, 92H, 82H, F8H, 80H, 90H LED: SETB Pl.2;开放显示器控制 MOV R7, #08H MOV RO, #58H LED1: MOV A, R0 MOV SBUF, A LED2: JNB TI, LED

18、2 CLR TI INC RO DJNZ R7, LED1 CLR Pl.2;各位送完,关闭控制 RET 二、串行口方式1的发送和接收 例、8031串行口按双工方式收发ASCII字符,最高位用来作为 奇偶校验位,采用奇校验方式,要求传送的波特率为1200B/S, 编写有关的通信程序。 解:7位ASCII码加1位奇偶校验共8位,故可采用串行口方式1。 发送缓冲区首址为20H,接收缓冲区首址为40H,频率 为 6MHZo 主程序: MOV TMOD, #20H;定时器1设为模式2 MOV TL1, #0F3H;定时器初值 MOV TH1, #0F3H; 8位重装值 SETB TR1;启动定时器1

19、MOV SCON, #50H;将串行口置为方式1, REN =1 MOV RO, #20H ;发送数据区首地址 MOV Rl, #40H ;接收数据区首地址 ACALL SOUT ;先输出一个字符 SETB ES SETB EA LOOP: SJMP LOOP; 等待中断 中断服务程序: ORG 0023H; 中断入口 AJMP SBR1; 转服务程序 ORG 0100H; SBR1: JNB RI, SEND; RI=0即TI=1 为发送中断 ACALL SIN;RI=1为接收中断 SJMP NEXT; 转至统一出口 SEND: ACALL SOUT;调发送子程序 NEXT: RETI;中断

20、返回 发送子程序: SOUT: CLR TI MOV A, R0;取发送数据到A MOV C, P;奇偶标志到C CPL C;奇校验 MOV ACC.7, C;加到ASCII码高位 INC RO ;修改发送数据指针 MOV ABUF, A;发送ASCII RET;返回 接收子程序: SIN : CLR RI; MOV A, SBUF;读出接收缓冲区内容 MOV C, P;取出校验位 CPL C; 奇校验 ANL A, #7FH;删除校验位 MOV R1, A;读入接收缓冲区 INC Rl;修改接收数据指针 RET:返冋 三、串行口方式2、3的发送和接收 方式2与3基本一样(只是波特率设置不同)

21、,接收/发送 11位信息:开始为1位起始位(0),中间9位数据,最后是 一位停止位(1) O 例、用第9个数据位作奇偶校验位,编制串行口方式2的发送 程序。 解:设计- -个发送程序,将片内RAM50H5FH中的数据串 行发送,串行口设定为方式2, TB8作奇偶校验位,采用偶 校验,在数据写入发送缓冲器之前,先将数据的奇偶位P写 入 TB8o 程序清单如下: TRT: MOV SCON, #80H;方式2设定 MOV PCON, #80;取菠蒔家另fosc/32 MOV RO, #50H;首地址50H送RO MOV R7, # 10H;数据长度 10H送R7 LOOP: MOV A, R0;取

22、数据到A MOV C, PSW.O;取P至!JTB8 MOV TBS, C; MOV SBUF, A;数据送SBUF,启动发送 WAIT: JBC TI, CONT;判断发送中断标志 SJMP WAIT CONT: INC RO DJNZ R7, LOOP RET 例9-11:编制一个接收程序,将接收的16B数据送入片内 RAM的50H5FH单元中。设串行口工作于方式3,波特率为 2400B/S o 程序为: MAIN: MOV MOV MOV SETB MOV MOV MOV MOV 解:方式3为11位异步通讯方式,波特率取决于T1的溢出率。 查表92可知,当晶振为11.059MH乙 波特率

23、为2400B/S时, 可取SMOD=0, T1的计数初值为F4H。 TMOD, #20H;设T1工作于方式2 TL1, #0F4; TH1, #0F4;赋循环计数初值 TRI;启动定时器1 RO, #50H;首地址送RO R7, #10H;数据长度送R7 SCON, #0D0H;串口方式3,可接收 PCON, #00H;设SMOD=0 WAIT: JBC RI, PR1;接收完一帧数据清RI,转PR1 SJMP WAIT;否则等待 PR1: MOV A, SBUF;读入数据 JNB P, PNP; P=0转PNP JNB RB8, PER; P=l, RB8=0,转出错处理 SJMP RIGH

24、T PNP: RIGHT: JB RB8, PER; P=0, RB8=1,转出错处理 MOV R0, A;数据送内存 INC RO;修改地址指针 DJNZ R7, WAIT;数据未接收完继续 CLR PSW.5;置正确接收完标志F0=0 RET; PER: SETB PSW.5 RET 9.3 RS-232C标准接口总线及串行通信硬件设计 在实现计算机与计算机、计算机与外设间的串行通信时, 通常采用标准通信接口。这样就能很方便地把各种计算机、 外部设备、测量仪器等有机地连接起来,进行串行通信。 RS-232C是由美国电子工业协会(EIA)正式公布的,在异 步串行通信中应用最广的标准总线。它包

25、括了按位串行传输 的电气和机械方式的规定,适用于短距离或带调制解调器的 通信场合。 9.3.1RS-232C标准接口总线 RS-232C接口的具体规定如下: (1)范围 RS-232C标准适用于DCE (数据电路终端设备)和DTE (数据终端设备)间的串行二进制通信,最高的数据速率为 19.2Kb/so如果不增加其它设备,RS-232C标准的电缆长度最 大为15米。 (2)RS-232C的信号特征 由于RS 232C是在TTL集成电路之前研制的,所以它的电 平不是+5V和地,而是釆用负逻辑,规定+3V+15V之间的任 意电压表示逻辑0电平,3V15V之间的任意电压表示逻辑1电 平。 (3) RS-23

温馨提示

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

评论

0/150

提交评论