SyncML在藍牙車(chē)載信息娛樂(lè )設備上的設計與實(shí)現
圖1為SyncML的藍牙應用協(xié)議結構圖。依據SyncML協(xié)會(huì )定義的藍牙綁定協(xié)議,SyncML服務(wù)器的藍牙實(shí)現需要用到SDP和OBEX協(xié)議,電話(huà)簿同步應用需要用到vCard規范。SDP協(xié)議用于SyncML服務(wù)器藍牙服務(wù)的注冊,查詢(xún)藍牙手機的SyncML客戶(hù)端服務(wù)以在RFCOMM層上建立藍牙連接,該RFCOMM連接是SyncML連接的基礎;OBEX(Object Exchange)是對象交換協(xié)議,它管理SyncML服務(wù)的連接,將SyncML文檔封裝為Object進(jìn)行傳輸并控制傳輸過(guò)程;vCard規范是電子名片規范,定義了個(gè)人名片信息的標準格式,方便傳播和交換。下面從這三個(gè)方面介紹SyncML的電話(huà)薄同步應用的關(guān)鍵點(diǎn)。
SDP在SyncML中的應用
SyncML綁定協(xié)議中定義了SyncML客戶(hù)端和服務(wù)器的SDP紀錄。
SDP是藍牙服務(wù)發(fā)現協(xié)議,它提供了注冊藍牙服務(wù)和搜索及瀏覽藍牙服務(wù)的方法。注冊藍牙服務(wù)是本地行為,以Service Discovery DataBase即服務(wù)發(fā)現數據庫的形式紀錄,每條Record即服務(wù)發(fā)現數據庫中的一個(gè)條目。搜索及瀏覽則基于C/S結構(客戶(hù)端/服務(wù)器)的請求-響應形式,使得客戶(hù)端可以訪(fǎng)問(wèn)服務(wù)器端的服務(wù)數據庫。
作為SyncML的服務(wù)器端,首先需要注冊該藍牙服務(wù)并處于pageable(可被尋呼)狀態(tài),這樣才能被藍牙手機發(fā)現本地設備的SyncML服務(wù)。SDP Record以結構體形式定義,定義了若干屬性和數據類(lèi)型,包括ServiceClassIDList、protocolDescriptorList、Service Name、ServiceDescription等,其中ServiceClassIDList屬性是最為重要的,以全局唯一標識符UUID表示,客戶(hù)端搜索服務(wù)器端服務(wù)的時(shí)候便是根據該屬性進(jìn)行定位。
Syncml服務(wù)器端的ServiceClassID為00000001-0000-1000-8000-0002EE000002,藍牙協(xié)議為OBEX,數據類(lèi)型均為DataElSeq。注冊該服務(wù)時(shí)首先給server channel賦值為默認值0,然后為該服務(wù)分配Rfcomm 通道,將分配的通道號給server channel重新賦值。
車(chē)載藍牙設備與手機建立免提連接后主動(dòng)發(fā)起跟手機的SyncML服務(wù)的連接,首先設備通過(guò)SyncML客戶(hù)端ServiceClassID定位手機端的SyncML服務(wù)記錄,然后在該服務(wù)記錄中查詢(xún)手機為SyncML服務(wù)分配的Rfcomm通道號,然后建立Rfcomm層的連接。
評論