基于51单片机原理与系统对多机通信的设计
扫描二维码
随时随地手机看文章
随着社会经济的不断发展进步,科技的不断飞升,在新时代的背景下网络通信已经成了人们最为常 用的科学技术产品之一,由于生活水平得到了提高人们在日常的追求上也发生着变化,而对于通信 的产品可以说是有着日新月异的变化,人们在网络通讯以及工业自动化和数据传输等这方面的实践 操作中会需要一个控制系统对于所运行的数据来进行有效地控制与检测,以此来让通信系统能够及 时高速的进行正常通讯,基于它的种种优点在当下已经得到了较为广泛的应用。
在多机通信中,主机必须要能对各个从机进行识别,在51系列单片机中可以通过SCON寄存器的SM2位来实现。当串口以方式2或方式3发送数据时,每一帧信息都是11位,第9位是数据可编程位,通过给TB8置1或置0来区别地址帧和数据帧,当该位为1时,发送地址帧;该位为0时,发送数据帧。
在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。
单片机构成的多机通信系统中常采用总线型主从式结构。在多个单片机组成的系统中,只允许存在一个主机,其他的就是从机,从机要服从主机的控制,这就是总线型主从式结构。
当 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。
对于现代所见到的的单片机基本上都是带有通信接口的,能够方便的和计算机在信息数据上进行通 信这给通信设备以及计算机网络之间在应用的层面上提供了有力的物质基础条件,在当下的通信设 备的使用上都已经实现了对于单片机的智能控制,像手机、列车无线通信、无线电对讲机等等,在 单片机的通信应用应该说是从两片单片机间的通信开始的,再往后就有了主从式的通信设备,在后 就出现了基于单片机的多机通信系统的应用,同时得到了广泛的应用,虽然说在单片机的多机通信 上面有了很长的研究史但是在形式上也基本都是主从式的,对于平权式的就相对较少。
在系统的设计中对于通信的协议工作的相关过程主要包括了发送数据的过程以及接收数据的过程, 可以采取异步半双的这种通信模式来进行设计,也就是可以在相同的时间段由主机进行发送从机进 行接收,或者是从机进行发射由主机进行接收,这样的设计能够使系统的工作更加的有效便捷,在 整个的系统设计当中占有着相当重要的位置。在接收的同时从机有着两种方式,一个是等待接收这 是由处理器来对串口的状态进行查询而得到的判断;二就是中断接收面对一个对着多个的传输数据 的命令系统首先会在接收中断的过程当中对连接的命令进行解析,当这个“连接”命令得到了信息 之后,主程序就会立即进入到一个设置的状态,然后就会以查询的方法对其余的协议进行解析,在 这个过程中协议的解析首先是对数据包的一个正确性以及完整性进行的判断,随后就是对数据以及 数据的类型进行的提取,这些结束后就把提取的相关数据存放起来,用作对主程序的处理,通常会 采用中断接收这种方式会比较好。在接收数据的过程中主机可以和从机得到一致的结合,在串口打 开之后对远程的监视串口的数据接收也要开启,然后把接收到的数据放置到缓冲区域由此同时把接 收数据的消息传送给主程序,这时数据就会和消息一起传输给主程序那里,随后主程序就会对消息 进行开启开始处理函数以及数据。