亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)的制作方法

文檔序號:7763967閱讀:529來源:國知局
專利名稱:一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字家庭技術(shù)領(lǐng)域,具體涉及一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)。
背景技術(shù)
隨著以數(shù)字技術(shù)為核心的信息技術(shù)發(fā)展,引發(fā)了電視傳輸技術(shù)和方式的革命,催 生了數(shù)字家庭等技術(shù)的出現(xiàn)。在三網(wǎng)融合的呼聲越來越高的今天,以數(shù)字電視機(jī)頂盒為核 心的數(shù)字家庭網(wǎng)絡(luò)發(fā)展前景一片大好。各種數(shù)字家庭設(shè)備如手機(jī)、藍(lán)牙攝像頭等通過藍(lán)牙 接口連入互聯(lián)網(wǎng),數(shù)字家庭用戶則通過管理平臺對網(wǎng)絡(luò)設(shè)備進(jìn)行管理,比如遠(yuǎn)程監(jiān)控等等。 但是,我們發(fā)現(xiàn)數(shù)字電視及數(shù)字家庭三網(wǎng)融合、3C融合交互應(yīng)用中的多硬件接口驅(qū)動和通 訊問題是目前面臨的最大問題,其無法實現(xiàn)可擴(kuò)展性和方便硬件加載和升級,滿足不了數(shù) 字家庭技術(shù)接口發(fā)展需求。

