串行接口及其串行通信.ppt

上传人:牧羊曲112 文档编号:5027474 上传时间:2023-05-30 格式:PPT 页数:65 大小:1.03MB
返回 下载 相关 举报
串行接口及其串行通信.ppt_第1页
第1页 / 共65页
串行接口及其串行通信.ppt_第2页
第2页 / 共65页
串行接口及其串行通信.ppt_第3页
第3页 / 共65页
串行接口及其串行通信.ppt_第4页
第4页 / 共65页
串行接口及其串行通信.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《串行接口及其串行通信.ppt》由会员分享,可在线阅读,更多相关《串行接口及其串行通信.ppt(65页珍藏版)》请在三一办公上搜索。

1、1,5.4 MCS-51单片机的串行接口及其串行通信,5.4.1 串行数据通信基础5.4.2 MCS-51串行口及控制寄存器5.4.3 MCS-51串行通信工作方式及应用,习题:6,9,10,15*,2,5.4.1 串行数据通信基础,一、数据通信的概念计算机与计算机或外部设备之间的数据传送数据通信 并行数据通信 同步 串行 异步,3,5.4.1 串行数据通信基础,4,5.4.1 串行数据通信基础,二、串行通信的基本方式(一)异步通信 以字符为传送单位,用起始位和停止位标识每个字符的开始和结束字 符,间隔不固定,只需字符传送时同步即可。异步通信常用格式:字符帧,5,5.4.1 串行数据通信基础,

2、异步通信的双方需要两项约定:1.字符格式:一帧字符位数的规定:数据位,校验位,起始位和停止位。2.波特率(位/秒)和传送速率的规定:例:要求每秒传送120个字符,每帧为10位(数据8位)。解:B=12010=1200波特 每位0.83ms 数据位传送速率=1208=960位/秒,6,5.4.1 串行数据通信基础,(二)同步通信方式,在同步通信中,以一串字符为一个传送单位,字符间不加标识位,在一串字符开始 用同步字符标识。如果发送的数据块之间有时间间隔,则发送同步字符填充,使发送和接收双方同步。,7,5.4.1 串行数据通信基础,三、串行接口功能:(1)发送器:并串数据格式转换,添加标识位和校验

3、位,一帧发送结束,设置结束标志,申请中断。(2)接收器:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。(3)控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。,8,5.4.1 串行数据通信基础,四、串行数据传送方向(通路形式):1、单工通讯:数据单向传送。(1条数据线,单向)2、半双工通讯:数据可分时双向传送。(1条或2条数据线,双向)3、全双工通讯:可同时进行发送和接收。(2条数据线,双向),9,5.4.1 串行数据通信基础,10,5.4.1 串行数据通信基础,五、异步串行通信的信号形式 1、采用

4、数字信号直接传送(适合于近程通信)。在传送过程中不改变原数据代码的波形和频率。这种数据传送方式称之为基带传送方式。通信双方只需用传输线把两端的接口电路直接连起来即可实现。2、采用频率调制法,也叫频带传送方式(适合于远程通信)。远距离直接传输数字信号,信号会发生畸变,因此要把数字信号转变为模拟信号再进行传送。可利用光缆、专用通信电缆或电话线等连接。,11,5.4.1 串行数据通信基础,通常:“1”:1270Hz或2225Hz;“0”:1070Hz或2025Hz。,12,5.4.1 串行数据通信基础,因通信时(有干扰)信号要衰减,所以常采用RS232电平负逻辑,拉开“0”和“1”的电压档次,以免信

5、息出错:,TTL正逻辑:“0”:0 0.8V;“1”:2.4V+5V。TTL电平直接传输距离一般不超过1.5米。,RS-232C(电平转换芯片为MAX232)RS-422RS-485,RS232负逻辑(EIA电平):“0”:+3V+25V;“1”:-3V-25V。最大传输信息的长度为15米。,Electronic Industries Association,电子工业联合会,13,5.4.2 MCS-51串行口及控制寄存器,MCS51系列单片机的串行口是全双工的,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄存器,因此了解其寄存

