首先根据整个来电管理的过程设计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总线及蓝牙技术的汽车电子产品,该产品运行稳定可靠,目前已经成功装车应用,本文分析了其产品开发及测试的原理及特点,并结合具体实例介绍了开发及测试的实现。