xuos-web/docs/doc/hardware/connector/CAN.md

54 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CAN
## 模块介绍
### CAN总线
CAN指的是控制器局域网络全称为Controller Area Network由德国BOSCH公司开发是目前国际上应用广泛的现场总线之一是一种能够实现分布式实时控制的串行通信网络同时CAN总线是一个广播类型的总线任何在总线上的节点都可以监听到总线上传输的数据可以满足一对多的传输需求同时具有实时性强、传输距离远、抗电磁干扰能力强、成本低等特点其双线串行通信连接方式如下图所示
<center>
![CAN BUS](./imagesrc/can_bus.png)
</center>
CAN总线分为CAN_High和CAN_Low两根传输线CAN控制器根据这两根线上的电位差来判断总线电平 数据发送时CAN_High和CAN_Low都是2.5V总线电平差为0称之为静电平即隐性电平。有数据发送时CAN_High升高到3.5VCAN_LOW降低到1.5V总线电平差为2V。当CAN_High CAN_Low < 0.5V的时候为隐性的逻辑信号表现为逻辑1”,当CAN_High CAN_Low > 0.9V的时候为显性的逻辑信号表现为“逻辑0”。
CAN总线协议包括五种类型的帧分别为数据帧、遥控帧、错误帧、过载帧和帧间隔各自作用如下表所示
| 帧类型 | 作用 |
| --- | --- |
| 数据帧 | 用于发送单元向接收单元传送数据的帧 |
| 遥控帧 | 用于接收单元向具有相同 ID 的发送单元请求数据的帧 |
| 错误帧 | 用于当检测出错误时向其它单元通知错误的帧 |
| 过载帧 | 用于接收单元通知其尚未做好接收准备的帧 |
| 帧间隔 | 用于将数据帧及遥控帧与前面的帧分离开来的帧 |
### TJA1050
<center>
![TJA1050](./imagesrc/can_tja1050.png)
</center>
TJA1050模块支持CAN总线协议高速收发功能可作为收发器连接CAN总线控制器例如STM32的CAN总线片上外设和物理总线将控制器的TTL电平信号转换成CAN_H和CAN_L信号用于CAN总线通讯。模块完全遵循“ISO 11898”标准最高数据传输波特率可达1M引脚定义如下表所示
| 序号 | TJA1050模块 | 备注 |
| :---: | :---: | --- |
| 1 | TXD | 模块输入口接收CAN总线控制器的输出数据 |
| 2 | GND | 模块公共地 |
| 3 | V<sub>CC</sub> | 模块3.3V |
| 4 | RXD | 模块输出口接收CAN总线发送的数据 |
| 5 | V<sub>ref</sub> | 模块参考电压 |
| 6 | CANL | CAN_L总线 |
| 7 | CANH | CAN_H总线 |
| 8 | S | 模块模式切换引脚(高速收发模式和休眠模式) |
## 模块配置和代码树
对于CAN模块默认配置就可以测试。
[*] Enable CAN ---->
    -- Enable CAN
![CAN CONFIGURE](./imagesrc/can_config.png)