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

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

3天内不再提示

揭秘车载VCU项目之外挂界的“大哥”DMA

朱老师物联网大讲堂 2024-07-30 08:11 次阅读

引脚配置


353fa648-4e08-11ef-817b-92fbcf53809c.png

此实例选择CAN0进行配置。

三、外设配置

对于DMA,其采用的固定映射,对于通道0至通道15,其映射一部分外设,通道16至通道31映射一部分外设,所以对于外设要使用DMA,也需要注意此项。添加外设:358905cc-4e08-11ef-817b-92fbcf53809c.png

CAN基础配置:

35aa22c0-4e08-11ef-817b-92fbcf53809c.png

CAN的用户回调配置:

35aa22c0-4e08-11ef-817b-92fbcf53809c.png中断配置:36ae5d6c-4e08-11ef-817b-92fbcf53809c.png

配置完毕后更新代码:

36daedfa-4e08-11ef-817b-92fbcf53809c.png

36f91690-4e08-11ef-817b-92fbcf53809c.png

36f91690-4e08-11ef-817b-92fbcf53809c.png

35017e4a-4e08-11ef-817b-92fbcf53809c.png

四、部分代码展示

351386f8-4e08-11ef-817b-92fbcf53809c.png

/** * @brief FlexCAN0中断回调函数 * * 该函数处理FlexCAN0模块的各类事件,根据事件类型执行相应的处理逻辑。 * 主要负责接收和发送CAN消息。 * * @param instance CAN实例号,此处固定为FlexCAN0。 * @param eventType 事件类型,指示当前中断的原因。 * @param buffIdx 接收缓冲区索引,指示接收消息所在的缓冲区。 * @param flexcanState FlexCAN状态结构体指针,包含FlexCAN模块的当前状态信息。 */void FlexCAN0_Callback(uint8 instance, Flexcan_Ip_EventType eventType, uint32 buffIdx, const Flexcan_Ip_StateType *flexcanState){ /* 忽略参数,防止编译器警告 */ (void)flexcanState; (void)instance; (void)buffIdx;
/* 根据事件类型执行相应的处理逻辑 */ switch(eventType) { case FLEXCAN_EVENT_RX_COMPLETE: { txData[7] = 0; /* 设置消息ID类型为标准ID,准备发送消息 */ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD; /* 发送消息,并从接收缓冲区读取新消息 */ FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &tx_info, MSG_ID, (uint8 *)&txData); FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &rxData, FALSE); }break; case FLEXCAN_EVENT_RXFIFO_COMPLETE: { /* RXFIFO完成事件的处理逻辑 */ }break; case FLEXCAN_EVENT_TX_COMPLETE: { /* TX完成事件的处理逻辑 */ }break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_COMPLETE: { /* 增强型RXFIFO完成事件的处理逻辑 */ }break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_WATERMARK: { /* 增强型RXFIFO水位标记事件的处理逻辑 */ }break; case FLEXCAN_EVENT_DMA_COMPLETE: { txData[7] = 11; /* DMA完成事件的处理逻辑,发送消息并从FIFO读取数据 */ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD; FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &tx_info, MSG_ID, (uint8 *)&txData); FlexCAN_Ip_RxFifo(INST_FLEXCAN_0, &rxFifoData); }break; default: { /* 默认情况下,不做任何处理 */ }break; }}

35017e4a-4e08-11ef-817b-92fbcf53809c.png

五、注意事项

351386f8-4e08-11ef-817b-92fbcf53809c.png

中断配置回调函数注意事项:

37872066-4e08-11ef-817b-92fbcf53809c.png

37a56418-4e08-11ef-817b-92fbcf53809c.png

37d672c4-4e08-11ef-817b-92fbcf53809c.png

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

    关注

    18

    文章

    617

    浏览量

    83439
  • dma
    dma
    +关注

    关注

    3

    文章

    566

    浏览量

    100888
  • VCU
    VCU
    +关注

    关注

    17

    文章

    82

    浏览量

    20617
