摘要: 融合单片机技术和计算机网络技术,优化数据包的格式和控制方式以及引入帧检测序列,设计基于AT89S52的单片机网络的单片机多机通信协议;系统网络拓扑结构采用总线型;网络接口电路采用端口转发的形式等进行单片机多机通信系统的设计,系统易于扩展且提高了稳定性。结果表明,此系统设计解决了8位单片机多机通信的问题,实现了客户机与服户机间的通信,以及客户机与客户机间的通信。
关键字:单片机;通信协议;数据包;帧;网络接口
Abstract:By combining the technology of Single-chip Microcomputers and networks, optimizing the pattern and the controlling model of data packets, and introducing frame checking sequences, a protocol of multi-computer communication among Single-chip Microcomputers of the networks based width=508>
图1系统网络拓扑设计
4 网络接口电路的功能与设计
(1)网络接口电路的功能
网络接口电路完成的主要功能如下:①完成网络数据元的接收;②对接收到的数据元转发给其它端口;③多端口机制,端口间相互转发;④提交收到的数据元;⑤中继收到的数据元;⑥提供网络状态信号;⑦各端口之间同构,使用交叉线。
(2)网络接口电路的设计
为实现上述功能要求,网络接口电路设计时一共采用了四片74HC245芯片,共同承担数据的收发工作,其中每一块芯片对应一个端口。在外表现为三个端口,这是因为有一个端口被本机占用,电路已布置在线路板上。各端口之间用交叉线连接,当检测到收线上有信号时,芯片开始启动工作,将信号分成三路中继出来,一路发给单片机,其它两种发给另外的两个端口。在收方的收收线上如果检测到同样的信号,则进行同样的操作。当单片机向外界发送数据时,就启动对应于单片机收发端口上的芯片,将信号中继后发送给另外的三个端口,并随时检测收线信号的变化,一旦检测到电平信号由高倒低的变化一次,即说明有数据需要接收,接收完后将产生一中断信号,启动处理程序进行处理。
网络接口电路中设计了网络状态信号BUS,当各芯片都没有工作时,表示网络中没有数据传输,这时BUS经非门电路取反变成低电平,与单片机二号中断引脚相连,单片机可以通过这一引脚撑握网络状态,实现数据包的发送。
网络接口电路中还设计了指标信号,当收到数据时信号便置高,这时接在信号上的LED发光管将会发光,以表示收到数据。
客户机与服务机电路设计
系统中有客户机和服务机两种不同的电路。将客户机电路和服务机电路整合在一个电路板上,即两种电路用同一块电路板表现出来。
对于客户机,客户不需要部门控制电路,但其需要编址,故需要地址获取电路。
对于服务机,它不需要编址,统一固定为65这一地址,故不需要地址获取这一部分电路。服务机担负着整个网络的监管与轮询工作。
其它电路客户机与服务机均同构,所以不需要做任何修改。
电路板上,采取不插器件的方式实现两种不同构的电路在同一电路板上实现,大大地压缩开发成本。
6 系统功能模块图
(1) 系统功能:
服务器部分
① 完成网络的轮询,每隔一定时间向网络中的机器发出询问数据包。
② 读取ADC数据,显示当前环境温度
③ 控制一个调风阀,显示电机角度数据
④ 扫描键盘,提供按键控制
⑤ 从网络中收集调风阀信息,智能控制风机的开启
⑥ 控制本实验室照明电路的开、关
⑦ 能够接管网络中任意一台客户机
客户机部分
① 接收服务机的轮询,发送确认数据包
② 读取ADC数据,显示当前环境温度
③ 控制一个调风阀,显示电机角度数据
④ 扫描键盘,提供按键控制
⑤ 读取本机地址
⑥ 接收来自服务器的管理操作
(2)功能划分:
软件系统采用模块化的方式,每个设备编写一个驱动程序。驱动程序负责驱动其所控制的设备。并向其它程序提供接口,方便其它程序调用,控制设备。
各个驱动功能划分如下:
① 数码管驱动程序:驱动数据管显示,按指定方式显示数据。
② 键盘驱动程序:动态扫描键盘,判别按键,并避开电路毛刺。
③ 蜂鸣器驱动程序:驱动蜂鸣器安指定方式发声。
④ ADC驱动程序:读取模数转换器数据,并转换为温度数值。
⑤ 串口驱动程序:收发数据包,过滤非本机数据包
其中还有一个轮询模块,它在时钟的驱动下按一定间隔时间向网络中各台客户机发送询问数据包。如果两次没有收到回应,则视发送数据包失败。并能够向被接管的客户机发送管理数据包。同样也需要确认,超过两次则视为失败。
系统功能模块图如图2所示。
图2 系统功能模块图
由图可知,所有的驱动程序都挂靠在时钟中断上,由时钟中断按一定的频率调用这些驱动程序。
7 小结
系统设计了一个基于网络控制和管理的控制系统。它将计算机机网络技术和单片机技术进行融合,网络协议设计参考计算机网络中的停止等待协议和TCP/IP协议,但为了更好的适应于单片机处理,优化了数据包的格式和控制方式,大大提高了处理速度和效率。同时,引入帧检测序列,提供数据包的检测机制,提高了网络的可靠性。系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,便于扩展且提高了稳定性。此系统设计功能齐全可以通过服务器控制整个网络的所有客户机,监视所有客户机运行情况;系统操作简单,具有一定的经济意义和实用价值。