面向工业嵌入式系统的网络信息安全防护单元和防护方法与流程

文档序号:17817569发布日期:2019-06-05 21:56阅读:237来源:国知局
面向工业嵌入式系统的网络信息安全防护单元和防护方法与流程

本发明涉及一种面向工业嵌入式系统的网络信息安全防护单元架构及设计方法。不同于传统防火墙及单一网络防护设备等被动防御技术,本发明针对工业嵌入式系统设备的应用场景及功能特性,将传统信息安全的多种安全防护机制应用到了嵌入式设备软硬件设计中,以提高嵌入式工业通讯设备自身信息安全风险防范能力,属于工业控制网络安全领域。



背景技术:

面临工业控制系统存在的各类安全隐患,传统的工业控制系统信息安全防护技术与产品方案主要有如下几种:

(1)工业防火墙,在种类与关键技术方面与一般it防火墙种类类似,总体上分为包过滤、状态包检测和代理服务器等几大类型。可以依据系统内设置的过滤逻辑,也成为访问控制表来对数据包关键因素进行筛查来决定是否允许该数据包通过。

(2)虚拟专用网(vpn)技术,是一种采用加密、认证等安全机制,在公共网络基础设施上建立安全、独占、自治的逻辑网络技术。通过虚拟的组网技术可以构建出高安全等级、高可靠性的专用通信网络。

(3)网络隔离,在公司管理网络和工业控制系统网络之间,采用不同的架构进行网络,加强网络信息安全。通常采用防火墙等信息安全产品在管理网和工业控制系统网络之间建立中间非军事化区(dmz)网络,防止两个网络直接相互通信。

目前工业控制系统中广泛应用的安全防护类产品主要以工业防火墙为主,这种防火墙在传统it防火墙的基础上支持多种工业控制系统通信协议及现场总线。但是这类防火墙只是一种基于ip地址的认证,本身不具备身份认证与加密通信等功能。其包过滤判别的条件为数据包首部的部分信息,这部分信息具有不确定性,容易被伪装。

其次,部分防火墙不提供深度协议解析,不具备检测通过应用层协议而实现的攻击。并且防火墙的安全等级通常依赖指定的过滤规则表,没有很好的测试工具检验其正确性与冲突性,容易导致漏洞。

最后对于采用动态或随机分配端口的服务,该防火墙很难进行有效认证。如远程过程调用服务(rpc)等。

综上所述,本发明针对工业控制系统领域的嵌入式设备的应用特点与组成结构,基于主动防护技术,采用集访问控制、身份认证、数据加密及可信启动等多种安全防护手段来实现对工业控制系统中需要进行保护的关键设备进行保护。在不影响关键设备正常运行的前提下,对工业控制系统网络中的数据流量进行鉴别与过滤,防止恶意数据包对过程控制系统设备如plc等造成危害,从而实现对工业控制系统的保护。



技术实现要素:

针对上述技术不足,本发明的目的提供一种面向工业嵌入式系统的网络信息安全单元(networkguardunit),简称为ngu。

本发明解决其技术问题所采用的技术方案是:面向工业嵌入式系统的网络信息安全防护单元,包括:

访问控制主动检测模块,用于过滤拦截无访问权限的数据流,检测到非法访问流量时,立即阻断数据通信并报警;

身份认证模块,用于使用ngu的现场控制设备通过自己的设备证书与其他通信节点进行身份合法性认证;通过认证后允许通信;

密钥协商模块,用于检测通信加密功能所使用的密钥是否存在脆弱性和/或过期;若是,则进行对会话密钥的协商操作;

通信数据加解密模块,用于使用ngu的现场控制设备通过身份认证后建立加解密通信连接;对需要通信的数据采用国产商用密码系列算法进行加解密;

ngu双网卡模式通信模块和/或ngu网卡+pcie通信模块;

其中,ngu双网卡模式通信模块,用于ngu作为单独模块外置到嵌入式设备通信网络中时,通过采用一对ngu构建虚拟通讯链路,实现对嵌入式设备之间的通讯数据加密处理;

ngu网卡+pcie通信模块,用于ngu与嵌入式设备组成系统时,通讯接口方式为pcie;plc为主设备,ngu为从设备;两个设备共用ngu内部的两个数据区进行资源交换以达到pcie与网卡通信数据转换。