發(fā)明內(nèi)容
本發(fā)明實施例提供了一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),出并實現(xiàn)適用于數(shù)字家 庭多硬件的藍(lán)牙驅(qū)動,以解決數(shù)字電視及家庭網(wǎng)關(guān)中的多硬件接口的并發(fā)兼容驅(qū)動問題, 增強(qiáng)數(shù)字電視用戶的體驗度。相應(yīng)的,本發(fā)明實施例提供了一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),包括藍(lán)牙協(xié)議模塊,用于實現(xiàn)高層應(yīng)用服務(wù),包括WAE/WAP規(guī)范,用來滿足在無線通信 網(wǎng)絡(luò)上開發(fā)應(yīng)用及服務(wù)的需求;TCP/UDP傳輸控制協(xié)議,對象交換協(xié)議OBEX,以及點對點協(xié) 議PPP,音頻/電話A/T命令,二進(jìn)制電話控制協(xié)議TCS-BIN,串口仿真協(xié)議RFC0MM,服務(wù)發(fā) 現(xiàn)協(xié)議SDP,邏輯鏈路控制和適配協(xié)議L2CAP,音頻、藍(lán)牙主機(jī)控制器接口 HCI,鏈路管理協(xié) 議(LMP),基帶BB協(xié)議,射頻RF協(xié)議;藍(lán)牙設(shè)備接口模塊,用于完成探測藍(lán)牙硬件設(shè)備,嵌入式接口模式初始化工作;設(shè)備驅(qū)動功能模塊,用于藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè)備間數(shù) 據(jù)通信就緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù),在數(shù)據(jù) 收發(fā)處理完畢,撤銷鏈路,系統(tǒng)各參數(shù)復(fù)位;藍(lán)牙設(shè)備模塊,對應(yīng)于各藍(lán)牙硬件設(shè)備。所述設(shè)備驅(qū)動功能模塊中的調(diào)用函數(shù)包括hci_rx_taSk函數(shù)和hci_tx_taSk函 數(shù),其中hci_rX_taSk用于負(fù)責(zé)接收數(shù)據(jù)的任務(wù),從hdev- > rx_q隊列中取數(shù)據(jù),然后 根據(jù)數(shù)據(jù)的類型調(diào)用上層函數(shù)處理;hci_tX_taSk用于負(fù)責(zé)發(fā)送數(shù)據(jù)的任務(wù),發(fā)送所有 connection中的ACL和SCO數(shù)據(jù),以及hdev- > raw_q中的數(shù)據(jù)包。所述多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)采用Linux內(nèi)核模塊LKM機(jī)制,根據(jù)LKM機(jī)制 設(shè)計出的藍(lán)牙設(shè)備驅(qū)動能屏蔽硬件差異的外部設(shè)備接口標(biāo)準(zhǔn)。本發(fā)明對比現(xiàn)有技術(shù)有如下的有益效果結(jié)合數(shù)字電視系統(tǒng)特點及Linux系統(tǒng)內(nèi) 核優(yōu)化技術(shù),采用LKM(Linux Kernel Module)機(jī)制,設(shè)計出的藍(lán)牙設(shè)備驅(qū)動能屏蔽硬件差 異的“硬件套接層”,靈活實現(xiàn)豐富的外部設(shè)備接口標(biāo)準(zhǔn),具有可擴(kuò)展性,方便硬件加載和升級。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例中的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)工作流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它 實施例,都屬于本發(fā)明保護(hù)的范圍。下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的描述。圖1示出了本發(fā)明的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括藍(lán)牙 協(xié)議模塊101、藍(lán)牙設(shè)備接口模塊102、設(shè)備驅(qū)動功能模塊103、藍(lán)牙設(shè)備模塊104,其中藍(lán)牙協(xié)議模塊101,用于實現(xiàn)高層應(yīng)用服務(wù),主要包括WAE/WAP規(guī)范,用來滿足在 無線通信網(wǎng)絡(luò)上開發(fā)應(yīng)用及服務(wù)的需求;TCP/UDP傳輸控制協(xié)議,對象交換協(xié)議OBEX,以及 點對點協(xié)議PPP,音頻/電話(A/T命令),二進(jìn)制電話控制協(xié)議(TCS-BIN),串口仿真協(xié)議 (RFCOMM),服務(wù)發(fā)現(xiàn)協(xié)議(SDP),邏輯鏈路控制和適配協(xié)議(L2CAP),音頻、藍(lán)牙主機(jī)控制器 接口(HCI),鏈路管理協(xié)議(LMP),基帶(BB)協(xié)議,射頻(RF)協(xié)議等等;藍(lán)牙設(shè)備接口模塊102,用于完成探測藍(lán)牙硬件設(shè)備,嵌入式接口模式初始化等工 作;設(shè)備驅(qū)動功能模塊103,用于藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè) 備間數(shù)據(jù)通信就緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù), hci_rX_taSk是負(fù)責(zé)接收數(shù)據(jù)的任務(wù),它從hdev- > rx_q隊列中取數(shù)據(jù),然后根據(jù)數(shù)據(jù)的 類型調(diào)用上層函數(shù)處理。hci_tx_task是負(fù)責(zé)發(fā)送數(shù)據(jù)的任務(wù),發(fā)送所有connection中的 ACL和SCO數(shù)據(jù),以及hdev- > raw_q中的數(shù)據(jù)包。數(shù)據(jù)收發(fā)處理完畢,撤銷鏈路,系統(tǒng)各參 數(shù)復(fù)位;藍(lán)牙設(shè)備模塊104,對應(yīng)于各藍(lán)牙硬件設(shè)備,這里的的藍(lán)牙設(shè)備模塊104和藍(lán)牙設(shè) 備接口模塊102用于獲取藍(lán)牙設(shè)備設(shè)備信息,如PID號、VID號等等。這里的設(shè)備驅(qū)動功能 模塊103實現(xiàn)是該藍(lán)牙驅(qū)動程序的核心功能。首先當(dāng)藍(lán)牙設(shè)備尋求接入主機(jī)時,主機(jī)控制 器HCI使用控制通道枚舉,并給其分配唯一設(shè)備地址(1-127),同時讀取該設(shè)備的class, subclass和protocol等設(shè)備描述符。如果讀取到的設(shè)備描述符如果讀取到的設(shè)備描述符 信息與hci_usb驅(qū)動程序注冊到USB核心的信息相匹配,則將設(shè)備與相應(yīng)的驅(qū)動程序進(jìn)行 綁定。調(diào)用hci_usb_driver中指定的探測函數(shù)hci_usb_probe,初始化結(jié)構(gòu)體hci_usb中 部分?jǐn)?shù)據(jù),并注冊HCI設(shè)備。并由函數(shù)module_init、hci_usb_init、usb_register依次執(zhí)行,usb_register 最終調(diào)用 usb_register_driver 完成驅(qū)動向內(nèi)核注冊。hci_usb_probe 模塊搜索外接藍(lán)牙設(shè)備,藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè)備間數(shù)據(jù)通信就 緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù),hci_rX_taSk是負(fù) 責(zé)接收數(shù)據(jù)的任務(wù),它從hdev- > rx_q隊列中取數(shù)據(jù),然后根據(jù)數(shù)據(jù)的類型調(diào)用上層函數(shù) 處理。hci_tx_task是負(fù)責(zé)發(fā)送數(shù)據(jù)的任務(wù),發(fā)送所有connection中的ACL和SCO數(shù)據(jù),以 及hdev- > raw_q中的數(shù)據(jù)包。數(shù)據(jù)收發(fā)處理完畢,撤銷鏈路,系統(tǒng)各參數(shù)復(fù)位。本發(fā)明中,將藍(lán)牙協(xié)議模塊101在系統(tǒng)中固定不變,不同的設(shè)備只需修改底層的 模塊,大大提高了設(shè)備的兼容性和可加載性。藍(lán)牙協(xié)議模塊分為三個層次。所述高層應(yīng)用 層。該層主要包括WAE/WAP規(guī)范,用來滿足在無線通信網(wǎng)絡(luò)上開發(fā)應(yīng)用及服務(wù)的需求;TCP/ UDP傳輸控制協(xié)議,對象交換協(xié)議OBEX,以及點對點協(xié)議PPP,音頻/電話(A/T命令)等 等。所述中間層協(xié)議。在該層中,包含了二進(jìn)制電話控制協(xié)議(TCS-BIN),串口仿真協(xié)議 (RFCOMM),服務(wù)發(fā)現(xiàn)協(xié)議(SDP),邏輯鏈路控制和適配協(xié)議(L2CAP),音頻。所述底層硬件 層,主要包含藍(lán)牙主機(jī)控制器接口(HCI),鏈路管理協(xié)議(LMP),基帶(BB)協(xié)議,射頻(RF) 協(xié)議。需要說明的是,這里的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)采用LKM(LinuXKernel Module)機(jī)制,設(shè)計出的藍(lán)牙設(shè)備驅(qū)動能屏蔽硬件差異的“硬件套接層”,靈活實現(xiàn)豐富的外 部設(shè)備接口標(biāo)準(zhǔn),具有可擴(kuò)展性,方便硬件加載和升級。通用層、體系結(jié)構(gòu)層、外圍層及層次 間接口層四部分組成。這里的藍(lán)牙驅(qū)動的硬件抽象層主要為嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一 的功能服務(wù)接口,并在各層的調(diào)用之間設(shè)計了統(tǒng)一的調(diào)用接口,便于擴(kuò)展和移植到其他硬 件平臺。在設(shè)計該多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)時采用的是面向?qū)ο蟮姆椒?,即一個設(shè)備 就是一個對象(net_deVice結(jié)構(gòu)),它內(nèi)部有自己的數(shù)據(jù)和方法。這里的通用層是不涉及體 系結(jié)構(gòu)及外圍端口寄存器具體操作的、能夠通用于各種硬件平臺的一層。當(dāng)擴(kuò)展或移植到 其他硬件平臺上時,上層無須修改,而只須進(jìn)行下層替換。該多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng) 方設(shè)計出來的設(shè)備驅(qū)動能夠適用于多硬件接口,兼容性強(qiáng)。需要說明的是,這里的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)將整個驅(qū)動將分為藍(lán)牙協(xié)議 層,藍(lán)牙設(shè)備接口層,設(shè)備驅(qū)動層,藍(lán)牙設(shè)備層四個部分。這里的藍(lán)牙協(xié)議層是不涉及體系結(jié)構(gòu)及外圍端口寄存器具體操作的、能夠通用于 各種硬件平臺的一層。通用層內(nèi)包括對統(tǒng)一的與編譯器無關(guān)的協(xié)議棧的定義,以及提供 給嵌入式操作系統(tǒng)內(nèi)核的對抽象設(shè)備的各種統(tǒng)一的操作服務(wù)的接口通用的實現(xiàn)部分。藍(lán)牙 協(xié)議層中抽象設(shè)備操作的實現(xiàn)中需要涉及的操作,是通過調(diào)用體預(yù)先統(tǒng)一定義的接口進(jìn)行 的。當(dāng)擴(kuò)展或移植到其他硬件平臺上時,上層無須修改,而只須進(jìn)行下層替換。這里的藍(lán)牙設(shè)備接口層主要對體系結(jié)構(gòu)相關(guān)的數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義, 包括寄存器上下文保存格式的定義以及對中斷異常向量起始地址、各種異常和中斷處理的 入口偏移等,并負(fù)責(zé)通用硬件抽象層功能中體系結(jié)構(gòu)相關(guān)部分的實現(xiàn)。實現(xiàn)的內(nèi)容主要是 對各個寄存器的訪問,對于中斷異常向量表的操作以及底層的中斷和異常處理。藍(lán)牙設(shè)備 接口層的實現(xiàn)是按照上層規(guī)定的調(diào)用接口來進(jìn)行的,因而針對不同的體系結(jié)構(gòu),上層藍(lán)牙 協(xié)議層無須進(jìn)行修改。針對某種體系結(jié)構(gòu)設(shè)計實現(xiàn)的藍(lán)牙設(shè)備接口層能夠通用于CPU內(nèi)核 體系結(jié)構(gòu)兼容的嵌入式微處理器的硬件平臺上,從而易于硬件抽象層在體系結(jié)構(gòu)兼容的嵌 入式微處理器硬件平臺上的擴(kuò)展和移植。
這里的設(shè)備驅(qū)動層主要為嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的功能服務(wù)接口,并在各 層的調(diào)用之間設(shè)計了統(tǒng)一的調(diào)用接口,便于擴(kuò)展和移植到其他硬件平臺。下層的功能實現(xiàn) 需要按照與上層確定的接口規(guī)范來進(jìn)行。其中某些上下層之間的接口,尤其是藍(lán)牙設(shè)備層 與上層之間的接口是使用宏定義的方式進(jìn)行的。這里的藍(lán)牙設(shè)備層主要包括對外圍I/O接口和設(shè)備屬性的定義,并且負(fù)責(zé)對各個 外圍I/O設(shè)備端口寄存器的訪問操作。藍(lán)牙設(shè)備層的實現(xiàn)需要根據(jù)上層定義的接口進(jìn)行。 通用硬件抽象層的藍(lán)牙設(shè)備層必須提供對存儲控制、總線控制、中斷控制器、定時器控制 器、UART等基本I/O接口和設(shè)備的I/O端口寄存器的訪問功能。本發(fā)明中所述的藍(lán)牙驅(qū)動程序遵循該設(shè)計方法。設(shè)計時采用的是面向?qū)ο蟮姆?法。一個設(shè)備就是一個對象(net_deViCe結(jié)構(gòu)),它內(nèi)部有自己的數(shù)據(jù)和方法。一個藍(lán)牙設(shè) 備最基本的方法有初始化。發(fā)送和接收。本發(fā)明所述藍(lán)牙驅(qū)動程序,最主要的工作就是完成設(shè)備驅(qū)動層。在Linux中所 有藍(lán)牙設(shè)備都抽象為一個接口,這個接口提供了對所有藍(lán)牙設(shè)備的操作集合。由數(shù)據(jù)結(jié) 構(gòu)struct usb_deVice來表示藍(lán)牙設(shè)備在內(nèi)核中的運行情況,即藍(lán)牙設(shè)備接口。數(shù)據(jù)結(jié)構(gòu) usb_device中有很多供系統(tǒng)訪問和協(xié)議層調(diào)用的設(shè)備方法,包括初始化,打開和關(guān)閉設(shè)備 的open和stop函數(shù),處理數(shù)據(jù)包發(fā)送的bt_Usb_data函數(shù),包含傳送數(shù)據(jù)的緩沖區(qū)、I/O端 點、消息隊列以及緩沖區(qū)的消息串和消息串讀寫位置索引、傳送緩沖區(qū)的指針以及表示設(shè) 備是否被激活、是否存在、是否打開燈狀態(tài)標(biāo)志位。在系統(tǒng)和驅(qū)動程序之間定義有專門的數(shù) 據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的傳遞。系統(tǒng)里支持對發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的緩存,提供對多協(xié)議的支持。本發(fā)明提出的藍(lán)牙驅(qū)動與USB core的通信時大多通過批量方式來傳送的,其中通 URB (usb request block) ijfffiiM的^專$^1intusb_submit_urb (urb_t*urb)
現(xiàn)數(shù)據(jù)間交換。在嵌入式系統(tǒng)中,所有設(shè)備驅(qū)動程序,都必須向內(nèi)核注冊器設(shè)備驅(qū)動。對于藍(lán)牙 USB設(shè)備驅(qū)動注冊,該過程首先創(chuàng)建一個指向uSb_driver類型的結(jié)構(gòu)體hci_usb_driver, 具體內(nèi)容包括指定驅(qū)動程序的名字(hci_usb)、探測函數(shù)(hci_uSb_probe)、斷開函數(shù) (hci_usb_disconnect)、中斷函數(shù)(hci_usb_suspend)、恢復(fù)函數(shù)(hci_usb_resume)、所支 持藍(lán)牙設(shè)備列表(bluetooth_ids)。并由函數(shù) module_init、hci_usb_init、usb_register 依次執(zhí)行,usb_register最終調(diào)用usb_register_drover完成驅(qū)動向內(nèi)核注冊。當(dāng)插入藍(lán)牙設(shè)備時,USB core就會調(diào)用probe方法來檢測被傳遞進(jìn)來的信息,以 確定該設(shè)備是不是和驅(qū)動程序匹配,同時填充StrUCt_USb_deViCe完成對該設(shè)備的初始 化,使Ι/ο,memory可用,喚醒設(shè)備,申請內(nèi)存空間,配置藍(lán)牙的Ι/ο,memory資源,注冊設(shè)備。 當(dāng)藍(lán)牙設(shè)備被拔出時,USB core就會調(diào)用disconnect方法來完成卸載。釋放藍(lán)牙設(shè)備和 PCI資源,停用PCI設(shè)備,使PCI設(shè)備中的設(shè)備指針賦空。驅(qū)動程序通過顯式的模塊初始化和消除函數(shù)注冊與注銷模塊,調(diào)用modulejnit 來初始化一個模塊,并在卸載時調(diào)用moduelexit函數(shù)。如圖2所示,基于本發(fā)明實施例中的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)中的方法流程 圖,其可包括系統(tǒng)初始化、建立物理鏈路、數(shù)據(jù)傳送和接收等。首先系統(tǒng)初始化,嵌入式接口 模式設(shè)置初始化,藍(lán)牙模塊初始化。hci_USb_pr0be模塊搜索外接藍(lán)牙設(shè)備,藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè)備間數(shù)據(jù)通信就緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù),hci_rx_task 是負(fù)責(zé)接收數(shù)據(jù)的任務(wù),它從hdev- > rx_q隊列中取數(shù)據(jù),然后根據(jù)數(shù)據(jù)的類型調(diào)用上層 函數(shù)處理。hci_tx_task是負(fù)責(zé)發(fā)送數(shù)據(jù)的任務(wù),發(fā)送所有connection中的ACL和SCO數(shù) 據(jù),以及hdeV->raW_q中的數(shù)據(jù)包。數(shù)據(jù)收發(fā)處理完畢,撤銷鏈路,系統(tǒng)各參數(shù)復(fù)位。具 體流程如下S201 系統(tǒng)初始化,嵌入式接口模式設(shè)置于初始化,藍(lán)牙模塊初始化;S202 藍(lán)牙設(shè)備搜尋,周圍有無藍(lán)牙設(shè)備;S203 藍(lán)牙設(shè)備建立物理鏈接、建立L2CAP邏輯鏈路、設(shè)備間數(shù)據(jù)通信就緒、等待 數(shù)據(jù)收發(fā)事件;S204 有無數(shù)據(jù)交換事件;S205:判斷收發(fā)類型;S206 數(shù)據(jù)接收處理HCI包數(shù)據(jù)接收、HCI解包、L2CAP解包、向上層端口發(fā)送數(shù) 據(jù);S207 數(shù)據(jù)發(fā)送處理從上層端口接收數(shù)據(jù)、L2CAP打包、HCI打包、HCI包數(shù)據(jù)發(fā) 送;S208 數(shù)據(jù)收發(fā)處理完畢,撤銷L2CAP邏輯鏈路,系統(tǒng)各參數(shù)復(fù)位。需要說的是,這里的當(dāng)藍(lán)牙設(shè)備插入主機(jī)時,主機(jī)控制器HCI使用控制通道枚舉, 并給其分配唯一設(shè)備地址(1-127),同時讀取該設(shè)備的class,subclass和protocol等設(shè) 備描述符。如果讀取到的設(shè)備描述符如果讀取到的設(shè)備描述符信息與hci_usb驅(qū)動程序注 冊到USB核心的信息相匹配,則將設(shè)備與相應(yīng)的驅(qū)動程序進(jìn)行綁定。調(diào)用hCi_USb_driVer 中指定的探測函數(shù)hci_uSb_probe,初始化結(jié)構(gòu)體hci_usb中部分?jǐn)?shù)據(jù),并注冊HCI設(shè)備。綜上,本發(fā)明具有以下有益效果1、實現(xiàn)了數(shù)字家庭的藍(lán)牙驅(qū)動程序。數(shù)字家庭藍(lán) 牙設(shè)備可以通過該驅(qū)動向內(nèi)核提供注冊信息,從而接入家庭網(wǎng)絡(luò)進(jìn)行通信。拓寬了數(shù)字家 庭業(yè)務(wù)范圍。2采用LKM(Linux Kernel Module)機(jī)制,設(shè)計出屏蔽硬件差異的“硬件套接 層”,靈活實現(xiàn)豐富的外部設(shè)備接口標(biāo)準(zhǔn)。3充分的利用面向?qū)ο蠹夹g(shù)的強(qiáng)大功能,該驅(qū)動程 序具有平臺無關(guān)性、硬件接口無關(guān)性等特點。4提供跨硬件和OS平臺的透明性的藍(lán)牙驅(qū)動 程序,可以工作于多平臺或OS環(huán)境,這樣我們的驅(qū)動程序可以方便的在不同藍(lán)牙設(shè)備和不 同操作系統(tǒng)中運行。需要說明的是,上述系統(tǒng)和系統(tǒng)內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由 于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處 不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,存儲介 質(zhì)可以包括只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。以上對本發(fā)明實施例所提供的一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),本文中應(yīng)用了 具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本 發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的 限制。
權(quán)利要求
1.一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),其特征在于,包括藍(lán)牙協(xié)議模塊,用于實現(xiàn)高層應(yīng)用服務(wù),包括WAE/WAP規(guī)范,用來滿足在無線通信網(wǎng)絡(luò) 上開發(fā)應(yīng)用及服務(wù)的需求;TCP/UDP傳輸控制協(xié)議,對象交換協(xié)議OBEX,以及點對點協(xié)議 PPP,音頻/電話A/T命令,二進(jìn)制電話控制協(xié)議TCS-BIN,串口仿真協(xié)議RFC0MM,服務(wù)發(fā)現(xiàn) 協(xié)議SDP,邏輯鏈路控制和適配協(xié)議L2CAP,音頻、藍(lán)牙主機(jī)控制器接口 HCI,鏈路管理協(xié)議 (LMP),基帶BB協(xié)議,射頻RF協(xié)議;藍(lán)牙設(shè)備接口模塊,用于完成探測藍(lán)牙硬件設(shè)備,嵌入式接口模式初始化工作; 設(shè)備驅(qū)動功能模塊,用于藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè)備間數(shù)據(jù)通 信就緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù),在數(shù)據(jù)收發(fā) 處理完畢,撤銷鏈路,系統(tǒng)各參數(shù)復(fù)位;藍(lán)牙設(shè)備模塊,對應(yīng)于各藍(lán)牙硬件設(shè)備。
2.如權(quán)利要求1所述的多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),其特征在于,所述設(shè)備驅(qū)動功 能模塊中的調(diào)用函數(shù)包括hci_rx_task函數(shù)和hci_tx_task函數(shù),其中hci_rx_task用于 負(fù)責(zé)接收數(shù)據(jù)的任務(wù),從hdev- > rx_q隊列中取數(shù)據(jù),然后根據(jù)數(shù)據(jù)的類型調(diào)用上層函數(shù) 處理;hci_tx_task用于負(fù)責(zé)發(fā)送數(shù)據(jù)的任務(wù),發(fā)送所有connection中的ACL和SCO數(shù)據(jù), 以及hdev- > raw_q中的數(shù)據(jù)包。
3.如權(quán)利要求1所述的設(shè)計方法,其特征在于,所述多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng)采 用Linux內(nèi)核模塊LKM機(jī)制,根據(jù)LKM機(jī)制設(shè)計出的藍(lán)牙設(shè)備驅(qū)動能屏蔽硬件差異的外部 設(shè)備接口標(biāo)準(zhǔn)。
全文摘要
本發(fā)明實施例公開了一種多硬件兼容藍(lán)牙設(shè)備驅(qū)動系統(tǒng),包括藍(lán)牙協(xié)議模塊,用于實現(xiàn)高層應(yīng)用服務(wù),包括WAE/WAP規(guī)范,用來滿足在無線通信網(wǎng)絡(luò)上開發(fā)應(yīng)用及服務(wù)的需求;藍(lán)牙設(shè)備接口模塊,用于完成探測藍(lán)牙硬件設(shè)備,嵌入式接口模式初始化工作;設(shè)備驅(qū)動功能模塊,用于藍(lán)牙設(shè)備建立物理鏈接,建立L2CAP邏輯鏈路,設(shè)備間數(shù)據(jù)通信就緒,等待數(shù)據(jù)收發(fā)事件,啟動數(shù)據(jù)通信,然后根據(jù)收發(fā)類型調(diào)用不同函數(shù),在數(shù)據(jù)收發(fā)處理完畢,撤銷鏈路,系統(tǒng)各參數(shù)復(fù)位;藍(lán)牙設(shè)備模塊,對應(yīng)于各藍(lán)牙硬件設(shè)備。通過實施本發(fā)明,可實現(xiàn)豐富的外部設(shè)備接口標(biāo)準(zhǔn),具有可擴(kuò)展性,方便硬件加載和升級。
文檔編號H04B5/00GK102082968SQ20101052874
公開日2011年6月1日 申請日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者戴洪學(xué), 朱建寶, 羅笑南, 陳任 申請人:廣東星海數(shù)字家庭產(chǎn)業(yè)技術(shù)研究院有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1