# CAN

# 模块介绍

# CAN总线

CAN指的是控制器局域网络,全称为Controller Area Network,由德国BOSCH公司开发,是目前国际上应用广泛的现场总线之一,是一种能够实现分布式实时控制的串行通信网络,同时CAN总线是一个广播类型的总线,任何在总线上的节点都可以监听到总线上传输的数据,可以满足一对多的传输需求,同时具有实时性强、传输距离远、抗电磁干扰能力强、成本低等特点,其双线串行通信连接方式如下图所示:

CAN BUS

CAN总线分为CAN_High和CAN_Low两根传输线,CAN控制器根据这两根线上的电位差来判断总线电平 ,数据发送时,CAN_High和CAN_Low都是2.5V,总线电平差为0,称之为静电平,即隐性电平。有数据发送时,CAN_High升高到3.5V,CAN_LOW降低到1.5V,总线电平差为2V。当CAN_High – CAN_Low < 0.5V的时候为隐性的,逻辑信号表现为“逻辑1”,当CAN_High – CAN_Low > 0.9V的时候为显性的,逻辑信号表现为“逻辑0”。

CAN总线协议包括五种类型的帧,分别为数据帧、遥控帧、错误帧、过载帧和帧间隔,各自作用如下表所示:

帧类型 作用
数据帧 用于发送单元向接收单元传送数据的帧
遥控帧 用于接收单元向具有相同 ID 的发送单元请求数据的帧
错误帧 用于当检测出错误时向其它单元通知错误的帧
过载帧 用于接收单元通知其尚未做好接收准备的帧
帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧

# TJA1050

TJA1050

TJA1050模块支持CAN总线协议高速收发功能,可作为收发器连接CAN总线控制器(例如STM32的CAN总线片上外设)和物理总线,将控制器的TTL电平信号转换成CAN_H和CAN_L信号,用于CAN总线通讯。模块完全遵循“ISO 11898”标准,最高数据传输波特率可达1M,引脚定义如下表所示:

序号 TJA1050模块 备注
1 TXD 模块输入口,接收CAN总线控制器的输出数据
2 GND 模块公共地
3 VCC 模块3.3V
4 RXD 模块输出口,接收CAN总线发送的数据
5 Vref 模块参考电压
6 CANL CAN_L总线
7 CANH CAN_H总线
8 S 模块模式切换引脚(高速收发模式和休眠模式)

# 模块配置和代码树

对于CAN模块,默认配置就可以测试。
[*] Enable CAN ---->
    -- Enable CAN

CAN CONFIGURE

Last Updated: 12/8/2020, 10:42:34 AM