所述访问控制主动检测模块,执行以下步骤:

a)首先,通过网卡的混杂模式对数据流进行捕获;

b)对捕获的数据进行协议分析;

c)对协议的应用层协议进行解析;

d)匹配数据流中的协议解析内容与设定的匹配规则内容是否相符;若相符,则放行数据流;否则对数据流进行拦截并报警。

3.根据权利要求1所述的面向工业嵌入式系统的网络信息安全防护单元,其特征在于所述ngu双网卡模式通信模块的实现包括以下步骤:

a)首先,设置一对ngu分别为服务端与客户端,将服务器端ngu的物理网卡2与嵌入式设备a进行关联,创建虚拟网卡设备tap0;

b)将客户端ngu的物理网卡2与嵌入式设备b进行关联,创建虚拟网卡设备tap1,并与服务端ngu进行通讯;

c)将服务器端ngu的物理网卡2与虚拟网卡设备tap0进行桥接,作为网桥设备br0;将客户端ngu的物理网卡2与虚拟网卡设备tap1进行桥接,作为网桥设备br1;

d)将服务器端ngu与客户端ngu连入到实际网络中,即建立一条ngu之间的虚拟通讯连接,用于负责将嵌入式设备之间的通信数据进行加密。

所述ngu设备网卡+pcie通信模块的实现包括以下步骤:

a)ngu建立两个缓存区,分别为bar0、bar1,bar0为32位fifo,作为ngu与plc主控制器之间descripter的交互,bar1用作轮询模式数据缓冲区;轮询模式下,有数据交互时,首先将数据写入bar1缓冲区内,然后将写入bar1缓冲区的长度和地址组合成descripter,写入bar0中,另一端读取bar0数据,读出bar1中的数据;

b)数据通信过程中,ngu视为plc主控制器的外接网卡,数据通过ngu的网口进入,ngu通过libpcap抓包程序抓到数据包;随后,ngu将数据包写入bar1缓冲区中,并将写入地址与写入长度组合成32位descripter,将descripter写入bar0中;写入过程中,首先检测bar0状态,若已写满,则返回错误;

c)plc主控制器接收到bar0数据后,按descripter读出bar1中的数据,并进行网络数据包的处理。

还包括ngu发送网络数据包,包括以下步骤:

首先将数据包写入bar1缓存区,并根据写入地址与长度组合出descripter,在bar0未满的情况下写入bar0;ngu端每若干ms轮询一次bar0,当bar0非空,ngu读出bar0中的descripter,并根据descripter读出bar1中缓存的数据包,再将数据包通过libpcap经由网口发出。

所述国产商用密码系列算法包括sm2、sm3、sm4中的一种或多种。

面向工业嵌入式系统的网络信息安全防护单元的防护方法,包括以下步骤:

访问控制主动检测模块过滤拦截无访问权限的数据流,检测到非法访问流量时,立即阻断数据通信并报警;

身份认证模块使用ngu的现场控制设备通过自己的设备证书与其他通信节点进行身份合法性认证;通过认证后允许通信;

密钥协商模块检测通信加密功能所使用的密钥是否存在脆弱性和/或过期的风险;若是,则进行对会话密钥的协商操作;

通信数据加解密模块使用ngu的现场控制设备通过身份认证后建立加解密通信连接;对需要通信的数据采用国产商用密码系列算法进行加解密;

ngu双网卡模式通信模块和/或ngu网卡+pcie通信模块;

其中,ngu双网卡模式通信模块,ngu作为单独模块外置到嵌入式设备通信网络中时,通过采用一对ngu构建虚拟通讯链路,实现对嵌入式设备之间的通讯数据加密处理;

ngu网卡+pcie通信模块,ngu与嵌入式设备组成系统时,通讯接口方式为pcie;plc为主设备,ngu为从设备;两个设备共用ngu内部的两个数据区进行资源交换以达到pcie与网卡通信数据转换。

所述ngu双网卡模式通信模块,通过采用一对ngu构建虚拟通讯链路,实现对嵌入式设备之间的通讯数据加密处理,包括以下步骤:

a)首先,设置一对ngu分别为服务端与客户端,将服务器端ngu的物理网卡2与嵌入式设备a进行关联,创建虚拟网卡设备tap0;

