美章网 资料文库 实时协议数据通信应用论文范文

实时协议数据通信应用论文范文

本站小编为你精心准备了实时协议数据通信应用论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

实时协议数据通信应用论文

1变量服务与协议

1.1过程数据链路层接口1)数据集上层协议通过LPI访问通信存储器中的过程数据,LPI提供链路层端口初始化,包括数据集的读写以及同步操作等功能的原语。LPI规定了数据集的访问。在一个设备内,数据集由其数据集标识符(DS_Name)来识别。DS_Name由4位的通信存储器标志(traffic_store_id)和12位的端口地址(port_address)组成。2)LPI原语及调用流程链路层上各个原语及其先后调用关系如图2所示。由图2可知,进行通信前,发送者侧和用户侧需要对链路层进行初始化(lp_init),然后调用原语ds_subscribe来预订一个用于同步的数据集。接着者调用原语lp_put_dataset将数据集写入相应的通信存储器中,在进行此操作时,需要解析DS_Name。当数据集通过了物理层发送完成后,用户通过调用原语lp_get_dataset将数据集从通信存储器中取出。这样就完成了数据集的发送和接收。最后双方共同调用原语ds_desubscribe,从预定表中移去用于同步的数据集。

1.2过程变量应用层接口1)过程变量标识符在一个设备内,过程变量由其所在的数据集(DS_Name)和其在数据集中的位偏移量(Var_Offset)来标识[6]。通过总线传送时,过程变量由逻辑地址和被传送的数据集的位偏移量来识别。2)AVI原语应用变量接口AVI定义了变量提供给总线的服务。应用变量接口原语只访问通信存储器的端口,并没有触发总线的通信。在应用变量接口中,过程变量是单个访问的,属于数据集的一部分。为了提高传输效率,属于同一个数据集的过程变量作为一个坚固的整体进行传送和存储。过程变量和其所在数据集的刷新定时器一起在一次不可分割的操作中获取[7]。应用变量接口AVI原语分为3类:单个变量访问,集合访问,群集访问。

2过程数据通信设计思路

2.1过程数据链路层的设计

2.1.1过程数据链路层数据结构设计在链路层传输的数据属于数据集的一部分,数据集由其DS_Name来标识。

2.1.2过程数据链路层接口函数设计此函数用于实现过程数据模块的初始化功能。首先,读取配置文件建立相应的端口属性表来建立初值。然后进行差错判断,分为通信存储器标识和端口地址的判断,如果超出了系统设定的最大值,那么初始化过程失败。只有在以上条件为真的情况下,才初始化强制变量表和数据集预定表。2)过程“lp_put_dataset”此函数用于数据集的发送,从应用拷贝一个数据集到通信存储器中的端口。首先,要对输入参数的合法性进行检查,主要是对通信存储器和端口地址进行检查,判断是否在系统设定的范围内。在完成参数检查后,开始进行数据的发送,将数据拷入相应的端口中,同时,前一次的数据集将被覆盖。3)过程“lp_get_dataset”此函数用于接收数据集,即从端口拷贝一个数据集和其刷新定时器到应用层。首先,要检查输入参数的合法性,分别是对通信存储器标识和端口地址的值的判断。然后,根据相应的端口属性表,将端口中的数据集和刷新定时器拷贝到应用提供的内存中。

2.2过程变量应用层的设计

2.2.1过程变量应用层数据结构设计1)单个变量数据结构设计对于单个变量,利用结构体PV_NAME来描述一个变量,如下:2)集合变量数据结构集合变量使用结构体PV_SET来标识同一个数据集的一组变量,包括每个变量拷入(或拷出)的内存地址以及整个数据集的刷新定时器。3)群集变量数据结构群集结构体PV_Cluster标识一组PV_Set,由通信存储器进行排序。

