电子产业一站式赋能平台

PCB联盟网

搜索
查看: 256|回复: 0
收起左侧

CANoe创建CAN DataBase(DBC文件)

[复制链接]

1002

主题

1002

帖子

8862

积分

高级会员

Rank: 5Rank: 5

积分
8862
发表于 2024-8-7 12:01:00 | 显示全部楼层 |阅读模式

way2uyps0qt6405557.gif

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

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

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

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

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

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

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

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

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

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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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
    点击阅读原文,更精彩~
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表