探讨CAN总线的抗干扰能力
高、低的时间长度是否在范围内。由于是时间触发协议,通过各分散的节点预定发送时间与实际发送时间的差进行修正,建立同步时基,对发送时间的超限要求更严。它对时间同步中产生的问题也采取了一种逐步退化的策略。它有一个协议运行控制的机制(POC),POC有3个状态,为POC: normal active(积极),POC: normal passive(消极)和POC: halt(停止)。其中,积极状态下,同步处于容许界限内,不会破坏其他节点的同步;消极状态下,同步已恶化到不能再发送的地步,若再发送就有可能超出它的窗口而与其他节点冲突,但它容许接收,以取得足够的同步重返积极状态。在自检或完好性检查(sanity check)未通过,或POC与其他核心机制发现严重错,或host检查到错误给出命令的情况下,POC会进入停止状态,此时只有重新初始化了。
从上面的简述可见,在保证所有节点数据的一致性上,二者都是要靠其他措施的,而这些可能的措施(例如组籍算法,membership algorithm)都有待讨论,对错误的约束仅限于逐步退化的策略。
2.5 帧出错率
总线传送中的出错来源于各种干扰,除了前面分析的信号电平、采样过程、共模电压以外,来自电源的传导干扰也可能使通信控制器工作异常而通信失效,所以不能仅以物理层的一些指标作完整的判断。帧的出错概率对应用有很大影响,它涉及出错以后该怎么办的问题。帧的出错概率与帧长成比例关系,CAN2.0A的最大帧长为133位,FlexRay的最大帧长为2 625位(254字节数据+8字节开销+5个起始/停止位,这里1字节=10位)。假设二者的误码率相同,那么FlexRay的帧出错率PF约为CAN(PC)的20倍。虽然FlexRay帧可传送的数据多得多,但是一个帧错了,其中的消息便全部不能利用,这种消息捆绑在一起的特性,大大增加了出错的机会。如果将FlexRay像CAN那样传送短帧,那么帧的效率会比CAN还低,存放静态段调度表的硬件部分更大。如果将来由于ECU内处理器更强大,一个节点发送的消息更多,那么这种长帧有用途,但是出错概率的增大仍是缺点。另外,用长帧传短消息涉及消息在帧内的编排方法,这种灵活性必然要求有高级通信层的统一约束,否则会带来修理、供货、管理上的不便与成本的增加。这可能是漫长的路,在统一之前仍然是各汽车厂专用的封闭的高层协议,几乎没有留给外人插足的空间。
3 与FlexRay总线的比较
3.1 单信道应用
出错自动重发是CAN总线的一大特点。FlexRay协议的网络拓扑结构包括总线方式,但是用2个信道还是1个与性能和成本关系很大。FlexRay的设计是用2个信道同时传送来保证传送的正确性,因为它不像CAN有出错重发的功能。2个通道同时出错的概率比较小,不考虑出错重发时丢帧也不多。如果考虑2个信道同时出错而要求重发,则必须在应用层处理,而在动态时隙中传送请求与重发,不是一件容易的事,也推迟了送达时间。如果FlexRay只用一个信道来完成,出错概率较大,为了简化应用可以采用重复传送的方法(即时间冗余),在2次或多次传送中只要有1次成功便可。但是这样做相当于把FlexRay的带宽降了下来,例如减为1/2或1/3。这并不意味着2个信道时吞吐量仅为10 Mbps或更小,因为可以在其中一个信道安排较多的动态段,用于出错消息的重发请求与重发,即仅传送出错的部分。
3.2 安全攸关应用的额外要求
对FlexRay这样的时间触发通信协议,其错误约束机制中已尽量考虑了各种可能的出错情况,防止一个节点的发送超出预定给它的时间窗口。为了提高防错的能力,另外设计了总线监守。总线监守有自己的时钟线路和与节点发送的调度表,它控制该节点的总线驱动器,仅在容许的时间窗口里让总线驱动器工作。这种机制给防止冲突构成了双保险,但是增加了系统的成本,所以把它作为选件。在FlexRay中有2种总线监守: 一种是本地总线监守,即与节点靠近的地方,甚至是可以做在同一硅片上的总线监守;另一种是远方的星型耦合器中的集中式总线监守。在总线式应用中有关的是本地总线监守。虽然总线监守要做的事少一些,但是它也要有时间同步的相关机制,以及启动和从休眠中唤醒的算法。为实现这些功能,从总线上接收数据的部分就是必不可少的。由于仅少了发送部分,FlexRay甚至提到过一种可能:将控制芯片设计成可组态的,既可用作通信控制器,又可以用作总线监守。这就说明了总线监守的结构是复杂的、高成本的。有的FlexRay文献中提到,可以将安全攸关的节点与要求稍低的节点连在同一总线上,要求低的节点可以不配总线监守。这种讲法是不正确的,因为根据木桶原理,一段总线上通信的冲突可能性由最有
CAN总线抗干扰能 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)