国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

SyncML在藍牙車載信息娛樂設(shè)備上的設(shè)計與實現(xiàn)

發(fā)布時間:2009-12-21 15:27    發(fā)布者:賈延安
關(guān)鍵詞: SyncML , 車載 , 藍牙 , 設(shè)計 , 娛樂設(shè)備
  SyncML與藍牙協(xié)議

  圖1為SyncML的藍牙應(yīng)用協(xié)議結(jié)構(gòu)圖。依據(jù)SyncML協(xié)會定義的藍牙綁定協(xié)議,SyncML服務(wù)器的藍牙實現(xiàn)需要用到SDP和OBEX協(xié)議,電話簿同步應(yīng)用需要用到vCard規(guī)范。SDP協(xié)議用于SyncML服務(wù)器藍牙服務(wù)的注冊,查詢藍牙手機的SyncML客戶端服務(wù)以在RFCOMM層上建立藍牙連接,該RFCOMM連接是SyncML連接的基礎(chǔ);OBEX(Object Exchange)是對象交換協(xié)議,它管理SyncML服務(wù)的連接,將SyncML文檔封裝為Object進行傳輸并控制傳輸過程;vCard規(guī)范是電子名片規(guī)范,定義了個人名片信息的標(biāo)準(zhǔn)格式,方便傳播和交換。下面從這三個方面介紹SyncML的電話薄同步應(yīng)用的關(guān)鍵點。



  SDP在SyncML中的應(yīng)用

  SyncML綁定協(xié)議中定義了SyncML客戶端和服務(wù)器的SDP紀(jì)錄。

  SDP是藍牙服務(wù)發(fā)現(xiàn)協(xié)議,它提供了注冊藍牙服務(wù)和搜索及瀏覽藍牙服務(wù)的方法。注冊藍牙服務(wù)是本地行為,以Service Discovery DataBase即服務(wù)發(fā)現(xiàn)數(shù)據(jù)庫的形式紀(jì)錄,每條Record即服務(wù)發(fā)現(xiàn)數(shù)據(jù)庫中的一個條目。搜索及瀏覽則基于C/S結(jié)構(gòu)(客戶端/服務(wù)器)的請求-響應(yīng)形式,使得客戶端可以訪問服務(wù)器端的服務(wù)數(shù)據(jù)庫。

  作為SyncML的服務(wù)器端,首先需要注冊該藍牙服務(wù)并處于pageable(可被尋呼)狀態(tài),這樣才能被藍牙手機發(fā)現(xiàn)本地設(shè)備的SyncML服務(wù)。SDP Record以結(jié)構(gòu)體形式定義,定義了若干屬性和數(shù)據(jù)類型,包括ServiceClassIDList、protocolDescriptorList、 Service Name、ServiceDescription等,其中ServiceClassIDList屬性是最為重要的,以全局唯一標(biāo)識符UUID表示,客戶端搜索服務(wù)器端服務(wù)的時候便是根據(jù)該屬性進行定位。

  Syncml服務(wù)器端的ServiceClassID為00000001-0000-1000-8000-0002EE000002,藍牙協(xié)議為OBEX,數(shù)據(jù)類型均為DataElSeq。注冊該服務(wù)時首先給server channel賦值為默認值0,然后為該服務(wù)分配Rfcomm 通道,將分配的通道號給server channel重新賦值。

  車載藍牙設(shè)備與手機建立免提連接后主動發(fā)起跟手機的SyncML服務(wù)的連接,首先設(shè)備通過SyncML客戶端ServiceClassID定位手機端的SyncML服務(wù)記錄,然后在該服務(wù)記錄中查詢手機為SyncML服務(wù)分配的Rfcomm通道號,然后建立Rfcomm層的連接。

  OBEX綁定

  SyncML應(yīng)用獨立于具體的傳輸方式,換言之,針對具體的傳輸方式,SyncML定義了相應(yīng)的綁定適配協(xié)議。對于藍牙應(yīng)用,SyncML OBEX綁定協(xié)議定義了SyncML在藍牙上的實現(xiàn)方式。下面介紹OBEX協(xié)議,以及SyncML在OBEX上綁定時需要注意的地方。

  OBEX(Object Exchange)對象交換協(xié)議是采用C/S(客戶/服務(wù)器)結(jié)構(gòu)的面向會話的協(xié)議,它建立了“對象模型”以抽象描述各種實體,并定義了Header的概念來描述對象,一個對象便是一系列Header的集合。

  OBEX定義了OBEX客戶端和服務(wù)器端的應(yīng)用規(guī)范,客戶端是指發(fā)起OBEX連接、初始化OBEX會話的一端。根據(jù)車載設(shè)備要在免提連接建立后進行電話薄同步的應(yīng)用,車載設(shè)備需要實現(xiàn)OBEX客戶端。OBEX客戶端在之前建立的Rfcomm連接的通道上發(fā)起連接請求,請求數(shù)據(jù)為80 00 15 11 00 04 00 46 00 0e 53 59 4e 43 4d 4c 2d 53 59 4e 43。其中0x80為連接操作符,連接請求包長度為0x0015,OBEX版本為version1.1,版本號表示為0x1100,最大OBEX包長度為0x0400,0x46表示Target,Target表明連接的目的或服務(wù),在這里Target為53 59 4e 43 4d 4c 2d 53 59 4e 43即SYNCML-SYNC,表明建立的OBEX連接用于SyncML。

  SyncML Document需要封裝為SyncML MIME類型的對象在OBEX請求或響應(yīng)主體內(nèi)傳輸,該類型為"application/vnd.syncml+wbxml"。SyncML同步電話薄的速度是個很關(guān)鍵的用戶體驗,相關(guān)的關(guān)鍵屬性值為最大OBEX包長度,它決定了每次交互的OBEX包的大小,從而決定了交互次數(shù),該最大包長度越大,交互次數(shù)越少,從而同步速度越快,反之,同步速度越慢。該最大包長度在OBEX連接時協(xié)商決定,取雙方設(shè)備能夠支持的最大包長度的較小值。

  SyncML的藍牙應(yīng)用不可避免地會遇到兼容性問題,在測試過程中發(fā)現(xiàn)車載設(shè)備和Nokia6288手機進行同步時,車載設(shè)備通過PUT發(fā)給手機的SyncML Document的最后一包必須是空包82 00 03,否則無法繼續(xù)同步。

  vCard解析

  SyncML實現(xiàn)的藍牙手機和車載設(shè)備間電話薄同步應(yīng)用中,首先提取出采用vCard格式的個人信息數(shù)據(jù)和相關(guān)命令,將數(shù)據(jù)和命令映射在一起存儲為結(jié)構(gòu)體形式的列表,然后根據(jù) vCard規(guī)范解析出個人信息,根據(jù)命令完成添加、刪除和替代電話薄條目。解析出的個人信息包括人名、手機號碼、家庭電話、辦公電話和車載電話,命令為 ADD、DELETE、REPLACE。下面簡要介紹vCard規(guī)范,以及vCard解析的實現(xiàn)。

  vCard電子名片規(guī)范定義了個人公共信息交換(PDI)的描述標(biāo)準(zhǔn)和組織格式,該格式與信息傳送的方式無關(guān),方便了各種系統(tǒng)和應(yīng)用之間的信息交換。在vCard中,個人公共信息包括姓名、年齡、地址、電話等與個人緊密相關(guān)的基本信息。手機內(nèi)vCard樣例如下:

