DDS中间件在CAN总线传输中的应用

更新时间:2023-11-10 18:54:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DDS中间件在CAN总线传输中的应用 Rojdi REKIK Salem HASNAOUI

摘要:数据分发服务( DDS)是一种以发布和订阅数据为中心的中间件。它指专门为实时实现数据的API分布。并非常适用于复杂分布式系统和QoS功能的应用程序。但是,它需要通过传感器传输大量测量网络的时序参数。其基于优先级的媒体访问控制是用来选择具有较高的传感器信息。这种方式大大降低了获得的快照环境状态的时间,因此符合反馈控制回路的实时要求。使用的“发布/订阅/分发”模式和底层的实时CAN总线是当前在这个研究课题中才存在的几个区域。这些活动由德国国家研究中心和首尔国立大学结构实验室,以及由我们的“控制和通讯技术“研究小组负责。本文的主要目的是证明DDS中间件是如何在CAN总线实现的。

1 介绍:今天的嵌入式软件应用越来越分散,他们的数据通讯的联网的制度在许多计算节点之间。这包括在航空航天应用,国防,分布式仿真,工业自动化,分布式控制,机器人技术,电信设备和联网领域的消费电子产品。在当今的日子里,该行业被质疑对生产力的质量,安全,环保和程度横向和纵向整合需求的日益提高。然而,复杂的分布式控制系统( DCS )不能有效地和安全地管理提供更强大的对象之间的通信图案。对于需要控制的涵盖不同层次级别的功能网络。互操作性中间件架构和应用对象是系统集成商从不同的供应商中真正挑战适应和连接可用的组件的。智能控制系统已经成为国际关注的焦点。标准化组织,工业财团和研究团体提供更全面数据模型架构。

2:相关作品:实时数据分布最近出现了一个重要的研究领域。有一个研讨会的主题(第一个车间对数据分布实时系统[4])2003年5月。对象管理组(OMG)有助于研究的努力的标准化数据分布在一个中间件服务。它提供了一个最长的等待启发式以减少开销。类似的工作[6]描述了一个广播技术的需求时间表,广播使用最早的期限,定期或混合调度算法。工作[7]中描述的是一个投机的数据传播服务使用的地理和时间地点参考,以确定哪些数据传播。这些技术考虑截止时间限制的客户,但是考虑数据时序一致性和底层实时网络的使用。一个应用领域,提供了各种研究努力数据分布是嵌入式传感器网络(8、9、10、11和12]。尽管这里分布的传感器网络描述为所有的工作提供了宝贵的见解解决问题的数据,但没有考虑实时的特点的数据或应用程序。也就是说,既不支持数据交付期限和时间一致性数据。

大量的实时数据的分布研究已经在弗吉尼亚大学( UVA)完成,在无线传感器网络的环境中[ 13 , 14 , 15 ,和16 ]。这项工作确实解决了请求的最后期限。然而,当它到达请求时,它不保证提供数据在时间上是有效的。 PrismTech [17]有一个产品是所谓的OpenSplice [18]这是符合实时联网。但类似的作品可以提到如ROFES [19]。在ROFES平台,S.的上下文Lankes 和T. Bemmel描述实施了基于CAN的面向连接的点至点的通信模型和它的集成到实时CORBA ,但这个项目没有被扩展以支持数据分布服务。这些研究工作已经被强制执行。这同时做几个商业产品已经成为符合OMG的数据分布规范。实时创新[ 20 ]有一个产品叫做NDDS,提供架构数据的时间要求严

格的交付。泰利斯海军荷兰[21]有一个名为Splice产品[ 22 ]它提供了一个以数据为中心的架构为关键任务的应用程序。这两种产品提供宝贵的实时特性数据的分布。既保证了数据的时间期限也不实时网络支持。

3 实时和嵌入式系统:自动化控制组件与分布式组件只是一个例子。最通用和强大的图案是[23]: ?事件驱动型数据分发 ?请求 - 答复服务 ?基于内容的事件通知 ?连续数据分布

3.1 事件驱动型数据分发 事件驱动的数据分布(EDDD)用于当应用程序通过事件和控制的时候。因此,当一个事件被丢失的时候,则一个执行应用程序停止。在EDDD发送的消息是一个事件,而不是信号值时。该机制应该保证每个事件交付给所有的接收器。 CORBA的消息规格支持异步消息调用(AMI),这个模型很好地映射了这种模式。 3.2 请求 - 答复服务 请求 - 应答服务(RRS)是获取数据或启动服务更简单的方法。不管同步或异步的,只要回复即可。在后一种情况下,一个回调函数被调用时,答复接收。 RRS是由所有的分布式提供环境,特别是CORBA的体系结构。

