當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]引言隨著藍(lán)牙手機(jī)的普及,越來越多的車主安裝了藍(lán)牙車載免提裝置,跟藍(lán)牙手機(jī)建立連接后便可以通過汽車內(nèi)部的麥克風(fēng)和音響進(jìn)行通話。為了方便用戶撥打電話,本文研制了一款可以從手機(jī)上下載電話簿的免提裝置,通過液

引言

隨著藍(lán)牙手機(jī)的普及,越來越多的車主安裝了藍(lán)牙車載免提裝置,跟藍(lán)牙手機(jī)建立連接后便可以通過汽車內(nèi)部的麥克風(fēng)和音響進(jìn)行通話。為了方便用戶撥打電話,本文研制了一款可以從手機(jī)上下載電話簿的免提裝置,通過液晶屏和按鍵,用戶可以對電話簿條目進(jìn)行導(dǎo)航,選擇電話號碼進(jìn)行撥打。該免提裝置的藍(lán)牙部分采用Bluecore5-MM芯片,液晶屏和按鍵接口在8位單片機(jī)PIC18F2480上實(shí)現(xiàn),同時(shí)借助PIC18F2480內(nèi)部的CAN控制器,該免提裝置可以輕松集成到車載CAN網(wǎng)絡(luò)中。其結(jié)構(gòu)框圖見圖1。

為了保證電話簿數(shù)據(jù)的一致性,當(dāng)用戶在手機(jī)上更新了電話簿時(shí),免提裝置上的電話簿數(shù)據(jù)庫也應(yīng)該同步更新,藍(lán)牙SIG組織沒有單獨(dú)定義同步協(xié)議,本文在分析通用的數(shù)據(jù)同步協(xié)議SyncML的基礎(chǔ)上,將SyncML與藍(lán)牙OBEX綁定,實(shí)現(xiàn)了免提裝置和手機(jī)間電話簿的同步。
SyncML簡介
SyncML是同步標(biāo)記語言(Synchronous Markup Language)的縮寫,旨在提供一種終端用戶、設(shè)備開發(fā)商、數(shù)據(jù)提供商、基礎(chǔ)構(gòu)件開發(fā)商、應(yīng)用軟件開發(fā)商及服務(wù)提供商協(xié)同工作的機(jī)制,使得任何終端設(shè)備均可隨時(shí)隨地進(jìn)行數(shù)據(jù)同步。它包括同步協(xié)議、表示協(xié)議和傳輸綁定協(xié)議三個(gè)部分。
同步協(xié)議
同步協(xié)議指定了如何使用表示協(xié)議以滿足客戶端和服務(wù)器SyncML的互操作性,以消息序列表(message sequence chart)的形式定義了七種同步類型的會(huì)話流程,以請求/響應(yīng)的形式定義了會(huì)話中的數(shù)據(jù)交互過程等。同步協(xié)議采用客戶端/服務(wù)器模式定義了同步框架,劃分了客戶端和服務(wù)器的任務(wù)模塊。
其中,服務(wù)器的同步引擎負(fù)責(zé)整個(gè)數(shù)據(jù)同步操作,同步服務(wù)器代理和同步客戶端代理實(shí)現(xiàn)同步協(xié)議,SyncML接口實(shí)現(xiàn)表示協(xié)議,SyncML適配器實(shí)現(xiàn)傳輸協(xié)議的綁定,用于收發(fā)XMI語言格式的object。下面通過同步協(xié)議定義的幾個(gè)重要概念來描述一下同步機(jī)制。
客戶端和服務(wù)器端都要建立自己的數(shù)據(jù)庫,每個(gè)數(shù)據(jù)條目都由一個(gè)UID(唯一標(biāo)識符)進(jìn)行標(biāo)識,客戶端UID稱為LUID,服務(wù)器UID稱為GUID。服務(wù)器建立一個(gè)ID映射表,使得LUID可以和GUID一一映射,當(dāng)數(shù)據(jù)條目發(fā)生更改時(shí),建立記錄更改信息的變更日志。當(dāng)同步開始后,通過UID映射和變更日志指定是哪個(gè)數(shù)據(jù)條目發(fā)生了怎樣的改變。
為了檢查同步效果,服務(wù)器端和客戶端各有兩個(gè)同步錨last和next,一般情況是用ISO8601格式的日歷時(shí)間,也可以用一個(gè)序列號,在初始化同步時(shí)客戶端和服務(wù)器端互換同步錨,它的用法如下:
設(shè)本次同步客戶端同步錨為last_c、next_c,服務(wù)器端同步錨為last_s、next_s,同步成功,則更新next_c=next_s,同步不成功則不更新next_c。
下次同步時(shí),客戶端同步錨為last_c'=next_c、next_c',服務(wù)器端同步錨為last_s'=next_s、next_s',客戶端發(fā)送last_c'和next_c'到服務(wù)器端,服務(wù)器端比較last_c'與last_s',相等則說明上次同步是成功的,不相等則說明上次同步失敗。檢查出上次同步失敗后就要初始化慢同步(雙向同步所有數(shù)據(jù))下載所有的電話簿數(shù)據(jù)。
表示協(xié)議
表示協(xié)議定義了SyncML同步應(yīng)用中XML(Extensible MarkupLanguage)的語法和語義,是一種與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn)。SyncML以XML文檔的形式定義了SyncML消息的格式,每條消息就是一個(gè)單獨(dú)的XML文檔。該文檔包括一個(gè)Header和Body,Header以SyncHdr類型定義,指定了該SyncML消息的路由和版本信息;Body以SyncBody類型定義,包含了一條或多條SyncML操作,一個(gè)操作的語義由命令和被操作數(shù)據(jù)的類型共同確定。SyncMLDTD定義了SyncML消息中通用元素的類型,根據(jù)這些通用元素類型可以指定特定的元素類型,從而滿足各種數(shù)據(jù)同步的擴(kuò)展需要。
SyncML在藍(lán)牙車載免提裝置中的實(shí)現(xiàn)
SyncML OBEX綁定協(xié)議
OBEX(Object Exchange)是紅外數(shù)據(jù)標(biāo)準(zhǔn)協(xié)會(huì)(IrDA)定義的用于對象交換的一種協(xié)議,后被藍(lán)牙SIG組織采納,定義了GOEP(General Object ExchangeProfile)與其適配。在GOEP的基礎(chǔ)上,藍(lán)牙SIG定義了FTP、OPP、PBAP剖面應(yīng)用,其中PBAP是專為電話簿數(shù)據(jù)的自動(dòng)下載定義的剖面,可以下載手機(jī)和SIM卡上存儲(chǔ)的電話簿,還可以下載呼叫日志、呼入、呼出和未接來電。OPP可以用于電話簿的手動(dòng)下載。SyncML針對OBEX定義的綁定協(xié)議分別定義了SyncML在紅外OBEX和藍(lán)牙OBEX上的實(shí)現(xiàn)方式,跟藍(lán)牙OBEX的綁定如圖2所示。

