首先根据整个来电管理的过程设计三个状态,USB-BOX默认起始状态为Ready,当手机来电时,手机把蓝牙信号(呼叫过程提示)、(来电响铃提示)和 CALLER_ID_IND(来电号码)等来电信息传给USB-BOX,USB-BOX进入状态,通过CAN帧将响铃提示信息发送给管理功放音响的收音机,把来电号码发送给液晶屏,这时收音机播放铃声,同时液晶屏上弹出显示页面,包括该电话号码,并提供是否接听的两个可选项,这个页面的标识符便是来电管理标识符。
在这个CAN网络汽车音响系统中,收音机和方向盘CAN节点提供人机操作接口控制USB-BOX,而USB音乐播放和蓝牙免提功能相关的液晶屏显示页面则由USB-BOX来控制。USB-BOX的程序设计采用基于有限状态自动机的软件架构,将整个控制流按照功能分解为若干并发的子状态机,每个状态机被实现为一个任务,在子状态机中将该功能实现的过程节点做为子状态,以过程的推进作为状态机的跳转,这样使得整个系统构架清晰,简化了实现,便于系统调试和后续功能扩展。
在状态机的实现中,关键跳转条件是CAN帧和蓝牙信号,CAN帧方面主要是标识符的管理,标识符是指当前液晶屏应该显示什么样的页面,提供什么样的显示信息和选择,在该页面下收音机和方向盘按键操作对应哪些控制命令,可以实现哪些选择性的操作(选择、退出、向上向下、向前向后),由USB-BOX和收音机共同管理。而蓝牙信号涉及到不同手机在同一功能上的不同差异,信息组合不完整,次序不固定,这就会带来一定的兼容性问题。下面以电管理为例描述一下状态机的设计。
该技术运用是一个集成USB音频播放、蓝牙免提、蓝牙音频流播放等功能于一体的汽车电控单元(以下以USB-BOX来表示),通过CAN总线与车内音响系统组合为一体,实现播放普通U盘内音乐文件(MP3、WAV、WMA等),同时可以通过蓝牙功能实现免提接听、拨打电话及播放流音乐等。音响系统包括液晶屏、收音机、方向盘和USB-BOX,其中液晶屏用于实现歌曲文件信息、电话相关信息以及电话本的显示等功能,收音机实现CD音乐播放及控制等功能,和兵妹妹在机房收音机和方向盘上带有按键控制接口,实现对USB-BOX的音乐控制和免提操作。