3.3 基于内容的事件通知 基于内容的事件通知( CBEN )是用来通知改变组件的状态。警报和其他通知消息被发送到所有感兴趣的接收器或存储在历史数据库中。(一旦消息被称为报警时,它会强制接收

器停止其正常运行的执行专项行动。 )通过比较来EDDD , CBEN代表不是事件的一个单独的域。然而,报警和事件的可靠性也是必需的。 CBEN可以通过CORBA实现事件服务(不过滤)或CORBA通知服务(带过滤) 。 OPC 和传感器网络赋能( SWE )是DCS是这一类的CBEN模式范围内。

3.4 连续数据分布 连续数据分布(CDD)是用于周期性数据传输(或当信号值超过应用特定阈值)。它允许一个生产商经常传送一个新的数据值。OMG的DDS[5]和OPC-DX [6]支持CDD以及RRS和CBEN。在DDS中,出版商给数据中间件。中间件需要照顾分配并通知用户时, 消息到达。

在3.1的情况下,名称或地点及种类事件需要在编译时。在3.2的情况下,则名称或服务的位置,可以通过获得命名或目录服务来编译。在3.3的情况下,生产商和消费者都去耦合。报警和事件被发送到一个信道;消费者通过向他们提供过滤器一些标准从通道检索它们。在3.4的情况下,唯一的财产生产商(出版商)需要与沟通消费者(用户)的名称和定义的数据(数据为中心的)。信号,报警通知和事件均标记有独特的主题名称,如“压力”或“温度”。发布者不需要了解任何信息的用户,反之亦然。

CDD和CBEN分别是数据和服务内容代替的身份制片人,因此被称为基于内容的发布/订阅。出版商的松耦合服务器和订阅服务器,在客户尽职审查为基础的架构,作为新的发布者和订阅可以无缝集成到现有的应用程序,而不影响现有的代码,因此,剩余的几个生产者

可以并行运行。常见的方法,允许消费者发现它们的性质的基础上,最合适的数据源和服务。所以,本发布/查询/预订/分配格局基于全球视野的内容。它解决了嵌入式通信模型通信挑战。DDS针对实时系统; DDS的规范是不太明显的,应该调度机制协调这些政策,并作出最佳效益。

4 DDS和QoS参数 每一个QoS策略可以有多个参数与之相关联,如感兴趣的主题数据,数据过滤准则等。每个参数也可以是分配1值的范围的,整数范围对于数据消息的存储的最大数传输,或所述一组用于正则表达式作为过滤条件。QoS并非所有组合政策/参数提供所需的QoS体系,并且它可以是乏味且容易出错的手动变换一个有效的QoS策略的配置设计。它在一个特定的中间件实施平台。一个高效的DDS实现必须许可:

?实体和服务质量之间的关联政策 ?管理QoS策略配置变性。 ?检查兼容性和一致性约束。 ?确保QoS的兼容性 ?确保服务质量的一致性 ?确保正确的QoS实现

5 建议模拟器 该框架架构模拟器是一个通过设定DDS中间件和连接的节点。CAN是当只有网络控制器驱动程序所代表的发行者之间的替换一个CAN调度员。

节点之间的通信的实现由于通过全球发布订阅界面从而代表一个文件,该文件的数据空间是同样在所有节点上。中间件必须保持 跟踪数据的对象实例。每个数据对象是由其数据写入和价值和一个主题对象的组合来标识。

5.1传输优先级的计算和CAN总线 其主要思想是定义一个结构,它通过他们的最后期限(或优先)来分类的主题和每个主题的Datawriters列表来集成,还排序最后期限。这个结构仅仅是一个TreeMap的。DataWriter列表主题是它的键和对应的值。

但是,我们必须添加一个排序条件为主题定义是不存在的在DDS 规范。添加的方法被称为“的compareTo(对象O)”,它返回一个整数。 图3示出了该添加。

DataWriter做了同样的工作。此功能必须添加到DDS规范的未来版本,允许开发人员可以使用相同的指定方法。我们定义一个ListDataWriter类允许添加, 删除和DataWriters也截止日期排序。

Figure 4. New definition of DataWriterImpl Class 我们实施了ListTopicDataWriter类负责管理TreeMap的结构体,见图2。这个类的主要操作是设置优先主题。

发送的CAN总线为代表的CAN驱动程序和使用的管道,我们从ListTopicDataWriter检索必要的信息,构建CAN数据帧。要发送的 CAN总线,我们从供应商里使用write(主题主题,对象O),只是表示在DDS规范方法。

DataFrameCan frame =new

