一主多从设计

上传人:小** 文档编号:70888135 上传时间:2019-01-18 格式:DOC 页数:9 大小:212.50KB
返回 下载 相关 举报
一主多从设计_第1页
第1页 / 共9页
一主多从设计_第2页
第2页 / 共9页
一主多从设计_第3页
第3页 / 共9页
一主多从设计_第4页
第4页 / 共9页
一主多从设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《一主多从设计》由会员分享,可在线阅读,更多相关《一主多从设计(9页珍藏版)》请在金锄头文库上搜索。

1、梁晨 3116301095用51单片机实现一主多从一、多机通信原理在多机通信中,每台从机均分配有一个从机地址,主机与从机之间进行串行通信时,通常是主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换。而未被呼叫的从机则继续进行各自的工作。可是,如果在主机与某被呼叫从机进行数据交换过程中,其他从机如果不采取相应的数据识别技术,则这些从机就会因为串行通信线上有数据传输而时时被打断,影响正常的工作。利用单片机的串口工作方式2、方式3可以很好解决上述问题。它们的通信方式之一如图1所示。图1 多机通信结构图在多机通信过程中,从机首先要解决的是如何识别主机发送的是地址信息还是数据信息。当发送的

2、是地址信息时,各从机都响应串口中断,接收主机下发的一帧地址数据。而当主机发送数据帧时,无关从机可不响应串口中断。解决的方法是:当主机发送一帧地址信息时,应保持这帧数据的第9位为1(即TB8=1)。从机按照工作方式2或工作方式3运行时,将串口寄存器SCON中的控制位SM2置为1,当所接收的一帧数据的第9位为1,所有从机都产生串口中断,接收这一帧地址数据并与各自的从机地址进行比较,以判断主机是否要与本机通信。接收到的地址数据与从机地址相等达到为被呼叫从机,该从机将串口控制寄存器SCON中的控制位SM2清为0,去接收主机发送来的数据帧(数据帧的第9位为0),此时不管接收到的第9位数据是否为1或0,都

3、要产生串口中断,这就保证了主机与被呼叫从机间的正常数据通信。数据通信结束后,该从机又重新将串行口控制寄存器SCON中的控制位SM2置为1,为下一次与主机进行通信做好准备。其他从机则一直在SM2=1下继续自己的工作,不会因为主、从机之间的数据通信而被打断。多机通信的实现,主要靠主、从机正确地设置与判断多机通信控制位SM2和发送或接收的第9位数据(TB8或RB8)。当主机给从机发送信息时,要根据发送信息的性质来设置TB8,发送地址信号时,设置TB8=1;发送数据或命令时,设置TB8=0。当从机的SM2为1时,该从机只接收地址帧(RB8位为1),对数据帧(RB8位为0)将不予理睬。而当SM2为0时,

4、该从机接收所有发送来的信息。多机通信过程如下:(1)使所有从机的SM2置1,处于只接收地址帧的状态(即从机复位);(2)主机发送一地址帧信息,其中包含8位地址,第9位为地址/数据标志位,第9位置1表示发送的是地址;(3) 从机接收到地址帧后,各自中断CPU,把接收到的地址与本地址作比较;(4) 地址相符的从机,使SM2清零以接收主机随后发来的所有信息,对于地址不相符的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬,直到主机发送来新的地址帧;(5) 主机发送数据或控制信息给被寻址的从机;(6)被寻址的从机,因SM2=0,可以接收主机发送过来的所有数据,当从机接收数据结束时,置位SM2,

5、返回接收地址帧状态(复位状态);(7)当主机改为与另外从机联系时,可再发地址帧寻址其从机,而先前被寻址过的从机恢复SM2=1。二、设计思路单片机构成的多机系统常采用总线型主从式结构,即在多个单片机中,有一个是主机,其余的都是从机,从机要服从主机的调度、支配。目前广泛使用的串行扩展总线与串行扩展接口主要有IC总线、SPI串行口,CAN总线、USB总线,本设计使用IC总线协议。IC总线由两根线实现串行同步通信,其中一根是时钟线SCL,一根是数据线SDA。IC总线一主多从系统配置原理如图1所示。IC总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。D7D1位组成从机的地址

6、。D0位是数据传送方向位,为0时表示主机向从机写数据,为1时表示主机由从机读数据。再使用MAX487组成RS-485通信网络,RS-485采用平衡发送和差分接受方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。MAX487引脚如图2所示。图2 MAX487引脚图采用半双工方式进行通讯,在半双工方式下,允许双方向传输,但它们之间只有一个通信回路,接收和发送不能同时进行,只能分时发送和接收,即甲机发送乙机接收,或者乙机发送甲机接收,因而两机之间只需要一条数据线。此时甲机和乙机均称为收发器。三、通信协议通信时,为了处理

