成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux無線網絡技術:Bluetooth

運維 系統運維
Bluetooth 是用于替換電纜的短程無線技術,支持 723 kbps(不對稱)和 432 kbps(對稱)的速度,可以傳輸數據和語音。Bluetooth 設備的傳輸范圍大約 10 米(30 英尺)。

Bluetooth 是用于替換電纜的短程無線技術,支持 723 kbps(不對稱)和 432 kbps(對稱)的速度,可以傳輸數據和語音。Bluetooth 設備的傳輸范圍大約 10 米(30 英尺)。

BlueZ 是官方 Linux Bluetooth 棧,由主機控制接口(Host Control Interface ,HCI)層、Bluetooth 協議核心、邏輯鏈路控制和適配協議(Logical Link Control and Adaptation Protocol,L2CAP)、SCO 音頻層、其他 Bluetooth 服務、用戶空間后臺進程以及配置工具組成。

Bluetooth 規范支持針對 Bluetooth HCI 數據分組的 UART(通用異步接收器/傳送器)和 USB 傳輸機制。BlueZ 棧對這兩個傳輸機制(drivers/Bluetooth/)都支持。BlueZ BNEP(Bluetooth 網絡封裝協議)實現了 Bluetooth 上的以太網仿真,這使 TCP/IP 可以直接運行于 Bluetooth 之上。BNEP 模塊(net/bluetooth/bnep/)和用戶模式 pand 后臺進程實現了 Bluetooth 個人區域網(PAN)。BNEP 使用 register_netdev 將自己作為以太網設備注冊到 Linux 網絡層,并使用上面為 WLAN 驅動程序描述的 netif_rx 來填充 sk_buffs 并將其發送到協議棧。BlueZ RFCOMM(net/bluetooth/rfcomm/) 提供 Bluetooth 上的串行仿真,這使得串行端口應用程序(如 minicom)和協議(如點對點協議(PPP))不加更改地在 Bluetooth 上運行。RFCOMM 模塊和用戶模式 dund 后臺進程實現了 Bluetooth 撥號網絡。下面的列表給出了配置 Bluetooth 上的各種協議服務所必需的 BlueZ 模塊、實用程序、后臺進程以及配置文件。

下一步,考慮 Bluetooth CF 卡、Bluetooth USB 適配器、具有內置 CSR Bluetooth 芯片組的設備以及 Sony Bluetooth 耳機的示例,了解它們在 Linux 下是如何工作的。

Sharp Bluetooth CF 卡

Sharp Bluetooth CF 卡使用 UART 傳輸器來傳送 HCI 數據分組。除了 serial_cs 是與 Linux PCMCIA 核心交互的卡服務驅動程序之外,Linux PCMCIA/CF 層與 Sharp 卡的其他操作系統的交互類似于針對 Intersil WLAN CF 卡所解釋的交互。serial_cs 驅動程序(將在下面的 “GSM 上的 Linux GPRS 和數據”一節中做進一步解釋)模擬了 Sharp CF 卡上的串行端口。BlueZ hci_uart 鏈接驅動程序與 Bluetooth UART 通道交互并將模擬的串行端口連接到 BlueZ 棧。

下面的列表給出了當卡插入時必須加載的模塊。其他的 Bluetooth CF 卡,例如 Pretec CompactBT 卡和 Socket Bluetooth 卡,具有 UART 接口,但是又有各自的卡服務驅動程序(分別是 drivers/bluetooth/dtl1_cs.c 和 drivers/bluetooth/btuart_cs.c)。在本文后面,您將發現更多關于 Bluetooth UART 傳輸器的信息。

/etc/pcmcia/config 中針對 Sharp Bluetooth CF 卡的條目:

card "SHARP Bluetooth Card"

version "SHARP", "Bluetooth Card"

bind "serial_cs"

將要加載的必需的內核模塊:

insmod serial_cs

insmod bluez

insmod l2cap

insmod hci_uart

insmod bnep (for pand)

insmod rfcomm (for dund)

BlueZ 用戶空間后臺進程、實用程序以及配置文件:

hciattach ttySx any [baud_rate] [flow]

hciconfig -a:檢查 HCI 接口。

hcitool -a hci0 scan 'flush:發現其他設備。

hcidump:HCI 嗅探器。

hcid:HCI 后臺進程。

/etc/bluetooth/hcid.conf:hcid 所用的 HCI 后臺進程配置文件,它指定了鏈接模式(主或從)、鏈接策略、詢問和掃描模式,等等。

/etc/bluetooth/pinDB:BlueZ PIN 數據庫。

hcidump:Service Discovery Protocol 后臺進程。

