首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种单线程DDS协议栈及其实现方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海零念科技有限公司

摘要:本发明涉及一种单线程DDS协议栈及其实现方法,设计timerevent模块和内存池,用于将DDS协议集成在单核的硬件环境中使用。Timerevent模块和内存池的设计,满足当前汽车应用中ECU内存资源小,功能安全高的需求,解决当前技术无法在ECU中移植和使用DDS协议的痛点。将其应用于自动驾驶系统中的感知、决策和控制模块之间基于服务的通信和数据交换,可以实现高效的实时数据传输和同步,确保各个模块之间的协同工作,提高自动驾驶系统的安全性和可靠性。

主权项:1.一种单线程DDS协议栈,其特征在于,所述协议栈及其平台包括DDS实体对象、CPWrapper模块、斐波那契堆、UDP消息接收接口、PDUR数据接收接口以及内存池,DDS实体对象包括PDP模块、Heartbeat模块、AckNack模块和DataFrag模块、RTPS模块、DDS模块、transport模块;在RTPS模块初始化时,创建PDP模块、Heartbeat模块、AckNack模块、DataFrag模块用于消息发送事件,并将创建的事件插入到斐波那契堆;DDS模块读取数据前,驱动RTPS模块确认当前participant任务队列中最早被调度的事件是否过期,如果过期,则从斐波那契堆中提取最早的事件,并删除斐波那契堆中原事件结点;然后RTPS模块执行最早事件对应的回调函数,即执行前述的PDP模块、Heartbeat模块、AckNack模块或DataFrag模块进行消息发送事件;回调函数执行完毕后,如果当前事件在之后的通信中仍需要调用,并非单次执行事件,则重新调整斐波那契堆,将当前执行完毕的事件结点插入到斐波那契堆;然后循环往复检查participant任务队列中的过期事件,并执行过期事件,直至participant任务队列中过期事件全部处理完毕;Transport模块初始化以及构建时,将transport通道构建为双向循环链表;消息接收处理接口位于DDS模块,DDS模块驱动RTPS模块transport通道通过回调函数监听消息;对于Posix,监听回调函数封装UDP消息接收接口,transport通道将通过UDP消息接收接口监听以太网中的UDP消息,然后RTPS模块再对接收到的UDP消息进行反序列化、质量服务管理以及安全管理处理;对于AUTOSARCP,监听回调函数封装PDUR数据接收接口,CPWrapper模块用于获取LowLayer的PDUR数据,transport通道会通过CPWrapper模块将来自PDUR模块的数据路由给RTPS模块,然后RTPS模块再对接收到的PDUR数据进行反序列化、质量服务管理以及安全管理处理,最后RTPS模块将处理完毕的数据返回到PDUR-RUpLayer;内存池对DDS实体对象不同的实体对象进行了预先分配内存,统一对DDS实体对象的内存管理,使用位集数组来对内存池的使用进行标记和管理,位集数组是一个元素为无符号32位整数的数组,每一位都代表一种状态,内存池使用了个元素为相应类型的实体对象的数组,用来存储实际的元素数据;当从内存池中分配一个DDS实体对象时,从数组中获取一个可用的元素,并将其对应的位集数组的位标记为1,表示已使用;当释放一个DDS实体对象时,将对应的位集数组的位标记为0,表示未使用;在系统初始化时,全局变量池被创建并预先分配足够的内存池空间,当DDS实体对象需要获取内存时,通过位集技术,快速查找未使用的内存块,分配找到的空闲内存块,更新位集信息,返回分配的内存地址;当DDS实体对象完成对内存的使用时,根据释放的内存地址,计算在内存池中的索引,通过位集技术,清除相应的内存块占用标记,释放内存块,针对可能的内存释放两次的情况,进行检查和提醒。

全文数据:

权利要求:

百度查询: 上海零念科技有限公司 一种单线程DDS协议栈及其实现方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。