b)将客户端ngu的物理网卡2与嵌入式设备b进行关联,创建虚拟网卡设备tap1,并与服务端ngu进行通讯;

c)将服务器端ngu的物理网卡2与虚拟网卡设备tap0进行桥接,作为网桥设备br0;将客户端ngu的物理网卡2与虚拟网卡设备tap1进行桥接,作为网桥设备br1;

d)将服务器端ngu与客户端ngu连入到实际网络中,即建立一条ngu之间的虚拟通讯连接,用于负责将嵌入式设备之间的通信数据进行加密。

所述ngu设备网卡+pcie通信模块,两个设备共用ngu内部的两个数据区进行资源交换以达到pcie与网卡通信数据转换,包括以下步骤:

a)ngu建立两个缓存区,分别为bar0、bar1,bar0为32位fifo,作为ngu与plc主控制器之间descripter的交互,bar1用作轮询模式数据缓冲区;轮询模式下,有数据交互时,首先将数据写入bar1缓冲区内,然后将写入bar1缓冲区的长度和地址组合成descripter,写入bar0中,另一端读取bar0数据,读出bar1中的数据;

b)数据通信过程中,ngu视为plc主控制器的外接网卡,数据通过ngu的网口进入,ngu通过libpcap抓包程序抓到数据包;随后,ngu将数据包写入bar1缓冲区中,并将写入地址与写入长度组合成32位descripter,将descripter写入bar0中;写入过程中,首先检测bar0状态,若已写满,则返回错误;

c)plc主控制器接收到bar0数据后,按descripter读出bar1中的数据,并进行网络数据包的处理。

还包括ngu发送网络数据包,包括以下步骤:

首先将数据包写入bar1缓存区,并根据写入地址与长度组合出descripter,在bar0未满的情况下写入bar0;ngu端每若干ms轮询一次bar0,当bar0非空,ngu读出bar0中的descripter,并根据descripter读出bar1中缓存的数据包,再将数据包通过libpcap经由网口发出。

本发明具有以下有益效果及优点:

1.本发明以保证工业生产过程中的如plc、rtu、控制器及scada系统生产、控制与管理的功能安全目标为前提,通过结合信息安全领域主动防护技术手段为工业控制系统构建安全可信的运行环境。

2.本发明将访问控制、身份认证、异常检测等技术进行有效结合,解决了传统被动式响应过滤规则所存在的安全风险对工业控制系统的困扰问题。

3.本发明针对工业嵌入式通讯设备结构与应用特点,支持网卡-网卡与网卡-pcie两种工作模式,支持ngu设备与plc等设备通过pcie进行系统内部通信。

4.本发明支持通过构建虚拟专用通信网络的方式对嵌入式设备之间通讯数据加密,保证数据私密性。

5.本发明提供了一种工业控制系统动态处理安全威胁的能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,均应落入本发明的保护范围。

图1为本发明中ngu设备系统结构示意图;

图2为本发明中ngu启动流程示意图

图3a为本发明中ngu双通信模式示意图一;

图3b为本发明中ngu双通信模式示意图二;

图4a为本发明中bypass功能示意图一;

图4b为本发明中bypass功能示意图二;

图5为本发明中ngu设备加密芯片阵列原理图;

图6为本发明中双网卡ngu设备数据收发流程图;

图7为本发明中双网卡ngu设备专用通道拓扑结构图;

图8为本发明中ngupcie系统框图;

图9为本发明中ngupcie通信数据descripter结构组成图;

图10为本发明中ngupcie通信流程图;

图11为本发明中ngupcie部分bar0与bar1地址映射关系示意图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明。

基于一种面向工业嵌入式系统的网络信息安全防护单元,现场控制设备通过结合访问控制、身份认证及数据通信加密等安全防护技术手段进行主动管控与被动响应,对异常行为进行预警,包括以下步骤:

双物理通信模式,考虑到ngu在不同环境下、与不同设备通信使用,ngu支持传统的以太网-以太网通信接口模式,同时支持以太网-pcie(或其他背板总线)模式。可根据不同的网络数据与不同的设备选择不同的通信接口,提高ngu的适用性。

硬件加解密模式,工业控制系统对数据在ngu中的处理时长有严格要求,采用安全sd控制芯片对数据进行硬件加解密与签名操作,保证处理时间在可控范围内,并支持des、3des、aes、sm1、sm4、ssf33多种数据加/解密算法,rsa、ecc、sm2三种签名算法,以应对不同加解密与签名算法的应用。

