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

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

3天内不再提示

基于恩智浦MPC5744P的CAN驱动开发和测试

嵌入式程序员 来源:嵌入式程序猿 作者:武国平 2021-09-03 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要

本篇笔记主要记录基于恩智浦MPC5744P的CAN驱动开发和测试,接口设计,封装为BSP驱动,为之后实现CAN的高层通信打下基础。。

准备工作

安装S32DS for PA, 因为我们在S32DS下开发MPC5744P。

安装S32DS 的SDK, 我们使用最新版3.0.3

CAN

恩智浦的MPC5744P控制器局域网络CAN,跟我们之前使用的恩智浦Kinetis KV, 等系列的flexCAN结构基本是一样的,MPC5744P不仅仅支持经典CAN,还支持CANFD。

从系统框图也可以看出,总体包含消息缓冲RAM,发送仲裁,接收匹配,和协议引擎。要正常与其他CAN设备通信,必须外接收发器。关于MPC5744P的 flexCAN模块的特性可以参考收据手册,这里不在赘述。有四种工作模式,正常模式,监听模式,回环模式,和禁止模式。CAN外设的寄存器比较多,需要多参考查阅手册。

消息缓冲区结构

恩智浦不管是ARM系列还是PA系列架构的片子, flexCAN模块的消息缓冲机制基本都是一样的。这个结构非常重要,是CAN消息数据处理的基础,SDK底层这部分的处理代码就是按照这个结构。自己实现代码也必须是按照这个结构去实现。

更多CAN详细的介绍请参考官方收据手册。

驱动实现

良好的驱动封装,可以方便应用开发,并且可以容易移植到其他项目,代码重用率高,所以数据和接口是你不得不考虑的问题,怎么样方便的实现,还要通用易用。

数据封装

首先根据MPC5744P的CAN外设结构,我们来封装数据结构体,方便后面软件实现开发,可以新建bsp_can.c和bsp_can.h, 在头文件中封装结构体定义。

88563cf6-0be0-11ec-8fb8-12bb97331649.png

在.c文件中定义封装一些变量,这些变量数组也是通用,在多款产品中都采用,大家也可以参照。

886685a2-0be0-11ec-8fb8-12bb97331649.png

可以实现多个CAN口驱动。如果只有一个CAN口,将CAN_PORTS宏定义为1,几个就定义为几。

这个封装大家可以记着,我在多款器件上都是这么封装的,之前在NXP的KE06, KEA, KV46, K64等系列,在ST的F103, F446, H743等等CAN通信都采用这种封装BSP驱动。

初始化

参考官方的例程,根据自己的硬件去实现,做相应修改。我们一般发送接收要采用中断或者DMA实现,这里以中断方式实现,根据实际可能还需要添加滤波,配置缓冲等。

888491dc-0be0-11ec-8fb8-12bb97331649.png

中断回调函数

最主要的就是通信传输回调函数的实现,MPC5744P的回调函数参数有事件,所以可以根据事件来判断是接收还是发送。

责任编辑:haq

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

    关注

    58

    文章

    3010

    浏览量

    471453
  • 通信
    +关注

    关注

    18

    文章

    6316

    浏览量

    139564
  • 封装
    +关注

    关注

    128

    文章

    9139

    浏览量

    147888

原文标题:用这种结构做CAN通信数据封装太爽了

