电子产业一站式赋能平台

PCB联盟网

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

CANoe创建CAN DataBase(DBC文件)

[复制链接]

1002

主题

1002

帖子

8862

积分

高级会员

Rank: 5Rank: 5

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

kbgev3ikx1j6403708057.gif

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

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

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

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

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

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

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

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

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

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

    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

    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

    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

    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

    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

    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

    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

    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

    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

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

    使用道具 举报

    发表回复

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

    本版积分规则


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