- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
安全气囊系统中专用总线解决方案—DSI BUS
安全系统在汽车中越来越受人关注,安全气囊系统作为一种被动保护装置也是发展迅速,目前国内多数新车型都有安全气囊系统,而且整个系统中气囊的数目也越来越多,结构越来越复杂。
安全气囊基本原理是在汽车碰撞中,通过传感器检测到碰撞信号后,使气体迅速膨胀,气囊会像软枕头一样在碰撞中起到缓冲作,保护乘客的身体。安全气囊最早是被应用在飞机上,在八十年代,第一个商用的安全气囊出现在了汽车上。经统计表明,在正面碰撞中,安全气囊可以降低30%的死亡率。
经过二十多年的发展,一些中高端汽车中安全气囊已经远远不止驾驶员和副驾驶双气囊以及相应位置的安全带预紧装置,侧气囊,后排乘客气囊,膝部气囊,帘式气囊等等,通常会有八气囊、十二气囊甚至更多;气囊系统的功能也越来越复杂,常见的有如发现驾驶员未系安全带或前排副驾驶座位上有乘客,而乘客并未系安全带,则发出提醒;一般的功能还有占位检测,即通过传感器判断某个座位上是否有乘客,当发生碰撞时,无乘客的座位相应的气囊则不会弹出;有些气囊系统甚至能通过测量座位上乘客体重来相应调整气囊弹出的压力,为乘客提供更好的保护;同样,气囊的弹出算法也是越来越复杂,依据碰撞的类型会有不同的气囊弹出,而且弹出时间也不同。这些不同的碰撞可能是正面碰撞,侧面碰撞或角碰撞甚至翻滚。当然感应这些不同的碰撞需要不同方向的、位于不同位置的加速度传感器或压力传感器,将来可能还会用转角传感器来采集信号,然后通过ECU(电控单元)计算判断后弹开相应的气囊。系统功能越来越复杂,这使得整个系统的传感器数量变得可观,这些传感器分布在汽车的四周,根据传感器和ECU连接的不同的方式,主要分为集中式控制架构和分布式控制架构。
系统控制架构
集中式控制架构是指分布在车身四周的传感器和ECU采用点对点连接(如图1),这种结构非常适合中低复杂程度的气囊系统,ECU直接连接远端的传感器,成本较低,,元器件个数较少,供电简单,程序控制起来也较容易。但对于较复杂系统来说,这种结构会带来传感器接口复杂,布线成本增加,无法扩展等问题。分布式控制架构是指通过专用总线将周边传感器连接起来(如图2),它的优点是:对于一个较复杂系统,可以减少布线,更改系统只需要改变节点的配置和数量,方便扩展。例如:通过一条总线将2个传感器串起来工作,而增加成3个传感器仅需在总线上多串一个节点,这使系统构建和变更起来更加灵活。同时也有不少开放的总线协议和集成芯片支持这种结构如:PSI5、DSI BUS等,这使使用起来很方便。
不同安全气囊系统中,可能会有很多种不同器件被连在网络中,有时,这些器件可能是由供应商直接提供给车厂进行安装的。因此,上电时,系统自动给网络节点分配地址的功能会有效降低气囊安装成本;而且,要通过简单的方法就可识别远程的器件,这些器件需是智能的和可编程的;同时,安全气囊系统对可靠性要求很高,当线束短路,开路以及信号传输错误等出现时,系统要求不能被损坏或完全瘫痪;并且系统需具有故障自检功能,并有良好的EMC特性,`DSI BUS(Distributed System InteRFace BUS),其2.0版本又被称为DBUS,是由天合(TRW)公司和飞思卡尔公司共同建立,作为一种针对于安全气囊系统开发的公开的总线协议,目前,已经被许多车厂和零部件供应商采用。它只需两根线就可实现较低成本,高可靠性,适合的通讯速度(最高可达到150Kbps),这而且两根通讯线在总线空闲时还为Slave节点提供供电,并且Slave节点无需振荡器为通讯提供时钟。当系统以菊花链方式或并联方式连接,DSI BUS既实现了分布式控制安全气囊系统,当DSI BUS每通道只连接一个结点,也可用于实现集中式控制安全气囊结构。
在DSI BUS中,通过循环冗余校验(CRC)和远程自我诊断保证了系统的高可靠性。由于主节点发出命令,传递总线能量,从节点命令响应都在同一时间完成,这样就在一定的通讯速度下,实现了高信号密度。
DSI BUS的物理层
整个网络为两线制,Slave节点和总线可以用菊花链或并联方式相联。当Slave节点以菊花链形式连接,总线上电时需逐一配置Slave地址。如以并联方式连接,Slave节点则需要事先配置好地址再与总线相连。每个DSI BUS最多可以接15个Slave节点,当整个系统较复杂时可使用多条DSI BUS总线。
DSI BUS的编码方式
在DSI BUS中,数据从Master节点到Slave节点使用电压传递模式,数据从Slave节点到Master节点使用电流传递模式。DSI BUS的电压传递模式编码比较独特,将每位的传递时间分为三份, 每一位的前2/3为低电平,后1/3为高电平表逻辑0,每一位的前1/3为低电平,后 2/3为高电平表逻辑1。例:图4为通过DSI BUS发送了短指令字0x18。
DSI BUS的数据链路层
DSI BUS中每帧数据为一条命令,数据为全双工,既Master发出命令,同时,Slave响应,Slave对当前命令的响应会在下条命令发出时返回。命令分长字命令和短字命令两种,长命令字有效数据为16位和0-8位CRC校验,短命令字为8-15位有效数据和0-8位CRC校验。图4为1条短命令字,8位的有效数据为0x18和4位的CRC校验码。
DSI BUS的地址分配
DSI BUS中,Slave节点地址共4位二进制码,从0001到1111,因此,每个DSI BUS最多接15个Slave节点,当命令字中地址为0000时,为向所有Slave节点同时发出命令。
对Slave节点分配地址的方式有两种,一种是系统中所有节点接成菊花链形式,当系统上电后,Master逐一对Slave分配地址,这种称为可编程方式 (Programmable)。另一种是预编程方式(PRE Programmed),既从节点器件在接入DSI BUS前预先编好地址。在支持DSI BUS的Slave器件中,有一个作用于电源和信号线的开关,对于预编程的器件,上电时器件的开关是断开的,因为第一个Slave的开关是断开的,所以总线上数据只能到达第一个Slave器件,当Master发出初始化命令初始化第一个地址并闭合开关后,总线数据便能到达第二个Slave器件,再同样对第二个Slave节点初始化。以此类推,直至每一个Slave器件都被设定地址后,总线上Slave节点才开始工作。
DSI BUS的命令
不论是长字命令还是短字命令,DSI BUS的命令字只有4位,因此共有0000-1111共16条命令,无论节点上的设备的是传感器还是开关量输入或输出,总线都是通过这些命令来定义或控制这些节点。所有总线上的节点(Slave内部开关闭合情况下)都会对这些命令解码并响应相应的命令。
如0000命令既初始化命令,它用于为可编程方式的节点设定地址,同时还可以通过这条指令控制内部有开关的从节点内的开关打开或闭合。
传感器信号和如安全带是否扣好等一些开关量信号都可以通过DSI BUS传递给ECU板,同时ECU板还可以通过DSI BUS传递一些控制信号,如实现传感器的自检测功能的操作,点亮LED灯等。同时,ECU板通过DSI BUS也为从节点设备如传感器提供了供电,有效减少了气囊系统的布线,提高了系统可靠性。
DSI BUS作为气囊的专用总线具有很好可靠性。通过CRC校验,DSI BUS可以避免由信号传输错误造成的误动作;当信号线出现断路时,DSI BUS的器件并不会因此损坏,并且可通过对Slave器件中开关进行操作,断开发生问题的部分,使总线连接正常的部分工作;甚至可以通过两个Master (另一个作为备用)分别连接在一条总线的两端,这样即使信号线上一点出现问题,一个Master因此不能控制所有的Slave节点,DSI BUS仍能通过另一个备用Master控制剩余的节点;一些Master的接口芯片(如飞思卡尔的MC33780)还支持差分信号输出(图4)和具有频谱延展功能,这样可以有效降低总线的EMI(电磁干扰)。
总之,随着安全气囊系统复杂性的提高,分布式控制安全气囊系统越来越普及,DSI BUS作为安全气囊系统的专用解决方案,既可以应用于系统架构较复杂的分布式控制气囊结构,同时,也适用于系统架构较简单的集中式控制气囊结构,既可以每个节点使用预编程方式,在组装前进行地址编程,也可以使用可编程方式,在系统安装后进行地址编程。使用DSI BUS可以使系统非常方便拓展或更改,节约布线成本,降低系统复杂性,增强系统可靠性,并对降低系统EMI特性有显著效果。