基于APM32F407的CAN通信硬件方案设计分享 汽车CAN通信是一种基于总线的网络技术,用于实现汽车内部各个电子控制单元(ECU)之间的数据交换。CAN通信具有高速、可靠、低成本、易扩展等优点,已经成为汽车电子领域的标准通信协议。 一、CAN简述 CAN是控制器局域网络(ControllerArea Network, CAN)的简称,是基于UART/SCI(通用异步收发器/串行接口)的串行通讯协议(基于ISO11898和ISO11519)。其目标定位于车身网络模块节点间的中高端通信,主要用于不同的ECU(电子控制单元)之间进行串行数据传输。 CAN总线采用的是双线传输形式,采用“多主” 的工作方式,总线电平根据不同的标准有微小的差异,总的来说CAN_H的电压范围为2.5~3.5V,CAN_L的电压范围为1.5~2.5V,差分电压为0V~2V。传输速率最高可以达到1Mbps,理论上CAN总线可以连接无限多个节点,实际应用中考虑线缆的延时以及信号质量,连接的节点一般不超过110个。 二、CAN详解 1. CAN总线架构简介 CAN总线协议是一种ISO 国际标准化的串行通信协议,有ISO-11898 和 ISO-11519两个系列。其定义有以下两种:
ISO-11898 定义了通信速率为 125kbps ~1Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米,如下图所示: ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米,如下图所示: 2. CAN总线信号分析
CAN总线上,信号表现为电压形式,通过CAN_H和CAN_L线上的电位差来表示CAN信号,分为显性电平(dominant)和隐性电平(recessive)两种类型。其中显性电平规定为逻辑0,隐性电平则为逻辑1。其中ISO-11898协议定义了高速CAN信号的电平,如下图所示: ISO-11519协议定义了低速CAN信号的电平,如下图所示: 3. CAN信号传输 CPU与从机设备通信时差分电平与逻辑电平的转换由CAN收发器实现。
在发送过程,CAN控制器将CPU传来的信号转换为逻辑电平。CAN收发器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上 在接收过程,CAN收发器将CAN_H 和CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上 三、CAN通信硬件设计 APM32F407芯片CAN通信电路如图所示:
|