具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为了实现本发明之目的,本发明的实施例提出了一种数字通信的发送方法,包括以下步骤:系统向网络中的节点发送配置表,所述节点包括发送节点和接收节点;发送节点向接收节点发送数据包,所述数据包至少包括地址、控制、长度以及数据四部分的字段,所述配置表用于解析所述四部分的字段。上述“系统”指的是应用本发明技术方案的数字通信网络系统,为了实现本发明,系统首选需要向各个节点发送配置表,配置表定义了数据的数据结构,用于解析各个字段的含义,实现网络通信的功能。
如图1所示,为本发明一个实施例,一种数字通信的发送方法的流程图,包括以下步骤:
S101:系统向网络中的节点发送配置表。
在步骤S101中,系统首先向网络中的节点发送配置表,节点包括发送节点和接收节点,其中,配置表在创建时或修改后发送,当配置表在某个节点上修改后,由该节点发送到网络中的其它节点,实现网络通信的升级。
S102:发送节点向接收节点发送数据包,数据包至少包括地址、控制、长度以及数据四部分的字段。
其中,数据包包括以下任意一种格式:
所述数据格式为嵌套方式,所述数据字段嵌套地址、控制、长度以及数据四部分字段,所述配置表规定了每层嵌套的数据格式的处理行为;所述数据格式为并列方式,所述数据格式包括地址、控制、长度以及数据四部分至少两个或两个以上的字段,所述配置表也能够处理并列格式中各字段的含义。因此,通过上述方式,配置表能够解析嵌套或并列格式的各字段的含义。
具体而言,地址字段包括物理地址或逻辑地址,所述控制字段包括控制通信的信息或数据属性的指示信息,所述数据字段包括数据、参数、口令以及数据属性。
例如,链路层的帧结构为:所述地址字段为物理地址,在所述物理地址之前有帧标志,在所述数据字段之后有CRC字段。其中,帧结构中除帧标志外的其它字节全部在发送时被替换为非帧标志,并且在接收后还原。
例如,网络层的结构为:所述地址字段为逻辑地址,所述逻辑地址包括目的地址和源地址。网络层的数据承载在链路层的数据字段中。网络层包括地址转发表。
例如,应用层结构为:所述地址字段为虚拟逻辑端口和虚拟逻辑地址。应用层的数据承载在网络层的数据字段中。应用层包括虚拟端口表。其中,虚拟端口表规定虚拟逻辑端口是实体IO口、RAM块或者ROM块;相应地,所述虚拟逻辑地址为IO口的物理地址、RAM块的起始物理地址或者ROM块的起始物理地址。
此外,上述应用层的数据可以由TCP/IP协议中的UDP数据包承载,然后通过IP数据包在网络中传输,即,应用层数据承载在UDP的数据字段中,UDP数据包承载在IP数据报的数据字段中,IP数据报承载在互联网链路层帧结构的数据字段中。
因此,在跨区工业网中,上述应用层数据在两种网络中可以进行转化,例如,所述应用层的数据由TCP/IP协议中的UDP数据包承载之后,经IP数据包在网络中传输时,将IP数据包中的净荷通过所述网络层的帧结构承载进行网络层传输;或者
所述网络层的结构承载的应用层的数据在网络中传输时,将所述网络层的结构承载的净荷通过IP数据包承载进行网络层传输。
承载在应用层之上包括应用系统,应用数据在应用系统中通过字典进行解释,依照字典将要发送的数据发送到虚拟端口中,或由虚拟端口解析出来。
本发明另一方面还提出了一种数字通信的接收方法,包括以下步骤:
网络中的节点接收系统发送的配置表;接收节点接收发送节点发送数据包,所述数据包至少包括地址、控制、长度以及数据四部分的字段,所述配置表用于解析所述四部分的字段。
如图2所示,为本发明一个实施例一种数字通信的接收方法的流程图,包括以下步骤:
S201:网络中的节点接收系统发送的配置表。
在步骤S201中,配置表在创建时或修改后发送,当配置表在某个节点上修改后,由该节点发送到网络中的其它节点,实现网络通信的升级。
S202:接收节点接收发送节点发送数据包,数据包至少包括地址、控制、长度以及数据四部分的字段。
在步骤S202中,接收节点接收的数据包包括以下任意一种格式:
所述数据格式为嵌套方式,所述数据字段嵌套地址、控制、长度以及数据四部分的字段,所述配置表规定了每层嵌套的数据格式的处理行为;所述数据格式为并列方式,所述数据格式包括地址、控制、长度以及数据四部分至少两个或两个以上的字段,所述配置表也能够处理并列格式中各字段的含义。
具体而言,所述地址字段包括物理地址或逻辑地址,所述控制字段包括控制通信的信息或数据属性的指示信息,所述数据字段包括数据、参数、口令以及数据属性。
例如,链路层的帧结构为:所述地址字段为物理地址,在所述物理地址之前有帧标志,在所述数据字段之后有CRC字段。
例如,网络层结构为:所述地址字段为逻辑地址,所述逻辑地址包括目的地址和源地址。网络层的数据承载在链路层的数据字段中。网络层包括地址转发表。
例如,应用层结构为:所述地址字段为虚拟逻辑端口和虚拟逻辑地址。应用层的数据承载在网络层的数据字段中。应用层包括虚拟端口表,其中,所述虚拟端口表规定虚拟逻辑端口是实体IO口、RAM块或者ROM块;相应地,所述虚拟逻辑地址为IO口的物理地址、RAM块的起始物理地址或者ROM块的起始物理地址。
为了进一步阐述本发明,下面结合附图分层对本发明作进一步阐述。
本发明实施例提出的数字通信的发送、接收方法适用于分层的协议体系,由高到低,适用于分应用层、网络层、链路层和物理层,应用层和网络层中间还可插入传输层。
本发明实施例中首地址开始的连续数据块,具体数据属性、排列顺序和块长度在各应用系统中以字典的形式给出。此处的首地址可以是物理地址,也可以是逻辑地址。控制字段表明数据是要写入,还是读出。数据字段中可以存放数据、参数、口令,也可以是命令、程序,还可以是IO口的输入输出信息;数据块也可以有属性,可读可写、只读,或是带口令的可读可写、只读,甚至是加密后的数据、带时标的数据。
应用层的作用就是从下层获得数据后放入指定的数据块,如果属性可写或满足可写的条件,并通知应用程序,或反之,从指定的数据块中取出数据,如果属性可读或满足可读的条件,并放到下层。应用层的另一个作用是流量控制和可靠传输,应答确认或不确认,或重发控制。
网络层的作用是中继或路由,起到数据转发的作用。
链路层的地址是物理地址,负责检验数据的正确性和保证帧标志的唯一性。所以,其格式除标准格式外,前加帧标志、尾加帧检验和帧标志,而变成:帧标志+(地址+控制+长度+数据)+帧检验+帧标志;除帧标志外,其它所有字节都不等于帧标志;控制物理层采用指定的传输介质、信道或通信模式。
物理层不作具体规定,它可以是异步串行,也可以是同步串行,可以是光纤、电缆、双绞线、载波、专用无线,也可以是公共无线,可以是GPRS、短信,也可以是CSD,可以经过MODEM,也可以不经过MODEM,取决于其参数配置。
考虑到一般工业网络,物理层和链路层可能是各种以太网、485双绞线、或经过MODEM的无线,所以,链路层中的帧标志采用0x7E或0x0D(0x表明为十六进制),前者适用于无MODEM的各种物理层,而后者适用于有MODEM的物理层。帧中其它字节若与帧标志相同,在发给物理层时全部替换,0x7E替换成0x7D 0x5E和0x7D替换成0x7D 0x5D,或者0x0D替换成0x0E 0x5D和0x0E替换成0x0E 0x5E;对于接收方,收到物理层帧格式后还原,将0x7D 0x5E和0x7D 0x5D还原成0x7E和0x7D,或将0x0E0x5D和0x0E 0x5E还原成0x0D和0x0E。
链路层的地址是物理地址,与物理层一致。
链路层还要检查帧的正确性,为此,一般地,帧检验采用CRC码,如8位的CRC-8=X8+X5+X4+1、16位的CRC-CCITT=X16+X12+X5+1,32位的CRC-32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1。
为了与因特网统一,链路层一旦发现CRC检验错误,则丢弃帧,不做纠正;是否应答,取决于控制中的应答位是否置1。
于是,发送端链路层将数据生成CRC码、替换与帧标志相同的字节,生成帧,并控制物理层发出帧,如图3所示,为本发明应用于链路层发送端的具体实施例。
如图4所示,为本发明应用于链路层接收端的具体实施例。接收端的物理层或链路层首先判断是否帧标志,是则判断其后的物理地址是否与本机地址或广播地址一致,是则接收该帧,并拆帧,还原被替换的字节、帧检验,按照控制的要求将数据交给上层处理。
具体而言,如图5所示,为链路层发送和接收的进一步实施例图示。“控制”中1位表明本层要不要确认和重传机制,为1要,为0则不要;如果本层要确认和重传机制,接收方还有2位,1位表示为正常帧(该位为0)或短帧(该位为1,作为应答帧),另1位表明应答正确(为0,ACK)还是错误(为1,NAK)。于是,“控制”有2位即可。实用中,“控制”和“物理地址”或“控制”与“长度”一并考虑,由本层的配置表决定,占用整字节的位数,多余位填0。如果信道的误码率很低,则在链路层中的“长度”也可以省略,交到网络层时生成。
一般的工业网络中,链路层中的应答与重传机制采用简单的ARQ协议,即发送方发出一帧后,启动计时器,等待回答,如果回答NAK或计时器时间到仍没有收到回答,则重传此帧,如果重发超过规定的次数,本层的配置表给出最大的重发次数,则停止重发并报告上层;在接收方,收到一帧,帧检验正确则应答ACK,否则应答NAK。
如图6所示,为本发明应用于网络层的实施例。多数的工业网络,网络层没有路由器连接互联网,但是,有转发的需求,例如,变电站中有变电站机,下层有设备机,而上层为调度机,如果调度机要直接访问设备机,则有必要经过变电站机转发到设备机,所以,要有网络层。
网络层地址是逻辑地址,在一般的工业网络中,逻辑地址是本网络的内部地址,并统一编址,在网络内,所有联网的计算机设备地址唯一。为了简化路由或转发的算法,对地址的位也可以规定,如同分类IP地址。
因为,链路层的地址是物理地址,所以,网络层将逻辑地址转换成物理地址,要用地址转换表,即逻辑地址到物理地址的映射表。
网络层的数据格式如图6所示,其中,目的地址和源地址是逻辑地址,上文已讲;长度是数据的字节数;控制中1位表示为本层数据(=1)还是上层数据(=0),1位表示后面有分片(=1)还是无分片(=0),剩余6位用于分片标识(计时器,最多64个分片)。也可以从分片标识中再拿出一位表示优先级,置1说明后面的分片标识是优先级,0最低级。这样,能够满足实际需要,因为要求分片的数据包长,长包一般不着急,不需要优先级,而短包才有优先级的要求。控制位数及其定义也在本层的配置表中规定。
接收方如果目的地址是本机地址,则将源地址、控制字节和长度及数据交到上层(本层位=0),若不是本机地址,查地址转换表,将网络层数据转发到目的地址所在端口的链路层,生成链路层数据。
地址转换表格式如下:
端口号 |
行数n |
逻辑地址1 |
物理地址1 |
… |
… |
逻辑地址n |
物理地址n |
地址转换表可以由主站发来或自己建立。
考虑到少数工业网络会经过因特网连接起来,形成虚拟专用网VPN,那么,与计算机网络中的VPN一样,端路由器上增加类似的地址转换协议NAT,将如上的网络层数据格式转换成IP数据报,其中的地址也转换成IP地址。
为了提高传输效率,逻辑地址应当尽可能的少。类似因特网上的局部逻辑地址,在一个局部,也可以采用局部逻辑地址,一般,12~20位就足够,当经过端路由器时,由端路由器将局部逻辑地址转换成全局逻辑地址,转换后在因特网上传送。
不经过因特网连接的工业网络,网络层之上就是将本发明应用层协议。由此理解,没有传输层,而直接就是应用层。
如果经过因特网连接的工业网络,在网络层与应用层之间,增加传输层,传输层采用UDP协议,UDP之上,即是本发明的应用层协议。按照UDP规定,要为应用层协议规定端口号。
应用层的数据格式:
目的地址进一步分解成虚拟
逻辑端口和虚拟逻辑地址,简称虚拟端口和虚拟地址。考虑到现场装置,有众多的IO口、RAM、不掉电RAM、程序ROM和数据ROM等,虚拟端口即是它们的逻辑编址;当然,考虑到RAM和ROM字节多,也可以分成块,每块对应一个虚拟端口,它们在虚拟端口表中规定。于是,由虚拟端口表查到是实体的IO口、RAM块、还是ROM块。该表中还包含IO口的物理地址或RAM/ROM块的起始物理地址,虚拟地址+虚拟端口中的起始物理地址即是应用层数据的真正物理地址的首地址,数据的字节数由长度规定。
控制中1位表示写入(=1)或读出(=0),也许不要写入,而是对比,所以,要增加一位,将对比的结果回传;1位表示要确认(=1)或不要确认(=0),要确认时发送端要有重传机制,而接收端要回答确认ACK或不确认NAK;在应答中,可能有重要的信息需要上报;在读出或写入受权限的限制,也可能不能操作,对应各要求分配位,于是,应用层的数据格式具体实施例如图7图示。
工业中数据块小且多,所以,本层的格式允许并列,即:
目的地址 |
控制 |
长度 |
数据 |
目的地址 |
控制 |
长度 |
数据 |
…… |
并列的总字节数加上下几层的前缀和后缀后不能够超过链路的最大帧长和网络层的片长度,否则,应当在传给网络层时加以分片。
需要说明的是,本发明的上述实施例中,在链路层和应用层都可以有确认和重传机制,实际网络中一般只选一处,如果没有经过因特网,建议将确认和重传机制放在链路层,以缩短重传的时间、加快通信;而如果经过因特网,按照规定链路层不能选用确认和重传机制,而传输层的TCP不适于实时通信,所以,传输层采用UDP协议,而UDP协议中无确认和重传机制,所以,确认和重传机制建议放在应用层。当然,为了提高实时性,也可以两处都不要确认和重传,而每发一帧都连续发2~3帧,让接收方对比后选用,称为重帧机制;而有些工业网络,允许丢掉个别帧,这时,只传1帧,一旦有错即丢弃。
为了提高实时性,本发明没有采用面向连接的过程,确认和重传机制已保证了足够的通信可靠性。面向连接的协商内存缓冲器大小的作用,在本发明中由配置表完成。这样更符合工业网络的要求。于是,省略了面向连接的建立、和撤销过程,从而,提高了通信的实时性。
为了适用于不同规模的网络,又提高传输效率,在本发明中没有明确地址、控制等的位数,它们连同诸如帧标志的选择都可以通过配置表加以解决,而配置表连同上文提到的地址转换表、虚拟端口表都可以作为一块RAM或一块ROM的数据下发或上传加以解决,而且,只要做一次即可,一般由标准化委员会进行规定,投运前预装或登录时下载即可。
在本发明的实施例中,配置表很重要。首先,在结构上,配置表是一种数据块,在每层中都有各自的配置表,作用是规定该层的通信参数,与TCP/IP中的某些参数的作用一样,例如,协议的种类、协议的版本等信息,不同之处在于TCP/IP将这些信息放在了通信数据中,每次都要传送,而这里放在了配置表中,它不需要每次传送,而是在创建和修改后传送一次。链路层和应用层的确认和重传机制是在通信的数据中,还是移到相应的配置表中,均应视为本发明的保护范畴之内。
如图8所示,本发明还提出了一种数字通信设备100,包括接收模块110、解析模块120、封装模块130以及发送模块140。
其中,接收模块110用于接收系统发送配置表,以及接收发送节点发送的数据包,数据包至少包括地址、控制、长度以及数据四部分的字段,所述配置表用于解析上述四部分字段;解析模块120用于解析数据包;封装模块130用于将待发送数据封装成数据包;发送模块140用于将封装模块130封装好的数据包发送给接收节点。
作为上述设备100的实施例,配置表在创建时或修改后发送,当配置表发生修改后,配置表将发送到网络中的其它节点,实现网络通信的升级。
作为上述设备100的实施例,数据包包括以下任意一种格式:数据格式为嵌套方式,数据字段嵌套地址、控制、长度以及数据四部分的字段,配置表规定了每层嵌套数据格式的处理行为;数据格式为并列方式,数据格式包括地址、控制、长度以及数据四部分至少两个或两个以上的字段,所述配置表也能够处理并列格式中各字段的含义。
综上所述,本发明实施例提出的技术方案可以应用于以下4层:应用层、网络层、链路层和物理层,各层都采用地址、控制、长度和数据的统一格式。每层都有配置表,规定地址、控制、长度等的位数和定义。而应用数据在应用系统中通过字典加以解释。
配置表、字典、虚拟端口表等由标准化部门进行规定,投运前预装,或通过网络通信后升级。
作为上述设备100的实施例,发生模块140发送与接收模块110接收的链路层、网络层和应用层的结构为上述数据格式构成,包括地址、控制、长度以及数据四部分至少两个或两个以上的字段。在后文的具体例子中,用①类机标识。
作为上述设备100的实施例,解析模块120还用于解析互联网的物理层、链路层、IP层和UDP协议,其中,UDP数据包中承载的应用层结构为包括地址、控制、长度以及数据四部分至少两个或两个以上的字段;应用层有虚拟端口表;所述地址字段为虚拟逻辑端口和虚拟逻辑地址,所述控制字段包括应用层的控制信息,所述长度字段为所述数据字段的字节数;所述虚拟端口表规定虚拟逻辑端口是实体IO口、RAM块或者ROM块;相应地,所述虚拟逻辑地址为IO口的物理地址、RAM块的起始物理地址或者ROM块的起始物理地址。在后文的具体例子中,用②类机标识。
作为上述设备100的实施例,接收模块110和发送模块140应用到两个通信口,
一个通信口连接包括互联网的物理层、链路层、IP层和UDP协议的数据包;UDP数据包中承载的应用层的结构为包括地址、控制、长度以及数据四部分的字段;应用层有虚拟端口表;所述地址字段为虚拟逻辑端口和虚拟逻辑地址,所述控制字段包括应用层的控制信息,所述长度字段为所述数据字段的字节数;所述虚拟端口表规定虚拟逻辑端口是实体IO口、RAM块或者ROM块;相应地,所述虚拟逻辑地址为IO口的物理地址、RAM块的起始物理地址或者ROM块的起始物理地址;
另一个通信口链路层、网络层和应用层的结构为所述数据格式,分别包括地址、控制、长度以及数据四部分的字段。
两个通信口的数据在网络层或应用层进行数据交换。在后文的具体例子中,用③、④类机标识。
本发明实施例提出的技术方案可以实现灵活的组网方案,下面结合附图对各种组网方案举例说明。
如图9所示,为组网方案1示意图,所有层全部采用本发明的数据结构,从上到下的封装结构示意图。采用本发明的数据结构的设备记为①类机,能够连成网络,记为区域网,能够适应总线型/星型/环形、电缆/光纤/无线/载波、带调制解调器/不带调制解调器等所有信道;链路层通过配置表能够与以太网的链路层一样,所以,这种区域网能够经过以太网集线器、中继器和网桥,形成距离很远的大区域网。
如图10所示,为组网方案2示意图,在组网方案1的基础上,在端路由器的网络层增加类NAT转换,而其它路由器不变,能够经过因特网、跨越区域,形成跨区网。
如图11所示,为组网方案3示意图,如果在应用层采用本发明的格式、在应用系统中采用本发明的虚拟端口和字典,而其它层仍然采用因特网的分层和协议,所形成的数字设备,记为②类机,能够利用现有的以太网形成区域网、现有的互联网形成跨区网。例如,上述应用层的数据可以由TCP/IP协议中的UDP数据包承载,然后通过IP数据包在网络中传输。
如图12所示,为组网方案4示意图,一种数字设备有至少两个网络口,一个采用本发明的分层和协议,一个采用因特网的分层和协议、应用层采用本发明,且网络层间形成类NAT转换,记为③类机。由③类机连接,能够形成①类机和②类机混合的区域网;经过现成路由器连接到因特网,形成跨区网。即在跨区工业网中,上述应用层数据在两种网络中可以进行转化,例如,所述应用层的数据由TCP/IP协议中的UDP数据包承载之后,经IP数据包在网络中传输时,将IP数据包中的净荷通过所述网络层结构承载进行网络层传输;或者所述网络层结构承载的应用层的数据在网络中传输时,将所述网络层结构承载的净荷通过IP数据包承载进行网络层传输。
如图13所示,为组网方案5示意图,一种数字设备,与③类机类似,只是网络层没有类NAT转换,而是在应用层转发,记为④类机。由④类机连接,能够形成①类机和②类机混合的区域网;经过路由器连接到因特网,形成跨区网。
与现有的工业网络规约相比,本发明提出的技术方案具有开放、标准和互联特性,上下行同样容易实现,不仅能够传数据、参数,还能够下载程序。
本发明提出的技术方案实时性好、效率高,与TCP/IP相比,本发明的规约地址、控制、长度等构成首部的位数明显少于TCP/IP的各层协议的头部位数,所以,效率高;不用面向连接的机制,大大提高了通信的实时性。
在网络安全方面,通过虚拟端口配置表和应用层程序的配合,能够保护联网计算机免收网络病毒的侵袭或通过网络外泄信息。
此外,传送的数据块可以连续也可以不连续,不连续的数据可以通过指针表形成链接。数据块可以是真正的数据,也可以是参数、命令或程序等。通过配置表、地址转换表、虚拟端口表和应用字典,本规约能够适用于各种工业网络,将自动化、过程控制、保护和管理等各种应用,采用一种规约全部实现通信,避免了各协议之间的数据转换,尤其是在智能电网,发输配用和市场的各种生产、保护、控制、自动化和管理信息,都能够融为一体。
本发明的实施例提出的技术方案,通过定义统一的数据格式,从程序的编写、扩展、升级角度来重新考虑网络体系的优化设计,给出发输配用诸环节的统一模型,一套程序,提出一种能够适用于实现工业网络自动化,并具备标准、开放、互联、实时、安全和统一的网络体系结构,而且协议的实现简单、高效。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。