freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

梆梆安全研究院 车联网检测专题之四 | CAPL 语言快速入门
2023-01-06 13:35:12
所属地 北京

CAPL 概述

CAPL 全称为 Communication Access Programming Language,即通信和访问编程语言。它是Vector公司专门为CANoe 开发环境设计的编程语言,在语法和概念上和C语言类似。

CAPL 开发环境

CANoe 自带 CAPL 开发环境 – CAPL Browser。用户可以在CANoe主界面的 Tools 功能区点击 CAPL Browser 图标打开,创建一个新的 CAPL 程序文件。

CAPL 基础

1 数据类型

由于 CAPL 是一门类 C 语言,因此其基本数据类型跟 C 语言比较相似。但也有一些比较特殊的地方。

下面是常用的一些基本数据类型:

数据类型

名称

注释

无符号整型

byte

unsigned,1个字节

word

unsigned,2个字节

dword

unsigned,4个字节

有符号整型

int

signed,2个字节

long

signed,4个字节

int64

signed,8个字节

浮点型

float

单精度,8个字节

double

双精度,8个字节

CAN报文

message

报文

定时器

Timer

msTimer

毫秒

单个字符

Char

1个字节

其中,报文(CAN/LIN message)是车载网络最基本的构成部分,使用关键字message 来声明变量。当使用 message 声明报文变量时,默认为 CAN 报文变量。当有数据库支撑的时候,一个完整的声明应该包括message ID或message name。

下面是 CAN 报文数据相关信息:

关键字

描述

CAN

CAN报文传输的逻辑通道

ID

CAN报文标识符

name

报文在dbc文件中的名称

DIR

报文传输方向:TX/RX

RTL

远程帧标志位:0(数据帧),1(远程帧)

DLC

报文的数据长度:有效值范围0~15

Byte(x)

数据字节位:有效值范围0~638~63仅适用于CAN-FD

示例:

2 程序结构

一个完整的 CAPL 程序由4个部分组成:头文件、全局变量声明、事件处理和自定义函数。

3 头文件

为了增强 CAPL 代码的复用性,CAPL提供了*.cin文件(callback interface file)。用户可以将基本的函数接口按照不同类型,分别定义在各自的*.cin文件中,然后再在不同的*.can文件中包含所需要的*.cin文件,从而形成二层引用结构。同时,也可以在*.cin文件中包含其他*.cin文件,进而形成多层引用结构。

4 全局变量声明

CAPL 跟 C 语言一样,变量的作用域和生命周期仅限于变量声明的函数体(即大括号范围)内。CAPL 在每个程序的开始都提供 了variables 区域给用户声明全局变量。

在此部分声明的全局变量的生命周期从仿真开始持续到仿真结束,其作用域为整个CAPL 文件。

5 事件处理

CANoe 主要是用来对 CAN 通信网络进行建模、仿真、测试和开发的一种工具。作为 CANoe 的辅助语言,CAPL 采用了面向事件的机制来满足这样的需求。

CAPL 针对不同情况,对事件进行了分类。包括:系统事件、CAN 控制器事件、CAN 报文事件、CAN 信号事件、定时事件、键盘事件、错误帧事件、环境变量事件、系统变量事件、诊断事件。

下面整理了一些常用的事件:

6 自定义函数

除系统事件外,CAPL 还支持自定义函数,语法和 C 语言类似。

示例:

代码示例

CAPL的事件函数非常多,也是CAPL语言的关键,这里简单列举几个常用的事件,方便大家参考。

CAN报文事件

定时事件

键盘事件

总结

CAPL 是一款面向事件的类C语言。在学习CAPL的过程中,应该重点关注事件函数。通过事件函数,结合测试用例,编写相关测试脚本,辅助测试。

本文参考资料《CANoe开发从入门到精通》

面向“十四五”,车联网已经进入应用部署的新时期。中国信息通信研究院发布的《车联网白皮书》显示,我国车联网产业跨行业融合带动应用部署模式向纵深发展,车联网产业在“车—路—云—网—图”各方面均呈现良好发展势头。梆梆安全研究院整理车联网检测系列文章,希望在促进汽车、交通等传统产业转型升级,以及促进形成数字经济发展的新产业集聚方面起到积极作用。未来,梆梆安全将筑牢通信安全、数据安全和网络安全基础底座,推进车联网产业迈入应用部署的新时期。

# 车联网安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者