main content

记录并重播 can fd 报文 -凯发k8网页登录

以下示例说明如何使用 simulink 中的 mathworks 虚拟 can fd 通道记录和重播 can fd 报文。您可以更新此模型以连接到您的系统上支持的硬件。

从示例文件夹中的 sourcefdmsgs.mat 文件加载保存的 can fd 报文。该文件包含 can fd 报文,这些报文表示绕试车道一周的 90 秒驾驶周期。

将这些报文转换为与 can fd replay 模块兼容的格式,并将其保存到一个单独的文件中。

  name                        size               bytes  class        attributes
  canfdmsgtimetable      100000x12            45411725  timetable              
  canfdmsgs                   1x1              8401848  struct                 

can fd replay 模型

该模型包含:

  • 一个 can fd replay 模块,用于向 mathworks virtual channel 1 传输报文。

  • 一个 can fd receive 模块,用于通过 mathworks virtual channel 2 接收 can fd 网络上的报文。

can fd receive 模块配置为阻止所有扩展 id,并且仅允许具有标准 id 1200wheelspeed 报文通过。

wheel speeds 子系统对收到的 can fd 报文中的轮速信息解包,并将它们绘制到示波器中。该子系统还将报文记录到一个文件中。

可视化轮速信息

绘图显示试驾期间所有车轮的轮速。

加载包含所记录报文的文件

每次运行模型时,can fd log 模块都会创建一个具有唯一性的文件。在 matlab 命令行窗口中使用 dir 查找最新日志文件。

wheelspeeds_2018-apr-30_132033.mat  
  name                        size               bytes  class        attributes
  canfdmsgtimetable      100000x12            45411725  timetable              
  canfdmsgs                   1x1              8401848  struct                 
  outfdmsgs                   1x1               841848  struct                 

转换记录的报文

使用 canfdmessagetimetable 将仿真期间记录的报文转换为可在命令行窗口中使用的时间表。

要直接访问报文信号,请在转换中使用对应的数据库文件以及 cansignaltimetable

ans =
  15x12 timetable
       time        id     extended         name          protocolmode                   data                   length    dlc      signals       error    remote     brs      esi 
    __________    ____    ________    _______________    ____________    __________________________________    ______    ___    ____________    _____    ______    _____    _____
    75.393 sec     576     false      {0x0 char     }     {'can fd'}     {[                 79 136 166 71]}      4        4     {0x0 struct}    false    false     true     false
    75.397 sec    1200     false      {'wheelspeeds'}     {'can fd'}     {[     54 171 55 39 54 180 55 39]}      8        8     {1x1 struct}    false    false     true     false
    75.398 sec     128     false      {0x0 char     }     {'can fd'}     {[         41 89 117 48 1 83 218]}      7        7     {0x0 struct}    false    false     true     false
    75.398 sec     133     false      {0x0 char     }     {'can fd'}     {[             0 102 0 0 0 0 0 0]}      8        8     {0x0 struct}    false    false     true     false
    75.398 sec     144     false      {0x0 char     }     {'can fd'}     {[   167 129 247 8 200 145 24 93]}      8        8     {0x0 struct}    false    false     true     false
    75.398 sec     528     false      {0x0 char     }     {'can fd'}     {[           255 254 60 4 64 0 0]}      7        7     {0x0 struct}    false    false     true     false
    75.399 sec     529     false      {0x0 char     }     {'can fd'}     {[255 255 255 255 255 255 255 60]}      8        8     {0x0 struct}    false    false     true     false
    75.399 sec    1201     false      {0x0 char     }     {'can fd'}     {[     15 155 16 23 15 164 16 23]}      8        8     {0x0 struct}    false    false     true     false
    75.399 sec     512     false      {0x0 char     }     {'can fd'}     {[     2 125 1 213 2 129 128 255]}      8        8     {0x0 struct}    false    false     true     false
    75.399 sec     513     false      {0x0 char     }     {'can fd'}     {[  31 179 255 255 54 222 38 255]}      8        8     {0x0 struct}    false    false     true     false
    75.399 sec     533     false      {0x0 char     }     {'can fd'}     {[         2 168 2 168 2 42 35 0]}      8        8     {0x0 struct}    false    false     true     false
    75.4 sec      1312     false      {0x0 char     }     {'can fd'}     {[                250 0 200 50 0]}      5        5     {0x0 struct}    false    false     true     false
    75.405 sec    1200     false      {'wheelspeeds'}     {'can fd'}     {[     54 173 55 41 54 180 55 40]}      8        8     {1x1 struct}    false    false     true     false
    75.406 sec    1201     false      {0x0 char     }     {'can fd'}     {[     15 157 16 25 15 164 16 24]}      8        8     {0x0 struct}    false    false     true     false
    75.408 sec    1296     false      {0x0 char     }     {'can fd'}     {[                        39 0 1]}      3        3     {0x0 struct}    false    false     true     false
ans =
  15x4 timetable
       time       rr_wspeed    rf_wspeed    lr_wspeed    lf_wspeed
    __________    _________    _________    _________    _________
    75.397 sec      41.19        40.04        41.19        39.95  
    75.405 sec       41.2        40.04        41.21        39.97  
    75.414 sec      41.22        40.05        41.26        40.03  
    75.424 sec      41.25        40.13         41.3        40.05  
    75.433 sec      41.19        40.14        41.28        40.08  
    75.441 sec      41.17        40.18        41.31        40.14  
    75.45 sec       41.31        40.27        41.31        40.17  
    75.458 sec      41.37        40.25        41.31        40.19  
    75.466 sec      41.39        40.22         41.3        40.19  
    75.475 sec      41.39        40.25         41.3         40.2  
    75.483 sec      41.37        40.26        41.33        40.21  
    75.492 sec      41.44        40.35        41.33        40.19  
    75.501 sec      41.51        40.44        41.36        40.22  
    75.509 sec      41.58        40.47        41.44        40.29  
    75.517 sec      41.63        40.45        41.44        40.31  

此示例中使用了 mathworks can fd 虚拟通道。但是,您可以将模型连接到其他支持的硬件。

网站地图