摘要: 融合单片机技术和计算机网络技术,优化数据包的格式和控制方式以及引入帧检测序列,设计基于AT89S52的单片机网络的单片机多机通信协议;系统网络拓扑结构采用总线型;网络接口电路采用端口转发的形式等进行单片机多机通信系统的设计,系统易于扩展且提高了稳定性。结果表明,此系统设计解决了8位单片机多机通信的问题,实现了客户机与服户机间的通信,以及客户机与客户机间的通信。
关键字:单片机;通信协议;数据包;帧;网络接口
1 引言
随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。许多应用都涉及到单片机多机通信。然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其有的单片机只提供8位的数据收发接口,在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法
2 系统网络协议设计
拟定网络容量为1台服务机和62台客户机,客户机之间可以相互通信。客户机和服务机之间也可以相互通信。设计的协议考了停止等待协议CONTROL ENGINEERING China版权所有,数据包参考了IP数据包而设计。 经过综合分析和优化处理,制定如下单片机多机通信协议。
(1)服务机协议
①服务机按1/384的间隔发送询问数据包;
②将当前询问地址加1,判断,如果大于63则置当前询问地址为1,如果小于1则置当前询问地址为62,转下一步;
③向当前询问地址机器发送一询问数据包;
④等待一个发送间隔时间;
⑤如果没有收到确认包则转到将当前数据包重发,重发计数器加1,计数器大于2则转向⑥;如果收到确认包转到⑦;
⑥设置发送失败标记,重发计数器清0控制工程网版权所有,转到②;
⑦设置发送成功标记,重发计数器清0控制工程网版权所有,转到⑧;
⑧查看被询问客户机是否有数据要发送,有则分配总线使用权和时间片,转到⑨,否则转到②;
⑨等待被询问客户机的发送结束数据包,如果收到转到②。在一个时间片(1/384s)内,没有收到,视为超时。服务机收回总线使用权CONTROL ENGINEERING China版权所有,转到②。
(2)客户机协议
①接收属于本机的数据包;
②如果是询问数据包,检查本机是否有数据要发送,如果有,则发送"有数据发送信息"到服务机,并捎带确认转到③,否则发送"没有数据发送信息"到服务机,并捎带确认,转到①;其它类型数据包不处理,转到①;
③等待网络资源分配数据包控制工程网版权所有,收到则发送确认包,转到⑤;超时,停止等待转到①;
④等待上一数据包的确认,收到则转到⑤,否则转到⑦;
⑤检查是否还有数据要发送,有则发送数据包转到⑥;否则发送"结束发送信息"到服务机,转到①。
⑥检查是否超时,如果超时结束发送转到①,否则转到④。
⑦重发,是否超过两次,是则当前发送失败,转到⑤,否则转到④。
因此,每发一数据包都会请求对方的确认,如果没有确认,则会再重发一次,超过两次则被视为对方不可达,发送失败;并且在被询问客户机有数据发送时,如果总线空闲,服务机将分配其使用时间片,在这个时间片内,如果数据未发送完成,服务机将强行收回。能发送完成,客户机要发送结束数据包,归还总线使用权。
3 系统网络拓扑设计
选用总线型网络拓扑结构,各站直接连在总线上,由服务机统一管理网络总线,分配网络资源。使用类似于令牌总线网的协议,由服务机轮询每一客户机是否有数据发送www.cechina.cn,如果有分配发送时间,移交总线使用权,否则询问下一客户机;其中接口电路会将所接收到信号中继,并转发。因此网络中任意一台机器所发送的数据对其它机器都是可见的,并且在一定程度上保证了信号的可靠性。
系统网络拓扑设计如下图所示:
图1系统网络拓扑设计
4 网络接口电路的功能与设计
(1)网络接口电路的功能
网络接口电路完成的主要功能如下:①完成网络数据元的接收;②对接收到的数据元转发给其它端口;③多端口机制,端口间相互转发;④提交收到的数据元;⑤中继收到的数据元;⑥提供网络状态信号;⑦各端口之间同构,使用交叉线。
(2)网络接口电路的设计
为实现上述功能要求,网络接口电路设计时一共采用了四片74HC245芯片,共同承担数据的收发工