<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 智能傳感器的藍牙協(xié)議棧與SoC結(jié)構(gòu)設(shè)計

          智能傳感器的藍牙協(xié)議棧與SoC結(jié)構(gòu)設(shè)計

          作者: 時間:2004-12-11 來源:網(wǎng)絡(luò) 收藏
          摘要:通過對棧和功能要求的分析,討論用于設(shè)計的嵌入式的基本結(jié)構(gòu),以及功能組成要求。根據(jù)討論結(jié)果,設(shè)計相應(yīng)的電路結(jié)構(gòu)。

          關(guān)鍵詞: 基帶

          引 言

          ??藍牙技術(shù)是一種無線數(shù)據(jù)與數(shù)字通信的開放性規(guī)范。它以低成本、近距離無線連接為基礎(chǔ),為固定與移動設(shè)備建立了一種完整的通信方式和技術(shù)。藍牙技術(shù)的實質(zhì)是建立通用無線接口及其控制軟件的標(biāo)準(zhǔn),使移動通信與計算機網(wǎng)絡(luò)之間能實現(xiàn)無縫連接,由此,為不同廠家生產(chǎn)的便攜式設(shè)備提供了近距離(10m~100m)范圍內(nèi)的互操作通道。

            在工業(yè)控制系統(tǒng)和許多應(yīng)用領(lǐng)域,隨著電子技術(shù)的發(fā)展,目前控制器和傳感器已經(jīng)實現(xiàn)了智能化。在一般的傳感器或測試儀表中,大量使用CPU 控制下的數(shù)字化技術(shù),因此,許多控制系統(tǒng)或傳感器系統(tǒng)已經(jīng)實現(xiàn)了數(shù)字化傳輸。如果在數(shù)字化的控制系統(tǒng)和傳感器中嵌入藍牙技術(shù),則可以實現(xiàn)系統(tǒng)數(shù)據(jù)和控制命令的無線傳輸,這對于許多應(yīng)用領(lǐng)域都是十分重要的。

            本文通過對藍牙棧結(jié)構(gòu)的討論,提出一個嵌入式SoC 器件結(jié)構(gòu)。這個嵌入式SoC器件是一種具有藍牙通信功能的SoC 器件;SoC 中的CPU 對用戶開放,用戶可以使用這種結(jié)構(gòu)的SoC 器件實現(xiàn)智能傳感器或控制器單元。

          1 藍牙協(xié)議棧

            藍牙技術(shù)規(guī)范1.0 版本作了如下規(guī)定。

          ① 藍牙工作在全球通用的2.4GHz ISM(Industrial ,Scientific and Medical)免付費、免申請的無線電頻段。

          ② 采用快速確認和跳頻技術(shù),以確保鏈路的穩(wěn)定。

          ③ 采用二進制調(diào)頻(FM)技術(shù)的跳頻收發(fā)器,抑制干擾和防止衰落。

          ④ 采用前向糾錯(FEC)技術(shù),抑制長距離鏈路的隨機噪聲。

          ⑤ 數(shù)據(jù)傳輸速率為1Mb/s 。

          ⑥ 采用時分雙工傳輸,其基帶協(xié)議是電路交換和分組交換的結(jié)合。

          ⑦ 一個跳頻頻率發(fā)送一個同步分組,每個分組占用一個時隙,也可擴展到5個時隙。

          ⑧ 支持一個異步數(shù)據(jù)通道,或3個并發(fā)的同步語音通道,或一個同時傳送異步數(shù)據(jù)和同步語音的通道。每一個語音通道支持64Kbps 的同步話音。異步通道支持最大速率為721Kbps 、反向應(yīng)答速率為57.6Kbps 的非對稱連接,或者是432.6bps 的對稱連接。

            目前,工作在2.4GHz 頻段上的無線局域網(wǎng)技術(shù)中,除了藍牙技術(shù)外,還有IEEE802.11、HomeRF 和紅外技術(shù)??偟膩碚f,IEEE802.11 比較適合于辦公室無線網(wǎng)絡(luò),HomeRF 適用于家庭中的移動數(shù)據(jù)、語音設(shè)備等與主機之間的通信,而藍牙技術(shù)則可以應(yīng)用于任何允許無線方式替代線纜的場合。

            在實際應(yīng)用中,藍牙技術(shù)的應(yīng)用一般采用嵌入式技術(shù)。在應(yīng)用系統(tǒng)中嵌入藍牙協(xié)議棧,可為系統(tǒng)提供一個透明的無線網(wǎng)絡(luò)通信層。

            藍牙技術(shù)協(xié)議棧的設(shè)計只有符合藍牙技術(shù)規(guī)范的要求,才能實現(xiàn)不同廠家產(chǎn)品的無縫對接。藍牙技術(shù)規(guī)范(specification)包括協(xié)議(protocol)和應(yīng)用規(guī)范(profile)兩個部分。完整的藍牙協(xié)議棧如圖1 所示。

            協(xié)議規(guī)范中定義了各功能元素的工作方式,提供了藍牙技術(shù)實現(xiàn)中功能元素間的橫向體系結(jié)構(gòu)。應(yīng)用規(guī)范則介紹了實現(xiàn)特定應(yīng)用模型,描述了各層協(xié)議間的協(xié)同機制,從而提供了技術(shù)實現(xiàn)的縱向體系結(jié)構(gòu)。

            藍牙協(xié)議包括核心協(xié)議層、替代電纜協(xié)議層、電話控制協(xié)議層和選用協(xié)議層。

          ① 核心協(xié)議。核心協(xié)議包括基帶協(xié)議、鏈路管理協(xié)議(LMP)、邏輯鏈路控制和適配協(xié)議(L2CAP)、服務(wù)發(fā)現(xiàn)協(xié)議(SDP)。

          ② 替代電纜協(xié)議。替代電纜協(xié)議包括串行電路仿真協(xié)議(RFCOMM),用于實現(xiàn)數(shù)據(jù)的轉(zhuǎn)換。

          ③ 電話替代協(xié)議。本協(xié)議包括二元電話控制規(guī)范(TCS Binary)與AT-命令(AT-command)。用于提供音頻通信的處理規(guī)范和相應(yīng)的控制命令。

          ④ 選用協(xié)議。選用協(xié)議與用戶的應(yīng)用有關(guān),包括點到點協(xié)議(PPP)、用戶數(shù)據(jù)報/傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(UDP 和TCP/IP)、目標(biāo)交換協(xié)議(OBEX)、無線應(yīng)用協(xié)議(WAP)、無線應(yīng)用環(huán)境(WAE)、vCard 、vCal 、紅外移動通信(IrMC)。選用協(xié)議層的具體內(nèi)容由應(yīng)用系統(tǒng)根據(jù)需要選擇。

            除了以上協(xié)議層外,藍牙協(xié)議棧中還應(yīng)包括二個接口:一個是主機控制接口(HCI),用來為基帶控制器、鏈路控制器以及訪問硬件狀態(tài)和控制寄存器等提供了命令接口;另一個是與基帶處理部分直接相連的音頻接口,用以傳遞音頻數(shù)據(jù)。

            在藍牙協(xié)議棧中,HCI 以上部分通常用軟件實現(xiàn),包括邏輯鏈路控制和適配協(xié)議L2CAP、串行仿真RFCOMM 、鏈路管理協(xié)議(LMP )、電話替代協(xié)議和選用協(xié)議;而HCI以下部分則用硬件實現(xiàn),包括基帶協(xié)議和鏈路管理協(xié)議(LMP),這部分也叫作藍牙協(xié)議體系結(jié)構(gòu)中的底層硬件模塊。

          2 藍牙核心協(xié)議棧硬件電路結(jié)構(gòu)

            底層模塊是藍牙技術(shù)的核心模塊,主要由射頻(RF)單元電路、基帶層(base band)電路和鏈路管理層(LMP,Link Manger Protocol)電路組成。

          (1)射頻(RF)單元

            RF單元電路為藍牙技術(shù)提供了通信中的物理層,也叫作藍牙收發(fā)器。通過2.4GHz 的微波,實現(xiàn)數(shù)據(jù)流的過濾和傳輸。藍牙協(xié)議提供了有關(guān)藍牙收發(fā)器的各項技術(shù)指標(biāo)。

          (2)基帶層電路

            基帶層提供了基帶數(shù)字信號處理硬件,其功能是提供鏈路控制,因此也叫作基帶及鏈路控制層電路。通過基帶層電路,可以建立藍牙通信網(wǎng)絡(luò)中的物理鏈路,從而形成微微網(wǎng)(piconet)?;鶐又杏袃煞N物理鏈路,一種是面向連接的同步鏈路(SCO),另一種是異步無連接鏈路(ACL)。此外,基帶層還可為語音和數(shù)據(jù)分組提供不同水平的前向糾錯(FEC)或循環(huán)冗余度校驗(CRC)處理,并可對數(shù)據(jù)進行加密。同時,基帶層電路還為不同類型的數(shù)據(jù)(包括傳輸信息數(shù)據(jù)、鏈路管理和控制信息)提供特定的信道。

          (3)鏈路管理層(LMP)電路

            鏈路管理層電路也叫作鏈路管理器電路,功能是提供鏈路管理通信協(xié)議。鏈路管理協(xié)議用來對鏈路進行設(shè)置和控制,并負責(zé)建立和撤銷各藍牙設(shè)備間的連接、功率控制以及認證和加密,同時還控制藍牙設(shè)備的工作狀態(tài)(保持hold 、休眠park 、呼吸sniff 和活動active )。鏈路管理層的主要功能由軟件完成,鏈路管理器電路提供運行于藍牙設(shè)備的處理器中的軟件。鏈路管理器之間的通信協(xié)議稱為鏈路管理協(xié)議(LMP)。

            藍牙技術(shù)整體框架以HCI(Host Controller Interface)為界,區(qū)分為硬件模塊以及上層軟件協(xié)議兩部分。

            藍牙技術(shù)標(biāo)準(zhǔn)中,選擇了USB、UART 或是RS232 作為硬件模塊與主機間的接口。當(dāng)藍牙模塊以USB、UART或RS232中的任何一個接口與主機連接時,HCI 接口上層的通信協(xié)議由主機負責(zé)處理,而HCI 接口下層的通信協(xié)議則由模塊內(nèi)的基帶層芯片與RF 芯片負責(zé)。

            根據(jù)藍牙標(biāo)準(zhǔn),藍牙系統(tǒng)的基本組成包括天線、收發(fā)器、基帶控制器。由此可知,在天線、RF收法器和基帶控制器的支持下,藍牙系統(tǒng)的組成可以十分靈活,即可實現(xiàn)多種不同的實現(xiàn)方案。

            嵌入式藍牙系統(tǒng)是將RF和基帶部分集成在一塊芯片上,單芯片藍牙硬件模塊結(jié)構(gòu)如圖2所示。在嵌入式藍牙器件中,硬件結(jié)構(gòu)可分為鏈路管理器、鏈路控制器與RF模塊3部分,負責(zé)處理LMP層、基帶層與RF層的協(xié)議。鏈路管理器內(nèi)包含處理器(CPU)、內(nèi)存等組件。鏈路管理器與基帶層芯片合稱為鏈路控制器。RF模塊內(nèi)含RF射頻發(fā)射組件,與主機相連接的接口位于鏈路控制器上。

            在嵌入式方案中,藍牙協(xié)議的上層軟件協(xié)議也全部固化在芯片中,芯片通過USB或UART接口與應(yīng)用系統(tǒng)相連接。由于片內(nèi)嵌入了CPU,所以,嵌入式藍牙系統(tǒng)實際上是一個智能終端,適合于任何具有CPU器件的系統(tǒng)。例如,智能傳感器中,只要增加一個單芯片藍牙器件,就可以組成一個以藍牙為通信方式的傳感器。

            由圖2可知,它由微處理器(CPU)、無線收發(fā)器(RF)、基帶控制器(BB)、閃存(Flash程序存儲器)、通用異步收發(fā)器UART(Universal Asynchronous Receiver Transmitter)、通用串行接口USB(Universal Serial Bus)及藍牙測試模塊組成。其中藍牙基帶控制器是藍牙硬件模塊的關(guān)鍵模塊。其主要功能是在微處理器控制下,實現(xiàn)藍牙基帶部分的所有實時處理功能,包括負責(zé)對接收的bit流進行符號定時提取和恢復(fù);分組頭及凈荷的循環(huán)冗余度校驗(CRC),分組頭及凈荷的前向糾錯碼FEC處理,加密和解密處理等,且能提供從基帶控制器到其它芯片的接口等。CPU一般采用RISC結(jié)構(gòu)的嵌入式微處理器,如ARM7TDMI微處理器,才能滿足對藍牙核心協(xié)議的高速處理和大量數(shù)據(jù)bit流的處理。Flash存儲器用于存放基帶和鏈路管理層中的所有協(xié)議軟件。SRAM作為CPU 的運行空間,在工作時把Flash中的軟件調(diào)入SRAM中處理。射頻收發(fā)器負責(zé)接收或發(fā)送高頻的通信信號。UART和USB接口提供到HCI的主機控制器接口傳輸層的物理連接,是上層協(xié)議與藍牙硬件模塊進行通信的通道。藍牙測試模塊主要提供無線層和基帶層的認證和一致性規(guī)范,同時還管理產(chǎn)品的生產(chǎn)和售后的測試,為可選模塊。

          3 嵌入藍牙協(xié)議棧的SoC

            根據(jù)上述藍牙協(xié)議棧硬件結(jié)構(gòu)可以看出,如果使用SoC 藍牙協(xié)議棧,則可以實現(xiàn)嵌入藍牙通信模塊,同時向用戶開放內(nèi)部CPU的目的。

            在設(shè)計嵌入藍牙協(xié)議的SoC 結(jié)構(gòu)時,需要考慮如下問題。

          ① 數(shù)據(jù)處理能力與速度。數(shù)據(jù)處理能力主要體現(xiàn)在兩個方面:一個是數(shù)據(jù)緩沖存儲器的規(guī)模,另一個是對數(shù)據(jù)處理算法支持的程度。數(shù)據(jù)處理速度是一個重要的問題。數(shù)據(jù)處理速度不僅與系統(tǒng)時鐘頻率有關(guān),還與CPU 和內(nèi)部總線的結(jié)構(gòu)直接相關(guān)。

          ② 通信操作與系統(tǒng)運行的關(guān)系。在嵌入了藍牙通信棧的SoC 中,通信是系統(tǒng)的一個功能,SoC 還需要實現(xiàn)系統(tǒng)的其它功能。由于CPU 串行結(jié)構(gòu)的特點,當(dāng)系統(tǒng)需要同時啟用通信功能和其它重要功能時(例如實施系統(tǒng)的數(shù)據(jù)采集操作等),就需要使用適當(dāng)?shù)姆椒ㄟM行協(xié)調(diào)。實際上這也就是嵌入式藍牙SoC 器件的系統(tǒng)實時性問題。

          ③ 器件的功率損耗。功率損耗是SoC 設(shè)計中的一個重要問題。除了采用相應(yīng)的技術(shù)實現(xiàn)最低功率損耗問題外,還必須通過系統(tǒng)降低系統(tǒng)的功率損耗。對于對功率損耗有特殊要求的系統(tǒng),低功耗設(shè)計更是必不可少的內(nèi)容。

            由上述三個要求可知,在嵌入式藍牙SoC中,如果數(shù)據(jù)處理量比較大,則需要考慮數(shù)據(jù)處理的速度問題。用戶系統(tǒng)CPU屬于串行工作方式,因此,在大數(shù)據(jù)量的通信過程中,如何完成系統(tǒng)的其它功能,是SoC結(jié)構(gòu)設(shè)計的一個重要方面。例如,使用藍牙技術(shù)傳輸圖像時,其中的通信系統(tǒng)必須保持連續(xù)工作狀態(tài),同時,還需要SoC中設(shè)計大量的Flash存儲器。由于傳輸圖像必須進行壓縮和解壓縮,所以,在保持通信連續(xù)和圖像的壓縮/解壓縮這兩種不同的操作中,就必須進行充分協(xié)調(diào),采用硬件并行處理的技術(shù)。這種情況下,CPU就僅僅是一個操作控制器件,用來啟動或終止某個操作。由此可知,應(yīng)當(dāng)針對不同類型的應(yīng)用場合設(shè)計相應(yīng)的SoC 結(jié)構(gòu)。

            對于智能傳感器,其基本功能如下。

          ① 信號轉(zhuǎn)換。這一部分電路的作用是把相應(yīng)的物理量轉(zhuǎn)換為電壓信號,然后對其進行放大和濾波處理。處理的結(jié)果作為數(shù)據(jù)采集電路的輸入信號。

          ② 數(shù)據(jù)采集。數(shù)據(jù)采集電路的功能是把信號轉(zhuǎn)換電路輸出的模擬信號轉(zhuǎn)換為數(shù)字信號(數(shù)據(jù)序列),然后把數(shù)字信號輸出給CPU,以便進行相應(yīng)的處理。

          ③ 數(shù)據(jù)處理。智能傳感器中的數(shù)據(jù)處理功能一般并不統(tǒng)一。一般情況下,需要數(shù)字濾波即可。有些智能傳感器還需要對信號進行其它處理,例如信號幅度的判別、信號特征的提取、顯示處理等??傊鶕?jù)不同的應(yīng)用領(lǐng)域,數(shù)據(jù)處理的要求不盡相同。

          ④ 數(shù)據(jù)傳輸。在控制系統(tǒng)中,智能傳感器采集并整理好的數(shù)據(jù),需要傳輸給系統(tǒng)的核心控制器或其它控制單元。由于控制系統(tǒng)的特點,數(shù)據(jù)傳輸一般需要經(jīng)過一段空間距離,因此,需要使用專門的電路和方式實現(xiàn)數(shù)據(jù)傳輸。例如,對數(shù)據(jù)進行編碼處理后,利用電流環(huán)或RS232 等方式傳輸。在現(xiàn)有控制系統(tǒng)中,絕大多數(shù)情況下都采用有線傳輸方式實現(xiàn)傳感器與控制系統(tǒng)的連接。

            對于智能傳感器來說,傳輸數(shù)據(jù)量一般并不是很大(例如壓力、溫度等傳感器),因此,滿足智能傳感器需要的嵌入式藍牙SoC 器件中,并不需要很大的存儲容量;但必須考慮藍牙協(xié)議實現(xiàn)所必需的程序存儲空間。從圖1 可以看出,藍牙協(xié)議棧的處理軟件會占用比較大的存儲器,因此,必須對其進行簡化。同時,為了保證控制系統(tǒng)安全可靠,還需要考慮使用用戶協(xié)議替代藍牙技術(shù)所定義的處理協(xié)議。

            由以上分析可以得出結(jié)論:

          ① 智能傳感器的數(shù)據(jù)傳輸量比較小,不需要進行壓縮或編碼處理,可以設(shè)置在1K字節(jié)以下。

          ② 為了保證控制系統(tǒng)的安全可靠性,需要把上層處理協(xié)議變?yōu)橛脩魧訁f(xié)議,由用戶自行編寫。

          為了設(shè)計滿足智能傳感器的嵌入式藍牙SoC結(jié)構(gòu),對藍牙協(xié)議棧進行了簡化處理,只使用藍牙協(xié)議中的核心協(xié)議和替代電纜協(xié)議。SoC 中的藍牙協(xié)議棧由軟件和硬件兩部分組成。核心協(xié)議中的基帶協(xié)議由硬件實現(xiàn),而鏈路管理和其它部分則使用軟件實現(xiàn)。所有有關(guān)協(xié)議的軟件存放在ROM 中,用戶使用通信棧時可直接調(diào)用。需要指出的是,通信棧的設(shè)計為一個整體,因此調(diào)用時也必須整體調(diào)用。換句話說就是,把通信棧看成是一個完整的子程序模塊加以調(diào)用。

          根據(jù)上述結(jié)論,提出一種具有開放使用戶協(xié)議的嵌入式藍牙SoC 模塊結(jié)構(gòu),如圖3 所示。

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

            另外,對藍牙協(xié)議棧中的LMP進行了相應(yīng)的簡化。在智能傳感器的應(yīng)用中,通信鏈路一般比較簡單,因此,LMP不需要對鏈路進行復(fù)雜的處理。本設(shè)計中,LMP的主要功能由軟件完成。當(dāng)需要使用藍牙通信發(fā)送數(shù)據(jù)或接收數(shù)據(jù)時,用戶程序只需調(diào)用LMP軟件模塊即可。LMP協(xié)議由兩部分組成:

          ① 軟件。通過CPU對鏈路進行設(shè)置和控制,實現(xiàn)藍牙設(shè)備連接、功率控制以及認證和加密,同時還控制藍牙設(shè)備控制器電路。

          ② 硬件。LMP控制器電路在LMP軟件的操作下,控制藍牙設(shè)備的工作狀態(tài)(保持hold、休眠park、呼吸sniff 和活動active)。

            圖3中的CPU通過開放總線模塊向用戶開放,用戶程序保存在用戶程序存儲器中。數(shù)據(jù)存儲器采用Flash 存儲電路,用來保存藍牙通信中的發(fā)送和接收數(shù)據(jù);同時,作為傳感器數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)存儲器。數(shù)據(jù)存儲器的使用分配由用戶決定,傳感器的設(shè)計者可通過用戶程序?qū)?shù)據(jù)存儲器進行分塊控制使用,通過用戶程序設(shè)置相應(yīng)的發(fā)送或接收數(shù)據(jù)存儲深度和起始地址,以及數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)存儲深度。

            圖3中開放總線模塊提供了一個向用戶開放的總線,使用戶可以充分利用CPU、存儲器的資源。此外,圖3中的通用通信接口和測試電路向用戶提供了局部連接和測試輸入輸出通道。

            從以上模塊設(shè)計的結(jié)果可以看出,這種結(jié)構(gòu)的智能傳感器具有完整的藍牙通信功能,同時,為用戶提供了應(yīng)用處理的靈活性。例如,LMP中的認證和加密方法與算法完全由用戶自行決定,從而提供了用戶系統(tǒng)的安全性和可靠性。另外,由于通用串行通信接口和測試電路的存在,為用戶系統(tǒng)提供了硬件測試的硬件支持。

            根據(jù)圖3和上述分析,可以得到用于智能傳感器的嵌入式藍牙SoC器件的電路結(jié)構(gòu),如圖5 所示。

          通信棧模塊調(diào)用操作流程如圖6 所示。

          結(jié) 語

            把藍牙協(xié)議棧嵌入到智能傳感器中,將為控制系統(tǒng)提供十分靈活的組成方式;同時,通過采用相應(yīng)的安全措施,可以提高系統(tǒng)的安全性和可靠性。

            本文通過對藍牙協(xié)議棧和智能傳感器工作特征的分析,設(shè)計了智能傳感器中嵌入藍牙協(xié)議棧的SoC結(jié)構(gòu)。為了滿足智能傳感器的應(yīng)用,嵌入式藍牙SoC中,CPU、存儲器以及相應(yīng)的總線和外部電路應(yīng)向用戶開放。對于用戶而言,只要設(shè)計相應(yīng)的傳感器前置電路,即可形成具有藍牙通信功能的智能傳感器。由于藍牙通信協(xié)議的操作功能已經(jīng)保存在ROM中,所以用戶只需要調(diào)用相應(yīng)的軟件程序即可完成藍牙通信。同時,這種SoC中的藍牙協(xié)議棧中有關(guān)認證和加密的部分向用戶開放,具體的認證、加密方法和算法可由用戶自行定義。

            此外,本文對智能傳感器嵌入式藍牙SoC 中藍牙協(xié)議棧進行了簡化處理。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();