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

下载本文档

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

文档简介

串行口及其通信第一页,共五十七页,2022年,8月28日9.1串行通信基本知识9.1.1数据通信1、什么是通信?

计算机的CPU与外部设备之间、计算机与计算机之间的信息交换称为通信。2、通信方式

串行通信和并行通信。如果距离小于30米可采用并行通信方式;当距离大于30米时采用串行通行方式。(1)并行通信并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。其优点是传送速度快;缺点是数据有多少位,就需要有多少根传送线。因此并行通信在位数多、传送距离又远时就不太适合了。第二页,共五十七页,2022年,8月28日(2)串行通信串行通信指数据是一位一位按顺序传送的通信方式。它的突出优点是只需一对传输线,这样就大大地降低了传输成本,特别适用于远距离通信;其缺点是传送速度较低。下图为两种方式的连接图:第三页,共五十七页,2022年,8月28日9.1.2串行通信的传输方式

串行通信的传送方向通常有三种:(1)单向(或单工)配置,只允许数据向一个方向传送。(2)半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送。(3)全双向(或全双工)配置,允许同时双向传送数据。串行通信传输方式如下图所示。

第四页,共五十七页,2022年,8月28日9.1.3异步通信和同步通信一、异步通信

在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧数据的格式如下所示:第五页,共五十七页,2022年,8月28日二、同步通信

