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