bypass功能,在断电或发生故障的情况下,ngu处于bypass打开状态,让连接在ngu上的两个网络在物理上直接连通,数据不再经过ngu设备,当设备正常启动后,bypass切换到关闭状态,数据进入ngu设备,保证任何情况下整个网络的连通性。

访问控制,针对经过网络安全单元ngu的数据流量,需要制订对应的访问控制策略来限制非法指令或无效数据对控制系统的访问。访问控制功能基于“白名单”方式进行设计,默认规则阻止一切数据流量,只有与合法接入规则相符的流量才可以放行,否则需要对数据进行拦截并报警。

身份认证,设备接入工业网络后,采用数字证书进行双向认证,并提供crl多种方式的证书有效性验证,提供pkcs1/pkcs7、attach/pkcs7、

detach/xml等格式的数字签名的制作和验证功能。

通信数据加密,为完善数据传输过程中的保密性需求,采用密文传输方式替代明文传输。数据加密采用对称加密和非对称加密算法相结合的方式来保证数据传输过程中的安全。

密钥证书管理,为保证身份认证与通信加密功能的正常实现。需要对参与数据加密与设备数字证书申请操作过程中的主要根证书与签名私钥进行安全存储。采用防dpa/spa功耗攻击的安全密码芯片阵列来安全存储关键密钥及证书。

密钥协商,通信双方建立通讯连接后需要进行安全密钥协商,以保证每次会话中的通讯密钥具备一次一密、随机生成的特性。需要遵循类如dh

(diffie-hellman)安全协议完成密钥协商,并且密钥协商过程在芯片内部完成,保证密钥在制作与使用过程中不会出现泄漏。

ngu双网卡模式通信,ngu作为单独安全模块外置到plc等嵌入式设备通信网络中时,通过采用一对ngu设备构建虚拟专用通讯链路实现对plc等嵌入式设备之间的通讯数据加密处理。

ngu网卡+pcie通信,ngu与plc或其他设备组成系统时,通讯接口方式为pcie。plc为主设备,ngu为从设备。两个设备共用ngu内部的两个数据区进行资源交换以达到pcie与网卡通信数据转换。

本发明包括以下模块:

访问控制主动检测模块,用于过滤拦截无访问权限的数据流,检测到非法访问流量时,立即阻断数据通信并进行报警;

身份认证模块,用于使用ngu的现场控制设备通过自己的设备证书与其他通信节点进行身份合法性认证;通过认证后允许通信;

通信数据加解密模块,用于使用ngu的现场控制设备通过身份认证后建立安全加密通信连接。对需要通信的数据采用国产商用密码系列算法进行安全加密,防止通信内容被侦听;

密钥证书管理模块,用于保证身份认证与通信加密功能的正常实现。需要对参与数据加密与设备数字证书申请操作过程中的主要根证书与签名私钥进行安全存储与更新;

密钥协商模块,用于检测通信加密功能所使用的密钥是否存在脆弱性(如协商的秘钥位数过短(位数小于限值)、秘钥以明文方式发送、秘钥存储位置访问权限过低(权限低于限值)等)或过期的风险,若存在问题则基于安全密钥协商技术方法进行对会话密钥的协商操作。

ngu双网卡模式通信模块和/或ngu网卡+pcie通信模块。

本发明针对目前工业控制系统中已经运行的缺少自身信息安全防护能力的传统嵌入式电子设备,提出基于网络安全单元(ngu)的安全防护架构,在每一个嵌入式电子设备前端串接网络安全单元(ngu),在满足不同工业应用实时性于可靠性需求的前提下,采用安全可信主动防护技术,提供传统嵌入式电子设备的身份认证、通信数据的加/解密以及通信行为的访问控制等安全功能。

本文的实施例是以plc(可编程逻辑控制器)为特定说明对象,如图1为本实施例的ngu的安全防护架构图,但不限于应用于plc上。

(1)ngu系统结构组成:

ngu系统结构组成如图1所示,包括输入以太网接口,输出以太网接口、pcie接口、uart通信接口和系统调试接口。

