单片机-第八章-串行通信技术解析_第1页
单片机-第八章-串行通信技术解析_第2页
单片机-第八章-串行通信技术解析_第3页
单片机-第八章-串行通信技术解析_第4页
单片机-第八章-串行通信技术解析_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 8.1 串行通信基本知识 8.1.1 数据通信数据通信 通信方式有两种,即通信方式有两种,即并行通信并行通信和和串行通信串行通信 并行通信并行通信是指数据的各位是指数据的各位同时进行传送同时进行传送(发送或接(发送或接收)的通信方式。其收)的通信方式。其优点优点是传送速度快;是传送速度快;缺点缺点是数是数据有多少位,就需要多少根传送线。据有多少位,就需要多少根传送线。 串行通信串行通信指数据是指数据是一位一位按顺序传送的一位一位按顺序传送的通信方式。通信方式。它的突出它的突出优点优点是只需一对传输线是只需一对传输线(利用电话线就可作利用电话线就可作为传送线为传送线),这样就大大降低了传送成本

2、,特别适用,这样就大大降低了传送成本,特别适用于远距离通信;其于远距离通信;其缺点缺点是传送速度较低。是传送速度较低。8.1.2 串行通信的传输方式 单工单工(或单向或单向)配置,只允许数据向一个方向传送;配置,只允许数据向一个方向传送; 半双工半双工(或半双向或半双向)配置,允许数据向两个方向中的任配置,允许数据向两个方向中的任一方向传送,但每次只能有一个发送,一个接收;一方向传送,但每次只能有一个发送,一个接收; 全双工全双工(全双向全双向)配置,允许同时双向传送数据,因此,配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设全双工配置是一对单向配置,它要求两端的

3、通信设备都具有完整和独立的发送和接收能力。备都具有完整和独立的发送和接收能力。 帧格式,帧格式,一个字符由四部分组成:起始位、数据位、一个字符由四部分组成:起始位、数据位、奇偶校验位和停止位。奇偶校验位和停止位。 起始位(起始位(0):):占用一位,用来通知接收设备一个待占用一位,用来通知接收设备一个待接收的字符开始到达。接收的字符开始到达。 数据位:数据位:58位位数据(规定低位在前,高位在后)数据(规定低位在前,高位在后) 奇偶校验位(奇偶校验位(可省略),也可用来确定一帧中的字可省略),也可用来确定一帧中的字符所代表信息的性质符所代表信息的性质(地址数据等地址数据等)。 停止位(停止位(

4、1)停止位用来表征字符的结束。停止位可停止位用来表征字符的结束。停止位可以是以是1位、位、1.5位或位或2位。接收端收到停止位后,知道位。接收端收到停止位后,知道上一字符已传送完毕上一字符已传送完毕 2. 同步通信同步通信 3. 波特率波特率 波特率的定义波特率的定义是每秒钟传送二进制数码的位数是每秒钟传送二进制数码的位数(亦称亦称比特数比特数),单位是,单位是b/s。 假设假设数据传送速率是数据传送速率是120字符字符/s,而每个字符格式包,而每个字符格式包含含10个代码(个代码(1个起始位、个起始位、1个终止位、个终止位、8个数据位)。个数据位)。这时,传送的波特率为这时,传送的波特率为

5、(10b字符)字符)120字符字符s = 1200 bs 每一位每一位代码的传送时间代码的传送时间Td为为波特率的倒数波特率的倒数。8.2 串行接口的组成和特性串行接口的组成和特性8.2.1 串行口的结构串行口的结构 组成:组成:两个物理上独立的串行数据缓冲寄存两个物理上独立的串行数据缓冲寄存SBUF、发送控、发送控制器、接收控制器、输入移位寄存器和输出控制门。制器、接收控制器、输入移位寄存器和输出控制门。 发送缓冲寄存器发送缓冲寄存器SBUF只能只能写写,不能读;,不能读; 接收缓冲寄存器接收缓冲寄存器SBUF只能只能读读,不能写。,不能写。 两个缓冲寄存器两个缓冲寄存器共用一个地址共用一个

6、地址99H,可以用读,可以用读/写指令区分。写指令区分。 串行串行发送发送时,通过时,通过“MOV SBUF,A”写指令,写入发送写指令,写入发送SBUF(99H),再由,再由TxD一位一位地向外发送;一位一位地向外发送; 串行串行接收接收时,时,RxD一位一位地接收数据,直到收到一个完整一位一位地接收数据,直到收到一个完整的字符数据后通知的字符数据后通知CPU,再通过,再通过“MOV A,SBUF”读指令,读指令,CPU从接收从接收SBUF(99H)读出数据,送到累加器读出数据,送到累加器A中。中。 组成:组成:两个物理上独立的串行数据缓冲寄存两个物理上独立的串行数据缓冲寄存SBUF、发送控

