CANFD总线异构通讯简单实例

发布时间:2024-05-06  

本例程主要讲解 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,并启动固件.....


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>