藍芽技術與協議的開發應用與實現(轉)

amyz發表於2007-08-13
藍芽技術與協議的開發應用與實現(轉)[@more@]

  1 什麼是藍芽技術

  所謂藍芽技術,實際上是一種短距離無線電技術,利用"藍芽技術"能夠有效地簡化掌上電腦、膝上型電腦和行動電話手機等行動通訊終端裝置,並且能夠成功地簡化以上這些裝置與因特網之間的通訊,從而使這些現代通訊裝置與因特網之間的資料傳輸變得更加迅速高效,為無線通訊拓寬道路。通俗地講,藍芽技術使得現代一些輕易攜帶的行動通訊裝置和電腦裝置,不必藉助電纜就能聯網,並且能夠實現無線上因特網。其實際應用範圍還可以擴充到各種家電產品、消費電子產品和汽車等資訊家電,組成一個巨大的無線通訊網路。

  2 藍芽技術的特點

  2.1 藍芽協議體系結構

  整個藍芽協議體系結構可分為底層硬體模組、中間協議層和高階應用層三大部分。鏈路管理層(LMP)、基帶層(BBP)和藍芽無線電通道構成藍芽的底層模組。BBP層負責跳頻和藍芽資料及資訊幀的傳輸。LMP層負責連線的建立和拆除以及鏈路的安全和控制,它們為上層軟體模組提供了不同的訪問人口,但是兩個模組介面之間的訊息和資料傳遞必須透過藍芽主機控制器介面的解釋才能進行。也就是說,中間協議層包括邏輯鏈路控制與適配協議(L2CAP)、服務發現協議(SDP)、串列埠模擬協議(RFCOMM)和電話控制協議規範(TCS)。L2CAP完成資料拆裝、服務質量控制、協議複用和組提取等功能,是其他上層協議實現的基礎,因此也是藍芽協議棧的核心部分。SDP為上層應用程式提供一種機制來發現網路中可用的服務及其特性。在藍芽協議棧的最上部是高階應用層,它對應於各種應用模型的剖面,是剖面的一部分。目前定義了13種剖面。

  2.2 藍芽低層模組

  藍芽的低層模組是藍芽技術的核心,是任何藍芽裝置都必須包括的部分。

  藍芽工作在2.4GHZ的ISM頻段。採用了藍芽結束的裝置講能夠提供高達720kbit/s 的資料交換速率。

  藍芽支援電路交換和分組交換兩種技術,分別定義了兩種鏈路型別,即面向連線的同步鏈路(SCO)和麵向無連線的非同步鏈路(ACL)。

  為了在很低的功率狀態下也能使藍芽裝置處於連線狀態,藍芽規定了三種節能狀態,即停等(Park)狀態、保持(Hold)狀態和呼吸(Sniff)狀態。這幾種工作模式按照節能效率以升序排依次是:Sniff模式、Hold模式、Park模式。

  藍芽採用三種糾錯方案:1/3前向糾錯(FEC)、2/3前向糾錯和自動重發(ARQ)。前向糾錯的目的是減少重發的可能性,但同時也增加了額外開銷。然而在一個合理的無錯誤率環境中,多餘的投標會減少輸出,故分組定義的本身也保持靈活的方式,因此,在軟體中可定義是否採用FEC。一般而言,在通道的噪聲干擾比較大時藍芽系統會使用前向糾錯方案,以保證通訊質量:對於SCO鏈路,使用1/3前向糾錯;對於ACL鏈路,使用2/3前向糾錯。在無編號的自動請求重發方案中,一個時隙傳送的資料必須在下一個時隙得到收到的確認。只有資料在收端透過了報頭錯誤檢測和迴圈冗餘校驗(CRC)後認為無錯時,才向發端發回確認訊息,否則返回一個錯誤訊息。

  藍芽系統的移動性和開放性使得安全問題變得及其重要。雖然藍芽系統所採用的調頻技術就已經提供了一定的安全保障,但是藍芽系統仍然需要鏈路層和應用層的安全管理。在鏈路層中,藍芽系統提供了認證、加密和金鑰管理等功能。每個使用者都有一個個人標識碼(PIN),它會被譯成128bit的鏈路金鑰(Link Key)來進行單雙向認證。一旦認證完畢,鏈路就會以不同長度的密碼(Encryphon Key)來加密(此密碼以shit為單位增減,最大的長度為128bit)鏈路層安全機制提供了大量的認證方案和一個靈活的加密方案(即允許協商密碼的長度)。當來自不同國家的裝置互相通訊時,這種機制是極其重要的,因為某些國家會指定最大密碼長度。藍芽系統會選取微微網中各個裝置的最小的最大允許密碼長度。例如,美國允許128bit的密碼長度,而西班牙僅允許48bit,這樣當兩國的裝置互通時,將選擇48bit來加密。藍芽系統也支援高層協議棧的不同應用體內的特殊的安全機制。例如兩臺計算機在進行商業卡資訊交流時,一臺計算機就只能訪問另一臺計算機的該項業務,而無權訪問其他業務。藍芽安全機制依賴PIN在裝置間建立信任關係,一旦這種關係建立起來了,這些PIN就可以儲存在裝置中以便將來更快捷地連線。

  2.3 軟體模組

  L2CAP是資料鏈路層的一部分,位於基帶協議之上。L2CAP向上層提供面向連線的和無連線的資料服務,它的功能包括:協議的複用能力、分組的分割和重新組裝(Segmentation And Reaassembly)以及提取(Group Abstraction)。L2CAP允許高層協議和應用傳送和接受高達64K Byte的資料分組。

  SDP為應用提供了一個發現可用協議和決定這些可用協議的特性的方法。藍芽環境下的服務發現與傳統的網路環境下的服務發現有很大的不同,在藍芽環境下,移動的RF環境變化很大,因此業務的引數也是不斷變換的。SDP將強調藍芽環境的獨特的特性。藍芽使用基於客戶/伺服器機制定義了根據藍芽服務型別和屬性發現服務的方法,還提供了服務瀏覽的方法。

  RFCOMM是射頻通訊協議,它可以模擬序列電纜介面協議,符合ETSI0710串列埠模擬協議。透過RFCOMM,藍芽可以在無線環境下實現對高層協議,如PPP、TCP/IP、WAP等的支援。另外,RFCOMM可以支援AT命令集,從而可以實現行動電話機和傳真機及調變解調器之間的無線連線。

  藍芽對語音的支援是它與WLAN相區別的一個重要的標誌。藍芽電話控制規範是一個基於ITU-T建議Q.931的採用面向位元的洗衣,它定義了用於藍芽裝置間建立語音和資料呼叫的呼叫控制信令以及用於處理藍芽TCS裝置的移動性管理過程。

  3 藍芽開發概述

  3.1藍芽開發的意義

  鑑於藍芽再未來資訊產品中的重要地位,開發具有我國自主只是產權的藍芽產品具有非常重要的意義。對一些資訊家電廠家,其主要目的是將藍芽作為通訊模組整合到自己的產品中,它們可以使用其他廠家的藍芽產品,自己只需著力於開發應用部分;而對那些專門從事藍芽研發生產的廠家,就需要進行從底層到高層的全面開發,只有這樣才能掌握藍芽的核心技術,才能生產出具有自主智慧財產權的產品。

  3.1.1開發前的準備工作

  (1)對藍芽相關的規範和協議有一個初步的瞭解,對要開發的部分進行細緻的研究,協議的要求必須明確,對產品的應用環境也必須非常清楚。

  藍芽的規範包括協議的核心部分和藍芽的應用剖面(使用者模型),內容應該非常豐富,對整個協議進行全面地瞭解,但是由於客觀上難以實現,因此,可以先從一些簡單的介紹開始,從整體上對藍芽的結構體系有一個較為全面的瞭解,再從使用者的角度瞭解藍芽系統的概況,這樣,根據自己準備開發的產品,有目的地選擇相關的協議進行專門研究。

  (2)對同類產品做細緻的調研。可以根據分類檢視相關的產品,以及產品的效能和使用方法,還能夠得到有關廠商的資訊。 (3)另外也可以申請加入藍芽SIG,成為SIG成員。

  (4)制定一個詳盡的產品開發計劃,儘可能做到周全。

  (5)建立一個開發工作平臺、開發環境,準備和選擇相應的開發工具

  在藍芽開發工具中,應包括一個藍芽硬體的介面部件和需要的軟體部分,至少要有一對節點,這樣,才能建立一條鏈路,如果要開發更為複雜的應用,可能需要更多的節點。硬體可以是各種形式,像IC卡、USB dougle、開發工具、UART附件等,也可以是自己開發的或專門定製的硬體。

  在選擇硬體時需要注意,首先必須明確待開發的應用是什麼,是用於嵌入式系統還是用於計算機系統?如果是用於計算機系統,使用PC卡或USB dougle就足夠了,這時選用簡單的開發工具。如果是用於嵌入式系統,就需要更為複雜的開發工具,要求開發工具允許進行韌體的開發和允許下載到開發工具中,或者如果希望能夠對微處理器或FPGA進行直接的測試,可以製造一塊開發板,這需要購買一塊包括藍芽模組和微處理器或FPGA的PCB板,同時還需要對微處理器/FPGA進行程式設計的外圍裝置。其次,要注意的問題是應用中是否包括語音?因為有一些開發系統不包括語音介面,如果應用只有資料傳輸,應該考慮資料的速率,可以使用UART聯結器,對於全速率的資料應用,需要使用USB。

  在決定了使用什麼硬體之後需要考慮的就是軟體棧。如果要開發的應用可以使用藍芽規範中某個剖面,那麼就只需要實現與該剖面有關的軟體棧。這種情況往往要開發自己定製的棧,這樣更能符合應用的要求。如果要開發的應用不能使用現有的剖面結構,它就必須與屬於特定剖面的裝置進行互動。再進行協議棧需求設計事必須牢記相容性。在決定使用一個協議棧之前,還必須仔細地檢查協議棧能夠提供的能力,並不是所有的協議棧都實現了規範中所列出的所有功能,有一些功能可能還沒有實現。另外除了比較價格,文件的質量和公司的售後支援也是需要特別考慮的。

  (6)開發之前還必須瞭解藍芽SIG規定的相關認證和測試規範,以及與之有關的程式,以便在開發過程中理出測試的介面。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-955407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章