摘要:阐述了AT89x51单片机异步串口组成的主从网络系统和点对点网络系统的特点、硬件组成、通信协议、软件程序流程图以及对通道争用的响应,并进行了验证。通过软件模拟。 确保系统设计的正确性。
众所周知,计算机网络的类型可以从很多角度来划分。 从地理位置上分为局域网、城域网和广域网; 从传输介质上分为有线网络、光纤网络和无线网络; 它们分为拓扑结构。 星型网络、环型网络、总线型网络等; 从服务类型来看,分为主从(C/S)网络和点对点网络。 当然,随着计算机网络在各个行业的应用越来越广泛,并且各有侧重,更多的分类方法也出现了,这里就不一一列举了。 本文详细阐述了基于51单片机的主从网络和点对点网络架构的设计与实现。
图1是本文项目的承载平台。 需要实现的功能是: 3个单片机在00~99范围内循环计数并显示; 每台机器都配有一个按钮,每次按下的计数值都不同。 ;每台机器上的计数值无法显示在本机控制的LED上,需要通过总线网络传输到其他机器上显示。 为了实现这一功能,可以采用两种网络架构,即主从网络和对等网络。 通过查询国家知识基础设施、万方数据库以及国内大部分教材和科技文献可以发现,关于51单片机多机串行通信的内容大多局限于主从网络。 即使涉及到点对点网络,这些论文也被人为地分为A组和B组,不同组之间可以随意通信,但同一组内的微控制器仍然无法实现直接通信[13],这确实没有彻底解决地位“平等”的问题。
AT89x51/52单片机的异步串口由两个引脚组成,接收端RXD和发送端TXD。
完成一次传输的基本单位是字节,通过发送SBUF字节寄存器和接收SBUF字节寄存器来完成。
串口控制寄存器SCON[4]的功能如表1所示。
在异步串行通信模式下,该控制寄存器中的SM2和TB8/SB8这三位对于实现多机通信起着关键作用。 这三个控制位的具体工作机制(通信协议)如下。
(1)接收令牌(地址)帧信息,然后与本站地址进行比较。 如果相同,您可以执行以下步骤; 如果它们不同,则无法将信息发送到总线。
(2) 在发送信息之前,必须先将三个单片机的 SM2 设置为 1,表示发送方要发送的地址帧信息,其余两个单片机需要接收。
(3)发送端需要设置TB8来表明该帧中的信息是地址帧。 两个接收者收到地址帧后,立即将其与本地地址进行比较。 如果相同,则将自己的SM2设置为0。接收方可以为下一个要发送的数据帧产生接收中断,即不会发生下一步的通信。 然后就是多方接收,但是两台机器之间一对一的通信; 如果不同,则接收方仍然保持SM2设置状态,并且不会为下一个发送的数据帧产生中断信号RI,因此不会被接收。 。
(4)发送端清零TB8,表明该帧中的信息是数据帧。 只有SM2=0的接收方才能接收到该数据帧。 当本次数据传输完成后,接收方需要将SM2设置为1,为下一次接收地址帧做准备。
(5) 令牌字节处理和令牌传送。
经过大量实验,总结如下: 在异步串行通信模式下,无论是两台机器之间的一对一通信,还是多台机器之间的一对一或一对多通信,中断信号RI与控制位SM2、RB8的逻辑关系为::RI=SM2+RB8。
3 基于主从网络的系统实现
当多个51单片机工作在多机主从通信模式时,通信双方分为主机和从机; 如果直接使用TTL电平进行互连,主站和每个从站之间的连接距离最好不要超过1 m[5]。 主从架构的网络具有以下特点。
(1)网络系统中只能有一台主机,可以有多个从机;
(2)主机和从机都可以在网络上自主发送信息;
(3)主机可以在网络上进行一对多广播或一对一单播;
(4)从机发送的信息只能被主机接收。 如果从机之间需要通信,则只能通过主机进行通信,这增加了主机的负担。
3.1 本系统主从网络架构
根据主从网络的特点,本项目平台的硬件连接如图2所示。本系统要实现的功能为:将主站的计数值发送给1号从站,主站计数值加1并发送给2号从站; 1号从机和2号从机的计数值分别以3s的间隔发送给主机。 展示。
主机程序流程图如图3所示,1、2号从机程序流程图如图4所示。
在主从网络架构中,主机在向从机发送信息之前,会在网络上广播接收方的站地址,等待目的站地址发回地址帧(本文指握手成功),然后与目标接收者进行通信。 沟通到一处。
在主从网络架构下,从机首先向主机发送地址帧信息(只有主机可以接收)。 主机不发回地址帧,然后向主机发送数据帧。 主机每3秒轮流显示两个从机发送的数据值。
4 基于点对点网络的系统实现
4.1 点对点网络的特点
对等网络中的终端地位完全平等。 网络终端可以不受任何限制地向网络中的任何其他方发送信息。
4.2 异步串口通信的数据格式
异步串行通信数据格式如图5所示。
从其数据格式可以看出,当网络空闲时,TXD和RXD网络线始终为高电平,这对于建立51单片机之间的连接起着至关重要的作用。
4.3 本系统点对点网络架构
基于对等架构的网络系统如图6所示。
根据点对点网络的要求,需要将每个微控制器的输出信号发送到另一个微控制器的输入端口。 考虑到单片机的TXD端在空闲时始终为高电平,因此另外两个单片机的输出端TXD的信号通过二输入与门74LS08的输出连接到本机的RXD端或者CD4081,这样就可以有效地将三个单片机互连起来。 此时,各个单片机的地位是平等的,没有主次之分。 任何一个微控制器都可以将信息传输到任何其他机器。
本系统要实现的功能为:1号机的计数值发送到2号机的LED显示屏,2号机的计数值发送到3号机的LED显示屏,将3号机的计数值发送至1号机的LED显示屏。
4.4 系统软件流程图
由于2号机、3号机的程序流程图与1号机类似,故不再赘述。 1号机程序流程图如图7所示。
在点对点网络架构下,每台机器在向另一台机器发送信息之前,首先在网络上广播接收方的站地址,并等待目的站地址发回地址帧(握手成功) )在与目标接收者通信之前。 一对一的沟通。
5. 对通道争用的响应
无论是主从网络系统还是点对点网络系统,都会存在多台机器同时向总线发送信息,导致信息被破坏的情况。 为了有效克服这一重大缺陷,本文采用令牌环方式。 规范并回应。
具体工作机制如下。
(1)令牌的本质是一个地址帧,用一个一字节变量来表示。 该字节表示当前时刻可以向总线发送数据的站的地址。 因此,组成网络的微控制器总数可达256个。
(2)所有连接的微控制器形成令牌环网络。
(3) 每个无限循环中每个微控制器的最后一个任务是在令牌环网络内广播令牌。
(4) 所有微控制器收到令牌后,将令牌中的内容与站的地址进行比较。 如果相同,则站点可以主动向总线发送信息; 如果不相同,则不允许发送。
(5)除最大站点地址外,本站完成网络传递任务后,会将令牌帧内容加1,并在网络上广播,将令牌传递给下一个站点; 而最大地址站则需要将令牌帧的内容分配给最小站地址,它表示下次可以占用网络资源的站的地址。
因此,出现了第2节中网络协议的步骤(1)和(5)。 同时,令牌环的传输和处理功能也包含在图3、图4和图7的流程图中。
需要特别指出的是,在图3的主从网络中,由于从机之间无法相互发送信息,因此相互发送令牌帧的操作需要由主机来进行。 由于篇幅限制,流程图中没有详细体现。
6 系统仿真与验证
6.1 主从网络系统仿真与验证
硬件仿真原理图[6]及仿真结果如图8所示。
6.2 点对点网络系统仿真与验证
硬件仿真原理图和仿真结果如图9所示。
7结论
本文从服务分类的角度对51单片机异步串口的网络架构进行了详细全面的讲解。 实践证明,上述原理和方法是可行的,但存在网络利用率不高的缺陷。 因此,提高公交车利用率是未来研究的重点。
参考
[1]于耀军,王晓红,张友明。 点对点令牌测控网络的设计与实现[J]. 微机信息,2007,23(82):5153。
[2]吴德辉,王晓红。 点对点测控网络的设计与实现[J]. 计算机测量与控制,2005,13(7):627630。
[3]杨惠成,卓志强。 单片机与PC机串行数据通信的工程实践[J]. 微型计算机及其应用,2003,22(5):2225。
[4] 杨瑞良,李平,邱庆,等。 计算机网络技术基础[M]. 北京:北京大学出版社,2008。
[5]于国良. MCS-51单片机原理及应用[M]. 北京:清华大学出版社,2010。
[6] 彭伟. 单片机C语言编程培训100个实例——基于8051+Proteus仿真(第2版)[M]. 北京:电子工业出版社,2012。