记录并重播 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 1200
的 wheelspeed
报文通过。
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 虚拟通道。但是,您可以将模型连接到其他支持的硬件。