1、CAN只具有CAN_High和CAN_Low两条信号线,CAN是以差分信号的形式进行通信的;
2、CAN通信有两种网络:一种是遵循ISO11898标准的高速短距离闭环网络,它的总线最大长度为40m,通信速度最高位1Mbit/s;另外一种是遵循ISO11519-2标准的低速远距离开环网络,最大传输距离为1km,最高通信速率为125kbit/s。
3、CAN的通信节点由一个CAN控制器、一个CAN接收器组成;STM32的CAN接口即为CAN控制器,为了构成完整的节点,还要外接一个CAN收发器。
4、差分信号,即信号的逻辑0和逻辑1由两根差分信号线的电压差来表示。
ISO11898规定CAN协议中处于逻辑1(隐性电平)时,CAN_High和CAN_Low线上的电压均为2.5V,即电压差Vh-Vl=0V。而在逻辑0(显性电平)时,CAN_High的电平为3.5V,CAN_Low线的电平为1.5V,即他们的电压差为Vh-Vl=2V。
5、在CAN总线中,必须处于隐性电平(逻辑1)或显性电平(逻辑0)中的一个状态。假如有两个CAN通信节点,在同一时间,一个输出隐性电平,另一个输出显性电平,总线的“线与”特性将使它处于显性电平状态,即可以认为显性具有优先的意味。
6、CAN一共有5种类型的帧(报文):数据帧(用于发送单元向接收单元传送数据的帧)、遥控帧(用于接收单元向具有相同ID的发送单元请求数据的帧)、错误帧(用于当检测出错误时向其他单元通知错误的帧)、过载帧(用于接收单元通知其尚未做好接收准备的帧)、帧间隔(用于将数据帧及遥控帧与前面的帧分离开来的帧);
7、数据帧是在CAN通信中最主要、最复杂的报文;数据帧以一个显性位(逻辑0)开始,以7个连续的隐形位(逻辑1)结束。在它们之间,分为仲裁段、控制段、数据段、CRC段和ACK段。
7.1、仲裁段的内容主要为本数据帧的ID信息。数据帧分为标准格式和扩展格式两种,区别就在于ID信息的长度,标准格式的ID为11位,扩展格式的ID为29位。
在CAN协议中,ID起着重要的作用,它决定真数据帧发送的优先级,也决定着其他设备是否会接收这个数据帧。
仲裁段除了报文ID外,还有RTR、IDE、SRR位。其中RTR(Remote Transmission Request)位用于区分数据帧和遥控帧的,在数据帧里这一位为显性(逻辑0)。IDE(Identifier Extension)位用于区分标准格式与扩展格式的,在标准格式中为显性,在扩展格式里为隐性。SRR(Substitute Remote Request)位只存在于扩展格式,它用于替代标准格式中的RTR位。SRR位为隐性位,由于RTR在数据帧为显性位,所以在两个ID相同的标准格式报文与扩展格式报文中,标准格式的优先级较高。
7.2、在控制段的r1和r0为保留位,默认设置为显性位。最主要的为DLC段,DLC段由4位组成,MSB先行,它的二级制编码用于表示本报文中的数据段含有多少个字节,DLC段表示的数字为0~8;
7.3、数据段为数据帧的核心内容,它由0~8个字节组成,MSB先行;
7.4、CAN的报文包含了一段15位的CRC校验码,一旦接收端计算出CRC跟接收到的CRC码不同,则会向发送端反馈出错信息以及重新发送。CRC部分的计算和出错处理一般由CAN控制器硬件完成或由软件控制最大重发数;在CRC校验码之后,有一个CRC界定符,它为隐性位,主要作用是把CRC校验码与后面的ACK段隔开。
7.5、ACK段包括一个ACK槽位和ACK界定符位。
8、CAN协议把每一位的时序分解为SS段、PTS段、PBS1段和PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,而一个完整的位由8~25个T区组成。
8.1、SS段为同步段,若总线的跳变沿被包含在SS段的范围之内,则表示节点与总线的时序同步。节点与总线同步时,采样点采集到的总线电平即可被确定为该位的电平。SS段的大小为1Tq。
8.2、PTS段为传播时间段,这个时间段用于补偿网络的物理延时时间,是总线上输入比较器延时和输出驱动器延时总和的两倍。PTS段的大小为1~8Tq;
8.3、PBS1段为相位缓冲段,主要用来补偿边沿阶段的误差,它的时间长度在重新同步的时候可以加长。PBS1段的初始大小可以为1~8Tq;
8.4、PBS2段为另一个相位缓冲段,也是用来补偿边沿阶段误差的,它的时间长度在重新同步时可以缩短。PBS2段的初始大小可以为2~8Tq。
9、STM32的所有型号芯片中都具有不行CAN控制器(Basic Extend CAN),它支持CAN协议2.0A和2.0B。bxCAN接口可以自动地接收和发送CAN报文,支持标准标识符和扩展标识符。它具有3个发送邮箱,发送报文的优先级可以使用软件,可以记录发送的时间。有两个3级深度的接收FIFO,可以使用过滤功能只接收或不接收某些ID号的报文。可以配置成自动重发。不支持使用DMA进行数据收发。
STM32之CAN控制器
最新推荐文章于 2024-07-05 18:02:49 发布