片机构成的多机通信系统中常采用总线型主从式结构。在多个单片机组成的系统中,只允许存在一个主机,其他的就是从机,从机要服从主机的控制,这就是总线型主从式结构。
当 51 单片机进行多机通信时,串口要工作在方式 2 和方式 3。假设当前多机通信系统有 1 个主机和 3 个从机,从机地址分别是 00H、01H、02H。如果距离很近它们直接可以以 TTL 电平通信,一旦距离较远的时候,常采用 RS-485 串行标准总线进行数据传输。
为了区分是数据信息还是地址信息,主机用第九位数据 TB8 作为地址 / 数据的识别位,地址帧的 TB8=1,数据帧的 TB8=0。各从机的 SM2 必须置 1。
在主机与某一从机通信前,先将该从机的地址发送给各从机。由于各从机 SM2=1,接收到的地址帧 RB8=1,所以各从机的接收信息都有效,送入各自的接收缓冲器 SBUF,并置 RI=1。各从机 CPU 响应中断后,通过软件判断主机送来的是不是本从机地址,如是本从机地址,就使 SM2=0,否则保持 SM2=1。
接着主机发送数据帧,因数据帧的第九位数据 RB8=0,只有地址相符的从机其 SM2=0,才能将 8 位数据装入接收缓冲区 SBUF,其他从机因 SM2=1,数据将丢失,从而实现主机与从机的一对一通信。
串口工作方式 2、3 也可以用于多机通信,此时第九位数据可作为奇偶校验位,但必须使 SM2=0。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。