
圖2 藍(lán)牙硬件模塊結(jié)構(gòu)
3 嵌入藍(lán)牙協(xié)議棧的SoC結(jié)構(gòu)設(shè)計(jì)
根據(jù)上述藍(lán)牙協(xié)議棧硬件結(jié)構(gòu)可以看出,如果使用SoC 結(jié)構(gòu)設(shè)計(jì)藍(lán)牙協(xié)議棧,則可以實(shí)現(xiàn)嵌入藍(lán)牙通信模塊,同時(shí)向用戶開(kāi)放內(nèi)部CPU的目的。
在設(shè)計(jì)嵌入藍(lán)牙協(xié)議的SoC 結(jié)構(gòu)時(shí),需要考慮如下問(wèn)題。
、 數(shù)據(jù)處理能力與速度。數(shù)據(jù)處理能力主要體現(xiàn)在兩個(gè)方面:一個(gè)是數(shù)據(jù)緩沖存儲(chǔ)器的規(guī)模,另一個(gè)是對(duì)數(shù)據(jù)處理算法支持的程度。數(shù)據(jù)處理速度是一個(gè)重要的問(wèn)題。數(shù)據(jù)處理速度不僅與系統(tǒng)時(shí)鐘頻率有關(guān),還與CPU 和內(nèi)部總線的結(jié)構(gòu)直接相關(guān)。
、 通信操作與系統(tǒng)運(yùn)行的關(guān)系。在嵌入了藍(lán)牙通信棧的SoC 中,通信是系統(tǒng)的一個(gè)功能,SoC 還需要實(shí)現(xiàn)系統(tǒng)的其它功能。由于CPU 串行結(jié)構(gòu)的特點(diǎn),當(dāng)系統(tǒng)需要同時(shí)啟用通信功能和其它重要功能時(shí)(例如實(shí)施系統(tǒng)的數(shù)據(jù)采集操作等),就需要使用適當(dāng)?shù)姆椒ㄟM(jìn)行協(xié)調(diào)。實(shí)際上這也就是嵌入式藍(lán)牙SoC 器件的系統(tǒng)實(shí)時(shí)性問(wèn)題。
、 器件的功率損耗。功率損耗是SoC 設(shè)計(jì)中的一個(gè)重要問(wèn)題。除了采用相應(yīng)的技術(shù)實(shí)現(xiàn)最低功率損耗問(wèn)題外,還必須通過(guò)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)降低系統(tǒng)的功率損耗。對(duì)于對(duì)功率損耗有特殊要求的系統(tǒng),低功耗設(shè)計(jì)更是必不可少的內(nèi)容。
由上述三個(gè)要求可知,在嵌入式藍(lán)牙SoC中,如果數(shù)據(jù)處理量比較大,則需要考慮數(shù)據(jù)處理的速度問(wèn)題。用戶系統(tǒng)CPU屬于串行工作方式,因此,在大數(shù)據(jù)量的通信過(guò)程中,如何完成系統(tǒng)的其它功能,是SoC結(jié)構(gòu)設(shè)計(jì)的一個(gè)重要方面。例如,使用藍(lán)牙技術(shù)傳輸圖像時(shí),其中的通信系統(tǒng)必須保持連續(xù)工作狀態(tài),同時(shí),還需要SoC中設(shè)計(jì)大量的Flash存儲(chǔ)器。由于傳輸圖像必須進(jìn)行壓縮和解壓縮,所以,在保持通信連續(xù)和圖像的壓縮/解壓縮這兩種不同的操作中,就必須進(jìn)行充分協(xié)調(diào),采用硬件并行處理的技術(shù)。這種情況下,CPU就僅僅是一個(gè)操作控制器件,用來(lái)啟動(dòng)或終止某個(gè)操作。由此可知,應(yīng)當(dāng)針對(duì)不同類型的應(yīng)用場(chǎng)合設(shè)計(jì)相應(yīng)的SoC 結(jié)構(gòu)。
對(duì)于智能傳感器,其基本功能如下。
、 信號(hào)轉(zhuǎn)換。這一部分電路的作用是把相應(yīng)的物理量轉(zhuǎn)換為電壓信號(hào),然后對(duì)其進(jìn)行放大和濾波處理。處理的結(jié)果作為數(shù)據(jù)采集電路的輸入信號(hào)。
、 數(shù)據(jù)采集。數(shù)據(jù)采集電路的功能是把信號(hào)轉(zhuǎn)換電路輸出的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)(數(shù)據(jù)序列),然后把數(shù)字信號(hào)輸出給CPU,以便進(jìn)行相應(yīng)的處理。
、 數(shù)據(jù)處理。智能傳感器中的數(shù)據(jù)處理功能一般并不統(tǒng)一。一般情況下,需要數(shù)字濾波即可。有些智能傳感器還需要對(duì)信號(hào)進(jìn)行其它處理,例如信號(hào)幅度的判別、信號(hào)特征的提取、顯示處理等?傊,根據(jù)不同的應(yīng)用領(lǐng)域,數(shù)據(jù)處理的要求不盡相同。
、 數(shù)據(jù)傳輸。在控制系統(tǒng)中,智能傳感器采集并整理好的數(shù)據(jù),需要傳輸給系統(tǒng)的核心控制器或其它控制單元。由于控制系統(tǒng)的特點(diǎn),數(shù)據(jù)傳輸一般需要經(jīng)過(guò)一段空間距離,因此,需要使用專門的電路和方式實(shí)現(xiàn)數(shù)據(jù)傳輸。例如,對(duì)數(shù)據(jù)進(jìn)行編碼處理后,利用電流環(huán)或RS232 等方式傳輸。在現(xiàn)有控制系統(tǒng)中,絕大多數(shù)情況下都采用有線傳輸方式實(shí)現(xiàn)傳感器與控制系統(tǒng)的連接。
對(duì)于智能傳感器來(lái)說(shuō),傳輸數(shù)據(jù)量一般并不是很大(例如壓力、溫度等傳感器),因此,滿足智能傳感器需要的嵌入式藍(lán)牙SoC 器件中,并不需要很大的存儲(chǔ)容量;但必須考慮藍(lán)牙協(xié)議實(shí)現(xiàn)所必需的程序存儲(chǔ)空間。從圖1 可以看出,藍(lán)牙協(xié)議棧的處理軟件會(huì)占用比較大的存儲(chǔ)器,因此,必須對(duì)其進(jìn)行簡(jiǎn)化。同時(shí),為了保證控制系統(tǒng)安全可靠,還需要考慮使用用戶協(xié)議替代藍(lán)牙技術(shù)所定義的處理協(xié)議。
由以上分析可以得出結(jié)論:
、 智能傳感器的數(shù)據(jù)傳輸量比較小,不需要進(jìn)行壓縮或編碼處理,可以設(shè)置在1K字節(jié)以下。
、 為了保證控制系統(tǒng)的安全可靠性,需要把上層處理協(xié)議變?yōu)橛脩魧訁f(xié)議,由用戶自行編寫(xiě)。
為了設(shè)計(jì)滿足智能傳感器的嵌入式藍(lán)牙SoC結(jié)構(gòu),對(duì)藍(lán)牙協(xié)議棧進(jìn)行了簡(jiǎn)化處理,只使用藍(lán)牙協(xié)議中的核心協(xié)議和替代電纜協(xié)議。SoC 中的藍(lán)牙協(xié)議棧由軟件和硬件兩部分組成。核心協(xié)議中的基帶協(xié)議由硬件實(shí)現(xiàn),而鏈路管理和其它部分則使用軟件實(shí)現(xiàn)。所有有關(guān)協(xié)議的軟件存放在ROM 中,用戶使用通信棧時(shí)可直接調(diào)用。需要指出的是,通信棧的設(shè)計(jì)為一個(gè)整體,因此調(diào)用時(shí)也必須整體調(diào)用。換句話說(shuō)就是,把通信?闯墒且粋(gè)完整的子程序模塊加以調(diào)用。
根據(jù)上述結(jié)論,提出一種具有開(kāi)放使用戶協(xié)議的嵌入式藍(lán)牙SoC 模塊結(jié)構(gòu),如圖3 所示。

