diff --git a/docs/doc/communication/CAN.md b/docs/doc/communication/CAN.md index d158c36..a506b5e 100644 --- a/docs/doc/communication/CAN.md +++ b/docs/doc/communication/CAN.md @@ -1 +1,53 @@ # CAN + +## 模块介绍 + +### CAN总线 + +CAN指的是控制器局域网络,全称为Controller Area Network,由德国BOSCH公司开发,是目前国际上应用广泛的现场总线之一,是一种能够实现分布式实时控制的串行通信网络,同时CAN总线是一个广播类型的总线,任何在总线上的节点都可以监听到总线上传输的数据,可以满足一对多的传输需求,如下图所示: + +
+ +![CAN BUS](./imagesrc/can_bus.png) + +
+ +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](./imagesrc/can_tja1050.png) + +
+ +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 | VREE | 模块参考电压 | +| 6 | CANL | CAN_L总线 | +| 7 | CANH | CAN_H总线 | +| 8 | S | 模块模式切换引脚(高速收发模式和休眠模式) | + +## 模块配置和代码树 + +对于CAN模块,默认配置就可以测试。 +[*] Enable CAN ----> +    -- Enable CAN + +![CAN CONFIGURE](./imagesrc/can_config.png) diff --git a/docs/doc/communication/imagesrc/can_bus.png b/docs/doc/communication/imagesrc/can_bus.png new file mode 100644 index 0000000..13c49f3 Binary files /dev/null and b/docs/doc/communication/imagesrc/can_bus.png differ diff --git a/docs/doc/communication/imagesrc/can_config.png b/docs/doc/communication/imagesrc/can_config.png new file mode 100644 index 0000000..160c913 Binary files /dev/null and b/docs/doc/communication/imagesrc/can_config.png differ diff --git a/docs/doc/communication/imagesrc/can_tja1050.png b/docs/doc/communication/imagesrc/can_tja1050.png new file mode 100644 index 0000000..f3b2838 Binary files /dev/null and b/docs/doc/communication/imagesrc/can_tja1050.png differ