一种分散控制系统网络数据采样仪
技术领域
本发明涉及网络数据采集器,特别是用于对发电厂DCS网络(工业以太网)进行数据采集的、采用在线被动监听方式的微电脑控制仪器。
背景技术
通过采样仪器对发电厂DCS网络(工业以太网)进行数据采集,这样,有助于对发电厂的生产进行动态和实时监管,有利于生产的安全正常进行。而现有采样仪通常通过CPU将数据包从网卡内存送到系统内存,这样增大了CPU的工作量;其次,现有采样仪采用中断的方式读取数据,同时,其网卡收到的数据包在内核空间,需要copy到用户空间后,用户空间的应用程序才能获取数据,从而降低了系统的效率和性能。
发明内容
本发明的目的是提供一种分散控制系统网络数据采样仪,以改善短长度数据包接收的效率,减少中断触发的时间,同时提高系统的效率和性能。
本发明的目的是这样实现的:一种分散控制系统网络数据采样仪,其特征是:包括
微电脑处理器:型号为Freecale公司的I.MX27Arm9处理器,内置Linux操作系统;
数据直传控制器:经总线与微电脑处理器连接;
Flash存储器:由NorFlash存储器S29WS256N和NAND Flash存储器K9F1G08U0A经总线与微电脑处理器连接组成,用于存放启动代码、Linux内核和用户程序;
同步动态随机存取存储器:型号为MT46H16M32LF,作为监控程序的运行空间,经总线与微电脑处理器连接;
以太网接收器:用作经网卡与发电厂以太网连接,型号为KSZ8041NL,经总线与微电脑处理器连接;
USB接口:由三个USB接口组成,用于支持对鼠标,键盘,U盘从设备的读写;
EEPROM只读存贮器:与微电脑处理器连接,其内置有数据包处理模块,中断唤醒数据接收模块,内存零copy模块;
数据包处理模块:由以太网接收器来的数据包队列直接送入所述数据直传控制器的数据缓冲区,并由其内核空间映射到用户空间,以供用户使用;
中断唤醒数据接收模块以及内存零copy模块:第一步,网卡驱动初始化;第二步,配置网卡;第三步,数据直传控制器缓存和数据直传控制器初始化后进行读取数据,若网卡中断,同时数据直传控制器缓存为空,则将内核空间映射到用户空间,并通知应用层;若网卡未中断或数据直传控制器缓存不为空,则返回数据读取状态;先判断应用层是否满足缓存为空、数据包是所支持的类型、数据头有效以及是所支持的协议的四个条件,在四个条件均满足的情况下,才将读取数据写入磁盘,如果对一条件的判断结果为“否”,也就是应用层不满足当前判断的条件时,返回继续进行该条件的判断,直到满足该条件为止,再进行下一条件的判断。
与现有技术相比,本发明的有益效果是:
1、采用DMA技术
从网卡上收到数据包后,将数据包从网卡内存送到系统内存,采用了DMA方式,节省了CPU的参与,可以让CPU将主要功能集中到数据的分析上。
2、采用NAPI技术可以大大改善短长度数据包接收的效率,减少中断触发的时间。
NAPI是Linux上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后POLL的方法来轮询数据。随着网络的接收速度的增加,触发的中断能做到不断减少。而在网络层次上,NAPI技术已经完全被应用到了网卡驱动中,并且提供了专门的POLL方法一process_backlog来处理轮询的方法。
3、内存零Copy技术
Linux操作系统分为内核空间和用户空间,一般而言,网卡驱动收到的数据包在内核空间,需要copy到用户空间,然后用户空间的应用程序才能获取数据。内存copy是比较费时间的,本系统采用在内核空间分配连续的内存地址,然后将内核空间的地址映射到用户空间,使用户空间的程序不需要copy就可以直接访问内核内存,避免了内存copy,大大提高了系统的效率和性能。
4、本采样仪采用在线式被动监听的方法对发电厂DCS网络(工业以太网)进行数据采集。该数据采集方式适用于采用IEEE802.3技术规范。该设备是采用被动监听的方式(不向网络发送任何数据,只是被动监听)进行网络数据采集,特点是不占网络带宽,可长期在线采集(设计采集周期为一个月),可热插拔。该设备的软件平台采用是基于裁剪内核UNIX软件平台设计。
附图说明
图1是本发明的硬件结构图;
图2是数据包处理程序(即模块)流程图;
图3是中断唤醒数据接收程序以及内存零copy程序流程图。
具体实施方式
参见图1,硬件资源:
处理器:Freecale公司的I.MX27Arm9处理器;
64M SDRAM;
32M Nor Flash;
128M NAND Flash;
实时时钟;
两个USB Hi-speed HOST接口及一个USB OTG接口;
100M的以太网接口;
串行接口;
EEPROM接口(用于以后系统功能的扩充);
引出的16个GPIO接口(用于以后系统功能的扩充);
引出的8x8的键盘接口(用于以后系统功能的扩充)。
硬件资源描述
1、Freescale的I.MX27微处理器
I.MX27是一种基于ARM926EJ-S的片上系统,为下一代消费和工业电子产品的开发开辟了新的道路。400-MHz I.MX27处理器的高速性能以及广泛的外围接口使其成为各种大批量生产型产品的理想选择。
ARM926EJ-S微处理器以单独的16K字节、64路结合组(set-associative)指令以及数据高速缓存为核心。
I.MX27内置一个高性能100Mbps以太网媒体存取控制器,以及其他丰富的外部接口,可连接各种外设,包括ATA存储外设、小键盘和触摸屏等。
ARM926EJ-S的32位微控制器可以依据不同电压的不同,工作在不同的工作模式下
I.MX27适于多种应用,包括:数字媒体服务器和自动点唱机、远程信息控制系统、瘦客户机、机顶盒、POS终端、工业控制、生物测定安全系统以及GPS设备等。
(1)400MHz ARM926EJ-S处理器:
16KB数据高速缓存和16KB指令数据高速缓存
MMU可支持Linux和Microsoft Windows CE
133MHz系统总线
高性能的32位ARM RISC引擎
(2)集成的外设接口:
ATA接口可接硬盘
100Mbps以太网MAC
2端口USB 2.0高速主机接口及1USB2.0OTG接口
6个UART
I2C接口
LCD/触摸屏接口
SPI(串行外设接口)端口
Multimedia接口
(3)外部存储器选项:
32位SDRAM接口,NOR FLASH and NAND flash接口
串行EPROM接口
(4)内置外设
带软件微调的实时时钟
最优化系统性能的数据传输DMA通道
Watchdog计时器
(5)通用I/O
具有中断能力的增强型通用I/O
额外增加多路复用在外设上的可选通用I/O
2、Flash存储器
系统主板包含32MB的NorFlash(S29WS256N)存储器和128M NAND Flash(K9F1G08U0A),用于存放启动代码、Linux内核、用户程序等。
3、SDRAM存储器
系统主板包含64MB SDRAM(MT46H16M32LF),作为监控程序的运行空间。
4、异步串行通讯口
外接三个UART(Universal Asynchronous Receiver/Transmitter),UART0和UART1,UART2。UART0用于软件调试与系统控制。
5、100M以太网接口
MAC是OSI参考模型中界于物理层(PHY)与逻辑链路层(LLC)之间的MAC子层的硬件实现,以太网MAC支持MII(Media Independent Interface)和RMII(Reduced Media Independent Interface)模式的数据传输。方便系统接入局域网进行监控。本系统采用了KSZ8041NL芯片。
6、USB接口
本系统利用I.MX27片内集成的USB通讯控制器,扩展了三个USB HOST.用于支持对鼠标,键盘,U盘等USB从设备的读写。本系统用于对U盘及移动硬盘的支持。本系统采用了NXP_ISP1504 Transceiver.
软件结构描述:
本系统采用嵌入式实时linux操作系统,保证了工业控制的实时性。同时采用了几种新的技术,减少了从kernel到用户空间内存的拷贝。
系统软件:
1、操作系统
嵌入式实时操作系统l inux2.6.19.
2、实时时钟
RTC驱动存储时间
3、UART
UART驱动,为本系统调试控制
4、MTD
Nor FLASH驱动,用于系统软件烧写,及文件系统支持
5、USB
支持大容量存储器等
6、GPIO
硬件系统通讯
7、Network driver
用户空间监控程序接口。
用户空间软件
8、LAN monitor
以太网流量监控软件。该应用程序获取到以太网数据报文,根据同步的网络时间,记录当前网络的流量及流速。然后将记录的信息,存储到永久介质上,保存成文件,以便用于网络故障的分析。