DataFrameCan(topic.getPriority(),node Id,topic.getTopicId(),data);

DataWriter dataW=

data.getDataWriter(); Duration_t duration =

dataW.getQOS().deadline.period; Framelist.addCanFrame(frame, duration);

为了模拟在CAN总线的数据写入,我们在一个树状图收集的CAN数据帧,这是模拟的,以表示结构。见图2。

Figure5.TreeMap Structure for sending in the CAN_Bus

我们实现了一个类叫 “ListFrameCanDeadline”管理上述结构。图6示出了相关的算法

5.2接收帧从CAN总线依赖DataReaderQoS 要读取一个CAN帧,我们用一个用户检索DataFrameCan列表(类内管)。 protected voidnotify(inttopicId){ Event evt= new

Event(this,getValue(topicId)); Vector v; synchronized(this) {

v = (Vector) Listeners.clone(); }

Iterator iter = v.iterator(); while(iter.hasNext()) { DataReaderListener dataTemp=( DataReaderListenerImpl) iter.next(); if (dataTemp.geTopicId()==topicId){ dataTemp.change(evt,topicId); } }

Figure 6. Notify Method implementation

这个类似管理DataReaderlisteners(添加,删除)。数据的传送是在做DataReader的,其中有一个侦听器的话题,分别需要的QoS(DataReaderQoS)和所获得的数据DataReader。 int [] on_data_available (ListeFrameCanDeadline list) { // Each

CAN data frame contain 8 bytes int []val=new int [8]; Map map =null; map=list.getTopicsDataFrameCan(get_listener( ).geTopicId()); for (Iterator

it=map.entrySet().iterator();it.hasNext();) { Map.Entry

e=(Map.Entry)it.next(); Duration_t

dr=(Duration_t)e.getValue(); int sec=dr.sec; int nanosec=dr.nanosec;

if ((sec==qos.deadline.period.sec)&&(nanosec ==qos.deadline.period.nanosec )){ val=((DataFrameCan)e.getKey()).getDatas(); } }return val; } }

图7 on_data_available方法:Java的语法实现了CAN总线 DataReaderImpl在图8中恢复

Fig. 8: DataReaderImpl class

我们在下面的数字的抽象算法与该项目从使用DDS中间件CAN总线用于发送和接收的帧。

Figure 9. The application test

// registration structures Struct CANDDSID{ // Priority Max= 63 int: Priority // TopicIDMAX= 65535 int : TopicID //NoueudIDMAX= 127 int : NoueudId }

Struct DataFrameCAN {

// 29 Bits CANDDSID: id Data : data

}

List : DataFrameCANList {

DataFrameCAN :dataCAN Deadline: duration }

Figure 11. DataFrameCAN implementing Algorithm for sending CAN Data Frames By Publisher (CAN Dispatcher) 1. Output :

DataFrameCANListSortedByPriority 2. Sort of Topics By TopicQOS (Deadline) 2.1 For each Topic :

2.1.1 Sort of its DataWriters

3. Generation of CAN Data Frames list (Sorted By Priority QOS)

4. Use of CAN Dispatcher to send Data Frames to its subscribers.

Algorithm for receiving CAN Data frames By Subsribers 1.Input :

DataFrameCANListSortedByPriority

//Each Subsriber notify its Listeners By Constructing an Event Object 2. For each DataReaderListeners : 2.1. Read DataReaderQOS

2.2. Search of the same QOS from DataFrameCANListSortedByPriority 2.3 Call of DataReader on_Data_available method

Figure 12. Simulator algorithms Implementation

6 结论: 真实姿态的实时分布式系统,让分布式开发应用程序更加简单的和有效的。与本文所述的工作中,CAN总线已在该领域已经变得更加实用。我们试图在CAN模拟器中设计一个DDS,由DDS规范中描述。这互动的目的是对DDS集成的QoS参数数据传递并优化网络提

高一致的。这种相互作用目的是对网络资源的控制集成到高层次的中间件,从而使新一代有灵活的指诊的应用更精确地控制他们的终端到终端的资源。基于优先级的机制及EDF在此上下文中所使用的调度策略工作适用于实时通信制度。一个有前途的研究方向是使用DDS不只为DRE系统,而且内片上网络( NOC) 。但是,所有的本说明书中所述QoS参数,在实现之前。我们记得,我们在这项工作仅限于相关的实时特性的QoS。 7 参考文献 :

[1]G.Blair, G.Coulson, P.Robin, M. Papathomas, An Architecture for next generation middleware, Proc, 4th Annu, IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, London, England, 1998.

[2] OMG, \Systems Specification\

[3] ROBERT BOSCH GmbH, CAN Specification version 2.0 (1s edition, 1991).

