i.MX8 系列的一个新功能是支持 CAN-FD。幸运的是,MEK 板有一个 TJA1043 支持
CAN-FD。
以下文档显示了如何在 Linux 下进行简单的 CAN(FD)测试。
首先,将 CAN0 配置为 CAN 中的 500kps,CAN FD 中的 4Mbps:
$ ip link set can0 up type can bitrate 500000 sample-point 0.75 dbitrate 4000000
dsample-point 0.8 fd on
对 CAN1 也一样:
$ ip link set can1 up type can bitrate 500000 sample-point 0.75 dbitrate 4000000
dsample-point 0.8 fd on
现在,您可以在板上的 CAN0 和 CAN1 之间建立桥梁。最简单的方法是放置简单的
电线(引脚 2 到引脚 2 a,d 引脚 7 到引脚 7),通常您必须绞合电线,但是因为它在您
的桌子上,您可以避免它)
您可以检查 FlexCAN 的配置:
root@imx8qxpmek:~# ip -details link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state
UNKNOWN mode DEFAULT group default qlen 10
link/can promiscuity 0
can <FD> state ERROR-WARNING (berr-counter tx 0 rx 0)
restart-ms 0
bitrate 500000 sample-point 0.750
tq 25 prop-seg 29 phase-seg1 30 phase-seg2 20 sjw 1
flexcan: tseg1 2..64 tseg2 1..32 sjw 1..32 brp 1..1024 brp-inc 1
dbitrate 4000000 dsample-point 0.800
dtq 25 dprop-seg 3 dphase-seg1 4 dphase-seg2 2 dsjw 1
flexcan: dtseg1 1..39 dtseg2 1..8 dsjw 1..8 dbrp 1..1024 dbrp-inc 1
clock 40000000numtxqueues 1 numrxqueues 1 gso_max_size
65536 gso_max_segs 65535
root@imx8qxpmek:~# ip -details link show can1
4: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state
UNKNOWN mode DEFAULT group default qlen 10
link/can promiscuity 0
can <FD> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart ms 0
bitrate 500000 sample-point 0.750
tq 25 prop-seg 29 phase-seg1 30 phase-seg2 20 sjw 1
flexcan: tseg1 2..64 tseg2 1..32 sjw 1..32 brp 1..1024 brp-inc 1
dbitrate 4000000 dsample-point 0.800
dtq 25 dprop-seg 3 dphase-seg1 4 dphase-seg2 2 dsjw 1
flexcan: dtseg1 1..39 dtseg2 1..8 dsjw 1..8 dbrp 1..1024 dbrp-inc 1
clock 40000000numtxqueues 1 numrxqueues 1 gso_max_size
65536 gso_max_segs 65535
root@imx8qxpmek:~#
现在,一个简单的测试可以是发送随机 CAN FD 消息,为此使用“ cangen”发送随机
CAN FD 消 息 ( 请 阅 读 “ cangen” 文档: https : //manpages.debian.org/stretch
backports/can-utils/ cangen.1.en.html):
root@imx8qxpmek:~# cangen can0 -v -b -g 20
can1 3E6 [00]
can1 735 [20] F9 ED 40 53 AC CF 48 34 F9 ED 40 53 AC CF 48 34
F9 ED 40 53
can1 513 [20] 92 D2 E7 32 48 E6 EA 39 92 D2 E7 32 48 E6 EA 39
92 D2 E7 32
can1 03B [12] 6D 34 2F 11 52 8A 52 50 6D 34 2F 11
can1 47D [24] 72 08 88 0D E0 04 F7 09 72 08 88 0D E0 04 F7 09
72 08 88 0D E0 04 F7 09
can1 245 [00]
can1 6F6 [48] B9 82 A1 49 4E ED BA 06 B9 82 A1 49 4E ED BA 06
B9 82 A1 49 4E ED BA 06 B9 82 A1 49 4E ED BA 06 B9 82 A1 49
4E ED BA 06 B9 82 A1 49 4E ED BA 06
can1 1F4 [16] 03 5B 7C 00 DA E5 FA 03 03 5B 7C 00 DA E5 FA 03
can1 38A [48] 71 CE A3 1A C0 8A 4F 20 71 CE A3 1A C0 8A 4F 20
71 CE A3 1A C0 8A 4F 20 71 CE A3 1A C0 8A 4F 20 71 CE A3 1A
C0 8A 4F 20 71 CE A3 1A C0 8A 4F 20
can1 4C9 [20] 6C 5A 98 54 DD D1 CB 09 6C 5A 98 54 DD D1 CB 09
6C 5A 98 54
can1 536 [48] 25 B8 B6 43 71 CD 54 71 25 B8 B6 43 71 CD 54 71
25 B8 B6 43 71 CD 54 71 25 B8 B6 43 71 CD 54 71 25 B8 B6 43 71
CD 54 71 25 B8 B6 43 71 CD 54 71
can1 308 [02] C3 57
can1 33E [05] 65 8C 7B 21 83
can1 3F5 [05] EA E0 07 63 EB
can1 633 [03] 39 10 18
can1 25D [32] 01 4E 65 41 E8 4D 94 6F 01 4E 65 41 E8 4D 94 6F
01 4E 65 41 E8 4D 94 6F 01 4E 65 41 E8 4D 94 6F
can1 2FB [03] A8 D8 E3
can1 0DE [04] A1 11 3F 32
can1 012 [06] 85 23 B2 07 1A 03
can1 658 [08] A0 8A 2D 67 97 79 A1 64
can1 37D [05] 1A 57 E8 4F 72
can1 70A [04] 5E 6A B8 0F
can1 3A8 [07] 65 C5 48 76 05 B6 11
can1 5D4 [07] ED 03 A6 07 CF D8 DC
can1 7DA [05] 94 18 50 09 B8
can1 7A9 [05] CC 5E 02 74 BC
can1 3FC [01] D6
can1 599 [06] EB 23 02 61 16 D9
can1 47C [06] 88 20 F2 62 86 3B
can1 30A [06] C4 98 57 61 B2 4E
can1 57E [16] B8 04 86 5B 52 EB DF 45 B8 04 86 5B 52 EB DF 45
can1 191 [05] 22 C4 BC 26 6B
can1 53B [06] 23 AA AA 00 E4 F4
can1 6EB [64] A0 64 BE 5E E7 FA 20 1D A0 64 BE 5E E7 FA 20
1D A0 64 BE 5E E7 FA 20 1D A0 64 BE 5E E7 FA 20 1D A0 64 BE
5E E7 FA 20 1D A0 64 BE 5E E7 FA 20 1D A0 64 BE 5E E7 FA 20
1D A0 64 BE 5E E7 FA 20 1D
您可以使用示波器检查您的 CAN FD 框架(此处为 CAN 高电平):