pand:在 Bluetooth 上運行 TCP/IP(--listen 用于服務器,--connect 用于客戶機)。

/etc/bluetooth/pan/dev-up:pand 在激活 TCP/IP 時調用此腳本。此腳本能夠包含一個類似于 ifconfig bnep0 的命令,用以為 Bluetooth 接口配置 IP 地址。

hcidump:在 Bluetooth RFCOMM 上運行 PPP(--listen 用于服務器,--connect 用于客戶機)。

Belkin Bluetooth USB 適配器

Belkin Bluetooth USB 適配器擁有一個 Bluetooth CSR 芯片組,并使用 USB 傳輸器來傳輸 HCI 數據分組。因此,Linux USB 層、BlueZ USB 傳輸器驅動程序以及 BlueZ 協議棧是使設備工作的主要內核層。現在,您將了解到三層之間如何交互以使 Linux 網絡應用程序在這個設備上運行。

Linux USB 子系統類似于 PCMCIA 子系統,它們都有與移動設備交互的主機控制器設備驅動程序,并且都包含一個向主機控制器和單個設備的設備驅動程序提供服務的核心層。USB 主機控制器遵循兩個標準之一:UHCI(通用主機控制器接口)或 OHCI(開放式主機控制器接口)。由于具有 PCMCIA,單個 USB 設備的 Linux 設備驅動程序不依賴于主機控制器。經由 USB 設備傳輸的數據分為四種類型(或管道):

Control

Interrupt

Bulk

Isochronous

前兩個通常用于小型消息而后兩個則用于較大型的消息。

USB 設備插入時,主機控制器使用控制管道來枚舉它并給它分配設備地址(1 到 127)。主機控制器設備驅動程序讀取的設備描述符包含關于設備的信息,例如 class、subclass 和 protocol。Linux 的 usbcore 內核模塊支持 USB 主機控制器和 USB 設備。并包含 USB 設備驅動程序可以使用的函數和數據結構。USB 驅動程序利用 usbcore 及自己的 class/subclass/protocol 信息(請參閱 include/linux/usb.h 中的 struct usb_driver)注冊了兩個入口點:probe 和 disconnect。當相應的 USB 設備被附加時,usbcore 用枚舉期間從設備配置描述符中讀取的 class 信息來匹配已注冊的 class 信息,并將設備與相應的驅動程序綁定。這個核心使用一種叫做 USB Request Block 或 URB(在 include/linux/usb.h 中定義)的數據結構,來異步地管理主機和設備之間的數據傳輸。設備驅動程序使用這些例程來請求各種類型的數據傳輸(control、interrupt、bulk 或 isochronous)。傳送請求完成后,核心會使用以前注冊的回調函數來通知驅動程序。

針對 Bluetooth USB 設備而言,HCI 命令使用 Control 管道傳輸,HCI 事件使用 Interrupt 管道,Asynchronous (ACL) 數據使用 Bulk 管道,而 Synchronous (SCO) 音頻數據使用 Isochronous 管道。Bluetooth 規范為 Bluetooth USB 設備定義了 class/subclass/protocol 代碼 0xE/0x01/0x01。BlueZ USB 傳輸驅動程序(drivers/bluetooth/hci_usb.c)將該 class/subclass/protocol 信息注冊到 Linux USB 核心。Belkin USB 適配器插入時,主機控制器設備驅動程序會枚舉它。因為在枚舉期間從適配器讀取的設備描述符與 hci_usb 驅動程序注冊到 USB 核心的信息相匹配,所以這個驅動程序可附加到 Belkin USB 設備。由 hci_usb 驅動程序從以上描述的各個端點讀取的 HCI、ACL 和 SCO 數據被透明傳送到 BlueZ 協議棧。一旦做完這些,通過使用以上描述的 BlueZ 服務和工具,Linux TCP/IP 應用程序就可以運行在 BlueZ BNEP 上,而串行應用程序則可以運行在 BlueZ RFCOMM 上。

具有內置 CSR Bluetooth 芯片組的母板

現在,關注一下具有內置 Bluetooth 芯片組的設備上的 Bluetooth 網絡數據流。考慮一種擁有內置 CSR Bluetooth 芯片組的手持設備與使用 UART 接口的系統的連接。針對 UART 接口而言,在 Bluetooth 設備和系統之間傳輸 HCI 數據分組的可用協議有 BlueCore Serial Protocol (BCSP)、H4/UART 和 H3/RS232。而 H4 充當通過 UART 傳輸 Bluetooth 數據的標準方法。UART 是在規范中定義的來自 CSR 的專有 BCSP 協議,支持錯誤校驗和重傳。BCSP 用在基于 CSR BlueCore 芯片的非 USB 設備上,包括 PCMCIA 和 CF 卡。BlueZ 支持 BCSP 和 H4。