6、器结构对用户来说是十分重要的。,一、MCS-51串行口寄存器结构,串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0),在接收方式下,串行数据通过引脚RXD(P3.0)进入。由于在接收寄存器之间还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现帧重叠错误,即在下一帧数据来时,前一帧数据还没有读走。,在发送方式下,串行数据通过TXD(P3.1)送出。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路就不需双重缓冲结构,这样可以提高数据发送速度。,16,5.4.2 MCS-51串行口及控制寄存器,串行通信数据格式:按不同方式,一帧

7、数据位数为 8/10/11。发送/接收时,数据皆低位在前。,17,5.4.2 MCS-51串行口及控制寄存器,一帧字符发送/接收结束,置位标志位(TI/RI),并申请串行中断。串行口中断控制:中断允许位ES、总允许EA;串行中断入口:0023H。,18,5.4.2 MCS-51串行口及控制寄存器,二、串行通信控制寄存器 1.数据缓冲器SBUF发送SBUF和接收SBUF共用一个地址99H。1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。发送指令:MOVSBUF,A2)接收SBUF存放已接收成功的8位数据,供CPU读取。读取串行口接收数据指令:MOV A,SBUF,19,5.4.

8、2 MCS-51串行口及控制寄存器,2.电源控制寄存器PCON SMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍;SMOD=0,则不加倍。3.串行口控制/状态寄存器SCON(98H):,SM0、SM1:选择串行口4种工作方式。,21,5.4.2 MCS-51串行口及控制寄存器,SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8:发送的第9位数据位,可用作校验位和地址/数 据标识位。RB8:接收的第9位数据位或停止位。TI:发送中断标志,发送一帧结束,TI=1,必须软 件清零;RI:接收中断标志,接收一帧结束,RI=1

9、,必须软 件清零。,22,5.4.3 MCS-51串行通信工作方式及应用,一)方式0:SM0=0,SM1=0 在方式0下,是把串行口作为同步移位寄存器使用,这时以RXD(P3.0)端作为数据移位的入口和出口,而由TXD(P3.1)端提供移位时钟脉冲.移位数据的发送和接收以8位为一组,低位在前高位在后。1、数据的发送与接收 发送和接收的时序如下图所示:,23,5.4.3 MCS-51串行通信工作方式及应用,(a),使用方式0实现数据的移位输入输出时,实际上是把串行口变成为并行口使用。串行口作为并行口输出使用时,要有“串入并出”的移位寄存器(例如CD4094或74LS164、74HC164等)配合

10、,其电路连接如图524所示。,25,5.4.3 MCS-51串行通信工作方式及应用,发送过程可叙述如下:数据预先写入串行口数据缓冲器,然后从串行口RXD端,在移位时钟脉冲(TXD)的控制下,逐位移入CD4094。当8位数据全部移出后,SCON寄存器的发送中断TI被自动置“1”。其后主程序就可用中断或查询的方法,通过设置STB状态的控制,把CD4094的内容并行输出。,如果把能实现“并入串出”功能的移位寄存器(例如CD4014或74165)与串行口配合使用,就可以把串行口扩展为一个并行输入口使用。其电路如图5-25所示。,数据接收过程如下:首先将并行输入数据写入CD4014,CD4014移出的串

11、行数据经RXD端串行输入到串行口数据缓冲器,同样由TXD端提供移位时钟脉冲。8位数据串行接收需要有允许接收的控制,具体由SCON寄存器的REN位实现。REN=0,禁止接收;REN=1,允许接收。当软件置位REN时,即开始从RXD端输入数据(低位在前),当接收到8位数据时,硬件自动置位接收中断标志RI(由用户通过软件请0)。,2、应用举例 使用CD4094的输出端接8只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并反复循环之。按此要求所做的电路连接如图526所示。,方式0时,移位操作的波特率是固定的,为单片机晶振频率的十二分之一。按此波特率也就是一个机器周期移一位。,MOV

12、SCON,#00H;串行口方式0工作 CLR ES;禁止串行中断 MOV A,#80H;发光管从左边亮起DELR:CLR P1.0;关闭并行输出 MOV SBUF,A;串行输出 JNB TI,;状态查询 SETB P1.0;开启并行输出 ACALL DELAY;状态维持时间 CLR TI;清发送中断标志 RR A;发光组合右移 AJMP DELR;继续,采用查询方式发送数据可编程序如下:,29,5.4.3 MCS-51串行通信工作方式及应用,二)方式1:SM0=1,SM1=0方式1是10位为一帧的异步串行通信方式。共包括1个起始位,8个数据位和1个停止位。其帧格式为:,1、数据的发送与接收,数