您会看到帧的第一部分发送了@ 500kps,第二部分发送了@ 4Mbps。
如果您拔掉一根电线,将不再发送消息,因为不会进行确认。
您也可以在没有灵活数据速率的情况下发送消息。在我们的例子中,我们将以
500kps 的速度发送长帧(帧末不再有 4Mbps 的传输):
imx8qxpmek:~# cangen can0 -v -f -g 20
can0
6FE##0.6B.C6.BA.1A.82.2D.29.7E.6B.C6.BA.1A.82.2D.29.7E.6B.C6.BA.1A.82.2D.29.
7E.6B.C6.BA.1A.82.2D.29.7E.6B.C6.BA.1A.82.2D.29.7E.6B.C6.BA.1A.82.2D.29.7E.6B.
C6.BA.1A.82.2D.29.7E.6B.C6.BA.1A.82.2D.29.7E
can0 3E2##0.D4.9E.3D
can0 1DE##0.D0.D8.33.50.7E.39
can0 7CE##0.FA.68.25.74.86.E7.E1.4A.FA.68.25.74.86.E7.E1.4A.FA.68.25.74
can0 7C3##0.58.E6.F2.1E.BD.7D.F8.7F
can0
32A##0.0D.06.98.0D.08.81.5C.4E.0D.06.98.0D.08.81.5C.4E.0D.06.98.0D.08.81.5C.4
E.0D.06.98.0D.08.81.5C.4E.0D.06.98.0D.08.81.5C.4E.0D.06.98.0D.08.81.5C.4E
can0
48B##0.76.48.B4.34.59.81.B9.47.76.48.B4.34.59.81.B9.47.76.48.B4.34.59.81.B9.47.
76.48.B4.34.59.81.B9.47.76.48.B4.34.59.81.B9.47.76.48.B4.34.59.81.B9.47.76.48.B4.
34.59.81.B9.47.76.48.B4.34.59.81.B9.47
can0
3FC##0.6E.70.F7.36.FB.82.B9.00.6E.70.F7.36.FB.82.B9.00.6E.70.F7.36.FB.82.B9.0
0.6E.70.F7.36.FB.82.B9.00.6E.70.F7.36.FB.82.B9.00.6E.70.F7.36.FB.82.B9.00.6E.70.
F7.36.FB.82.B9.00.6E.70.F7.36.FB.82.B9.00
can0 4BE##0.7D.B0.E2.7E.A0.F0.DF.24.7D.B0.E2.7E
can0 60C##0.0E
can0
257##0.69.11.0C.4B.25.CA.16.65.69.11.0C.4B.25.CA.16.65.69.11.0C.4B.25.CA.16.65.
69.11.0C.4B.25.CA.16.65.69.11.0C.4B.25.CA.16.65.69.11.0C.4B.25.CA.16.65
can0 0BA##0.AB.B1.F8
can0 0FC##0.3A.7E.FB.34
can0 452##0.2F.4D.04.26.DE.80.EA
can0 2C7##0.37.02.A4.4D.C3
can0 0B4##0.BE.39.AD.3B.73
can0 17E##0.13.66.44.6A.8A.8F.CE.7A.13.66.44.6A.8A.8F.CE.7A.13.66.44.6A
您还可以强制 CAN 仅发送 CAN 2.0b 帧(不发送 FD,您将拥有 8 字节数据最大帧):
imx8qxpmek:~# cangen can0 -v -g 20
can0 7FF#8F.04.3F.31.EB
can0 135#92.7C.46.5C.95.4E.6C.48
can0 0F8#E3.E4.7E.4D.92.2A.1D.69
can0 68F#C6.B7.BA.35.78.06
can0 4EC#D8.D9.86.19.40.BE.64.05
can0 09F#EE.E1.70.7D.13.C9.18.53
can0 7CE#BB.CD.FE.50.3E.B6.A4.4A
can0 3C7#04
can0 1F6#B2.E4.4B.42
can0 080#C1.81.65.41
can0 14C#0B.B4.7E.5D
can0 15A#53
can0 1CF#86.D4.ED.11.6E.BA.20.14
can0 257#82.83.39.67
can0 2C1#64.20.DF.0D.89.0E.14.55
can0 45E#50.72.44.76.55.4E.96.0F
can0 6FC#80.81
can0 046#F6
can0 1E5#6D
can0 0D2#
can0 7EB#0F.3D.29.78.42.72.60.61
can0 480#68
can0 1CE#CB.05.12.74.2D.0E.F2.14
can0 634#82.5C.88.24.31.75.AF.03
can0 71D#AE.4C
can0 144#F5.A8.17.70
can0 2A5#69.BE
can0 222#18.C6.AA.4A.0D.5A.EC.48
can0 5FA#4F.CC.4C.2A.7B.BA.31
can0 3B9#BD.B1.2F.3C.87.D5.D1
can0 583#B4.E3.C3.4E.B8.D3.22.43

