kbgev3ikx1j6403708057.gif
' T8 W( B( X7 x) N B$ w$ L( s点击上方蓝色字体,关注我们
3 Y. _1 u' @3 Q: J4 z6 J$ K常用的创建和编辑CAN DataBase(DBC文件)有两种方法,一种是下载CANdb++,Vector免费的工具;另一种就是使用CANoe创建,不过需要付费购买软硬件。两种方法创建DBC文件的方式都是一样的。6 X; Y1 ?# I$ g! W3 P2 J
! X+ }) F. d5 b. a+ Q本篇博文讲解如何使用CANoe软件创建和编辑DBC文件。4 G9 U8 T- v% Q8 Q2 n
13 R& I1 F& K# z. J; W5 p$ {( s3 ]
新建DBC文件
+ W- ^8 N" g3 g6 m) n/ Q1 r; E# o7 n打开CANoe,进入Tools菜单栏,点击CANdb++Editor打开DBC编辑软件。' O* `4 U; ~0 u# ]. q
: N' i( w0 c8 k3 Q2 v9 z+ {/ e
yiijueqaewa6403708157.png
3 L% U- }& O; c: ~5 b
* ?* D7 |) e4 C# r: O7 |! y在DBC编辑器中,点击File -> Create DataBase,选择合适的DBC模板,并选择一个文件夹作为DBC文件的保存路径。
& [1 e4 p0 _: _( f) P8 N3 g3 } u& m' |, f0 M+ c
pizyzo5u31n6403708258.png
: Q1 k1 m; n6 g. T* |
% n* V h6 z7 x( ^) p我一般选择CANoeTemplate或者CAN Template。7 B! D$ r% N4 `9 K- X/ }
! ~' `( J* z/ b
qnmhlaio3g16403708358.png
! v" ^9 `2 R p' r7 f) n8 ? y; h* s# Y' B- t: `
新建成功效果如下:
5 ?+ K2 p) L8 s! V# h) ]' L3 Y2 ]$ Q( f7 ]7 k! Y8 D6 j
1j1erqmweyi6403708458.png
7 D/ R0 Y5 `3 I( k% g: K8 E6 i7 g
+ u0 I4 `" c2 b3 P/ X7 m2
+ ~7 f' z& @8 c8 I& A9 f新建节点' j. o# E; g q
在Network nodes处右击,选择New新建一个节点(ECU),为其命名,例如ECU01和ECU02等。. a7 b9 b M( b( ~: Z8 A E {
: _* M1 }- V" P) V! r' v; E& X! j
qdtewgtvtpg6403708558.png
, F9 q) F* [$ ]
! X# P& Q( l! S: t% Z7 W( N: K" b6 O" |: q* q& J2 D7 j/ V
5mf0atf4edp6403708658.png
. |" S* s" Q/ H4 S2 l' _. `7 @" r) J. t) {( A* X: l9 `' ^; G$ t
节点创建好后,界面如下所示:
/ _8 \- ]. u" X, j& N
5 V' i! B7 Z% V+ s* N1 w$ Y/ p
hgi55tbkbfa6403708758.png
# V* {8 U5 w1 c/ ^- ^/ x4 S
+ |" ~, q6 @. a* n5 C' T3
; O2 C0 |+ b, o& n; }3 P: Q7 K* s创建CAN报文
5 i# M1 Z" |4 @0 r. B4 M在Messages处右击,选择New新建一个报文。% S; q2 |/ s" u( B x a
% y6 }: j8 d) z
2iormx3th2d6403708858.png
0 V# r+ S6 A# L% C/ ?* i0 u
' q4 U. G+ ~9 p( `
) _0 o+ U9 d1 t$ s r+ ^
kbk3aciriw56403708958.png
: d8 h6 q1 u$ u+ [6 b! }, G) f P2 r0 b: ?, n" Q6 m
在Name处输入本条CAN message的名称,注意(不得使用中文,不得以数字开头)。在Type处选择CAN Standard或者CAN Extended。在ID处填入此CAN报文的CAN ID。DLC处写入此报文的长度(单位是字节)。
. k4 w; t: X3 r2 P$ n+ ^1 Q
# n% O& a# D0 ^* O1 \CAN报文创建成功如下所示:' T% B+ R6 W% h4 [/ ]& O0 T
' t6 o5 S. T- X$ b$ o2 Z+ m
dqnnorsa4pn6403709058.png
/ j U; w4 A1 q6 Z! U
根据需要可以创建多个报文。. S3 [+ ^5 G0 R k
4) ~' ]! ?2 Q* n/ [ r' X
创建CAN报文的信号' [, ~8 o6 x ~$ @8 [$ C. M
' ?. N5 m J9 n/ n7 @+ p
在Signals处右击,选择New新建一个信号。 b- ~2 ?9 R1 m0 ^, y
8 R) q0 h# T( S2 q. O8 l
x3uoezwu53e6403709159.png
. n$ ?2 o' y$ I* Q4 x, r
9 I, u0 ?6 f" D9 q P1 T* \$ X( @) b5 I0 n! k
bd4cxlj0cxx6403709259.png
& t+ C2 H6 U; l6 G! w+ S4 B# ?8 `8 p. U' y. a' J) T, k
在Name处键入此信号的名称。Length处填入此信号的长度(单位为Bit)。Byte Order(字节序)选择以Intel型填充还是以Motorola型填充。Intel型 :小端字节序,字节内部bit排序从高位开始。Motorola型:大端字节序,字节内部bit排序从低位开始。ValueType:值的类型,有符号整数和无符号整数以及浮点数类型。Factor:比例因子,表示数值需要乘以这个因子进行转换。Offset:偏移量,表示数值需要加上这个偏移量进行转换。Minimum:参数的最小值。Maximum:参数的最大值。Calculate minimum and maximum:点击这个按钮可以计算最小值和最大值。Value Table:值表的名称,当前为空,表示没有关联的值表。1 O: K0 j, \; z6 A
3 |+ M7 n _( K9 X3 E$ N9 C这些参数共同定义了一个8位有符号整数的LED信号参数,包括其长度、字节顺序、数据类型、初始值、比例因子、偏移量、最小值和最大值。3 ]& M- \1 r6 f' K: e
; J( ]$ m' D: R: p3 A
CAN报文信号创建成功如下所示:
8 M' Z! ^! |, N! I6 ^! B/ N( L: k) S/ B. w7 f) ]
qp2ozg34ena6403709359.png
9 L7 \; O v# L6 A7 K% ^
根据需要可以创建多个信号。
, M8 \; H0 q" I6" u- D) E1 ]3 w
将报文和信号关联# [/ s, h) R+ x2 A
* t* ]% q' @! H- ?9 y# C$ t* n! V双击报文,进入报文界面,切换到Signals栏,点击Add将信号添加到报文中。* K0 |4 O; `8 a% X8 Y- _
9 i3 G$ \0 e7 x( G
q320nakcjcw6403709459.png
( t0 I6 A* i1 f0 {% ]
1 E) A3 h+ V5 m2 A0 ]2 s
如果CAN报文DLC设置得比添加进去的信号所占的字节数多,就会弹出这个窗口,点击否(N)即可,如果点击是(Y),系统会修改这条CAN报文的长度为刚刚添加进去的信号所占的字节数。' U [$ D8 W2 p, Z m
H5 Q) @) E( Z, E+ C
etbvfkxrstf6403709559.png
( _8 d4 }) S8 [' w+ }
4 r- L2 z9 B. i0 k' F添加完成后如下图所示,右边会列出这个报文里所有的信号,以及信号所占的字节和起始位。
/ V( S, ]; c" S! s( V
& I: B/ v) l: P8 S- i% K
zfx2egwmp2l6403709659.png
# m' ?3 E) f3 Q; e9 i/ h3 I3 C1 r
如果设置信号在CAN报文中的起始位和位置,双击信号,在Startbit处修改起始位。
, O9 y+ ^. t- e* p* z. b: L o1 Y9 T+ ^
5uypjfbwzxo6403709759.png
: ]+ U6 M# V1 s4 C, k6 I' r" ~
' r9 O3 y, a% r0 X' i# D也可以在这条CAN报文的layout中通过鼠标拖动修改信号所处的位置。+ G, R4 W# q' K( `& s" h! d h) H H
. `% v# T6 Z5 _. G/ Y双击左侧CAN报文,在弹出的窗口中点击Layout,鼠标按住方框中标记的信号拖动即可改变信号所在的位置。4 `; T" Q$ f8 h y/ X
& N6 Z4 \5 T' u* o6 @
ow1jddbcbxg6403709800.png
/ w6 k R& e0 b8 H/ Z! ~( M- I
F$ t/ o, _" m" D) X6
( F" K" C7 u, t设置CAN报文发送者和接收者
w' D* c* s6 y2 G双击节点ECU1,在Mapped RX Sig中添加需要接收的报文中的信号,在Tx message中添加该节点发送的报文。
/ N# m, u" r% M; o" |* i
4 C1 f4 C2 v2 V6 o- \. k. j
u52azldvfmn6403709900.png
# K0 @8 r8 T6 P. ]3 u) m2 {
7 j' p% z$ ^4 S% f: c C! A! P7 j( |" _! k" ~
: b% C7 Q! @2 I1 y3 d" N/ G
4 F$ E6 r% B2 ?6 S& @ V
1 h; I4 c+ h0 C; q& z
$ W2 x* D5 i) s2 X; G& n5 h
2 b6 S; O% s- j4 K2 h L
此时我们展开左侧,可以看到ECU1节点已经有了对应的发送和接收报文以及信号。
E" T( V# @3 m8 F' h9 n) E' M" F# B5 M o! R7 k6 t" _
! t9 C6 r3 j7 L- |- S8 \
8 U9 L& W% W" h8 p# \! N以上就是如何在CANoe中新建和使用CAN DataBase(DBC文件)的基本步骤。通过这些步骤,你可以创建一个简略版的CAN DBC。
9 S% @& o! g$ X' ?5 x6 R {- d5 P$ Z; Z. o( d4 l

; p+ z3 J! [6 R T8 e" ~6 I% J1 b. M% ^6 V( f+ K. ^
点击阅读原文,更精彩~ |