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