CAN (控制器局域网)是一种串行总线系统,它最初在20世纪80年代开发出来用于汽车应用。CAN协议符合ISO 11898-1国际标准,它由7层ISO/OSI参考模型中的数据链路层构成。目前有50多家半导体制造商提供的硬件产品支持CAN总线,它可以提供两种通讯服务:发送消息(数据帧传输)和请求消息(远程传输请求,RTR)。诸如发送误差信号、自动重新发送出错的帧等所有其它服务都是对用户透明的,这意味着CAN控制器芯片可以自动执行这些服务。
CAN数据链路层可提供:
多主控能力:在总线空闲时,任意一个CAN节点均可发送消息。
广播通讯:所有节点都可接收发送的所有消息。由所有接收节点确定是否接受该消息。这可确保数据一致性,因为系统中的所有节点使用相同的信息。
复杂的错误检测机制和错误消息重新发送机制:这可确保网络内的数据一致性。
非破坏性总线仲裁:如果2个或更多的节点同时请求消息传输的协议,确保优先级最高的消息总线能立即访问。