单片机多机串行通信设计方法

点赞:5119 浏览:17189 近期更新时间:2024-02-01 作者:网友分享原创网站原创

摘 要:本文从多机通信协议入手,重点研究了如何利用查询法和中断法实现主从式通信,并通过Proteus仿真软件对两种通信方法进行了仿真验证.查询法通信易于实现,但占用单片机内部资源较多.中断法通信更稳定可靠,可以大大提高单片机的工作效率.

关 键 词:单片机多机通信查询法中断法Proteus仿真

单片机目前已广泛应用于家用电器、航空航天、仪器仪表及专用设备的智能化管理和过程控制等领域.随着计算机技术的发展及工业自动化水平的提高,在许多场合单机控制已不能满足现场要求,多机串行通信构成的主从式通信方式,因其通信编程灵活、硬件简洁,并遵循统一的标准,在工业控制领域应用前景广阔,非常具有研究意义.


一、多机通信原理

51系列单片机的多机通信一般采用主从式通信方式.在这种方式中,只有一台主机,可以有多台从机.主机发送的信息可以传到各个从机或指定的从机,各个从机发送的信息只能被主机接收,从机之间不能进行通信.单片机多机通信示意图如图1所示.

图1单片机多机通信示意图

二、多机通信过程

在多机通信时串口必须工作在方式2或方式3,根据通信要求设置单片机通信控制寄存器SCON中的每一位.

多机通信的过程如下.

第一,所有从机处于地址帧接收状态(2等于1).

第二,主机先发送一个地址帧,其中前8位数据表示要寻址的从机地址,第9位为1(TB8等于1)表示该帧为地址帧.

第三,所有从机接收到地址帧后,把接收到的地址与本机地址相比较.地址相符时将2清0,并发回从机地址作为应答信号,由主机进行确认.地址不相符的从机不作任何处理,仍保持2等于1.

第四,在主机确认地址正确时,向寻址的从机发送相应的数据信息.当确认地址错误时,不发送数据信息.

第五,地址相符的从机(2等于0),可以接收到主机发来的数据信息.而对于地址不符的从机2等于1,则不予理睬,这样就实现了主机与地址相符的从机之间的双机通信;

第六,被寻址的从机通信结束后,恢复为多机通信状态(2等于1).

三、多机通信协议设计

本次设计为了验证多机通信的协议是否正确,在Proteus软件中绘制了一个由1主机2从机构成的多机通信系统.主机和从机芯片均采用AT89S51单片机,主机通过按键发送信号,从机接收信号,通过从机连接的数码管显示变化,来表明一个主机和两个及两个以上从机通信的正确性,软件部分主要包括通信模块、按键扫描模块、数码管显示模块和中断怎么写作程序等,使用的通信模式主要是查询法和中断法两种.

1.查询法通信协议算法设计

查询法即通过单片机程序的不断扫描,循环查询通信标志位来判断是否进行通信以及和哪个从机通信的方式,从而完成主从式多机之间的数据交换任务.主机主要完成寻址及数据发送,查询法通信主机设计流程图如图2所示.

图2主机通信设计流程图

从机主要完成地址校验、数据接收和显示任务.所有从机的通信程序相似,只是从机定义的通信地址不可相同,从机通信设计流程图如图3所示.

单片机多机串行通信设计方法参考属性评定
有关论文范文主题研究: 关于通信的论文范文检索 大学生适用: 自考毕业论文、硕士学位论文
相关参考文献下载数量: 94 写作解决问题: 写作参考
毕业论文开题报告: 论文任务书、论文设计 职称论文适用: 期刊发表、中级职称
所属大学生专业类别: 写作参考 论文题目推荐度: 经典题目

图3从机通信设计流程图

2.中断法通信协议算法设计

所有从机初始时均处于听命状态,即2等于1,以便接收主机发来的地址,当接收到一帧信息的RB8为“1”时,表示主机发送来的是地址信息,所有的从机均发生接收中断,进入相应的中断怎么写作程序,把接收到的地址和本机地址进行比较.如果相符合就令其2等于0,并向主机发回本机地址以作应答,主机得到应答信号并校验成功后,就与该从机联通实现双机通信,准备接收主机发来的命令或数据信息,顺利实现地址帧和数据帧的分离.而其他的未被寻址从机保持2等于1并退出各自的中断怎么写作程序.被寻址从机在通信完成后重新使2等于1,并退出中断怎么写作程序,等待下次通信.

主机的程序设计可分为两部分:一是主程序,主要用于完成按键扫描;二是中断怎么写作程序,用于完成通信及数据的收发功能.中断法通信实际是将图2中的虚线框部分的扫描程序替换为如图4所示的中断怎么写作程序去执行.

图4主机中断怎么写作程序设计流程图

从机程序设计主要分为两部分,一是主程序,完成数码管的显示任务;二是中断怎么写作程序,完成主机发送过来的地址校验和数据接收等任务.从机的中断怎么写作程序设计流程图如图5所示.

图5从机中断怎么写作程序设计流程图

四、多机通信在Proteus中的仿真

按照上述两种通讯协议算法的设计思路,使用单片机C语言进行编程,采用KeilC51uVesion3作为调试工具,用Proteus作为仿真工具,与KeilC51uVesion3联合调试,最终成功实现了1主机2从机之间的通信,仿真运行图如图6所示.

按下K1键,对1号从机的数码管显示值加1,按下K2键,对2号从机的数码管显示值加1.若主机寻址从机时发现地址错误,将不进行任何操作,此时不会影响其他通信地址正确的从机的正常通信.

五、结束语

本设计的两种通信方案,均通过了Proteus成功仿真,并在实际电路中也得到了验证,1台主机最多可以同时与255台从机进行通信.中断法通信方式因其程序结构简洁明了、运行可靠、占用单片机内部资源较小,因此较查询法通信方式的应用更为广泛.