找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于STC89C58RD+单片机的空调网络管理系统控制终端设计

[复制链接]
admin 发表于 2013-3-22 23:42:18 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 设计一款基于STC89C58RD+单片机的空调网络管理系统控制终端。介绍了空调网络管理系统控制终端的基本电路结构,控制终端软件实现的流程和实验结果。该设计使离散安装的空调(受控设备)经过电源的细微改进后,纳入空调网络管理系统的管理成为可能。
关键词: 单片机;TCP/IP;ZLIP应用;控制终端;设备管理
    在学校等单位,分散安装空调存在随意开、通开造成的电能浪费现象,这不仅增加了单位的运作成本,同时还给管理增加了难度。为解决此问题,利用STC89C58RD+作中央处理器、rtl8019as作网卡、TCP/IP为通信协议,设计一款空调网络管理系统的控制终端设备。便于管理人员通过空调网络管理系统的操作,实现在网络上对空调(受控设备)的开、关实施控制,也便于通过空调网络管理系统了解空调(受控设备)的运行状态,并随时加以管理控制。从而达到节能降耗和节支增效的经济、高效的IT管理模式,具有理论意义和应用价值。
1 硬件
1.1 终端主机电路

 整个电路分为电源、网络接口、数据处理和控制I/O接口等四部分。电源由一个DC 9 V输入,分别用78L05和78L06两个集成稳压器分成+5 V和+6 V的分支电源。+5 V电源为控制终端提供电源;+6 V电源作为光电耦合器的启动电源,以便在光电耦合器的动作过程中,不影响主机的工作。服务器通过英特网接口与终端交换信息,再由控制终端通过I/O接口控制或获取空调(受控)设备的即时状态。其结构框图如图1所示。
    20121107051636958663269.gif
   1.2 主要元器件  
 线路板主要由网络变压器FB2022、高度集成的以太网控制器RTL8019AS、锁存器74HC573、静态RAM存储器62256、主控制STC89C58RD+等芯片,RJ45接口和几组光电耦合器以及一些外围元器件组成。其中,主控芯片STC89C58RD+内部资源[1]包括:32 KB内部闪存;1 280 B片内RAM数据存储器;工作频率0~35 MHz(相当于普通8051的0~420 MHz);有内部看门狗电路,解决了外界影响带来的“死机”问题;具有4级8个中断源,提供2个额外的外部中断机制和4组I/O口等。此外,还有宽电压,低功耗,与其他8051完全兼容的特点。RTL8019AS为台湾芯片生产商Realtek公司针对第三代快速以太网连接而设计,它支持多种嵌入式处理器芯片,内置FIFO缓存器用于直接发送和接收数据。RTL8019AS支持以太网II和IEEE802.3;软件兼容8 bit和16 bit的NE2000。对于没有很复杂数据流处理的本控制终端机来说,低廉的造价也能够达到较理想的网络系统管理效果。
1.3 硬件控制实现
 控制终端与空调间用光电耦合器连接,当控制终端接收到系统“电源开”指令时,相应的光电耦合器闭合,打开空调电源,此时空调处于伺服状态,面板上的电源指示灯亮,等待系统或遥控器等发送“运行”指令。同时,因空调电源指示灯打开而相应的光电耦合器导通,把空调的即时状态信息通过控制终端处理后传给系统。空调进入伺服状态后,如果接收到系统或其他方式的“运行”操作指令时,空调就开始运行,面板上的“运行”指示灯亮。同时因面板“运行”指示灯亮而相应的光电耦合器导通,把空调的“运行”状态信息通过控制终端处理后传给系统。当控制终端接收到系统“电源关”的指令时,将关闭空调的运行状态,并且切断空调的电源。此时空调处于完全停止状态,遥控及受控设备本身的任何硬件按钮操作均无效。就这样,基于TCP/IP协议的可靠通信连接,控制终端随时等待着执行服务器给它的系统指令,并周期性地把受控设备的即时状态信息反馈给服务器。在试验中,如表1所示为用LED模拟空调设备,由不同IP和端口的两个终端与同一台服务器相连得出的实验结果。当控制终端接收到系统发来的指令“1”时,空调“总电源”开启,LED1亮,同时向服务器反馈“电源开”的信息。在“电源开”的状态下,控制终端接收到系统指令“2”时,空调“总电源关”,LED1灭;接收到系统指令“3”、“4”时,控制终端和负载相应的动作是“运行、LED2亮”、“停止、LED2灭”。当“总电源关、LED1灭”后,没有收到系统指令“1”时,其他任何指令对负载的控制无效,终端状态灯无显示,同时反馈给系统的信息为“关闭中”。
