目录
前言
因为工作,需要研究CAN总线。博主的CAN学习参考正点原子和野火的教程。虽然没有买板子,不过对于博主现在来说,感觉开发板都差不多吧!毕竟工作中开发板肯定是不一样的!
CAN基础知识介绍
CAN
是Controller Area Network
(控制器局域网络)的缩写,是ISO
国际标准化组织的串行通信协议
。由德国电气商博世公司在1986 年率先提出。此后,CAN
通过ISO11898
及ISO11519
进行了标准化。现在在欧洲已是汽车网络的标准协议。
CAN
协议经过ISO
标准化后有两个标准:ISO11898
标准和ISO11519-2
标准。其中ISO11898
是针对通信速率为125Kbps~1Mbps
的高速通信标准,而ISO11519-2
是针对通信速率为125Kbps
以下的低速通信标准。
CAN
具有很高的可靠性和良好的错误检测能力,广泛应用于汽车计算机控制系统和环境温度恶劣/电磁辐射强及振动大的工业环境。
CAN
主要用在两个设备之间的通讯。
CAN的特点
- 多主控制。总线空闲时,所有单元都可发送消息,而两个以上的单元同时发送消息时,根据标识符(ID, 非地址)决定优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(优先级最高)的单元可继续发送消息,仲裁失利的单元则立即停止发送而进行接收工作。
- 系统柔软性。连接总线的单元,没有类似"地址"的信息。因此,在总线上添加单元时,以连接的其他单元的软硬件和应用层都不需要做改变。
- 速度快,距离远。最高1Mbps(距离<40m),最远可达10KM(速率<5Kbps)。
CAN
物理层的形式主要分为闭环总线和开环总线,一个适合于高速通讯,一个适合于远距离通讯(速度慢)。闭环通讯网络是一种高速、短距离网络,它的总线最大长度为40m,通信速度最高1Mbps,总线的两端各要求有一个"120欧"的电阻。开环总线网络是低速、远距离网络,它的最大传输距离1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个"2.2千欧"的电阻。 - 具有错误检测/错误通