网站大量收购闲置独家精品文档,联系QQ:2885784924

《单片机原理及应用》课件1第8章.ppt

  1. 1、本文档共123页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

图8-23多机全双工通信系统的连接方式1.多机通信原理在多机通信中,要保证主机与从机之间可靠的通信,必须保证通信接口具有识别功能,而串行口控制寄存器SCON中的控制位SM2就是用于这一功能的。当SM2置位时(此时串口工作在方式2或方式3),每一帧信息是11位,其中第9位为可编程位,通过TB8进行设置,用以区别发送的是地址帧还是数据帧(规定地址帧的第9位为1,数据帧的第9位为0)。从机的SM2如果已经设置为1,那么只有接收到地址帧时,才会把数据装入SBUF,并且置位RI,申请中断;如果收到的是数据帧,则数据将被抛弃,不置位RI。从机的SM2如果为0,则不论接收到的是地址帧还是数据帧,都将接收,把数据装载入SBUF,并且置位RI,申请中断。由此,我们可以对多机通信过程做出如下的原则规定:?使所有从机的SM2位置1,处于只接收地址帧的状态。?主机发送一帧地址信息,对要通信的从机进行寻址。第9位为1,表示发送的是地址信息。?因为各从机的SM2为1,所以都可以接收到这个地址信息,产生中断,将接收到的地址与本机地址进行比较,确定是否被寻址。?被寻址的主机将清除SM2,并且向主机发出应答信号;未被寻址的主机维持SM2为1不变,对于后面总线上的数据信息将不予理会。?主机接收到应答信号并核对应答正确后,即确认已经找到寻址目标,然后发出控制命令,通知从机接收还是发送数据。这些信息都要清除TB8为0,表示是数据而不是重新寻址。?从机收到主机发送的控制命令后,要返回一个状态信息,表明后面的操作是否已经准备就绪。?主机收到从机的状态信息后,可以判定是否已经开始数据的传输。?当主机与目标从机的传输任务已经结束,主机要改为与其它从机联系时,可再次发出地址帧以寻址其对应从机。而先前已经被寻址的从机在接收到新的地址帧后,即恢复SM2=1,对随后主机发送的数据帧不予理会,从而进入另一次通信过程。2.多机通信软件协议一般的通信协议都有通用标准,协议较完善,但也很复杂。这里仅给出一种常用的协议格式。协议格式如下:?系统中允许有255台从机,其地址分别为00H~FEH。?地址FFH是对所有从机都起作用的一条控制命令,命令各从机恢复SM2=1状态。?主机和从机的联络过程为:主机首先发送地址帧,被寻址从机返回本机地址给主机,在判断地址相符后,主机给被寻址从机发送控制命令,被寻址从机根据其命令向主机回送自己的状态,若主机判断状态正常,则主机开始发送或接收数据,发送或接收的第一个字节是数据块长度。?假定主机发送的控制命令代码为:00H:要求从机接收数据块。01H:要求从机发送数据块。其它:非法命令。?从机状态字格式如图8-24所示。图8-24从机状态字格式图中:ERR?=?1,表示从机接收到非法命令。TRDY?=?1,表示从机发送准备就绪。RRDY?=?1,表示从机接收准备就绪。3.多机通信编程实例多机通信系统中有一台主机和3台从机,均为51系列单片机系统。现在要求主机循环从3台从机依次读16个字节的采集数据,然后由主机对接收到的数据作出处理。电路如图8-23所示,取其中的前3台从机,地址编号分别为00H、01H、02H,使用上面介绍的协议。所有系统使用的fosc?=?11.0592MHz,波特率为4800b/s,SMOD为1,串口工作于方式3,T1工作于定时器方式2,初始值计算得F4H。主机通信流程如图8-25所示。图8-25多机通信主机程序流程图主机通信程序源代码如下:STATION EQU 03H ;从机数目RESET EQU 0FFH ;复位命令ERR EQU 7TRDY EQU 1RRDY EQU 0SENDCOMM EQU 01H ;要求从机发送命令RECECOMM EQU 00H ;要求从机接收命令BUFF EQU 60H ;接收缓冲区地址BUFFLEN EQU 10H ;接收缓冲区长度 ORG0000H LJMPSTART ;ORG0023H ;没有使用串口中断 ;LJMPSERI_ISR ; ORG0100HSTART: MOVSP,#30H MOVTMOD,#20H ;T1定时器模式2 MOVTL1,#0F4H ;对应波特率为4800b/s MOVTH

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档