2.2.2过程数据应用层接口函数设计1)函数“ap_put_variable”此函数用于单个变量的发送,从应用内存地址空间拷贝一个单个过程变量及检查变量到通信存储器。首先,检查PV_NAME参数的合法性,从PV_NAME中获取数据集DS_NAME的信息,接着调用lp_get_dataset函数从相应的端口读取数据集,然后根据PV_NAME中var_type类型,分7种情况进行数组元素个数和数据派生类型的计算,根据计算结果将过程变量和检查变量拷贝到数据集中,变量上一次的值被覆盖。在上述过程完成后,调用lp_put_dataset函数将数据集拷贝到宿端口中。2)函数“ap_get_variable”此函数用于单个变量的接收,从通信存储器拷贝一个过程变量及检查变量和刷新定时器到应用内存的地址空间。首先,要对PV_NAME进行参数检查,然后根据PV_NAME获取的端口信息,调用lp_get_dataset函数从相应的端口获取数据集。接着就根据算法从数据集中获取过程变量和检查变量。3)函数“ap_put_set”此函数用于集合变量的发送,在一次不可分割的操作中,从应用内存地址空间拷贝集合变量到端口。首先,获取PV_LIST中DS_NAME信息,根据相应的ts_id和port_address调用lp_get_dataset函数获取数据集。接着,将变量写进数据集中,在进行此操作前,先对PV_LIST进行参数的检查。在检查完成后,调用lp_put_dataset函数将数据集拷贝至相应的端口。4)函数“ap_get_set”此函数用于集合变量的接收,在一次不可分割的操作中,从端口拷贝属于同一个集合中的过程变量到应用内存地址空间。首先,对PV_LIST进行参数的检查,检查通过后,根据PV_LIST中DS_NAME的信息,调用lp_get_dataset函数获取数据集,然后根据算法将数据集中的变量进行提取,实现群集变量接收的功能。5)函数“ap_put_cluster”此函数用于群集变量的发送,从应用拷贝一个变量群集到通信存储器中,属于同一个PV_SET的变量一起拷贝。其实现的过程和函数ap_put_set相同,只是在参数检查上改为对PV_SET的检查。6)函数“ap_get_cluster”此函数用于群集变量的接收,从通信存储器拷贝过程变量的一个群集到本地用户实体。其实现的过程和函数ap_get_set基本相同,不同点在于参数检查是对PV_SET的检查。

3过程数据实时协议通信测试验证

3.1测试验证平台由于变量服务对于MVB和WTB通信存储器的访问原理和实现过程相同,因此测试基于MVB设备间的过程数据通信来验证链路层和应用层接口功能[8]。本测试连接以D113为核心的MVB主设备、UIC网关A、B两组的MVB通信板以及MVB协议分析设备,组成拥有一主、三从的MVB通信网络,如图3所示,连接无误后各套设备上电准备,UIC网关的两组从设备分别与电脑主机通过以太网相连,MVB协议分析设备通过USB与电脑主机相连。

3.2过程数据链路层测试及验证首先启动D113MVB板卡的PC104核心模块进入winxp系统,启动UIC网关MVB板下位机VxWorks系统。然后启动上位机Tornado集成开发环境,运行FTP服务器程序Tftpd32,建立连接后,下载MVB实时协议栈代码。接着就开始进行端口配置,在测试中,配置0x001,0x002,0x005为源端口,接收来自D113MVB板卡发出的数据,3个端口功能码分别为0,1,4,接收字节数为2,4,32,配置0x008,0x009,0x00a为宿端口,向D113MVB板发送数据,功能码为2,接收的字节数为8,测试结果如图4,图5所示。链路层接口向上层应用提供数据集的读写操作,对于应用是不可见的,因此,为了测试的可视性,在上层应用中设计了两个函数ap_get_dataset和ap_put_dataset,这两个函数调用了链路层lp_put_dataset和lp_get_dataset这两个收发数据集的函数,测试时能实时反应出收发数据的情况。通过以上两个结果图可以看出,D113板卡和UIC网关的MVB板卡能准确地互相接收和发送数据,验证了过程数据链路层能正常的进行数据通信,功能得以实现。

3.3过程数据应用层测试及验证应用层的测试针对集合和群集变量的收发进行了试验。在进行集合变量测试时,配置主设备端口0x004为源端口,功能码为4,从设备配置相应的宿端口。群集变量测试配置0x003端口,数据0x10和0xAA在数组1中,0xA1A2在数组2中,两个数组整合成一个变量集合发送。测试结果如图6~8所示。根据图6~8,集合变量和群集变量能准确的收发和接收,验证了实时协议变量应用层接口能正常使用,功能得以验证。

4结束语

实时协议栈是列车通信网络的重要组成部分。本文在对IEC-61375-1协议标准进行研究后,深入分析了列车通信网络实时协议服务的核心概念,在此基础上,对过程数据链路层和变量应用层进行设计,包括数据结构和接口函数的实现方案,搭建了1主3从的MVB通信网络测试平台,对设计的方案进行验证,通过链路层的数据收发和应用层的变量测试,测试结果符合标准的要求,证实了方案的可行性。

作者:陈野翔王立德聂晓波严翔单位:北京交通大学电气工程学院