這個母板的 UART 通道使用的傳統串行驅動程序可以從 BlueZ UART 傳輸驅動程序上收發數據。如果使用 BSCP 協議將 CSR 芯片設計為封裝 HCI 數據分組,您必須使用 hciattach (hciattach ttySx bcsp) 通知 BlueZ 鏈接驅動程序,在這里 x 是連接到 CSR 芯片組的 UART 通道號。現在 hci_uart 與 CSR 芯片交互并且傳送 Bluetooth 數據往返于 BlueZ 棧。

Sony HBH-30 Bluetooth 耳機

前面的 Bluetooth 設備示例展示了網絡數據流。現在,通過查看 Sony Ericsson Bluetooth 耳機來考慮 Bluetooth 音頻 (SCO) 數據的傳輸。在耳機可以開始與 Linux 設備通信以前,它必須被 Linux 設備上的 Bluetooth 鏈路層檢測出來。因此,您必須將耳機置于發現模式(通過按下耳機上的一個按鈕)。另外,您需要通過 Linux 設備上的 BlueZ 配置耳機的 PIN。Linux Bluetooth 設備上使用 BlueZ SCO API 的應用程序現在可以發送音頻數據到耳機上。音頻數據應當是耳機 可以理解的格式(例如,Sony 耳機的 A-law PCM [Pulse Code Modulation] 格式)。有些公共主域實用程序可以將音頻(甚至文本文件)轉換為各種 PCM 格式。

Bluetooth 芯片組除擁有 HCI 傳輸接口以外還有 PCM 接口 PIN。例如,如果設備同時支持 GSM 和 Bluetooth,GSM 芯片組的 PCM 線路可以直接與 Bluetooth 芯片的 PCM 音頻線路連接。然后,您可能不得不在 Linux 設備上配置 Bluetooth 芯片組,以通過 HCI 傳輸接口而不是 PCM 接口收發 SCO 音頻數據分組。

【編輯推薦】

  1. Linux無線網絡技術:GPRS、GSM
  2. Linux無線網絡技術:WLAN
  3. Linux下NFS服務server
責任編輯:趙寧寧 來源: 賽迪網
相關推薦

2009-10-19 10:18:47

Linux無線網絡技術WLAN

2009-10-19 10:27:48

Linux無線網絡技術GPRS

2018-11-16 11:20:20

WIFI無線網絡技術

2010-09-28 08:50:05

無線網絡

2009-04-22 09:47:00

無線網絡無線網絡技術

2009-07-28 10:52:45

醫院無線網絡

2010-09-10 09:08:07

無線網絡技術對比

2010-08-30 09:13:02

無線網絡

2010-09-28 09:58:16

802.11n

2010-09-10 10:48:42

2009-11-05 11:09:33

無線網狀網

2009-11-05 14:45:45

無線網絡技術

2010-09-10 13:12:30

無線網絡

2023-04-26 11:18:02

2010-04-07 10:35:55

無線網絡技術應用

2010-04-07 10:51:59

無線網絡技術應用

2010-08-27 12:56:35

CDMA技術

2010-09-16 13:36:52

無線網絡技術

2010-04-07 10:46:11

無線網絡技術應用

2010-03-11 12:14:19

CDMA無線網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日夜夜免费精品视频 | 中文字幕一区二区三区在线观看 | 欧美日韩中文字幕 | 伊人狠狠| 精品国产1区2区3区 一区二区手机在线 | 91在线视频播放 | 91在线影院 | 中文字幕在线观看 | 色女人天堂 | 啪啪免费网 | 91se在线 | 亚洲日韩中文字幕一区 | 99视频在线免费观看 | 韩日一区 | 色男人的天堂 | 日韩精品视频在线观看一区二区三区 | 日韩手机在线看片 | 欧美成人手机视频 | 伊人网99 | 日日操夜夜操视频 | 中文字幕日韩一区二区 | 99福利视频导航 | 国产精品成人一区 | 日韩欧美在线观看 | 中文字幕在线网 | 亚洲国产精品久久久久秋霞不卡 | 欧美一区在线视频 | av日韩在线播放 | 99精品视频在线观看 | 国产超碰人人爽人人做人人爱 | 先锋资源站| 久久久久久久国产精品 | 国产乱码精品一区二区三区中文 | 羞羞的视频在线看 | 精品国产乱码久久久久久88av | 蜜桃特黄a∨片免费观看 | 日日爱夜夜操 | 亚洲一区久久 | 日韩av一二三区 | 久久国产精品久久久久久 | 久久久久久成人 |