1.4 安全控制原理  
 在同一管理系统内,每一个控制终端都固化唯一的物理地址(MAC)、本地IP地址和端口号,除了只与本身固有IP地址的服务器相应端口通信外,不与其他微机发生关系;终端与终端之间也不会有任何干扰。其他PC主机在权限范围内可以通过服务器浏览或操作系统中各控制终端的设备状态。这样有利于设备运行的安全性和可靠性。如需系统维护,也只需将安装好空调管理系统的备用服务器的IP地址更改成控制终端对应服务器的IP地址即可。
2 TCP/IP的移植引用
2.1 开源TCP/IP的选择

 从来自不同出处的资料显示,移植TCP/IP到8 bit低端处理器上,如uIP等不同版本TCP/IP栈的移植已有很多成功的案例。本控制终端的网络接口实现,是成功地移植引用了ZLIP版的TCP/IP协议栈[2],其显着特点是:
 (1)有适中的代码量和RAM使用量。使用22.118 4 MHz晶振、KeilC编译器、STC89C58RD+单片机下测试的技术参数如表2所示。
 (2)与BSD套接字基本相同,接口简单,使用方便。
 (3)支持ping命令的响应。     
 (4)本身为单片机设计。所有的外部变量都使用了 xdata类型,全部指针都为明确存储类型的指针,需要重入的函数已经声明为reentrant,减少了重入函数在内存中的滞留。
2.2 网络通信的实现
 (1)ZLIP栈符合BSD标准,定义一个套接字类型的全局变量“ExConn”,创建套接字。即:
ExConn = TCPSocket(IPAddr);
 (2)写函数void OnAcceptRecv(void DT_XDATA* buf,WORD size)REENTRANT_MUL作为连接函数的参数,以便数据传输的有效对接。
 (3)通过调用函数TCPConnect(ExConn,0xc0a80002, 55000,OnAcceptRecv,OnClose)主动与IP“192.168.0.2(IP地址的十六进制表示为0xc0a80002)”相匹配的服务器进行连接。获得服务器分配相应的“55000”端口进行套接,实现收发数据和关闭连接的接口,从此进行正常通信。
 (4)主动与服务器进行连接,提高系统管理的可靠性和安全性。如遇服务器故障或关闭,终端会周期性发出ARP广播,直到重新正常连接。
3 软件的实现
3.1 网卡驱动的引用及更改
3.1.1 网卡驱动基地址的更改

 因为硬件的线路板设计有差别,将ZLIP里的RTL8019.H的基地址宏定义0xb000改成0x8000(#define RTL_BASE_ADDRESS  0x8000)。
3.1.2  网卡复位启动
 添加函数:
void rtl8019as_rst()
{
         unsigned int idata i;
         reset8019=1;
         for(i=0;i<250;i++); reset8019=0;
         for(i=0;i<250;i++);
}
  终端上电时,采用冷启动复位,便于终端即时初始化网卡。
3.1.3 控制终端主程序  
 终端上电,初始化各模块后,通过创建的套接字主动去与服务器对接,然后向服务器发送准备就绪的信号,周期性地检测与服务器连接的情况,静静地等待服务器的指令和观察受控设备的状态。一旦情况有变,就立即执行相应的动作。终端工作流程图如图2所示。
    20121107051637005543270.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-24 01:54 , Processed in 0.057468 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表