5-3-2 多机通信接口
教学目标
教学要求:掌握多机通信的原理及实现
过程,能设计简单的多机通信系统及程
序。
本节重点:多机通信原理
本节难点:SM2、TB8、RB8在通信过程
中的作用
多机通信的应用领域
典型应用:校园卡系统、智能楼宇、自动温控蔬菜大棚、大型粮库、工厂自动化;
1#打卡机 2#打卡机 3#打卡机 …… n#打卡机
1.MCS-51多机通信原理
问题问题1:1:多机通信时主机如何寻找从机?多机通信时主机如何寻找从机?
问题问题2:2:如何区分地址和数据信息?如何区分地址和数据信息?
串行口控制寄存器串行口控制寄存器SCONSCON中的中的SM2SM2为多机通信接口控为多机通信接口控
制位。串行口工作于方式制位。串行口工作于方式22或或33。。
SM2SM2------多机通信位;------多机通信位;
TB8/RB8TB8/RB8----地址----地址//数据区分位数据区分位;;
若 若SM2SM2为为11,则仅当接收到的第,则仅当接收到的第99位数据位数据RB8RB8为为11时,时,
数据才装入数据才装入SBUFSBUF,置位,置位RIRI,请求,请求CPUCPU对数据进行处理;对数据进行处理;
如果接收到的第如果接收到的第99位数据位数据RB8RB8为为00,则不产生中断标志,则不产生中断标志RIRI
,信息丢失,,信息丢失,CPUCPU不做任何处理。不做任何处理。
当当SM2SM2为为00时,则接收到一个数据后,不管第时,则接收到一个数据后,不管第99位数位数
据据RB8RB8是是00还是还是11,都将数据装入接收缓冲器,都将数据装入接收缓冲器SBUFSBUF并置并置
位中断标志位中断标志RIRI,请求,请求CPUCPU处理。处理。
关键是SM2与TB8/RB8的关系!
SM2、RB8与从机动作关系
SM2 RB8 从 机 动 作
1 0 此时不能接收数据
1 1 能收到主机发的数据(地址信息)
0 0 进入串口中断,对接收的数据进行处理
0 1 进入串口中断, 对接收的数据进行处理
通信过程
所有从机的所有从机的SM2=1SM2=1,处于只接收地址帧状态,处于只接收地址帧状态
所有同学坐着听讲
主机发地址信息,以第主机发地址信息,以第99位位TB8=1TB8=1表示发送的是地址表示发送的是地址
老师喊同学名字
从机接收到地址帧后与本机地址比较从机接收到地址帧后与本机地址比较
所有同学听到名字与自己的名字比较
被寻址从机被寻址从机SM2=0SM2=0,其作从机,其作从机SM2=1SM2=1不变不变
名字相符的同学站起来
主机发数据信息,对已被寻址的从机因主机发数据信息,对已被寻址的从机因SM2=0SM2=0,可以接收主,可以接收主
机发来的信息。其余从机因机发来的信息。其余从机因SM2=1SM2=1不理睬主机。不理睬主机。
老师与站起的同学进行提问回答课堂交流
被寻址的从机被寻址的从机SM2SM2置置.主机可另发地址帧与其它从机通信时主机可另发地址帧与其它从机通信时 。。
回答问题的同学坐下
多机通信动画演示
2.多机通信系统设计
设多机通信系统主、从机晶振为设多机通信系统主、从机晶振为6MHz6MHz,波特率为,波特率为
2400bps2400bps,以方式,以方式33进行多机串行通信。每次通信时主机进行多机串行通信。每次通信时主机
先发送对应的从机地址,然后发一个字节数据。先发送对应的从机地址,然后发一个字节数据。
RS-485
从机
0#
主机
RS-485
……RS-485
从机
1#
RS-485
从机
n#
图1 多机通信系统硬件结构
主机软件设计----初始化子程序
INITINIT::MOVMOV TMODTMOD,,#20H#20H
MOV TH1 MOV TH1,,#0F9H#0F9H;波特率为;波特率为2400bps2400bps
MOV TL1 MOV TL1,,#0F9H#0F9H
MOV SCON MOV SCON,,#0F0H#0F0H;方式;方式3,SM2=13,SM2=1,允许接收,允许接收
SETB SETB TR1 TR1
RET RET
主机软件设计-----通信子程序流程
返回
置地址信息标志
发地址
置数据信息标志
发数据
开始
图2主机通信子程序流程图
从机软件设计-------初始化程序
INIT: MOVINIT: MOV TMODTMOD,,#20H #20H
MOV MOV TH1TH1,, #0F9H#0F9H ;设置波特率为;设置波特率为24002400
MOV MOV TL1TL1,, #0F9H#0F9H
MOV MOV SCONSCON,,#0F0H#0F0H;方式;方式33,,SM2=1SM2=1,允许接收,允许接收
SETB SETB TR1TR1
SETB SETB ESES ;允许串行口中断;允许串行口中断
SETB SETB EAEA
WAITWAIT:: SJMP WAIT SJMP WAIT ;听号;听号
从机软件设计-----通信子程序
数据?
接收并保存数据
Y
N
清接收数据标志
准备收地址信息
接收地址
呼本机?
准备接收数据
Y
清中断标志
返回
开始
图3 从机通信程序流程图
N
从机串行中断通信程序
SIOSIO:: CLRCLR RIRI
PUSHPUSH PSW ;PSW ;现场保护现场保护
PUSHPUSH ACC ACC
MOVMOV AA,,SBUFSBUF ;接收串行数据;接收串行数据
XRLXRL AA,,#ADDR#ADDR ;判断是否与本机地址相符;判断是否与本机地址相符
JNZJNZ BACKBACK ;不相符则返回;不相符则返回
CLRCLR SM2SM2 ;相符则;相符则SM2SM2为为00
CLR ES ; CLR ES ;关串口中断,避免中断嵌套关串口中断,避免中断嵌套
MOVMOV AA,, SBUF ; SBUF ;接收数据接收数据
WAITWAIT::JNBJNB RIRI,,WAIT WAIT
CLRCLR RI RI
MOV @R0, A ; MOV @R0, A ;保存数据保存数据
SETB SM2 ; SETB SM2 ;恢复多机通信,恢复多机通信,
SETB ES ; SETB ES ;开串口中断开串口中断
BACKBACK::POPPOP ACC ; ACC ; 恢复现场恢复现场
POPPOP PSWPSW
RETIRETI
作 业
某MCS-51多机通信系统要求主、从机均采
取中断方式通信,设fosc=12MHz, 通信速率
4800bps.主机每次通信时先确定从机,然后将片
内RAM中30H单元开始的10个数据发给指定的从
机。编写主、从机的程序。