a)数字系统核心模块(fpga),本设计采用xilinx公司的zynq系列的fpgazynq-7015可扩展处理平台作为ngu设备系统应用实现核心淡单元。该系统通过硬连线完成包括l1,l2缓存、存储控制器以及常用外设在内的全面集成。

b)ngu硬件接口支持8/16/32位宽度的并行总线和spi串行总线,软件接口支持身份认证、数据加/解密、数字签名,访问控制等功能函数库,支持linux操作系统,支持tcp/ip、icmp、snmp等协议。

c)ngu硬件部分具有算法加速器、密钥存储器、密钥产生器、真随机数发生器和hash加速器等。支持des、3des、aes、sm1、sm4、ssf33多种数据加密算法,基于加/解密的速率不低于3.91mb/s。

d)ngu设备支持rsa、ecc、sm2三种签名算法,rsa算法支持1024、1280两种密钥长度,ecc算法支持192、256两种密钥长度。sm2密钥长度为256位。

(2)设备启动:

为ngu设备上电后,ngu设备开始启动,启动过程如下图2所示

a)网络安全单元(ngu)系统上电,按照系统配置,加载fpga网表,加载boot程序,进行系统初始化,加载系统软件,运行实时操作系统;

b)运行系统驱动程序,对通信模式进行选择,bypass功能打开,加载通信输入以太网、输出以太网和pcie通信设备,实现设备联网;

c)ngu进行密钥更新,通过安全的密钥协商协议,使可信plc与ngu之间、网络安全单元(ngu)与网络安全单元(ngu)之间能够进行对称加密和非对称加密通信;

d)ngu应用软件启动访问控制、身份认证、通信加/解密、密钥协商等安全功能。

(3)双物理通信模式:

ngu设备支持传统的以太网-以太网通信接口模式,同时支持以太网

-pcie(或其他背板总线)模式,设备成功启动后,对通信方式进行检测和选择。启动过程中对通信模式的选择流程参考图3a、图3b。

a)检测网口1是否有数据传入,若有连通,则说明ngu设备已经正常连入网络中。

b)检测网口2能否连入网络,若能连通,则选择以太网-以太网通信接口模式,在ngu中建立网桥,将网口1与网口2接入网桥中。

c)若网口2不能连入网络,则检测pcie接口(或其他背板总线)是否连接成功,若pcie接口连接成功,则调用pcie的配置程序,通过pcie接口发送配置数据。

d)若网口2与pcie接口均不能连接,则发出报警信息。

(4)bypass功能:

bypass功能保障整个网络在ngu未启动或故障时仍能连通,不会造成断网事故,确保整个网络的安全与可靠性。bypass功能在ngu不同状态下的功能参考图4a、图4b所示。

a)断电情况下,网口1与网口2在物理上直接连通,并不经过ngu或其他设备。

b)ngu上电后,首先进行内部检测,如果检测通过,则切换网口1与网口2连入ngu模块,并进行连接方式的检测。

c)若ngu上电后内部检测没有通过,则仍保持网口在物理上的直接连接,并发出报警信息。

(5)加密芯片阵列

ngu硬件主板搭载了支持国密算法的加密芯片阵列,负责为ngu设备身份认证、密钥管理、数据加解密通信功能提供算法支持。ngu设备加密芯片阵列硬件结构原理图参考图5所示。

a)芯片加密模块,支持国密专用算法sm1、sm2、sm3、sm4,国际算法des、rsa,纯硬件产生真随机数。

b)芯片存储模块,集成64kbrom,可将成熟固件或受保护代码掩膜到rom,密码算法受mpu保护;20kb片内sram,可完成高速数据处理;512kbnorflash,足够满足不同应用需求。

c)芯片接口模块,2个usbotg接口,高速480mbps,全度12mbps;2个spi主/从接口,速度高达400kb/s;其他接口:2个uart、i2c接口。

d)芯片安全性设计1,具有时钟扰乱技术、总线扰乱技术等安全技术,增加算法代码分析难度,提高对简单功率分析spa和差分功率分析dpa攻击防护能力。

e)芯片安全性设计2,采用封闭调试、测试线路、安全布线等技术避免非法人员直接从外部加上探针进行检测,防止探针/fib(聚焦离子束)探测攻击。

f)芯片安全性设计3,采用外部闪存存储关键程序(如固件)和敏感数据,剖片无法获取加密相关数据和程序,而外部闪存中的数据经过加密,从根本上杜绝了依靠剖片获取数据的可能性。