7、、发送控制器、接收控制器、输入移位寄存器和输出控制门。制器、接收控制器、输入移位寄存器和输出控制门。 发送缓冲寄存器发送缓冲寄存器SBUF只能只能写写,不能读;,不能读; 接收缓冲寄存器接收缓冲寄存器SBUF只能只能读读,不能写。,不能写。 两个缓冲寄存器两个缓冲寄存器共用一个地址共用一个地址99H,可以用读,可以用读/写指令区分。写指令区分。 串行串行发送发送时,通过时,通过“MOV SBUF,A”写指令,写入发送写指令,写入发送SBUF(99H),再由,再由TxD一位一位地向外发送;一位一位地向外发送; 串行串行接收接收时,时,RxD一位一位地接收数据,直到收到一个完整一位一位地接收数据,

8、直到收到一个完整的字符数据后通知的字符数据后通知CPU,再通过,再通过“MOV A,SBUF”读指令,读指令,CPU从接收从接收SBUF(99H)读出数据,送到累加器读出数据,送到累加器A中。中。 SM0、SM1:串行口工作方式控制位,两位对应四种工作方式,如下表所示(fosc是晶振频率)。8.2.2 串行口控制器及控制寄存器串行口控制器及控制寄存器1. 串行口控制寄存器串行口控制寄存器SCON(98H)8.3 串行通信接口的工作方式串行通信接口的工作方式8.3.1 工作方式工作方式0当当SMO SMl=00时,串行接口选择工作方式时,串行接口选择工作方式0,为同步移位寄,为同步移位寄存器输入

9、存器输入/输出方式,常用于扩展输出方式,常用于扩展I/O口。串行数据通过口。串行数据通过RXD输入或输出,而输入或输出,而TXD用于输出移位时钟,作为外接部件的同用于输出移位时钟,作为外接部件的同步信号。发送或接收的是步信号。发送或接收的是8位数据位数据(低位在前,高位在后低位在前,高位在后)。 例如:例如: 图图8-6中,串行口外接两个中,串行口外接两个74LSl64,74LSl64的的输出接指示灯输出接指示灯L0L15。欲使欲使 L0L3、L8、L10、L12、L14亮,其余灯暗,程序设计如下:亮,其余灯暗,程序设计如下: LSUB0:MOV SBUF, #0FH ; #00001111B

10、 JNB TI,$ CLR TI MOV SBUF, #055H ; #0101010lB JNB TI,$ CLR TI RET例如: 74LSL66可用于扩展输入口方式方式0输入时,输入时,RXD作为串行数据输入线,作为串行数据输入线,TXD作为移位脉冲作为移位脉冲输出线,输出线,在在BEN = 1,RI=0时启动串行口接收,时启动串行口接收,TXD端输出的端输出的移位脉冲频率为移位脉冲频率为fosc = 12MHz,若,若fosc = 12MHz,移位速率为,移位速率为1s位,经过位,经过8次移位,外部移位寄存器内容移入内部移位寄次移位,外部移位寄存器内容移入内部移位寄存器,并写入存器,

11、并写入SBUF,置位,置位RI,停止移位,完成一个字节的输,停止移位,完成一个字节的输入,入,CPU读读SBUF的内容便得到输入结果。当检测到外部移位的内容便得到输入结果。当检测到外部移位寄存器内容再次有效时寄存器内容再次有效时(设备将数据打入外部移位寄存器,打设备将数据打入外部移位寄存器,打入信号入信号 向向CPU请求中断请求中断),清零,清零RI,启动串行口接收下一个数,启动串行口接收下一个数据。据。8.3.2 工作方式工作方式1 工作方式工作方式1,SM0 SMl= 01,为可变波特率的,为可变波特率的8位异步通信方位异步通信方式。式。 发送数据由发送数据由TXD端输出,接收数据由端输出

12、,接收数据由RXD端输入。端输入。 方式方式1以以10位为一帧传输,设有位为一帧传输,设有1个起始位个起始位(0),8个数据位和个数据位和1个停止位个停止位(1)。其帧格式起始位(。其帧格式起始位(0),),8个数据位和个数据位和1个停止位个停止位(1)。)。 例:例:80C51串行口按双工方式收发串行口按双工方式收发ASCII字符,最高位用来作字符,最高位用来作奇偶校验位,采用奇校验方式,要求传送的波特率为奇偶校验位,采用奇校验方式,要求传送的波特率为1 200 b/s。编写有关的通信程序。编写有关的通信程序。fosc=6Mhz解:解:T1 采用工作方式采用工作方式2,定时初值,定时初值ba