[4] First International Workshop on Data Distribution for Real-Time Systems, In conjunction with International Conference on Distributed Computing Systems, May 2003. [5] M.Karakaya, O. Ulusoy, Evaluation of a Broadcast Scheduling Algorithm, Lecture Notes in Computer

Science, Springer-Verlag, v. 2151, 2001.

[6] P. Xuan, S. Sen, O. Gonzalez, J. Fernandez, K. Ramamritham, Broadcast on Demand: Efficient and Timely Dissemination of Data in Mobile Environments, Proceedings of the Fourth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS’97), 1997.

[7] A. Bestavros, Speculative Data Dissemination and Service to Reduce Server Load, Network Traffic and Service Time in Distributed Information Systems, Proceedings of the 1996 International Conference on Data Engineering, New Orleans, LA, March 1996.

[8] S. Shenker, S. Ratnasamy, B. Karp, R. Govindan, D.

Estrin, Data-Centric Storage in Sensornets, First Workshop on Hot Topics in Networks (HotNets-I) 2002.

[9] F. Ye, H. Luo, J. Cheng, S. Lu, L. Zhang, A Two-Tier Data Dissemination Model for Large-Scale Wireless Sensor Networks, MOBICOM’02, September 23-28, 2002, Atlanta, GA.

[10] Y. Yao, J. Gehrke, Query Processing for Sensor Networks, Proceedings of the 2003 Conference on

Innovative Data Systems Research, Jan. 2003.

[11] P. Bonnet, J. Gehrke, and P. Seshadri. Towards sensor database systems. In Proceedings of the Second International Conference on Mobile Data Management, 2001.

[12] W. Heinzelman, A. Chandrakasan and H. Balakrishnan, Energy-Efficient Communication Protocol for Wireless Microsensor Networks, In HICSS '00, January 2000.

[13] B. C. Lu, B. M. Blum, T. Abdelzaher, J. A. Stankovic, T. He, RAP: A Real-Time Communication Architecture for Large-Scale Wireless Networks, Proceedings of the Eighth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS’02), 2002.

[14] T. Abdelzaher, J. Stankovic, S. Son, B. Blum, T. He, A.Wood, C. Lu, A Communication Architecture and Programming Abstractions for Real-Time Embedded

Sensor Networks, Proceedings of the First International

Workshop on Data Distribution for Real-Time Systems, Providence, RI, May 2003.

[15] S. Kim, S. H. Son, J. A. Stankovic, S. Li,

Y. Choi,

SAFE: A Data Dissemination Protocol for Periodic Updates in Sensor Networks, Proceedings of the First International Workshop on Data Distribution for RealTime Systems, Providence, RI, May 2003.

[16] S. Bhattacharya, H. Kim, S. Prabh, T. Abdelzaher,

Energy-Conserving Data Placement and Asynchronous Multicast in Wireless Sensor Networks, Proceedings of the First International Conference on Mobile Systems, Applications and Services, San Francisco, CA, May 2003. [17] PrismTech, http://www.prismtech.com.

[18] H. V. Hag, OpenSlice Overview, white paper, 2006. [19] S. Lankes, A. Jabs, and T. Bemmerl, Integration of a CAN-based connection-oriented communication model into Real-Time CORBA, Proc, IEEE International Parallel and Distributed Processing Symposium, Proc, 11th Annu, Workshop on Parallel and Distributed Real-Time Systems, Nice, France, April 2003.

[20] Real-Time Innovations, http://www.rti.com

[21] Thales Netherland, http://www.thales-nederland.nl/ [22] J. H. van 't Hag Data-Centric to the Max -

The

SPLICE Architecture Experience, Proceedings of the 23rd International Conference on Distributed Computing Systems Workshops (ICDCSW'03), May 19 - 22, 2003.

[23] Salem Hasnaoui, \Publish/Subscribe paradigm Using the OMG's DDS/DAIS Specifications. Application to IDEC's Micro3 PLC Computer Link System \Intelligent Systems ACTA press, Vol. 36, No. 1, 2008. [24] T. Guesmi, S. Hasnaoui and H. Rezig, “Network Priority Mapping Using Dynamic RT-CORBA Scheduling Service”, International Revue On Computers Software, September Issue, ISSN 1828-6003.

[25] T. Guesmi, S. Hasnaoui and H. Rezig, “Using RTCORBA Scheduling Service and Prioritized Network Traffic to Achieve End-to-End Predictability”, the 2006

International Conference on Communications In Computing (CIC’06), 26-29 June 2006, USA.

本文来源:https://www.bwwdw.com/article/2q0v.html

Top