一主多从设计.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一主多从设计

梁晨 3116301095 用51单片机实现一主多从 一、多机通信原理? 在多机通信中,每台从机均分配有一个从机地址,主机与从机之间进行串行通信时,通常是主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换。而未被呼叫的从机则继续进行各自的工作。可是,如果在主机与某被呼叫从机进行数据交换过程中,其他从机如果不采取相应的数据识别技术,则这些从机就会因为串行通信线上有数据传输而时时被打断,影响正常的工作。利用单片机的串口工作方式2、方式3可以很好解决上述问题。它们的通信方式之一如图1所示。 图1 多机通信结构图 在多机通信过程中,从机首先要解决的是如何识别主机发送的是地址信息还是数据信息。当发送的是地址信息时,各从机都响应串口中断,接收主机下发的一帧地址数据。而当主机发送数据帧时,无关从机可不响应串口中断。解决的方法是:当主机发送一帧地址信息时,应保持这帧数据的第9位为1(即TB8=1)。从机按照工作方式2或工作方式3运行时,将串口寄存器SCON中的控制位SM2置为1,当所接收的一帧数据的第9位为1,所有从机都产生串口中断,接收这一帧地址数据并与各自的从机地址进行比较,以判断主机是否要与本机通信。接收到的地址数据与从机地址相等达到为被呼叫从机,该从机将串口控制寄存器SCON中的控制位SM2清为0,去接收主机发送来的数据帧(数据帧的第9位为0),此时不管接收到的第9位数据是否为1或0,都要产生串口中断,这就保证了主机与被呼叫从机间的正常数据通信。数据通信结束后,该从机又重新将串行口控制寄存器SCON中的控制位SM2置为1,为下一次与主机进行通信做好准备。其他从机则一直在SM2=1下继续自己的工作,不会因为主、从机之间的数据通信而被打断。 多机通信的实现,主要靠主、从机正确地设置与判断多机通信控制位SM2和发送或接收的第9位数据(TB8或RB8)。当主机给从机发送信息时,要根据发送信息的性质来设置TB8,发送地址信号时,设置TB8=1;发送数据或命令时,设置TB8=0。当从机的SM2为1时,该从机只接收地址帧(RB8位为1),对数据帧(RB8位为0)将不予理睬。而当SM2为0时,该从机接收所有发送来的信息。多机通信过程如下: (1)?使所有从机的SM2置1,处于只接收地址帧的状态(即从机复位);? (2)?主机发送一地址帧信息,其中包含8位地址,第9位为地址/数据标志位,第9位置1表示发送的是地址; 从机接收到地址帧后,各自中断CPU,把接收到的地址与本地址作比较;? ?地址相符的从机,使SM2清零以接收主机随后发来的所有信息,对于地址不相符的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬,直到主机发送来新的地址帧;? 主机发送数据或控制信息给被寻址的从机; (6)?被寻址的从机,因SM2=0,可以接收主机发送过来的所有数据,当从机接收数据结束时,置位SM2,返回接收地址帧状态(复位状态);? (7)当主机改为与另外从机联系时,可再发地址帧寻址其从机,而先前被寻址过的从机恢复SM2=1。 二、设计思路 单片机构成的多机系统常采用总线型主从式结构,即在多个单片机中,有一个是主机,其余的都是从机,从机要服从主机的调度、支配。目前广泛使用的串行扩展总线与串行扩展接口主要有I2C总线、SPI串行口,CAN总线、USB总线,本设计使用I2C总线协议。 I2C总线由两根线实现串行同步通信,其中一根是时钟线SCL,一根是数据线SDA。I2C总线一主多从系统配置原理如图1所示。 I2C总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。D7~D1位组成从机的地址。D0位是数据传送方向位,为0时表示主机向从机写数据,为1时表示主机由从机读数据。 再使用MAX487组成RS-485通信网络,RS-485采用平衡发送和差分接受方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。MAX487引脚如图2所示。 图2 MAX487引脚图 采用半双工方式进行通讯,在半双工方式下,允许双方向传输,但它们之间只有一个通信回路,接收和发送不能同时进行,只能分时发送和接收,即甲机发送乙机接收,或者乙机发送甲机接收,因而两机之间只需要一条数据线。此时甲机和乙机均称为收发器。 三、通信协议 通信时,为了处理方便,通信双方应制定相应的协议。本文中主、从机串行口都设为方式3,波特率为1200bps,PCON中的SMOD位都取0,设为12MHz,定时/计数器T1的方式控制字为20H,初值为E6H,主机的SM2位设为0,从机的SM2开始设为1,从机地址从00H-FEH。 主机发送的控制命令: 00H:要求从机接收数据(TB8=0) 01H:要求从机发送数据(

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档