基于CAN总线及蓝牙技术的汽车电子产品的开发及测试
扫描二维码
随时随地手机看文章
引言
在汽车电子系统中,CAN总线通信技术不仅减少了线束减轻了汽车重量从而提高了效率,更重要的是它实现了汽车电子网络的信息共享和数据传输,利用它可以把某项应用按照功能分拆在不同的组件中实现,这样在实现各个功能子系统时非常灵活,系统中组件的使用更广泛更充分,单个组件可以在多个功能系统中被应用。可以说CAN总线的出现更好地体现了网络复用的特点。蓝牙技术在消费电子领域中的成功运用经验推广到汽车电子领域后,其开发与测试遇到了一定的挑战,笔者结合为某整车厂商开发的一款基于CAN总线及蓝牙技术的车载信息娱乐设备,介绍基于CAN总线及蓝牙技术的汽车电子产品开发及测试中的关键技术。
产品开发
该产品是一个集成USB音频播放、蓝牙免提、蓝牙音频流播放等功能于一体的汽车电控单元(以下以USB-BOX来表示),通过CAN总线与车内音响系统组合为一体,实现播放普通U盘内音乐文件(MP3、WAV、WMA等),同时可以通过蓝牙功能实现免提接听、拨打电话及播放流媒体音乐等[1]。音响系统包括液晶屏、收音机、方向盘和USB-BOX,其中液晶屏用于实现歌曲文件信息、电话相关信息以及电话本的显示等功能,收音机实现CD音乐播放及控制等功能,收音机和方向盘上带有按键控制接口,实现对USB-BOX的音乐控制和免提操作,系统结构如图1所示。
在这个CAN网络汽车音响系统中,收音机和方向盘CAN节点提供人机操作接口控制USB-BOX,而USB音乐播放和蓝牙免提功能相关的液晶屏显示页面则由USB-BOX来控制。USB-BOX的程序设计采用基于有限状态自动机的软件架构,将整个控制流按照功能分解为若干并发的子状态机,每个状态机被实现为一个任务,在子状态机中将该功能实现的过程节点做为子状态,以过程的推进作为状态机的跳转,这样使得整个系统构架清晰,简化了实现,便于系统调试和后续功能扩展[2]。
在状态机的实现中,关键跳转条件是CAN帧和蓝牙信号,CAN帧方面主要是标识符的管理,标识符是指当前液晶屏应该显示什么样的页面,提供什么样的显示信息和导航选择,在该页面下收音机和方向盘按键操作对应哪些控制命令,可以实现哪些选择性的操作(选择、退出、向上向下导航、向前向后导航)[3],由USB-BOX和收音机共同管理。而蓝牙信号涉及到不同手机在同一功能上的不同差异,信息组合不完整,次序不固定,这就会带来一定的兼容性问题[5]。下面以电管理为例描述一下状态机的设计。
首先根据整个来电管理的过程设计Ready、IncomingCallEstablish、ActiveCall三个状态,USB-BOX默认起始状态为Ready,当手机来电时,手机把蓝牙信号CALL_SETUP_IND(呼叫过程提示)、RING_IND(来电响铃提示)和CALLER_ID_IND(来电号码)等来电信息传给USB-BOX,USB-BOX进入IncomingCallEstablish状态,通过CAN帧将响铃提示信息发送给管理功放音响的收音机,把来电号码发送给液晶屏,这时收音机播放铃声,同时液晶屏上弹出显示页面,包括该电话号码,并提供是否接听的两个可导航选项,这个页面的标识符便是来电管理标识符。这时可以利用收音机上的导航按键选择是否接听,在导航到接听按键上按下选择键时,收音机会把接听来电命令发送给USB-BOX,USB-BOX通过蓝牙信号把接听来电命令发给手机,手机接听来电,通话建立后手机把蓝牙信号CALL_IND=1(呼叫建立)发送给USB-BOX,USB-BOX进入ActiveCall状态,在该状态下,在收音机上按下选择键时,USB-BOX接收到该按键操作命令,发送CAN帧给液晶屏,弹出一个可导航页面,包括挂断、保持选项,选择挂断,收音机把挂断命令通过CAN帧发送给USB-BOX,USB-BOX通过蓝牙信号发送给手机挂断电话,挂断后手机把蓝牙信号CALL_IND=0(通话结束)发送给USB-BOX,USB-BOX进入Ready状态,同时通过CAN帧把通话结束发送给液晶屏和收音机。
产品测试
下面以该产品蓝牙特性的测试来说明一下如何综合采用CAN总线及蓝牙技术完成对该产品的蓝牙测试,在这里将被测试的产品以EUT来表示。
由于无法搭建产品运行时需要的所有外部环境去直接测试产品的各项功能,所以设计了测试工装在生产线上对产品进行测试,同时由于EUT实现的功能比较多,完成单个EUT测试需要的时间比较长,这样为了满足生产节拍的快节奏,在生产线上需要多个工装分别测试多个EUT。EUT的蓝牙特性是指其蓝牙射频通信上是否稳定,软件是否正常运行,不涉及具体的功能项,我们通过确定EUT的信号强度来判断其射频通信,通过一个具体的功能项-配对来判断其软件是否正常运行。
下面首先描述一下测试环境及测试方法,然后详细介绍测试方法的实现。
由于EUT是有效范围为10m的Class 2蓝牙设备,而生产线本身就10米左右,在10m范围内存在多个测试工装和多个EUT,所以为了保证测试工装确实在测试其测试台上的EUT,需要确定工装测试台上这个特定EUT的蓝牙地址以进行后续的配对功能以完成测试。由于测试工装与其测试台上的EUT距离是固定的,而且在某测试工装和多个EUT之间,工装与其测试台上的EUT的距离是最近的,所以在测试工装上实现可以测量被搜索设备的信号强度的搜索功能[4],对有效范围内的EUT进行搜索,只要测试台上的EUT的信号强度是OK的,那么信号强度最强的蓝牙地址便是工装测试台上的EUT所对应的蓝牙地址。
而EUT配对过程的实现(图2)是一个典型的采用CAN总线及蓝牙技术综合实现的功能,首先EUT将来自蓝牙手机的配对请求通过CAN总线发送到液晶屏上显示,然后利用收音机上的按键允许配对,通过CAN总线发送给EUT,EUT接着把弹出PIN码虚拟键盘请求发送到液晶屏上,接着在液晶屏上的虚拟键盘上通过收音机上的按键输入PIN码,然后通过CAN总线把PIN码发送到EUT上,EUT接受蓝牙手机配对,发送PIN码完成配对。
在这里约定一个统一的PIN码,只需要在测试工装上实现蓝牙配对、接收EUT通过CAN总线发送的配对请求、通过CAN总线发送允许配对命令及发送PIN码到EUT的功能即可完成对EUT配对功能的测试。如果测试台上EUT蓝牙特性OK,便可以顺利完成配对操作,如果该EUT的信号强度没有满足要求,而通过搜索最强信号强度得到的蓝牙地址是另外一个EUT的话,由于测试工装跟另外一台工装测试台上的EUT不存在CAN总线连接,所以无法接收配对请求,在这里设定一个超时时间,便可以得出EUT测试不OK的结论。
结语
笔者开发了一款基于CAN总线及蓝牙技术的汽车电子产品,该产品运行稳定可靠,目前已经成功装车应用,本文分析了其产品开发及测试的原理及特点,并结合具体实例介绍了开发及测试的实现。