13、据发送是由一条写发送缓冲器(SBUF)的指令开始的,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在“1”状态下,并将SCON寄存器的TI置“1”,通知CPU可以接着发送下一个字符。,数据接收时,SCON的REN位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从“1”向“0”的状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把RXD端上的数据逐位移入移位寄存器,当8位数据及停止位全部移入后,根据以下状态,进行相应操作。,如果RI=0、SM2=0,则接收控制器

14、发出装载SBUF信号,将8位数据装入接收数据缓冲器SBUF,停止位装入RB8,并置RI=1,向CPU申请中断。,如果RI=0、SM2=1,那么只有停止位为1才发生上述操作。,如果RI=0、SM2=1且停止位为0、则所接收的数据不装入SBUF,数据将会丢失。,如果RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。,无论出现哪一种情况,位检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。,接收采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断而将前一帧数据取走,造成两帧数据重叠。采用双缓冲结构后,前、后两帧数据进入SBUF的时间间隔有10个

15、机器周期。在后一帧数据送入SBUF之前,CPU有足够时间将前一帧数据取走。,DATA,由于发送、接收双方各自使用自己的时钟,因而两者的频率总有少许差异。为了避免这种影响,数据采样速率采用波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。,2、发送时序和接收时序:,3、波特率设置,假定计数初值为X,则定时器1溢出周期为:,溢出率为溢出周期的倒数。故波特率计算公式为:,当定时器1作波特率发生器使用时,选用定时方式2。之所以选择工作方式2,是因为方式2具有自动加载功能,可以避免通过程序反复装入初值所引起的定时误差,使波特率更加稳定。,方式1的波特率由定时器/计数

16、器的溢出率和SMOD决定,即,方式1波特率=(2SMODT1溢出率)/32,实际使用时,总是先确定波特率,再计算定时器1的计数初值,然后进行定时器的初始化。根据上述波特率计算公式,得出计数初值的计算公式为:,2、应用举例双机通信,单片机间的串行通信通常可分为双机通信和多机通信两类。而串行口工作方式1只能用于双机通信,不能用于多机通信,故作为方式1的应用,这里举一双机通信的例子。又因串行通信的程序设计,一般可采用查询方式或中断方式两种,这里仅以查询方式为例加以说明。,为了确保通信成功、有效,现规定双机异步通信程序“协议”如下:,通信双方均采用系统时钟频率fosc=12MHz,甲机发送数据,乙机接

17、收数据,波特率为2400。通信开始时,甲机发送呼叫信号“06”,询问乙机是否可以接收数据;乙机收到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“15”表示暂不能接收数据;甲机只有收到乙机的应答信号“00”后才可把存放在外部数据存储器的内容发送给乙机,否则继续向乙机呼叫,直到乙机同意接收。其数据格式为:,累加效验和是指字节数n、数据1、数据n这(n+1)个字节内容的算术累加和。,乙机根据接收到的“效验和”判断已接收到的数据是否正确。若接收正确,向甲机发回“0FH”信号,否则发回“F0H”信号给甲机。甲机只有接收到“0FH”信号才算完成发送任务,返回调用的程序,否则继续呼叫,重发数据。

18、,甲机发送程序,发送程序约定:定时器T1初始化为模式2,SMOD=1。,计数初值:,串行口初始化为方式1,允许接收;内部RAM 31H和30H单元存放发送的数据块首地址;R7存放发送的数据块长度;R6为累加和寄存器。,发送程序清单:,MOV TMOD,#20H;T1初始化模式2 MOV TL1,#0E6H;置计数初值 MOV TH1,#0E6H SETB TR1;启动T1 MOV SCON,#50H;串口为方式1,允许接收 MOV PCON,#80H;置SMOD=1FMT-RAM:MOV DPH,31H;置DPTR指针 MOV DPL,30H MOV R7,#2FH;送字节数至R7 MOV R