圖3 用于智能傳感器的嵌入式藍(lán)牙SoC模塊結(jié)構(gòu)
圖3中,RF收發(fā)器、基帶控制器和藍(lán)牙協(xié)議ROM共同組成藍(lán)牙協(xié)議棧。藍(lán)牙協(xié)議棧在CPU的控制下完成通信任務(wù)。簡(jiǎn)化的嵌入式藍(lán)牙協(xié)議棧結(jié)構(gòu)如圖4 所示。其中用戶應(yīng)用協(xié)議由用戶自行設(shè)計(jì),以確保通信的安全性和可靠性。

圖4 簡(jiǎn)化的藍(lán)牙協(xié)議棧
另外,對(duì)藍(lán)牙協(xié)議棧中的LMP進(jìn)行了相應(yīng)的簡(jiǎn)化。在智能傳感器的應(yīng)用中,通信鏈路一般比較簡(jiǎn)單,因此,LMP不需要對(duì)鏈路進(jìn)行復(fù)雜的處理。本設(shè)計(jì)中,LMP的主要功能由軟件完成。當(dāng)需要使用藍(lán)牙通信發(fā)送數(shù)據(jù)或接收數(shù)據(jù)時(shí),用戶程序只需調(diào)用LMP軟件模塊即可。LMP協(xié)議由兩部分組成:
、 軟件。通過(guò)CPU對(duì)鏈路進(jìn)行設(shè)置和控制,實(shí)現(xiàn)藍(lán)牙設(shè)備連接、功率控制以及認(rèn)證和加密,同時(shí)還控制藍(lán)牙設(shè)備控制器電路。
、 硬件。LMP控制器電路在LMP軟件的操作下,控制藍(lán)牙設(shè)備的工作狀態(tài)(保持hold、休眠park、呼吸sniff 和活動(dòng)active)。
圖3中的CPU通過(guò)開(kāi)放總線模塊向用戶開(kāi)放,用戶程序保存在用戶程序存儲(chǔ)器中。數(shù)據(jù)存儲(chǔ)器采用Flash 存儲(chǔ)電路,用來(lái)保存藍(lán)牙通信中的發(fā)送和接收數(shù)據(jù);同時(shí),作為傳感器數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器的使用分配由用戶決定,傳感器的設(shè)計(jì)者可通過(guò)用戶程序?qū)?shù)據(jù)存儲(chǔ)器進(jìn)行分塊控制使用,通過(guò)用戶程序設(shè)置相應(yīng)的發(fā)送或接收數(shù)據(jù)存儲(chǔ)深度和起始地址,以及數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)存儲(chǔ)深度。
圖3中開(kāi)放總線模塊提供了一個(gè)向用戶開(kāi)放的總線,使用戶可以充分利用CPU、存儲(chǔ)器的資源。此外,圖3中的通用通信接口和測(cè)試電路向用戶提供了局部連接和測(cè)試輸入輸出通道。
從以上模塊設(shè)計(jì)的結(jié)果可以看出,這種結(jié)構(gòu)的智能傳感器具有完整的藍(lán)牙通信功能,同時(shí),為用戶提供了應(yīng)用處理的靈活性。例如,LMP中的認(rèn)證和加密方法與算法完全由用戶自行決定,從而提供了用戶系統(tǒng)的安全性和可靠性。另外,由于通用串行通信接口和測(cè)試電路的存在,為用戶系統(tǒng)提供了硬件測(cè)試的硬件支持。
根據(jù)圖3和上述分析,可以得到用于智能傳感器的嵌入式藍(lán)牙SoC器件的電路結(jié)構(gòu),如圖5 所示。

