喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請(qǐng)放心下載,==================================
【QQ:3278627871 可咨詢(xún)交流】
喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請(qǐng)放心下載,==================================
【QQ:3278627871 可咨詢(xún)交流】
喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請(qǐng)放心下載,==================================
【QQ:3278627871 可咨詢(xún)交流】
第1章 緒 論
1.1概述
該項(xiàng)目遠(yuǎn)程遙控裝置設(shè)計(jì),機(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)由客戶(hù)端(遠(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)信息由不同傳感器采集, 本地用戶(hù)將反映現(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)程信息咨詢(xún)等服務(wù)。
安裝在工程機(jī)械上的藍(lán)牙適配器和移動(dòng)設(shè)備(藍(lán)牙手機(jī))通過(guò)微微網(wǎng)連接,最大特征是可為用戶(hù)提供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ù)的傳輸。固定設(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(Host 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)展??ㄌ乇死展?998年推出的Cat 950G計(jì)算機(jī)監(jiān)控系統(tǒng)還配備有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)的研究。
第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)牙模塊組成。硬件總體框圖如圖所示:
存儲(chǔ)模塊
藍(lán)牙模塊
調(diào)制接口模塊
MCU
以太網(wǎng)接口模塊
Internet
圖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à)格,高性能,高集成度使得用戶(hù)可以節(jié)省系統(tǒng)成本和提高系統(tǒng)性能。ARM920T支持兩種指令集:ARM指令集和Thumb指令集,其中,ARM指令集為32位的長(zhǎng)度,Thumb指令16位長(zhǎng)度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可以節(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è)試工具接口是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ī)的高速通道。
總體而一言,在設(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ì)提供用戶(hù)直接與藍(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)圖,如圖所示:
RF
HCL
BB
網(wǎng)絡(luò)應(yīng)用(HTTP、FTP)
SDP
L2CAP
RFCOMM
虛擬串口
PPP
TCP/IP等網(wǎng)絡(luò)協(xié)議
課題實(shí)現(xiàn)
LMP
圖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ā)送。基帶分組有效載荷最大為341字節(jié),如果用這種最大傳輸單位
(MTU)來(lái)傳輸高層協(xié)議,將會(huì)限制帶寬的利用率。因此L2CAP分組必須能夠在
無(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的互操作
客戶(hù)端藍(lán)牙設(shè)備 服務(wù)器端藍(lán)牙設(shè)備
上層協(xié)議
上層協(xié)議
L2CAP
L2CAP
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層本身并不執(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 包頭
有效載荷
長(zhǎng)度
信道ID
LSB 16bits 16bits MSB
圖2-4 L2CAP層的數(shù)據(jù)封裝格式
面向無(wú)連接信道:
信道ID
PSM
有效載荷
長(zhǎng)度
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í)器。
的命令規(guī)則如下:
(1)兩個(gè)協(xié)議層之間的接口(垂直方向接口)使用為高層提供服務(wù)的底層協(xié)議的前綴,如L2CAP。位于相同協(xié)議層的實(shí)體之間的接口(水平方向接口)使用協(xié)議的前綴,如 L2CAP。
(2)從上層來(lái)的事件稱(chēng)為“請(qǐng)求”(Req),相應(yīng)的回答稱(chēng)為“證實(shí)(Cfm);從低層來(lái)的事件稱(chēng)為“指示”(Ind),相應(yīng)的應(yīng)答稱(chēng)為“響應(yīng)”(Rsp);需要有進(jìn)一步的處理過(guò)程的響應(yīng)稱(chē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ò)程模塊流程圖
請(qǐng)求建立L2CAP邏輯信道
記錄返回參數(shù)Destination-CID
請(qǐng)求方L2CAP層邏輯信道
建立模塊啟動(dòng)
分組
Connect-request?
分組
Configuration-Respon?se
發(fā)送到下層HCL子模塊
請(qǐng)求方L2CAP曾邏輯信道建立模塊結(jié)束
反方向設(shè)置及模塊
向用戶(hù)報(bào)錯(cuò):硬件平臺(tái)獲藍(lán)牙基帶有誤,檢查后再試
程序結(jié)束
發(fā)送到下層HCL子模塊
進(jìn)行HCL層打包
創(chuàng)建connect-request分組
進(jìn)行HCL層打包
創(chuàng)建Configuration-Request分組
yes no
NO yes
圖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ò)程中,客戶(hù)和服務(wù)器應(yīng)用可以分布在通信的兩端,每一端都可以獨(dú)立發(fā)起連接。
在客戶(hù)和服務(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)行傳輸,所使用的幀
來(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)裝載有效用戶(hù)數(shù)據(jù),以及多路控制命令(MCC)。當(dāng)為普通用戶(hù)數(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之間的流控制依賴(lài)于設(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ò)查詢(xún)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))、
FLOW 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í)用戶(hù)可以進(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è)中繼者的作用。
開(kāi)始
存在rfcomm
Session?
no
發(fā)送L2CAP連接請(qǐng)求
yes
發(fā)送SABM數(shù)據(jù),啟動(dòng)定時(shí)器等待直到響應(yīng)到達(dá)
阻塞直到連接響應(yīng)到達(dá)
發(fā)送L2CAP配置請(qǐng)求
發(fā)送PN數(shù)據(jù)幀阻塞,等待直到響應(yīng)到達(dá)。
錯(cuò)誤處理
阻塞直到請(qǐng)求確認(rèn)到達(dá)
結(jié)束
連接是否超時(shí)
yes
no
圖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è)消息鏈表中。
(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ò)中l(wèi)P協(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è)備而。PPP連接在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é)議棧如圖所示:
Applications
TCPδUDP
IP
Applications
TCPδUDP
PPP Networking
IP
ME
PPP
LAN
ME
PPP
RFCOMM SDP
LMP L2CAP
Baseband
SDP RFCOMM
LAN
Baseband
L2CAP LMP
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)之間的通信大體包括查詢(xún),建立連接,鑒權(quán),通信幾個(gè)過(guò)程。詳細(xì)過(guò)程如下:
(1)數(shù)據(jù)終端查詢(xún)是否有一個(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ā)出查詢(xún)請(qǐng)求。LAP此時(shí)作為SDP Server具備發(fā)現(xiàn)服務(wù)數(shù)據(jù)庫(kù),里面記錄著接入點(diǎn)可以提供的服務(wù)及屬性,SDP機(jī)制可以提取建立RFCOMM連接需要的所有服務(wù)信息。數(shù)據(jù)終端查詢(xún)到可用的服務(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ù)牟扇PP的鑒權(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ù),主要有:查詢(xún)掃描任務(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)镻PP協(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ò)程全部完成后,點(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)建客戶(hù)端,從而實(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ò)LAP訪問(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ī)全稱(chēng)為單片微型計(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ā)展很快,從原始的玻璃管溫度計(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 制作所需原件及其功能
電子元件名稱(chēng)
規(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ù)判斷工程機(jī)械的工作狀態(tài)是否正常以便采取及時(shí)的措施。
3.5.1硬件說(shuō)明
傳感器的選擇
設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)需要考慮以下3個(gè)方面
①溫度傳感器的選擇②溫度傳感器的選擇③單片機(jī)和溫度傳感器的接口電路; 控制溫度傳感器實(shí)現(xiàn)溫度信息采集以及數(shù)據(jù)傳輸?shù)能浖纹瑱C(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)了智能溫度傳感器(亦稱(chēng)數(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)框圖
溫
度
傳
感
器
單
片
機(jī)
藍(lán)
牙
模
塊
計(jì)
算
機(jī)
圖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è)溫分辨率0·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ě)周期
全靜態(tài)操作:0HZ-24MHZ
三級(jí)加密程序存儲(chǔ)器
256X8字節(jié)內(nèi)部RAM
32個(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è)
超過(guò)極限?
報(bào)警
結(jié)束并顯示溫度
溫度顯示
延時(shí)
圖3-2 數(shù)據(jù)讀取流程圖
3.8 DS18B20
單片機(jī)實(shí)現(xiàn)溫度轉(zhuǎn)換讀取溫度數(shù)值程序的流程圖如圖:
開(kāi)始
初始化DS18B20
應(yīng)答脈沖
否
發(fā)起讀取的命令
是
發(fā)起轉(zhuǎn)換命令
延時(shí)1s等待溫度轉(zhuǎn)換完成
初始化DS18B20
應(yīng)答脈沖
否
是
發(fā)起讀取命令
讀取第一二字節(jié)即為溫度數(shù)據(jù)
圖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)品,是一款非常方便用戶(hù)使用AT命令進(jìn)行修改藍(lán)牙參數(shù)的模塊。
BF10-A模塊支持:
1200bps~2764800bps等多種接口波特率。
修改波特率、藍(lán)牙名稱(chēng)、設(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í)的故障診斷與解決起決定性作用。
第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跳/秒。基帶操作定義了微微網(wǎng)的跳頻序列是如何產(chǎn)生,設(shè)備如何獲知并遵循跳頻序列并隨即加入微微網(wǎng),在微微網(wǎng)中的設(shè)備如何以同等通信方式發(fā)送和接收數(shù)據(jù)分組。
藍(lán)牙微微網(wǎng)以一種特殊的方式形成,不依賴(lài)于蜂窩網(wǎng)絡(luò)中的基站或WLAN網(wǎng)絡(luò)等設(shè)備的專(zhuān)門(mén)支持,設(shè)備之間可以通過(guò)查詢(xún)方式相互通信?;鶐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所示。
圖4-1 藍(lán)牙微微網(wǎng)