2.3以太网设计
由于W7100A内部不仅集成了MAC模块还集成了PHY模块,所以简化了电路部分的设计,但是需要注意布局和布线,同时还要考虑W7100A的散热。一般集成MAC和PHY的芯片正常工作的时候发热都比较严重,可以考虑加装散热片来解决。对于布局布线主要是对差分线对的处理,这点比较重要。芯片出来的RX +/TX+、RX -/TX-为差分线对(切勿走成RX +/RX一和TX +/TX-),应该优先布差分线,保持平行、等长和紧靠,且避免交叉。同时应避免差分线周围走其他信号线,而且差分线要包地,包地的周围隔一段距离就要打地孔。这两组差分信号布的好坏,会严重影响网卡的工作。电路如图5所示。
3 软件设计流程
该采集系统在软件设计上分为两部分:一部分是W7100A采集控制器的控制和上传数据程序;另一部分是服务器上上位机各个采集器集中处理的程序。服务器通过TCP/IP收集各个控制器上传的数据,然后进行信息融合后,做出判断,再发出控制命令使各个采集器执行不同的机械动作。同时也可以以外接GPRS模块短信命令来实现人机交互。
3.1采集器程序设计
采集器的程序分为5个部分,分别是:按键处理、LCD12864显示、网络接收和发送数据、继电器的接通和断开以及IP地址的识别。
按键硬件上接上拉电阻,因此有键按下时电平是低电平。按键采用循环扫描的模式来处理。
显示程序主要根据LCD12864的时序把需要显示的数据写人显存里。
网络收发数据采用循环扫描的方法不断查询是否有数据要发送或接收,先查询Sock0_Connect标志位,若为高电平表明已经建立了TCP连接,如果已经建立了连接,则查询Sock0_Recv标志,若为Sock0_Recv高电平则先清零该标志,再去读取网络缓冲区里面数据帧的帧头数据。如果帧头是0x66 、0xA8 、0x55说明主机发送的是上传数据命令,此时同时把上传标志upload-flag置1。主程序会根据Upload- flag的标志转去执行上传数据函数;如果帧头是0x66、0xA8、0xAA说明主机发送的是写入命令,W7100A需要从缓冲区的第4个字节开始读取且连续读取22个字节数据,然后根据接收到的数据执行相应的命令。
3.2上位机程序
上位机用VC编写,基于socket的服务器。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部。
编写步骤一般是先加载套接字接口,再绑定套接字到IP和端口,其次监听套接字接口以等待连接请求的到来,然后根据各个采集器上传的数据进行融合并发送数据,最后关闭套接字接口。在该系统中绑定的TCP端口为9998,待连接请求到来时,读取数据并进行数据的处理。通信结束,则返回并关闭套接字。采集到的数据如图6所示。
4 总结
本文以集成硬件TCP/IP核的W7100A设计并实现了一个采集控制器的子系统,再经过多个采集子系统构成一个整体的可扩展的控制系统,然后通过网络上传数据到服务器。基本实现了显示、温湿度、继电器通断的控制。相采集程序
比传统的8051控制器,系统具有较高的实时行和大的数据吞吐量,同时也易于扩展,且设置灵活,有一定的实用性。