圖2中的SyncML Client層實(shí)現(xiàn)客戶端代理的功能,SYncMLServer層實(shí)現(xiàn)同步引擎和服務(wù)器端代理的功能。OBEX定義了"對象模型"來描述對象,使用"PUT" 和"GET"命令在不同設(shè)備、不同平臺(tái)之間方便高效地交換信息。為了統(tǒng)一地描述各種對象,OBEX定義了Header的概念,每個(gè)Header描述對象的一個(gè)方面。OBEX定義了一系列常用的Header,其中SyncML應(yīng)用到的header為Connection ID、Type、length、Body/EndofBody、Target。
SyncML應(yīng)用所綁定的OBEX操作符包括Connect、Disconnect、Put、Get和Abort。綁定協(xié)議規(guī)定每條SyncML消息必須以MIME類型在OBEX請求或響應(yīng)主體內(nèi)傳輸,定義了OBEX連接、對象交換、斷開連接過程中的請求/響應(yīng)必須包括哪些Filed和Header,比如在一次OBEX Connect操作中,必須包括的Field為連接操作符0x80+包長度+OBEX版本號+標(biāo)志位+最大OBEX包長度,包含的Header為Target。
SyncML的軟件實(shí)現(xiàn)
SyncML的軟件實(shí)現(xiàn)包括應(yīng)用程序、SyncML協(xié)議的實(shí)現(xiàn)和通信程序三個(gè)部分,軟件結(jié)構(gòu)如圖3所示。應(yīng)用程序包括同步管理器、變更日志管理和數(shù)據(jù)庫管理三個(gè)部分。同步管理器按照SyncML同步協(xié)議為每個(gè)同步類型定義的消息序列表管理同步流程,通過調(diào)用SyncML協(xié)議實(shí)現(xiàn)的API,實(shí)現(xiàn)錯(cuò)誤處理、命令處理等操作;變更日志管理程序記錄數(shù)據(jù)更改情況,同時(shí)維護(hù)多個(gè)變更日志,數(shù)據(jù)庫管理程序?qū)崿F(xiàn)對電話簿數(shù)據(jù)庫的增刪和修改。SyncML協(xié)議的實(shí)現(xiàn)主要完成創(chuàng)建、發(fā)送、接收和解析SyncML消息,該部分在SyncML協(xié)會(huì)提供的開放性實(shí)現(xiàn)樣本--SyncML C Toolkit的基礎(chǔ)上實(shí)現(xiàn)。通信程序即SyncML與OBEX的綁定,將SyncML消息封裝為OBEX的object,通過藍(lán)牙鏈路進(jìn)行傳輸。
電話簿數(shù)據(jù)的處理
電話簿數(shù)據(jù)對象符合vCard2.1和vCard3.0規(guī)范,該規(guī)范被SyncML使用,用于電話簿數(shù)據(jù)類型的定義。vCard定義了一種個(gè)人信息的組織方法,主要用于個(gè)人信息的傳輸和交換。符合vCard規(guī)范的電話簿數(shù)據(jù)如下所示:
vCard采用Property(字段)來描述個(gè)人的一條信息,比如TEL字段表示電話號碼,參數(shù)WORK表示該電話號碼為單位電話。vCard采用面向行的組織形式,除了在字段值中的多行,每一行都表示一條完整的信息。本文編寫的vCard解析函數(shù)便是根據(jù)這樣的組織形式,將vCard數(shù)據(jù)包姓名、工作單位電話、家庭電話、手機(jī)和車載電話分別提取出來,放在如下定義的電話簿數(shù)據(jù)結(jié)構(gòu)體中:
結(jié)語
本文針對藍(lán)牙車載免提裝置開發(fā)中的電話簿同步應(yīng)用,在分析SyncML協(xié)議的基礎(chǔ)上,將SyncML與藍(lán)牙OBEX綁定,并按照vCard規(guī)范解析電話簿數(shù)據(jù),在pic18F2480和Bluecore5-MM上開發(fā)實(shí)現(xiàn)了藍(lán)牙車載免提裝置和手機(jī)電話簿保持同步。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