7、方便,通信双方应制定相应的协议。本文中主、从机串行口都设为方式3,波特率为1200bps,PCON中的SMOD位都取0,设为12MHz,定时/计数器T1的方式控制字为20H,初值为E6H,主机的SM2位设为0,从机的SM2开始设为1,从机地址从00H-FEH。主机发送的控制命令:00H:要求从机接收数据(TB8=0)01H:要求从机发送数据(TB8=)FFH:命令所有从机的SM2位置1,准备接收主机送来的地址(TB8=1)从机发给主机状态格式如图3所示:D7 D6 D5 D4 D3 D2 D1 D0ERRTRDYRRDY图3 状态字格式其中:ERR=1,表示从机接收到非法命令TRDY=1,表示

8、从机发送准备就绪RRDY=1,表示从机接收准备就绪。4、 用proteus绘制电路原理图此电路图仅画出两个从机,不同从机仅仅是本机号不同,具体电路原理图如图4所示。图4 一主多从电路原理图五、用proteus自带的编辑器编写程序主机、00H从机,01H从机程序依次如图5、6、7。图5 主机程序图6 00H从机程序图7 01H从机程序五、模拟仿真通过仿真,验证程序正确无误。六、不足与改进我的这个方案,不能直观的看出数据的接收与传送,如果能加入显示的元器件及程序就更好了。七、程序主机的通信程序MOV TMOD,#20HMOV TL1,#0E6HMOV TH1,#0E6HSETB TR1MOV SP

9、,#4FHMOV R2,#01HMOV R3,#00HMOV R4,#10HMOV R0,#20HLCALL MASTERMOV R2,#02HMOV R3,#01HMOV R4,#10HMOV R1,#10HLCALL MASTERLOOP: SJMP LOOPMASTER: MOV SCON,#0D8HMASTER1: MOV A,R2MOV SBUF,AJNB RI,$CLR RIMOV A,SBUFXRL A,R2JZ MASTER3MASTER2: MOV SBUF,#0FFHSETB TB8SJMP MASTER1MASTER3: CLR TB8MOV SBUF,R3JNB RI,

10、$CLR RIMOV A,SBUFJNB ACC.7,MASTER4SJMP MASTER2MASTER4: CJNE R3,#00H,MASTER5JNB ACC.0,MASTER2CLR TIMST_TX: MOV SBUF,R0JNB TI,$CLR TIINC R0DJNZ R4,MST_TXRETMASTER5: JNB ACC.1,MASTER2MST_RX: JNB RI,MST_RXCLR RIMOV A,SBUFMOV R0,AINC R1DJNZ R4,MST_RXRETEND从机的通信程序,不同的从机,只需修改B的值。MOV TMOD,#20HMOV TL1,#0E6HM

11、OV TH1,#0E6HMOV B,00HSETB TR1MOV SP,#4FHMOV SCON,#0F0HSETB PSW.3MOV R0,#20HMOV R1,#10HMOV R2,#10HSETB F0SETB PSW.1SETB ESSETB EASJMP $SSIO: CLR RICLR EAPUSH ACCPUSH PSWSETB RS0CLR RS1MOV A,SBUFXRL A,BJZ SSIO1RETUNR: POP PSWPOP ACCRETISSIO1: CLR SM2MOV SBUF,BJNB RI,$CLR RIJNB RB8,SSIO2SETB SM2SJMP RE

12、TUNRSSIO2: MOV A,SBUFCJNE A,#02,LOOPLOOP: JC SSIO3MOV SBUF,#80HSJMP RETUNRSSIO3: JZ CMD0CMD1: JB F0,SSIO4MOV SBUF,#00HSJMP RETUNRSSIO4: CLR TIMOV SBUF,#02CLR F0LOOP1: JNB TI,LOOP1CLR TIMOV SBUF,R1INC R1DJNZ R2,LOOP1SETB SM2SJMP RETUNRCMD0: JB PSW.1,SSIO5MOV SBUF,#00HSJMP RETUNRSSIO5: MOV SBUF,#01HCLR PSW.1LOOP2: JNB RI,LOOP2CLR RIMOV R0,SBUFINC R0DJNZ R2,LOOP2SETB SM2SJMP RETUNREND

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号