0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANFD总线异构通讯简单实例

STM32单片机 来源:STM32单片机 作者:STM32单片机 2021-01-15 15:22 次阅读

本例程主要讲解 CANFD 总线异构通讯简单实例。把 CANFD 分配给 M4 核,然后另外一块开发板发送,M4 接收 CANFD 数据并通过异构通讯方式发送给 A7 在终端回显。

1.硬件资源

USB-TTL Debug 线两根

两块开发板

开发板配件

2.软件资源

Linux 5.4.31

STM32CubeIDE 1.3.0

STM32CubeMX5.6.0

3.环境准备

预先安装好 CubeIDE,CubeMX 等开发软件。

4.操作步骤

4.1.A7 核操作

由于 CAN 可以被 A7 和 m4 同时使用,现在是要分配给 m4,所以在 A7 端通过设备树把 CAN 分配给 m4。操作步骤如下:

1) 配置设备树

进入内核源码目录 stm32mp15xc-kernel5.4/arch/arm/boot/dts,vim 打开stm32mp15xx-ya157c.dtsi 设备树文件,把 can1 分配给 m4,并屏蔽掉 A7 端的 can1。

f2cc925c-56e0-11eb-8b86-12bb97331649.png

接着配置资源管理器,分配异构通讯的 SRAM

f3694700-56e0-11eb-8b86-12bb97331649.png

2) 编译并更新设备树

配置完成之后编译并拷贝对应设备树到 bootfs 分区。

f3bc6296-56e0-11eb-8b86-12bb97331649.png

另官方已经默认配置了 RPMSG_TTY 驱动。

4.2.M4 核操作

创建一个 STM32 工程,在 STM32CubeMX 里,依次配置 CANFD 用于发送报文、以及配置 IPCC 和 OPENAMP 用于通信

f40886a8-56e0-11eb-8b86-12bb97331649.png

图 4-1.配置 IPCC

f4608bf0-56e0-11eb-8b86-12bb97331649.png

图 4-2.配置 openamp

f4f8b86c-56e0-11eb-8b86-12bb97331649.png

图 4-3.CANFD 配置

注意配置 IPCC 时,需要在 NVIC Settings 选项卡里,将 IPCC RX1 occupiedinterrupt 和 IPCC TX1 free interrupt 的使能勾选上,不然后面的 OPENAMP 的 Activated始终为灰色,无法激活。这里计划创建两个 RPMsg tty 通道,一个用来传输 canfd 报文,一个用来统计 canfd报文的数量。

初始化两个 RPMsg tty 虚拟串口 。

f596d5ec-56e0-11eb-8b86-12bb97331649.png

注册回调函数以按通道接收消息 。

f5f8b7e4-56e0-11eb-8b86-12bb97331649.png

设置 canfd 接收滤波器和发送数据 buf,并注册回调函数和 canfd 接收中断。

f63e3cec-56e0-11eb-8b86-12bb97331649.png

f68bc34a-56e0-11eb-8b86-12bb97331649.png

f6f6f5ca-56e0-11eb-8b86-12bb97331649.png

f74d722e-56e0-11eb-8b86-12bb97331649.png

主函数轮询 RPMsg 消息 OPENAMP_check_for_message() 查询 MailBox 状态 ,主函数并根据运行时间向外发送报文同时不停的查询接收报文。

f78b60b6-56e0-11eb-8b86-12bb97331649.png

f7e7f48e-56e0-11eb-8b86-12bb97331649.png

f858cbd2-56e0-11eb-8b86-12bb97331649.png

当 M4 核接收到 canfd 报文的时候,存入 buf,主函数检测到有 buf 数据,就会调用虚拟串口发送给 A7 端。

f8914ebc-56e0-11eb-8b86-12bb97331649.png

f8de6a76-56e0-11eb-8b86-12bb97331649.png

4.3.测试步骤

J12 的 CANH、CANL 引脚和同类型的板子 CANH、CANL 相连,把编译生成的 M4 固件拷贝到 A7,并启动固件.....

原文标题:应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2788

    浏览量

    465176
  • 通信
    +关注

    关注

    18

    文章

    6114

    浏览量

    136767
  • bus
    bus
    +关注

    关注

    0

    文章

    121

    浏览量

    47937