13、udSMODfoscx*384)1( *256主程序主程序 MOV TMOD,#20H ;定时器;定时器1设为工作方式设为工作方式2 MOV TLl,#0F3H ;定时器初值;定时器初值 MOV THl,#0F3H ;8位重装值位重装值 SETB TRl ;启动定时器;启动定时器1 MOV SCON,#50H ;将串行口设置为方式;将串行口设置为方式1,REN=l MOV R0,#20H ;发送数据区首址;发送数据区首址 MOV R1,#40H ;接收数据区首址;接收数据区首址 ACALL SOUT ;先输出一个字符;先输出一个字符 SETB ES SETB EA L00P: SJMP $ ;

14、等待中断;等待中断 中断服务程序中断服务程序 ORG 0023H ;串行口中断入口;串行口中断入口 AJMP SBR1 ;转至中断服务程序;转至中断服务程序 ORG 0100H SBRl: JNB RI,SEND ;TI=1,为发送中断,为发送中断 ACALL SIN ;RI=1,为接收中断,为接收中断 SJMP NEXT ;转至统一的出口;转至统一的出口 SEND:ACALL SOUT ;调用发送子程序;调用发送子程序 NEXT: RETI ; 中断返回中断返回 发送子程序发送子程序 SOUT: CLR TI MOV A,R0 ;取发送数据到;取发送数据到A MOV C, P ;奇偶标志赋予

15、;奇偶标志赋予C CPL C ;奇校验;奇校验 MOV ACC.7, C ;加到;加到ASCII码高位码高位 INC R0 ;修改发送数据指针;修改发送数据指针 MOV SBUF,A ;发送;发送ASCII码码 RET ;返回;返回 接收子程序接收子程序 SIN: CLR RI MOV A, SBUF ;读出接收缓冲区内容;读出接收缓冲区内容 MOV C, P ;取出校验位;取出校验位 CPL C ;奇校验;奇校验 ANL A, #7FH ;删去校验位;删去校验位 MOV R1, A ;读入接收缓冲区;读入接收缓冲区 INC R1 ;修改接收数据指针;修改接收数据指针 RET ;返回;返回 8

16、.3.3 工作方式工作方式2和工作方式和工作方式3 SM1 SM0= 10,串行接口选择工作方式,串行接口选择工作方式2, SM1 SM0= 11,串行接口选择工作方式,串行接口选择工作方式3。 方式方式2或方式或方式3是一个是一个9位的异步串行通信接口,位的异步串行通信接口,TXD为数据发送端,为数据发送端,RXD为数据接收端。为数据接收端。 方式方式2的波特率固定为的波特率固定为fosc/64或或fosc/32, 方式方式3的波特率由定时器的波特率由定时器T1或或T2 (80C52)的溢出率所的溢出率所确定。确定。 方式方式2和方式和方式3以以11位为位为1帧传输,设有帧传输,设有1个起始

17、位个起始位(0),8个数据位,个数据位,1个附加第个附加第9位和位和1个停止位个停止位(1)。 8.4 波特率设计波特率设计 8.4.1 波特率的计算方法波特率的计算方法1. 方式方式0波特率波特率 方式方式0波特率波特率 = fosc 12若振荡器频率若振荡器频率fosc = 12MHz,则波,则波=fosc/12=12MHz/12=1MHz/s,即,即1s移位一次。移位一次。2. 方式方式2波特率波特率 方式方式2波特率波特率 = (2SMOD/64) foscSMOD为为0时,波特率等于振荡器频率的时,波特率等于振荡器频率的1/64;SMOD为为1时,波特率等时,波特率等于振荡器频率的于

18、振荡器频率的1/32。3. 方式方式1和方式和方式3的波特率的波特率串行口方式串行口方式1和方式和方式3的波特率由定时器的波特率由定时器T1或或T2(89C52等单片机等单片机)的溢出的溢出率和率和SMOD所确定。所确定。 8.4.2 波特率的产生波特率的产生 1. 用定时器用定时器T1产生波特率产生波特率 方式方式1和方式和方式3波特率波特率 =(2SMOD/32) (T1溢出率溢出率) 溢出周期溢出周期 =12振荡器频率振荡器频率(256X) 溢出率为溢出周期的倒数,所以有溢出率为溢出周期的倒数,所以有 波特率波特率 = 2SMOD 振荡器频率振荡器频率3212(256X) 定时器定时器T

19、1在工作方式在工作方式2时的初值为时的初值为 X = 256 fosc(SMOD1)/(384波特率波特率)8.5 80C51串行口双机异步通信串行口双机异步通信 RS-232C的信号特性的信号特性(1) 数据线上的信号电平数据线上的信号电平 mark(逻辑逻辑1) = +3+25V space(逻辑逻辑0) = -3-25V(2) 控制和状态线上的信号电平控制和状态线上的信号电平 ON(逻辑逻辑0)= +3+25V(接通接通) OFF(逻辑逻辑1)= -3-25V(断开断开)8.5.2 信号电气特性与电平转换信号电气特性与电平转换(1) 专用电平转换芯片专用电平转换芯片MCl488,MCl4

20、89MAX232管脚说明如下:管脚说明如下:C1+、C1-、C2+、C2- 是外接电容是外接电容端;端;R1IN、R2IN则是则是2路路RS-232C电平电平信号接收输入端;信号接收输入端;R1OUT、R2OUT是是2路转换后的路转换后的TTL电平接收信号输出端,送电平接收信号输出端,送80C51的的RxD接收端;接收端;T1IN、T2IN是是2路路TTL电平发送电平发送输入端,接输入端,接80C51的的TxD发送端;发送端;T1OUT、T2OUT是是2路转换后的路转换后的发送发送RS-232C电平信号输出端,接传电平信号输出端,接传输线;输线;V+经电容接电源十经电容接电源十5V;V-经电容

21、接地。经电容接地。 8.5.3 双机通信双机通信1. 通信双方的约定通信双方的约定(1) 设设A机为发送者,机为发送者,B机为接收者。机为接收者。(2) 当当A机开始发送时,先发一个机开始发送时,先发一个“0AAH”信号,信号,B机收到后回答一个机收到后回答一个“0BBH”,表示同意接收。表示同意接收。(3) 当当A机收到机收到“0BBH”后,开始发送数据,每发送一次求一次后,开始发送数据,每发送一次求一次“校验和校验和”。“校校验和验和”是每发送的一个字节数据是每发送的一个字节数据(或命令代码或命令代码)都累加到一个单元中去,累加过程都累加到一个单元中去,累加过程中发生多次向高位进位中发生多

22、次向高位进位(丢失丢失),最后在累加单元中所剩余的结果。假定数据块长,最后在累加单元中所剩余的结果。假定数据块长度为度为20个字节,数据缓冲区起始地址为个字节,数据缓冲区起始地址为30H,数据块发完后再发送,数据块发完后再发送“校验和校验和”。(4) B机接收数据并将其转存到数据缓冲区,起始地址也为机接收数据并将其转存到数据缓冲区,起始地址也为30H,每接收一次也计,每接收一次也计算一次算一次“校验和校验和”,当接收完一个数据块后,再接收从,当接收完一个数据块后,再接收从A机发来的机发来的“校验和校验和”,并将它与并将它与B机求出的机求出的“校验和校验和”进行比较。若二者相等,说明接收正确,进

23、行比较。若二者相等,说明接收正确,B机回答机回答一个一个“00”;若两者不等,说明接收不正确,;若两者不等,说明接收不正确,B机回答一个机回答一个“FF”,请求重发。,请求重发。(5) 若若A机收到机收到“00”的回答后,结束发送。若收到的答复非零,则将数据重发一的回答后,结束发送。若收到的答复非零,则将数据重发一次。次。(6) 双方均采用串行口方式双方均采用串行口方式1进行串行通信。进行串行通信。 3. 用于用于A机发送的通信子程序机发送的通信子程序 A机发送程序设计如下:机发送程序设计如下: ASEN:MOV TMOD,#20H ;设;设T1为定时方式为定时方式2 MOV THl, #0E

24、8H ;设定波特率为设定波特率为1200bits MOV TLl, #0E8H MOV PCON,#00H SETB TRl ;启动定时器;启动定时器T1 MOV SCON,#50H ;串行口设为方式;串行口设为方式1 ATl: MOV SBUF,#0AAH ;发送联络信号;发送联络信号 AWl: JBC TI, ARl SJMP AWl ;等待发送出去;等待发送出去 AR1: JBC RI,AR2 ;等待;等待B机应答机应答 SJMP ARl AR2: MOV A, SBUF ;接收联络信号;接收联络信号 XRL A, #0BBH JNZ AT1 ;B机未准备好,继续联络机未准备好,继续联络

25、 AT2: MOV R0, #30H ;建立数据块地址指针;建立数据块地址指针 MOV R7, #20H ;数据块长度计数初值;数据块长度计数初值 MOV R6 , #00H ;清校验和寄存器;清校验和寄存器AT3: MOV SBUF,R0 ;发送一个数据字节;发送一个数据字节 MOV A, R6 ADD A, R0 ;求校验和;求校验和 MOV R6, A ;保存校验和;保存校验和 INC R0 ;修改地址指针;修改地址指针 AW2: JBC TI, AT4 SJMP AW2 AT4: DJNZ R7, AT3 ;判数据块发送完否;判数据块发送完否 MOV SBUF,R6 ;发送校验和;发送校验和 AW3: JBC TI, AR3 SJMP AW3 AR3: JBC RI, AR4 ;等待;等待B机应答机应答 SJMP AR3

温馨提示

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

评论

0/150

提交评论