產(chǎn)品開發(fā)
該產(chǎn)品是一個集成USB音頻播放、藍牙免提、藍牙音頻流播放等功能于一體的汽車電控單元(以下以USB-BOX來表示),通過CAN總線與車內(nèi)音響系統(tǒng)組合為一體,實現(xiàn)播放普通U盤內(nèi)音樂文件(MP3、WAV、WMA等),同時可以通過藍牙功能實現(xiàn)免提接聽、撥打電話及播放流媒體音樂等[1]。音響系統(tǒng)包括液晶屏、收音機、方向盤和USB-BOX,其中液晶屏用于實現(xiàn)歌曲文件信息、電話相關(guān)信息以及電話本的顯示等功能,收音機實現(xiàn)CD音樂播放及控制等功能,收音機和方向盤上帶有按鍵控制接口,實現(xiàn)對USB-BOX的音樂控制和免提操作,系統(tǒng)結(jié)構(gòu)如圖1所示。
在這個CAN網(wǎng)絡(luò)汽車音響系統(tǒng)中,收音機和方向盤CAN節(jié)點提供人機操作接口控制USB-BOX,而USB音樂播放和藍牙免提功能相關(guān)的液晶屏顯示頁面則由USB-BOX來控制。USB-BOX的程序設(shè)計采用基于有限狀態(tài)自動機的軟件架構(gòu),將整個控制流按照功能分解為若干并發(fā)的子狀態(tài)機,每個狀態(tài)機被實現(xiàn)為一個任務(wù),在子狀態(tài)機中將該功能實現(xiàn)的過程節(jié)點做為子狀態(tài),以過程的推進作為狀態(tài)機的跳轉(zhuǎn),這樣使得整個系統(tǒng)構(gòu)架清晰,簡化了實現(xiàn),便于系統(tǒng)調(diào)試和后續(xù)功能擴展[2]。
在狀態(tài)機的實現(xiàn)中,關(guān)鍵跳轉(zhuǎn)條件是CAN幀和藍牙信號,CAN幀方面主要是標(biāo)識符的管理,標(biāo)識符是指當(dāng)前液晶屏應(yīng)該顯示什么樣的頁面,提供什么樣的顯示信息和導(dǎo)航選擇,在該頁面下收音機和方向盤按鍵操作對應(yīng)哪些控制命令,可以實現(xiàn)哪些選擇性的操作(選擇、退出、向上向下導(dǎo)航、向前向后導(dǎo)航)[3],由USB-BOX和收音機共同管理。而藍牙信號涉及到不同手機在同一功能上的不同差異,信息組合不完整,次序不固定,這就會帶來一定的兼容性問題[5]。下面以電管理為例描述一下狀態(tài)機的設(shè)計。
首先根據(jù)整個來電管理的過程設(shè)計Ready、IncomingCallEstablish、ActiveCall三個狀態(tài),USB-BOX默認起始狀態(tài)為Ready,當(dāng)手機來電時,手機把藍牙信號CALL_SETUP_IND(呼叫過程提示)、RING_IND(來電響鈴提示)和CALLER_ID_IND(來電號碼)等來電信息傳給USB-BOX,USB-BOX進入IncomingCallEstablish狀態(tài),通過CAN幀將響鈴提示信息發(fā)送給管理功放音響的收音機,把來電號碼發(fā)送給液晶屏,這時收音機播放鈴聲,同時液晶屏上彈出顯示頁面,包括該電話號碼,并提供是否接聽的兩個可導(dǎo)航選項,這個頁面的標(biāo)識符便是來電管理標(biāo)識符。這時可以利用收音機上的導(dǎo)航按鍵選擇是否接聽,在導(dǎo)航到接聽按鍵上按下選擇鍵時,收音機會把接聽來電命令發(fā)送給USB-BOX,USB-BOX通過藍牙信號把接聽來電命令發(fā)給手機,手機接聽來電,通話建立后手機把藍牙信號CALL_IND=1(呼叫建立)發(fā)送給USB-BOX,USB-BOX進入ActiveCall狀態(tài),在該狀態(tài)下,在收音機上按下選擇鍵時,USB-BOX接收到該按鍵操作命令,發(fā)送CAN幀給液晶屏,彈出一個可導(dǎo)航頁面,包括掛斷、保持選項,選擇掛斷,收音機把掛斷命令通過CAN幀發(fā)送給USB-BOX,USB-BOX通過藍牙信號發(fā)送給手機掛斷電話,掛斷后手機把藍牙信號CALL_IND=0(通話結(jié)束)發(fā)送給USB-BOX,USB-BOX進入Ready狀態(tài),同時通過CAN幀把通話結(jié)束發(fā)送給液晶屏和收音機。產(chǎn)品測試
下面以該產(chǎn)品藍牙特性的測試來說明一下如何綜合采用CAN總線及藍牙技術(shù)完成對該產(chǎn)品的藍牙測試,在這里將被測試的產(chǎn)品以EUT來表示。
由于無法搭建產(chǎn)品運行時需要的所有外部環(huán)境去直接測試產(chǎn)品的各項功能,所以設(shè)計了測試工裝在生產(chǎn)線上對產(chǎn)品進行測試,同時由于EUT實現(xiàn)的功能比較多,完成單個EUT測試需要的時間比較長,這樣為了滿足生產(chǎn)節(jié)拍的快節(jié)奏,在生產(chǎn)線上需要多個工裝分別測試多個EUT。EUT的藍牙特性是指其藍牙射頻通信上是否穩(wěn)定,軟件是否正常運行,不涉及具體的功能項,我們通過確定EUT的信號強度來判斷其射頻通信,通過一個具體的功能項-配對來判斷其軟件是否正常運行。
下面首先描述一下測試環(huán)境及測試方法,然后詳細介紹測試方法的實現(xiàn)。
由于EUT是有效范圍為10m的Class 2藍牙設(shè)備,而生產(chǎn)線本身就10米左右,在10m范圍內(nèi)存在多個測試工裝和多個EUT,所以為了保證測試工裝確實在測試其測試臺上的EUT,需要確定工裝測試臺上這個特定EUT的藍牙地址以進行后續(xù)的配對功能以完成測試。由于測試工裝與其測試臺上的EUT距離是固定的,而且在某測試工裝和多個EUT之間,工裝與其測試臺上的EUT的距離是最近的,所以在測試工裝上實現(xiàn)可以測量被搜索設(shè)備的信號強度的搜索功能[4],對有效范圍內(nèi)的EUT進行搜索,只要測試臺上的EUT的信號強度是OK的,那么信號強度最強的藍牙地址便是工裝測試臺上的EUT所對應(yīng)的藍牙地址。
而EUT配對過程的實現(xiàn)(圖2)是一個典型的采用CAN總線及藍牙技術(shù)綜合實現(xiàn)的功能,首先EUT將來自藍牙手機的配對請求通過CAN總線發(fā)送到液晶屏上顯示,然后利用收音機上的按鍵允許配對,通過CAN總線發(fā)送給EUT,EUT接著把彈出PIN碼虛擬鍵盤請求發(fā)送到液晶屏上,接著在液晶屏上的虛擬鍵盤上通過收音機上的按鍵輸入PIN碼,然后通過CAN總線把PIN碼發(fā)送到EUT上,EUT接受藍牙手機配對,發(fā)送PIN碼完成配對。
在這里約定一個統(tǒng)一的PIN碼,只需要在測試工裝上實現(xiàn)藍牙配對、接收EUT通過CAN總線發(fā)送的配對請求、通過CAN總線發(fā)送允許配對命令及發(fā)送PIN碼到EUT的功能即可完成對EUT配對功能的測試。如果測試臺上EUT藍牙特性O(shè)K,便可以順利完成配對操作,如果該EUT的信號強度沒有滿足要求,而通過搜索最強信號強度得到的藍牙地址是另外一個EUT的話,由于測試工裝跟另外一臺工裝測試臺上的EUT不存在CAN總線連接,所以無法接收配對請求,在這里設(shè)定一個超時時間,便可以得出EUT測試不OK的結(jié)論。
結(jié)語
筆者開發(fā)了一款基于CAN總線及藍牙技術(shù)的汽車電子產(chǎn)品,該產(chǎn)品運行穩(wěn)定可靠,目前已經(jīng)成功裝車應(yīng)用,本文分析了其產(chǎn)品開發(fā)及測試的原理及特點,并結(jié)合具體實例介紹了開發(fā)及測試的實現(xiàn)。