收藏 人收藏

    评论

    相关推荐

    目前新项目要用到midi音频播放IC,没有有推荐的,封装要小,不需外挂flash

    目前新项目要用到midi音频播放IC,没有有推荐的,封装要小,不需外挂flash
    发表于 01-16 18:38

    如何在我的项目中设置DMA功能?

    你好:如何配置我的项目中的DMA?因为我想禁用DMA传输一旦完成传输所需数据,我就设置一个在我的.c进程中,DMADONYUG标志,但是当我构建进程时,我看不见项目名称中的DMADNO
    发表于 04-12 10:29

    整车控制器VCU EOL 测试系统

    分析、数据处理几个部分。驱动位于底层,实现和硬件设备的通信;驱动获取的数据通过软件进行分析、处理,并完成任务的分发。通过软硬件设备的联合工作完成整车下线功能的检测。VCU测试项目工作电流测试终端电阻测试CAN
    发表于 07-10 15:54

    无法在VCU108上运行MIG测试该怎么办?

    嗨,我有一个新的VCU108板。我正在尝试运行预定义的MIG测试,以便开始使用。我使用本指南作为参考。https://www.xilinx.com/support/documentation
    发表于 09-30 06:18

    如何获取和添加vcu118板信息到工具?

    大家好,我们有一块VCU118板,在我的电脑上安装了Vivado 2017.1!如果我创建一个新项目但我在Default Part窗口中找不到vcu118板信息!任何人都知道如何获取和添加vc
    发表于 10-10 09:26

    VCU 108超大规模virtex 7评估板未在vivado_hls板中列出

    你好,我正在使用一些hls文件来创建加速器核心。我有一个VCU108(Ultra Scale Virtex 7)。在新项目向导中,但是当我点击“板”但没有vcu108的选项。我可以部分使用XCVU095-ffva2104-2-e
    发表于 04-21 08:34

    【HarmonyOS HiSpark AI Camera】智能车载终端

    项目名称:智能车载终端试用计划:初期计划主要是实现车辆各个传感器数据的采集,包括VCU ECU MCU等,实现由手机在一些场景下的交互。
    发表于 10-29 15:14

    整车VCU技术和开发流程剖析VCU

    整车VCU技术和开发流程剖析VCU作为车辆的核心,控制和监测着车辆的每一个动作。车辆的控制过程,就是针对不同的运行模式,对关切的几个参数进行比较。参数属于哪个范围,汽车就执行怎样的运行模式。车辆工作
    发表于 08-27 08:01

    VCU(整车控制器)简介

    (车速、温度等)信息,由VCU判断处理后,向动力系统、动力电池系统发送车辆的运行状态控制指令,同时控制车载附件电力系统的工作模式;VCU具有整车系统故障诊断保护与存储功能。VCU通过采
    发表于 08-31 07:47

    VCU信号的类型和VCU信号的应用

    汽车的VCU作为上层算法和底盘控制的接口,不仅承担着控制汽车加减速、转向的工作,还承担着将底盘信息精确且及时传递到算法层的工作。接下来我会从VCU信号的类型和VCU信号的应用两方面进行讲解。
    的头像 发表于 05-24 16:41 1.4w次阅读
    <b class='flag-5'>VCU</b>信号的类型和<b class='flag-5'>VCU</b>信号的应用

    如何解决PWM使用的DMA通道与串口接收的DMA通道撞车问题

    项目做到一半,碰到个尴尬问题:PWM使用的DMA通道与串口接收的DMA通道撞车了,咋办?考虑一下,决定放弃idle中断+dma的串口不定长数据接收方案,回到中断接收去。
    的头像 发表于 02-16 11:35 2841次阅读
    如何解决PWM使用的<b class='flag-5'>DMA</b>通道与串口接收的<b class='flag-5'>DMA</b>通道撞车问题

    PWM使用的DMA通道与串口接收的DMA通道撞车了,咋办?

    项目做到一半,碰到个尴尬问题:PWM使用的DMA通道与串口接收的DMA通道撞车了,咋办?考虑一下,决定放弃idle中断+dma的串口不定长数据接收方案,回到中断接收去。
    发表于 04-27 06:00 12次下载
    PWM使用的<b class='flag-5'>DMA</b>通道与串口接收的<b class='flag-5'>DMA</b>通道撞车了,咋办?

    Google通过自研VCU芯片让视频更流程

    20~33倍的效率。 Google VCU项目已经开展了6年,第一个版本的VCU能够同时支持H.264和VP9两种编码协议,
    的头像 发表于 05-10 10:35 2385次阅读

    从0到1实现VCU:新能源汽车整车控制器

    一、项目简介1、项目整体介绍VCU(Vehiclecontrolunit)整车控制器,作为新能源汽车中央控制单元是整个汽车控制系统的核心。下面框图展现了VCU在汽车中的作用。2、
    的头像 发表于 02-24 08:09 1738次阅读
    从0到1实现<b class='flag-5'>VCU</b>:新能源汽车整车控制器

    新能源汽车之整车控制器VCU到底有什么用?

    、Reference20240224【车载VCU项目简介】20240226【车载VCU项目进度1
    的头像 发表于 06-19 08:10 366次阅读
    新能源汽车之整车控制器<b class='flag-5'>VCU</b>到底有什么用?