g)芯片安全性设计4,采用低电压检测电路技术,防护芯片遭受临界低电压攻击。

(6)双网卡ngu设备专用通讯技术原理

使用双网卡ngu设备对通信数据进行加密时,需要将一对ngu设备配置为vpn服务端与客户端。服务器端ngu设备提供对客户端ngu设备虚拟网卡的路由管理。

a)当客户端ngu设备发起对服务器端ngu设备的连接请求与数据访问时,数据包都会经过路由流经虚拟网卡,服务进程在虚拟网卡上截获ip报文,然后使用ssl协议将这些ip报文封装起来,再经过物理网卡发送出去。

b)ngu设备服务器端与客户端支持tcp与udp两种连接方式,使用配置工具预先定义好双方ngu设备的连接方式(tcp或udp)和端口号。ngu客户端与服务器端在这个连接基础上进行ssl握手。

c)ngu通讯连接过程包括ssl的握手过程以及虚拟网络上的信息管理。服务器端ngu设备将虚拟网络连接上的网段、地址、路由信息发送给客户端。

d)连接成功后,客户端与服务器端ngu设备建立起ssl安全连接。ngu客户端与服务器端交互的数据都先经过虚拟网卡进行ssl封包处理,再在tcp或udp连接上从物理网卡上发送出去。

(7)双网卡ngu设备发送数据包流程

双网卡ngu设备发送数据包流程见图6黑色箭头指向。

a)应用层发出的数据,先经过系统调用接口传入核心tcp/ip层做数据处理。

b)数据在tcp/ip层经过路由到虚拟网卡时,虚拟网卡的网卡驱动发送处理程序hard_start_xmit()将数据包加入skb链表并完成数据包从核心区到用户区的复制。

c)ngu设备专用通讯程序调用虚拟网卡的字符处理程序tun_read(),读取到设备中的数据包,对读取的数据包使用ssl协议进行封装处理。

d)将封装好的数据包通过socket系统调用发送出去。

(8)双网卡ngu设备接收数据包流程

双网卡ngu设备接收数据包流程见图6白色箭头指向。

a)物理网卡接收到数据包,经过核心tcp/ip上传到ngu专用通讯进程。

b)ngu专用通讯程序通过link_socket_read()接收数据包,使用ssl协议进行解包处理,经过处理的数据包通过ngu专用通讯程序调用虚拟网卡的字符处理程序tun_write()写入虚拟网卡的字符设备。

c)虚拟网卡设备驱动程序完成数据从用户区到核心区的复制,并将数据写入skb链表,然后调用网卡netif_rx()接收程序,数据包再次进入系统tcp/ip协议栈,传到上层应用程序。

(9)双网卡ngu设备通信建立过程

ngu双网卡通信为以太网-以太网接口模式。ngu设备在对plc等工业通讯设备提供安全防护时,通过在两台ngu设备之间建立一条虚拟专用通信网络数据链路,两侧的ngu设备分别与plc设备与工程师站采取直连方式进行连接。plc设备与工程师站的通信经过ngu设备时会进行数据加密/解密操作,通过ngu设备处理后发送到外部网络。ngu与通讯设备的连接拓扑图如图7所示。

a)首先为ngu设备1创建一个虚拟网卡设备tap0,并启动ngu设备1上的专用通讯服务器进程,通过指定命令参数的方式指定服务器端程序负责处理虚拟网卡tap0上的数据收发。同理也为ngu设备2创建虚拟网卡tap1,并启动ngu设备2上的专用通讯客户端进程,指定客户端程序使用虚拟网卡tap1。

b)ngu设备的两块网卡,分别对应两个不同的网段。网段1.1.1.*为外部网段,而网段210.45.66.*则作为外部设备与ngu设备组合的内部网段。对于两个不同的网段,为ngu设备的两个物理网卡分配不同的ip地址以进行区分。针对ngu设备1的eth0网卡,分配地址如1.1.1.3;同理为ngu设备2的eth0网卡分配ip地址1.1.1.4。两个ngu设备的eth0作为外部网卡进行连接,通过ngu专用数据通讯程序处理后的数据包最终通过网卡eth0进行发送和接收。