19、6,#00H;清累加和寄存器 TX-ACK:MOV A,#06H;发呼叫信号 MOV SBUF,A,40,WAIT1:JBC TI,RX-YES;等待发送完 SJMP WAIT1RX-YES:JBC RI,NEXT1;接收乙机回答 SJMP RX-YESNEXT1:MOV A,SBUF;判乙机是否同意接收 CJNE A,#00H,TX-ACK;不同意接收则继续呼叫TX-BYTES:MOV A,R7;同意,发送待发字节个数 MOV SBUF,A ADD A,R6;累加字节个数 MOV R6,A WAIT2:JBC TI,TX-NEWS;字节个数发送完?SJMP WAIT2;没完等待,TX-NEW

20、S:MOVX A,DPTR;发送数据 MOV SBUF,A ADD A,R6;形成累加和 MOV R6,A INC DPTR;数据指针加1WAIT3:JBC TI,NEXT2;等待一帧数据发送完毕 SJMP WAIT3NEXT2:DJNZ R7,TX-NEWS;判数据发送完否?TX-SUM:MOV A,R6;发送完,累加和发送乙机 MOV SBUF,AWAIT4:JBC TI,RX-0FH;累加和发送完否?SJMP WAIT4RX-0FH:JBC RI,IF-0FH;等待乙机回答 SJMP RX-0FHIF-0FH:MOV A,SBUF CJNE A,#0FH,FMT-AM;判传送正确否?RE

21、T;正确返回,乙机接收程序,接收程序的约定:波特率设置初始化,串行口初始化同发送程序。寄存器设置:31H和30H存放接收数据缓冲区首址;R7为数据块长度寄存器:R6为累加和寄存器。向甲机回答信息:0FH为接收正常,F0H为传送出错,00H为同意接收数据。,接收程序清单:,FMT-TS:MOV TMOD,#20H;T1初始化模式2 MOV TL1,#0E6H;置计数初值 MOV TH1,#0E6H SETB TR1;启动T1 MOV SCON,#50H;串行方式1,允许接收 MOV PCON,#80H;SMOD=1,波特率加倍FMT-RAM:MOV DPH,31H;置DPTR地址指针 MOV D

22、PL,30H MOV R6,#00H;效验和寄存器清零RX-ACK:JBC RI,IF-06H;等待接收呼叫信号 SJMP RX-ACKIF-06H:MOV A,SBUF;判呼叫信号有误?CJNE A,#06H,TX-15HTX-00H:MOV A,#00H;向甲机回送同意接收信号 MOV SBUF,A,WAIT1:JBC TI,RX-BYTES;等待回送信号发送完 SJMP WAIT1 TX-15H:MOV A,#15H;向甲机回送接收信号不正确 MOV SBUF,A WAIT2:JBC TI,HAVE1;等待不正确信号发送完 SJMP WAIT2HAVE1:LJMP RX-ACK;返回接收

23、呼叫信号状态RX-BYTES:JBC RI,HAVE2;接收数据块长度 SJMP RX-BYTESHAVE2:MOV A,SBUF;给长度寄存器赋值 MOV R7,A MOV R6,A;形成累加和RX-NEWS:JBC RI,HAVE3;接收数据 SJMP RX-NEWSHAVE3:MOV A,SBUF;接收数据并存入外部RAM中 MOVX DPTR,A,INC DPTR;修改地址指针 ADD A,R6;形成累加和 MOV R6,A DJNZ R7,RX-NEWS;判数据接收完否?RX-SUM:JBC RI,HAVE4;接收效验和 SJMP RX-SUMHAVE4:MOV A,SBUF;判传送

24、是否正确(SBUF)CJNE A,R6,TX-ERR TX-RIGHT:MOV A,#0FH;向甲机应答传送正确 MOV SBUF,AWAIT3:JBC TI,GOOD;正确返回 SJMP WAIT3TX-ERR:MOV A,#0F0H;向甲机应答传送错误 MOV SBUF,AWAIT4:JBC TI,AGAIN SJMP WAIT4AGAIN:LJMP FMT-RAM;返回重新接收数据状态GOOD:RET;返回被调用主程序,3、通信程序的调试及故障排除,串行口通信程序调试,只有当通信双方的硬件和软件都正确无误时,才能实现成功通信。如果调试中出现问题,首先应考虑硬件故障,其表现是:通信线路中的

