|
way2uyps0qt6405557.gif
5 |. f+ b1 S9 l# W: C( B8 a点击上方蓝色字体,关注我们& e" }3 F- O! ?; D3 q, ~1 Q
常用的创建和编辑CAN DataBase(DBC文件)有两种方法,一种是下载CANdb++,Vector免费的工具;另一种就是使用CANoe创建,不过需要付费购买软硬件。两种方法创建DBC文件的方式都是一样的。
) q) U8 _' ~; ?8 j1 `1 b+ y5 D( z% S& X. J
本篇博文讲解如何使用CANoe软件创建和编辑DBC文件。
% m/ h( t1 G8 z6 z& W/ w6 k1- r9 s; S# v- X# q' E9 J" M
新建DBC文件
8 a6 G0 p, `$ o# }打开CANoe,进入Tools菜单栏,点击CANdb++Editor打开DBC编辑软件。% n5 t9 V1 y* R0 |5 w% [+ ?
6 {/ o: f) Y; K
joy3ziat24a6405657.png
+ [4 _5 r' U$ j1 k6 ]! `6 C
1 F T( k% c, S0 Q. s在DBC编辑器中,点击File -> Create DataBase,选择合适的DBC模板,并选择一个文件夹作为DBC文件的保存路径。% m- p+ z' o E7 A2 l- C
3 y6 r( |- k6 H4 R
ecdolefcf5y6405757.png
! e# M! y& N4 ?! Q1 _6 @& ]
# V b0 O- H; G8 B- m b我一般选择CANoeTemplate或者CAN Template。! Y6 y m* K' F$ {
U5 T+ Q1 D' ]; ?9 h
0utnaryadbo6405857.png
) H9 v2 N3 b( D8 w, v3 k, v& X9 q; g
+ A4 @; `) d8 q新建成功效果如下:5 L# Q9 @7 k$ Z I$ G2 B
& p- O/ [7 i; U5 U. r3 m8 ^: ~9 u
vd0jvnx0dox6405957.png
2 t' Q' ?' E$ r5 c6 g, [' \/ r$ P2 p8 s
2
% E T) d% W4 |; ?4 A新建节点
8 J; `5 M( B L5 h5 I7 @4 L, ^: z在Network nodes处右击,选择New新建一个节点(ECU),为其命名,例如ECU01和ECU02等。- }; ]1 U: Y" W* x/ s: Z+ V* \0 E2 c9 g
" I$ e9 y! W; h% v7 c. v% L5 }$ z
nlzgs2bgtoc6406057.png
$ Q! j% J( a8 r3 z% e7 e
5 O" S, J; o0 J+ r, F' V6 Z0 P8 K, y
' ^" X( g- E% V7 M
omjd45rjkhd6406157.png
0 x7 P5 v) j* j& q! T4 m7 ~0 _
+ s8 R5 F2 x4 ^' R( ?节点创建好后,界面如下所示:2 e1 L+ I9 Z: E1 I
* b( S/ H4 H1 C" J7 m! m
go4l0obqtly6406257.png
2 L- r2 X& f" T
7 W2 U, o' k& L' E9 L0 L2 a" [3" _9 ]' X6 I- G3 V; h) `
创建CAN报文
1 T* O: s% V* F- f# ?; ^' }3 k# W在Messages处右击,选择New新建一个报文。) v- z3 b3 a9 r0 `8 J
1 t4 i$ K X+ n
2uo24cjw5ot6406357.png
( D& I" v' p5 A ?" ]6 g4 {1 l- L- j
4 Q+ F3 y' Q+ d o/ c
% t) k5 _, V# W2 v
0r12rfj2nno6406457.png
* V( r0 c, `1 X4 d0 l
8 l- }2 a! Y* J- R在Name处输入本条CAN message的名称,注意(不得使用中文,不得以数字开头)。在Type处选择CAN Standard或者CAN Extended。在ID处填入此CAN报文的CAN ID。DLC处写入此报文的长度(单位是字节)。2 U$ m8 ?% m/ S0 z& @/ i
- g4 d4 g# o; Z8 l
CAN报文创建成功如下所示:
( o8 @3 S/ j6 w. k6 T! w+ ?
* h4 `- _* h. d t1 N8 P
1cukkk23dtg6406557.png
0 s& L' W" ?3 a' u: W7 `
根据需要可以创建多个报文。% f6 q8 ^$ v: ]- _8 f
48 h4 X( I* x- v0 I, N& W
创建CAN报文的信号% ]9 o3 @, _2 h$ F
* |* L0 G) f& _) z在Signals处右击,选择New新建一个信号。. {" q9 Y6 [8 A
" h. {2 m7 J, X* h
0s0ouqwduhu6406657.png
0 p! D% O0 d0 Q4 q! Z- v
! }8 r& k) C; U/ ~! I" y( g+ e, v: h4 r
nlqnm4k25ry6406757.png
0 Q U& ?1 m* q" o, K' A r& w
- J J7 S: A; k- L
在Name处键入此信号的名称。Length处填入此信号的长度(单位为Bit)。Byte Order(字节序)选择以Intel型填充还是以Motorola型填充。Intel型 :小端字节序,字节内部bit排序从高位开始。Motorola型:大端字节序,字节内部bit排序从低位开始。ValueType:值的类型,有符号整数和无符号整数以及浮点数类型。Factor:比例因子,表示数值需要乘以这个因子进行转换。Offset:偏移量,表示数值需要加上这个偏移量进行转换。Minimum:参数的最小值。Maximum:参数的最大值。Calculate minimum and maximum:点击这个按钮可以计算最小值和最大值。Value Table:值表的名称,当前为空,表示没有关联的值表。3 n6 V3 F* m& i9 q# K
/ X/ y* v" h$ x) f这些参数共同定义了一个8位有符号整数的LED信号参数,包括其长度、字节顺序、数据类型、初始值、比例因子、偏移量、最小值和最大值。- n5 E. F* n+ l) h/ Z3 ]! R
/ n7 q2 ]) P1 D ]% x! T& \CAN报文信号创建成功如下所示:
4 A7 [% p6 d) f% X$ ^6 G
; u! i% ]: W; f! E
y0qy1yofved6406857.png
% C9 |. P% C8 B/ S
根据需要可以创建多个信号。7 \- ?7 \" f% S6 c9 N) Y" u
6
. K3 @6 {* Y, e; D将报文和信号关联3 @1 x1 Q; {( ]! r
/ ]: G% ~' d! I; U2 _9 L双击报文,进入报文界面,切换到Signals栏,点击Add将信号添加到报文中。5 {& Z3 W% O* q# q0 G
6 H7 {2 ]8 l) j, u# e: j$ T, K
kayzziqpdhj6406958.png
& T V3 a' S% n6 A: x- b( l$ }' }+ B4 B2 Z! |
如果CAN报文DLC设置得比添加进去的信号所占的字节数多,就会弹出这个窗口,点击否(N)即可,如果点击是(Y),系统会修改这条CAN报文的长度为刚刚添加进去的信号所占的字节数。' r4 h4 Z) [0 v2 F" Q C
5 M4 G6 l) f+ q2 i4 Z {% F
gd40m1fnjpt6407058.png
5 s/ c( U) \' M9 l' B( M/ \
! W; F3 [) M; e- ~5 {5 N添加完成后如下图所示,右边会列出这个报文里所有的信号,以及信号所占的字节和起始位。
1 m# B m! ]- b
$ `- j, |, d( K5 V+ M
2hqunlkgeqe6407158.png
4 W4 M' |$ I" n# f! w% L% d
4 R+ {, V0 D8 v0 U3 u) ?6 n如果设置信号在CAN报文中的起始位和位置,双击信号,在Startbit处修改起始位。! p; l N9 r0 B
) D$ X) E! K' J: h
utjavzwnm446407258.png
1 d) X. G7 ~) Q, I/ _* S
1 R0 ]1 ]! _4 f* c. s" E1 K2 |
也可以在这条CAN报文的layout中通过鼠标拖动修改信号所处的位置。# @& `* h8 r$ v% [
+ ~7 _' M4 L. n双击左侧CAN报文,在弹出的窗口中点击Layout,鼠标按住方框中标记的信号拖动即可改变信号所在的位置。
9 F% D* g0 x! Z+ x: o/ d7 f1 K: p4 `5 W
10jmt4vhx506407358.png
# {/ S* M) ~3 }3 f G
1 @# e$ B2 k. w7 V
61 j. Z6 W* c4 B' F
设置CAN报文发送者和接收者7 d6 i7 U. {" n+ V3 w( ~( C
双击节点ECU1,在Mapped RX Sig中添加需要接收的报文中的信号,在Tx message中添加该节点发送的报文。' J4 v+ x& W5 J+ M
! k' F& L, ]2 Z5 v% G: o
oiumtxkyaze6407458.png
& y4 E0 k/ M2 @5 X$ A: |, g
. S# l0 m2 L# C# G3 W! E% k
$ }7 ]9 K3 e1 p5 z. s ; _) l. s$ Z6 @5 r# U
3 q9 X) G$ Q$ b& f1 [( _3 X3 Y8 n$ T% j3 h! G
+ \* L- s* b1 Z+ |# c
* O( W7 c" x' l8 D
此时我们展开左侧,可以看到ECU1节点已经有了对应的发送和接收报文以及信号。 a$ V7 Y7 ^4 B
8 w* s* M8 ?" t
, X; E# n9 y( c l2 k: _
7 U1 O! l" z* C
以上就是如何在CANoe中新建和使用CAN DataBase(DBC文件)的基本步骤。通过这些步骤,你可以创建一个简略版的CAN DBC。
1 }3 I( L; M7 L7 z2 B7 |
) `. o# ^: [+ K0 T( R
* n7 Z, R! Y9 X5 s0 R f6 }/ I& I' ` i3 [% f
点击阅读原文,更精彩~ |
|