2724 工程機(jī)械藍(lán)牙無(wú)線遠(yuǎn)程故障診斷系統(tǒng)研究
2724 工程機(jī)械藍(lán)牙無(wú)線遠(yuǎn)程故障診斷系統(tǒng)研究,工程機(jī)械,藍(lán)牙,無(wú)線,遠(yuǎn)程,故障診斷,系統(tǒng),研究,鉆研
1工程機(jī)械藍(lán)牙無(wú)線遠(yuǎn)程故障診斷系統(tǒng)研究第 1 章 緒 論1.1 概述該項(xiàng)目主要研究藍(lán)牙技術(shù)在工程機(jī)械監(jiān)控及故障診斷中無(wú)線數(shù)據(jù)傳感技術(shù),機(jī)群散射網(wǎng)中藍(lán)牙無(wú)線分布式通信、遠(yuǎn)程無(wú)線上網(wǎng)等的應(yīng)用。對(duì)工程機(jī)械工況參數(shù)進(jìn)行分析、處理,可實(shí)時(shí)控制施工進(jìn)度,提高施工質(zhì)量,加強(qiáng)作業(yè)管理。對(duì)工程機(jī)械進(jìn)行有效的監(jiān)測(cè)和故障診斷,不但可使工程機(jī)械正常高效地運(yùn)行,且使得設(shè)備在現(xiàn)場(chǎng)出現(xiàn)故障時(shí),能夠快速、準(zhǔn)確、可靠地確定故障原因和排除故障。工程機(jī)械結(jié)構(gòu)形式多種多樣,而且結(jié)構(gòu)復(fù)雜,再加上工程機(jī)械所處的工作環(huán)境復(fù)雜、條件惡劣,施工載荷不確定,所以導(dǎo)致其故障率較高。工程機(jī)械發(fā)生故障后會(huì)影響施工進(jìn)程,造成巨大損失。由于施工現(xiàn)場(chǎng)的操作人員常缺少故障診斷的專(zhuān)業(yè)知識(shí)和診斷設(shè)備,讓制造商或維修廠家快速有效地進(jìn)行故障診斷與排除是個(gè)很好的解決辦法。而工程機(jī)械大多數(shù)在野外進(jìn)行作業(yè)或在運(yùn)動(dòng)中,即現(xiàn)場(chǎng)沒(méi)有診斷設(shè)備和上網(wǎng)條件。基于藍(lán)牙技術(shù)的遠(yuǎn)程故障診斷系統(tǒng)由客戶端(遠(yuǎn)程監(jiān)測(cè)現(xiàn)場(chǎng)的數(shù)據(jù)采集處理和單機(jī)處理系統(tǒng)) 、網(wǎng)絡(luò)通信協(xié)議和遠(yuǎn)程故障診斷服務(wù)中心三個(gè)部分組成。工程機(jī)械設(shè)備的各種運(yùn)行狀態(tài)信息由不同傳感器采集, 本地用戶將反映現(xiàn)場(chǎng)設(shè)備狀態(tài)的數(shù)據(jù)通過(guò)現(xiàn)場(chǎng)監(jiān)控中心計(jì)算機(jī)經(jīng)由藍(lán)牙適配器和藍(lán)牙手機(jī)與 Internet 網(wǎng)絡(luò)連接,發(fā)送給遠(yuǎn)程故障診斷中心,并提請(qǐng)故障診斷及遠(yuǎn)程信息咨詢等服務(wù)。安裝在工程機(jī)械上的藍(lán)牙適配器和移動(dòng)設(shè)備(藍(lán)牙手機(jī))通過(guò)微微網(wǎng)連接,最大特征是可為用戶提供 10~100 米遠(yuǎn)的無(wú)線連接距離,接口方面兼容USB1.1/USB2.0??刹捎盟{(lán)牙接入點(diǎn)或藍(lán)牙手機(jī)上網(wǎng),進(jìn)行無(wú)線網(wǎng)絡(luò)通訊。藍(lán)牙采用了擴(kuò)頻技術(shù),使整個(gè)藍(lán)牙頻段內(nèi)噪聲影響變得最低。很大程度上抑止了無(wú)線電電磁干擾。基于藍(lán)牙技術(shù)的狀態(tài)監(jiān)測(cè)與遠(yuǎn)程故障診斷系統(tǒng)其特色是:1)實(shí)現(xiàn)無(wú)線數(shù)據(jù)采集和網(wǎng)絡(luò)通訊,免去有線電纜的連接,使得監(jiān)測(cè)網(wǎng)絡(luò)的調(diào)整和重組變得非常方便??梢詫?shí)現(xiàn)多臺(tái)工程機(jī)械之間的聯(lián)網(wǎng),便于進(jìn)行集中測(cè)控。2)實(shí)現(xiàn)無(wú)線移動(dòng)監(jiān)測(cè)。沒(méi)有方向上的限制,可以從各個(gè)角度進(jìn)行測(cè)控?cái)?shù)據(jù)2的傳輸。固定設(shè)備(工程機(jī)械)和移動(dòng)設(shè)備(筆記本、藍(lán)牙手機(jī))通過(guò)微微網(wǎng)連接,可達(dá)到 10~100 米遠(yuǎn)的無(wú)線連接距離,藍(lán)牙技術(shù)支持點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多點(diǎn)連接;3)實(shí)現(xiàn)無(wú)線遠(yuǎn)程通信和故障診斷。采用藍(lán)牙手機(jī)或藍(lán)牙適配器聯(lián)網(wǎng),藍(lán)牙3.0 技術(shù)標(biāo)準(zhǔn)傳輸速率可達(dá) 24Mb/s 以上;便于攜帶,功耗低,可靈活實(shí)現(xiàn)1.2 文獻(xiàn)綜述1998 年 5 月,愛(ài)立信、諾基亞、東芝、IBM 和英特爾公司等五家廠商,在聯(lián)合開(kāi)展短程無(wú)線通信技術(shù)的標(biāo)準(zhǔn)化活動(dòng)時(shí)提出了藍(lán)牙技術(shù),其宗旨是提供一種短距離、低成本的無(wú)線傳輸應(yīng)用技術(shù)。目前國(guó)內(nèi)藍(lán)牙技術(shù)正在飛速發(fā)展,北京清華大學(xué)汽車(chē)工程系康榮學(xué)等人,提出了一種施工機(jī)械狀態(tài)無(wú)線監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)對(duì)施工機(jī)械狀態(tài)的實(shí)時(shí)監(jiān)控。利用藍(lán)牙技術(shù)可將傳感器在線監(jiān)測(cè)數(shù)據(jù)傳送到計(jì)算機(jī)進(jìn)行處理,而經(jīng)過(guò)計(jì)算機(jī)處理后的信息可再經(jīng)藍(lán)牙技術(shù)傳至各臺(tái)設(shè)備。人工智能四川省(高校)重點(diǎn)實(shí)驗(yàn)室任小洪等人設(shè)計(jì)研究了一種能適用于工業(yè)現(xiàn)場(chǎng)的無(wú)線傳感器系統(tǒng)。該系統(tǒng)以藍(lán)牙模塊 BC006-C3 為核心,通過(guò)對(duì)藍(lán)牙 HCI(H ost Controller Interface)底層協(xié)議進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了一個(gè)具有主從網(wǎng)絡(luò)結(jié)構(gòu)的藍(lán)牙無(wú)線數(shù)據(jù)采集系統(tǒng)。文獻(xiàn)介紹了利用 MSP430 單片機(jī)進(jìn)行數(shù)據(jù)采集,并通過(guò)藍(lán)牙模塊將采集的數(shù)據(jù)以無(wú)線電波的方式發(fā)送到終端設(shè)備。文獻(xiàn)提出了一種基于藍(lán)牙技術(shù)的無(wú)線局域網(wǎng)解決方案。重慶郵電學(xué)院提出了適應(yīng)工業(yè)控制的現(xiàn)場(chǎng)級(jí)“藍(lán)牙”通信協(xié)議體系,介紹了適應(yīng)工業(yè)現(xiàn)場(chǎng)的“藍(lán)牙”適配器和連接有線控制網(wǎng)絡(luò)的“藍(lán)牙”接入設(shè)備的實(shí)現(xiàn)方法。文獻(xiàn)提出了基于一體化思想的工程機(jī)械監(jiān)測(cè)與故障診斷系統(tǒng)設(shè)計(jì)思想。東南大學(xué)研究了工程機(jī)械設(shè)備智能故障診斷專(zhuān)家系統(tǒng),通過(guò)無(wú)線網(wǎng)絡(luò)將單機(jī)的采集數(shù)據(jù)傳送到數(shù)據(jù)庫(kù)服務(wù)器端。研究了基于網(wǎng)絡(luò)平臺(tái)的機(jī)群狀態(tài)遠(yuǎn)程設(shè)備監(jiān)控與故障診斷系統(tǒng)實(shí)現(xiàn)了遠(yuǎn)程數(shù)據(jù)傳輸和對(duì)工程機(jī)械施工機(jī)群進(jìn)行遠(yuǎn)程狀態(tài)監(jiān)控。由于施工過(guò)程中各設(shè)備彼此分散,所以通過(guò)無(wú)線網(wǎng)絡(luò)構(gòu)建機(jī)群監(jiān)控中心與各分散設(shè)備的聯(lián)系,完成各設(shè)備之間的協(xié)同工作。機(jī)群監(jiān)控中心和各單機(jī)之間,在整體布局和功能上將系統(tǒng)構(gòu)造成分布分層式結(jié)構(gòu)。整個(gè)機(jī)群設(shè)置監(jiān)控中心,通過(guò)無(wú)線網(wǎng)絡(luò)將單機(jī)與監(jiān)控中心聯(lián)網(wǎng),實(shí)時(shí)監(jiān)控單機(jī)狀態(tài)。各臺(tái)單機(jī)共享同一專(zhuān)家診斷系統(tǒng),使機(jī)群設(shè)備的管理者和操作者能實(shí)時(shí)監(jiān)控設(shè)備狀態(tài),并獲取維護(hù)處理措施。國(guó)外一些著名的工程機(jī)械公司在故障診斷、遠(yuǎn)程監(jiān)控系統(tǒng)及整機(jī)智能控制方面取得了較大進(jìn)展。卡特彼勒公司 1998 年推出的 Cat 950G 計(jì)算機(jī)監(jiān)控系統(tǒng)3還配備有 Cat 指導(dǎo)診斷系統(tǒng)和以維修工具為基礎(chǔ)的 Cat 軟件包,使維修人員坐在汽車(chē)?yán)镉霉P記本電腦就能迅速而容易地診斷和排除故障。Cat 992G 在監(jiān)控裝載機(jī)各功能狀況并作出診斷的同時(shí)還能把這些信息數(shù)據(jù)作為履歷記錄下來(lái),無(wú)線傳送到辦公室用計(jì)算機(jī)進(jìn)行分析,從而防患于未然。沃爾沃(Volvo)公司的 L系列裝載機(jī)上也安裝有 Matris 軟件包,用以監(jiān)控和分析裝載機(jī)的工作狀態(tài);其小型裝載機(jī)上配有電子伺服控制及信息系統(tǒng)(ESIS) ,由液晶顯示屏和鍵盤(pán)組成,用來(lái)顯示和記錄各種信息,其自動(dòng)診斷功能記錄機(jī)器故障并儲(chǔ)存所有相關(guān)信息,通過(guò)編碼可以防盜。凱斯(Case)公司 21B、C 系列裝載機(jī)也采用計(jì)算機(jī)監(jiān)控系統(tǒng),其微處理器安裝在司機(jī)座椅的右側(cè),也具有故障診斷和工作狀態(tài)液晶顯示功能。藍(lán)牙特別興趣小組(SIG)宣布,采用低能量藍(lán)牙無(wú)線技術(shù),這是藍(lán)牙核心規(guī)格 4.0 版本的標(biāo)志功能。藍(lán)牙技術(shù)是一種跳頻系統(tǒng),標(biāo)準(zhǔn)的跳頻信號(hào) 1600跳/秒。藍(lán)牙自組織網(wǎng)絡(luò)可以把互連的幾個(gè)微微網(wǎng)形成一個(gè)散射網(wǎng),文獻(xiàn)介紹了基于藍(lán)牙無(wú)線網(wǎng)絡(luò)活塞的溫度遙測(cè)系統(tǒng)。文獻(xiàn)介紹了采用藍(lán)牙協(xié)議,GSM/GPRS 的遠(yuǎn)程醫(yī)療系統(tǒng)。1.3 基本內(nèi)容和擬解決的問(wèn)題1.3.1 基本內(nèi)容(1)藍(lán)牙遠(yuǎn)程無(wú)線故障診斷,嵌入式藍(lán)牙網(wǎng)關(guān)設(shè)計(jì),實(shí)現(xiàn)無(wú)線遠(yuǎn)程通信和故障診斷。利用藍(lán)牙技術(shù)解決工程機(jī)械在野外進(jìn)行作業(yè)或在運(yùn)動(dòng)中,即現(xiàn)場(chǎng)沒(méi)有診斷設(shè)備和有線上網(wǎng)條件的情況下實(shí)現(xiàn)遠(yuǎn)程無(wú)線通信和故障診斷的問(wèn)題(2)測(cè)試系統(tǒng)的拓?fù)浣Y(jié)構(gòu),遠(yuǎn)程故障診斷系統(tǒng)的結(jié)構(gòu)及運(yùn)行模式。(3)現(xiàn)場(chǎng)檢測(cè)數(shù)據(jù)和數(shù)據(jù)采集系統(tǒng)、設(shè)計(jì)水溫藍(lán)牙無(wú)線傳感器、故障診斷專(zhuān)家系統(tǒng)等模塊。1.3.2 擬解決的問(wèn)題⑴網(wǎng)路通信結(jié)構(gòu)與實(shí)現(xiàn),測(cè)試系統(tǒng)的拓?fù)浣Y(jié)構(gòu),遠(yuǎn)程故障診斷系統(tǒng)的結(jié)構(gòu)及運(yùn)行模式。⑵現(xiàn)場(chǎng)檢測(cè)和數(shù)據(jù)采集系統(tǒng)、設(shè)計(jì)水溫藍(lán)牙無(wú)線傳感器、故障診斷專(zhuān)家系統(tǒng)模塊的建立。⑶嵌入式藍(lán)牙網(wǎng)關(guān)的研究。4第 2 章 嵌入式藍(lán)牙網(wǎng)關(guān)的研究2.1 開(kāi)發(fā)環(huán)境的搭建嵌入式藍(lán)牙硬件的部分以 ARM9 微處理器為核心,外圍有存儲(chǔ)器模塊、以太網(wǎng)借口模塊、調(diào)試接口模塊、基于 USB 接口的藍(lán)牙模塊組成。硬件總體框圖如圖所示:圖 2-1 嵌入式藍(lán)牙網(wǎng)關(guān)硬件平臺(tái)框圖2.1.1 微處理器模塊硬件平臺(tái)采用韓國(guó)三星的 ARM 處理器 S3C2410 作為微處理器,這是一款基于 ARM920T 內(nèi)核,采用 0.18 微米工藝的 32 位微處理器,低價(jià)格,高性能,高集成度使得用戶可以節(jié)省系統(tǒng)成本和提高系統(tǒng)性能。ARM920T 支持兩種指令集:ARM 指令集和 Thumb 指令集,其中,ARM 指令集為 32 位的長(zhǎng)度,Thumb 指令 16 位長(zhǎng)度。Thumb 指令集為 ARM 指令集的功能子集,但與等價(jià)的Internet以太網(wǎng)接口模塊MCU調(diào)制接口模塊 存儲(chǔ)模塊藍(lán)牙模塊5ARM 代碼相比較,可以節(jié)省 30%-40%以上的存儲(chǔ)空間,同時(shí)具備 32 位代碼的所有優(yōu)點(diǎn)。同時(shí),S3C2410 芯片集成了大量的功能單元,包括:16KB 指令和 16KB 數(shù)據(jù)的緩存(cache), MMU、內(nèi)置外部存儲(chǔ)器控制器、LCD 控制器、4 個(gè)帶外部請(qǐng)求線的 DMA、3 個(gè)通用異步串行端口、1 通道的 SPI、一個(gè)多主 llC 總線、一個(gè) IIS總線控制器、兩個(gè) USB 的主機(jī)(host)單元,一個(gè) USB 的設(shè)備(device) 接口、1 17個(gè)通用 I/O、觸摸屏接口和 8 個(gè)通道的 10-bitADC 以及實(shí)時(shí)時(shí)鐘單元 RTC 等等。S3C2410 是嵌入式藍(lán)牙網(wǎng)關(guān)的主處理器部分,同時(shí)也是整個(gè)硬件電路的核心模塊,負(fù)責(zé)控制其他外圍設(shè)備,管理著系統(tǒng)的平穩(wěn)運(yùn)行。2.1.2 存儲(chǔ)器模塊存儲(chǔ)器模塊包括一片 16Mbytes 的 NOR FLASH 和兩片 16Mbytes SDRAM。FLASH 用于固化 Bootloader 程序和 LINUX 內(nèi)核映像文件和文件系統(tǒng)以及藍(lán)牙協(xié)議棧和所有應(yīng)用程序,SDRAM 是程序運(yùn)行的區(qū)域。GX-ARM9-2410A 型開(kāi)發(fā)板的 RAM 是由兩片 16M×16 位數(shù)據(jù)寬度的SDRAM 構(gòu)成,兩片拼成 32 位模式,共 64M,公用 nGCS6。地址范圍為0x30000000~0x34000000,起始物理實(shí)地址:0x30000000,經(jīng) MMU 映射后地址為 0xC0000000。nGCS0 接的是一片 8M×16 位數(shù)據(jù)寬度的 INTEL E28F128 FLASH,地址范圍為 0x1000000~0x02000000,按照 S3C2410 處理器手冊(cè),Nor FLASH 安裝在 Bank0,地址應(yīng)該為 0,但由于 S3C2410 地址是循環(huán)映射,0x10000000 就是 0 地址,其中引導(dǎo)代碼 Bootloader,就燒寫(xiě)在地址 0 處,內(nèi)核zImage 燒寫(xiě)在 0x1040000 開(kāi)始處,根文件系統(tǒng)燒寫(xiě)在 0x01140000 地址處。2.1.3 以太網(wǎng)接口模塊S3C2410 處理器是一款高性能、低功耗、高集成度的片上系統(tǒng),它本身集成了兩個(gè)以太網(wǎng)接口,分別為通過(guò) C8900 擴(kuò)展的 10M 以太網(wǎng)接口和通過(guò) DM9000擴(kuò)展的 10M/100M 以太網(wǎng)接口,因此很容易實(shí)現(xiàn)網(wǎng)絡(luò)接入功能,這兩個(gè)接口使得嵌入式藍(lán)牙網(wǎng)關(guān)以有線方式與局域網(wǎng)相連。2.1.4 調(diào)試接口模塊通常硬件調(diào)試接口有 JTAG 和 BDM 兩種,ARM 系列芯片所需要的測(cè)試工6具接口是 JTAG,可以用該接口進(jìn)行在線仿真、調(diào)試、下載和燒寫(xiě) ROM 等操作。另外,嵌入式開(kāi)發(fā)時(shí)往往還需要一個(gè)監(jiān)視口,我們用串口 0 來(lái)承擔(dān),網(wǎng)口既是與局域網(wǎng)的通信接口,也是開(kāi)發(fā)過(guò)程中從主機(jī)下載 Image 文件到目標(biāo)機(jī)的高速通道??傮w而一言,在設(shè)計(jì)硬件電路的時(shí)候,要保證所提供的接口能夠同時(shí)滿足基本通信過(guò)程和調(diào)試過(guò)程。2.1.5 USB 藍(lán)牙接口模塊硬件平臺(tái)采用外擴(kuò) USB 藍(lán)牙適配器來(lái)實(shí)現(xiàn)嵌入式藍(lán)牙網(wǎng)關(guān)的無(wú)線通信,本設(shè)計(jì)采用的是力特公司的一款基于藍(lán)牙規(guī)范 2.0 設(shè)計(jì)生產(chǎn)的藍(lán)牙適配器。藍(lán)牙適配器的特性如下:(1)具有橋接功能,能夠完整覆蓋商用和家用應(yīng)用環(huán)境。無(wú)線網(wǎng)絡(luò)(WirelessLAN)通過(guò)無(wú)線電傳輸及接收數(shù)據(jù),使得電腦間及電腦與其它網(wǎng)絡(luò)設(shè)備之間可以不經(jīng)由電線或是網(wǎng)絡(luò)線建立無(wú)線連接。(2)藍(lán)牙 2.0 規(guī)范支持全新的 EDR Profile(提高數(shù)據(jù)傳輸速率) ,最高帶寬將高達(dá) 36Mbps。而在對(duì)藍(lán)牙語(yǔ)音的支持上面,2.0 藍(lán)牙設(shè)備也有更大的優(yōu)勢(shì),可提供更優(yōu)良的音質(zhì)。(3)新增的 oneButtonConnect 按鍵,其人性化的設(shè)計(jì)提供用戶直接與藍(lán)牙鍵盤(pán)、鼠標(biāo)立即連接的功能,而不需要再安裝藍(lán)牙管理軟件,非常方便。(4)采用 Broadcom 藍(lán)牙芯片,支持微微網(wǎng),支持 7 個(gè)藍(lán)牙子設(shè)備同時(shí)工作,并可以和更多的從設(shè)備(最多可達(dá) 256 個(gè)) 保持同步但不進(jìn)行通信。(5)高達(dá) 2MB 的內(nèi)存。提供藍(lán)牙通信緩沖及藍(lán)牙固件存儲(chǔ),確保通信可靠度。 2.2 嵌入式藍(lán)牙網(wǎng)關(guān)的協(xié)議體系結(jié)構(gòu)結(jié)合嵌入式藍(lán)牙網(wǎng)關(guān)的功能,可以得出嵌入式藍(lán)牙網(wǎng)關(guān)的協(xié)議體系結(jié)構(gòu)圖,如圖所示:網(wǎng)絡(luò)應(yīng)用(HTTP、FTP)TCP/IP 等網(wǎng)絡(luò)協(xié)議PPP虛擬串口RFCOMML2CAPSDPHCLBBRF課題實(shí)現(xiàn)7圖 2-2 嵌入式藍(lán)牙網(wǎng)關(guān)協(xié)議體系結(jié)構(gòu)從結(jié)構(gòu)圖可知在嵌入式藍(lán)牙網(wǎng)關(guān)使用藍(lán)牙協(xié)議棧承載 PPP 協(xié)議來(lái)支持上層TCP/IP 網(wǎng)絡(luò)的協(xié)議,虛擬串口向上模擬真實(shí)串口的行為,向下與藍(lán)牙協(xié)議棧的RFCOMM 進(jìn)行通信。L2CAP、RFCOMM、SDP 層協(xié)議以及虛擬串口是軟件的核心部分,負(fù)責(zé)藍(lán)牙連接的建立、管理和數(shù)據(jù)收發(fā)。藍(lán)牙協(xié)議中HCL、LMP、 BB 協(xié)議已經(jīng)固化到硬件中,無(wú)需開(kāi)發(fā)。2.2.1 L2CAP 協(xié)議的實(shí)現(xiàn)L2CAP 協(xié)議在藍(lán)牙協(xié)議中屬于中間協(xié)議層部分,下層連接主機(jī)控制接口,上層連接 RFCOMM,是整個(gè)協(xié)議棧中非常重要的一個(gè),也是最復(fù)雜的一個(gè),它的主要作用是向上層提供一個(gè)可靠的 L2CAP 鏈接。為了實(shí)現(xiàn)這一點(diǎn)它必須與上層協(xié)議、下層協(xié)議和對(duì)等 L2CAP 協(xié)議進(jìn)行各種交互。L2CAP 為高層提供數(shù)據(jù)服務(wù),需要注意的是它不保證信道的可靠性以及數(shù)據(jù)的完整性,L2CAP 是通過(guò)基帶提供的機(jī)制來(lái)提供一條可靠的信道。它只支持基帶異步無(wú)連接傳輸服務(wù)(ACL),不支持同步面向連接的服務(wù)(SCO)。L2CAP 數(shù)據(jù)包是利用基帶的 ACL 數(shù)據(jù)包來(lái)傳輸。L2CAP 協(xié)議的主要功能有:(1)協(xié)議復(fù)用L2CAP 必須支持協(xié)議復(fù)用,因?yàn)樗{(lán)牙的基帶協(xié)議并不支持通過(guò)類(lèi)型字段區(qū)分復(fù)用的高層協(xié)議功能,因此 L2CAP 必須能夠?qū)⑦@些高層協(xié)議區(qū)分開(kāi)。(2)分段與重組藍(lán)牙基帶協(xié)議中定義的數(shù)據(jù)分組長(zhǎng)度是有限的,而藍(lán)牙的高層協(xié)議則需要更大的分組來(lái)發(fā)送?;鶐Х纸M有效載荷最大為 341 字節(jié),如果用這種最大傳輸單位(MTU)來(lái)傳輸高層協(xié)議,將會(huì)限制帶寬的利用率。因此 L2CAP 分組必須能夠在LMP8無(wú)線傳輸前分成許多小的基帶分組;在接收端,經(jīng)過(guò)簡(jiǎn)單的完整檢查后,這些小的分組能夠重新組合成一個(gè)較大的 L2CAP 分組。(3)在 L2CAP 連接建立的過(guò)程中允許兩臺(tái)藍(lán)牙設(shè)備之間交換各自所期望的 服務(wù)質(zhì)量消息。執(zhí)行 L2CAP 的設(shè)備必須對(duì)協(xié)議所使用的資源進(jìn)行監(jiān)視,以保證能都達(dá)到所期望的服務(wù)質(zhì)量。(4)組許多協(xié)議中都包含有地址組的概念。藍(lán)牙基帶協(xié)議支持微微網(wǎng)的概念,在一個(gè)微微網(wǎng)中最多可以有八個(gè)藍(lán)牙設(shè)備,這些設(shè)備組成一個(gè)組在同一個(gè)時(shí)鐘下同步的工作。L2CAP 衛(wèi)中組的概念可以把協(xié)議中的組有效的映射到微微網(wǎng)中。如果沒(méi)有這項(xiàng)功能,高層協(xié)議將直接面對(duì)基帶協(xié)議和鏈路管理器,刁能達(dá)到對(duì)地址組的有效管理。2.2.2 L2CAP 的互操作客戶端藍(lán)牙設(shè)備 服務(wù)器端藍(lán)牙設(shè)備L2CAP 請(qǐng)求 L2CAP 確認(rèn) L2CAP 響應(yīng) L2CAP 指示L2CAP 請(qǐng)求底層請(qǐng)求 底層確認(rèn) L2CAP 響應(yīng) 底層響應(yīng) 底層指示物理鏈路圖 2-3 L2CAP 層的互操作圖 2-3 顯示了 L2CAP 層的互操作過(guò)程, L2CAP 實(shí)體必須能夠在高層和底層之間傳輸數(shù)據(jù)。同時(shí)支持一組對(duì)等的 L2CAP 實(shí)體信令命令。L2CAP 實(shí)體必須能夠接收底層來(lái)的事件,然后產(chǎn)生響應(yīng)的事件給上層。2.2.3 L2CAP 的數(shù)據(jù)處理方式 L2CAP 通過(guò)分段重組的形式來(lái)處理數(shù)據(jù)的收發(fā),分段和重組用來(lái)支持MTU 比基帶數(shù)據(jù)包更大的協(xié)議層,從而提高通信的效率。從 L2CAP 往基帶發(fā)送數(shù)據(jù)時(shí),執(zhí)行分段處理,產(chǎn)生更小的數(shù)據(jù)包,適合基帶傳輸,從基帶 L2CAP發(fā)送數(shù)據(jù)時(shí),執(zhí)行重組處理,組合成適合 L2CAP 的數(shù)據(jù)格式,L2CAP 層本身上層協(xié)議 上層協(xié)議L2CAP底層L2CAP底層9并不執(zhí)行任何分段和重組,但是數(shù)據(jù)包格式支持對(duì)更小物理幀的適配,分段和重組在實(shí)現(xiàn)時(shí)使用很小的基帶包開(kāi)銷(xiāo)。2.2.4 L2CAP 的數(shù)據(jù)包L2CAP 是基于分組傳輸?shù)?,遵循信道傳輸模型,跳信道代表一?duì)本地和遠(yuǎn)程設(shè)備 L2CAP 實(shí)體間的數(shù)據(jù)流。 L2CAP 支持的信道有兩種:面向的連接信道和面向無(wú)連接的信道。面向連接信道:L2CAP 包頭 LSB 16bits 16bits MSB圖 2-4 L2CAP 層的數(shù)據(jù)封裝格式面向無(wú)連接信道:LSB 16bits 16bits ≥16bits MSB圖 2-5 L2CAP 層的數(shù)據(jù)封裝格式無(wú)連接的數(shù)據(jù)信道支持組傳輸,數(shù)據(jù)通過(guò)組信道被發(fā)往所有的組成員,完成上層協(xié)議組地址與藍(lán)牙微微網(wǎng)的映射,但是在組信道中不提供服務(wù)質(zhì)量,因此組信道通常是不可靠的,L2CAP 不保證數(shù)據(jù)能成功發(fā)往所有組成員,如果需要可靠的傳輸,需要上層協(xié)議的支持。2.2.5 L2CAP 的狀態(tài)流程L2CAP 面向連接的信道假定不同協(xié)議層進(jìn)行通信有不同的狀態(tài)。協(xié)議的這一部分描述了 L2CAP 衛(wèi)面向連接信道的狀態(tài)機(jī),并定義了一些狀態(tài),引起狀態(tài)轉(zhuǎn)換的事件,以及響應(yīng)事件的動(dòng)作。藍(lán)牙協(xié)議規(guī)定, “狀態(tài)機(jī)”只適用于雙向信道,并不適用于信令信道和單向信道。1.事件和動(dòng)作事件是指在一定時(shí)限內(nèi)到達(dá) L2CAP 層的消息。事件分為五類(lèi):低層來(lái)的指示和證實(shí)、高層來(lái)的請(qǐng)求和響應(yīng)、來(lái)自對(duì)等協(xié)議層的數(shù)據(jù)、對(duì)等協(xié)議層來(lái)的信號(hào)請(qǐng)求和應(yīng)答消息、定時(shí)器超時(shí)引起的事件。動(dòng)作也分為五類(lèi):對(duì)高協(xié)議層的證實(shí)與指示、對(duì)低協(xié)議層的請(qǐng)求與響應(yīng)、對(duì)對(duì)等協(xié)議層的請(qǐng)求和應(yīng)答、對(duì)等協(xié)議層的數(shù)據(jù)傳輸、設(shè)置定時(shí)器。長(zhǎng)度 信道 ID 有效載荷長(zhǎng)度 信道 ID PSM 有效載荷10的命令規(guī)則如下:(1)兩個(gè)協(xié)議層之間的接口(垂直方向接口)使用為高層提供服務(wù)的底層協(xié)議的前綴,如 L2CAP。位于相同協(xié)議層的實(shí)體之間的接口(水平方向接口)使用協(xié)議的前綴,如 L2CAP 。(2)從上層來(lái)的事件稱為“請(qǐng)求” (Req),相應(yīng)的回答稱為 “證實(shí)(Cfm) ;從低層來(lái)的事件稱為“指示”(Ind),相應(yīng)的應(yīng)答稱為“響應(yīng)”(Rsp) ;需要有進(jìn)一步的處理過(guò)程的響應(yīng)稱為“中間響應(yīng)”(Pnd);如果是表示否定的應(yīng)答,在相應(yīng)的記號(hào)后加上“Neg ”后綴。(3)高層的請(qǐng)求信號(hào)必須有相應(yīng)的證實(shí)回答( 表示動(dòng)作的執(zhí)行成功或者不成功),而低層對(duì)高層的指示信號(hào)并不一定需要相應(yīng)的應(yīng)答,例如當(dāng)指示信號(hào)用于向高層通知本地觸發(fā)事件的信息時(shí)。2.2.6 L2CAP 層的實(shí)現(xiàn)過(guò)程流程圖1,請(qǐng)求方 L2CAP 層建立邏輯信道過(guò)程模塊流程圖yes noNO yes請(qǐng)求建立 L2CAP 邏輯信道請(qǐng)求方 L2CAP 層邏輯信道建立模塊啟動(dòng)創(chuàng)建 connect-request 分組進(jìn)行 HCL 層打包發(fā)送到下層 HCL 子模塊分組Connect-request?向用戶報(bào)錯(cuò):硬件平臺(tái)獲藍(lán)牙基帶有誤,檢查后再試程序結(jié)束記錄返回參數(shù) Destination-CID創(chuàng)建 Configuration-Request 分組進(jìn)行 HCL 層打包發(fā)送到下層 HCL 子模塊分組Configuration-Respon?se反方向設(shè)置及模塊請(qǐng)求方 L2CAP 曾邏輯信道建立模塊結(jié)束11圖 2-6 L2CAP 層的實(shí)現(xiàn)過(guò)程流程圖RFCOMM 在藍(lán)牙協(xié)議中模擬串口,實(shí)現(xiàn) L2CAP 層和基于 RFCOMM 層的PPP,TCS 等協(xié)議層的數(shù)據(jù)交互。 RFCOMM 的目的是對(duì)兩個(gè)不同設(shè)備上的應(yīng)用保證一條完整的通信路徑,病保持一個(gè)通信段。2.3 RFCOMM 在藍(lán)牙設(shè)備中的實(shí)現(xiàn)形式RFCOMM 通過(guò) L2CAP 連接來(lái)實(shí)現(xiàn)設(shè)備間的邏輯串行鏈路,特別是建立一條面向連接 L2CAP 信道,以連接兩個(gè)設(shè)備 RFCOMM 實(shí)體,兩個(gè)設(shè)備之間只允許同時(shí)存在一個(gè) RFCOMM 連接,但是該鏈接是可多路復(fù)用,故兩個(gè)設(shè)備時(shí)間可以再一條 RFCOMM 連接之上存在多大 60 條邏輯鏈路,但是沒(méi)有規(guī)定RFCOMM 多路復(fù)用實(shí)現(xiàn)的層次。RFCOMM 繪畫(huà)過(guò)程中,客戶和服務(wù)器應(yīng)用可以分布在通信的兩端,每一端都可以獨(dú)立發(fā)起連接。在客戶和服務(wù)器之間的每一條多路復(fù)用鏈路都用數(shù)據(jù)鏈路標(biāo)志符來(lái)唯一標(biāo)識(shí),DLCI 標(biāo)識(shí)控制信道,DLCII 不可用,DLCI62 和 DLCI63 是系統(tǒng)保留值,在兩個(gè)設(shè)備之間的 RFCOMM 會(huì)話期間,DLCI 是唯一的。如果藍(lán)牙設(shè)備支持多個(gè)設(shè)備之間的串口仿真,那么 RFCOMM 實(shí)體必須能夠運(yùn)行多個(gè) TS07.10 多路復(fù)用器會(huì)話,每一個(gè)多路復(fù)用器都使用期 L2CAP 信道ID。 RFCOMM 對(duì) TS07.10 多路復(fù)用器多個(gè)會(huì)話的支持是可選的。一般大多數(shù)便攜式藍(lán)牙設(shè)備在藍(lán)牙環(huán)境下很少會(huì)需要同時(shí)使用如此多的串行連接。局域網(wǎng)訪問(wèn)規(guī)范規(guī)定在 RFCOMM 上使用 PPP,因此一個(gè)局域網(wǎng)接入點(diǎn)設(shè)備實(shí)際上可能同時(shí)需要很多與多個(gè)設(shè)備之間的串行連接,可利用 LZCAP 的多路復(fù)用能力來(lái)實(shí)現(xiàn) RFCOMM 的多路復(fù)用。2.3.1 RFCOMM 的幀分析與流控制RFCOMM 協(xié)議層命令的執(zhí)行和數(shù)據(jù)的發(fā)送都是通過(guò)各種幀來(lái)完成的。RFCOMM 將各種數(shù)據(jù)和控制信號(hào)封裝在各種不同的幀中進(jìn)行傳輸,所使用的幀12來(lái)自于 GSM TS07.10 多路控制協(xié)議。主要包括:設(shè)置異步平衡模式幀(SABM),無(wú)序號(hào)響應(yīng)幀(UA)、斷開(kāi)模式幀(DM),斷開(kāi)連接幀(DISC)和帶頭校驗(yàn)的無(wú)序號(hào)信息幀(UIH) 。其中 SABM、DISC 為命令幀,UA、DM 為響應(yīng)幀,UIH 既可以是命令幀,也可以是響應(yīng)幀。在建立 DLCI 鏈接時(shí),首先需要發(fā)送的是 SABM 幀,其中所攜帶的 DLCI信息就是要建立的 DLCI 連接。UA 幀是在接收到需要響應(yīng)的幀時(shí)(如SABM、DISC 幀),發(fā)送的響應(yīng)幀。DM 幀用來(lái)向?qū)Ψ酱_認(rèn)本地當(dāng)前的狀態(tài)。DISC 幀用來(lái)斷開(kāi)某個(gè) DLC 幀用來(lái)裝載有效用戶數(shù)據(jù),以及多路控制命令(MCC)。當(dāng)為普通用戶數(shù)據(jù)的時(shí)候,通過(guò)非控制信道(DLCI 殉來(lái)傳輸;當(dāng)是MCC 命令時(shí),通過(guò)控制信道(DLCIO)傳輸。MCC 命令包括TEST、FCON 、FCOFF 、 PN、RPN、MSC、RLS 和 NSC,被放在 UIH 的信息域字段里面?zhèn)鬏?。RFCOMM 和較低層 L2CAP 之間的流控制依賴于設(shè)備所支持的服務(wù)接口,除了使用于基帶的鏈路管理(LM)層提供的流控制機(jī)制外,RFCOMM 也有自己的三種流控機(jī)制。(1)RFCOMM 協(xié)議定義了能對(duì)兩個(gè) RFCOMM 實(shí)體之間全部數(shù)據(jù)流操作的流控制指令 FCON 和 FCOFF,它對(duì)所有的 DLCI 都起作用。如果本地會(huì)話不能接收更多的數(shù)據(jù),則發(fā)送 FCOFF 通知遠(yuǎn)端會(huì)話實(shí)體停止發(fā)送數(shù)據(jù),在收到確認(rèn)后本地會(huì)話實(shí)體將不再接收數(shù)據(jù),如果本地可以接收更多的數(shù)據(jù)則發(fā)送 FCON命令通知遠(yuǎn)端流控打開(kāi),以使通信可以進(jìn)行下去。(2)調(diào)制解調(diào)器狀態(tài)命令 MSC,它是對(duì)單個(gè) DLCI 的流控制機(jī)制。(3)基于信用的流控制,在這種流控方式中,通信雙方在初始連接時(shí)使用PN 命令協(xié)商好初始信譽(yù)量,每發(fā)送一條數(shù)據(jù)幀,遠(yuǎn)端信譽(yù)量減 1,減至 0 時(shí)停止發(fā)送,直到接收到遠(yuǎn)端信譽(yù)量通知才可以發(fā)送數(shù)據(jù)。2.3.2 RFCOMM 的通信流程RFCOMM 信道是建立在 L2CAP 信道基礎(chǔ)上的,建立 RFCOMM 鏈接時(shí),首先要建立 L2CAP 信道,并且進(jìn)行相應(yīng)的配置。通過(guò)查詢 SDP 數(shù)據(jù)得到使用該服務(wù)所需要的通道信號(hào)。2.3.3 RFCOMM 的狀態(tài)過(guò)程通過(guò)狀態(tài)機(jī)可以清楚的分析 RFCOMM 的通信流程,狀態(tài)機(jī)共六種狀態(tài),包括 DISCONNECTED(斷開(kāi)狀態(tài))、CONNECTED (連接狀態(tài))、DISCONNECTING(正斷開(kāi)連接過(guò)程中狀態(tài))、CONNECTING(連接過(guò)程中狀態(tài))、CONFIG(配置狀態(tài) )、13FLOW STOP(流控停止?fàn)顟B(tài)) 。系統(tǒng)開(kāi)機(jī)后,所有的狀態(tài)都是鏈路斷開(kāi)狀態(tài),主機(jī)發(fā)送完建立連接請(qǐng)求到配置結(jié)束的過(guò)程中,系統(tǒng)一直處在鏈路建立連接過(guò)程中。當(dāng)收到對(duì)方確認(rèn)連接響應(yīng)后,系統(tǒng)的狀態(tài)變?yōu)閰?shù)配置狀態(tài),需要協(xié)商配置的參數(shù)有 L2CAP 衛(wèi)信道的參數(shù)配置和 RFCOMM 的 DLCI 建立以及參數(shù)的配置。當(dāng)雙方參數(shù)協(xié)商配置完后,系統(tǒng)轉(zhuǎn)為鏈路建立狀態(tài),此時(shí)用戶可以進(jìn)行數(shù)據(jù)的傳輸,當(dāng)主機(jī)發(fā)送斷開(kāi)連接請(qǐng)求后,系統(tǒng)轉(zhuǎn)為鏈路斷開(kāi)連接過(guò)程中,收到對(duì)方斷開(kāi)確認(rèn)響應(yīng)后,系統(tǒng)轉(zhuǎn)為鏈路斷開(kāi)狀態(tài)。需要注意的是,在連接狀態(tài)中,如果收到 FCOFF 命令,則進(jìn)入 FLOW STOP 狀態(tài),在 FLOW STOP 狀態(tài)中,收到 FCON 命令,則進(jìn)入連接狀態(tài)。在任何狀態(tài)中,收到 L2CAP 鏈路丟失通知,RFCOMM 實(shí)體將從新初始化,釋放所有數(shù)據(jù)連接,回到最初的鏈路斷開(kāi)狀態(tài)。2.3.4 RFCOMM 的數(shù)據(jù)處理流程1.鏈路連接串口設(shè)備是一種字符設(shè)備,可以方便地和 PPP 建立連接,這個(gè)特性對(duì)于本設(shè)計(jì)來(lái)說(shuō)是必要的,因此必須為應(yīng)用程序提供虛擬串口,虛擬串日可以在不占用真實(shí)串口的情況下創(chuàng)建任意數(shù)量并互為連接的純虛擬串口對(duì),其在功能和使用上與真實(shí)串口無(wú)異。這些虛擬串口并不跟具體的物理硬件打交道,而是將應(yīng)用程序的請(qǐng)求轉(zhuǎn)發(fā)到對(duì)藍(lán)牙系統(tǒng)的請(qǐng)求,還有將從藍(lán)牙系統(tǒng)來(lái)的數(shù)據(jù)和事件轉(zhuǎn)發(fā)給應(yīng)用程序,它起到了一個(gè)中繼者的作用。no開(kāi)始存在 rfcommSession?14yesyesno圖 2-7 RFCOMM 的數(shù)據(jù)處理流程本設(shè)計(jì)中采用虛擬串口技術(shù)可以縮短開(kāi)發(fā)周期,減少開(kāi)發(fā)成本,通過(guò)建立虛擬串口連接可以使用 Linux 上很多現(xiàn)有的應(yīng)用程序來(lái)快速構(gòu)建嵌入式藍(lán)牙網(wǎng)關(guān)的各種應(yīng)用,即使沒(méi)有現(xiàn)成的應(yīng)用程序也可以很方便地對(duì)串口進(jìn)行編程以構(gòu)建新的藍(lán)牙應(yīng)用。2.4 虛擬串口設(shè)備的管理在虛擬串口設(shè)備與藍(lán)牙模塊交互中,可能存在多個(gè)虛擬串口設(shè)備,因此需要建立一個(gè)串口管理設(shè)備,負(fù)責(zé)對(duì)串口設(shè)備和藍(lán)牙模塊的交互進(jìn)行管理,其中管理任務(wù)包括以下四部分內(nèi)容(1)虛擬串口設(shè)備發(fā)送消息當(dāng)一個(gè)虛擬串口設(shè)備被打開(kāi)、關(guān)閉、寫(xiě)數(shù)據(jù)等的時(shí)候,它要向藍(lán)牙協(xié)議模塊發(fā)送消息。設(shè)備不是和藍(lán)牙協(xié)議模塊直接通信的,它是通過(guò)串口管理設(shè)備和藍(lán)牙協(xié)議模塊通信的。在串口管理設(shè)備的數(shù)據(jù)結(jié)構(gòu)中,維護(hù)了一個(gè)消息鏈表,所有的串口設(shè)備要向協(xié)議模塊發(fā)送的消息都要先插入到這個(gè)消息鏈表中。發(fā)送 SABM 數(shù)據(jù),啟動(dòng)定時(shí)器等待直到響應(yīng)到達(dá)發(fā)送 PN 數(shù)據(jù)幀阻塞,等待直到響應(yīng)到達(dá)。連接是否超時(shí)結(jié)束發(fā)送 L2CAP 連接請(qǐng)求阻塞直到連接響應(yīng)到達(dá)發(fā)送 L2CAP 配置請(qǐng)求阻塞直到請(qǐng)求確認(rèn)到達(dá)錯(cuò)誤處理15(2)藍(lán)牙協(xié)議模塊發(fā)送消息藍(lán)牙協(xié)議模塊向虛擬串口設(shè)備發(fā)消息,使用 IOCTI 統(tǒng)調(diào)用發(fā)送消息。(3)藍(lán)牙協(xié)議模塊接收消息在藍(lán)牙協(xié)議模塊中,專(zhuān)門(mén)有一個(gè)線程來(lái)接收來(lái)自驅(qū)動(dòng)程序的消息,這些消息不是直接來(lái)自虛擬串口設(shè)備而是來(lái)自串口管理設(shè)備。如果當(dāng)前消息隊(duì)列里有消息,或一旦有消息被添加到消息隊(duì)列,藍(lán)牙模塊將消息從管理串口設(shè)備中讀出,然后根據(jù)消息類(lèi)型進(jìn)行相應(yīng)的處理。例如,收到了打開(kāi)串口消息,藍(lán)牙模塊就要和遠(yuǎn)端的設(shè)備去建立藍(lán)牙的 RFCOMM 連接。(4)串日設(shè)備接收消息如果藍(lán)牙協(xié)議模塊向串口管理設(shè)備發(fā)送了消息,串口管理設(shè)備要將這些消息轉(zhuǎn)發(fā)給虛擬串口設(shè)備。由于串口管理設(shè)備和虛擬串口設(shè)備的驅(qū)動(dòng)程序都是編譯成內(nèi)核模塊,運(yùn)行在內(nèi)核空間。它們可以共享全局變量。這樣串日管理設(shè)備直接修改虛擬串口設(shè)備的全局變量就可以完成它們之間的通信。2.5 局域網(wǎng)接入模型的實(shí)現(xiàn)嵌入式藍(lán)牙網(wǎng)關(guān)的實(shí)現(xiàn)基于藍(lán)牙局域網(wǎng)接入模型(LAP) ,該模型通過(guò)建立在藍(lán)牙無(wú)線鏈路之上的網(wǎng)絡(luò)協(xié)議使計(jì)算機(jī)連接到網(wǎng)絡(luò)上。局域網(wǎng)接入模型中定義了使用藍(lán)牙無(wú)線技術(shù)的設(shè)備如何接入到一個(gè)局域網(wǎng)的服務(wù),此局域網(wǎng)使用在 RFCOMM 上的點(diǎn)對(duì)點(diǎn)協(xié)議(PPP )。其次,顯示了如何使用同一個(gè) PPP 機(jī)制來(lái)構(gòu)成由兩個(gè)藍(lán)牙設(shè)備組成的網(wǎng)絡(luò)。在這個(gè)應(yīng)用模型中,數(shù)據(jù)終端使用局域網(wǎng)接入點(diǎn)作為一個(gè)局域網(wǎng)無(wú)線連接。一旦連接上,數(shù)據(jù)終端運(yùn)行如同它們與 LAN 撥號(hào)網(wǎng)絡(luò)連接,并且可以訪問(wèn) LAN 提供的所有訪問(wèn)。PPP 是一種允許接入到網(wǎng)絡(luò)的普遍配置方式。PPP 提供鑒權(quán)、加密、數(shù)據(jù)壓縮和多協(xié)議便利。在 RFCOMM 之上的 PPP 己經(jīng)被選為給藍(lán)牙設(shè)備提供 LAN接入的方式,因?yàn)榫哂薪o設(shè)備配置 PPP 軟件的大型安裝基礎(chǔ)。在 PPP 可以支持多種網(wǎng)絡(luò)協(xié)議,由于在現(xiàn)有網(wǎng)絡(luò)中 lP 協(xié)議被公認(rèn)為最重要的協(xié)議,因此在 PPP上支持 lP 協(xié)議。2.5.1 局域網(wǎng)接入模型中的協(xié)議從圖中可以看看出,在局域網(wǎng)接入模型中,藍(lán)牙設(shè)備有兩種角色:局域網(wǎng)接入點(diǎn)和數(shù)據(jù)終端。局域網(wǎng)接入點(diǎn)是提供 PPP 服務(wù)并連在 LAN 上的設(shè)備而。16PPP 連接在 RFCOMM 上傳送,RFCOMM 可以用來(lái)傳輸 PPP 數(shù)據(jù)包并且可以作為 PPP 數(shù)據(jù)流的流控,數(shù)據(jù)終端是使用 LAP 服務(wù)的設(shè)備,典型的 DT 設(shè)備有藍(lán)牙筆記本電腦,藍(lán)牙 PC,藍(lán)牙 PDA 等。ME 為管理實(shí)體,在初始化,配置和連接過(guò)程中起著協(xié)調(diào)作用。局域網(wǎng)接入的協(xié)議棧如圖所示:Data Terminal LAN Access Point圖 2-8 局域網(wǎng)接入?yún)f(xié)議棧局域網(wǎng)接入模型中主要的協(xié)議有:(1)PPP 協(xié)議:PPP 是 IETF 的點(diǎn)到點(diǎn)協(xié)議,它屬于數(shù)據(jù)鏈路層協(xié)議的一部分。PPP 協(xié)議主要負(fù)責(zé)粗無(wú)檢測(cè),實(shí)現(xiàn)網(wǎng)絡(luò)層協(xié)議復(fù)用,協(xié)商連接時(shí)的 IP 地址,進(jìn)行身份驗(yàn)證等。(2)SDP 協(xié)議:負(fù)責(zé)移動(dòng)數(shù)據(jù)終端接入時(shí)的服務(wù)發(fā)現(xiàn),包含服務(wù)的登記,搜索,抽取服務(wù)信息等。(3)RFCOMM 協(xié)議:負(fù)責(zé)仿真 RS-232 的傳輸信道和控制方式,為 PPP 層提供一個(gè)類(lèi)似串口的通道。(4)L2CAP 協(xié)議:負(fù)責(zé)支持高層的協(xié)議復(fù)用。數(shù)據(jù)包打包,拆包,傳遞 QoS信息等。(5)LMP 和基帶協(xié)議:這部分屬于藍(lán)牙底層協(xié)議,與硬件緊密結(jié)合。負(fù)責(zé)物理鏈路的管理,基帶 PDU 的形成,檢糾錯(cuò),加密和鑒權(quán)。LAP 中,PPP 的使用是關(guān)鍵,它用于再說(shuō)數(shù)據(jù)終端和接入點(diǎn)之間建立連接,PPP 建立在 RFCOMM 之上, 一旦 PPP 連接建立后,傳統(tǒng)的 IP 解決方案就可以建立在其之上,從而完成一些諸如獲得 IP 資質(zhì)等網(wǎng)絡(luò)功能。2.5.2 局域網(wǎng)接入模型的通信過(guò)程在局域網(wǎng)接入模型中,終端設(shè)備和網(wǎng)關(guān)之間的通信大體包括查詢,建立連ApplicationsTCPδUDP IPPPPSDP RFCOMML2CAP LMPBasebandMEApplicationsTCPδUDPIPPPP NetworkingPPPRFCOMM SDPLMP L2CAPBasebandMELANLAN17接,鑒權(quán),通信幾個(gè)過(guò)程。詳細(xì)過(guò)程如下:(1)數(shù)據(jù)終端查詢是否有一個(gè)在無(wú)線網(wǎng)絡(luò)內(nèi)的 LAP,當(dāng)數(shù)據(jù)終端要求接入局域網(wǎng)時(shí),首先啟動(dòng)服務(wù)發(fā)現(xiàn)協(xié)議,向作出回應(yīng)的 LAP 發(fā)出查詢請(qǐng)求。LAP 此時(shí)作為 SDP Server 具備發(fā)現(xiàn)服務(wù)數(shù)據(jù)庫(kù),里面記錄著接入點(diǎn)可以提供的服務(wù)及屬性,SDP 機(jī)制可以提取建立 RFCOMM 連接需要的所有服務(wù)信息。數(shù)據(jù)終端查詢到可用的服務(wù)信息后,就可以建立連接。(2)建立物理連接。數(shù)據(jù)終端找到并選定合適的 LAP 后,若二者間無(wú)物理連接,則 DT 向 LAP 請(qǐng)求建立基帶物理連接。若已存在物理連接,則進(jìn)行藍(lán)牙配對(duì),鑒權(quán)過(guò)程,并在所建鏈路上進(jìn)行加密傳輸。(3)依次建立 PPP/RFCOMM/L2CAP 鏈路。(4)作為可選安全措施,LAP 可以適當(dāng)?shù)牟扇?PPP 的鑒權(quán)機(jī)制。(5)建立連接后數(shù)據(jù)終端和 LAP 即可通過(guò) IP 數(shù)據(jù)流進(jìn)行網(wǎng)絡(luò)通信。(6)任何時(shí)候,DT 和 LAP 都可以終止已經(jīng)建立的連接。拆除各層連接的操作順序與建立時(shí)正好相反。LAP 在上電之后所做的第一件事情就是進(jìn)行初始化工作,實(shí)質(zhì)上就是軟硬件自啟動(dòng)過(guò)程,系統(tǒng)起來(lái)之后,LAP 需要發(fā)起若干任務(wù),主要有:查詢掃描任務(wù),負(fù)責(zé)監(jiān)視有無(wú) DT 需要與其通信;向前任務(wù),負(fù)責(zé)將串口數(shù)據(jù)轉(zhuǎn)至網(wǎng)口并完成必要的格式轉(zhuǎn)換;向后通信功能,負(fù)責(zé)監(jiān)視網(wǎng)口并完成向前通信任務(wù)的逆過(guò)程,任務(wù)是并發(fā)的,因此 LAP 能夠同時(shí)支持與多個(gè) DT 保持通信。2.6 PPP 協(xié)議使用 PPP 協(xié)議是 LAP 應(yīng)用模型中非常重要的一點(diǎn),也是 LAP 的關(guān)鍵所在,因?yàn)?PPP 協(xié)議很好的解決了點(diǎn)對(duì)點(diǎn)通信的問(wèn)題,PPP 協(xié)議屬于數(shù)據(jù)鏈路層協(xié)議,主要用來(lái)完成在串行連接上封裝數(shù)據(jù)報(bào),監(jiān)視鏈路連接質(zhì)量,建立和配置及測(cè)試數(shù)據(jù)連接,在不同的網(wǎng)絡(luò)層協(xié)議上建立連接和配置 IP 選項(xiàng)等功能。2.6.1 PPP 協(xié)議的狀態(tài)轉(zhuǎn)移數(shù)據(jù)通信設(shè)備的兩端如果希望通過(guò) PPP 協(xié)議建立點(diǎn)對(duì)點(diǎn)的通信,無(wú)論哪一端的設(shè)備都需發(fā)送 LCP 數(shù)據(jù)報(bào)文來(lái)配置鏈路(測(cè)試鏈路)。一旦 LCP 的配置參數(shù)選項(xiàng)協(xié)商完后,通信的雙方就會(huì)根據(jù) LCP 配置請(qǐng)求報(bào)文中所協(xié)商的認(rèn)證配置參數(shù)選項(xiàng)來(lái)決定鏈路兩端設(shè)備所采用的認(rèn)證方式。協(xié)議缺省情況下雙方是不進(jìn)行認(rèn)證的,而直接進(jìn)入到 NCP 配置參數(shù)選項(xiàng)的協(xié)商,直至所經(jīng)歷的.幾個(gè)配置過(guò)18程全部完成后,點(diǎn)對(duì)點(diǎn)的雙方就可以開(kāi)始通過(guò)己建立好的鏈路進(jìn)行網(wǎng)絡(luò)層數(shù)據(jù)報(bào)文的傳送了,整個(gè)鏈路就處于可用狀態(tài)。只有當(dāng)任何一端收 LCP 或 NCP 的鏈路關(guān)閉報(bào)文時(shí)(一般而一言協(xié)議是不要求 NCP 有關(guān)閉鏈路的能力的,因此通過(guò)情況下關(guān)閉鏈路的數(shù)據(jù)報(bào)文是在 LCP 協(xié)商階段或應(yīng)用程序會(huì)話階段發(fā)出的);物理層無(wú)法檢測(cè)到載波或管理人員對(duì)該鏈路進(jìn)行關(guān)閉操作,都會(huì)將該條鏈路斷開(kāi),從而終止 PPP 會(huì)話。2.6.2 PPP 協(xié)議的實(shí)現(xiàn)如果使用公開(kāi)的 PPP 代碼實(shí)現(xiàn) PPP 協(xié)議,那么針對(duì)操作系統(tǒng)而進(jìn)行的移植工作不僅需要熟練的技術(shù),而且需要較長(zhǎng)的時(shí)間。鑒于此,決定選用成熟的PPP 產(chǎn)品。由于嵌入式操作系統(tǒng)選用的是 Linux 所以可以使用 Linux 中己經(jīng)實(shí)現(xiàn)的PPP服務(wù)功能,在 Linux 下對(duì) PPP 的支持需要在內(nèi)核編譯時(shí)配置內(nèi)核選項(xiàng)Networking support 加入對(duì) PPP(Point 一 to 一 point)support 等選項(xiàng)。同時(shí),由于在設(shè)計(jì)中加入了虛擬串口的支持,可采用 Linux 上很多現(xiàn)有的應(yīng)用程序,在嵌入式藍(lán)牙網(wǎng)關(guān)(LAF 端)可以使用 Linux 操作系統(tǒng)上的 mgetty+AutoPPP 來(lái)接收進(jìn)入的連接請(qǐng)求,使用 pppd+kppp 來(lái)構(gòu)建客戶端,從而實(shí)現(xiàn)網(wǎng)關(guān)與數(shù)據(jù)終端PPP 連接。2.7 數(shù)據(jù)終端對(duì)局域網(wǎng)的訪問(wèn)當(dāng) LAP 與 DT 間建立 PPP 鏈路后,在鏈路的兩端將產(chǎn)生一對(duì) IP 地址,這是由 PPP 協(xié)議中的網(wǎng)絡(luò)控制協(xié)議 (NCP)分配協(xié)商得到的。但這里的 IP 地址與一般意義上的 Iternet 上的 IP 地址是不同的。這里每個(gè)撥號(hào)網(wǎng)絡(luò)終端的 IP 地址是由 LAP(PPP Server)臨時(shí)動(dòng)態(tài)分配的。每個(gè)終端在連接過(guò)程中擁有 IP 地址,在連接結(jié)束時(shí)釋放,從而可以再被分配給其他的終端。但是,這樣通過(guò) LAP 上網(wǎng)的 DT 來(lái)說(shuō),其 IP 地址對(duì)網(wǎng)絡(luò)是不可見(jiàn)的,可以說(shuō)是虛擬的 IP 地址,只有 LAP 才能從外部獲得一個(gè)真正有效的 IP 地址。因此,為了與局域網(wǎng)進(jìn)行通信,必須在 LAP 端設(shè)置地址轉(zhuǎn)換功能。對(duì)于 DT端向外發(fā)送的 IP 包,將源地址轉(zhuǎn)成 LAP 端的有效 IP 地址,而由局域網(wǎng)發(fā)回的 IP 包,則將其目的地址轉(zhuǎn)換為響應(yīng)的內(nèi)部 IP 地址。在多對(duì)一的情況下,為了能區(qū)分發(fā)送到不同 DT 的數(shù)據(jù)包,可以在 LAP 端設(shè)置一個(gè)地址轉(zhuǎn)換表,將不同的 DT 發(fā)到外部的 IP 包對(duì)應(yīng)于 LAP 上不同的虛擬串口端口送出,而從局域網(wǎng)發(fā)回的 IP 包而可以按照此表,對(duì)應(yīng)到相應(yīng)的 DT,從而實(shí)現(xiàn)多個(gè) DT 通過(guò)19LAP 訪問(wèn)局域網(wǎng)。2.8 本章小結(jié)本章是嵌入式藍(lán)牙網(wǎng)關(guān)的所有內(nèi)容,深入研究了藍(lán)牙協(xié)議棧中 L2CAP 協(xié)議、RFCOMM 協(xié)議、SDP 協(xié)議,對(duì)各層協(xié)議的數(shù)據(jù)處理方式、實(shí)現(xiàn)流程、狀態(tài)轉(zhuǎn)移做出詳盡的分析。同時(shí),在 RFCOMM 層上建立虛擬串口作為數(shù)據(jù)中繼,實(shí)現(xiàn)與上層應(yīng)用程序的連接,最后,研究了藍(lán)牙規(guī)范中局域網(wǎng)接入模型的實(shí)現(xiàn)。第 3 章 水溫藍(lán)牙無(wú)線傳感器3.1 單片機(jī)簡(jiǎn)介單片機(jī)全稱為單片微型計(jì)算機(jī)。單片機(jī)發(fā)展始于 70 年代,經(jīng)過(guò) 30 多年的發(fā)展,由于其具有高集成度、低功耗、工作電壓范圍寬、價(jià)格便宜、使用方便等諸多優(yōu)點(diǎn)而在廣泛使用。到目前為止將單片機(jī)發(fā)展階段分為三個(gè)階段,分別為初級(jí)階段、高性能階段、以及高位單片機(jī)的推出。通常單片機(jī)內(nèi)部含有中央處理部件(CPU) 、數(shù)據(jù)存儲(chǔ)器(RAM ) 、程序存儲(chǔ)器( ROM、EPROM 、Flash ROM) 、定時(shí)器、計(jì)數(shù)器和各種輸入輸出接口等。目前 8 位單片機(jī)是目前品種最豐富、應(yīng)用最廣泛的單片機(jī)。今天我所使用的就其中比較典型的一種 8 位單片機(jī) AT89C52。3.2 基于單片機(jī)和溫度傳感器設(shè)計(jì)數(shù)字溫度計(jì)的發(fā)展現(xiàn)狀隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用。檢測(cè)是控制的基礎(chǔ)和前提,而檢測(cè)的精度必須高于控制的精確度,否則無(wú)從實(shí)現(xiàn)控制的精度要求。不僅如此,檢測(cè)還涉及國(guó)計(jì)民生各個(gè)部門(mén),可以說(shuō)在所以科學(xué)技術(shù)領(lǐng)域無(wú)時(shí)不在進(jìn)行檢測(cè)。科學(xué)技術(shù)的發(fā)展和檢測(cè)技術(shù)的發(fā)展是密切相關(guān)的?,F(xiàn)代化的檢測(cè)手段能達(dá)到的精度、靈敏度及測(cè)量范圍等,在很大程度上決定了科學(xué)技術(shù)的發(fā)展水平。同時(shí),科學(xué)技術(shù)的發(fā)展達(dá)到的水平越高,又為檢測(cè)技術(shù)、傳感器技術(shù)提供了新的前提手段。目前溫度計(jì)的發(fā)展很快,從原20始的玻璃管溫度計(jì)發(fā)展到了現(xiàn)在的熱電阻溫度計(jì)、熱電偶溫度計(jì)、數(shù)字溫度計(jì)、電子溫度計(jì)等等。目前的溫度計(jì)中傳感器是它的重要組成部分,它的精度靈敏度基本決定了溫度計(jì)的精度、測(cè)量范圍、控制范圍和用途等。傳感器應(yīng)用極其廣泛,目前已經(jīng)研制出多種新型傳感器。3.3 電路介紹該電路是由 18B20 溫度傳感器作為溫度傳感元件,并由 AT89C52 單片機(jī)進(jìn)行數(shù)據(jù)處理輸出,有藍(lán)牙模塊與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸,此電路可由外接 3V---12V 的直流電電源提供。 溫度顯示和控制的范圍為: 55℃----125 ℃之間,精確度到達(dá) 1℃,即數(shù)碼管顯示溫度為整數(shù)。如果設(shè)定的報(bào)警溫度為 30℃,則當(dāng)溫度到達(dá) 30℃的時(shí)候,報(bào)警發(fā)光二極管發(fā)光同時(shí)蜂鳴器發(fā)出響聲,此時(shí)繼電器發(fā)生動(dòng)作。如果不需要對(duì)溫度控制報(bào)警,可以將報(bào)警溫度設(shè)置提高。如果是為了控制局部溫度,可以把 18B20 用引線引出,但是距離不宜過(guò)大,注意引腳要絕緣。3.4 制作所需電子元件及其功能表 3-1 制作所需原件及其功能電子元件名稱 規(guī)格 編號(hào) 主要功能作用電容 30p C1、C2 單片機(jī)的時(shí)鐘振蕩電容 10uf C3 單片機(jī)復(fù)位溫度傳感器 DS18B20 IC2 感應(yīng)溫度變化數(shù)據(jù)采集單片機(jī) AT89c52 IC1 數(shù)據(jù)處理傳輸?shù)入娮?10K R1 單片機(jī)復(fù)位電源 5VUSB 開(kāi)關(guān)電源 開(kāi)關(guān)電源晶體 12M CRYSTAL 單片機(jī)的時(shí)鐘震蕩3.5 溫度傳感器總體設(shè)計(jì)此次所討論的數(shù)字水溫藍(lán)牙無(wú)線傳感器主要應(yīng)用單片機(jī)技術(shù)、溫度傳感器技術(shù)、藍(lán)牙無(wú)線傳輸技術(shù)等,把所有硬件集成在一起以便于在工程施工現(xiàn)場(chǎng)應(yīng)用。先由溫度傳感器將工程機(jī)械的實(shí)時(shí)溫度采集處理傳送給單片機(jī),單片機(jī)經(jīng)過(guò)儲(chǔ)存經(jīng)由藍(lán)牙模塊與計(jì)算機(jī)連接,最后現(xiàn)場(chǎng)工作人員根據(jù)計(jì)算機(jī)顯示的數(shù)據(jù)21判斷工程機(jī)械的工作狀態(tài)是否正常以便采取及時(shí)的措施。3.5.1 硬件說(shuō)明傳感器的選擇設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)需要考慮以下 3 個(gè)方面 ①溫度傳感器的選擇②溫度傳感器的選擇③單片機(jī)和溫度傳感器的接口電路; 控制溫度傳感器實(shí)現(xiàn)溫度信息采集以及數(shù)據(jù)傳輸?shù)能浖?。單片機(jī)的接口信號(hào)是數(shù)字信號(hào)。要想用單片機(jī)獲取溫度這類(lèi)非電信號(hào)的信息,必須使用溫度傳感器, 將溫度信息轉(zhuǎn)換為電流或電壓輸出。如果轉(zhuǎn)換后的電流或電壓輸出是模擬信號(hào), 還必須進(jìn)行 A/D 轉(zhuǎn)換,以滿足單片機(jī)接口的需要。傳統(tǒng)的溫度檢測(cè)大多以熱敏電阻作為溫度傳感器。但是,熱敏電阻的可靠性較差、測(cè)量溫度準(zhǔn)確率低 ,而且還必須經(jīng)專(zhuān)門(mén)的接口電路轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理。20 世紀(jì)90 年代中期出現(xiàn)了智能溫度傳感器(亦稱數(shù)字溫度傳感器)。智能溫度傳感器的內(nèi)部都包含溫度傳感器、A/D 轉(zhuǎn)換器、信號(hào)處理器、存儲(chǔ)器 (或寄存器)和接口電路, 其特點(diǎn)是能直接輸出數(shù)字化的溫度數(shù)據(jù)及相關(guān)的溫度控制量, 適配各種微控制器(MCU )。其中 DS18B20 就是一種應(yīng)用相當(dāng)廣泛的單總線數(shù)字溫度傳感器,它結(jié)構(gòu)簡(jiǎn)單、不需外接元件,采用一根 I/O 數(shù)據(jù)線既可供電又可傳輸數(shù)據(jù)、并可設(shè)置溫度報(bào)警界限等特點(diǎn),廣泛用于工業(yè)、民用等領(lǐng)域的溫度測(cè)量中。3.5.2 水溫藍(lán)牙無(wú)線傳感器總體結(jié)構(gòu)框圖圖 3-1 水溫藍(lán)牙無(wú)線傳感器總體結(jié)構(gòu)圖3.5.3 DS18B20 的介紹DS18B20 是單總線數(shù)字化智能集成溫度傳感器。單總線它采用單根信號(hào)線,既傳輸時(shí)鐘又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,具有節(jié)省 I/O 口線資源、結(jié)構(gòu)簡(jiǎn)單、成本低廉、便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn)。與其它溫度傳感器相比,DS18B20 具有以下特性:① 獨(dú)特的單線接口方式,在與微處理器連接時(shí)僅需要一條接口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通信。②DS18B20 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的信號(hào)線上 ,實(shí)現(xiàn)多點(diǎn)測(cè)溫。③DS18B20在使用中不需要任何外圍元件。④測(cè)溫范圍-55℃~+125℃,固有測(cè)溫分辨率溫度傳感器單片機(jī)藍(lán)牙模塊計(jì)算機(jī)220·625℃ 。⑤測(cè)量結(jié)果以 9~12 位數(shù)字量方式串行傳送。 DS18B20 內(nèi)部結(jié)構(gòu) DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻 ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器 TH 和 TL,高速暫存器。64 位光刻 ROM 是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列號(hào)。 DS18B20 的管腳排列如圖所示。 圖 3-2 DS18B20 引腳分布圖引腳功能如下NC:空引腳,懸空不使用; VDD:可選電源腳,電源電壓范圍 3~5.5V。工作于寄生電源時(shí),此引腳應(yīng)接地; DQ:數(shù)據(jù)輸入/輸出腳, 漏極開(kāi)路,常態(tài)下高電平。 DSl8820 的核心功能部件是它的數(shù)字溫度傳感器,其分辨率可配置為 9、10、11和 12 位,出廠默認(rèn)設(shè)置為 12 位分辨率,對(duì)應(yīng)的溫度值分辨率分別為0.5、0.25、0.125 和 0.0625。溫度信息的低位、高位節(jié)內(nèi)容中,還包括了符號(hào)位S(是正溫度還是負(fù)溫度)和二進(jìn)制小數(shù)部分。3.6 單片機(jī)的選擇AT89C52 ATMEL 公司生產(chǎn)的低電壓,高性能 CMOS 8 位單片機(jī).片內(nèi)含8K byTES 的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器( PEROM)和 256 byTES 。的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器(CPU )和 FLASH 由存儲(chǔ)單元,功能強(qiáng)大 AT89C52 單片適用于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。89C52 單片機(jī)中文資料主要性能參數(shù):與 Mcs-51 產(chǎn)品指令和引腳完全兼容。8 字節(jié)可重擦寫(xiě) FLASH 閃速存儲(chǔ)器1000 次擦寫(xiě)周期23全靜態(tài)操作:0HZ-24MHZ三級(jí)加密程序存儲(chǔ)器256X8 字節(jié)內(nèi)部 RAM32 個(gè)可編程 I/0 口線3 個(gè) 16 位定時(shí)/計(jì)數(shù)器8 個(gè)中斷源功能特性:AT89C52 提供以下標(biāo)準(zhǔn)功能:8 字節(jié) FLASH 閃速存儲(chǔ)器,256 字竹內(nèi)部 RAM , 32 個(gè) I/O 口線,3 個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè) 6 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89c52 可降至 OHz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電上作模式??臻e方式停止 CPU 的工作,但允許 RAM,定時(shí)/計(jì)數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。3.7 數(shù)據(jù)的讀取大致流程圖如圖:開(kāi)始鍵盤(pán)掃描鍵盤(pán)掃描相關(guān)參數(shù)設(shè)置溫度檢測(cè)溫度顯示報(bào)警結(jié)束并顯示溫度超過(guò)極限?24圖 3-2 數(shù)據(jù)讀取流程圖3.8 DS18B20單片機(jī)實(shí)現(xiàn)溫度轉(zhuǎn)換讀取溫度數(shù)值程序的流程圖如圖:否是否 是延時(shí)開(kāi)始初始化 DS18B20應(yīng)答脈沖發(fā)起讀取的命令發(fā)起轉(zhuǎn)換命令延時(shí) 1s 等待溫度轉(zhuǎn)換完成初始化 DS18B20應(yīng)答脈沖發(fā)起讀取命令25圖 3-3 單片機(jī)實(shí)現(xiàn)溫度轉(zhuǎn)換讀取溫度數(shù)值程序的流程圖3.9 藍(lán)牙模塊的選擇BF10-A 藍(lán)牙通信 模塊為深圳藍(lán)色飛舞科技有限公司自主開(kāi)發(fā)的智能型無(wú)線數(shù)據(jù)傳輸產(chǎn)品,是一款非常方便用戶使用 AT 命令進(jìn)行修改藍(lán)牙參數(shù)的模塊。 BF10-A 模塊支持: 1200bps~2764800bps 等多種接口波特率。 修改波特率、藍(lán)牙名稱、設(shè)備類(lèi)型碼及配對(duì)碼 支持主從模式,靈活用在不同領(lǐng)域 SPP 藍(lán)牙串行服務(wù),非常方便和手機(jī)、PC 等連接 更詳細(xì)參數(shù)參考藍(lán)牙模塊 BF10 手冊(cè) 技術(shù)特征 :工作頻段:2.40 GHz ?2.48GHz 藍(lán)牙規(guī)范:v2.0 Compliant+EDR EDRV2.0,最高可支持 3M 調(diào)制模式 支持 7 個(gè)從設(shè)備 USB 2.0 和 UART 接口 低電壓電源,2.7V to 3.6V 正常供給電壓:3.3±0.1V 內(nèi)置 8Mbit Flash 工業(yè)級(jí)設(shè)計(jì)尺寸:27 x 14 x 2.5mm 可以替代串口線操作 可以與手機(jī)藍(lán)牙進(jìn)行串行通信3.10 本章小結(jié)水溫藍(lán)牙無(wú)線傳感器的設(shè)計(jì)主要在于單片機(jī)和傳感器的選擇,因?yàn)槭┕がF(xiàn)場(chǎng)條件有限,所以藍(lán)牙無(wú)線傳輸起了很大作用,對(duì)及時(shí)的故障診斷與解決起決讀取第一二字節(jié)即為溫度數(shù)據(jù)26定性作用。第 4 章 藍(lán)牙網(wǎng)絡(luò)及拓?fù)浣Y(jié)構(gòu)4.1 藍(lán)牙微微網(wǎng)藍(lán)牙系統(tǒng)包括點(diǎn)對(duì)點(diǎn)連接方式和點(diǎn)到多點(diǎn)連接方式。在點(diǎn)到多點(diǎn)的連接方式中,多個(gè)藍(lán)牙單元共享通信信道。共享通信信道的藍(lán)牙單元構(gòu)成微微網(wǎng),微微網(wǎng)中的成員設(shè)備之間采用藍(lán)牙無(wú)線通信技術(shù)進(jìn)行通信。在藍(lán)牙射頻操作中的跳頻同步序列系統(tǒng)(FHSS),通信信道是由已定義的偽隨機(jī)跳頻序列組成,跳頻速率為 1600 跳/秒?;鶐Р僮鞫x了微微網(wǎng)的跳頻序列是如何產(chǎn)生,設(shè)備如何獲知并遵循跳頻序列并隨即加入微微網(wǎng),在微微網(wǎng)中的設(shè)備如何以同等通信方式發(fā)送和接收數(shù)據(jù)分組。藍(lán)牙微微網(wǎng)以一種特殊的方式形成,不依賴于蜂窩網(wǎng)絡(luò)中的基站或 WLAN 網(wǎng)絡(luò)等設(shè)備的專(zhuān)門(mén)支持,設(shè)備之間可以通過(guò)查詢方式相互通信?;鶐f(xié)議建立了規(guī)則,按照這些規(guī)則建立了一些特殊連接,設(shè)備以同等方式相互通信。藍(lán)牙最基本的網(wǎng)絡(luò)組成是微微網(wǎng)(Pico net),同一微微網(wǎng)上的單元之間共享一條信道,一個(gè)微微網(wǎng)必須有而且只有一個(gè)主單元(master unit),其余為從單元(slave unit),主單元控制微微網(wǎng)從建立到數(shù)據(jù)傳送以及到最后結(jié)束通信的整個(gè)過(guò)程,如圖 3-1 所示。主單元從單元從單元從單元 從單元從單元從單元27圖 4-1 藍(lán)牙微微網(wǎng)結(jié)構(gòu)為了簡(jiǎn)化網(wǎng)絡(luò)的控制,藍(lán)牙限定了微微網(wǎng)的單元數(shù)量,同一時(shí)間一個(gè)微微網(wǎng)最多只可以有 7 個(gè)從單元處于活動(dòng)狀態(tài),其余從單元處于休眠狀態(tài)。4.2 藍(lán)牙散射網(wǎng)為了消除限制數(shù)量對(duì)通信的影響,也為了提高頻譜的利用效率,藍(lán)牙允許同一區(qū)域同時(shí)存在多個(gè)微微網(wǎng),這樣的多個(gè)微微網(wǎng)就構(gòu)成一個(gè)分布式散射網(wǎng)(Scatter net),如圖 3-2 所示。各微微網(wǎng)擁有自己的信道,微微網(wǎng)之間不做任何協(xié)調(diào)。這樣藍(lán)牙利用簡(jiǎn)單的網(wǎng)絡(luò)控制就達(dá)到多對(duì)多的通信。但也增加了藍(lán)牙器件之間相互干擾的可能性。微微網(wǎng)中的通信信道的跳頻序列是用微微網(wǎng)的偽隨機(jī)序列來(lái)定義,每個(gè)微微網(wǎng)信道的跳頻序列互不相同。由于微微網(wǎng)中數(shù)據(jù)傳輸?shù)奶l特性,同一區(qū)域可以同時(shí)存在多個(gè)在時(shí)間和空間上部分或完全重疊的微微網(wǎng),這幾個(gè)微微網(wǎng)就構(gòu)成散射網(wǎng)。每個(gè)微微網(wǎng)有自己的主單元,跳頻序列相互獨(dú)立。各個(gè)微微網(wǎng)的跳頻序列和狀態(tài)由各自的主單元決定?!餗aster ●Slave圖 4-2 散射網(wǎng)結(jié)構(gòu)當(dāng)設(shè)備成為散射網(wǎng)的成員后,便可以在多個(gè)微微網(wǎng)中進(jìn)行內(nèi)部通信。一個(gè)微微網(wǎng)的主單元通過(guò)呼叫,可以使其他微微網(wǎng)的
收藏