平铺列表
每一行都重复报文名、ID 和发送节点。可以按 ID 筛选、按发送节点透视、读进 pandas,或者逐行对比两次导出。
拖入一个 DBC,就得到可以筛选、评审和交付的工作簿:信号一张表,报文一张表,值表一张表。数据不上传,中文注释也不会乱码。
把 DBC 文件拖到这里
或支持最大 150 MiB 的 .dbc 文件,只在你的电脑上读取,不会上传。
DBC 是一种纯文本文件,是为 Vector 的 CANdb++ 设计的。没有这个工具,或者文本太密不好读的时候,转成表格是最快的办法。
Vector 的编辑器是打开 DBC 的标准工具,只能在 Windows 上运行,通常随 Vector 的软件一起安装。所以供应商、测试台架或者一台 Mac 笔记本,往往没法直接打开这个文件。
Kvaser Database Editor、SavvyCAN 和 Python 的 cantools 也能读 DBC。但每一个都要再装一个软件或写脚本,也都不能直接给你一张可以筛选、可以分享的清单。
任何编辑器都能打开 DBC,但一个信号的信息散在文件各处:SG_ 定义行、注释(CM_)、值表(VAL_)和属性(BA_)分别在不同的位置。看清一个信号,要搜索四次。
导出会把这些合并成每个信号一行:起始位、系数、单位、接收节点、注释和值表并排放着,可以直接筛选、分享,或者贴进测试用例。
最多五张表,列固定,所以可以直接筛选、做数据透视,或读进 pandas。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | 报文 | ID(十六进制) | 发送节点 | 信号 | 起始位 | 系数 |
| 2 | EngineData | 0x1A0 | ECU | Engine_Speed | 16 | 0.25 |
| 3 | EngineData | 0x1A0 | ECU | Coolant_Temp | 8 | 1 |
| 4 | EngineData | 0x1A0 | ECU | Throttle_Pos | 32 | 0.4 |
| 5 | BrakeStatus | 0x2C4 | ESP | Brake_Pressure | 0 | 0.1 |
| 6 | BrakeStatus | 0x2C4 | ESP | Pedal_Active | 12 | 1 |
每个信号一行,带上它所属的报文。多数人要的就是这张表。
每条报文一行:ID、帧格式、DLC、发送节点、周期,以及它带多少个信号。
每个取值一行,一个有八种状态的信号会变成八行,方便搜索。全局值表也会列出。
每个 ECU,以及它发送的报文数和接收的信号数。
有取值的网络、节点、报文和信号属性,比如 GenMsgCycleTime 或项目自定义的字段。
信号表有两种排版,按接下来拿文件做什么来选。
每一行都重复报文名、ID 和发送节点。可以按 ID 筛选、按发送节点透视、读进 pandas,或者逐行对比两次导出。
每条报文只出现一次,信号列在它下面,报文之间有分隔线。看起来像供应商发来的通信矩阵,适合评审和交付。
多数需求来自没有 CANdb++ 的人,或者想把信号清单放到可以随手批注的地方的人。
台架、供应商和客户常常只需要接口清单。工作簿哪里都能打开,也不需要任何工具授权。
按发送或接收节点筛选,加一列评审状态,标出下一次路试要验证的信号。
每个信号一行,带取值范围、单位和值表,写测试用例时可以直接引用边界值和期望值。
把两个版本都导成平铺列表再对比。新增、删除和换算变了的信号都会表现为变化的行,比直接看文本差异好读。
DBC 里有几个习惯放进表格会显得奇怪,这里说明各自是怎么处理的。
DBC 存 29 位 ID 时会把第 31 位置 1,所以原始数字看起来像 2147483648 加上 ID。表里给出真实的总线 ID(十六进制和十进制),旁边是帧格式。
ID 以 0x1A0 这样的文本写入,Excel 不会把它当成数字或日期。旁边另有一列十进制,方便查找。
DBC 在没有定义真实节点时用 Vector__XXX 占位。表里把这样的发送或接收节点留空,不列占位符。
周期取自 GenMsgCycleTime 属性。DBC 没有定义时,这一格保持为空,不去猜。
没有 BOM 的 UTF-8 CSV 会被 Excel 读成乱码。这里的 CSV 带 BOM,xlsx 存的是 Unicode 文本,所以中文注释和值描述都不会丢。GBK 编码的 DBC 会先解码再导出。
「复用」一列会标出复用器信号和每个信号对应的开关值,能看出哪些信号共用同一段位。
拖入 .dbc 文件,选好要导出的表和排版,点「下载 Excel」。每张表都有冻结的表头和筛选。如果要交给别的工具,可以把某张表下载成 CSV。
不会。文件在浏览器里读取和转换,工作簿也在你的电脑上生成,不会发送到任何服务器。
不能。这个页面只负责导出,在工作簿里做的修改无法写回。请把 DBC 当作唯一来源,用 CANdb++ 或文本编辑器来改。
xlsx 包含你勾选的所有表,有样式表头和筛选。CSV 只有一张表,就是预览里当前显示的那张,适合脚本和数据库。
会,有两种方式。信号表可以带一列值描述,比如 0=Off; 1=On;值表这张表则把每个取值单独列成一行。
会。GBK 和 GB18030 的 DBC 会被识别并解码,两种输出都是 Unicode。CSV 开头带 BOM,Excel 能正确打开。
表头跟随页面语言。如果脚本或查表需要英文列名,请使用英文页面。
最大 150 MiB,远超任何真实的 DBC。Excel 约一百万行的上限也不是问题:再大的 DBC 也就几千个信号。
DBC 是纯文本,用文本编辑器就能打开,但不好读:每个信号的注释、值表和属性都存放在文件的别处。在这里导出成 Excel 或 CSV,每个信号一行就能看全;也可以用 DBC 查看器直接在屏幕上浏览。
做完这一步之后常见的下一步,每个都有独立页面。