25、芯片损坏,接触不良等。为了迅速准确查明故障点,可编制一测试小程序,如编一个连续发送字符串“MCS-51Microcomputer”的程序,在该程序中不安排接收对方的回答信息,分别在通信的双方单独运行。程序如下:,TSIO:MOV TMOD,#20H;T1模式2,fosc=11.059MHz MOV TL1,#0E8H;1200波特率 MOV TH1,#0E8H MOV SCON,#042H;串行口方式1,TI=1 SETB TR1;启动T1TS04:MOV R4,#00H;从首字符开始 MOV DPTR,#ASAB;查串行口输出表中字符串TS01:MOV A,R4 MOVC A,A+DPTR

26、JZ TS04;字符串发送完重发,结束符TS03:JBC TI,TS02;为00H SJMP TS03,TS02:MOV SBUF,A;发送串中字符 INC R4;修改表中指针 SJMP TS01ASAB:DB MCS51Microcomputer;字符串表 DB 0AH,0DH,00H,此时用示波器可观察接收方一端(RXD)引脚的信号波形,若观察不到,即可断定此通路存在问题。这时仍用示波器逐一观察各连接点、芯片输入/输出各端点的波形,从而可迅速故障定位。,对于软故障,主要考虑程序的容错性。如前面介绍的收、发程序实例,如果发方比收方先运行程序,则发方将会因等不到收方的回答信号而陷于死循环;而收

27、方因丢失发方发过来的呼叫信号也将陷于等待。解决此类问题的办法是在发送程序中,凡在需等待对方回答的地方,都适当延时,一旦超过一定时间,就返回重新呼叫,直至接通联系为止。,50,5.4.3 MCS-51串行通信工作方式及应用,三)方式2和方式3,在方式2下,字符还是8个数据位,只不过增加了一个第9数据位(D8),而且其功能由用户确定,是一个可编程位。,方式2 方式2是11位为一帧的串行通信方式。,51,5.4.3 MCS-51串行通信工作方式及应用,在发送数据时,应预先在SCON的TB8位中把第9数据位的内容准备好。这可使用如下指令完成:,SETB TB8;TB8位置“1”CLR TB8;TB8位

28、置“0”,发送数据(D0D7)由MOV指令向SBUF写入,而D8位的内容则由硬件电路从TB8中直接送到发送移位寄存器的第9位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置“1”,其它过程与方式1相同。,方式2的接收过程也与方式1基本相似,所不同的只在第9数据位上。,方式2,串行口把接收到的前8个数据位送入SBUF,把第9数据位送入RB8。,方式2的波特率是固定的,且有两种。一种是晶振频率的三十二分之一;另一种是晶振频率的六十四分之一。,方式3,方式3同样是11位为一帧的串行通信方式,其通信过程与方式2完全相同,所不同的仅在于波特率。,方式3的波特率可由用户根据需要设定,其设定方法与方

29、式1相同。,53,方式2和方式3的发送时序和接收时序,54,ORG 1000H AJMP MAINT ORG 0023H;串行口中断入口 AJMP TRANI MAINT:MOV SCON,#80H;串行口方式2 MOV PCON,#80H;波特率加倍 SETB EA SETB ES;开串行口中断 MOV R0,#50H;设数据指针 MOV R7,#10H;数据长度 LOOP:MOV A,R0;取一个字符 MOV C,P;加奇偶校验,方式2、方式3应用举例 异步通信程序设计 将片内RAM 50H起始单元的16个数由串行口发送。要求发送波特率为系统时钟的32分 频,并进行奇偶校验。,MOV TB

30、8,CMOV SBUF,A;启动一次发送HERE:SJMPHERE;CPU执行其它任务TRANI:PUSH ACC;保护现场 PUSH PSW CLR TI;清发送结束标志 DJNZ R7,NEXT;是否发送完?CLR ES;发送完,关闭串行口中断 SJMP TENDNEXT:INC R0;未发送完,修改指针 MOV A,R0;取下一个字符 MOV C,P;加奇偶校验 MOV TB8,C MOV SBUF,A;发送一个字符 POP PSW;恢复现场 POP ACC TEND:RETI;中断返回,接收程序:串行输入16个字符,进行奇偶校验。ORG 2000HRECS::MOV SCON,#D0H

