1 藍牙協議概述
藍牙技術規范(Specification)包括協議(Protocol)和應用規范(Profile)兩個部分。協議定義了各功能元素(如串口仿真協議(RFCOMM)、邏輯鏈路控制和適配協議(L2CAP)等各自的工作方式,而應用規范則闡述了為了實現一個特定的應用模型(Usage model),各層協議間和運轉協同機制。顯然,Protocol是一種橫向體系結構,而Profile是一種縱向體系結構。較典型的Profile有撥號網絡(Dial-up Networking)、耳機(Headset)、局域網訪問(LAN Access)和文件傳輸(File Transfer)等,它們分別對應一種應用模型。
整個藍牙協議體系結構可分為底層硬件模塊、中間協議層(軟件模塊)和高端應用層三大部分。圖1中所示的鏈路管理層(LM)、基帶層(BB)和射頻層(RF)屬于藍牙的硬件模塊。RF層通過2.4GHz無需授權的ISM頻段的微波,實現數據位流的過濾和傳輸,它主要定義了藍牙收發器在此頻帶正常工作所滿足的要求。BB層負責跳頻和藍牙數據及信息幀的傳輸。LM層負責連接的建立和拆除以及鏈路的安全機制。它們為上層軟件模塊提供了不同的訪問人口,但是兩個藍牙設備之間的消息和數據傳遞必須通過藍牙主機控制器接口(HCI)的解釋才能進行。也就是說,HCI是藍牙協議中軟硬件之間的接口,它提供了一個調用下層BB、LM狀態和控制寄存器等硬件的統一命令接口。HCI層以上的協議實體運行在主機上,而HCI以下的功能由藍牙設備來完成,二者之間通過一個對兩端透明的傳輸層進行交互。
中間協議層包括邏輯鏈路控制和適配協議(L2CAP,Logical Link Control and Adaptation Protocol)、服務發現協議(SDP,Service Discovery Protocol)、串口仿真協議(RFCOMM)和電信通信協議(TCS,Telephone control Protocol)。L2CAP完成數據拆裝、服務質量控制和協議復用等功能,是其他上層協議實現的基礎,因此也是藍牙協議棧的核心部分。SDP為上層應用程序提供一種機制來發現網絡中可用的服務及其特性。RFCOMM依據ETSI標準TS07.10在L2CAP上仿真9針RS232串口的功能。TCS提供藍牙設備間話音和數據的呼叫控制信令。
在藍牙協議棧的最上部是高端應用層(Applications),它對應于各種應用模型的profile。
2 藍牙協議測試背景
2.1 藍牙測試背景
藍牙組織成員為證明自己的產品達到了藍牙組織加入協定的要求,符合藍牙規范,必須通過藍牙認證。藍牙認證設置的目的在于保護藍牙無線互連技術的一致性,同時盡可能降低對產品開發商的要求。
任何一個生產或銷售藍牙設備的公司必須首先簽署藍牙協定以成為藍牙組織成員,然后證明自己的產品符合藍牙系統規范(包括一致性要求)。在成功通過藍牙認證之后,產品方案被列入合格產品目錄。產品必須完全通過藍牙認證,否則不享有藍牙組織協定所賦予的權利。
藍牙設備測試規范包括一系列為驗證藍牙設備而設計的測試。藍牙設備應對藍牙設備測試規范中所有的藍牙設備測試案例逐一進行驗證。
所謂測試案例是與被測試協議的一個特定特征相關的一個特定測試單元。每個測試案例都有一個特定的測試目的,運行后都對所得到的測試結果進行判斷。例如為測試傳輸層和建鏈(Connection establishment)而設計一個測試案例,其測試目的為“測試傳輸層建鏈”,執行這個測試案例可能得到的結果為成功、失敗或者不確定。
測試案例一般由三部分組成:初始化部分(Preamble)、測試體(Test Body)和重置部分(Postamble)。
在藍牙設備認證測試中,射頻(Radio Frequency)、藍牙協議一致性、profile一致性和profile互聯測試所使用的方法是不同的。
*射頻測試案例可以混合使用標準測試設備和特殊藍牙測試設備來執行。如果有一個可用的參考測試系統,藍牙協議一致性的測試案例可以使用它來執行。否則一致性測試只能通過其他方法進行。組織成員自由選擇合適的測試設備來運行所需的測試。
*為加強低層互聯的可靠性,首先應進行藍牙協議互聯藍牙協議互聯測試。使用設計好的測試產品(一般稱為藍牙設備)來進行測試。
*Profile一致性測試用來決定藍牙產品是否符合藍牙規范。
*Profile互聯測試幫助確定支持同一Profile的產品是否如預料那樣支持互聯。當設備特別是不同廠家設備之間進行實際通信的時候,互聯測試有可能發現原先不太明顯的問題。
2.2一致性測試
協議一致性測試和協議校驗的目標是很容易混淆的。協議一致性測試用于檢查給定的一種協議的實現實體是否與協議的內在動工規范要求相一致。協議校驗用來檢查協議規范本身在邏輯上是否可靠的。如果協議規范存在設計錯誤,絕對符合規范要求的協議實現雖然存在同樣的邏輯錯誤,但能夠通過一致性測試;如果它不存在同樣的錯誤,就無法通過一致性測試。只有實現實體和規范要求不一致時一致性測試才會失敗。相反,協議的可靠性驗證應該檢測出設計上的錯誤。
原文轉自:http://www.uml.org.cn/Test/200810166.asp