基于PDA的藍(lán)牙通訊程序設(shè)計(jì)——軟件設(shè)計(jì)(2010畢業(yè)設(shè)計(jì)論文).doc_第1頁(yè)
基于PDA的藍(lán)牙通訊程序設(shè)計(jì)——軟件設(shè)計(jì)(2010畢業(yè)設(shè)計(jì)論文).doc_第2頁(yè)
基于PDA的藍(lán)牙通訊程序設(shè)計(jì)——軟件設(shè)計(jì)(2010畢業(yè)設(shè)計(jì)論文).doc_第3頁(yè)
基于PDA的藍(lán)牙通訊程序設(shè)計(jì)——軟件設(shè)計(jì)(2010畢業(yè)設(shè)計(jì)論文).doc_第4頁(yè)
基于PDA的藍(lán)牙通訊程序設(shè)計(jì)——軟件設(shè)計(jì)(2010畢業(yè)設(shè)計(jì)論文).doc_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于PDA的藍(lán)牙通訊程序設(shè)計(jì)南 陽(yáng) 理 工 學(xué) 院 本科生畢業(yè)設(shè)計(jì)(論文) 學(xué)院(系):南陽(yáng)理工學(xué)院電子與電氣工程系專 業(yè): 自動(dòng)化 學(xué) 生: 魯旭升 指導(dǎo)教師: 崔世林 完成日期 2010 年 5 月南陽(yáng)理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)基于PDA的藍(lán)牙通訊程序設(shè)計(jì)軟件設(shè)計(jì) THE PROGRAM DESIGN OF BLUETOOTH COMMUNICATION BASED ON PDA學(xué) 院(系): 電子與電氣工程系 專 業(yè): 自動(dòng)化 學(xué) 生 姓 名: 魯旭升 學(xué) 號(hào): 96106054 指 導(dǎo) 教 師(職稱): 崔世林(副教授) 評(píng) 閱 教 師: 完 成 日 期: 2010年5月 南陽(yáng)理工學(xué)院Nanyang Institute of Technology基于PDA的藍(lán)牙通訊程序設(shè)計(jì)的軟件設(shè)計(jì)摘要 隨著微電子技術(shù)、通信技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)發(fā)展已經(jīng)進(jìn)入移動(dòng)時(shí)代。以掌上電腦(PDA)為代表的移動(dòng)式計(jì)算系統(tǒng)已日益普及。特別是工業(yè)高度發(fā)展的今天,對(duì)工業(yè)現(xiàn)場(chǎng)的通信與數(shù)據(jù)實(shí)時(shí)處理要求越來(lái)越高。在環(huán)境惡劣與布線不便的工業(yè)場(chǎng)所,設(shè)備間無(wú)線通訊與PDA輔助處理成了工業(yè)現(xiàn)場(chǎng)的最佳選擇。藍(lán)牙是一種低成本、高可靠性的無(wú)線傳輸技術(shù),藍(lán)牙通信是實(shí)現(xiàn)PDA與工業(yè)接入點(diǎn)通信的首要環(huán)節(jié)。藍(lán)牙技術(shù)是用微波無(wú)線通信技術(shù)取代數(shù)據(jù)電纜來(lái)完成點(diǎn)對(duì)點(diǎn)或點(diǎn)對(duì)多點(diǎn)短距離通信的一種新型無(wú)線通信技術(shù)。而藍(lán)牙芯片則是藍(lán)牙技術(shù)的基礎(chǔ)和關(guān)鍵。本文采用MITEL公司新推出的藍(lán)牙基帶控制器芯片MT1020A結(jié)合PH2041無(wú)線收發(fā)器實(shí)現(xiàn)了MT1020A、PDA和PC的無(wú)線通信,實(shí)現(xiàn)了工業(yè)現(xiàn)場(chǎng)、PDA與上位機(jī)三方通信的應(yīng)用設(shè)想。PDA上的WINDOWS應(yīng)用程序采用C#在Viso studio 2008環(huán)境下開發(fā)編寫,以實(shí)現(xiàn)PDA與單片機(jī)和PC機(jī)間的數(shù)據(jù)通訊,并通過(guò)PDA對(duì)接收的數(shù)據(jù)進(jìn)行輔助處理。關(guān)鍵詞 藍(lán)牙 HCI協(xié)議 無(wú)線通信 MT1020A PDATHE PROGRAM DESIGN OF BLUETOOTH COMMUNICATION BASED ON PDAAbstract: As long as the developing of the micro-electronic communication and the computer, the computers developing has come into mobile century. Platforms, as the symbol of the windows mobile have spread quickly day by day. Especially, at the recent moment of highly developing in industry, the need of industrial communication and real-time digital operation is becoming better quality. Wireless communication and PDA assistance between the industrial filed devices is the best choice at the environment of odious and wiring inconvenient. Bluetooth is a low-cost and high-reliability transmission technique. Bluetooth wireless communication is the first step of realizing the communication of PDA and the industrial connect-point. Bluetooth is a new type near distance point-to-point or point-to-multipoint wireless communication technique, which use wireless microwave communication substitute digital cable to accomplish. However, the Bluetooth chip is the basic and key of the Bluetooth technique. This article used the Bluetooth basic controller chip MT1020A combined PH2041 Bluetooth wireless receive-set device published by MITEL to realize the wireless communication of MT1020A,PDA and PC, which realized the third side communication image of industrial-filed, PDA and PC. The Windows applicant program on PDA is developed in C# to realize the digital communication of signal chip, PDA and PC and assist you to operate digitals under the environment of Visual studio 2008. Key words: Bluetooth HCI Protocol Wireless Communication MT1020A PDA目 錄 目 錄41 引言61.1 課題的背景及意義61.2 國(guó)內(nèi)外研究現(xiàn)狀62 藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介72.1 藍(lán)牙技術(shù)與藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介72.1.1 藍(lán)牙技術(shù)簡(jiǎn)介82.1.2 藍(lán)牙協(xié)議(HCI)介紹82.1.3 藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介102.2 MT1020A基帶控制器和PH2401無(wú)線收發(fā)器介紹112.2.1 MT1020A基帶控制器的結(jié)構(gòu)與原理112.2.2 PH2401無(wú)線收發(fā)器與嵌入式控制內(nèi)核功能介紹152.2.3 USB藍(lán)牙適配器介紹162.3 PDA移動(dòng)手持終端介紹172.3.1 PDA的基本知識(shí)172.3.2 PDA的操作系統(tǒng)182.3.3 PDA的內(nèi)存管理183.1 MT1020A端的軟件設(shè)計(jì)193.1.1 初始化193.1.2 藍(lán)牙交互203.1.3 處理數(shù)據(jù)203.2 PDA端的軟件設(shè)計(jì)233.2.1配置資源參數(shù)243.2.2 打開串口資源243.2.3 PDA通信讀寫操作243.2.4關(guān)閉串口273.2.5 通信數(shù)據(jù)的加密與解密283.3 PC端的軟件設(shè)計(jì)293.3.1 藍(lán)牙適配器驅(qū)動(dòng)程序接口函數(shù)的調(diào)用293.3.2 驅(qū)動(dòng)程序流程圖的編寫303.3.3 PC端通信窗體的設(shè)計(jì)314 基于PDA的工業(yè)現(xiàn)場(chǎng)藍(lán)牙通信系統(tǒng)設(shè)計(jì)324.1 VS 2008環(huán)境下Windows應(yīng)用程序的封裝與PDA上應(yīng)用程序的安裝和調(diào)試324.2 工業(yè)現(xiàn)場(chǎng)藍(lán)牙系統(tǒng)的整體調(diào)試與應(yīng)用設(shè)想33結(jié) 論34致 謝35參 考 文 獻(xiàn)36附錄37PDA Windows應(yīng)用程序的源程序代碼:37 第 5 頁(yè) 共 42 頁(yè)基于PDA的藍(lán)牙通訊程序設(shè)計(jì)基于PDA的藍(lán)牙通信程序設(shè)計(jì)軟件設(shè)計(jì)姓名:魯旭升 學(xué)號(hào):96106054 班級(jí):0696111 引言 1.1 課題的背景及意義PDA是Personal Digital Assistant(個(gè)人數(shù)字助理)的縮寫,是近來(lái)繼傳呼機(jī)、手機(jī)之后,迅速崛起的新興電子消費(fèi)性產(chǎn)品,即智能電腦工具,就其擴(kuò)展意義上來(lái)講,它是供人們溝通、連接和互動(dòng)的移動(dòng)數(shù)字設(shè)備,集計(jì)算、電話、傳真和網(wǎng)絡(luò)等多種功能于一身,尤為重要的是,這些功能都可以通過(guò)無(wú)線方式實(shí)現(xiàn)。通常,狹義的PDA是指電子記事本、電子詞典等;廣義的PDA則主要指掌上電腦、手持電腦和智能手機(jī),也包括其他類似功能的小型數(shù)字化設(shè)備。目前,PDA從最初的實(shí)用型轉(zhuǎn)向時(shí)尚型,開始向電腦、手持設(shè)備靠近?!瓣P(guān)于未來(lái)的PDA,加州柏克利大學(xué)的Info Pad 計(jì)劃是個(gè)不錯(cuò)的例子:這個(gè)設(shè)備使用無(wú)線網(wǎng)絡(luò),可將資料(包括完整動(dòng)態(tài)視訊)傳送到一個(gè)能量充足的、方便攜式輕薄型客戶端上。客戶端使用的是一般標(biāo)準(zhǔn)電池,觸摸式彩色屏幕,還內(nèi)置手寫與語(yǔ)音識(shí)別系統(tǒng),你的資料將存在一個(gè)移動(dòng)服務(wù)器(為移動(dòng)設(shè)備提供信息服務(wù)的遠(yuǎn)端電腦)中,便攜設(shè)備將一直與你同行,從家里到車上,非常方便,在此基礎(chǔ)上,我們距離可穿戴的PDA甚至可嵌入的PDA已經(jīng)近在咫尺了,剩下的只是時(shí)間問(wèn)題?!彼{(lán)牙技術(shù)于1995年由愛立信公司提出,這個(gè)概念一經(jīng)提出就受到業(yè)界的廣泛接受,并馬上形成了SIG(藍(lán)牙特殊利益集團(tuán)),這個(gè)利益集團(tuán)的成員有愛立信、諾基亞、摩托羅位、3COM、IBM、INTEL等九個(gè)成員,這九個(gè)成員都是各個(gè)行業(yè)的領(lǐng)導(dǎo)者。隨著工業(yè)技術(shù)的發(fā)展,DCS(集中控制分散管理)成了現(xiàn)代化工業(yè)的標(biāo)準(zhǔn),而將藍(lán)牙技術(shù)與PDA結(jié)合應(yīng)用于工業(yè)現(xiàn)場(chǎng),不但減少了很多不方便的接線,還使數(shù)據(jù)的管理更加精確與高效,控制更加集中與快捷。你不必時(shí)刻呆在設(shè)備旁邊,只要你在有效的距離內(nèi)帶上PDA就能隨時(shí)隨地的解決所有問(wèn)題,而且不必?fù)?dān)心會(huì)有問(wèn)題遺漏,PDA會(huì)像力控一樣將所有的報(bào)警信息按優(yōu)先級(jí)排列出來(lái)以待你的處理。無(wú)論你是坐在辦公桌旁還是躺在沙發(fā)上甚至窩在床上,只要你掏出PDA就如親臨現(xiàn)場(chǎng)一般,真是一機(jī)在手,工作無(wú)憂。1.2 國(guó)內(nèi)外研究現(xiàn)狀移動(dòng)計(jì)算是國(guó)際上最近五年內(nèi)發(fā)展起來(lái)的最新科技,且勢(shì)頭迅猛。移動(dòng)計(jì)算使計(jì)算機(jī)或其他信息設(shè)備在沒有與固定的物理連接設(shè)備相連的情況下能將有用、準(zhǔn)確、及時(shí)的信息與中央信息系統(tǒng)相互作用,分擔(dān)其計(jì)算壓力,使信息能夠提供給任何時(shí)間、任何地點(diǎn)需要它的任何用戶。在硬件方面,全世界已經(jīng)有包括IBM、MicroOptical、Xybernaut在內(nèi)的超過(guò)100家公司生產(chǎn)與移動(dòng)計(jì)算相關(guān)的產(chǎn)品,如帶LCD顯示器的眼鏡、手執(zhí)微型鍵盤、手執(zhí)鼠標(biāo)、聲控輸入設(shè)備等。在應(yīng)用系統(tǒng)開發(fā)方面,美國(guó)麻省理工學(xué)院、哥倫比亞大學(xué)和歐洲的瑞士聯(lián)邦技術(shù)學(xué)院、荷蘭Delft技術(shù)大學(xué)等都在醫(yī)學(xué)、工業(yè)等各個(gè)移動(dòng)計(jì)算領(lǐng)域進(jìn)行應(yīng)用系統(tǒng)的開發(fā)工作。在地理界,美國(guó)愛荷華州立大學(xué)和加利福尼亞大學(xué)美國(guó)地理信息與分析中心(NCGIA)正在合作為NASA和聯(lián)邦統(tǒng)計(jì)機(jī)構(gòu)進(jìn)行一項(xiàng)名為Batutta的計(jì)劃,旨在研制一套專為地學(xué)野外采樣使用的移動(dòng)作業(yè)系統(tǒng),包括地理環(huán)境與地理信息系統(tǒng)在無(wú)線移動(dòng)環(huán)境中的集成以及穿戴式計(jì)算機(jī)、便攜計(jì)算機(jī)、PDA和臺(tái)式服務(wù)器的聯(lián)合使用。國(guó)內(nèi)PDA產(chǎn)品目前還只是高級(jí)白領(lǐng)的“游戲機(jī)”,一方面是由于硬件技術(shù)的不成熟,另一方面是國(guó)內(nèi)的嵌入式軟件開發(fā)剛剛興起不久。但是已經(jīng)有一些公司開發(fā)出一些與地圖密切相關(guān)的軟件產(chǎn)品。如: 一、北京靈圖軟件技術(shù)有限公司推出的在移動(dòng)信息設(shè)備上提供地理信息以及位置信息服務(wù)的SmartInHand軟件產(chǎn)品。 二、北京慧圖公司新近推出一種可運(yùn)行于掌上電腦、進(jìn)行移動(dòng)制圖和GIS應(yīng)用的野外地質(zhì)數(shù)據(jù)采集系統(tǒng):TopMap CEGenius。三、北京超圖開發(fā)出地理信息系統(tǒng)開發(fā)平臺(tái)-eSuperMap。 四、臺(tái)灣“英瑞得信息”公司設(shè)計(jì)出支持GPS全球衛(wèi)星定位系統(tǒng)專用軟件“WalkMap地圖隨身走”。目前PDA主要應(yīng)用于地圖導(dǎo)航領(lǐng)域,而藍(lán)牙技術(shù)主要應(yīng)用于手機(jī)電腦等電子產(chǎn)品,而在工業(yè)現(xiàn)場(chǎng)應(yīng)用還較少。除了國(guó)內(nèi)某些醫(yī)藥物流行業(yè)用到PDA復(fù)核揀選外,其它行業(yè)還沒廣泛的應(yīng)用。不過(guò)相信不久的將來(lái)PDA一定會(huì)更加的推廣流行,那時(shí)的工業(yè)現(xiàn)場(chǎng)作業(yè)會(huì)更加的方便與高效,現(xiàn)場(chǎng)作業(yè)人員也會(huì)成為真正意義上SOHO一族。2 藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介 2.1 藍(lán)牙技術(shù)與藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介 2.1.1 藍(lán)牙技術(shù)簡(jiǎn)介藍(lán)牙技術(shù)是用微波技術(shù)取代傳統(tǒng)網(wǎng)絡(luò)中錯(cuò)綜復(fù)雜的連接電纜來(lái)實(shí)現(xiàn)家庭或辦公場(chǎng)中的電話、便攜式計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)以及其它外設(shè)之間的互連互通的一種新型通訊解決方案。利用這一方案可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)對(duì)多點(diǎn)的通訊傳輸,并把設(shè)計(jì)人員從無(wú)數(shù)錯(cuò)綜復(fù)雜的電纜連接中解放出來(lái),從而可以方便地設(shè)計(jì)自己的個(gè)人網(wǎng)絡(luò)。有了藍(lán)牙技術(shù),人們甚至不用掏出自己的移動(dòng)電話,就可以用PDA(個(gè)人數(shù)字助理)通過(guò)口袋中的移動(dòng)電話來(lái)查詢新聞、預(yù)定機(jī)票以及進(jìn)行其它電子商務(wù)活動(dòng)。藍(lán)牙技術(shù)是一種取代數(shù)據(jù)電纜的短距離無(wú)線通信技術(shù),能完成點(diǎn)對(duì)點(diǎn)對(duì)多點(diǎn)的無(wú)線難。可以用藍(lán)牙無(wú)線通信技術(shù)將家庭或辦公室中的各種數(shù)據(jù)和語(yǔ)音設(shè)備取成一個(gè)PICONET網(wǎng)(也叫作微微網(wǎng))。而且可以將幾個(gè)PICONET網(wǎng)進(jìn)一步互連,組成一個(gè)更大的分布式網(wǎng)絡(luò)(也叫作SCATTERNET網(wǎng)),以在各個(gè)設(shè)備之間進(jìn)行快速方便的通信聯(lián)系。藍(lán)牙技術(shù)的工作頻段為全球開放的2.4GHzISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻段,該頻段能夠保證人們?cè)谑┬袝r(shí)可以毫無(wú)障礙且方便可靠地合作藍(lán)牙設(shè)備。由于采用擴(kuò)頻技術(shù),發(fā)射功率可增加到100mW。但是,由于ISM頻段對(duì)所有無(wú)線電都開放,汽車、微波爐以及其它高頻微波設(shè)備都有可能成為藍(lán)牙技術(shù)不可預(yù)測(cè)的干擾源,因此,一般的藍(lán)牙技術(shù)方案都特別設(shè)計(jì)了快速確認(rèn)和調(diào)頻方案來(lái)確保通信的穩(wěn)定連接和數(shù)據(jù)的可靠保密。在目前公布的Bluetooth V1.0藍(lán)牙技術(shù)規(guī)范中,數(shù)據(jù)的最大傳出速率為721kbit/s,系統(tǒng)的最大跳頻速率為1600 跳/秒,在2.402GHz 到2.480GHz 之間,采用79 個(gè)1MHz 帶寬的頻點(diǎn)。采用時(shí)分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸。通信距離為10米。如果加大發(fā)射功率,其通信距離可加大到100米左右。2.1.2 藍(lán)牙協(xié)議(HCI)介紹藍(lán)牙SIG 開發(fā)了藍(lán)牙協(xié)議規(guī)范, 已發(fā)布版本包括1.0,1.0b,1.1 和2.0。藍(lán)牙協(xié)議規(guī)范允許開發(fā)人員開發(fā)基于可互操作的無(wú)線模塊和數(shù)據(jù)通信協(xié)議的交互式服務(wù)和應(yīng)用, 目的是使符合該規(guī)范的各種應(yīng)用之間能夠?qū)崿F(xiàn)互操作。藍(lán)牙協(xié)議棧體系結(jié)構(gòu)如圖1 所示?;ゲ僮鞯倪h(yuǎn)端設(shè)備需要使用相同的協(xié)議棧, 不同的應(yīng)用需要不同的協(xié)議棧, 但是, 所有的應(yīng)用都要使用藍(lán)牙協(xié)議規(guī)范中的數(shù)據(jù)鏈路層和物理層。協(xié)議棧各層都是相對(duì)分離的實(shí)體, 通過(guò)回調(diào)表將精心設(shè)計(jì)好的接口暴露給上下層,除此之外協(xié)議棧內(nèi)的各部分沒有任何交互關(guān)系, 每一層都是可替換的。藍(lán)牙1.0 標(biāo)準(zhǔn)由兩個(gè)文件組成。一個(gè)是核心部分(FoundationCore),它規(guī)定的是設(shè)計(jì)標(biāo)準(zhǔn)。另一個(gè)叫協(xié)議子集部分(FoundationProfile),它規(guī)定的是運(yùn)作性準(zhǔn)則。藍(lán)牙協(xié)議可以分為4 層,即核心協(xié)議層、電纜替代協(xié)議層、電話控制協(xié)議層和采納的其它協(xié)議層。由于篇幅的限制,本文只介紹核心協(xié)議。藍(lán)牙的核心協(xié)議包括基帶(baseband)、鏈路管理(LMP)、邏輯鏈路控制與適應(yīng)協(xié)議(SDP)等四部分?;鶐樱核{(lán)牙采用跳頻擴(kuò)頻技術(shù),每秒1600 跳,從時(shí)間域看即每個(gè)時(shí)隙長(zhǎng)度是625s,即每個(gè)時(shí)隙從79 個(gè)信道中選擇一個(gè)。藍(lán)牙既支持電路型數(shù)據(jù),也支持分組型數(shù)據(jù);既支持點(diǎn)對(duì)點(diǎn)連接,也支持點(diǎn)對(duì)多點(diǎn)連接。在一個(gè)微微網(wǎng)絡(luò)(Pieconet)中,一個(gè)單元作為主節(jié)點(diǎn),其他作為從節(jié)點(diǎn),最多可以有7 個(gè)從節(jié)點(diǎn);但是允許有更多從節(jié)點(diǎn)與主節(jié)點(diǎn)保持在Park 狀態(tài)。從節(jié)點(diǎn)對(duì)信道的接入由主節(jié)點(diǎn)控制。微微網(wǎng)絡(luò)在覆蓋上可以有重疊:每個(gè)網(wǎng)絡(luò)有各自的跳頻方案,一個(gè)網(wǎng)絡(luò)的主節(jié)點(diǎn)可以同時(shí)作為另一個(gè)網(wǎng)絡(luò)的從節(jié)點(diǎn);一個(gè)從節(jié)點(diǎn)可以屬于多個(gè)網(wǎng)絡(luò)。主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送數(shù)據(jù)只能占用偶時(shí)隙,反之從節(jié)點(diǎn)只能在奇時(shí)隙才能向主節(jié)點(diǎn)發(fā)送數(shù)據(jù)。一個(gè)分組(Packet,實(shí)際上更習(xí)慣的說(shuō)法是幀,因?yàn)樵诨鶐悠涞匚活愃朴贠SI的第2 層、部分涉及物理層,分組的確切用法在第3 層,但是藍(lán)牙基帶層規(guī)范中采用Packet術(shù)語(yǔ))的傳送最多可以占用5 個(gè)時(shí)隙,在一個(gè)分組的傳送期內(nèi),維持初始時(shí)隙所占用的信道而不再跳頻。鏈路管理(LMP)負(fù)責(zé)藍(lán)牙組件間連接的建立。通過(guò)連接的發(fā)起、交換、核實(shí),進(jìn)行身份鑒權(quán)和加密等安全方面的任務(wù);通過(guò)協(xié)商確定基帶數(shù)據(jù)分組大?。凰€控制無(wú)線單元的電源模式和工作周期,以及微微網(wǎng)內(nèi)藍(lán)牙組件的連接狀態(tài)。邏輯鏈路控制與適應(yīng)協(xié)議(L2CAP)位于基帶協(xié)議層之上,屬于數(shù)據(jù)鏈路層,是一個(gè)為高層傳輸和應(yīng)用層協(xié)議屏蔽基帶協(xié)議的適配協(xié)議。其完成數(shù)據(jù)的拆裝、基帶與高協(xié)議間的適配,并通過(guò)協(xié)議復(fù)用、分用及重組操作為高層提供數(shù)據(jù)業(yè)務(wù)和分類提取,它允許高層協(xié)議和應(yīng)用接收或發(fā)送長(zhǎng)過(guò)64K 字節(jié)的L2CAP 數(shù)據(jù)包。業(yè)務(wù)搜尋協(xié)議(SDP)是極其重要的部分,它是所使用模式的基礎(chǔ)。通過(guò)SDH,可以查詢?cè)O(shè)備信息、業(yè)務(wù)及業(yè)務(wù)特征,并在查詢之后建立兩個(gè)或多個(gè)藍(lán)牙設(shè)備間的連接。SDP支持3 種查詢方式:按業(yè)務(wù)類別搜尋、按業(yè)務(wù)屬性搜尋和業(yè)務(wù)瀏覽(browsing)。2.1.3 藍(lán)牙系統(tǒng)結(jié)構(gòu)簡(jiǎn)介MT1020基帶控制器和PH2401無(wú)線收發(fā)器分別由MITEL公司和PHILSAR公司提供,兩者配合可構(gòu)成完整的低功耗的藍(lán)牙模塊,提供高至HCI(主機(jī)控制接口)層的功能。它們?cè)谒{(lán)牙系統(tǒng)中的位置如圖2所示。MT1020基帶控制器負(fù)責(zé)藍(lán)牙基帶部分的功能,完成基帶以及鏈路的管理,包括對(duì)SCO(同步)和ACL(異步)連接方式的支持、差錯(cuò)控制、物理層的認(rèn)證與加密、鏈路管理等;PH2401實(shí)現(xiàn)數(shù)據(jù)的無(wú)線接收和發(fā)送;虛線以上部分由用戶根據(jù)不同的應(yīng)用需求來(lái)實(shí)現(xiàn),分為用戶主機(jī)端和用戶PDA端。特別值得一提的是,在該藍(lán)牙模塊解決方案中,即將推出的改進(jìn)型基帶控制器MT1020B可提供20K的用戶ROM,使用戶可以利用其內(nèi)嵌的低功耗、高性能的32位ARM7TDMI內(nèi)核,從而簡(jiǎn)化用戶設(shè)計(jì),實(shí)現(xiàn)最低楞耗、最高集成度的藍(lán)牙產(chǎn)品。 2.2 MT1020A基帶控制器和PH2401無(wú)線收發(fā)器介紹工業(yè)現(xiàn)場(chǎng)接入點(diǎn)通過(guò)傳感器將信號(hào)傳入MT1020A中再經(jīng)PH2401無(wú)線收發(fā)器將信號(hào)發(fā)射給上位機(jī)處理,本章主要介紹基帶控制器與無(wú)線收發(fā)器的結(jié)構(gòu)與原理。2.2.1 MT1020A基帶控制器的結(jié)構(gòu)與原理MT1020A是MITEL公司推出的低成本、微功耗藍(lán)牙基帶控制器芯片。它和其它的無(wú)線收發(fā)器一起可以構(gòu)成一個(gè)完整的低功耗小于藍(lán)牙技術(shù)系統(tǒng)。MT1020A采用CMOS工藝制作,是低功耗無(wú)線通信應(yīng)用系統(tǒng)中理想的藍(lán)牙基帶微處理器件。它的引腳排列如圖3所示:MT1020A采用1111球形焊珠陣列121腳SSBGA封裝形式。圖3為其引腳排列圖。各引腳的功能如下:A1(nScs):系統(tǒng)片選引腳,低電平有效; A2(Hst_usb_d_pls):USB主機(jī)接口數(shù)據(jù)正端;A3(Hst_uart_cts):串行主機(jī)接口發(fā)送清零; A4(SubGND):芯片接地端;A5(LaVDD):芯片電源引腳; A6(GND):公共接地端;A7(OpVDD):系統(tǒng)I/O電源; A8(Sadd):地址端(19位總線);A9(Sadd):地址端(19位總線); A10(SubGND):芯片接地端;A11(Bsio_clk):串行I/O口時(shí)鐘輸出; B1(Sdata):數(shù)據(jù)端(19位總線); B2(GND):公共接地引腳;B3(Hst_usb_d_mns):SUB主機(jī)接口數(shù)據(jù)負(fù)端; B4(PLLVDD):鎖相環(huán)電源;B5(nSoe):系統(tǒng)輸出使能端,低電平有效; B6(nScs):系統(tǒng)片選引腳,低電平有效;B7(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線); B8(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線);B9(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線); B10(Bsio_data_in):串行I/O口數(shù)據(jù)輸入;B11(Bsio_data_out):串行I/O口數(shù)據(jù)輸出;C1(OpVDD):系統(tǒng)I/O電源; C2(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線);C3(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線); C4(Hst_uart_rts):串行主機(jī)接口發(fā)送準(zhǔn)備好;C5(Hst_uart_rxd):串行主機(jī)接口接收數(shù)據(jù)端; C6(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線);C7(Sdata);系統(tǒng)數(shù)據(jù)端(15位總線); C8(Sadd):系統(tǒng)地址(19位總線);C9(Sdata):系統(tǒng)數(shù)據(jù)端; C10(Bsio_ss):串行I/O口從機(jī)選擇;C11(Gpio):通用I/O口; D1(GND):公共接地引腳; D2(nSub):系統(tǒng)高位,低電平有效; D3(Sadd):系統(tǒng)地址(19位總線); D4(Sdata):系統(tǒng)數(shù)據(jù)(15位總線);D5(Hst_uart_txd):串行主機(jī)接口數(shù)據(jù)發(fā)射端; D6(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線);D7(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線); D8(Sdata):系統(tǒng)數(shù)據(jù)端(15位總線);D9(Gpio):通用I/O口; D10(Gpio):通用I/O口;D11(GND):公共接地端;E1(LaVDD):芯片電源端; E2(U1cts):UART1發(fā)送清零;E3(U1txd):UART1數(shù)據(jù)發(fā)送; E4(Sadd):系統(tǒng)地址(19位總線);E5(PLL_at1):鎖相環(huán)1模擬測(cè)試引腳; E6(nScs):系統(tǒng)片選引腳,低電平有效;E7(Sdata):系統(tǒng)數(shù)據(jù)(15位總線); E8(Gpio_):通用I/O口或芯片USB喚醒輸出引腳;E9(Gpio):通用I/O口或芯片USB HPWR輸出引腳; E10(Gpio):通用I/O口或芯片USB HPWR輸入引腳;E11(LaVDD):微處理器電源端;F1(GND):公共接地端; F2(Lin_pcm_in):16-bit線性PCM輸入數(shù)據(jù)流;F3(U1rxd):UART1數(shù)據(jù)接收端; F4(U1rts):UART1發(fā)送準(zhǔn)備好;F5(Lin_pcm_out):16-bit線性PCM輸出數(shù)據(jù)流; F6(Gpio):通用I/O或外部中斷2;F7(Sdata):系統(tǒng)數(shù)據(jù)(15位總線); F8(Gpio):通用I/O或外部中斷1;F9(Sdata):系統(tǒng)數(shù)據(jù)(15位總線); F10(Swait):系統(tǒng)等待;F11(OpVDD):系統(tǒng)I/O電源;G1(La VDD):芯片電源引腳; G2(Lin_pcm_clk):16-bit線性PCM時(shí)鐘主輸出/從輸入;G3(Lin_pcm_frm):16-bit線性PCM幀同步主輸出/從輸入;G4(Tdo_bdiag_2):ICE測(cè)試數(shù)據(jù)輸出或者Xdiag輸出;G5(Tck_bdiag-0):ICE測(cè)試時(shí)鐘輸入或者Xdiag輸出;G6(Ri_txd):無(wú)線電數(shù)據(jù)發(fā)射端; G7(Ri_rx_act):無(wú)線電數(shù)據(jù)解調(diào)接收端;G8(Sadd):系統(tǒng)地址(19位總線); G9(Sadd):系統(tǒng)地址(19位總線);G10(Sadd):系統(tǒng)地址(19位總線); G11(GND):公共接地引腳;H1(OpVDD):系統(tǒng)I/O電源; H2(Tdi_bdiag_1):ICE測(cè)試數(shù)據(jù)輸入或者Xdiag輸出;H3(Tms_bdiag_3):ICE掃描測(cè)試模式輸入或者Xdiag輸出; H4(Sadd):系統(tǒng)地址(19位總線);H5(Ri_tx_en):無(wú)線電發(fā)射使能; H6(Ri_spi_clk):無(wú)線電串行接口時(shí)鐘;H7(Ri_spi_en):無(wú)線電串行接口使能; H8(Hest):測(cè)試使能端;H9(Sadd):系統(tǒng)地址(19位總線); H10(Sadd):系統(tǒng)地址(19位總線);H11(nSreset):系統(tǒng)復(fù)位端,低電平有效;J1(Sadd):系統(tǒng)地址(19位總線); J2(Sadd)系統(tǒng)地址(19位總線);J3(nTrst):Xpins/diag模式或ICE復(fù)位和ARM/UIM測(cè)試模式,低電平有效;J4(Sadd):系統(tǒng)地址(19位總線); J5(Ri_rx_en):無(wú)線電接收使能;J6(Ri_spi_misod):無(wú)線電串行接口數(shù)據(jù)輸入; J7(Lp_clk_in):3.2kHz時(shí)鐘輸入,用于藍(lán)牙休眠定時(shí);J8(SubGND):芯片接地端; J9(nICE):Xpins/diag模式或ICE模式,低電平有效;J10(Ear_minus):CODEC(多媒體數(shù)字信號(hào)編解碼器)耳機(jī)聽筒音頻差分輸出負(fù)端;J11(Ear_plus):CODEC(多媒體數(shù)字信號(hào)編解碼器)耳機(jī)聽筒音頻差分輸出正端;K1(Sadd):系統(tǒng)地址(19位總線); K2(Sadd):系統(tǒng)地址(19位總線);K3(nSwe):系統(tǒng)寫使能引腳; K4(Sadd):系統(tǒng)地址(19位總線);K5(OpVDD2):系統(tǒng)無(wú)線電接口電源; K6(GND):公共接地引腳;K7(LaVDD):芯片電源引腳; K8(Ri_reset_O):系統(tǒng)無(wú)線電復(fù)位引腳;K9(Mic_plus):CODEC(多媒體數(shù)字信號(hào)編解碼器)麥克風(fēng)音頻差分正輸入端;K10(VREF):音頻CODEC(多媒體數(shù)字信號(hào)編解碼器)VREF濾波電容接入端,使用時(shí)應(yīng)在該端與地之前接一個(gè)100nF的電容器;K11(VDDP):CODEC(多媒體數(shù)字信號(hào)編解碼器)輸出放大器模擬電源;L1(SubGND):芯片接地端; L2(nSwe):系統(tǒng)寫入使能;L3(Sadd):系統(tǒng)地址(19位總線); L4(Sadd):系統(tǒng)地址(19位總線);L5(Ri_rxd):無(wú)線電數(shù)據(jù)接收端; L6(Ri_spi_misod):無(wú)線電串行接口數(shù)據(jù)輸出;L7(Clk_in):系統(tǒng)時(shí)鐘輸入; L8(AVDD):CODEC模擬電源端;L9(Mic_minus):CODEC(多媒體數(shù)字信號(hào)編解碼器)麥克風(fēng)音頻差分負(fù)輸入端;L10(SubGND):芯片接地端; L11(GNDp):CODEC輸出放大器接地端。MT1020由嵌入式微處理器和藍(lán)牙基帶外設(shè)組成,如圖4示。在該芯片中,系統(tǒng)內(nèi)部時(shí)鐘可以低至5MHz、內(nèi)核供電電壓為2V、硬件解碼、支持DMA傳輸,所有這些使得該芯片具有超低功耗。MT1020A的基帶外圍電路主要由主機(jī)接口、總線接口、藍(lán)牙鏈路控制器、12kB緩沖RAM、隊(duì)列管理器、音頻編解碼器以及音頻和其它通信接口電路功能塊組成。該部分可用最小的軟硬件開銷完成各種重要的藍(lán)牙系統(tǒng)操作?;鶐鈬娐分械目偩€接口主要用于完成微處理器與基帶外圍電路之間的各種通信,而外圍電路內(nèi)部各部分之間的數(shù)據(jù)傳輸則使用外圍電路中的BT總線來(lái)完成。鍵路控制器用來(lái)完成與外部無(wú)線收發(fā)器之間的通信,以實(shí)現(xiàn)數(shù)據(jù)發(fā)送時(shí)的裝配、加同步字、幀頭和CRC校驗(yàn)以及數(shù)字接收時(shí)的解碼和檢錯(cuò)等。緩沖RAM是專門存儲(chǔ)藍(lán)牙數(shù)據(jù)包和變量的存儲(chǔ)器,容量為12kB。隊(duì)列管理器可實(shí)現(xiàn)緩沖RAM與鏈路控制器以及主機(jī)接口與音頻或其它通信接口之間的DMA傳輸。音頻解碼器是一個(gè)全雙工的解碼器,內(nèi)含麥克風(fēng)放大器和耳機(jī)驅(qū)動(dòng)器,其中的數(shù)字轉(zhuǎn)換器可進(jìn)行線性PCM、A律PCM、律PCM和CVSD間的相互轉(zhuǎn)換。2.2.2 PH2401無(wú)線收發(fā)器與嵌入式控制內(nèi)核功能介紹PH2401單片無(wú)線收發(fā)器用砷化鎵工藝制造,具有高集成度、超低功耗、體積小等優(yōu)點(diǎn),專門優(yōu)化用于2.4GHz無(wú)線個(gè)人系統(tǒng),完全兼容藍(lán)牙規(guī)范“Bluetoooth V1.0”。 它工作于2.4GHz的ISM頻段,以每秒1600次的速度在79個(gè)頻道(2.402GHz-2.408GHz)上快速跳頻,最大位傳輸速率可達(dá)1Mbit/s。PH2401采用調(diào)制指數(shù)為0.3的高斯頻移鍵控制(GFSK)調(diào)制方式,信道帶寬為1MHz,頻偏在140kHz-175kHz之間,滿足藍(lán)牙2級(jí)和3級(jí)操作, 送功率可在-10dBm-+2dBm之間編程設(shè)定,發(fā)射范圍為10-100m。接收器由RF-IF下變頻器、自動(dòng)增益控制(AGC)、濾波器、雙通道模/數(shù)轉(zhuǎn)換器及調(diào)制器組成。基帶控制器通過(guò)串行總線與PH2401接口。通過(guò)對(duì)其內(nèi)部寄存器的讀寫實(shí)現(xiàn)跳頻、調(diào)諧等其它控制。工業(yè)現(xiàn)場(chǎng),MT1020A和PH2401所組成的藍(lán)牙系統(tǒng)框圖如圖5所示:藍(lán)牙系統(tǒng)的具體接線:本文用該芯片的串行異步收發(fā)器1,也就是E3(U1txd):UART1數(shù)據(jù)發(fā)送端,和F3(U1rxd):UART1數(shù)據(jù)接收端與工業(yè)現(xiàn)場(chǎng)接入點(diǎn)的傳感器信號(hào)或控制儀表相連;用藍(lán)牙外圍電路的無(wú)線接口J6(Ri_spi_misod):(無(wú)線電串行接口數(shù)據(jù)輸入)L6(Ri_spi_misod):(無(wú)線電串行接口數(shù)據(jù)輸出)與PH1024無(wú)線收發(fā)器相連;用C11(Gpio):通用I/O口, D9(Gpio):通用I/O口, D10(Gpio):通用I/O口, E8(Gpio_):通用I/O口或芯片USB喚醒輸出引腳,這四個(gè)通用I/O端口連接一個(gè)液晶顯示屏,以顯示接收到的數(shù)據(jù)。其它再具體的接線本文限于篇幅不再贅述。2.2.3 USB藍(lán)牙適配器介紹藍(lán)牙USB 適配器采用CSR BlueCore 04,可去市場(chǎng)購(gòu)買,價(jià)格大概在三十到四十元左右,用時(shí)先向PC機(jī)里面裝相應(yīng)的驅(qū)動(dòng)程序,再將USB適配器插入PC機(jī)的USB接口中即可與MT1020A端和PDA端進(jìn)行通信。至此工業(yè)現(xiàn)場(chǎng)通信的三方通信硬件平臺(tái)的搭建已基本完成,三方通信框圖如圖6所示:2.3 PDA移動(dòng)手持終端介紹本節(jié)主要介紹PDA的有關(guān)情況,包括PDA的基本知識(shí),PDA的操作系統(tǒng)和PDA的內(nèi)存管理。2.3.1 PDA的基本知識(shí)PDA:全稱為Personal Digital Assistant;紙面意思就是“個(gè)人數(shù)碼助理”。PDA最初是用于PIM(Personal Information Management:個(gè)人信息管理),替代紙筆,幫助人們進(jìn)行一些日常管理,主要為日程安排、通訊錄、任務(wù)安排、便箋。隨著科技的發(fā)展,PDA逐漸融合計(jì)算、通信、網(wǎng)絡(luò)、存儲(chǔ)、娛樂(lè)、電子商務(wù)等多功能,成為人們移動(dòng)生活不可缺少的工具。PDA的樣式有多種多樣,下面只給出一種PDA以供參考,如圖7所示:t1.jpg (41.62 KB)2006-10-25 20:11由于PDA具有臺(tái)式電腦某些功能,而且體積小巧,便于攜帶,所以有些人把PDA稱作“掌上電腦”。這個(gè)名字非常貼切,一看就能明白這臺(tái)設(shè)備的主要功能。不過(guò)截止到今天,“掌上電腦”也就是PDA,相對(duì)于普通電腦來(lái)說(shuō),只是一個(gè)功能精簡(jiǎn)的系統(tǒng),并不是真正意義上具有普通電腦的所有功能。它主要體現(xiàn)在便攜方便上,也就是“掌上”,并不能完全代替電腦。智能手機(jī):隨著科技的發(fā)展,原來(lái)的PDA增加了手機(jī)功能,例如Palm、Windows Mobile、Linux系統(tǒng);或者手機(jī)增加了PDA功能,例如Symbian系統(tǒng)。這些手機(jī)又被統(tǒng)稱為“智能手機(jī)”,以便與以前的傳統(tǒng)手機(jī)相區(qū)別。之所以稱為“智能”,相當(dāng)與傳統(tǒng)手機(jī)來(lái)說(shuō),增加了PDA功能。從以上定義來(lái)看,其實(shí)掌上電腦和智能手機(jī)都是PDA的一種,而且掌上電腦范圍涵蓋智能手機(jī),一臺(tái)智能手機(jī)從功能上來(lái)說(shuō),也算的上是掌上電腦。不過(guò)日常一般為了便于區(qū)分,我們常說(shuō) PDA掌上電腦智能手機(jī)。這里的“掌上電腦”主要指本身不具備手機(jī)功能的PDA,也就是傳統(tǒng)的PDA。 PDA最大的特點(diǎn)就是,該設(shè)備具有一個(gè)開放的系統(tǒng),就像電腦的操作系統(tǒng)一樣,人們可以根據(jù)自己的需要,安裝不同的軟件,實(shí)現(xiàn)不同的功能。這也是“智能手機(jī)”、“智能設(shè)備”被稱作“智能”的根本原因。2.3.2 PDA的操作系統(tǒng)創(chuàng)建基于PDA的藍(lán)牙通信系統(tǒng)的第一步就是選擇開發(fā)應(yīng)用程序的操作系統(tǒng)(operating system,OS)。因?yàn)榇蠖鄶?shù)藍(lán)牙系統(tǒng)都是在Palm操作系統(tǒng)或Pocket PC平臺(tái)上設(shè)計(jì)的。Palm操作系統(tǒng)是PalmSource開發(fā)的一種功能強(qiáng)大的操作系統(tǒng);Pocket PC操作系統(tǒng)由微軟開發(fā),是運(yùn)行PDA設(shè)備的Windows CE的子集。這兩種操作系統(tǒng)都是針對(duì)小型和移動(dòng)應(yīng)用來(lái)設(shè)計(jì)的,因此相對(duì)于臺(tái)式機(jī),這兩種開發(fā)環(huán)境在功能、軟件工具,以及內(nèi)存選項(xiàng)上都存在不足。還有一種操作系統(tǒng)就是1999年誕生的Symbian OS,它是一款專門為手機(jī)量身定作的操作系統(tǒng)。2.3.3 PDA的內(nèi)存管理Palm和Pocket PC操作系統(tǒng)使用的存儲(chǔ)器和文件管理系統(tǒng)有很大區(qū)別。Pocket PC使用類似于臺(tái)式機(jī)Windows操作系統(tǒng)的系統(tǒng),例如,Pocket PC應(yīng)用程序使用的內(nèi)存容量受限于板載存儲(chǔ)器的容量(目前最高為64MB)。然而,因?yàn)閼?yīng)用程序需要使用一些空間來(lái)保持狀態(tài),所以不是所有的內(nèi)存都可以給數(shù)據(jù)使用。與Pocket PC操作系統(tǒng)不同,Palm操作系統(tǒng)目前不使用傳統(tǒng)的文件系統(tǒng)。它將數(shù)據(jù)保存在被稱作“記錄”的存儲(chǔ)塊中,并且組成數(shù)據(jù)庫(kù)。Palm操作系統(tǒng)將所有文件都組織成數(shù)據(jù)庫(kù)的形式,每個(gè)數(shù)據(jù)庫(kù)最多可以有64000個(gè)記錄,每個(gè)記錄最大為64KB。這樣,由于Palm操作系統(tǒng)這種連接各應(yīng)用程序的方式,每個(gè)應(yīng)用程序都不能超過(guò)64KB(頂層應(yīng)用程序除外,它可以包含若干個(gè)程序,文件總?cè)萘靠梢猿^(guò)64KB)。對(duì)于代碼之外的所有事物,應(yīng)用程序也受到大約160KB的堆、或動(dòng)態(tài)存儲(chǔ)空間的限制。與Pocket PC操作系統(tǒng)一樣,Palm應(yīng)用程序使用一些內(nèi)存來(lái)保存狀態(tài)信息,所以也不是所有的內(nèi)存空間都用于存儲(chǔ)數(shù)據(jù)。因?yàn)槿魏纬^(guò)可用內(nèi)存容量的PDA應(yīng)用程序都將立即停止,所以了解內(nèi)存管理是至關(guān)重要的。鑒于工業(yè)現(xiàn)場(chǎng)通信的特點(diǎn)和各個(gè)操作系統(tǒng)的內(nèi)存管理特點(diǎn),本文采用Pocket PC操作系統(tǒng)。 3 Visual Stdio 2008環(huán)境下的PDA Windows應(yīng)用程序設(shè)計(jì)3.1 MT1020A端的軟件設(shè)計(jì)單片機(jī)端的軟件在Keil 平臺(tái)下進(jìn)行嵌入式C 編程實(shí)現(xiàn), 傳輸層采用UART,單片機(jī)通過(guò)UART 控制藍(lán)牙模塊。軟件包括初始化, 藍(lán)牙交互, 處理數(shù)據(jù)三個(gè)模塊。3.1.1 初始化初始化包括系統(tǒng)初始化和藍(lán)牙初始化。系統(tǒng)初始化包括CPU 時(shí)鐘初始化, 管腳分配, 串口初始化等,藍(lán)牙初始化是通過(guò)UART 給藍(lán)牙模塊發(fā)送一系列初始化命令, 藍(lán)牙模塊返回事件, 交互完成一系列的復(fù)位, 鑒權(quán), 讀地址等初始化操作。初始化程序主函數(shù)如下:main.cmain( ) 主函數(shù)sys_init( ) 系統(tǒng)初始化, 包括設(shè)置看門狗, 初始化時(shí)鐘, 鍵盤及液晶, 配置端口bt_init( ) 藍(lán)牙初始化uart.cuart_init( ) 串口0 初始化, 包括設(shè)工作方式, 開中斷, 設(shè)波特率, 開定時(shí)器1限于篇幅,具體主程序的編寫不再贅述。3.1.2 藍(lán)牙交互通信就是初始化完成后若本地藍(lán)牙作從設(shè)備, 則等待遠(yuǎn)端藍(lán)牙設(shè)備的建鏈請(qǐng)求, 如果接受請(qǐng)求, 則繼續(xù)等待建鏈成功, 獲得一個(gè)連接句柄, 從而進(jìn)行數(shù)據(jù)交換, 若本地藍(lán)牙作主設(shè)備, 則通過(guò)一系列主動(dòng)查詢, 建鏈, 發(fā)送數(shù)據(jù), 斷鏈等操作處理數(shù)據(jù)就是將數(shù)據(jù)顯示在與單片機(jī)相連的LCD 上等一系列后續(xù)操作。程序流程圖如圖8示。藍(lán)牙交互部分的程序主函數(shù)如下:bt_inquiry( ) 搜索附近藍(lán)牙設(shè)備bt_create_connection( .) 與指定藍(lán)牙設(shè)備建立連接bt_send_acl_data( .) 發(fā)送ACL 數(shù)據(jù)bt_disconnection( .) 與指定藍(lán)牙設(shè)備斷開連接3.1.3 處理數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)方面, 程序按照HCI 規(guī)范構(gòu)造了HCI指令分組cmd_pkt, HCI 事件分組event_pkt 和HCIACL 數(shù)據(jù)分組acl_pkt 的數(shù)據(jù)結(jié)構(gòu), 并設(shè)計(jì)了用于標(biāo)識(shí)當(dāng)前藍(lán)牙設(shè)備的hci_device 結(jié)構(gòu)體, 包括藍(lán)牙設(shè)備配置信息hci_info, 藍(lán)牙連接信息hci_con 和用于存儲(chǔ)返回分組信息的接收緩沖區(qū)hci_buf1000, 具體如圖9所示。軟件采用前后臺(tái)的方式實(shí)現(xiàn), 前臺(tái)運(yùn)行主程序,后臺(tái)定時(shí)循環(huán)調(diào)用HCI 狀態(tài)機(jī)。HCI 狀態(tài)機(jī)是一個(gè)子程序, 用來(lái)專門處理藍(lán)牙模塊返回的HCI 事件分組和HCI 數(shù)據(jù)分組。狀態(tài)機(jī)通過(guò)分析HCI 事件分組來(lái)決定相應(yīng)操作, 獲取相關(guān)信息, 通過(guò)分析HCI 數(shù)據(jù)分組, 來(lái)接收實(shí)際傳輸數(shù)據(jù)并存儲(chǔ)到接收緩沖區(qū)。具體的HCI 狀態(tài)機(jī)的處理流程如圖10所示:HCI 狀態(tài)機(jī)初始狀態(tài)置為IDLE_STATE, 根據(jù)HCI UART 傳輸層格式規(guī)范, 按字段取藍(lán)牙模塊返回的各個(gè)字節(jié), 每個(gè)字節(jié)為一個(gè)十六進(jìn)制數(shù), 不同的數(shù)代表不同的含義。第一個(gè)字節(jié)為分組指示器, 標(biāo)識(shí)分組的類型。ACL 數(shù)據(jù)分組為ACL_PKT( 0x02) , SCO數(shù)據(jù)分組為SCO_PKT( 0x03) , 事件分組為EVT_PKT( 0x04) , 另外指令分組為CMD_PKT( 0x01) , 藍(lán)牙模塊只返回ACL, SCO 和事件分組。取出第一個(gè)字節(jié)判斷出分組類型。若為事件分組, 則狀態(tài)機(jī)轉(zhuǎn)換為EVENT_HDR_STATE 狀態(tài), 繼續(xù)取字節(jié), 讀出事件碼和參數(shù)長(zhǎng)度后, 轉(zhuǎn)換到EVENT_DATA_STATE 狀態(tài), 表示再來(lái)的字節(jié)即為事件參數(shù), 讀取事件參數(shù),并調(diào)用process_event ( ) 處理事件, 完成后回到IDLE_STATE 狀態(tài)。若為ACL 數(shù)據(jù)分組, 則先轉(zhuǎn)換為ACL_HDR_STATE 狀態(tài), 取出連接句柄, 轉(zhuǎn)換為ACL_DATA_STATE 狀態(tài), 處理后續(xù)來(lái)的數(shù)據(jù), 即為實(shí)際接收到的數(shù)據(jù), 完成后回到IDLE_STATE 狀態(tài)。若為SCO 數(shù)據(jù)分組, 類同ACL 數(shù)據(jù)分組的處理過(guò)程。HCI 狀態(tài)機(jī)要通過(guò)系統(tǒng)預(yù)先設(shè)定的一個(gè)定時(shí)器定時(shí)循環(huán)調(diào)用, 雖然HCI 從UART 得到的數(shù)據(jù)流是一塊一塊的, 有可能剛好是一個(gè)分組, 有可能是幾個(gè)分組, 還可能是一個(gè)分組的部分?jǐn)?shù)據(jù), 但狀態(tài)機(jī)對(duì)接收到的一塊數(shù)據(jù)流的處理是連續(xù)進(jìn)行的, 數(shù)據(jù)流的間斷只會(huì)造成狀態(tài)機(jī)的暫時(shí)等待, 而不會(huì)影響其正確處理返回分組。如中途出現(xiàn)分組丟失或錯(cuò)誤的字段, 狀態(tài)機(jī)會(huì)報(bào)錯(cuò)并重新置回初始態(tài)。狀態(tài)機(jī)數(shù)據(jù)處理部分的程序主函數(shù)如下:hci.chci_state_machine( ) hci 狀態(tài)機(jī), 定時(shí)器3 定時(shí)10ms 中斷調(diào)用hci_buf_put_ch( ) uart0 中斷接收藍(lán)牙模塊返回?cái)?shù)據(jù), 放入hci_data_buf1000hci_buf_get_ch( ) 從hci_data_buf1000讀取一個(gè)字符待狀態(tài)機(jī)分析hci_reset( .) 復(fù)位命令, 組合命令分組, 調(diào)用send_cmd( ) 發(fā)送給藍(lán)牙模塊 類同hci_reset, hci 共4 大類命令: 鏈路管理/ 鏈路策略/ 主機(jī)控制器/ 信息參數(shù)get_opcode( .) 將ogf 和ocf 組合成操作碼opcodele_u16_to_u16( .) 實(shí)現(xiàn)反位序即大小模式轉(zhuǎn)換send_cmd( .)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論