可編程邏輯在藍牙HCI橋中的應用
今年底將會(huì )推出藍牙標準的新版本,將提供更高的帶寬和更大的覆蓋范圍,因此可以預計藍牙技術(shù)支持的應用范圍會(huì )進(jìn)一步擴展。這也意味著(zhù)不僅消費電子或計算機外設會(huì )采用藍牙進(jìn)行通信,許多其它的家用和辦公電器,甚至工業(yè)設備也會(huì )采用藍牙技術(shù)。因此眾多的現有電子設備都需要支持或利用藍牙。
本文引用地址:http://dyxdggzs.com/article/2829.htm藍牙標準定義了需要用戶(hù)最小干預的一個(gè)設備通信接口。然而目前多數標準藍牙芯片解決方案僅提供了一個(gè)UART(通用異步收發(fā)報機)和USB主機控制器接口(HCI)。顯然,將現有的電子設備完全重新設計來(lái)提供UART或USB接口有點(diǎn)動(dòng)作太大了。因此,采用系統上的現有接口作為連接藍牙子系統的橋接接口有重要的意義。
藍牙標準將實(shí)現藍牙接口所需要的功能分成三個(gè)如圖1所示的功能模塊。這些功能模塊可直接與藍牙標準中的功能劃分相對應。
射頻部分實(shí)現藍牙設備的寬帶無(wú)線(xiàn)接口。典型情況下,射頻單元以多芯片模塊實(shí)現,包括一個(gè)天線(xiàn)開(kāi)關(guān)、阻抗匹配器、放大器、基于數字鎖相環(huán)路(PLL)的時(shí)鐘恢復、調制和解調電路。
藍牙基帶鏈路控制器功能包括底層的鏈路層功能?;鶐Чδ馨ǎ?/font>
* CVSD語(yǔ)音編碼
* 頭錯誤校驗(HEC)生成及校驗
* 前向糾錯(FEC)生成及校驗
* 循環(huán)冗余校驗碼(CRC)生成及校驗
* 數據擾碼
* 有效數據加密和解密
* 跳頻序列
鏈路管理模塊實(shí)現鏈路管理器協(xié)議(LMP),負責處理底層控制方面的功能,包括:
* 設備間鏈路的建立
* 生成、交換并檢查加密密鑰
* 協(xié)調基帶分組大小
* 功率模式及射頻負載因數
* 一個(gè)微微網(wǎng)中設備的連接狀態(tài)
由于這些功能本身所具有的復雜性,因此需要采用軟件來(lái)實(shí)現。軟件通常運行在一個(gè)嵌入式RISC處理器上。這一軟件方法導致其它功能也可采用處理器實(shí)現,同時(shí)還包括實(shí)現到主機系統接口所需要的固件。
藍牙標準對主機控制器接口(HCI)的定義如下:
HCI提供了一個(gè)調用和訪(fǎng)問(wèn)基帶控制器和鏈路控制器,以及硬件狀態(tài)和控制寄存器的命令接口。這一接口提供了一個(gè)訪(fǎng)問(wèn)藍牙基帶功能的統一方法。
HCI由兩部分組成,實(shí)現命令接口的軟件和用來(lái)連接藍牙子系統和主機的物理硬件。HCI軟件的目的是使構成接口的硬件對系統高層軟件來(lái)說(shuō)看起來(lái)是透明的。
藍牙軟件結構包括兩種類(lèi)型的部件。數據相關(guān)部件負責數據通過(guò)鏈路的傳輸??刂葡嚓P(guān)部件則負責鏈路的控制和管理。就本文的目的來(lái)說(shuō),我們將集中討論構成HCI的控制和數據相關(guān)的部件。圖2 示出了HCI軟件結構以及與藍牙主機接口硬件的關(guān)系。
主機通過(guò)HCI驅動(dòng)程序提供的一系列命令來(lái)控制藍牙網(wǎng)絡(luò )接口。除這些命令外,藍牙標準還定義了一級由藍牙網(wǎng)絡(luò )接口中的HCI固件產(chǎn)生的事件,用來(lái)指示接口的狀態(tài)變化。
HCI命令和事件與來(lái)自無(wú)連接和同步連接的數據一起通過(guò)HCI傳輸接口硬件進(jìn)行傳輸。這些數據的復用方式對接口來(lái)說(shuō)是確定的。
HCI的傳輸層定義了三類(lèi)數據如何在藍牙網(wǎng)絡(luò )接口和藍牙主機間進(jìn)行傳輸。HCI傳輸層定義了每一類(lèi)數據如何封裝和通過(guò)接口硬件進(jìn)行復用。藍牙規范目前定義了三個(gè)HCI傳輸層。
* UART傳輸層
* RS232傳輸層
* USB傳輸層
藍牙特別興趣組(Bluetooth SIG )的白皮書(shū)中描述了第四個(gè)傳輸層,即PC卡傳輸層。
除非有足夠的時(shí)間和資源,否則很少有人會(huì )從最底層來(lái)設計一個(gè)藍牙網(wǎng)絡(luò )接口,HCI實(shí)施的戰略通常是基于已經(jīng)提供的ASSP產(chǎn)品。ASSP可以分成兩大類(lèi),一類(lèi)僅實(shí)現了鏈路控制器功能,另一類(lèi)則同時(shí)包括了鏈路控制器和鏈路管理器。這兩類(lèi)器件的主要區別是后一類(lèi)包含了一個(gè)嵌入式RISC處理器來(lái)實(shí)現鏈路管理器和HCI功能。
要決定采用哪一類(lèi)器件通常需要針對每種方案進(jìn)行權衡分析。下面提供了一個(gè)實(shí)際例子,它展示了可編程邏輯器件(PLD)如何提供可解決HCI接口問(wèn)題的方案。
要將藍牙技術(shù)以有效的成本集成到系統級設計中要面臨許多挑戰,包括:
* 不斷演化的標準。雖然藍牙核心協(xié)議是穩定的,但到高層協(xié)議和服務(wù)(如IP業(yè)務(wù))的映射卻仍在不斷演化;
* 可能存在問(wèn)題的ASSP。目前應用的大多數ASSP還相對較新,因此會(huì )存在一些必須由系統設計人員處理的缺陷;
* 新出現的產(chǎn)品應用模式。對最初設想的電纜替代應用來(lái)說(shuō),大多數情況下藍牙技術(shù)目前還是太昂貴了。由于這一原因,和其它一些有利可圖的潛在“關(guān)鍵應用”,使許多人考慮將藍牙推向仍在形成期的新興應用領(lǐng)域;
很明顯,這里所需要的是一個(gè)允許系統設計人員快速開(kāi)發(fā)藍牙解決方案并可以針對不斷變化的環(huán)境做出響應的靈活技術(shù)。對采用前述兩類(lèi)藍牙ASSP的接口設計,PLD可以滿(mǎn)足這一需要。
選擇同時(shí)包括鏈路控制器和鏈路管理器功能的ASSP產(chǎn)品所具有的優(yōu)點(diǎn)是可以從相當完整的解決方案開(kāi)始。器件包含一個(gè)RISC處理器和一個(gè)或多個(gè)HCI傳輸接口。制造商同時(shí)還提供HCI和鏈路管理器固件。采用此類(lèi)器件,系統級集成僅需要將HCI傳輸接口與主機相連。如果主機系統已經(jīng)有可用的USB或UART端口,那么不需要額外的硬件就可以實(shí)現系統集成。
藍牙子系統的三個(gè)部件分別是:
* 射頻(RF)部分 - 射頻器件
* 基帶(BB)- 基帶處理器
* 微控制器(mC)- 微控制器
然而很多情況下這一方法可能并不適用,可能的原因有:
* 主機系統可能沒(méi)有可用于藍牙子系統的UART或USB接口;
*主機系統可能沒(méi)有足夠的USB或UART端口。當主機僅有有限數量的端口時(shí),或當應用需要大量的端口時(shí)就會(huì )出現這種情況;
* 主機系統可以沒(méi)有可以支持全速藍牙數據速率的串行端口。為達到最大的系統級性能,藍牙ASSP包含可支持高達1.5Mbps傳輸速率的UART;
* 標準接口的ASSP可能并不適合藍牙協(xié)議處理,因此在藍牙速率下工作時(shí),可能會(huì )消耗太多的處理器處理資源。中斷處理開(kāi)銷(xiāo)可能會(huì )大量消耗主機處理資源。
在上述任何一種情況下,可編程邏輯都可以用來(lái)實(shí)現所需要的接口硬件。對深度嵌入式應用,這通常是一個(gè)USB或UART核心和系統中采用的嵌入式處理器局部總線(xiàn)間的接口。雖然可編程邏輯可以用來(lái)實(shí)現兩種傳輸接口的任何一種,但簡(jiǎn)單的UART傳輸協(xié)議是一個(gè)成本效率較高的接口方案,同時(shí)還具有較好的系統級性能。
系統級性能會(huì )更好的原因源于PLD的主要優(yōu)點(diǎn),即他們可以快速創(chuàng )建一個(gè)針對目標應用的特定的接口解決方案。圖3是帶有DMA和HCI幀傳輸狀態(tài)機邏輯增強的一個(gè)UART的框圖。
通過(guò)降低發(fā)送和接收時(shí)的中斷服務(wù)開(kāi)銷(xiāo),這一方法提高了系統級性能。在傳統UART情況下每接收或發(fā)送一個(gè)數據都產(chǎn)生一個(gè)中斷。與此不同,這一設計中采用了片上FIFO來(lái)進(jìn)行接收和發(fā)送緩沖,每發(fā)送或接收一個(gè)完整的HCI幀才產(chǎn)生一次中斷。這是通過(guò)采用專(zhuān)用邏輯電路對HCI頭中的幀大小信息進(jìn)行解碼并適當配置DMA邏輯來(lái)實(shí)現的??删幊踢壿媽?shí)現的專(zhuān)用邏輯還通過(guò)檢查來(lái)保證幀級同步。
雖然采用僅包含鏈路控制器的ASSP需要更多的工作才能創(chuàng )造出一個(gè)完整的解決方案,但他們也為在深度嵌入式系統實(shí)現更緊密的集成和降低系統成本提供了機會(huì )。如果藍牙網(wǎng)絡(luò )接口和主機位于同一塊電路板上,那么就沒(méi)有必要采用一個(gè)HCI傳輸層。這種情況下,用來(lái)控制基帶處理和射頻功能的接口以及用來(lái)傳輸數據幀的接口都成為直接簡(jiǎn)單的主機處理器接口。由于這些接口通常與采用的ASSP相關(guān),因此可編程邏輯提供了一個(gè)到主處理器總線(xiàn)或I/O總線(xiàn)(如PCI)接口的低成本方法。請注意,這是可編程邏輯可以用來(lái)集成其它核心邏輯功能的又一種情況。
在這種方案中,主機CPU完成所有的協(xié)議處理功能。這進(jìn)一步降低了成本。因為原來(lái)專(zhuān)門(mén)用于鏈路管理功能的RISC處理器和非易失存儲器在系統中就不需要了。在這一結構中,藍牙軟件協(xié)議層簡(jiǎn)化成如圖4所示。
基于可編程邏輯的快速UART至PCI橋解決方案是為舊系統集成業(yè)界標準的藍牙通信功能的理想方法。其中采用FPGA對系統加速最明顯的是FIFO緩沖器。這些FIFO的深度和寬度可以重新配置以適應更快速的數據速率以及更寬的數據字或特殊的字寬度。圖5顯示了一個(gè)單通道UART到PCI橋的功能部件。由于用于FPGA的標準接口和存儲控制器IP非常多,因此可以導出許多與此類(lèi)似的幾乎實(shí)現了所有其它核心邏輯功能的設計。由圖5還可看出可以集成更多附加的功能,如SDRAM控制器和定制邏輯。這種靈活性使您可趕在競爭對手前,快速有效地改變您的設計以滿(mǎn)足新興的市場(chǎng)機會(huì )。
可編程邏輯是集成藍牙技術(shù)到嵌入式系統中的優(yōu)秀解決方案,因為它提供的幾個(gè)優(yōu)勢可以幫助壓縮產(chǎn)品上市的時(shí)間。第一,有范圍廣泛的IP可以使用,因此可以快速得到關(guān)鍵的設計構建模塊。第二,準現成的可編程解決方案使系統設計人員可比任何其它方法更快地完成一個(gè)功能硬件平臺。第三,在軟件還在開(kāi)發(fā)過(guò)程中,就可以方便快速地推出有限數量的設計來(lái)進(jìn)行實(shí)際的Beta測試并獲得反饋。
在集成藍牙技術(shù)的過(guò)程中,軟件開(kāi)發(fā)是最大的問(wèn)題之一。由于可編程邏輯可以更快地完成功能硬件設計,因此具有很大的優(yōu)勢。實(shí)際上,這一優(yōu)勢可能比想象的還要大,特別是當你考慮到可編程邏輯所帶來(lái)的巨大靈活性時(shí)。例如,許多情況下,非常希望能夠重新利用現有的驅動(dòng)程序和固件。此時(shí),PLD使系統設計人員可以先調整接口邏輯,以使用標準的驅動(dòng)程序,然后再修改這一邏輯來(lái)提高性能。當設計中選擇購買(mǎi)第三方固件時(shí),這一特性更有價(jià)值,因為對第三方固件的理解需要時(shí)間,而且第三方固件還可能不能非常好地適應目標應用環(huán)境。
從本質(zhì)上來(lái)說(shuō),產(chǎn)品開(kāi)發(fā)并不是嚴格的科學(xué),因為實(shí)際開(kāi)發(fā)中總是存在錯誤、不兼容性和標準的不斷修改。由于其內在的可重新編程特性,PLD提供了非常有價(jià)值的優(yōu)勢,可在任意時(shí)間對已安裝系統的硬件進(jìn)行升級。這使您可以保證現有設計的可用性,并大大降低了過(guò)時(shí)的器件庫存以及昂貴的現場(chǎng)器件更換所帶來(lái)的風(fēng)險?!?/font>
評論