0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CANFD總線異構(gòu)通訊簡(jiǎn)單實(shí)例

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2021-01-15 15:22 ? 次閱讀

本例程主要講解 CANFD 總線異構(gòu)通訊簡(jiǎn)單實(shí)例。把 CANFD 分配給 M4 核,然后另外一塊開發(fā)板發(fā)送,M4 接收 CANFD 數(shù)據(jù)并通過異構(gòu)通訊方式發(fā)送給 A7 在終端回顯。

1.硬件資源

USB-TTL Debug 線兩根

兩塊開發(fā)板

開發(fā)板配件

2.軟件資源

Linux 5.4.31

STM32CubeIDE 1.3.0

STM32CubeMX5.6.0

3.環(huán)境準(zhǔn)備

預(yù)先安裝好 CubeIDE,CubeMX 等開發(fā)軟件。

4.操作步驟

4.1.A7 核操作

由于 CAN 可以被 A7 和 m4 同時(shí)使用,現(xiàn)在是要分配給 m4,所以在 A7 端通過設(shè)備樹把 CAN 分配給 m4。操作步驟如下:

1) 配置設(shè)備樹

進(jìn)入內(nèi)核源碼目錄 stm32mp15xc-kernel5.4/arch/arm/boot/dts,vim 打開stm32mp15xx-ya157c.dtsi 設(shè)備樹文件,把 can1 分配給 m4,并屏蔽掉 A7 端的 can1。

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

接著配置資源管理器,分配異構(gòu)通訊的 SRAM。

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

2) 編譯并更新設(shè)備樹

配置完成之后編譯并拷貝對(duì)應(yīng)設(shè)備樹到 bootfs 分區(qū)。

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

另官方已經(jīng)默認(rèn)配置了 RPMSG_TTY 驅(qū)動(dòng)。

4.2.M4 核操作

創(chuàng)建一個(gè) STM32 工程,在 STM32CubeMX 里,依次配置 CANFD 用于發(fā)送報(bào)文、以及配置 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 時(shí),需要在 NVIC Settings 選項(xiàng)卡里,將 IPCC RX1 occupiedinterrupt 和 IPCC TX1 free interrupt 的使能勾選上,不然后面的 OPENAMP 的 Activated始終為灰色,無法激活。這里計(jì)劃創(chuàng)建兩個(gè) RPMsg tty 通道,一個(gè)用來傳輸 canfd 報(bào)文,一個(gè)用來統(tǒng)計(jì) canfd報(bào)文的數(shù)量。

初始化兩個(gè) RPMsg tty 虛擬串口 。

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

注冊(cè)回調(diào)函數(shù)以按通道接收消息 。

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

設(shè)置 canfd 接收濾波器和發(fā)送數(shù)據(jù) buf,并注冊(cè)回調(diào)函數(shù)和 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

主函數(shù)輪詢 RPMsg 消息 OPENAMP_check_for_message() 查詢 MailBox 狀態(tài) ,主函數(shù)并根據(jù)運(yùn)行時(shí)間向外發(fā)送報(bào)文同時(shí)不停的查詢接收?qǐng)?bào)文。

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

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

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

當(dāng) M4 核接收到 canfd 報(bào)文的時(shí)候,存入 buf,主函數(shù)檢測(cè)到有 buf 數(shù)據(jù),就會(huì)調(diào)用虛擬串口發(fā)送給 A7 端。

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

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

4.3.測(cè)試步驟

J12 的 CANH、CANL 引腳和同類型的板子 CANH、CANL 相連,把編譯生成的 M4 固件拷貝到 A7,并啟動(dòng)固件.....

原文標(biāo)題:應(yīng)用開發(fā)筆記|MYD-YA157-V2開發(fā)板CAN BUS 總線通信實(shí)例

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2696

    瀏覽量

    463161
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    5950

    瀏覽量

    135787
  • bus
    bus
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    47519

