总结下,当一个节点要向其它节点发送数据时,该节点的CPU 将要发送的数据和自己的标识符传送给本节点的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN 芯片将数据根据协议组织成一定的报文格式发出,这时,网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。
CAN总线的结构是这样的。
CAN总线的优点很多:
· 通信速率最高可达1MB/s(此时距离最长40m)。
· 节点数实际可达110个。
· 采用短帧结构,每一帧的有效字节数为8个。
· 每帧信息都有CRC校验及其他检错措施,数据出错率极低。
· 通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。
· 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。
FlexRay总线FlexRay总线是由宝马、飞利浦、飞思卡尔和博世等公司共同制定的一种新型通信标准,专为车内联网而设计,采用基于时间触发机制,具有高带宽、容错性能好等特点,在实时性、可靠性和灵活性方面具有一定的优势。
FlexRay总线数据收发采取时间触发和事件触发的方式。利用时间触发通信时,网络中的各个节点都预先知道彼此将要进行通信的时间,接收器提前知道报文到达的时间,报文在总线上的时间可以预测出来。即便行车环境恶劣多变,干扰了系统传输,FlexRay协议也可以确保将信息延迟和抖动降至最低,尽可能保持传输的同步与可预测。这对需要持续及高速性能的应用(如线控刹车、线控转向等)来说,是非常重要的。
它采用了周期通信的方式,一个通信周期可以划分为静态部分、动态部分、特征窗和网络空闲时间4个部分。静态部分和动态部分用来传输总线数据,即FlexRay报文。特征窗用来发送唤醒特征符和媒介访问检测特征符。网络空闲时间用来实现分布式的时钟同步和节点参数的初始化。
FlexRay具有高速、可靠及安全的特点. FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s。FlexRay还能够提供很多网络所不具有的可靠性特点。尤其是FlexRay具备的冗余通信能力可实现通过硬件完全复制网络配置,并进行进度监测。FlexRay同时提供灵活的配置,可支持各种拓扑,如总线、星型和混合拓扑。FlexRay本身不能确保系统安全,但它具备大量功能,可以支持以安全为导向的系统(如线控系统)的设计。