今天找了一下 關於 Bluetooth 的標準 Service/Profile 的 UUID ,但是看了一下 Specification Doucments 都只有 16bits 長,這是所謂的UUID16格式
後來才了解,原來Bluetooth 將UUID 的部份固定,只取16bits 作為各種 Service 的區分,這樣可以節省分析 SDP Record and 與程式空間,避免增加 Bluetooth Device 的成本。
底下的值可以從 windows XP or Server 2003 SDK 的 bt_sdp.h or BlueZ 的 sdp.h(UUID16) 中找到定義,可以觀察出 下列的固定序列除了替換 XXXX部份
‘{0000xxxx-0000-1000-8000-00805F9B34FB}’,而XXXX 部份就是 所謂的 UUID16 定義。
Protocols UUID http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm BASE UUID 00000000-0000-1000-8000-00805F9B34FB SDP_PROTOCOL_UUID = '{00000001-0000-1000-8000-00805F9B34FB}'; UDP_PROTOCOL_UUID = '{00000002-0000-1000-8000-00805F9B34FB}'; RFCOMM_PROTOCOL_UUID = '{00000003-0000-1000-8000-00805F9B34FB}'; TCP_PROTOCOL_UUID = '{00000004-0000-1000-8000-00805F9B34FB}'; TCSBIN_PROTOCOL_UUID = '{00000005-0000-1000-8000-00805F9B34FB}'; TCSAT_PROTOCOL_UUID = '{00000006-0000-1000-8000-00805F9B34FB}'; OBEX_PROTOCOL_UUID = '{00000008-0000-1000-8000-00805F9B34FB}'; IP_PROTOCOL_UUID = '{00000009-0000-1000-8000-00805F9B34FB}'; FTP_PROTOCOL_UUID = '{0000000A-0000-1000-8000-00805F9B34FB}'; HTTP_PROTOCOL_UUID = '{0000000C-0000-1000-8000-00805F9B34FB}'; WSP_PROTOCOL_UUID = '{0000000E-0000-1000-8000-00805F9B34FB}'; BNEP_PROTOCOL_UUID = '{0000000F-0000-1000-8000-00805F9B34FB}'; UPNP_PROTOCOL_UUID = '{00000010-0000-1000-8000-00805F9B34FB}'; HID_PROTOCOL_UUID = '{00000011-0000-1000-8000-00805F9B34FB}'; HCCC_PROTOCOL_UUID = '{00000012-0000-1000-8000-00805F9B34FB}'; HCDC_PROTOCOL_UUID = '{00000014-0000-1000-8000-00805F9B34FB}'; HN_PROTOCOL_UUID = '{00000016-0000-1000-8000-00805F9B34FB}'; AVCTP_PROTOCOL_UUID = '{00000017-0000-1000-8000-00805F9B34FB}'; AVDTP_PROTOCOL_UUID = '{00000019-0000-1000-8000-00805F9B34FB}'; CMPT_PROTOCOL_UUID = '{0000001B-0000-1000-8000-00805F9B34FB}'; UDI_C_PLANE_PROTOCOL_UUID = '{0000001D-0000-1000-8000-00805F9B34FB}'; L2CAP_PROTOCOL_UUID = '{00000100-0000-1000-8000-00805F9B34FB}'; Ref. Service class IDs http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'; BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'; PublicBrowseGroupServiceClass_UUID = '{00001002-0000-1000-8000-00805F9B34FB}'; SerialPortServiceClass_UUID = '{00001101-0000-1000-8000-00805F9B34FB}'; LANAccessUsingPPPServiceClass_UUID = '{00001102-0000-1000-8000-00805F9B34FB}'; DialupNetworkingServiceClass_UUID = '{00001103-0000-1000-8000-00805F9B34FB}'; IrMCSyncServiceClass_UUID = '{00001104-0000-1000-8000-00805F9B34FB}'; OBEXObjectPushServiceClass_UUID = '{00001105-0000-1000-8000-00805F9B34FB}'; OBEXFileTransferServiceClass_UUID = '{00001106-0000-1000-8000-00805F9B34FB}'; IrMCSyncCommandServiceClass_UUID = '{00001107-0000-1000-8000-00805F9B34FB}'; HeadsetServiceClass_UUID = '{00001108-0000-1000-8000-00805F9B34FB}'; CordlessTelephonyServiceClass_UUID = '{00001109-0000-1000-8000-00805F9B34FB}'; AudioSourceServiceClass_UUID = '{0000110A-0000-1000-8000-00805F9B34FB}'; AudioSinkServiceClass_UUID = '{0000110B-0000-1000-8000-00805F9B34FB}'; AVRemoteControlTargetServiceClass_UUID = '{0000110C-0000-1000-8000-00805F9B34FB}'; AdvancedAudioDistributionServiceClass_UUID = '{0000110D-0000-1000-8000-00805F9B34FB}'; AVRemoteControlServiceClass_UUID = '{0000110E-0000-1000-8000-00805F9B34FB}'; VideoConferencingServiceClass_UUID = '{0000110F-0000-1000-8000-00805F9B34FB}'; IntercomServiceClass_UUID = '{00001110-0000-1000-8000-00805F9B34FB}'; FaxServiceClass_UUID = '{00001111-0000-1000-8000-00805F9B34FB}'; HeadsetAudioGatewayServiceClass_UUID = '{00001112-0000-1000-8000-00805F9B34FB}'; WAPServiceClass_UUID = '{00001113-0000-1000-8000-00805F9B34FB}'; WAPClientServiceClass_UUID = '{00001114-0000-1000-8000-00805F9B34FB}'; PANUServiceClass_UUID = '{00001115-0000-1000-8000-00805F9B34FB}'; NAPServiceClass_UUID = '{00001116-0000-1000-8000-00805F9B34FB}'; GNServiceClass_UUID = '{00001117-0000-1000-8000-00805F9B34FB}'; DirectPrintingServiceClass_UUID = '{00001118-0000-1000-8000-00805F9B34FB}'; ReferencePrintingServiceClass_UUID = '{00001119-0000-1000-8000-00805F9B34FB}'; ImagingServiceClass_UUID = '{0000111A-0000-1000-8000-00805F9B34FB}'; ImagingResponderServiceClass_UUID = '{0000111B-0000-1000-8000-00805F9B34FB}'; ImagingAutomaticArchiveServiceClass_UUID = '{0000111C-0000-1000-8000-00805F9B34FB}'; ImagingReferenceObjectsServiceClass_UUID = '{0000111D-0000-1000-8000-00805F9B34FB}'; HandsfreeServiceClass_UUID = '{0000111E-0000-1000-8000-00805F9B34FB}'; HandsfreeAudioGatewayServiceClass_UUID = '{0000111F-0000-1000-8000-00805F9B34FB}'; DirectPrintingReferenceObjectsServiceClass_UUID = '{00001120-0000-1000-8000-00805F9B34FB}'; ReflectedUIServiceClass_UUID = '{00001121-0000-1000-8000-00805F9B34FB}'; BasicPringingServiceClass_UUID = '{00001122-0000-1000-8000-00805F9B34FB}'; PrintingStatusServiceClass_UUID = '{00001123-0000-1000-8000-00805F9B34FB}'; HumanInterfaceDeviceServiceClass_UUID = '{00001124-0000-1000-8000-00805F9B34FB}'; HardcopyCableReplacementServiceClass_UUID = '{00001125-0000-1000-8000-00805F9B34FB}'; HCRPrintServiceClass_UUID = '{00001126-0000-1000-8000-00805F9B34FB}'; HCRScanServiceClass_UUID = '{00001127-0000-1000-8000-00805F9B34FB}'; CommonISDNAccessServiceClass_UUID = '{00001128-0000-1000-8000-00805F9B34FB}'; VideoConferencingGWServiceClass_UUID = '{00001129-0000-1000-8000-00805F9B34FB}'; UDIMTServiceClass_UUID = '{0000112A-0000-1000-8000-00805F9B34FB}'; UDITAServiceClass_UUID = '{0000112B-0000-1000-8000-00805F9B34FB}'; AudioVideoServiceClass_UUID = '{0000112C-0000-1000-8000-00805F9B34FB}'; PnPInformationServiceClass_UUID = '{00001200-0000-1000-8000-00805F9B34FB}'; GenericNetworkingServiceClass_UUID = '{00001201-0000-1000-8000-00805F9B34FB}'; GenericFileTransferServiceClass_UUID = '{00001202-0000-1000-8000-00805F9B34FB}'; GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'; GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'; GenericTelephonyServiceClass_UUID = '{00001204-0000-1000-8000-00805F9B34FB}'; UPnPServiceClass_UUID = '{00001205-0000-1000-8000-00805F9B34FB}'; UPnPIpServiceClass_UUID = '{00001206-0000-1000-8000-00805F9B34FB}'; ESdpUPnPIpPanServiceClass_UUID = '{00001300-0000-1000-8000-00805F9B34FB}'; ESdpUPnPIpLapServiceClass_UUID = '{00001301-0000-1000-8000-00805F9B34FB}'; EdpUPnpIpL2CAPServiceClass_UUID = '{00001302-0000-1000-8000-00805F9B34FB}'; Technorati tags: Bluetooth, SDP, UUID, UUID16, Protocol
ref. An Introduction to Bluetooth programming in GNU/Linux – Chapter 4. Bluetooth programming in C with BlueZ
4.4. Service Discovery Protocol
我想請教一下
如果說我現在要做手機藍芽遙控車
用的是8051晶片
要如何下手
可以一起討論嗎一下嗎??
首先你要選擇一個 BT Module
透過8051 你應該要選擇一個帶有 UART 介面的 BT module 然後透過UART 去接
用 CSR 的話 除了 標準的HCI 外, 還有他自己的Protocol 可用, 這會比HCI用起來更簡單一些些, 透過HCI的好處是不限定BT chip vendor
然後看你手機控制遙控汽車的 BT Profile 是哪個, 我想應該是 RFCOMM Profile,
這個連起來後你就可以直接從UART 得到 手機來的 packet
網路上有某篇論文詳細 討論這個過程 你可以參考一下
按一下以存取 thesis.pdf
不好意思
最近在忙考試所以沒有看到
真的很對不起
我用的晶片是HL-MD08R-C2A
http://www.hotlife.com.tw/HL-MD08R-C2A.htm
我還在實驗手機對晶片的連線
不過不知道手機藍芽的城市是如何下手?
像要請教一下
謝謝感謝您
手機就要看你的手機是啥了, 要找OS對應的 API 去弄, 然後你用的 BT Moduile 是CSR的BC4 可以用我前一篇回你的內容, 這邊我只會提一些資料 詳細的東西可能你還是要自己花時間去實驗, K Specification
我後來看一下你那Module 的網頁 他是很簡單用的 他只有SPP(RFCOMM) Profile, 如果你用 Android 手機的話, 應該可以用他網頁上的範例程式 稍微修改一下 就可以了
然後8051 那一端只是簡單的UART接收, 因為這個Module 已經把全部功能做好了, 你只需要透過他提供的 Windows configuration Tools 去設定你想要用的Baud等資料
如果你BT module 根手機連成功後就是一般的 serial(UART) communicaiton. 你可以想像成這個 Module 就是虛擬為一條DB9 的 Cable這樣而已
摁摁
大概知道了
謝謝你
下次還有問題再提問
感謝
大大你好,
請問一下SPP跟RFCOMM的關係是怎樣的?
在網上看了很多東西都搞不懂…他們好像是同一個東西但又好像有分別…
用SPP的UUID和用RFCOMM的UUID又有什麼分別?
謝謝
你可以看一下我文內的連結 可以查到一個是 Profile Name 一個是 Service Name, 有SPP就有RFCOMM, SPP是固定使用 RFCOMM Channel 1
UUID的分別連結內也有, 這篇也有列出兩者的不同, 參考這 有人寫在 Android 如何使用 http://www.javaworld.com.tw/jute/post/view?bid=26&id=275260
另一篇 不知道是上面那個Steven 做的?
http://cheng-min-i-taiwan.blogspot.com/2012/01/android-bluetooth-hellobtuartrs-232.html
嗯, 了解更多了~
感謝大大提供的LINK, 很有用, 我也正是在寫ANDROID啊!!
大大你好:
想請問一下
手機對手機的uuid要使用哪個?
有點晚了, 不過我想你要先搞清楚你要怎樣的方式通訊, UUID 是用來找Service 的, 只要對方手機有該Service 就可以, 如果你手機可以自己建 BT Service 你自己也可以創一個UUID, 不然我會建議你先看懂 RFCOMM 怎樣用吧! 這應該是相對來的容易的Service