圖5 用于智能傳感器的嵌入式藍(lán)牙SoC電路結(jié)構(gòu)
通信棧模塊調(diào)用操作流程如圖6 所示。

圖6 嵌入式藍(lán)牙通信棧的調(diào)用流程
結(jié)語(yǔ)
把藍(lán)牙協(xié)議棧嵌入到智能傳感器中,將為控制系統(tǒng)提供十分靈活的組成方式;同時(shí),通過(guò)采用相應(yīng)的安全措施,可以提高系統(tǒng)的安全性和可靠性。
本文通過(guò)對(duì)藍(lán)牙協(xié)議棧和智能傳感器工作特征的分析,設(shè)計(jì)了智能傳感器中嵌入藍(lán)牙協(xié)議棧的SoC結(jié)構(gòu)。為了滿足智能傳感器的應(yīng)用,嵌入式藍(lán)牙SoC中,CPU、存儲(chǔ)器以及相應(yīng)的總線和外部電路應(yīng)向用戶開(kāi)放。對(duì)于用戶而言,只要設(shè)計(jì)相應(yīng)的傳感器前置電路,即可形成具有藍(lán)牙通信功能的智能傳感器。由于藍(lán)牙通信協(xié)議的操作功能已經(jīng)保存在ROM中,所以用戶只需要調(diào)用相應(yīng)的軟件程序即可完成藍(lán)牙通信。同時(shí),這種SoC中的藍(lán)牙協(xié)議棧中有關(guān)認(rèn)證和加密的部分向用戶開(kāi)放,具體的認(rèn)證、加密方法和算法可由用戶自行定義。
此外,本文對(duì)智能傳感器嵌入式藍(lán)牙SoC 中藍(lán)牙協(xié)議棧進(jìn)行了簡(jiǎn)化處理。
參考文獻(xiàn)
1 朱剛,談?wù)褫x,周賢偉. 藍(lán)牙技術(shù)原理與協(xié)議. 北京:北方交通大學(xué)出版社,2002
2 嚴(yán)紫建,劉元安. 藍(lán)牙技術(shù). 北京:北京郵電大學(xué)出版社,2001
3 禹帆. 藍(lán)牙技術(shù). 北京:清華大學(xué)出版社,2002
4 Specification of the Bluetooth System. 1999-12-01