原文標(biāo)題:應(yīng)用開發(fā)筆記|MYD-YA157-V2開發(fā)板CAN BUS 總線通信實(shí)例

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MD9360四路CANFD應(yīng)用實(shí)例

    隨著通信技術(shù)的進(jìn)步和總線技術(shù)的廣泛應(yīng)用,對(duì)總線帶寬和傳輸速率提出了更高的要求。MD9360-T核心板提供四路CANFD,讓你的數(shù)據(jù)傳輸更快速、更可靠。MD9360-EV-Board評(píng)估板(如圖1所示
    的頭像 發(fā)表于 08-08 08:25 ?320次閱讀
    MD9360四路<b class='flag-5'>CANFD</b>應(yīng)用<b class='flag-5'>實(shí)例</b>

    詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法

    面對(duì)切換工具鏈的用戶來說,在TSMaster上完成總線通訊中的CRC/E2E校驗(yàn)處理不是特別熟悉,該文章可以協(xié)助客戶快速使用TSMaster完成CAN/CANFD總線
    的頭像 發(fā)表于 05-25 08:21 ?1798次閱讀
    詳解TSMaster CAN 與 <b class='flag-5'>CANFD</b> 的 CRC E2E 校驗(yàn)方法

    一幀CANFD報(bào)文由多少個(gè)位組成?

    要想知道CANFD報(bào)文由多少個(gè)位組成,那么我們就要了解CANFD幀結(jié)構(gòu),知道每個(gè)段占用位數(shù)從而得出CANFD報(bào)文位數(shù)。
    的頭像 發(fā)表于 04-27 06:08 ?3771次閱讀
    一幀<b class='flag-5'>CANFD</b>報(bào)文由多少個(gè)位組成?

    canfd協(xié)議是什么?canfd協(xié)議的應(yīng)用場(chǎng)景

    CAN FD(CAN with Flexible Data rate)協(xié)議是一種串行通訊協(xié)議,繼承了CAN總線的主要特性,如雙線串行通訊、非破壞性仲裁技術(shù)、分布式實(shí)時(shí)控制,以及可靠的錯(cuò)誤處理和檢測(cè)
    的頭像 發(fā)表于 04-17 14:55 ?1946次閱讀

    CAN和CANFD協(xié)議簡(jiǎn)介(下)

    CAN和CANFD協(xié)議簡(jiǎn)介(下)
    的頭像 發(fā)表于 02-19 12:08 ?743次閱讀
    CAN和<b class='flag-5'>CANFD</b>協(xié)議簡(jiǎn)介(下)

    TC275D系列的芯片支持標(biāo)準(zhǔn)CANFD能配置成非標(biāo)準(zhǔn)CANFD的嗎?

    TC275D系列的芯片支持標(biāo)準(zhǔn)CANFD,是否也能配置成非標(biāo)準(zhǔn)CANFD的呢,有那位技術(shù)人員配置過嗎?
    發(fā)表于 02-06 08:31

    cyt2b94使用can總線的時(shí)候無法使用CANFD_CONFIG_STD_ID_FILTER_RANGE濾波器怎么解決?

    cyt2b94使用can總線的時(shí)候無法使用CANFD_CONFIG_STD_ID_FILTER_RANGE濾波器 代碼如下: static const cy_stc_id_filter_t
    發(fā)表于 02-01 08:25

    CANFD SDL無法被接收到的原因?

    任何 CANFD 消息,如果把 cy_stc_canfd_config_t 的 .canFDMode 改為 false 就可以收到,是因?yàn)?BAUDRATE 與 DATARATE 的關(guān)系嗎 ?,我應(yīng)該要填多少 ?,該怎么從代碼推算呢 ?
    發(fā)表于 02-01 07:27

    CAN總線最大能夠帶多少節(jié)點(diǎn)?CANFD相對(duì)于CAN2.0有哪些差異呢?

    CAN總線最大能夠帶多少節(jié)點(diǎn)?CANFD相對(duì)于CAN2.0有哪些差異呢? CAN總線最大能夠帶多少節(jié)點(diǎn)? CAN總線是一種廣泛應(yīng)用于汽車領(lǐng)域的多主機(jī)串行通信
    的頭像 發(fā)表于 01-31 14:08 ?3136次閱讀

    canfd通信tdcv實(shí)測(cè)值受總線長(zhǎng)度影響嗎

    canfd通信tdcv實(shí)測(cè)值受總線長(zhǎng)度影響嗎? 當(dāng)涉及到CAN FD通信和總線長(zhǎng)度的討論時(shí),總線長(zhǎng)度可以對(duì)實(shí)測(cè)值產(chǎn)生一定的影響。在本文中,我將詳細(xì)討論CAN FD通信和
    的頭像 發(fā)表于 01-31 13:46 ?840次閱讀

    CAN和CANFD協(xié)議簡(jiǎn)介(上)

    CAN和CANFD協(xié)議簡(jiǎn)介(上)
    的頭像 發(fā)表于 01-26 08:06 ?994次閱讀
    CAN和<b class='flag-5'>CANFD</b>協(xié)議簡(jiǎn)介(上)

    求助,關(guān)于M467系列CANFD的BSP例程疑問

    CANFD_SetSIDFltr(g_pCanfd, 0, CANFD_RX_BUFFER_STD(0x111, 0)); CANFD_SetSIDFltr(g_pCanfd, 0
    發(fā)表于 01-16 08:19

    簡(jiǎn)單總線通訊!I2C通訊總線的原理原來這么好懂

    通訊I2C
    安泰儀器維修
    發(fā)布于 :2024年01月02日 11:16:31

    CAN與CANFD的區(qū)別 CAN與CANFD如何轉(zhuǎn)換

    CAN與CANFD的區(qū)別 CAN與CANFD如何轉(zhuǎn)換? CAN(Controller Area Network)是一種廣泛應(yīng)用于汽車和工業(yè)控制系統(tǒng)等領(lǐng)域的串行通信協(xié)議,用于在不同的設(shè)備間傳輸數(shù)據(jù)。而
    的頭像 發(fā)表于 11-22 16:37 ?5450次閱讀