本文介绍了一种基于蓝牙技术的用于远程访问诊断接口的架构,在这种架构中使用蓝牙联网协议为一个HTTP-CAN网关提供底层的传输(物理)媒介。借助运行在TCU上的嵌入式HTTP服务器的帮助,服务技术人员可以从启动蓝牙功能的便携式电脑的网络浏览器上来监视和控制INV上的各个节点。这个无线接口提供了方便的访问途径,从车底、发动机盖下或乘客厢内都可进行访问。本文介绍的系统使用了蓝牙的拨号联网(DUN)特性来模拟一个外部调制解调器,以便支持一个“拨号”到汽车CAN网络的网络浏览器。通过使用TCP/IP等标准通信协议,并将汽车的相应软件嵌入HTTP服务器,技术人员的硬件和软件相对于汽车设计具有完全的可伸缩性,即使不同制造商、车型和型年的汽车其维护和修理过程全然不同。
对车内网络进行诊断访问
图1:网络架构和远程诊断接口
图1显示了使用基于蓝牙的诊断系统进行访问的车内网的网络架构。具有蓝牙功能的常规笔记本电脑上的网络浏览器是用来访问TCU的,它提供了一个访问汽车网络的用户接口。通过在汽车自身嵌入诊断接口,制造商可以定制数据的描述形式和提交给技术人员的过程。还可以根据特定汽车内的选件安装情况来提供诊断程序。除了消费者挑选的诸如空调、ABS等选件之外,通常还有一些其它的部件差异是消费者所看不见的。例如,在1个型年内可能使用2~3个水泵。把所有这些差异都考虑进去之后,可能会出现几十种组合情况。对特定汽车定制专门的诊断接口降低了导致技术人员陷入迷惘和使用不正确诊断程序的可能性。
这个接口可用来访问汽车行驶期间的实时工作数据和来自控制器并记录有异常事件(如引擎点火失败,超程传感器数据等)日志的历史数据。控制器还可用来操控汽车传感器进行测试,如验证喷射控制装置是否能对传感器的输入进行正确响应。
该诊断系统还可为汽车制造商恢复数据,以开发故障发生前的指示器模型。通过上载闪存中的数据日志,并将其与技术人员所提供的故障报告关联起来,便可以利用学习算法来优化自动诊断工具。维护和维修设备提供这些信息的目的在于为汽车的诊断起到辅助作用。在诊断汽车所发生的问题时,第一个步骤应该是上载闪存数据,因为聘请熟练技术人员的成本比较昂贵,而利用汽车制造商的软件工具常常就能够诊断出问题所在(或提供有用的建议)。
网际网模型
由于系统需要具有不同可靠性和带宽的网络,未来的车内网将用到多种网络类型。分层协议和中央网关处理器相结合,可实现不同组网技术之间的透明通信。
伴随汽车电子产品结构正在发生的革命,出现了许多新兴的网络。汽车中的多媒体设备,如CD/DVD播放器、数字电视等,都要求具有较大同步带宽的网络;而另外一些应用则需要无线网络或其他配置。为满足对这些广泛的、日益增长的汽车网络应用的需求,研究人员正在开发许多专用的网络协议。未来的车内网很可能包括:
*蓝牙微微网(Piconet):中等带宽的无线网络,已成为与蜂窝电话和便携式计算机通信的标准。
*CAN网络:中等带宽、高可靠性的有线网络,已经是汽车行业中的标准。
*音频/视频网络:用于娱乐媒介的高带宽有线网络。目前在这个应用领域中存在几个相互竞争的协议,包括内部数据总线(D2B)、火线(FireWire,IEEE1394)、面向媒介的系统传输(MOST)和移动媒介链路(MML)。
*低开销有线网络:基于UART的有线网络(LIN)和芯片-芯片总线,如I2C、SPI和Microwire,支持到按键板、显示屏和传感器等的低成本接口。
*低开销无线网络:基于ZigBee或专用网的低带宽无线网络,用于轮胎压力传感器、报警器和门锁的射频远程钥匙以及需要无线接口和最低成本的其他应用。
未来的车内网通常会包含多个CAN网络:低速网络用于门锁、尾灯等设备,它可以减少走线;高速网络用于动力控制等关键高性能功能。在7系列宝马汽车中,使用了三个CAN网络。其中,CAN动力网络和CAN车体网络连接到中央网关模块,后者再连接到Byteflight星型网络。Byteflight星型连接器是安全关键控制和信息模块。第三个CAN网络将CAS(汽车访问系统)连接到门控单元和座位控制单元(最多11个单元)。CAS还提供到CAN车体网络的接口,后者包括多达20个节点。
网络软件结构
TCU和远程诊断系统的软件结构如图2所示。
诊断系统运行通用的网络浏览器,以便查看TCU上的网络服务器所提供的信息。通过在TCU上执行网络服务器,汽车制造商可以提供一个无需事先知道实现细节(它即使在同一个型年内也有可能发生变化)就可进行访问的诊断接口,
各CAN节点中的高级驱动器执行应用特定的协议来响应从网络服务器收到的请求。该驱动器负责分析和解码PDU(协议数据单元),并产生满足PDU所需行为的各项本地任务。一旦本地任务结束之后,这些任务所产生的任何结果都会被格式化并通过CAN总线返回给网络服务器。
DNC(动态节点配置)服务器维护一个活动节点列表。当某个节点被添加(可以是“热添加”或“冷添加”)到CAN网络时,它立即开始向运行在TCU上的DNC服务器广播配置请求。由于采用许多计算机所用的动态主机配置协议(DHCP)来建模,以便自动获取网络配置,因此可以利用一种类似的(简化的)协议来允许CAN节点获得某些需要的网络配置数据。通过这种机制,节点可以用与计算机中即插即用类似的方式来进行增加或删除。CAN节点使用DNC请求来发布它们随机产生的节点ID号,即希望在CAN网络上用来作为其名称或“地址”的“别名”(不要将其与基于消息的过滤或CAN网络上使用的ID号混淆)。
当TCU的DNC服务器接收到一个DNC请求时,它首先检查节点所请求的ID号是有效的,并且不与当前网络上的任何其他节点相冲突。然后,服务器检查它具有足够的存储空间来将该节点的配置表增加到它的活动节点列表中去。最后,如果上述检查通过,DNC服务器将接受这个请求,并为该节点分配一个唯一的数字作为其活动期间的名字。同时,该节点的ID号也将被添加到服务器的活动节点列表中。以后所有指向该节点的通信都将使用这个协议ID。如果所请求的ID号无效,TCU将拒绝这个请求,从而提示该节点请求另外一个ID号,直到这个ID号可以接受为止。
TCU担当CAN网络的主机,因为CAN节点本身并不运行基于TCP/IP的协议堆栈。当网络浏览器需要访问一个CAN节点时,它与网络服务器进行通信。网络服务器解释浏览器所请求的动作,并在CAN网络上产生通信,以执行该动作。
TCU处理器的一个例子是国家半导体公司的CP3BT26,该处理器属于CP3000系列连接性处理器。它具有以下特征:
*24MHz16位RISCCPU,含32位扩展;
*256K字节片内闪存;
*8K字节数据闪存(从256K闪存中执行时可写);
*32K字节静态存储器;
*蓝牙基带控制器;
*带目标存储的双CAN2.0B活动控制器(称为fullCAN);
*USB1.1全速节点;
*ACCESS.bus、SPI、Microwire/Plus低开销芯片-芯片总线;
*四UART;
*AAI编解码器接口(与SSI接口兼容);
*8通道12位AD转换器;
*54个通用I/O端口引脚;
*通用定时器;
*看门狗定时器;
*低电压模式;
该器件具有完全的蓝牙和TCP/IP协议堆栈,其支持包括一套经过预测试的软件开发工具、外设驱动器和实时操作系统。