亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于藍牙技術的手機與機頂盒互聯(lián)的設計與實現(xiàn)

        2013-09-20 05:31:32國加磊苗方柴劍平宋金寶
        關鍵詞:機頂盒內核藍牙

        國加磊,苗方,柴劍平,宋金寶

        (1.中廣電廣播電影電視設計研究院,北京100045;2.中國傳媒大學信息工程學院,北京100024)

        1 引言

        智能化的家居生活,數(shù)字化、網(wǎng)絡化的娛樂是數(shù)字家庭多媒體的發(fā)展方向。目前,手機、機頂盒等信息設備是家庭中常見的多媒體終端,各有優(yōu)勢和局限性。手機側重于即時通信和便攜易用,但受限于小屏幕;機頂盒是理想的家庭媒體娛樂平臺,但目前因網(wǎng)絡、接口等條件所限,交互功能有所欠缺。現(xiàn)有條件下,任一種網(wǎng)絡終端都很難實際完全取代另一種網(wǎng)絡終端。因此終端之間的互聯(lián)互通是促成融合的一種有效方式,有助于利用結合點開發(fā)新的業(yè)態(tài)。

        本文介紹的基于藍牙技術的手機與機頂盒互聯(lián),正是解決上述問題的一種有效方式。

        2 系統(tǒng)設計的技術原理

        本設計旨在運用藍牙技術實現(xiàn)手機與機頂盒之間的互聯(lián)互通,而目前二者的發(fā)展日新月異,手機操作系統(tǒng)和機頂盒嵌入式系統(tǒng)種類繁多,在選擇它們互聯(lián)的實現(xiàn)方案時,必須考慮其通用性。因此,本設計采用通用性強的藍牙無線通信技術,在手機端使用J2ME體系,在機頂盒端使用Linux嵌入式平臺,進行程序設計開發(fā)。

        2.1 藍牙技術

        藍牙是一種可以在短距離內實現(xiàn)多種數(shù)字設備之間的無線數(shù)據(jù)通信的技術,能夠簡化設備間通信,可提供較高的數(shù)據(jù)傳輸速率,現(xiàn)已被人們廣泛使用。手機與機頂盒各自特點不同,其互聯(lián)互通受到的設備性能、家庭環(huán)境特點等因素的制約,選擇藍牙技術作為它們之間的通信方式能夠有效解決這些問題。

        藍牙技術擁有層次明確、分工嚴謹?shù)膮f(xié)議棧,其設計的主要原則是:盡可能利用現(xiàn)有的各種高層協(xié)議,保證現(xiàn)有協(xié)議與藍牙技術的融合,以及各種應用之間的互通性,充分利用兼容藍牙技術規(guī)范的軟硬件系統(tǒng)[1]。藍牙協(xié)議棧結構如圖所示:

        圖1 藍牙協(xié)議棧結構圖

        藍牙標準的高層可選協(xié)議中有專門用于傳輸電話簿等小型文件對象的OBEX協(xié)議。但是由于經(jīng)過多層的封裝和開銷,使用OBEX在傳輸較大的多媒體文件如圖片、音頻文件時速度較慢。而RFCOMM協(xié)議提供了基于L2CAP協(xié)議的串口仿真,附加了對9針RS-232(EIATIA-232-E)串口仿真的規(guī)定,是一個簡單傳輸協(xié)議[2]。在開發(fā)過程中,本設計分別嘗試使用OBEX協(xié)議和直接在RFCOMM協(xié)議層測試文件傳輸,實驗結論表明前者速率通常只有幾十kbps,而后者傳輸文件的速率可以達到800~900kbps左右。因此本設計方案將底層的設備發(fā)現(xiàn)、服務搜索等,由藍牙協(xié)議棧提供的標準接口實現(xiàn);而將上層的應用如指令控制、文件傳輸?shù)葯C頂盒與手機之間的通信,建立在RFCOMM層的端到端連接上。RFCOMM層之上采用自定義的通信協(xié)議和數(shù)據(jù)封裝格式,以達到靈活高效和輕量級的封裝。

        2.2 Java及其J2ME體系

        在手機端開發(fā)的程序,本設計運用了Java的J2ME體系。

        Java,是Java計算機程序設計語言和Java平臺的總稱。Java平臺由Java虛擬機和Java API組成,向Java應用程序提供了獨立于操作系統(tǒng)的標準接口,大大提高了Java的可移植性。

        Java中的J2ME體系,專為小型設備、獨立設備、互聯(lián)移動設備、嵌入式設備程序開發(fā)而設計,應用程序根據(jù)該規(guī)范只需編寫一次,就可以用于多種設備,其基本體系結構如圖2所示:

        圖2 J2ME的基本體系結構

        如圖2所示,在最底層的是主機操作系統(tǒng),任何程序必須在某個操作系統(tǒng)平臺下面才能運行。在配置層中,本設計選用CLDC(互聯(lián)受限設備配置)開發(fā)程序,它主要為微型設備或者嵌入式設備而設計[3]。但是,只有CLDC的基礎API是難以開發(fā)手機程序的,而且手機屬于互聯(lián)受限設備中的移動信息設備,所以需要在簡表層選用MIDP(Mobile Information Device Profile,移動信息設備描述)。最后,本設計使用手機的藍牙功能,需要選用可選包(Optional Packages)JSR 82,使用其中定義的與手機藍牙通信相關的 API[4]。

        2.3 Linux與BlueZ

        由于各種機頂盒平臺缺乏相對統(tǒng)一的開發(fā)接口并存在開放性的限制,本課題選擇更具有代表性的基于嵌入式Linux系統(tǒng)的機頂盒。Linux的官方藍牙協(xié)議棧使用了BlueZ,這也是目前應用最廣泛的協(xié)議棧,幾乎支持所有已通過認證的藍牙設備。

        BlueZ由多個獨立的模塊組成,內核空間主要包括設備驅動層、藍牙核心及 HCI層、L2CAP與SCO 音頻層、RFCOMM、BNEP、CMTP與 HIDP層、通用藍牙SDP庫和后臺服務及面向所有層的標準套接字接口;在用戶空間提供了藍牙配置、測試及協(xié)議分析等工具。用戶空間的應用程序通過API調用BlueZ下層模塊,進而通過USB等接口實現(xiàn)HCI層訪問底層硬件,即藍牙適配器。利用BlueZ HCI層的API,可以實現(xiàn)開啟、關閉藍牙設備,搜索周邊藍牙設備等功能。

        3 系統(tǒng)的開發(fā)與實現(xiàn)

        本設計以實現(xiàn)手機與機頂盒的互聯(lián)互通為目的,其系統(tǒng)組成的關系如圖3所示:

        圖3 系統(tǒng)組成關系圖

        如圖3所示,系統(tǒng)包括手機模塊和機頂盒模塊兩部分,它們互聯(lián)互通,為用戶提供更多功能體驗。系統(tǒng)功能包含了機頂盒與手機之間的設備發(fā)現(xiàn)、服務搜索、指令控制、文件共享,并使用以上功能實現(xiàn)典型應用:手機遙控機頂盒,手機和機頂盒之間文件共享。系統(tǒng)的開發(fā)和實現(xiàn)將分別從手機端和機頂盒端的程序設計兩方面介紹。

        3.1 手機端程序設計

        為開發(fā)支持藍牙技術的手機程序,JCP(Java Community Process)制定了JSR 82標準,即Java藍牙無線技術API。該標準包括javax.bluetooth和javax.obex兩個包,前者定義了基于串口通信的API。本設計在J2ME體系中運用javax.bluetooth包,實現(xiàn)了手機端相關程序設計。

        通過藍牙在手機端實現(xiàn)服務器功能的設計主要包含六部分內容。首先通過LocalDevice類的getLocalDevice方法獲取本地藍牙設備管理器,實現(xiàn)藍牙設備通信的基本初始化。其次,生成用于串口通信的連接字符串,該字符串指定了在通信過程中本地藍牙設備使用RFCOMM層協(xié)議,標明了其在通信中服務器的身份、服務UUID、服務名稱以及相關安全參數(shù)。第三,利用連接字符串給連接通知者(Notifier)賦值,該連接通知者只在接收到遠程設備請求時才返回與該遠程設備的連接,否則一直等待。第四,設置本地藍牙設備的服務記錄屬性,供客戶端搜索并獲取。接著,通過連接通知者繼續(xù)等待遠程設備的連接。最后,通過連接對象創(chuàng)建輸入/輸出流,來實現(xiàn)服務端和客戶端的通信,直到通信結束[4]。

        通過藍牙在手機端實現(xiàn)客戶端功能的設計主要包含四部分內容。首先,獲取本地藍牙設備管理器,完成相關初始化工作。其次,設置該管理器處于搜索模式,實例化搜索代理,開始搜索遠程設備和服務,并記錄搜索結果。第三,獲取連接字符串,建立與遠程設備的連接。最后,與服務器端相同,創(chuàng)建輸入/輸出流以實現(xiàn)通信,直到通信結束。

        另外,在本設計中還需要考慮到通信時數(shù)據(jù)格式的問題,因為J2ME體系和C語言兩個平臺的數(shù)據(jù)結構等細節(jié)規(guī)定不盡相同,這給二者通信造成了一定困難,尤其在手機遙控機頂盒的功能上,發(fā)送用于控制的字符時,需要在程序設計中做相應的轉碼,機頂盒才可以正確識別。

        手機端藍牙程序通過以上設計,調用相關API以開啟藍牙,搜索周邊可用設備,選中其中指定目標設備即發(fā)起RFCOMM層連接,實現(xiàn)了遙控機頂盒、與機頂盒共享文件的功能。

        3.2 機頂盒端程序設計

        本設計中的機頂盒端程序,是在Linux官方協(xié)議棧BlueZ的支持下完成的。在Ubuntu 8.10系統(tǒng)平臺上,開發(fā)過程中首先基于ARM9內核的嵌入式開發(fā)板進行開發(fā)調試,然后移植到基于同為ARM926內核的海思Hi3110的機頂盒平臺進行開發(fā)調試。機頂盒通過USB接口外接藍牙適配器以支持藍牙的硬件功能。

        要在機頂盒平臺上正確使用藍牙功能需要重新編譯系統(tǒng)內核以及藍牙適配器的驅動模塊,編譯BlueZ庫及藍牙工具集,制作文件系統(tǒng),從而能正確識別和使用USB藍牙適配器,并使用BlueZ提供的編程接口進行開發(fā)。在編譯Linux內核時,進入“Bluetooth subsystem support”子選項,將所列全部編譯項目選中。然后進入“Bluetooth device drivers”,除“HCI BCM203x USB driver”和“HCI BPA10x USB driver”之外,選中其它所有編譯項目。完成上述操作后,進行內核編譯,生成支持藍牙模塊的內核鏡像文件。下一步,交叉編譯bluez-lib-2.25和bluez-lib-3.36,在lib子目錄下生成相關庫文件,并將其加入到嵌入式系統(tǒng)的文件系統(tǒng)當中,與添加了藍牙支持的Linux內核一起,對藍牙設備提供全面的服務。

        在機頂盒內完成配置藍牙設備的基礎上,藍牙通信程序利用BlueZ提供的編程接口就可以實現(xiàn)與手機的互聯(lián)功能。藍牙協(xié)議棧的底層硬件協(xié)議在適配器的硬件中已經(jīng)實現(xiàn);軟件層面上的藍牙開發(fā)就要從HCI層之上的各協(xié)議層開始。藍牙功能的開和關、搜索周邊設備的功能由BlueZ的HCI層API直接提供。BlueZ提供了Socket編程接口,通過一個類似TCP/IP套接字的接口封裝了對L2CAP和RFCOMM的操作。本設計應用層的各功能模塊,如指令控制、文件傳輸?shù)龋赗FCOMM層實現(xiàn)。創(chuàng)建一個Socket,其中第一個參數(shù)domain必須是:PF_BLUETOOTH,即指明采用藍牙協(xié)議族的結構定義。Protocol參數(shù)為BTPROTO_RFCOMM,即指定使用的協(xié)議層。

        RFCOMM層以端口(Port)區(qū)分不同的連接,可用的Port只有32個,需要在使用時動態(tài)分配。被連接方先向系統(tǒng)注冊一個服務,分配到端口號,連接時將該端口號通過SDP協(xié)議通告連接發(fā)起方。使用藍牙MAC地址和端口號可以在RFCOMM層標識一個Socket連接。類似套接字在IP網(wǎng)絡的編程開發(fā)方式,服務器端使用bind,listen等API綁定、監(jiān)聽該套接字;客戶端用connectAPI發(fā)起連接。建立連接后雙方使用read,write或send,recv等API發(fā)送接收數(shù)據(jù)。

        本設計針對指令控制和文件傳輸制訂了相應的通信協(xié)議。當機頂盒收到標識為控制信息的字符串數(shù)據(jù)時進行字符串解析,判斷進行換臺鍵、方向鍵或其它操作,并將鍵值消息發(fā)送給機頂盒DVB軟件系統(tǒng),實現(xiàn)遙控器的功能。傳輸文件時使用了單獨的線程,使用不同于指令控制的端口,這樣在傳輸文件的同時不影響遙控操作。接收文件線程在收到要求傳輸?shù)奈募笮『臀募笤谥付窂絼?chuàng)建該文件并開始接收,如創(chuàng)建失敗則向手機返回出錯代碼。

        通過上述功能設計,機頂盒端藍牙應用程序實現(xiàn)了典型應用:開啟藍牙并搜索周邊可被發(fā)現(xiàn)的設備,開啟服務器端線程等待手機客戶端的接入。根據(jù)接收的指令內容響應相應的操作,開啟文件傳輸線程以接收傳輸?shù)奈募?/p>

        4 結論

        經(jīng)實驗和測試,本設計已實現(xiàn)手機與機頂盒之間的跨平臺無線互聯(lián):手機遙控機頂盒,二者之間彼此發(fā)現(xiàn)、連接、傳輸數(shù)據(jù)。

        本設計基于不同技術原理,在實踐中不斷摸索和改進程序,最終基于藍牙技術設計實現(xiàn)了手機與機頂盒之間的互聯(lián)互通,這為數(shù)字家電向網(wǎng)絡化、智能化發(fā)展提供了一種新方式。

        [1]劉書生,趙海.藍牙技術應用[M].沈陽:東北大學出版社,2001.6-9.

        [2]張祿林,雷春娟,郎曉虹.藍牙協(xié)議及其實現(xiàn)[M].北京:人民郵電出版社,2001.138-139.

        [3]郭克華.JavaME移動開發(fā)實例精講[M].北京:清華大學出版社,2010.1-4.

        [4]汪永松.J2ME手機高級編程[M].北京:機械工業(yè)出版社,2009.66-73.

        猜你喜歡
        機頂盒內核藍牙
        萬物皆可IP的時代,我們當夯實的IP內核是什么?
        藍牙音箱的直線之美
        強化『高新』內核 打造農(nóng)業(yè)『硅谷』
        安全使用機頂盒注意五點
        基于嵌入式Linux內核的自恢復設計
        Linux內核mmap保護機制研究
        簡單、易用,可玩性強Q AcousticsBT3藍牙音箱
        適合自己的才是最好的 德生(TECSUN) BT-50藍牙耳機放大器
        數(shù)字電視機頂盒軟件自動測試系統(tǒng)的開發(fā)及應用
        電子測試(2017年15期)2017-12-18 07:19:23
        緊急:藍牙指尖陀螺自燃!安全隱患頻出
        玩具世界(2017年8期)2017-02-06 03:01:38
        精品午夜福利在线观看| 国产亚洲精品综合99久久| 国产成人高清视频在线观看免费 | 日本成年一区久久综合| 69精品人人人人| 日韩av无码成人无码免费| 西西人体大胆视频无码| 亚洲av调教捆绑一区二区三区| 国产一区二区三区小说| 丰满老熟妇好大bbbbb| 日本理论片一区二区三区| 色偷偷亚洲精品一区二区| 97一期涩涩97片久久久久久久| 免费xxx在线观看| 亚洲片在线视频| av在线免费观看男人天堂| 亚洲中文字幕无码不卡电影 | 亚洲午夜成人精品无码色欲| 国产嫖妓一区二区三区无码| 超清无码AV丝袜片在线观看| 国产午夜免费啪视频观看| 国产精品中文久久久久久久| 欧美伊人久久大香线蕉在观| av免费网站在线免费观看| 国产午夜视频在线观看.| 激情影院内射美女| 少妇无码av无码去区钱| 亚洲一区中文字幕视频| 三年片免费观看影视大全视频| aaaaa级少妇高潮大片免费看 | 亚洲国产精品特色大片观看完整版| 尤物yw午夜国产精品视频 | 精品嫩模福利一区二区蜜臀| 成人精品视频一区二区| 97se亚洲国产综合自在线图片| 亚洲中国美女精品久久久| 少妇人妻综合久久中文字幕| 中国老妇女毛茸茸bbwbabes| 伊在人亚洲香蕉精品区麻豆 | 无尽动漫性视频╳╳╳3d| 日本av不卡一区二区三区|