基于Rabbit2000的嵌入式网络智能测控系统
关键词:Rabbit2000;网络;智能测控系统
1 引言
Internet技术的飞速进展,使得基于分组交换技术的通信性能、通信质量和可靠性得到稳步提高,基于8位、16位单片机的嵌入式设备(如仪器仪表、数据采集和显示、过程控制、工业自动化等)的实时应用,测控系统正在走向网络智能化[1]。这就要求企业从现场控制层到管理层能实现全方位的无缝信息集成, 实现远程维护、智能诊断以及远程管理功能[2], 提供一个开放的基础构架,并具有高可靠性、分散控制、集中监视和管理的功能。
Z-World[3]公司以Rabbit2000微处理器为核心研制了一系列嵌入式系统模块,使用这些模块能够实现对集成了网络的嵌入式系统进行快速开发。本系统以Rabbit2000微处理器为核心,采用模块化和智能式的分布技术设计嵌入式网络智能测控系统。
2 Rabbit2000的性能特点
Rabbit2000是Rabbit半导体公司为嵌入式环境设计的高性能低价位的8位微处理器,以其C语言友好指令集和快速数字处理功能而受到瞩目。它和Z80系列微处理器有相似的结构和高度的兼容性,但性能有很大的提高。具有多达40个通用I/O引脚。内建日历、时钟、看门狗、定时器、多级中断、双DMA通道,可外扩4~8MB Flash,用于数据存储。对于8位总线的微处理器,Rabbit具有很高的计算速度,这对于实时操作系统是极为重要的。对于Rabbit2000,传统的微处理器硬件和软件的开发已被简化,不再需要在线仿真。用1根接口电缆把PC串行口和基于Rabbit2000的目标系统连接起来就可实现软件的开发。Rabbit2000具有4个串行端口,具有很强的组网通信能力。它能精确地产生脉冲和边沿,可实现多优先级中断。处理器速度和功耗在程序控制之下,在处理器持续执行指令的时候,能使用超低功耗模式实现计算和执行逻辑检测,为实现低功耗设计提供了方便。
Rabbit 2000芯片上外设包括5个8位并行I/O端口、4个串行端口、1个子端口、5个8位定时器、1个10位定时器、精确脉冲发生硬件和电池支持的RTC。其串口可采用同步或异步传输方式,采用29.4912MHz的系统频率,异步传输速率最高可达91.6kbps。
Rabbit2000以Z-World’s公司的C语言开发系统Dynamic C[4]编译器为其开发工具。其特点是有1个交互式编译程序、编辑程序和调试程序,通过1个10线的简单接口可实现EPROM编程和在线仿真。此外,Rabbit2000可以运行流行的Internet协议栈,如HTTP、SMTP、POP3、TCP、UDP、ICMP、IP等,还可以在外接一个以太网控制芯片RTL8019的情况下,实现Ethernet (IEEE802.3)协议处理,使该系统可以直接通过RJ-45连到以太网上。
3 嵌入式网络智能测控系统设计
3.1 测控设备硬件结构
对于所要实现的嵌入式系统,系统硬件设计是围绕Rabbit 2000微处理器来进行的,包括存储器、处理器、振荡晶体、标准编程口、以太网接口、串行接口(RS232、RS485)、数字量I/O(DI/DO)接口、模拟量I/O(AI/AO)接口、扩展接口,在一些情况下还要包括功率控制器和系统供电设计,具体应用时可根据不同的应用要求对各种功能模块进行适当增减。图1为硬件实现框图。
图1 网络智能测控装置(MCD)
3.2 实现方案
图1所示的测控装置可实现多种监测和控制功能,并通过以太网接口(RJ-45接口)连到Hub后由路由器接入Internet构成网络智能测控系统。如图2所示。
图2 网络智能测控系统
本系统中,每台主机和测控装置(MCD)都有自己独立的IP地址,互相之间可进行通信,远程主机(Remote PC)可通过拨号连接(图中所示就是这种情况)或通过以太网网关接入Internet来访问测控装置,使用其提供的服务或对其进行系统编程和远程启动。测控装置具有一般单片机系统的所有测控能力,并且可根据需要提供各种网络服务,包括:作为一台简单的Web服务器,提供简单的网页供外部主机访问,提供可被远程主机修改的表格资料;提供文件传输服务(FTP),可作为FTP客户端或服务器;提供SMTP(简单邮件传输协议)服务,自动或定时向指定的电子邮箱发送E-mail,以传递系统的实时数据或报警信息;提供远程登录(TELNET)服务以及其他的Internet服务。
3.3 工作过程
图2中测控装置的主要任务是与探测器通信,以获取现场信息并对信息进行集中处理后, Rabbit2000的串行口将这些信息传至PC,或由PC来查询。PC机在获取测控装置上的报警信息后,按一定的协议格式对报警信息进行包装,并将之传送到远程PC上,这样形成一个星形的网络结构,以此构成测控信息的局域网
系统有两种类型的网络节点:一种是与PC进行通信的节点;另一种是测控装置与探测器进行通信的探测器节点。传输协议采用规范化数据结构,设有BBC校验位,且采用软件容错技术。管理软件设有容错陷阱,有效地消除随机干扰引起的死机或误报现象。主机为PC机,其网络ID号为0,每个测控装置都有1个唯一的大于0的ID号。PC与测控装置通信采用标准的协议格式,它所发出的信息帧中携有目的控制器的ID号。如果目的控制器的ID号为0,则为广播信息,否则只有和目的控制器的ID号相同的控制器才接收该帧并对帧格式和CRC检验和进行判断。在紧急报警时,探测器的报警信息中携有地址编号和时间信息,而在自动故障报警时,报警信息由故障地址编号和故障等级信息组成。控制器有2种运行模式:模式A是双向运行,收到报警信息时立即将该信息转发给PC机;模式B是单向运行,收到报警信息后首先在控制器的数据库中保存该条信息。当PC机来查询火警信息时才发送给PC机。
PC机由后台的基于Winsock的网络程序将报警信息发往外部网络。在Rabbit2000的协议栈中,对TCP/IP的实现是通过Dynamic C提供的TCP/IP应用程序接口来实现的:
#define MY-GATEWAY “202.196.187.1” //网关
#define MY-IP-ADDRESS “202.196.187.28” //IP地址
#define MY-NETMASK “255.255.255.0” //子网掩码
#memmap xmem //代码存储在扩展存储区
#use “dcritcp.lib” //数据库
Sock_init() //TCP连接初始化
tcp_reserveport(MY_PORT) //TCP连接保持
tcp_open(socket,0,ip,PORT,NULL) //主机建立会话
tcp_listen(socket,MY_PORT,0,0,NULL,0) //监听端口
sock_established(socket) //建立TCP连接
sock_dataready(socket) //取得等待输出的字符数
sock_gets(socket,buffer,len) //从套接字中读取字符串
sock_twrites(socket,buffer,len) //向套接字中写入字符串
sock_close(socket) //连接断开
图3 系统程序执行过程图
系统的工作过程如图3。
通过安装在上位机中的Web浏览器,在客户端的浏览器中输入现场设备的IP地址(202.196.187.28),即可获得对现场设备的访问权,可直接访问接入工业以太网的现场设备,获得监测数据,如图4所示。
图4 监控页面
4结论
随着以太网技术的不断发展,嵌入式系统与以太网相结合应用于工业控制领域是一种发展趋势。Rabbit2000微处理器在同类8位微处理器中具有功能强、成本低、速度快等特点,同时提供了一套嵌入式开发工具以及网络支持的Dynamic C,使得网络功能开发简便、快捷,也证明了将嵌入式系统和以太网应用于工业控制的可行性和实用性。
本系统的应用较广:
1)智能大厦。随着计算机的普及应用以及网络和自动化技术的发展,大厦内所有公共设备都将采用嵌人式智能测控系统来提高服务能力。
2)工业自动化。工业现场应用了大量的8、16、32位嵌入式微控制器,其网络化是提高生产效率和产品质量、减少人力资源的主要途径,在工业过程控制、电力系统、电网安全、电网设备监测、石油化工等系统中具有广阔的应用前景。
3)智能仪器。根据不同要求,只需对软硬件做部分修改,简化系统,大大地提高了开发效率,具有广阔的应用空间。
4)矿井智能监测。能解决矿山网络传输中有关安全信息数据的采集问题,应用前景广阔。
本文作者创新点:1. 64路开关量输入、8路模拟量输入及16路开关量输出,反映敏捷;2.输入、输出全部电气隔离、具有声光报警的功能;3. 控制器有2种运行模式:双向运行和单向运行,保证信息传递的目的性;4. 支持Dynamic C,支持多任务,可以满足各种复杂控制、运算的要求及远程在线编程、维护;5. 与同类产品相比,具有功能齐全,性能可靠,使用方便等特点。
参考文献
[1]俞新祥,翁一武.基于Internet 的分布式供能远程监控系统[J].微计算机信息,2006,7-1:4-6
[2]鲍吉龙,叶平.工业监控系统的网络化发展[J].微计算机信息,2006,6-1:66-68
[3]Z-World.Rabbit2000 Microprocessor User’s Manual.1999.
[4]Z-World. Dynamic C Premier for Rabbit Semiconductor Microprocessors(Integrated C Development System User’s Manua1)[Z].1999
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论