BEGIN:VCARD
VERSION:2.1
N:denglibao
TEL;WORK:045182605447
TEL;HOME:05307415684
TEL;CELL:13478951524
END:VCARD



  現(xiàn)在使用的vCard規(guī)范版本為2.1和3.0,定義了數(shù)據(jù)的存儲格式及訪問接口的規(guī)范,vCard解析需要能夠解析這兩種版本。根據(jù)車載信息娛樂設(shè)備的應(yīng)用,vCard解析函數(shù)需要提取出姓名和電話號碼兩個屬性,其中電話號碼又包括手機、家庭電話、辦公電話、車載電話四類,其屬性值均為TEL,參數(shù)值分別為CELL、HOME、WORK、CAR,下面給出設(shè)計代碼的主要部分。

unsigned int vcard_parse(void)
{   
  unsigned int cnt,end,i,phone_index;
  char* p;
  end=vcard_length;
  value_initia();
  /*begin to parse vcard*/
  for (cnt=13; cnt      after"BEGIN:VCARD"*/
  {
           if((0xd==an_complete_vcard[cnt])&&(0xa==an_
                                     complete_vcard[cnt+1]))
          {  
        /*extract a property,another property parameter or vcard end*/
                    cnt=cnt+2;/*skip \r\n*/
       /*if vcard end*/
        p=&an_complete_vcard[cnt];
                     if(0==uCompareASCIIName(p,"END:VCARD",9))
                        {
                if(vcard_cmd==ADD)
                  {
                                                 phonebook_insert();
                        }//the vcard cmd ADD
    else if(vcard_cmd==REPLACE)
    {   
    }// the vcard cmd REPLACE
     return 0;
  }else if(0==uCompareASCIIName(p,"TEL;",4))
  {   
         cnt=cnt+4;/* TEL property ,first skip "TEL;"*/           …
           p=&an_complete_vcard[cnt];
           if(0==uCompareASCIIName(p,"PREF",4))/*mobile
            phonenumber*/
       {     
    cnt=cnt+4;/*skip the "PREF"*/
      ...
                                 cnt=cnt-2;/*check next \r\n,in the "for",cnt++,so -2,not -1*/
  }else if(0==uCompareASCIIName(p,"VOICE",5))
  {
  }else if(0==uCompareASCIIName(p,"CELL",4))
  {
  }else if(0==uCompareASCIIName(p,"HOME",4))
  {
  }else if(0==uCompareASCIIName(p,"WORK",4))
  {
  } else if(0==uCompareASCIIName(p,"CAR",3))
  {  
  }
  } else if(0==uCompareASCIIName(p,"TEL:",4))
  { //some phone’s telephone have no parameter,
           for example TEL:10086  
  }else if(0==uCompareASCIIName(p,"N",1))
  { //name property
  }
       }
}
return 0;
}
  其中,uCompareASCIIName是比較字符串函數(shù),對輸入的兩個字符串不分大小寫按字節(jié)進行比較,具體代碼略。

  結(jié)語

  現(xiàn)在的一些文章中,對SyncML的藍牙實現(xiàn)只是泛泛而論,并沒有對具體的實現(xiàn)做深入的研究和分析,筆者在一款車載信息娛樂設(shè)備上設(shè)計實現(xiàn)了基于藍牙技術(shù)的嵌入式SyncML服務(wù)器,從SDP和OBEX綁定上具體指出了SyncML藍牙應(yīng)用的設(shè)計要點,并結(jié)合vCard規(guī)范給出了電話薄數(shù)據(jù)解析的具體實現(xiàn)代碼。實踐證明,車載藍牙設(shè)備的嵌入式SyncML服務(wù)器運行穩(wěn)定,有很好的應(yīng)用價值。

  參考文獻:

  [1]袁仁順.OBEX通信協(xié)議淺析[J].軟件導(dǎo)刊,2008(10)

  [2]熊江,顧君忠,薛梅.藍牙SDP的分析和實現(xiàn)及其改進思路[J],華東師范大學(xué)學(xué)報(自然科學(xué)版),2004(4)

  [3]任李剛.淺析數(shù)據(jù)同步協(xié)議—SyncML[J].中國數(shù)據(jù)通信,2002(10)

  [4]SyncML OBEX Binding[R/OL].(2002).http://www.syncml.org/docs/syncml_obex_v11-20020215.pdf

  [5]顧友俊,羅蕾.Sync ML Client實現(xiàn)研究[J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(01)

作者:馬建輝 山東省科學(xué)院自動化研究所 汽車電子重點實驗室 呂夢興 南京工業(yè)大學(xué)土木工程學(xué)院交通工程系
本文地址:http://www.qingdxww.cn/thread-6742-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 深度體驗Microchip自動輔助駕駛應(yīng)用方案——2025巡展開啟報名!
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進行安全電路設(shè)計
  • 更佳設(shè)計的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91国内在线视频 | 中文字幕国产 | 久久久久四虎国产精品 | 99ri在线视频 | 日韩簧片 | 欧美手机在线观看 | 夜夜超b天天 | 成年女人a毛片免费视频 | 国产深夜福利在线观看网站 | 狠狠热精品免费观看 | 国产尤物二区三区在线观看 | 免费一级毛片 | 欧美日韩国产色综合一二三四 | 四虎影院在线免费观看视频 | 成人精品视频在线观看 | 一级毛片视频在线观看 | 亚洲免费视| 欧美一级夜夜爽 | 日韩欧美91 | 中文字幕日韩在线一区国内 | 欧美日韩午夜精品不卡综合 | 精品在线免费视频 | 久久青春 | 亚洲欧美中文日韩二区一区 | 国产精品视频自拍 | 亚洲一区免费 | 日韩专区在线播放 | 免费看片aⅴ免费大片 | jizz亚洲大全 | 精品视频一区二区三区在线观看 | 国产欧美在线观看精品一区二区 | 91国内精品久久久久免费影院 | 日本无遮挡吸乳视频 | 手机看片日韩日韩国产在线看 | 高清一级毛片一本到免费观看 | 美国一级毛片片aaa 美国一级毛片不卡无毒 | 国产欧美日韩中文字幕 | 欧美极品第1页专区 | 国产门事件xxx | 日本在线视频网站www色下载 | 激情啪啪精品一区二区 |