打印
[其他]

comFramework (一个不太会用的工具)

[复制链接]
2541|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beanzhu|  楼主 | 2022-3-8 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#技术资源#

CAN通信接口框架,包括代码生成器

下载地址:https://sourceforge.net/projects/comframe/files/

工具运行需要JAVA环境


该项目为嵌入式应用提供了一个灵活、可广泛定制的CAN通信接口。它将基于信号的应用程序代码绑定到基于帧的硬件层。它涵盖了从应用层到硬件驱动程序层(不包括)的CAN堆栈。

接口实现支持代码生成器;专用的API与应用软件和用于消息(de)组合的解包/打包功能可以从网络数据库中的信息生成。一个示例集成演示了如何生成更多:以全自动方式生成初始信号值、DLC 检查、校验和生成/验证、序列计数器生成/验证以及不同时序模式的实现。DBC 文件中定义的属性支持自动化。

我们将该项目称为框架,因为接口应仅被视为建议;代码生成过程的高灵活性使得设计不同的接口架构变得容易,这些架构可以达到与网络数据库更改相似的自动化程度。

CAN 接口
CAN接口的操作核心是一个调度器引擎,用于分离一个或多个中断,这些中断通常由CAN硬件驱动程序用于从应用程序任务中通知发送或接收事件;这使得应用端的完整数据处理安全、直接、无争用条件的编程。

调度程序通过回调实现事件和通知的一般概念。此外,事件可以是来自硬件层的中断或计时器事件。回调函数使用计时器和其他事件对帧的传输计时模式进行建模并生成超时信息。

回调位于调度程序引擎的外部。它们可以从 DBC 文件自动编码(这是示例演示的内容),也可以手动编码,然后对数据表进行操作,这些数据表是从 DBC 文件自动编码的。

可以实例化任意数量的调度程序对象,以便以透明和方便的方式支持多线程体系结构。

DBC 代码生成器
代码生成器由CAN网络数据库文件(*.dbc或DBC文件)的开源解析器和连接的通用代码生成器组成。这个想法是最简单和最灵活的:

解析器将 DBC 文件转换为内部数据表示形式,其中包含有关网络的所有信息。此数据结构是解析树的一种特殊形式。选择的结构使其与Terence Parr的模板引擎StringTemplate V4兼容,请参阅 http://www.stringtemplate.org/。此模板引擎能够呈现深度嵌套的数据结构,因此它可以转换几乎任何类型的文本表示形式的解析树。这解释了整个系统的高度灵活性/可定制性。

只需配置模板,代码生成器就可以生成网络文件中信息的不同有用表示形式,例如:

包含所有帧、信号、属性以及这些帧、信号、属性及其所有属性的 HTML 报告
具有所有相同内容的 Excel 文件(但仅作为 *.csv)
C源代码和相关头文件,实现CAN接口。该接口将包含所需的数据结构、与时序相关的帧处理、验证代码以及打包和解压缩操作,以将信号集转换为帧,反之亦然。实现可以特定于特定平台的要求
用于接口文档的 LaTeX 源代码
接口定义文件:如果来自基于模型的代码生成环境的代码链接到CAN接口(例如,MathWorks MATLAB使用其嵌入式编码器或dSPACE TargetLink),则信号接口的分解至关重要,因为这些代码生成器首先需要了解信号集及其属性,数据类型和缩放。我们的代码生成器可以生成所需的M脚本或XML文件
ASAM MCD-2 MC接口描述文件(*.a2l),如果目标平台应连接到ETAS INCA或Vector Informatik CANape等测量和校准工具
AUTOSAR 规范代码 (*.arxml)。DBC 文件内容可以呈现为 AUTOSAR 软件组件,该组件连接到 COM 堆栈的 ISignals,包括所有必需的应用程序数据类型,具有缩放和更多信息
DBC 解析器
在大多数自动化环境中,我们的代码生成器也可以用作原始DBC解析器,用于任何目的。通常,Perl,Python或Octave的M脚本等解释性语言应用于软件自动化环境。如果使用任何解释型语言,则可以配置代码生成器以脚本语言的语法呈现信息。运行代码生成器,运行生成的脚本,并在自动化环境的上下文中获取信息。代码生成的配置可以定制;你只会呈现你真正需要的信息的那些部分。无需开发最复杂的全包式数据结构。本文提供了 GNU Octave 的简单示例。

excelExporter 作为辅助代码生成器
第二个辅助代码生成器是框架的一部分。这是Java应用程序excelExporter。这个想法与主代码生成器几乎相同,但输入是一组Excel工作簿而不是DBC文件。分析树可以像平面表中的线性行列表一样简单,也可以像相互关联的数据项的深度嵌套树一样复杂。具体数据结构取决于输入的定义。解析树由 StringTemplate V4 模板引擎呈现,与 DBC 代码生成器所说的相同。辅助代码生成器 excelExporter 的意图用例是支持接口的处理。Excel文件用作信号,变量,诊断接口项等的数据字典,可以转换为C / C++接口实现,文档,ASAM MCD-2 MC或AUTOSAR接口规范等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