java怎么拦截某个对象
448
2022-11-06
如何将MCP2515CAN总线控制器与Arduino接口
简介
受控区域简单CAN网络是一种总线标准,允许微控制器及其外围设备在不需要主机设备或计算机的情况下进行通信。
为了更多地了解CAN总线,CAN控制器和其他重要方面,MCP2515 CAN总线控制器模块非常有用。
简要说明MCP2515 CAN总线控制器模块
MCP2515 CAN总线控制器是一个简单的模块,支持CAN协议版本2.0B,可用于1Mbps的通信。为了建立一个完整的通信系统,您需要两个CAN总线模块。
项目如下图所示。
来自TJA1050 IC,它充当MCP2515 CAN控制器IC和物理CAN总线。
下图显示了典型MCP2515模块上的组件和引脚。
MCP2515 CAN总线模块示意图
在查看模块原理图之前,您需要了解一个有关IC的一些事项,即MCP2515和TJA1050。
MCP2515 IC是主控制器,内部由三个主要子组件组成:CAN模块,控制逻辑和SPI阻止。
CAN模块负责在CAN总线上发送和接收消息。控制逻辑通过连接所有模块来处理MCP2515的设置和操作。 SPI模块负责SPI通信接口。
来到TJA1050 IC,由于它充当MCP2515 CAN控制器和物理CAN总线之间的接口,因此该IC负责从控制器获取数据并将其中继到总线上。
下图显示了MCP2515 CAN模块的原理图,并显示了模块上MCP2515 IC和TJA1050 IC的连接方式。
MCP2515与Arduino接口的电路图
下图显示了电路图MCP2515 CAN模块与Arduino的接口以及两个Arduino over CAN协议之间可能的通信。
如果MCP2515模块的引脚不清楚,以下图片可能有用。
所需组件
Arduino UNO x 2 [购买]
MCP2515 x 2 [在此处购买]
连接线[在此处购买]
As前面提到过,CAN控制器IC有助于SPI通信协议与任何微控制器连接。因此,将SPI引脚即SC25,MOSI(SI),MISO(SO)和MCP2515模块的CS连接到Arduino的相应SPI引脚(参见电路图)。
进行两次这样的连接:一对作为发射器,另一对作为接收器。现在,对于此发送器和接收器之间的通信,连接每个MCP2515模块的CANH和CANL引脚。
代码
下载并将提取的内容放在Arduino的libraries目录中。
由于通信涉及发送器模块和接收器模块,因此代码也分为发送器代码和接收器代码。
发送器代码
接收器代码
工作
此项目的工作非常简单,因为所有工作都由库(SPI和CAN)完成。由于CAN是基于消息的通信,因此您需要在0到8个字节之间的任何地方发送消息。
在此项目中,发送器正在发送消息为1 1 2 3 0 5 6 7.此消息通过CAN总线传输,接收器接收此消息并显示在其串行监视器上。
此外,0 th 和4 th 位,即上述序列中的1和0由接收器分别提取,并接通和断开连接到Arduino引脚2的LED。
应用
如前言所述,CAN广泛应用于汽车领域。部分应用包括:
电子换档系统
自动化中的主界面(如工业)
医疗设备
自动启动/停止汽车发动机
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~