基于F28335的CAN通讯

前言

DSP作为一种控制芯片,常常需要和其他设备进行通讯。CAN通讯就是其中一种。
CAN通讯是串行通讯中的一种,相比较并行通讯,还是有串行通讯的固有的特点,成本低,速度慢。相比加其他串行通讯,比如SCI通讯,CAN通讯速度快,可靠性高,但硬件电路复杂,机制复杂,成本高。

CAN概述

CAN模块属于DSP的外设之一。可实现与其他设备或芯片的通讯。
CAN接口集成了CAN协议的物理层和数据链路层功能,可完成对通讯数据的成帧处理,包括位填充、数据快编码、循环冗余检验和优先级别判别工作等。

CAN模块组成

CAN模块有两大部分组成,CAN协议内核(CPK)和消息控制器。如下图所示:
在这里插入图片描述其中,CPK中包含接收缓冲器和发送缓冲器。
CPK主要有两个功能。一个功能是解码接收的所有消息,并把这些消息转移到接收缓冲器中;另一个功能是根据CAN协议发送消息。

消息控制器包含:

  1. 内存管理单元,CPU接口和接收控制单元,定时器管理单元;
  2. 能储存32条消息的邮箱RAM;
  3. 控制和状态寄存器。

消息控制器其中一个功能是确定CPK接收到的消息是否必须保留用于CPU或者被丢弃。另一个功能是发送下一条消息到CPK。
通过消息控制器,还可以确定消息标识符、优先级。

CAN模块的一些概念

消息
消息就是通讯所传输的信息。一条消息里面包含:11或29位标识符、一个控制字段和数据字节组成。
邮箱
邮箱就是储存消息的RAM。

CAN模块的收发过程

消息的收发是基于CAN模块接收和发送邮箱的特性来决定的。
接收到消息后,消息的标识符将与使用屏蔽的接收邮箱的标识符进行匹配,当两者匹配时,接收到消息将写入对应的邮箱。同时,邮箱相应的接收消息等待位被置位;当两者不匹配时,消息不储存。

因此接收的实现过程可以如下:
查询邮箱的接收消息等待位。如果为1,CPU读取邮箱,清除邮箱的接收消息等待位;如果不为1,则不进行操作。

有发送消息时,CPU将要发送的数据储存再一个配置为发送邮箱的邮箱中。如果相应的TRS位被置位,并且邮箱被启用的话,消息将被发送。
因此,发送过程可以如下:

  1. 清除发送成功标志位;
  2. 禁止邮箱;
  3. 填充数据与ID;
  4. 使能邮箱;
  5. 启动本次数据发送。

总结

介绍了CAN模块最简单的概念。介绍了发送和接收的过程。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值