在 i.MX8QXP 的 MEK 板上进行简单的 CAN(FD)测试相关推荐

  1. 【嵌入式小白学习】--在STM32开发板上实现简单的串口通信

    嵌入式小白学习--在STM32开发板上实现简单的串口通信 这里写目录标题 嵌入式小白学习--在STM32开发板上实现简单的串口通信 Part1. STM32环境的搭建 Part2. 编写代码 Part ...

  2. 编译linux系统到开发板,Linux系统有关交叉编译和移植到6410开发板上的简单过程...

    在进行移植之前,要检查一下目标机(这里指6410开发板)与宿主机之间的接线问题,即串口线.网线是否正确连接,目标机的电源是否插好!在接线问题解决后,才能保证交叉编译正常进行! 个人理解,移植的主要思想 ...

  3. 使用QT程序控制Linux开发板上的继电器(一)

    `使用QT程序控制Linux开发板上的继电器(一)` 测试平台介绍 测试系统接线 编写PlatformIO驱动程序 修改设备树 烧录设备树 Platform字符设备驱动设备框架 完善驱动框架 编写测试 ...

  4. 手把手教你在ARM板上写一个驱动程序!

    摘要:搞嵌入式有两个方向,一个是嵌入式软件开发(MCU方向),另一个是嵌入式软件开发(Linux方向).其中MCU方向基本是裸机开发和RTOS开发.而Linux开发方向又分为驱动开发和应用开发.其中应 ...

  5. 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析

    问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1.使用命令关机(halt)会调用rc0.d中的脚本: 2.使用命令重启( ...

  6. 学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移

    一.目的    通过将 Nand Flash 前 4K 代码搬移到 SDRAM 中,了解如何初始化并使用 ARM 的内存,    为编写 ARM bootloader 和搬移内核到内存作准备. 二.代 ...

  7. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...

  8. 在Developerkit开发板上运行blink例程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运 ...

  9. 张恩民 php,php100视频教程第11讲(制作PHP+MYSQL留言板 上)中,张恩民老师提到的php100-11.txt文档...

    在php100视频教程第11讲(制作PHP+MYSQL留言板 上)中,张恩民老师提到了一个php100-11.txt的文档,就是下面这个喽... CREATE TABLE `message` ( `i ...

  10. 什么电线适合在面包板上布线?

    简 介: 对于面包板布线所使用的导线种类.颜色.长度以及耐用性进行讨论.也许没有一个十全十美的选择方案,需要根据情况而定.对于学生来讲,由于电路内容需要经常更换,所以使用双公头的杜邦线比较适合完成实验 ...

最新文章

  1. @EnableAspectJAutoProxy||AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】
  2. ABAP 锁对象与加锁机制
  3. System类、包装类、Math类、Random、Arrays工具类
  4. 开机慢 不换SSD如何提升Windows 10开机速度
  5. 设计模式:抽象工厂模式(C++)【工厂方法升级】
  6. 《ArcGIS Runtime SDK for Android开发笔记》——(8)、关于ArcGIS Android开发的未来(“Quartz”版Beta)...
  7. java过滤html相关标签
  8. 基于 Arduino 的 RFID 识别实验
  9. Python和Matlab系统比较
  10. 诛仙手游android转苹果,诛仙手游安卓和iOS互通吗 安卓和iOS能不能一起玩
  11. 《机器人操作系统ROS原理与应用》——2.3 大数据制度和流程规范
  12. 音乐计算机编程,计算机音乐编程的基本类型研究
  13. Defcon China 靶场题 - 内网渗透Writeup
  14. 什么方法可以将pdf压缩到最小
  15. html字体插件,20款jQuery CSS文字特效插件(有图有真相)
  16. 海南省计算机作品大赛,海南省教育研究培训院:关于举办第二十届海南省中小学电脑制作活动的通知...
  17. (小白都能听懂)的海明校验码
  18. 计算机二级字处理题根据参考样式,全国计算机等级考试二级officeword字处理题目...
  19. Symantec Backup Exec 2010 安装报 bad ELF interpreter: No such file or directory
  20. 在北京月薪12000的真实生活

热门文章

  1. Latex 箭头上面写字母
  2. 【软件逆向-分析工具】反汇编和反编译工具
  3. 100流明相当于多少w_lx和瓦数换算(1lx等于多少w)
  4. 恒生电子:主推2条联盟链,但链上交易至今不到30笔 |追击上市公司
  5. Python系列9——类和对象(3)
  6. OKR | 我们的目标是称霸全国!
  7. linux内核打补丁步骤
  8. word2010删除作者信息
  9. heartbeat和keepalive
  10. Gitlab配置ssh key