同步通信中,数据开始传送前用同步字符来指示(常约定1个~2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。

为了保证接收工作正确无误,发送方除了传送数据外,还要同时传送时钟信号。同步传送可以提高传送速率(达56KB/S或更高),但硬件比较复杂。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据开始时用同步字符SYNC来指示,其数据格式如下图所示:第六页,共五十七页,2022年,8月28日

同步字符的插入可以是单同步字符方式或双同步字符方式,然后是连续的数据块。同步字符可以由用户约定,当然也可以采用ASCII码中规定的SYNC代码,即16H。按同步方式通信时,先发送同步字符,接收方检测到同步字符之后,即准备接收数据。第七页,共五十七页,2022年,8月28日

三、波特率(Baudrate)

波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是B/S。波特率对于CPU与外界的通信是很重要的。异步通信的传送速率在50B/S~19200B/S之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。第八页,共五十七页,2022年,8月28日9.1.4串行通信的过程及通信协议一、串并转换与设备同步

两个通信设备在串行线路上成功地实现通信必须解决两个问题:即串并转换和设备同步。1、串并转换第九页,共五十七页,2022年,8月28日第十页,共五十七页,2022年,8月28日2、设备同步

设备同步对通信双方有两个共同要求:

通信双方必须采用统一的编码方法;

通信双方必须能产生相同的传送速率。

二、串行通信协议

通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。异步协议包括:1、数据格式:数据位、奇偶校验位、停止位约定5、波特率设置6、握手信号约定第十一页,共五十七页,2022年,8月28日9.2串行口及应用9.2.18051串行口一、结构结构如下图所示:第十二页,共五十七页,2022年,8月28日9.2串行口及应用9.2.18051串行口一、结构第十三页,共五十七页,2022年,8月28日

二、串行口控制字及控制寄存器

SCON(98H)、PCON(87H)1、SCON(98H):可位寻址

D7D6D5D4D3D2D1D0

SM0SM1SM2RENTB8RB8TIRI(1)SM0和SM1

串行口工作方式选择位,共有四种选择方式。第十四页,共五十七页,2022年,8月28日SM0SM1工作方式说明波特率00方式0同步移位寄存器Fosc/1201方式110位异步收发由定时器控制10方式211位异步收发Fosc/32fosc/6411方式311位异步收发由定时器控制(2)SM2——多机通信控制位,主要用于方式2和方式3

当SM2=1时,允许多机通讯。多机通讯协议规定,第9位数据(D8)为1,说明本帧数据为地址帧,若第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中没用。第十五页,共五十七页,2022年,8月28日(5)RB8——接收数据的第9位在方式2、3中,接收到的第9位数据放在RB8中,它或是奇偶校验位,或为地址/数据标志位;在方式1中,若SM2=0,RB8中存放的是已接收到的停止位,在方式0中该位没用。(6)TI——发送中断标志该位在一帧数据发送完时被置位,中断响应时不会自动清0,必须由软件清0。(7)RI——接收中断标志2、PCON(87H)电源控制寄存器PCON中只有SMOD位与串行口工作有关。第十六页,共五十七页,2022年,8月28日

SMOD(PCON.7)——波特率倍增位。在串行口方式1、2、3时,波特率和2SMOD成正比,即SMOD=1时,波特率提高一倍。复位时,SMOD=0。三、串行通信工作方式

串行口方式0、方式1、方式2和3的帧格式:2、PCON(87H)

D7SMOD第十七页,共五十七页,2022年,8月28日第十八页,共五十七页,2022年,8月28日1、串行口方式0:同步移位寄存器输入/输出方式

以8位数据为一帧,不设起始位和停止位,先发送最低位。。

RXD——为数据,TXD——为移位脉冲,

波特率为fosc/12

方式0常用于扩展并行I/O口,其扩展电路如下:第十九页,共五十七页,2022年,8月28日第二十页,共五十七页,2022年,8月28日第二十一页,共五十七页,2022年,8月28日2、串行口方式1:10位通用异步接口

收发一帧数据的格式为1位起始位,8位数据位、1位停止位,在接收时,停止位进入SCON的RB8。

RXD——发送数据端,TXD——接受数据端

波特率可变第二十二页,共五十七页,2022年,8月28日第二十三页,共五十七页,2022年,8月28日3、串行口方式2、3:11位通用异步接口

收发一帧数据的格式为1位起始位,8位数据位、1位可编程第9位和1位停止位。在接收时,第9位进入SCON的RB8。

RXD——发送数据端,TXD——接受数据端

方式2波特率固定;方式3波特率可变第二十四页,共五十七页,2022年,8月28日四、波特率设计1、方式0的波特率方式0的波特率是固定的,即fosc/12。2、方式2的波特率方式2的波特为2SMOD/64*fosc,即为晶振频率的32分频或64分频。3、方式1和方式3

方式1和3的波特率=2SMOD/32*T1溢出速率第二十五页,共五十七页,2022年,8月28日定时器1方式波特率foscSMODC/T模式定时器初值方式01M12XXXX方式2375K121XXX187.5K120XXX方式1、362.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H第二十六页,共五十七页,2022年,8月28日例、8051单片机时钟振荡频率为11.0592MHZ,选用定时器T1工作模式2作为波特率发生器,波特率为2400B/S,求初值。解:设波特率控制位SMOD=0X=256-(11.0592*106*(0+1)/(384*2400))

=244=F4H第二十七页,共五十七页,2022年,8月28日9.2.28051串行口应用一、串行口方式0的应用

方式0时是同步操作,外接串入并出或并入串出器件,可实现I/O的扩展。例:用8031串行口外接CD4049或164串入并出移位寄存器扩展8位并行口;8位并行口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。设发光二极管为共阴极接法,如下图所示:第二十八页,共五十七页,2022年,8月28日解:设数据串行发送采用中断方式,显示的延迟通过调用延迟程序DELAY来实现。

ORG0023H;串行口中断入口

AJMPSBR;转中断服务程序

ORG2000H;主程序起始地址

MOVSCON,#00H;串行口方式0初始化

MOVA,#80H;最左一位二极管先亮

CLRP1.0;关闭并行输出

MOVSBUF,A;开始串行输出

LOOP:SJMPLOOP;等待中断

SBR:SETBP1.0;启动并行输出

ACALLDELAY;显示延时一段时间

CLRTI;清发送中断

RRA;准备右边一位显示

CLRP1.0;关闭并行输出

MOVSBUF,A;再一次串行输出

RETI;中断返回第二十九页,共五十七页,2022年,8月28日例、用8051串行口外加移位寄存器CD4014(或165、166)扩展8位输入口,输入数据右8位开关提供,另有一个开关K提供联络信号。当K=0时,表示要求输入数据,输入的8位为开关量,提供逻辑模拟子程序的输入信号,如下图所示:第三十页,共五十七页,2022年,8月28日解:串行口方式0的接收要用SCON寄存器中的REN位作为开关来控制。因此,初始化时,除了设置工作方式之外,还要使REN位为1,其余各位仍然为0

对RI采用查询方式来编写程序,当然,先要查询开关K是否闭合。

START:JBP1.1,START;开关未闭合等待

SETBP1.0;并行置入数据

CLRP1.0;准备串行移位输入

MOVSCON,#10H;方式0,REN为1启动接收

JNBRI,$;查询RICLRRI;查询结束,清RIMOVA,SBUF;读数据到累加器

ACALLLOGSIM;进行逻辑模拟

SJMPSTART;准备下一次模拟第三十一页,共五十七页,2022年,8月28日例:串口控制的键盘/显示器接口。静态显示方式。采用共阳极LED。接口电路如图所示:第三十二页,共五十七页,2022年,8月28日第三十三页,共五十七页,2022年,8月28日键盘扫描和显示子程序:显示缓冲区58H~5FH(8位),60H存缓冲区指针初值58HKEY: MOV A,#00H MOV SBUF,AKL0: JNB TI,KL0;等待8位数据发送完

CLR TIKL1: JNB P1.0,PK1;第一行有键按下,转

JB P1.1,KL1;第二行无键按下,转扫描PK1: ACALL D10MS JNB P1.0,PK2;第一行有键按下,转

JB P1.1,KL1;第一、二行无键按下,转扫描PK2: MOV R7,#08H;有按键,逐列扫描

MOV R6,#0FEH;选中0列

MOV R3,#00H;记列号PL5: MOV A,R6;使某一列为低

MOV SBUF,A;KL2: JNB TI,KL2 CLR TI JNB P1.0,PK4;是第一行有按键,转

JNB P1.1,PK5;是第二行有按键,转

MOV A,R6;不是本列,继续

RL A MOV R6,A INC R3 ;列号加1 DJNZ R7,PL5;未到8列,转

RET ;扫描8列未找到,退出第三十四页,共五十七页,2022年,8月28日PK5: MOV R4,#08H;送第二行行首初值

AJMP PK3 ;转键处理PK4: MOV R4,#00H;送第一行行首初值PK3: MOV A,#00H;等待释放键

MOV SBUF,AKL3: JNB TI,KL0;等待8位数据发送完

CLR TIKL4: JNB P1.0,KL4;

JNB P1.1,KL4;

MOV A,R4;取键号

ADD A,R3 SUBB A,#0AH;是命令键吗?

JNC KL6 ;是,转命令键处理

MOV DPTR,#TABL;字形码表初值送DPTR ADD A,#0AH;恢复键号

MOVC A,@A+DPTR MOV R0,60H;取显示缓冲区指针

MOV @R0,A;存字形码

INC R0 CJNE R0,#60H,KD;不到显示缓冲区末,转

MOV 60H,#58H;缓冲区首址送60H SJMP KD1KD: MOV 60H,R0KD1: ACALL LED RET第三十五页,共五十七页,2022年,8月28日KL6: MOV B,#03H MUL AB MOV DPTR,#KTAB JMP @A+DPTRKTAB: LJMP K1 LJMP K3 ……TABL:DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HLED: SETB P1.2;开放显示器控制

MOV R7,#08H MOV R0,#58HLED1: MOV A,@R0 MOV SBUF,ALED2: JNB TI,LED2 CLR TI INC R0 DJNZ R7,LED1 CLR P1.2 ;各位送完,关闭控制

RET第三十六页,共五十七页,2022年,8月28日二、串行口方式1的发送和接收例、8031串行口按双工方式收发ASCII字符,最高位用来作为奇偶校验位,采用奇校验方式,要求传送的波特率为1200B/S,编写有关的通信程序。解:7位ASCII码加1位奇偶校验共8位,故可采用串行口方式1。发送缓冲区首址为20H,接收缓冲区首址为40H,频率为6MHZ。主程序:

MOVTMOD,#20H;定时器1设为模式2MOVTL1,#0F3H;定时器初值

MOVTH1,#0F3H;8位重装值

SETBTR1;启动定时器1MOVSCON,#50H;将串行口置为方式1,REN=1第三十七页,共五十七页,2022年,8月28日

MOVR0,#20H;发送数据区首地址

MOVR1,#40H;接收数据区首地址

ACALLSOUT;先输出一个字符

SETBESSETBEALOOP:SJMPLOOP;等待中断中断服务程序:

ORG0023H;中断入口

AJMPSBR1;转服务程序

ORG0100H;SBR1:JNBRI,SEND;RI=0即TI=1为发送中断

ACALLSIN;RI=1为接收中断

SJMPNEXT;转至统一出口SEND:ACALLSOUT;调发送子程序NEXT:RETI;中断返回第三十八页,共五十七页,2022年,8月28日发送子程序:SOUT:CLRTIMOVA,@R0;取发送数据到AMOVC,P;奇偶标志到CCPLC;奇校验

MOVACC.7,C;加到ASCII码高位

INCR0;修改发送数据指针

MOVABUF,A;发送ASCIIRET;返回接收子程序:SIN:CLRRI;

MOVA,SBUF;读出接收缓冲区内容

MOVC,P;取出校验位

CPLC;奇校验

ANLA,#7FH;删除校验位

MOV@R1,A;读入接收缓冲区

INCR1;修改接收数据指针

RET;返回第三十九页,共五十七页,2022年,8月28日三、串行口方式2、3的发送和接收

方式2与3基本一样(只是波特率设置不同),接收/发送11位信息:开始为1位起始位(0),中间9位数据,最后是一位停止位(1)。例、用第9个数据位作奇偶校验位,编制串行口方式2的发送程序。解:设计一个发送程序,将片内RAM50H~5FH中的数据串行发送,串行口设定为方式2,TB8作奇偶校验位,采用偶校验,在数据写入发送缓冲器之前,先将数据的奇偶位P写入TB8。第四十页,共五十七页,2022年,8月28日程序清单如下:TRT:MOVSCON,#80H;方式2设定

MOVPCON,#80;取波特率为fosc/32MOVR0,#50H;首地址50H送R0MOVR7,#10H;数据长度10H送R7LOOP:MOVA,@R0;取数据到AMOVC,PSW.0;取P到TB8MOVTB8,C;

MOVSBUF,A;数据送SBUF,启动发送WAIT:JBCTI,CONT;判断发送中断标志

SJMPWAITCONT:INCR0DJNZR7,LOOPRET

第四十一页,共五十七页,2022年,8月28日例9-11:编制一个接收程序,将接收的16B数据送入片内RAM的50H~5FH单元中。设串行口工作于方式3,波特率为2400B/S。解:方式3为11位异步通讯方式,波特率取决于T1的溢出率。查表9-2可知,当晶振为11.059MHZ,波特率为2400B/S时,可取SMOD=0,T1的计数初值为F4H。程序为:

MAIN:MOVTMOD,#20H;设T1工作于方式2MOVTH1,#0F4;赋循环计数初值

MOVTL1,#0F4;赋计数值

SETBTR1;启动定时器1MOVR0,#50H;首地址送R0MOVR7,#10H;数据长度送R7MOVSCON,#0D0H;串口方式3,可接收

MOVPCON,#00H;设SMOD=0第四十二页,共五十七页,2022年,8月28日WAIT:JBCRI,PR1;接收完一帧数据清RI,转PR1SJMPWAIT;否则等待PR1:MOVA,SBUF;读入数据

JNBP,PNP;P=0转PNPJNBRB8,PER;P=1,RB8=0,转出错处理

SJMPRIGHTPNP:JBRB8,PER;P=0,RB8=1,转出错处理RIGHT:MOV@R0,A;数据送内存

INCR0;修改地址指针

DJNZR7,WAIT;数据未接收完继续

CLRPSW.5;置正确接收完标志F0=0RET;PER:SETBPSW.5RET第四十三页,共五十七页,2022年,8月28日9.3RS-232C标准接口总线及串行通信硬件设计

在实现计算机与计算机、计算机与外设间的串行通信时,通常采用标准通信接口。这样就能很方便地把各种计算机、外部设备、测量仪器等有机地连接起来,进行串行通信。RS-232C是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广的标准总线。它包括了按位串行传输的电气和机械方式的规定,适用于短距离或带调制解调器的通信场合。9.3.1RS-232C标准接口总线

RS-232C接口的具体规定如下:第四十四页,共五十七页,2022年,8月28日(1)范围

RS-232C标准适用于DCE(数据电路终端设备)和DTE(数据终端设备)间的串行二进制通信,最高的数据速率为19.2Kb/s。如果不增加其它设备,RS-232C标准的电缆长度最大为15米。(2)RS-232C的信号特征由于RS-232C是在TTL集成电路之前研制的,所以它的电平不是+5V和地,而是采用负逻辑,规定+3V~+15V之间的任意电压表示逻辑0电平,-3V~-15V之间的任意电压表示逻辑1电平。(3)RS-232C的接口信号及引脚说明第四十五页,共五十七页,2022年,8月28日引脚信号名功能说明信号方向对DTE对DCE1*GND保护地X2*TXD发送数据出入3*RXD接收数据入出4*RTS请求发送出入5*CTS允许发送入出6*DSR数据设备(DCE)准备就绪入出7*SGND信号地(公共回路)XX8*DCD接收线路信号检测入出9、10未用,为测试保留11空12辅信道接收线路信号检测第四十六页,共五十七页,2022年,8月28日引脚信号名功能说明对DTE对DCE13辅信道允许发送14辅信道发送数据15*发送信号码元定时(DCE为源)16辅信道接收数据17*接收信号码元定时18空19辅信道请求发送20*DTR数据终端(DTE)准备就绪出入21*信号质量检测22*振铃指示23*数据信号速率选择24*发送信号码元定时(DTE为源)25空第四十七页,共五十七页,2022年,8月28日

温馨提示

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

评论

0/150

提交评论