原文标题:应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新品发布 | TOSUN同星发布多总线仿真测试工具,突破传统通讯瓶颈!

    端出现通讯瓶颈。Windows系统免驱设计,具备极佳的系统兼容性。TOSUN01产品简介TC1038Pro是一款多总线仿真测试工具,支持12路CANFD、12路L
    的头像 发表于 02-28 20:02 168次阅读
    新品发布 | TOSUN同星发布多<b class='flag-5'>总线</b>仿真测试工具,突破传统<b class='flag-5'>通讯</b>瓶颈!

    I2C总线应用实例分析

    在现代电子系统中,I2C总线因其简单、灵活和高效的特点而被广泛应用于各种设备之间的通信。 I2C总线概述 I2C总线由Philips(现为NXP)在1980年代初期开发,最初用于音频和
    的头像 发表于 01-17 15:09 304次阅读

    CAN/CANFD 总线干扰仪TESTBASE-BDI

    总线干扰仪是CAN/CANFD总线一致性测试中必不可少的重要设备,用于实现采样点以及故障注入等测试项配合桌面式车载网络自动化测试系统TESTBASE-DESKNAT以及基于VBA的CAN/CA
    的头像 发表于 12-26 11:24 789次阅读
    CAN/<b class='flag-5'>CANFD</b> <b class='flag-5'>总线</b>干扰仪TESTBASE-BDI

    rk3588 canfd发送部分数据失败的问题

    在使用rk3588的板子进行canfd通信时,有些数据发送必然失败: 1,cansend can0 200##065.68.00.00.96.00.00.01 必然成功 2,cansend can0
    发表于 12-18 10:53

    CAN/CANFD卡接口函数使用说明

    电子发烧友网站提供《CAN/CANFD卡接口函数使用说明.pdf》资料免费下载
    发表于 10-15 17:35 0次下载

    控制模块通讯总线关闭怎么修

    控制模块通讯总线关闭是一个涉及多个可能原因和复杂修复步骤的问题。 一、问题概述 控制模块通讯总线关闭通常指的是车辆或其他系统中的控制模块之间的通信链路出现问题,导致信息无法正常传递。这
    的头像 发表于 08-29 15:44 1421次阅读

    MD9360四路CANFD应用实例

    随着通信技术的进步和总线技术的广泛应用,对总线带宽和传输速率提出了更高的要求。MD9360-T核心板提供四路CANFD,让你的数据传输更快速、更可靠。MD9360-EV-Board评估板(如图1所示
    的头像 发表于 08-08 08:25 541次阅读
    MD9360四路<b class='flag-5'>CANFD</b>应用<b class='flag-5'>实例</b>

    CANFD_TopFIFO无法正常工作的原因?

    我闪烁了 CANFD_TopFIFO 示例代码,但没有得到预期的输出。 在 FIFO 模式下测试 CAN Rx 时,即使接收多个报文,FIFO 编号也始终显示为 0。 虽然我能正确接收
    发表于 07-03 08:06

    RA MCU CANFD在FSP中的配置详解

    RA MCU CANFD在FSP中的配置详解
    的头像 发表于 06-19 08:06 676次阅读
    RA MCU <b class='flag-5'>CANFD</b>在FSP中的配置详解

    详解TSMaster CAN 与 CANFD 的 CRC E2E 校验方法

    面对切换工具链的用户来说,在TSMaster上完成总线通讯中的CRC/E2E校验处理不是特别熟悉,该文章可以协助客户快速使用TSMaster完成CAN/CANFD总线
    的头像 发表于 05-25 08:21 2924次阅读
    详解TSMaster CAN 与 <b class='flag-5'>CANFD</b> 的 CRC E2E 校验方法

    CYT2B75 SK Rev03无法正常发送CANFD数据,为什么?

    (T2G_Sample_Driver_Library_8.0.0tviibe1msrcexamplescanfdUseAsCANFDMode),代码未经过任何修改,测试CANFD功能,初始化完成,debug,首次调用 Cy_CANFD_UpdateAndTransmitM
    发表于 05-24 07:37

    一帧CANFD报文由多少个位组成?

    要想知道CANFD报文由多少个位组成,那么我们就要了解CANFD帧结构,知道每个段占用位数从而得出CANFD报文位数。
    的头像 发表于 04-27 06:08 5349次阅读
    一帧<b class='flag-5'>CANFD</b>报文由多少个位组成?

    canfd协议是什么?canfd协议的应用场景

    CAN FD(CAN with Flexible Data rate)协议是一种串行通讯协议,继承了CAN总线的主要特性,如双线串行通讯、非破坏性仲裁技术、分布式实时控制,以及可靠的错误处理和检测
    的头像 发表于 04-17 14:55 2624次阅读

    汽车测试系统如何实现CANFD到EtherCAT的协议转换

    在汽车测试领域,EtherCAT为主控的汽车底盘测试控制系统,需接入CANFD为传输信号的汽车底盘控制器进行采集分析,系统间数据无法直接读取,该如何解决?我们知道汽车车机通讯系统中CAN、CANFD
    的头像 发表于 03-22 08:23 1064次阅读
    汽车测试系统如何实现<b class='flag-5'>CANFD</b>到EtherCAT的协议转换