1、2022-12-1第7章串口通信第第7章串口通信章串口通信第7章串口通信并行通信:并行通信:传送的数据的各位同时发送,并排传输,同时被接收。传送的数据的各位同时发送,并排传输,同时被接收。控制简单、控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。在困难。引言引言 串行通信串行通信传送数据的各位按分时顺序一位一位地传送(即一位一位的发送和接传送数据的各位按分时顺序一位一位地传送(即一位一位的发送和接收)。收)。特点特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,:传输线
2、少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。但数据的传送控制比并行通信复杂。八个人站成一排一起通过八个人站成一排一起通过八个人站成一纵队一一通过八个人站成一纵队一一通过第7章串口通信7.1.1 7.1.1 串行通信的基本概念串行通信的基本概念 一、异步通信与同步通信一、异步通信与同步通信1、异步通信、异步通信 异步通信异步通信是指通信的是指通信的发送与接收设备使用各自的时钟发送与接收设备使用各自的时钟控制数据的发送和接收过程。控制数据的发送和接收过程。以帧作为传送单位,每一以帧作为传送单位,每一帧由起始位、数据位、校验位和停止位组成,结构如图。帧由起始
3、位、数据位、校验位和停止位组成,结构如图。第7章串口通信2.同步方式同步方式 同步方式仅在开始用若干字符作为同步号令开始用若干字符作为同步号令,然后连续发送数据,如图所示。由于没有在每一个字符中,配置起始、停止位,所以结构紧凑,传输效率高、速度快,其组成如下图所示:同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。例如例如IIC通信,通信,SPI通信等通信等第7章串口通信二、
4、串行通信的传输方向二、串行通信的传输方向1、单工、单工单工单工是指数据传输仅能沿是指数据传输仅能沿一个方向一个方向,不能实现反向传输。,不能实现反向传输。2、半双工、半双工半双工半双工是指数据传输可以沿是指数据传输可以沿两个方向两个方向,但需要分时进行。,但需要分时进行。3、全双工、全双工全双工全双工是指数据可以是指数据可以同时进行双向同时进行双向传输。传输。单工 半双工半双工 全双工全双工第7章串口通信四、串行通信的错误校验四、串行通信的错误校验 1、奇偶校验奇偶校验在发送数据时,数据位尾随的在发送数据时,数据位尾随的1位为奇偶校验位(位为奇偶校验位(1或或0)。奇)。奇校验时,数据中校验时
5、,数据中“1”的个数与校验位的个数与校验位“1”的个数之和应为奇的个数之和应为奇数;偶校验时,数据中数;偶校验时,数据中“1”的个数与校验位的个数与校验位“1”的个数之和的个数之和应为偶数。接收字符时,对应为偶数。接收字符时,对“1”的个数进行校验,若发现不的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。一致,则说明传输数据过程中出现了差错。3、循环冗余校验循环冗余校验2、代码和校验代码和校验送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比
6、较,相符则无差错,否则即认为传送过程中出现了差错。第7章串口通信五、传输速率与传输距离五、传输速率与传输距离 1、传输速率、传输速率波特率波特率bps(bit per second)定义定义:每秒传输数据的位数,即:每秒传输数据的位数,即:1波特波特=1位位/秒(秒(1bps)如每秒钟传送如每秒钟传送240个字符,而每个字符格式包含个字符,而每个字符格式包含10位位(1个起始位、个起始位、1个停止位、个停止位、8个数据位个数据位)10位位240个个/秒秒=2400 bps 相互通信的甲乙双方必须具有相同的波特率,否则无法成功相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信
7、。地完成串行数据通信。第7章串口通信7.2 80C51的串行口的串行口 有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUF,它们占用,它们占用同一地址同一地址99H;接收器是双缓冲结构;接收器是双缓冲结构;发送缓冲器;发送缓冲器1个,个,因为发送时因为发送时CPU是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。7.2.1 7.2.1 80C51串行口的结构串行口的结构 第7章串口通信数据缓冲器数据缓冲器SBUF 发送数据发送数据 通过指令MOV SBUF,A将数据写入SBUF,然后串口口自动自动将数据按事先设置的方式及速率从TXD(P3.1)端口输出,数据发送
8、完毕,串口向CPU申请中断,且通过硬件将TI置1,表示发送已经结束,等待写入第二帧数据。接收数据接收数据 当有数据送给单片机串口时,串口按事先设置的方式及速率自动从自动从端口RXD(P3.0)接收数据,数据校验正确后送SBUF,一帧数据接收完毕 RI=1,串口向CPU请求中断且表示接收已经结束。单片机只要通过执行:MOV A,SBUF 第7章串口通信 串行口的控制寄存器串行口的控制寄存器 MCS-51MCS-51的串行口有的串行口有四种四种工作方式,用户可以通过对串行工作方式,用户可以通过对串行控制寄存器控制寄存器SCONSCON编程来设定。此外,还有波特率控制寄存器编程来设定。此外,还有波特
9、率控制寄存器PCONPCON,必须详细了解这些特殊功能寄存器,才能正确应用串,必须详细了解这些特殊功能寄存器,才能正确应用串行通信接口。行通信接口。1 1串行口控制寄存器串行口控制寄存器SCONSCON 特殊功能寄存器特殊功能寄存器SCONSCON的地址为的地址为98H98H,具有位地址,可,具有位地址,可位位寻址寻址,复位时为,复位时为00H00H,其格式如下:,其格式如下:SM0SM0、SM1SM1:串行口的方式选择位,见表:串行口的方式选择位,见表7-17-1。第7章串口通信 SM2SM2:方式:方式2 2和方式和方式3 3的多机通信控制位;的多机通信控制位;RENREN:允许串行接收位
10、。:允许串行接收位。TB8TB8:在方式:在方式2 2和方式和方式3 3中,发送的第中,发送的第9 9位数据,需要时由软件置位数据,需要时由软件置位或复位。位或复位。RB8RB8:在方式:在方式2 2和方式和方式3 3中,接收到的第中,接收到的第9 9位数据;位数据;在方式在方式1 1时,时,RB8RB8是接收到的停止位;在方式是接收到的停止位;在方式0 0,不使用,不使用RB8RB8。TITI:发送中断标志。:发送中断标志。TI必须由软件清必须由软件清“0”RIRI:接收中断标志,:接收中断标志,RIRI必须由软件清必须由软件清“0”0”。第7章串口通信PCON中只有一位中只有一位SMOD与
11、串行口工作有关与串行口工作有关:SMOD(PCON.7)波特率倍增位。在串行口方式波特率倍增位。在串行口方式1、方式方式2、方式、方式3时,波特率与时,波特率与SMOD有关,当有关,当SMOD=1时,时,波特率提高一倍。复位时,波特率提高一倍。复位时,SMOD=0。PCON的其他的其他位为掉电方式控制位,详见位为掉电方式控制位,详见2.8节节第7章串口通信 6.2.3 6.2.3 80C51串行口的工作方式串行口的工作方式 一、方式一、方式0:串口扩展为并口:串口扩展为并口1)波特率固定为波特率固定为 发送发送位数据等于一个机器周期。位数据等于一个机器周期。2)不论是发送还是接收,数据都是从不
12、论是发送还是接收,数据都是从RXD(P3.0)端出入。端出入。TXD端而作为同步移位脉冲输出端。端而作为同步移位脉冲输出端。3)工作于方式工作于方式0时,可将串行接口扩展为并行接口。时,可将串行接口扩展为并行接口。1、方式、方式0输出输出第7章串口通信 2、方式、方式0输入输入 方式方式0接收和发送电路接收和发送电路第7章串口通信一、方式一、方式0必须注意必须注意:在:在接收接收时,除了设置时,除了设置SCONSCON控制字为控制字为方式方式0 0外,还应设置允许接收控制位外,还应设置允许接收控制位RENREN为为“1”1”,清除,清除RIRI中断标志,才能启动接收器工作。中断标志,才能启动接
13、收器工作。方式方式0 0工作时,必须使工作时,必须使SCONSCON控制字的控制字的SM2SM2位(多机通信位(多机通信控制位)控制位)为为“0 0”,从而不影响,从而不影响TB8TB8和和RB8RB8位。由于位。由于波特率固定波特率固定,故无需用定时器提供。但以中断方式,故无需用定时器提供。但以中断方式传输数据时,传输数据时,CPUCPU响应中断响应中断不会自动清除不会自动清除TITI、RIRI标标志志,所以在中断服务程序中,必须由指令将,所以在中断服务程序中,必须由指令将TITI、RIRI清清“0”0”。第7章串口通信 二、方式二、方式1:8位异步通信位异步通信接口接口 方式方式1是是10
14、位数据的异步通信口。位数据的异步通信口。TXD为数据发送引脚,为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,位起始位,8位数据位(低位在前),位数据位(低位在前),1位停止位。位停止位。1、方式、方式1输出输出第7章串口通信 2、方式、方式1输入输入第7章串口通信(1 1)发送:)发送:CPUCPU向发送缓冲器向发送缓冲器SBUFSBUF写入一个数据后,便启动串行写入一个数据后,便启动串行口在口在TXDTXD端输出帧信息,先发送起始位端输出帧信息,先发送起始位“0”0”,接着从,接着从低位低位开始开始依次输出依
15、次输出8 8位数据,最后输出停止位。发送完一帧信息后,发位数据,最后输出停止位。发送完一帧信息后,发送中断标志送中断标志TITI置置“1”1”,向,向CPUCPU请求中断。请求中断。(2 2)接收:)接收:当当允许接收位允许接收位RENREN置置“1”1”后,接收器便采样后,接收器便采样RXDRXD端电端电平,平,当采样到当采样到“1”1”到到“0”0”的跳变时,启动接收器接收。计数的跳变时,启动接收器接收。计数器的器的1616个状态把个状态把1 1位时间等分成位时间等分成1616份,并在第份,并在第7 7、8 8、9 9个计数状个计数状态时,采样态时,采样RXDRXD电平。因此,每一位的数值
16、采样三次,取其中电平。因此,每一位的数值采样三次,取其中至少有两次相同的值为确认值。启动后,如果三次采样的确认至少有两次相同的值为确认值。启动后,如果三次采样的确认值不是值不是“0”0”,则起始位无效,复位接收电路重新检测。如果,则起始位无效,复位接收电路重新检测。如果确认值为确认值为“0”0”,起始位有效,则开始按从,起始位有效,则开始按从低位到高位低位到高位的顺序的顺序接收一帧的数据信息。接收一帧的数据信息。必须注意必须注意,在,在方式方式1 1接收中接收中设置有设置有数据辨识功数据辨识功能:只有同时满能:只有同时满足以下两个条件时,接收到的数据才有效,才会将数据装入足以下两个条件时,接收
17、到的数据才有效,才会将数据装入SBUFSBUF,并置,并置RIRI为为“1”1”,向,向CPUCPU请求中断;否则,所接收的数据请求中断;否则,所接收的数据帧无效。当帧无效。当SM2=1SM2=1时,接收到的停止位时,接收到的停止位“1”1”装入装入RB8RB8中。中。RI=0 RI=0。接收到停止位为接收到停止位为“1”1”。第7章串口通信 方式方式1 1的特点:的特点:1)波特率可变 串口波特率由定时器T1产生,T1T1工作于方式工作于方式2 2,并决定于T1定时时间,而T1的定时时间决定于装入的时间常数N,因此可根据时间常数N推出波特率,即2)传送数据为8位,连同一位起始位、一位停止位组
18、成一帧,即一帧为10位,发送由TXD输出,接收由RXD输入,可构成全双工的串行通信端口。例:设计波特率为4800b/s,晶振频率为11.0592MHz,定时器T1工作在方式2,SMOD0,则计数器初值为 。第7章串口通信 三、方式三、方式2和方式和方式3 方式方式2或方式或方式3时为时为11位数据的异步通信口。位数据的异步通信口。TXD为数据发为数据发送引脚,送引脚,RXD为数据接收引脚为数据接收引脚。方式方式2和方式和方式3时起始位时起始位1位,数据位,数据9位(含位(含1位附加的第位附加的第9位,位,发送时为发送时为SCON中的中的TB8,接收时为,接收时为RB8),停止位),停止位1位,
19、一位,一帧数据为帧数据为11位。方式位。方式2的波特率固定为晶振频率的的波特率固定为晶振频率的1/64或或1/32,方式方式3的波特率由定时器的波特率由定时器T1的溢出率决定。的溢出率决定。第7章串口通信 3 3方式方式2 2、方式、方式3 3 串行口工作在串行口工作在方式方式2 2、方式、方式3 3时时,为,为9 9位异步位异步通信口,通信口,1 1帧信息由帧信息由1111位位组成,即组成,即1 1位起始位、位起始位、8 8位数据位数据D0D0D7D7(低位在前)、(低位在前)、1 1位可编程的第位可编程的第9 9位位D8D8(发送时,(发送时,第第9 9位为位为SCONSCON中的中的TB
20、8TB8;接收时,第;接收时,第9 9位为位为SCONSCON中的中的RB8RB8)及)及1 1位停止位,如图位停止位,如图7-7-1010所示。所示。图图7-10 7-10 方式方式2 2、方式、方式3 3数据格式数据格式(1 1)发送:)发送:当当CPUCPU向发送缓冲器向发送缓冲器SBUFSBUF写入一个数据后,便立即启动发送器发送。先发写入一个数据后,便立即启动发送器发送。先发送起始位送起始位“0”0”,接着从低位开始依次输出,接着从低位开始依次输出8 8位数据,再发送位数据,再发送SCONSCON中的中的TB8TB8,最后输出停止,最后输出停止位。发送完一帧信息后,发送中断标志位。发
21、送完一帧信息后,发送中断标志TITI置置“1”1”,向,向CPUCPU请求中断。请求中断。(2 2)接收:)接收:使用与方式使用与方式1 1类似的方法识别起始位。类似的方法识别起始位。必须注意必须注意,方式,方式2 2、方式、方式3 3接接收中也设置有数据辨识功能:只有同时满足以下两个条件时,接收到的数据才有收中也设置有数据辨识功能:只有同时满足以下两个条件时,接收到的数据才有效,才能将接收到的数据装入效,才能将接收到的数据装入SBUFSBUF和和RB8RB8,并置,并置RIRI为为“1”1”;否则,所接收的数据;否则,所接收的数据帧无效。帧无效。RI=0 RI=0。接收到的停止位为接收到的停
22、止位为“1”1”。方式方式2 2、方式、方式3 3的区别的区别:方式:方式2 2的波特率为的波特率为f fosc/32osc/32或或f fosc/64osc/64,而方式,而方式3 3的波特的波特率可变。率可变。第7章串口通信三、串口工作方式三、串口工作方式 2 2、3 3方式方式2 2、3 3的工作性能的工作性能 1)方式2波特率固定,并等于。方式3波特率计算方法同方式1,即等于。2)一帧数据为11位,包括1位起始位、8位数据位、1位可编程位、1位停止位。数据位低位在前高位在后,第9位可编程位发送时从SCON中的TB8取出,接收时第9位存SCON中的RB8。第7章串口通信第四节 串口初始化
23、编程 一、一、计算波特率计算波特率 串口方式0 串口方式1和串口方式3 串口方式2 第7章串口通信第7章串口通信二、对二、对SCON、PCON、TMOD初始化初始化 以设计一8051单片机控制系统为例,设主振频率为12MHz,要求串口发送数据为8位、波特率为1200bps.则初始化步骤为:1.先按波特率要求,计算T1的时间常数N,设SMOD=1。已知主振频率为12MHz,波特率为1200bps.,串口工作于方式1,按式7-2可求得N=203.920CCH 2.写出初始化程序 MOV SCON,#50H ;串行口工作于方式1 MOV PCON,#80H ;SMOD=1,MOV TMOD,#20H
24、 ;T1工作方式2定时方式MOV THl,#0CCH ;设置时间常间为N MOV TLl,#0CCH ;自动装入时间常数SETB TR1;启动T1返回本章首页第7章串口通信【例7-1】电路如图所示,试编制程序按下列顺序要求每隔0.5秒循环操作。8个发光二极管全部点亮;从左向右依次暗灭,每次减少一个,直至全灭;从左向右依次点亮,每次亮一个;从右向左依次点亮,每次亮一个;从左向右依次点亮,每次增加一个,直至全部点亮;返回从不断循环。7.3 单片机串行口应用举例单片机串行口应用举例 第7章串口通信第7章串口通信LIGHT:MOV SCON,#00H ;串行口方式串行口方式0 CLR ES ;禁止串行
25、中断禁止串行中断 MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址置发光二极管亮暗控制字表首址LP1:MOV R7,#0 ;置顺序编号置顺序编号0LP2:MOV A,R7 ;读顺序编号读顺序编号 MOVC A,A+DPTR ;读控制字读控制字 CLR P1.0 ;关闭并行输出关闭并行输出 MOV SBUF,A ;启动串行发送启动串行发送 JNB TI,$;等待发送完毕等待发送完毕 CLR TI ;清发送中断标志清发送中断标志 SETB P1.0 ;开启并行输出开启并行输出 LCALL DLY500ms ;调用延时调用延时0.5秒子程序秒子程序 INC R7 ;指向下一控制字指向下一控
26、制字 CJNE R7,#30,LP2;判循环操作完否判循环操作完否?未完继续未完继续 SJMP LP1 ;顺序编号顺序编号029依次操作完毕依次操作完毕,从从0开始重新循环开始重新循环TAB:DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次从左向右依次暗灭暗灭,每次减少一个每次减少一个,直至全灭直至全灭;DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮从左向右依次点亮,每次亮一每次亮一个个DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮从右向左依次点亮,每次亮一个每次亮一个DB 0C
27、0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮从左向右依次点亮,每次增加每次增加一个一个,直至全部点亮直至全部点亮;第7章串口通信【例【例7-27-2】设甲乙机以串行方式设甲乙机以串行方式1 1进行数据传送,进行数据传送,fosc=11.0592MHzfosc=11.0592MHz,波特,波特率为率为1200b/s1200b/s。甲机发送的。甲机发送的1616个数据存在内个数据存在内RAM 40HRAM 40H4FH4FH单元中,乙机接收单元中,乙机接收后存在内后存在内RAM 50HRAM 50H为首地址的区域中。为首地址的区域中。第7章串口通信甲机发送子程序:甲机发
28、送子程序:MOV TMOD,#20H;置置T1定时器工作方式定时器工作方式2MOV TL1,#0E8H;置置T1计数初值计数初值MOV TH1,#0E8H;置置T1计数重装值计数重装值CLR ET1;禁止禁止T1中断中断SETB TR1;T1启动启动MOV SCON,#40H;置串行方式置串行方式1,禁止接收禁止接收MOV PCON,#00H;置置SMOD=0(SMOD不能位操作不能位操作)CLR ES;禁止串行中断禁止串行中断MOV R0,#40H;置发送数据区首地址置发送数据区首地址MOV R2,#16;置发送数据长度置发送数据长度TRSA:MOVA,R0;读一个数据读一个数据MOVSBU
29、F,A;发送发送JNBTI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLRTI;清发送中断标志清发送中断标志INCR0;指向下一字节单元指向下一字节单元DJNZR2,TRSA;判判16个数据发完否个数据发完否?未完继续未完继续RET 第7章串口通信乙机接收子程序:乙机接收子程序:MOV TMOD,#20H;置置T1定时器工作方式定时器工作方式2RXDB:MOV TL1,#0E8H;置置T1计数初值计数初值MOV TH1,#0E8H;置置T1计数重装值计数重装值CLR ET1;禁止禁止T1中断中断SETB TR1;T1启动启动MOV SCON,#40H;置串行方式置串行方式1,禁止接收禁止接
30、收MOV PCON,#00H;置置SMOD=0(SMOD不能位操作不能位操作)CLR ES;禁止串行中断禁止串行中断MOV R0,#50H;置接收数据区首地址置接收数据区首地址MOV R2,#16;置接收数据长度置接收数据长度SETB REN;启动接收启动接收RDSB:JNB RI,$;等待一帧数据接收完毕等待一帧数据接收完毕CLR RI;清接收中断标志清接收中断标志MOV A,SBUF;读接收数据读接收数据MOV R0,A;存接收数据存接收数据INC R0;指向下一数据存储单元指向下一数据存储单元DJNZ R2,RDSB;判判16个数据接收完否个数据接收完否?未完继续未完继续RET ;第7章
31、串口通信 回顾回顾 串行工作方式串行工作方式2 方式方式2是一帧是一帧11位的串行通信方式,即位的串行通信方式,即1个起始位,个起始位,8个数个数据位,据位,1个可编程位个可编程位TB8/RB8和和1个停止位,个停止位,【例【例7-37-3】设计一个串行方式设计一个串行方式2 2发送子程序(发送子程序(SMOD=1SMOD=1),将片内),将片内RAM 50HRAM 50H5FH5FH中的数据串行发送,第中的数据串行发送,第9 9数据位作为奇偶校验位。数据位作为奇偶校验位。接到接收方核对正确的回复信号(用接到接收方核对正确的回复信号(用FFHFFH表示)后,再发送下一表示)后,再发送下一字节数
32、据,否则再重发一遍。字节数据,否则再重发一遍。第7章串口通信MOV SCON,#80H ;置串行方式置串行方式2,禁止接收禁止接收MOV PCON,#80H ;置置SMOD=1MOV R0,#50H;置发送数据区首址置发送数据区首址TRLP:MOV A,R0 ;读数据读数据MOV C,PSW.0 ;奇偶标志送奇偶标志送TB8MOV TB8,C ;MOV SBUF,A ;启动发送启动发送JNB TI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLR TI ;清发送中断标志清发送中断标志SETB REN ;允许接收允许接收CLR RI ;清接收中断标志清接收中断标志JNB RI,$;等待接收回复
33、信号等待接收回复信号MOV A,SBUF ;读回复信号读回复信号CPL A ;回复信号取反回复信号取反JNZ TRLP ;非全非全0(回复信号回复信号FFH,错误错误),转重发转重发INC R0 ;全全0(回复信号回复信号=FFH,正确正确),指向下一数据存储单元指向下一数据存储单元CJNE R0,#60H,TRLP ;判判16个数据发送完否个数据发送完否?未完继续未完继续 RET 第7章串口通信二、多机通信二、多机通信 1、硬件连接、硬件连接 单片机构成的多机系统常采用总线型主从式结构。所谓主从单片机构成的多机系统常采用总线型主从式结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从
34、机,从机式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度、支配。要服从主机的调度、支配。80C51单片机的串行口方式单片机的串行口方式2和方和方式式3适于这种主从式的通信结构。当然采用不同的通信标准时,适于这种主从式的通信结构。当然采用不同的通信标准时,还需进行相应的电平转换,有时还要对信号进行光电隔离。在还需进行相应的电平转换,有时还要对信号进行光电隔离。在实际的多机应用系统中,常采用实际的多机应用系统中,常采用RS-485串行标准总线进行数串行标准总线进行数据传输。据传输。第7章串口通信2、通信协议、通信协议所有从机的所有从机的SM2位置位置1,处于接收地址帧状态。,
35、处于接收地址帧状态。主机发送一地址帧,其中主机发送一地址帧,其中8位是地址,第位是地址,第9位为地址位为地址/数据的区分标志,该位置数据的区分标志,该位置1表示该帧为地址帧。表示该帧为地址帧。所有从机收到地址帧后,都将接收的地址与本机的所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的地址比较。对于地址相符的从机,使自己的SM2位置位置0(以接收主机随后发来的数据帧),并把本站地址(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬。,对主机
36、随后发来的数据帧不予理睬。从机发送数据结束后,要发送一帧校验和,并置第从机发送数据结束后,要发送一帧校验和,并置第9位(位(TB8)为)为1,作为从机数据传送结束的标志。,作为从机数据传送结束的标志。第7章串口通信主机接收数据时先判断数据接收标志(主机接收数据时先判断数据接收标志(RB8),若),若RB8=1,表示数据传送结束,并比较此帧校验和,若,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号正确则回送正确信号00H,此信号命令该从机复位,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送(即重新等待地址帧);若校验和出错,则发送0FFH,命令该从机重发数据。若接收帧的
37、,命令该从机重发数据。若接收帧的RB8=0,则存数据到缓冲区,并准备接收下帧信息。则存数据到缓冲区,并准备接收下帧信息。主机收到从机应答地址后,确认地址是否相符,如主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中果地址不符,发复位信号(数据帧中TB8=1);如果);如果地址相符,则清地址相符,则清TB8,开始发送数据。,开始发送数据。从机收到复位命令后回到监听地址状态(从机收到复位命令后回到监听地址状态(SM2=1)。)。否则开始接收数据和命令。否则开始接收数据和命令。第7章串口通信串行通信电平:串行通信电平:由于由于89C52单片机输入、单片机输入、输出电平为输出
38、电平为TTL电平,而电平,而PC机配置的是机配置的是RS-232C标准串行接口,二者的电气规范不一致。标准串行接口,二者的电气规范不一致。数字值:数字值:1 0TTL电平:电平:+5V 0V232电平:电平:-3V-15V +3V+15V串行通信电平转换:串行通信电平转换:要完成要完成PC机与单片机与单片机的数据通信必须进行电平转换。机的数据通信必须进行电平转换。MAX232单芯片可实现单芯片可实现89C52单片机与单片机与PC机机的的RS-232C之间的电平转换。之间的电平转换。7.5 单片机与单片机与PC机通信的接口电路机通信的接口电路第7章串口通信7.5.1 MAX232芯片简介芯片简介
39、MAX232芯片:芯片:是是MAXIM公司生产的、公司生产的、包含两路接收器和驱动器的包含两路接收器和驱动器的IC芯片,适用于芯片,适用于各种各种EIA-232C和和V.28/V.24的通信接口。的通信接口。MAX232芯片的功能:芯片的功能:MAX232内部有内部有一个电源电压变换器,可以把输入的一个电源电压变换器,可以把输入的+5V电电源电压变换成为源电压变换成为RS-232C输出电平所需的输出电平所需的10V电压。所以,采用此芯片接口的串行电压。所以,采用此芯片接口的串行通信系统只需通信系统只需单一的单一的+5V电源电源就可以了。对就可以了。对于没有于没有12V电源的场合,其适应性更强。电源的场合,其适应性更强。第7章串口通信7.5.1 MAX232芯片简介芯片简介图图7-15 MAX232芯片引脚芯片引脚第7章串口通信7.5.1 MAX232芯片简介芯片简介MAX232原原理理结结构构路路图图2022-12-1第7章串口通信