一、十六进制(逢16进一)
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15
CBA=10*1+11*16+12*16*16
281=1*1+8*16+2*16*16
- Canoe创建仿真工程
- 配置通道Hardware--NetworkHardware
- 在本地创建一个工程文件夹demo
- 新建一个仿真工程File-new-can500kBaud 1ch,保存.cfg文件到工程文件夹
- 新建CAN数据库Tool--Candb++Editor-File-Create Database-Vector_IL_Basic Template:
- 创建节点Network nodes-new、添加消息Messages-new(是标准模式还是扩展模式、id、信号发送方式(cycle)、信号长度)、添加信号Signals-new(数据类型(unsigned还是signed)、排列方式(motorola还是intel)、发送方式(cycle)、系数、偏移量、物理最小值、物理最大值)
- Signal绑定Messages
- Messages绑定nodes(创建Tx:MSG—transmitters(发送节点)--Add,创建Rx:接收节点-Receivers--Add),写一下信号值描述
- 保存dbc文件
- 将DBC文件导入到工程simulation setup,右击databases—import Wizards
- 定义系统变量environment—system variables
- 创建仿真面板Home—Panel—New panel
- 添加capl程序(第一段,把开关的信号给到开关的消息;第二段,把消息给到灯)
- 工程运行仿真
- 测试的三种方式
- 实车测试(报文发送到电脑上)
- obd线一头链接车机,另一头链接电脑,直接把开发给的软件包推到车机上(准备好环境)
- 链接猪尾巴,一头链接副驾,一头链接can盒,can盒一般连三个口(BodyCan、InfoCan)
- 配通道,选波特率500,配置log的路径
- Panel面板(需要定义环境变量、控件关联变量、写capl代码)
- CanIg(模拟信号发送)
- 实车测试(报文发送到电脑上)
- 测试用例执行
- 配置环境:转换成onLine状态,开启日志录制开关,配置日志文件保存路径(编辑case名字作为日志文件名称)
- 启动仿真工程
- 打开Analysis里的Trace或者Graphics
- 根据用例操作
- 关闭仿真工程(测完一条关一条)
- 日志生成
- Canoe工具做UDS诊断
- 创建工程
- 选择诊断
- 配置传输层、诊断层
- 诊断协议
- signal属性
- Intel格式与Motorola格式的区别:
- 当一个信号的数据长度不超过 1 个字节(8 位)时,Intel 与 Motorola两种格式的编码结果没有不同。
- 当一个信号的数据长度超过 1 个字节(即大于8 位)时,
Intel格式:信号的起始位就是低字节的低位。Intel低字节在前,高字节在后。
Motorola格式:信号的起始位就是高字节的低位。Motorola高字节在前,低字节在后。
- signed和unsigned的区别:
- signed:声明有符号的整数类型,包含正负值。
- unsigned:声明无符号的整数类型,只能表示零和正整数。
- 同类型的signed能够存储的数要少于unsigned:
eg. signed int: -128~127
车载测unsigned int: 0~255
- 权重/系数、偏移量:系 数和偏移量定义了线性转换规则,可以从原始值(比如车速km/h)转换为物理值(报文中填充的数值),反之亦然。
- 权重/系数/精度(factor):factor是用于将物理量转换为CAN信号值的系数,它通常是一个小数。
- 偏移量(offset):用于将物理量(信号所代表的物理值,如车速)转换为CAN信号值(CAN 报文发到总线上的十六进制数据)。
- 物理量=can信号值*factor+offset。例如:车速=100*0.4258+10