31、;串行口方式3允许接收 MOV TMOD,#20H;T1方式2定时 MOV TL1,#0F4H;写入T1 时间常数 MOV TH1,#0F4H SETB TR1;启动T1 MOV R0,#50H;设数据指针 MOV R7,#10H;接收数据长度WAIT:JBC RI,NEXT;等待串行口接收 SJMP WAITNEXT:MOV A,SBUF;取一个接收字符 JNB P,COMP JNB RB8,ERR;PRB8,数据出错,SJMP RIGHT;P=RB8,数据正确COMP:JB RB8,ERRRIGHT:MOV R0,A;保存一个字符 CLR RI INC R0;修改指针 DJNZ R7,WA

32、IT;全部字符接收完?CLR F0;F0=0,接收数据全部正确ERR:SETB F0;F0=1,接收数据出错RET,方式2、方式3应用举例之主从式多机通信,在主从式多机通信中,只有一台主机,但从机可以有多台。主机发送的信息可以传送到各个从机或指定的从机,从机发送的信息只能为主机接收,各从机之间不能直接通信。,*MCS51应用于多机通信时必须在方式2或方式3下工作。,在主从式多机通信系统中,主机发出的信息有两类,而且具有特征,能够有所区分。一类是地址,用来确定要和主机通信的从机,特征是串行传送的第9位数据为1;另一类是数据,特征是串行传送的第9位数据为0。对从机来说,要利用SCON寄存器中的SM

33、2位的控制功能。在接收时,若RI=0,则只要SM2=1,接收总能实现;而若SM2=0,则接收的第9位必须为0,接收才能成功。因此,从机的初始状态应设置SM2=1,以便接收主机发来的地址(第9位TB8=1),从而确定主机是否打算和自己通信,一经确认后,从机应使SM2=0,以便接收接下来主机发来的数据(第9位TB8=0)。,主机的SM2=0,所有从机的SM2=1,以便接收主机发来的地址。主机给从机发送地址时,第9数据位上发送1,以指示从机接收这个地址。所有从机在SM2=1、RB8=1和RI=0时,接收主机发来的从机地址,进入相应中断服务程序,并和本机地址比较以确认是否为被寻址从机。被寻址从机通过指

34、令清除SM2,以正常接收数据,并向主机发回接收到的从机地址,供主机核对。未被寻址的从机保持SM2=1,并退出各自的中断服务程序。完成主机和被寻址从机之间的数据通信后,被寻址从机重新使SM2=1,并退出中断服务程序,等待下次通信。,主从式多机通信过程可归结如下:,主从多机通信的通信协议。和双机通信一样,主从式多机通信亦存在通信协议问题。一般通信协议都有通用标准,协议较完善,但很复杂。这里仅规定几条很不完善的协议:,MCS51单片机构成的多机通信系统最多允许255台从机,其地址分别为00HFEH。,“地址”FFH是对所有从机都起作用的一条控制命令,命令使被寻址从机恢复SM2=1的状态。,主机首先发

35、送地址帧,被寻址的从机返回本机地址给主机,在判断地址相符后主机给被寻址从机发送控制命令,被寻址从机根据其命令向主机回送自己的状态,若主机判断状态正常,主机开始发送或接收的第一个字节是数据块的长度。,假定主机发送的控制命令代码为:00H主机发送从机接收命令;01H从机发送主机接收命令;其它为非法命令。,从机状态字格式为:,其中:ERR=1,从机接收到非法命令;TRDY=1,从机发送准备就绪;RRDY=1,从机接收准备就绪。,通信程序包括主机程序和从机程序两部分。,主机程序,主机主程序用于定时器T1初始化,串行口初始化和传递主机通信子程序所需入口参数。,主机通信子程序用于主机和从机间一个数据块的传送。,65,5.4.3 MCS-51串行通信工作方式及应用,程序自阅,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号