c)ngu设备1的内部网卡eth1,在ngu专用通讯服务器端使用桥接方式,将服务器端程序所使用的虚拟网卡tap0和内部物理网卡eth1组合成一个网桥设备br0,用以连接客户端与服务器端ngu设备所在的两个不同的网段,使其能够相互通讯。为网桥设备br0设置ip地址如210.45.66.3

d)按照c)中的步骤,将ngu设备2的内部网卡eth1和虚拟网卡tap1进行桥接建立网桥设备br1。为网桥br1设置ip地址如210.45.66.4

e)通过上述设置后,在ngu设备1物理网卡eth1对应的网口连入嵌入式设备a,为设备a分配内网地址如210.45.66.5;并在ngu设备2的往里网卡eth1对应的网口连入嵌入式设备b,为设备b分配内网ip地址如210.45.66.7。

f)通过采用桥接模式下配置ngu设备与嵌入式设备内外网段ip地址后,建立了嵌入式设备a到设备b之间的一条虚拟专用通讯链路,数据通过ngu设备时在ngu内部虚拟网卡进行数据加密封包/拆包解密操作后,发送到ngu外部网卡上进行数据收发。在外部网络的数据包内容不可见,保证私密性。

(10)ngupcie通信结构:

ngu设备支持传统的以太网-以太网通信接口模式,同时支持以太网-pcie(或其他背板总线)模式,当ngu采用pcie通信接口模式时,将与plc设备共同组成一套系统。ngupcie通信内部结构如图8所示。

a)在整个plc系统中,传统plc控制器作为主设备(rootcomplex),ngu为从设备(endpoint)。两个设备之间进行数据通信时共用ngu中pl部分建立的两个数据寄存区bar0与bar1。bar0为控制区域,bar1为数据交换区域。

b)plc控制器与ngu共用数据区bar1,双方都以轮询的方式访问bar0中的状态字status来知道是否有数据进行交换。

c)bar0为32位fifo,作为ngu与plc主控制器之间descripter的交互,bar0的构成见表1(本发明中ngupcie部分bar0空间组成内容表)。

表1bar0空间组成

d)descripter(描述符)定义及结构。descripter由32bit构成,其中高16bit为数据在bar1中的地址,低16bit为数据帧的长度。descripter结构见图9。

e)bar1用作轮询模式数据缓冲区。在轮询模式下,有数据交互时,首先将数据写入bar1缓冲区内,然后将写入bar1缓冲区数据长度和地址组合成descripter,写入bar0中;另一端读取bar0数据,根据读到的descripter获得数据的实际地址,进而读出bar1中的数据。

f)bar1空间定义。一共128kb,其中低64kb为plc主控制器写给ngu的数据,高64kb为ngu要给plc主控制器的数据。

g)数据包大小最大不超过1500字节,bar1中数据写入采用0x600地址对齐格式,数据循环写入,最大写入地址为0xxxxx,共可循环写入32条数据,与bar0中深度为32的fifo对应,保证不会出现数据混叠,示意如图11。

(11)ngupcie通信接收网络数据过程:

ngupcie通信接收网络数据过程见图10。

a)ngu通过包捕获器抓到经由网口接收到的网络数据包。

b)ngu经过处理后把数据写入bar1的rxbuffer中,并将写入地址与写入长度组合成32位descripter,然后把该帧数据的descripter写入bar0中;写入过程中,首先检测bar0状态,若已经写满,则返回错误。

c)此时plc主控制器在一直轮询bar0的status,当(status&0x01)==0时,表示ngu有数据要给plc主控制器,plc主控制器就从bar0的rdata中读出一个descripter,知道这帧数据在bar1rxbuffer的起始地址及数据长度,并读走数据。

d)plc主控制器也可以在轮询status时,连续读走多个descripter,然后一次性读走多个数据。

(12)ngupcie通信发送网络数据过程:

ngupcie通信发送网络数据过程见图10。

a)plc主控制器把要发送的数据写入bar1的txbuffer中,根据写入地址与长度组合成descripter,再把对应的descripter写入bar0的wdata中。

b)ngu通过轮询bar0中的status就可以知道plc主控制器有数据要发送且数据已经准备完成。ngu根据descripter从txbuffer中读走缓存的数据并进行处理后,将处理后的数据提交给包捕获器。

c)包捕获器将收到的数据包经由ngu网口发出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1