文章出处:【微信号:InterruptISR,微信公众号:嵌入式程序员】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCX E系列5V MCU发布

    MCX E系列是丰富的MCX产品组合中特别注重可靠性与安全性的系列。随着该系列的推出,进一步丰富了其5V兼容的MCU产品线,为从3V到5V的设计提供一致的
    的头像 发表于 08-16 17:36 3383次阅读
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>MCX E系列5V MCU发布

    大联大世平两款全新开发板上架云实验室

    云实验室(Cloud Lab)致力于提供云测试平台,让开发者可以通过云端,在线远程探索
    的头像 发表于 08-13 17:43 1315次阅读
    大联大世平两款全新<b class='flag-5'>开发</b>板上架<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>云实验室

    米尔诚邀您参加2025NXP峰会

    ,预约报名正在进行中,千万别错过!届时,米尔电子将携带新品米尔基于NXPi.MX93核心板及开发板亮相此次盛会,诚邀您莅临现场参观指导。▼▼▼▼▼▼2025年,
    的头像 发表于 05-08 08:08 912次阅读
    米尔诚邀您参加2025<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>NXP峰会

    MPC5744P C55闪存驱动程序,间歇擦除怎么解决?

    我们正在调查闪存的特定部分未按预期擦除的两个问题。 我们使用的是 v.1.1.0 c-array 软件驱动程序,直到构建了新一批硬件,才观察到此问题。MCU 具有掩码集 1N15P 和日期代码
    发表于 04-10 06:55

    FRDM-MCXA156开发实践指南》上线啦

    RT-Thread率先支持NXPFRDM-MCXA156,并联合半导体推出了NXPFRDM-MCXA156开发板评测活动。测评活动顺利完成,并且有了不错的产出,我们将大家的测试
    的头像 发表于 04-06 10:51 2644次阅读
    《<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>FRDM-MCXA156<b class='flag-5'>开发</b>实践指南》上线啦

    智能家电创新方案一文看尽 智能家电技术日给你答案

      科技赋能,将会让我们日常的家居生活变得多智能?让我们一起到 “智能家电技术日” 中找答案—— 在日前举办的“智能家电技术日”活动中,
    的头像 发表于 03-28 11:46 6344次阅读
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>智能家电创新方案一文看尽  <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>智能家电技术日给你答案

    罗德与施瓦茨与合作展示UWB雷达目标模拟测试系统

    作为超宽带(UWB)技术的领军企业,半导体(NXP Semiconductors)与罗德与施瓦茨(以下简称“R&S”)携手合作,在MWC 2025大会上展示一套UWB雷达目标模拟测试
    的头像 发表于 03-05 16:22 922次阅读

    为无线连接SoC开发的统一WiFi驱动程序多芯片多接口驱动(MXM)

    本文将重点介绍为无线连接SoC开发的统一Wi-Fi驱动程序——多芯片多接口驱动 (MXM),详细说明其架构设计如何简化基于
    发表于 02-28 09:13 1127次阅读
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>为无线连接SoC<b class='flag-5'>开发</b>的统一WiFi<b class='flag-5'>驱动</b>程序多芯片多接口<b class='flag-5'>驱动</b>(MXM)

    推出FRDM i.MX 93开发

    备受嵌入式开发者青睐的FRDM开发平台,迎来了一位新成员——FRDM i.MX 93开发板,这也是第一块配备i.MX MPU的FRDM
    的头像 发表于 02-21 14:22 2911次阅读

    发布新版MCUXpresso SDK

    对于使用无线微控制器 (如RW61x和MCX W) 及软件平台的开发人员,在GitHub发布的MCUXpresso SDK 24.12.00是向前迈出的重要一步。最新的SDK版本得到了显著的改进,旨在加速产品
    的头像 发表于 02-21 14:20 4414次阅读
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>发布新版MCUXpresso SDK

    宣布收购NPU厂商Kinara

    半导体公司近日宣布,已正式签署最终协议,将收购高性能、低功耗且可编程离散神经处理单元(NPU)供应商Kinara。此次收购将显著增强在边缘人工智能(AI)领域的技术实力。
    的头像 发表于 02-18 14:29 1153次阅读

    开启中国战略新篇章

    全球领先的智能边缘系统供应商近期宣布,将在现有中国业务布局基础上,进一步整合中国区销售与市场、技术支持、质量管理、运营与供应链、以及全球新能源及驱动系统产品线,组成垂直的业务单元——“中国
    的头像 发表于 02-14 11:26 1123次阅读

    CES 2025有哪些亮点

    未来的智能世界会是什么样?相信逛完在2025国际消费电子展(CES)上的展台,就会找到答案!
    的头像 发表于 01-17 10:46 949次阅读

    半导体6.25亿美元收购TTTech Auto

    半导体(NXP)近日宣布,将以6.25亿美元现金收购奥地利知名的汽车软件开发商TTTech Auto。这一战略收购将进一步巩固
    的头像 发表于 01-09 14:53 925次阅读

    eIQ Time Series Studio 工具使用全攻略

      基本介绍 eIQ Time Series Studio(简称eIQ TSS)是半导体推出的一款专为嵌入式微控制器设计的基于时间序列的AI和机器学习开发套件。它集成了自动机器学习功能,旨在
    的头像 发表于 12-12 09:37 2552次阅读
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>eIQ Time Series Studio 工具使用全攻略