开端口 收到数据? Y 接收程序 N 发送数据? Y 发送程序 N N 最后的ACK? Y 要关闭端口? N 超时? Y Y 关闭端口
图 3-5:UDP数据传输流程图
3.2 主体程序
下面介绍主体程序的设计方法。主体程序中首先初始化AT89S52和W5100,配置W5100的工作模式,启动温度传感器,配置W5100工作于TCP服务器模式,主程序的流程图如图3-6所示:
26
初始化STC89C51 开始 初始化W5100 W5100触及AT89S52的外部中断 N Y 处理W5100产生的外部中断 Y Socket 端口接收数据 N 处理收到的数据库 图3-6:主体程序流程图
为了能够得到实时的数据,因此接下来的程序操作是一个无限循环体,程序开始不断检查外部中断状态标志和Socket接收数据状态标志是否改变,同时开始处理A/D转换的数据,以保证服务器在产生网页时能得到当前的各种最新数据[8]。一旦W5100的Socket端口有中断事件产生时,W5100将通过其中断引脚INT触发AT89S52的外部中断,使AT89S52进入外部中断处理函数改变外部中断状态标志,程序接着进入处理W5100中断事件函数,在此函数中,AT89S52通过访问W5100的中断寄存器(IR)和端口0中断寄存器(S0_IR)判断出W5100的端口0产生何种中断事件,若Socket接收到数据,则改变外部中断状态标志。程序检测到外部中断状态标志发生改变,立即进入处理接收数据函数[6]。
27
第四章 系统仿真
由于硬件上的制约,因此只能用由AT89S52与W5100组成的EVB-W5100/MCS51板来演示整个系统的可行性与实际应用情况。图5-1为EVB-W5100/MCS51实物图:
图5-1 EVB-W5100/MCS51实物图
EVB-W5100/MCS51板有如下特性:
? 使用ATMEL公司的AT89S52单片机,可兼容绝大多数的MCS-51系列的单
片机;
? RJ-45网络输出可直接连接以太网路由器或计算机(需交叉线连接); ? 提供串行EEPROM存储器,可保存网络参数;
? 可以通过跳线设置默认的网络参数,避免参数设置错误而无法进行通信; ? 提供一个标准的RS-232C异步通信的DB9接口; ? 提供一个温度传感器,可检测环境温度;
28
? 提供两个LED指示灯,可进行远程控制演示; ? 提供完整的评估板原理图和PCB封装图;
? 提供完整的评估板MCS-51 C语言的软件源代码,使用户快速了解W5100
的使用;
? 提供计算机端的演示软件,可使用户了解TCP/IP协议架构,掌握W5100的
使用方法;
? 7.5v电源供电,内部带5v和3.3v稳压电源。
EVB-W5100/MCS51内部集成了温度检测器和两个LED控制灯,因此可以把两个LED看成是对现场需要控制的继电器的输入信号,而温度模块刚想象成检测的是监控现场的温度。下面我们来进行。
5.1 EVB-W5100/MCS51与PC的连接
EVB-W5100/MCS51与PC连接主要有以下两个方案: 1. 串行口连接
使用标准的RS-232电缆线连接EVB-W5100/MCS51与PC机。如下图所示:
图5-2:EVB与PC串口通信连接
可以通过DEMO板提供的演示软件用串行口对DEMO板的以太网参数进行设置。设置的内容包括:本机IP;网关IP;子网掩码;Socket0的工作模式、端口号、目的IP地址、目的端口地址;Socket1的工件模式、端口号、目的IP地址、目的端口号。
注意:初始化设置完成以后必须重新上电,新的参数才会生效。 2. EVB-W5100/MCS51的网络连接
29
EVB-W5100/MCS51有两种方法接入网络:直接连接;通过交换机连接。考虑到自身条件只能用直接连接这种方法。如下图所示:
图5-3:EVB与PC网络直接连接
EVB-W5100/MCS51可以同时进行串行连接与网络连接,这样不会影响它们的正常使用。当EVB-W5100/MCS51与PC正确连接后会在桌面右下角显示本地连接已接上的字样。
5.2 演示软件测试
EVB-W5100/MCS51与PC正确连接好后。然后就可以开始设置PC机的网络参数,包括IP地址、子网掩码、默认网关这三个参数的设置,可以按照自己的意愿正确设置并把它记下来。如设置的IP地址为:192.168.0.5,子网掩码为:255.255.255.0,默认网关为:192.168.0.1。
然后打开DEMO演示软件,打开的时候选择“MCS-51评估板”,进入演示软件界面。如下图所示:
30