CN110806855B - 一种can设备开发系统及其方法 - Google Patents
一种can设备开发系统及其方法 Download PDFInfo
- Publication number
- CN110806855B CN110806855B CN201911043123.2A CN201911043123A CN110806855B CN 110806855 B CN110806855 B CN 110806855B CN 201911043123 A CN201911043123 A CN 201911043123A CN 110806855 B CN110806855 B CN 110806855B
- Authority
- CN
- China
- Prior art keywords
- management module
- message
- interface
- equipment
- service function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种CAN设备开发系统,包括:代码生成模块:根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的代码框架,实现CAN报文的数据解析;CAN管理模块:动态配置CAN接口,动态加载由本框架产生的CAN设备业务功能组件,从多个CAN硬件并行地读取报文,并根据CAN数据协议的约定,为每个业务功能组件分发报文,同时接受各个业务功能组件的报文发送请求,向CAN硬件发送报文;CAN‑SDK:与开发阶段与运行时阶段,链接CAN管理模块和由本框架产生的业务功能组件的调用接口。本系统实现了对CAN数据协议解析的自动化,使得协议解析与业务逻辑功能的实现得以分开,大大降低了开发人员的代码工作量与有关协议解析的出错率。
Description
技术领域
本发明属于CAN设备开发技术领域,更具体地,涉及一种CAN设备开发系统及其方法。
背景技术
CAN(控制器局域网络,Controller Area Network的简称)作为一种实时性好、可靠性高、灵活性强、结构简单的通信总线,广泛地用于工业自动化、船舶、医疗设备、工业设备等嵌入式计算机控制系统中。而随着无人系统研究的逐渐火热,CAN设备的业务功能开发需求也逐渐增多,传统开发手段已经难以应付易变而多样的CAN设备应用程序开发。
发明内容
本发明为克服上述现有技术中的缺陷,提供一种CAN设备开发系统及其方法,。
为解决上述技术问题,本发明采用的技术方案是:一种CAN设备开发系统,包括:
代码生成模块,用于根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的C++代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;该代码框架兼容了ros框架下的package格式,以方便开发人员接入基于ros框架的其他系统模块。框架代码实现了CAN报文的数据解析(包括反解析),使用泛化的方法,为CAN设备开发者提供继承接口以处理数据接收事件,同时提供调用接口,往CAN管理模块发送CAN数据。另外,生成的框架代码中也隐含了提供给CAN管理模块调用的初始化入口,以及往CAN管理模块注册回调事件的流程。开发人员在框架上补充业务逻辑功能后,即可编译为由CAN管理模块动态加载的CAN业务功能组件(以操作系统动态库的形式存在)。
CAN管理模块,用于首先根据CAN-SDK的接口,执行各个CAN设备业务功能组件的初始化流程,实现CAN管理模块对CAN数据事件的注册,同时异步启动各个CAN设备业务功能组件的主循环;然后CAN管理模块进入多CAN接口并行监听的处理流程,同时响应各个CAN设备业务功能组件的报文发送请求;当CAN管理模块从某个CAN接口接收到新的报文时,其会根据该CAN报文的ID,调用相应的回调处理函数;
CAN-SDK,用于作为操作系统动态库及相关C++头文件,为CAN管理模块以及产生的CAN设备业务逻辑组件的公共依赖,封装CAN硬件读写、CAN报文数据解析、动态库加载等系统功能;同时提供CAN设备业务逻辑组件的初始化接口、CAN管理模块回调事件注册接口、CAN管理模块数据发送接口,连接CAN管理模块与CAN设备业务逻辑组件,实现软硬件解耦的系统特性。
在本发明中,通过解析本框架特有格式的CAN数据协议文件,使用代码生成的方式,为开发人员产生可二次开发的解析CAN报文数据的代码框架,实现报文解析与业务功能分离;开发人员在框架留下的接口中补充业务逻辑功能的实现后,即可编译为CAN业务功能组件,由CAN管理模块在运行时动态加载;同时CAN管理模块还可配置多个CAN接口,并根据业务功能组件的协议要求自动分发报文,实现软硬件解耦。
本发明提供一种CAN设备开发系统,包括代码生成模块、CAN管理模块、CAN-SDK;代码生成模块:根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;CAN管理模块:动态配置CAN接口,动态加载由本框架产生的CAN设备业务功能组件,从多个CAN硬件并行地读取报文,并根据CAN数据协议的约定,为每个业务功能组件分发报文,同时接受各个业务功能组件的报文发送请求,向CAN硬件发送报文;CAN-SDK:于开发阶段与运行时阶段,链接CAN管理模块和由本框架产生的业务功能组件的调用接口,其为CAN硬件读写、CAN报文数据解析、业务功能组件动态加载等系统功能的实现主体。本系统实现了对CAN数据协议解析的自动化,使得协议解析与业务逻辑功能的实现得以分开,大大降低了开发人员的代码工作量与有关协议解析的出错率,也一定程度降低对CAN专业知识的门槛要求;同时系统通过报文分发的方式,解耦了CAN硬件与CAN软件,实现了传统开发手段无法完成的CAN软件代码的通用性与CAN硬件部署的灵活性。
本CAN设备开发系统,使用的特有CAN数据协议格式如下所示:
上述内容仅为一个示意,不是标准YAML语法,其中“|”代表“或”,表示隔开可能的多种取值;“<…>”表示一个变量,由开发人员填写;“[…]”表示YAML的数组。在本框架特有的CAN数据协议格式中,涉及到的各个字段含义及其取值范围如下:
本系统适用于CAN为ISO-11898,解析的协议标准覆盖CAN 2.0A,CAN 2.0B、CAN2.0B active、CAN 2.0B passive,同时将继续兼容未来可能出现的新标准。
本发明还提供一种快速开发CAN设备的方法,使用以上所述的CAN设备开发系统,具体包括以下步骤:
S1.根据实际CAN设备情况,开发人员编写本系统格式的CAN数据协议文件;
S2.使用系统中的代码生成模块,解析步骤S1的CAN数据协议文件,并生成依赖CAN-SDK的C++代码框架;
S3.通过代码生成模块产生依赖于CAN-SDK的框架代码,由开发人员补充具体的业务功能实现后,编译为CAN业务功能组件,交由CAN管理模块动态加载;
S4.CAN管理模块通过CAN-SDK初始化各个业务功能组件,并注册协议约定的CAN报文接收事件,在接收到CAN报文时,分开给对应业务功能组件进行处理;
S5.CAN管理模块同时响应业务功能组件的CAN报文发送请求,往动态配置的CAN接口发送相关数据。
进一步的,所述的S2步骤中生成的代码框架结构,最外层是一个ros package文件夹,其中包含编译文件CMakeLists.txt,指导该CAN业务功能组件的编译过程,和描述文件package.xml,指导该CAN业务功能组件的依赖关系,以及include/drivers文件夹和src/drivers文件夹,其分别存放了生成的头文件与源文件。
进一步的,在所述的S3步骤中,使用系统生成的CMakeLists.txt编译生成为框架所用的CAN业务功能组件。
进一步的,所述的S5步骤具体包括:CAN管理模块根据配置打开对应的CAN接口,同时以操作系统动态库的形式加载CAN业务功能组件,并通过CAN-SDK的初始化入口,执行CAN业务功能组件的初始化流程,其中包括框架的初始化流程以及开发人员的业务功能初始化流程,随后异步启动这些组件的主循环流程,CAN管理模块进入监听主循环。
进一步的,CAN管理模块在监听主循环中,每从CAN接口接收一帧CAN报文,触发一次报文分发流程。
进一步的,CAN管理模块执行CAN业务功能组件的初始化流程时,期间组件的框架部分往CAN管理模块注册了CAN报文接收事件,注册内容包括ID过滤器、接口过滤器、回调处理函数,其中两个过滤器均在步骤S1中由开发人员在数据协议中指定。
进一步的,CAN管理模块在初始化流程中为打开的各个CAN接口创建了接口索引,当CAN管理模块中某个接口接收到报文时,首先为新的报文ID从通过注册事件的各个过滤器,筛选出匹配的CAN事件,并建立该事件ID的索引;每一个接口均维护一个独立事件索引;有了索引后,即可对报文以及之后的相同ID的报文,直接索引出相应的回调处理函数,进行异步回调。
进一步的,不同CAN接口触发的报文分发流程是并行的,而报文分发流程触发的异步回调是并发的。
进一步的,在主循环中,系统监听外部的结束信号,若没有收到结束信号,则继续主循环的流程;若收到结束信号,则会停止所有的监听活动,关闭所有模块,释放所有系统资源,并退出整个系统流程。
与现有技术相比,有益效果是:
1.本发明自动地完成了CAN报文数据协议的解析(包括反解析)流程,大大地降低了开发人员的代码工作量,避免了编写繁琐的协议解析流程时可能出现的编码错误
2.本发明通过代码生成的方式,配合框架产生二次开发接口,实现报文解析与业务功能实现的解耦,使开发人员可以更好地专注于功能的实现,提高功能需求的开发效率;
3.本发明通过报文分发的方式,实现硬件和软件的解耦,提高了代码的通用性和硬件部署的灵活性,也减少了开发人员的压力;
4.本发明利用本框架来进行CAN设备的开发,解放了开发人员的生产力,免受硬件部署、CAN专业知识门槛、协议解析的束缚。
附图说明
图1是本发明系统框架结构示意图。
图2是本发明系统开发与使用的活动示意图。
图3是本发明系统自动生成的代码结构图。
图4是本发明报文分发方法的流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
实施例1:
如图1和图2所示,一种CAN设备开发系统,包括:
代码生成模块,用于根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;
CAN管理模块,用于首先根据CAN-SDK的接口,执行各个CAN设备业务功能组件的初始化流程,实现CAN管理模块对CAN数据事件的注册,同时异步启动各个CAN设备业务功能组件的主循环;然后CAN管理模块进入多CAN接口并行监听的处理流程,同时响应各个CAN设备业务功能组件的报文发送请求;当CAN管理模块从某个CAN接口接收到新的报文时,其会根据该CAN报文的ID,调用相应的回调处理函数;
CAN-SDK,用于作为操作系统动态库及相关C++头文件,为CAN管理模块以及产生的CAN设备业务逻辑组件的公共依赖,封装CAN硬件读写、CAN报文数据解析、动态库加载等系统功能;同时提供CAN设备业务逻辑组件的初始化接口、CAN管理模块回调事件注册接口、CAN管理模块数据发送接口,连接CAN管理模块与CAN设备业务逻辑组件,实现软硬件解耦的系统特性。
本发明提供一种CAN设备开发系统,包括代码生成模块、CAN管理模块、CAN-SDK;代码生成模块:根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;CAN管理模块:动态配置CAN接口,动态加载由本框架产生的CAN设备业务功能组件,从多个CAN硬件并行地读取报文,并根据CAN数据协议的约定,为每个业务功能组件分发报文,同时接受各个业务功能组件的报文发送请求,向CAN硬件发送报文;CAN-SDK:于开发阶段与运行时阶段,链接CAN管理模块和由本框架产生的业务功能组件的调用接口,其为CAN硬件读写、CAN报文数据解析、业务功能组件动态加载等系统功能的实现主体。本系统实现了对CAN数据协议解析的自动化,使得协议解析与业务逻辑功能的实现得以分开,大大降低了开发人员的代码工作量与有关协议解析的出错率,也一定程度降低对CAN专业知识的门槛要求;同时系统通过报文分发的方式,解耦了CAN硬件与CAN软件,实现了传统开发手段无法完成的CAN软件代码的通用性与CAN硬件部署的灵活性。
实施例2
一种快速开发CAN设备的方法,使用实施例1所述的CAN设备开发系统,首先需要开发人员编写本框架特有格式的CAN数据协议文件(具体格式见发明内容),然后通过代码生成模块产生依赖于CAN-SDK的框架代码,由开发人员补充具体的业务功能实现后,编译为CAN业务功能组件,交由CAN管理模块动态加载。CAN管理模块通过CAN-SDK初始化各个业务功能组件,并注册协议约定的CAN报文接收事件,在接收到CAN报文时,分开给对应业务功能组件进行处理。CAN管理模块同时也响应业务功能组件的CAN报文发送请求,往动态配置的CAN接口发送相关数据。
为了更好地说明本发明的具体实施方案,下面将结合图2的具体实施步骤以及图3-4关于代码生成和报文分发的实现细节,对上述技术方案进行详细的说明。
步骤1.开发人员根据本框架约定的CAN数据协议特有格式,编写目标CAN设备的数据协议文件;
步骤2.使用系统的代码生成模块进行代码生成,产生的代码结构如图3所示:最外层是一个ros package文件夹,其中包含编译文件CMakeLists.txt(指导该CAN业务功能组件的编译过程),与包描述文件package.xml(指导该CAN业务功能组件的依赖关系),以及include/drivers文件夹与src/drivers文件夹,其分别存放了生成的头文件与源文件。图3中的“<Device>”代表数据协议中开发人员指定的CAN设备名字,“<Module>”代码开发人员进行代码生成时给定的模块名称,设备可以有多个,而模块只有一个;“<Device>.h/.cpp”与“<Module>.h/.cpp”为留给开发人员二次开发的接口;“.<Device>Module.h/.cpp”为框架生成的与CAN管理模块配合的实现CAN报文数据解析(包括反解析)的框架代码,“.init.cpp”为框架生成的由CAN管理模块通过CAN-SDK调用的CAN业务功能组件初始化流程的代码实现,这些框架代码文件(图3灰白色部分)均对开发人员透明;
步骤3.开发人员在生成的框架预留的接口中,补充开发业务功能的实现,包括对CAN报文数据接收的回调处理等,然后使用框架生成的CMakeLists.txt编译生成为为框架所用的CAN业务功能组件;
步骤4.由部署人员,根据实际现场CAN设备情况,配置相应的CAN接口和CAN业务功能组件,运行CAN管理模块;
步骤5.CAN管理模块检查并初始化部署人员的配置;
步骤6.CAN管理模块根据配置打开对应的CAN接口,同时以操作系统动态库的形式加载CAN业务功能组件,并通过CAN-SDK的初始化入口,执行CAN业务功能组件的初始化流程,其中包括框架的初始化流程以及开发人员的业务功能初始化流程,随后异步启动这些组件的主循环流程,CAN管理模块进入监听主循环;
步骤7.CAN管理模块在监听主循环中,每从CAN接口接收一帧CAN报文,触发一次报文分发流程,该流程完整的设计如图4所示:在步骤6中,CAN管理模块执行CAN业务功能组件的初始化流程,期间组件的框架部分往CAN管理模块注册了CAN报文接收事件,如图4左边流程所示,注册内容包括ID过滤器、接口过滤器、回调处理函数,其中两个过滤器均在步骤1中由开发人员在数据协议中指定。另外,CAN管理模块在步骤6的初始化流程中为打开的各个CAN接口创建了接口索引,见图4右边流程,当CAN管理模块中某个接口接收到报文时,图4以CAN1接口为例,为了提高系统效率,首先为新的报文ID从通过注册事件的各个过滤器,筛选出匹配的CAN事件,并建立该事件ID的索引;每一个接口均维护一个独立事件索引,图4中以CAN1接口为例;有了索引后,即可对报文以及之后的相同ID的报文,直接索引出相应的回调处理函数,进行异步回调。除此之外,不同CAN接口触发的报文分发流程是并行的,而报文分发流程触发的异步回调是并发的,这样的设计是为了最大程度降低本框架实现便捷开发而带来的系统上额外的性能开销与报文延迟,使用并行、并发的手段,使系统在CAN事件上的响应几乎与传统开发手段的效果无异,而高效开发带来的好处使本框架远胜于传统开发手段;
步骤8.在主循环中,系统监听外部的结束信号,若没有收到结束信号,则继续主循环的流程;若收到结束信号,则会停止所有的监听活动,关闭所有模块,释放所有系统资源,并退出整个系统流程。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种CAN设备开发系统,其特征在于,包括:
代码生成模块,用于根据本系统中使用树型层级标记语言YAML逐级定义的CAN硬件设备、CAN报文帧、CAN报文帧中的所有字段的所有属性,所生成的用于本系统框架代码的数据协议文件,从而解析CAN数据协议文件,产生与CAN管理模块配合的C++头代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;
CAN管理模块,用于首先根据CAN-SDK的接口,执行各个CAN设备业务功能组件的初始化流程,实现CAN管理模块对CAN数据事件的注册,同时异步启动各个CAN设备业务功能组件的主循环;然后CAN管理模块进入多CAN接口并行监听的处理流程,同时响应各个CAN设备业务功能组件的报文发送请求;当CAN管理模块从某个CAN接口接收到新的报文时,其会根据该CAN报文的ID,调用相应的回调处理函数;
CAN-SDK,用于作为操作系统动态库及相关C++头文件,为CAN管理模块以及产生的CAN设备业务逻辑组件的公共依赖,封装CAN硬件读写、CAN报文数据解析、动态库加载;同时提供CAN设备业务逻辑组件的初始化接口、CAN管理模块回调事件注册接口、CAN管理模块数据发送接口,连接CAN管理模块与CAN设备业务逻辑组件,实现软硬件解耦的系统特性。
2.一种开发CAN设备的方法,其特征在于,使用权利要求1所述的CAN设备开发系统,具体包括以下步骤:
S1. 根据实际CAN设备情况,开发人员编写本系统格式的CAN数据协议文件;CAN数据协议文件是使用树型层级标记语言YAML逐级定义了CAN硬件设备、CAN报文帧、CAN报文帧中的所有字段的所有属性,所生成的用于本系统框架代码的数据协议文件;
S2.使用系统中的代码生成模块,解析步骤S1的CAN数据协议文件,并生成依赖CAN-SDK的C++代码框架;
S3. 通过代码生成模块产生依赖于CAN-SDK的框架代码,由开发人员补充具体的业务功能实现后,编译为CAN业务功能组件,交由CAN管理模块动态加载;
S4. CAN管理模块通过CAN-SDK初始化各个业务功能组件,并注册协议约定的CAN报文接收事件,在接收到CAN报文时,分开给对应业务功能组件进行处理;
S5. CAN管理模块同时响应业务功能组件的CAN报文发送请求,往动态配置的CAN接口发送相关数据。
3.根据权利要求2所述的开发CAN设备的方法,其特征在于,所述的S2步骤中生成的代码框架结构,最外层是一个ros package文件夹,其中包含编译文件CMakeLists.txt,指导该CAN业务功能组件的编译过程,和描述文件package.xml,指导该CAN业务功能组件的依赖关系,以及include/drivers文件夹和src/drivers文件夹,其分别存放了生成的头文件与源文件。
4.根据权利要求3所述的开发CAN设备的方法,其特征在于,在所述的S3步骤中,使用系统生成的CMakeLists.txt编译生成为框架所用的CAN业务功能组件。
5.根据权利要求3所述的开发CAN设备的方法,其特征在于,所述的 S5步骤具体包括:CAN管理模块根据配置打开对应的CAN接口,同时以操作系统动态库的形式加载CAN业务功能组件,并通过CAN-SDK的初始化入口,执行CAN业务功能组件的初始化流程,其中包括框架的初始化流程以及开发人员的业务功能初始化流程,随后异步启动这些组件的主循环流程,CAN管理模块进入监听主循环。
6.根据权利要求5所述的开发CAN设备的方法,其特征在于,CAN管理模块在监听主循环中,每从CAN接口接收一帧CAN报文,触发一次报文分发流程。
7.根据权利要求6所述的开发CAN设备的方法,其特征在于,CAN管理模块执行CAN业务功能组件的初始化流程时,期间组件的框架部分往CAN管理模块注册了CAN报文接收事件,注册内容包括ID过滤器、接口过滤器、回调处理函数,其中两个过滤器均在步骤S1中由开发人员在数据协议中指定。
8.根据权利要求7所述的开发CAN设备的方法,其特征在于,CAN管理模块在初始化流程中为打开的各个CAN接口创建了接口索引,当CAN管理模块中某个接口接收到报文时,首先为新的报文ID从通过注册事件的各个过滤器,筛选出匹配的CAN事件,并建立该事件ID的索引;每一个接口均维护一个独立事件索引;有了索引后,即可对报文以及之后的相同ID的报文,直接索引出相应的回调处理函数,进行异步回调。
9.根据权利要求8所述的开发CAN设备的方法,其特征在于,不同CAN接口触发的报文分发流程是并行的,而报文分发流程触发的异步回调是并发的。
10.根据权利要求8所述的开发CAN设备的方法,其特征在于,在主循环中,系统监听外部的结束信号,若没有收到结束信号,则继续主循环的流程;若收到结束信号,则会停止所有的监听活动,关闭所有模块,释放所有系统资源,并退出整个系统流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911043123.2A CN110806855B (zh) | 2019-10-30 | 2019-10-30 | 一种can设备开发系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911043123.2A CN110806855B (zh) | 2019-10-30 | 2019-10-30 | 一种can设备开发系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806855A CN110806855A (zh) | 2020-02-18 |
CN110806855B true CN110806855B (zh) | 2021-06-08 |
Family
ID=69489633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911043123.2A Active CN110806855B (zh) | 2019-10-30 | 2019-10-30 | 一种can设备开发系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806855B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708519B (zh) * | 2020-06-12 | 2023-08-18 | 北京思特奇信息技术股份有限公司 | 一种业务组件的处理方法、装置、设备和存储介质 |
CN113515307A (zh) * | 2021-05-18 | 2021-10-19 | 江苏奥易克斯汽车电子科技股份有限公司 | 一种基于混合动力汽车的可标定can信息处理系统及方法 |
CN114422627B (zh) * | 2022-01-31 | 2023-06-27 | 重庆长安汽车股份有限公司 | 基于CANoe动态链接库的BLF数据读写与CAN报文转译方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN106155697A (zh) * | 2016-07-30 | 2016-11-23 | 北京慧摩尔科技有限公司 | 一种面向服务的开发框架(YC‑Framework) |
CN106249735A (zh) * | 2016-09-09 | 2016-12-21 | 合普新能源科技有限公司 | 基于can卡的控制测试及升级的方法 |
US9851968B2 (en) * | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
CN108304192A (zh) * | 2017-08-10 | 2018-07-20 | 北京普莱德新能源电池科技有限公司 | 一种自动生成can交互层代码的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5468588B2 (ja) * | 2011-09-15 | 2014-04-09 | 株式会社東芝 | 通信装置及びプログラム |
CN106603482B (zh) * | 2016-05-26 | 2023-01-13 | 欣旺达电动汽车电池有限公司 | 自动生成can通讯协议代码的方法和装置 |
CN109639548A (zh) * | 2019-02-22 | 2019-04-16 | 南京邮电大学 | 一种桥接ROS系统和CANopen网络实时通信方法 |
-
2019
- 2019-10-30 CN CN201911043123.2A patent/CN110806855B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
US9851968B2 (en) * | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
CN106155697A (zh) * | 2016-07-30 | 2016-11-23 | 北京慧摩尔科技有限公司 | 一种面向服务的开发框架(YC‑Framework) |
CN106249735A (zh) * | 2016-09-09 | 2016-12-21 | 合普新能源科技有限公司 | 基于can卡的控制测试及升级的方法 |
CN108304192A (zh) * | 2017-08-10 | 2018-07-20 | 北京普莱德新能源电池科技有限公司 | 一种自动生成can交互层代码的方法及系统 |
Non-Patent Citations (3)
Title |
---|
Development of a reduction algorithm for CAN frame bits;Ronnie O. Serfa Juan;《IEEE 2017 International SoC Design Conference (ISOCC)》;20180531;第127-128页 * |
一种开放式CAN总线网络仿真开发平台的实现;昌路 等;《系统仿真学报》;20140608;第1236-1243页 * |
基于CAN总线的电动汽车车载监控终端;龚文 等;《计算机与现代化》;20131115;第192-195页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110806855A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806855B (zh) | 一种can设备开发系统及其方法 | |
Schmidt et al. | C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks | |
US10700948B2 (en) | Service-oriented modular system architecture | |
US7752598B2 (en) | Generating executable objects implementing methods for an information model | |
CN108400992B (zh) | 一种流式通信数据协议解析软件框架实现系统及方法 | |
US20060156284A1 (en) | Architecture of Ticc-Ppde, a new paradigm for parallel programming | |
CN116089036B (zh) | 多线程多模块的业务流编排处理方法、设备及存储介质 | |
Deng et al. | Model-checking middleware-based event-driven real-time embedded software | |
Bellissard et al. | Component-based programming and application management with Olan | |
Pagano et al. | A model based safety critical flow for the aurix multi-core platform | |
Hoefler et al. | Writing parallel libraries with MPI-common practice, issues, and extensions | |
Manolescu | A dataflow pattern language | |
US20100023948A1 (en) | Allocating resources in a multicore environment | |
Blair et al. | A programming model and system infrastructure for real-time synchronization in distributed multimedia systems | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及系统 | |
Afek et al. | Benign failure models for shared memory: Preliminary version | |
US6934953B2 (en) | Deferred procedure call in interface description language | |
Miranda et al. | Drago: An Ada extension to program fault-tolerant distributed applications | |
Ferrari et al. | Multiparadigm distributed computing with TPVM | |
Wang et al. | COTS simulation package (CSP) interoperability-a solution to synchronous entity passing | |
CN111221667B (zh) | 一种基于cmsp的数据分布式预处理方法 | |
Pérez et al. | Experience with the integration of distribution middleware into partitioned systems | |
CN115550941A (zh) | 嵌入式系统应用5g通信模组中间层框架实现方法及装置 | |
CN117850364A (zh) | 一种上位机对下位机的控制软件设计方法和控制方法 | |
Jean-Paul et al. | A mapping from AADL to Java-RTSJ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |