版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要隨著科學(xué)技術(shù)的發(fā)展和人們生活水平的提高,人們?cè)絹?lái)越注重居住環(huán)境的舒適、安全和便利。近年來(lái)興起的智能家居系統(tǒng)滿足了人們的需求。它有效地在家庭環(huán)境中形成家庭信息網(wǎng)絡(luò),將各種家電組合成一個(gè)有機(jī)的整體,對(duì)家電進(jìn)行集中或遠(yuǎn)程智能控制。管理能力和與外界溝通的能力。作為無(wú)線數(shù)據(jù)和語(yǔ)音通信的全球開(kāi)放標(biāo)準(zhǔn),藍(lán)牙技術(shù)可以提供低功耗、短距離的無(wú)線空中接口,實(shí)現(xiàn)各種固定和移動(dòng)設(shè)備之間的無(wú)線通信。藍(lán)牙技術(shù)廣泛應(yīng)用于移動(dòng)通信、無(wú)線數(shù)據(jù)采集、無(wú)線遙控遙測(cè)、計(jì)算機(jī)網(wǎng)絡(luò)和自動(dòng)控制等各個(gè)領(lǐng)域。利用所設(shè)計(jì)的藍(lán)牙軟硬件接口,本文開(kāi)發(fā)了一種基于藍(lán)牙模塊的智能家居控制系統(tǒng)。在本系統(tǒng)中,上位機(jī)通過(guò)USB控制藍(lán)牙適配器,其發(fā)出的控制指令
2、被下位機(jī)側(cè)的藍(lán)牙模塊接收后傳送給單片機(jī),編寫(xiě)一個(gè)基本的藍(lán)牙和模擬家電單片機(jī)側(cè)的控制程序,從而實(shí)現(xiàn)PC和模擬家電的無(wú)線控制功能。本文提供的藍(lán)牙軟硬件接口方案和數(shù)據(jù)傳輸模塊,不僅可以用來(lái)進(jìn)一步開(kāi)發(fā)藍(lán)牙高層協(xié)議,還可以作為通用接口功能和模塊應(yīng)用于各種無(wú)線場(chǎng)合。關(guān)鍵詞:藍(lán)牙技術(shù);智能家居;藍(lán)牙模塊目錄 TOC o 1-3 h z u HYPERLINK l _Toc331093038 前言 PAGEREF _Toc331093038 h 1 HYPERLINK l _Toc331093039 第 1 章 引言 PAGEREF _Toc331093039 h 2 HYPERLINK l _Toc3310
3、93040 1.1課題研究背景 PAGEREF _Toc331093040 h 2 HYPERLINK l _Toc331093041 1.2智能家居發(fā)展現(xiàn)狀 PAGEREF _Toc331093041 h 2 HYPERLINK l _Toc331093042 1.3未來(lái)智能家居的發(fā)展趨勢(shì) PAGEREF _Toc331093042 h 3 HYPERLINK l _Toc331093043 1.4研究目的和意義 PAGEREF _Toc331093043 h 3 HYPERLINK l _Toc331093044 1.5課題研究?jī)?nèi)容 PAGEREF _Toc331093044 h 4 HY
4、PERLINK l _Toc331093045 第二章藍(lán)牙技術(shù)介紹 PAGEREF _Toc331093045 h 5 HYPERLINK l _Toc331093046 2.1藍(lán)牙系統(tǒng)組成 PAGEREF _Toc331093046 h 5 HYPERLINK l _Toc331093047 2.2藍(lán)牙協(xié)議棧 PAGEREF _Toc331093047 h 6 HYPERLINK l _Toc331093048 2.3藍(lán)牙控制器接口(HCI)分析 PAGEREF _Toc331093048 h 6 HYPERLINK l _Toc331093049 2.3.1人機(jī)交互6概述 PAGEREF
5、_Toc331093049 h HYPERLINK l _Toc331093050 2.3.2 HCI傳輸層 PAGEREF _Toc331093050 h 7 HYPERLINK l _Toc331093051 2.3.3 HCI數(shù)據(jù)包格式 PAGEREF _Toc331093051 h 8 HYPERLINK l _Toc331093052 第三章 設(shè)計(jì)方案與模塊介紹 PAGEREF _Toc331093052 h 10 HYPERLINK l _Toc331093053 3.1藍(lán)牙家庭控制系統(tǒng)的組成和結(jié)構(gòu) PAGEREF _Toc331093053 h 10 HYPERLINK l _T
6、oc331093054 3.2主要硬件模塊介紹 PAGEREF _Toc331093054 h 10 HYPERLINK l _Toc331093055 第 4 章 系統(tǒng)硬件設(shè)計(jì) PAGEREF _Toc331093055 h 14 HYPERLINK l _Toc331093056 4.1下位機(jī)模塊設(shè)計(jì) PAGEREF _Toc331093056 h 14 HYPERLINK l _Toc331093057 4.2 PC與藍(lán)牙模塊的連接 PAGEREF _Toc331093057 h 16 HYPERLINK l _Toc331093058 4.3單片機(jī)與家用電器的連接 PAGEREF _T
7、oc331093058 h 17 HYPERLINK l _Toc331093059 4.3系統(tǒng)電源模塊原理圖 PAGEREF _Toc331093059 h 17 HYPERLINK l _Toc331093060 第 5 章 系統(tǒng)軟件設(shè)計(jì) PAGEREF _Toc331093060 h 19 HYPERLINK l _Toc331093061 5.1單片機(jī)軟件設(shè)計(jì) PAGEREF _Toc331093061 h 19 HYPERLINK l _Toc331093062 5.2 上位機(jī)軟件設(shè)計(jì) PAGEREF _Toc331093062 h 24 HYPERLINK l _Toc331093
8、063 第 6 章 系統(tǒng)測(cè)試與分析 PAGEREF _Toc331093063 h 29 HYPERLINK l _Toc331093064 結(jié)論 PAGEREF _Toc331093064 h 31 HYPERLINK l _Toc331093065 至 PAGEREF _Toc331093065 h 32 HYPERLINK l _Toc331093066 參考文獻(xiàn) PAGEREF _Toc331093066 h 33 HYPERLINK l _Toc331093067 附錄 PAGEREF _Toc331093067 h 34前言隨著科學(xué)技術(shù)的發(fā)展和人們生活水平的提高,人們?cè)絹?lái)越注重居住
9、環(huán)境的舒適、安全和便利。近年來(lái)興起的智能家居系統(tǒng)滿足了人們的需求。它有效地在家庭環(huán)境中形成家庭信息網(wǎng)絡(luò),將各種家電組合成一個(gè)有機(jī)的整體,對(duì)家電進(jìn)行集中或遠(yuǎn)程智能控制。管理能力和與外界溝通的能力。一、在研究藍(lán)牙SPP應(yīng)用模型和我國(guó)家庭控制子網(wǎng)通信協(xié)議條例的基礎(chǔ)上,比較各種家庭組網(wǎng)技術(shù)的優(yōu)缺點(diǎn)后,基于藍(lán)牙協(xié)議的家庭控制子網(wǎng)實(shí)現(xiàn)方案為選擇。 .本方案采用藍(lán)牙SPP模型承載通用設(shè)備控制協(xié)議,降低了家庭控制子網(wǎng)組網(wǎng)過(guò)程的難度,符合實(shí)際應(yīng)用場(chǎng)景。其次,研究并提出了作為智能家居系統(tǒng)實(shí)現(xiàn)核心的智能家居控制器的軟硬件設(shè)計(jì)方案。硬件方面,選用三星高性?xún)r(jià)比的ARM9芯片S3C2410作為其CPU,完成了智能家居控制
10、器的供電、顯示、輸入、存儲(chǔ)、無(wú)線藍(lán)牙和GPRS模塊的電路設(shè)計(jì);在軟件方面,它是成功的。將U-boot、嵌入式Linux內(nèi)核和藍(lán)牙協(xié)議棧BlueZ移植到智能家居控制器的目標(biāo)板上,并在Linux內(nèi)核中為系統(tǒng)的各個(gè)硬件模塊添加相應(yīng)的驅(qū)動(dòng)程序。最后對(duì)藍(lán)牙模塊進(jìn)行了測(cè)試,實(shí)現(xiàn)了藍(lán)牙的點(diǎn)對(duì)點(diǎn)通信,并為系統(tǒng)開(kāi)發(fā)了一些常用接口。對(duì)研究工作進(jìn)行了總結(jié),列出了已實(shí)現(xiàn)的研究成果和要實(shí)現(xiàn)的智能家居控制系統(tǒng)的功能。第一章簡(jiǎn)介1.1 課題研究背景Smart home,或者smart home,英文Smart Home,Intelligent home,常用的意思是Home Automation(家庭自動(dòng)化),Electr
11、onic Home(電子家庭,E-home),Digital Home(數(shù)字家庭),Network Home,Intelligent建造。智能家居是集建筑、網(wǎng)絡(luò)通訊、信息家電、設(shè)備自動(dòng)化為一體,集系統(tǒng)、結(jié)構(gòu)、服務(wù)、管理為一體的高效、舒適、安全、便捷、環(huán)保的生活環(huán)境。智能家居是以家居產(chǎn)品的自動(dòng)化、智能化為基礎(chǔ),按照擬人化的要求,通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)的。智能家居可以定義為利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通信技術(shù)、綜合布線技術(shù)、無(wú)線技術(shù),將與家居生活相關(guān)的各種子系統(tǒng)有機(jī)地結(jié)合起來(lái)的過(guò)程或系統(tǒng)。與普通家居相比,原本被動(dòng)的靜態(tài)結(jié)構(gòu),變成了具有主動(dòng)智能的工具,提供全方位的信息交流功能,幫助家庭與外界保持順暢的信息交流。
12、智能家居強(qiáng)調(diào)人的主觀能動(dòng)性,需要注意人與居住環(huán)境的協(xié)調(diào),可以隨意控制房間的居住環(huán)境。1.2 智能家居發(fā)展現(xiàn)狀智能家居于 1980 年代出現(xiàn)在日本、歐洲和美國(guó),并于 1990 年代后期傳入中國(guó)。目前,美國(guó)有 7000 萬(wàn)戶(hù)家庭依靠智能家居網(wǎng)絡(luò)設(shè)備生活。近年來(lái),以微軟公司、美國(guó)摩托羅拉公司為首的一批國(guó)際知名企業(yè)相繼進(jìn)入智能家居網(wǎng)絡(luò)研發(fā)領(lǐng)域,研發(fā)出“夢(mèng)想之家”、“家庭導(dǎo)演”、“家門(mén)”和其他家庭。智能設(shè)備方面,3COM開(kāi)發(fā)了家庭無(wú)線網(wǎng)關(guān)等網(wǎng)絡(luò)產(chǎn)品,并與微軟聯(lián)合開(kāi)發(fā)了通用的即插即用家庭網(wǎng)絡(luò)系統(tǒng)。該系統(tǒng)與家用電器和網(wǎng)絡(luò)連接方便,可高速傳輸文字、語(yǔ)音、視聽(tīng)咨詢(xún)。這套也適用于小型辦公室。國(guó)內(nèi)廠商也在研發(fā)和生產(chǎn)
13、智能家庭網(wǎng)絡(luò)產(chǎn)品,一大批大型IT企業(yè)利用資金和技術(shù)優(yōu)勢(shì),在低端市場(chǎng)占據(jù)了非常重要的地位。在智能家居網(wǎng)絡(luò)領(lǐng)域,清華同方與建設(shè)部智能專(zhuān)家委員會(huì)聯(lián)合成立了智能家居開(kāi)放實(shí)驗(yàn)室,并獲得了著名綜合布線廠商西蒙和百通產(chǎn)品在中國(guó)的總代理資格。臺(tái)達(dá)創(chuàng)先科技集團(tuán)先后研發(fā)LDM-2000、智能家居控制器、HomeNet網(wǎng)絡(luò)化綜合管理系統(tǒng),并開(kāi)通中國(guó)智能樓宇服務(wù)網(wǎng),為智能樓宇提供在線咨詢(xún)和在線技術(shù)支持,已成為國(guó)家級(jí)樓宇科技。領(lǐng)域的權(quán)威。1.3 未來(lái)智能家居發(fā)展趨勢(shì)如何讓家居環(huán)境變得便捷、舒適、人性化、智能化,真正提升人們的生活品質(zhì),是智能家居系統(tǒng)的發(fā)展方向。其發(fā)展趨勢(shì)主要包括以下幾個(gè)方面:(1) 向個(gè)性化發(fā)展。人們可
14、以根據(jù)自己的需要和喜好選擇不同的功能。智能家居的發(fā)展將不斷滿足人們的個(gè)性化需求。(2)向系統(tǒng)高度集成的方向發(fā)展信息家電控制功能、呼叫對(duì)講功能、自動(dòng)管理功能、安全監(jiān)控功能、設(shè)備自檢功能等功能,實(shí)現(xiàn)集成統(tǒng)一調(diào)度,降低成本。隨著科技的不斷發(fā)展,系統(tǒng)的集成度會(huì)越來(lái)越高。(3)向網(wǎng)絡(luò)化發(fā)展網(wǎng)絡(luò)化是計(jì)算機(jī)、通信、電子、物聯(lián)網(wǎng)等各種技術(shù)發(fā)展的必然趨勢(shì),也是智能家居智能化的重要體現(xiàn)。(四)環(huán)境保護(hù)向綠色環(huán)保方向發(fā)展是全球要求。如何利用現(xiàn)有的智能家居技術(shù),降低功耗,減少對(duì)社區(qū)和家庭的環(huán)境污染,提升人居環(huán)境質(zhì)量,是智能化的重要目標(biāo)。1.4 研究目的和意義隨著經(jīng)濟(jì)的發(fā)展和后PC、物聯(lián)網(wǎng)時(shí)代的到來(lái),人們對(duì)自身居住環(huán)境
15、的要求不斷提高,智能家居將逐漸成為中國(guó)家居市場(chǎng)的主流。目前,在、等經(jīng)濟(jì)發(fā)達(dá)地區(qū)已建成一批智能住宅小區(qū),并正在迅速向其他地區(qū)輻射。智能家居將極大地改變?nèi)藗兊娜粘I詈凸ぷ鞣绞剑瑤?dòng)傳統(tǒng)家電制造、智能家居裝飾、社區(qū)信息服務(wù)以及房地產(chǎn)等相關(guān)產(chǎn)業(yè)的蓬勃發(fā)展。家居智能化、樓宇信息化及相關(guān)技術(shù)產(chǎn)品發(fā)展迅速,智能家居即將走進(jìn)人們的生活。建設(shè)部將智能住宅列為國(guó)家重點(diǎn)發(fā)展方向。智能住宅社區(qū)包括智能家居的設(shè)計(jì),而智能家居的建設(shè)是智慧社區(qū)建設(shè)的一部分。目前,國(guó)家在符合中國(guó)國(guó)情的智能家居設(shè)計(jì)開(kāi)發(fā)上投入了大量財(cái)力和人力,因此嵌入式智能家居項(xiàng)目的應(yīng)用前景十分廣闊。但是,由于智能家居市場(chǎng)的發(fā)展還處于起步階段,智能家居中的信
16、息設(shè)備之間的通信并不是很規(guī)律。為此,早在2005年,國(guó)家就制定了家庭網(wǎng)絡(luò)系統(tǒng)架構(gòu)及參考模型家庭控制子網(wǎng)通信協(xié)議條例、家庭控制子網(wǎng)通信協(xié)議條例等條例,以促進(jìn)和管理我國(guó)智能手機(jī)的發(fā)展。國(guó)內(nèi)市場(chǎng)。健康發(fā)展。智能家居控制器是智能家居的核心設(shè)備,人們只需一個(gè)控制器就可以控制家中所有的電器設(shè)備。本文主要研究智能家居網(wǎng)絡(luò)的建立和智能家居控制器的設(shè)計(jì),是實(shí)現(xiàn)智能家居的重要環(huán)節(jié),具有廣泛的現(xiàn)實(shí)意義,為未來(lái)提供了可行的設(shè)計(jì)方案。智能家居。1.5 研究項(xiàng)目的內(nèi)容主要通過(guò)使各類(lèi)智能家電符合藍(lán)牙協(xié)議構(gòu)建家庭控制子網(wǎng),在完成智能家居控制器軟硬件設(shè)計(jì)的基礎(chǔ)上,將控制器應(yīng)用于聯(lián)網(wǎng)智能家居系統(tǒng)。主要研究課題如下:(1) 通信協(xié)
17、議的選擇分析家庭網(wǎng)絡(luò)的架構(gòu),研究和比較當(dāng)前智能家居組網(wǎng)協(xié)議,選擇符合家庭網(wǎng)絡(luò)具體要求的通信協(xié)議。(2)智能家居控制器的硬件設(shè)計(jì)首先,根據(jù)智能家居控制器的具體要求,如功耗、成本、體積等,為其選擇性?xún)r(jià)比較高的CPU;電路設(shè)計(jì)與調(diào)試。(3)智能家居控制器軟件設(shè)計(jì)。給出了軟件流程框圖,包括在單片機(jī)和PC機(jī)上運(yùn)行的程序,本文均用C語(yǔ)言編寫(xiě)。第二章藍(lán)牙技術(shù)介紹2.1 藍(lán)牙系統(tǒng)的組成一個(gè)典型的藍(lán)牙系統(tǒng)可以分為5個(gè)單元,即射頻單元、鏈路控制單元、鏈路管理單元、藍(lán)牙協(xié)議軟件單元和主機(jī)應(yīng)用軟件單元。(1) 射頻單元藍(lán)牙基于無(wú)線局域網(wǎng)的 IEEE802.11 標(biāo)準(zhǔn)技術(shù),使用 2.4GHz ISM GSM 自由頻段。
18、藍(lán)牙天線屬于微帶天線,空中接口基于0dBm的天線級(jí)別,符合FCC(Federal Communications Commission,美國(guó)聯(lián)邦通信委員會(huì))OdBm級(jí)別的ISM頻段標(biāo)準(zhǔn)。由于采用擴(kuò)頻技術(shù),發(fā)射功率可達(dá)100mW。系統(tǒng)最大跳頻速率為每秒 1600 跳,在 2.402GHz 和 2.480GHz 之間,使用 79 個(gè)頻點(diǎn),間隔 1MHz 來(lái)實(shí)現(xiàn) 31。系統(tǒng)設(shè)計(jì)的通信距離為10cm10m。如果增加發(fā)射功率,距離可達(dá)100m。(2) 鏈接控制單元藍(lán)牙的鏈路控制單元,也稱(chēng)為基帶單元,包括3個(gè)集成芯片:連接控制器、基帶處理器和射頻發(fā)射/接收器,另外還使用了3-5個(gè)獨(dú)立的調(diào)諧元件。概述 鏈路控
19、制單元描述了基帶鏈路控制器的數(shù)字信號(hào)處理協(xié)議?;鶐ф溌房刂破髫?fù)責(zé)處理基帶協(xié)議和一些其他低級(jí)常規(guī)協(xié)議。鏈路控制單元的主要功能包括:建立物理鏈路和網(wǎng)絡(luò)連接,包括面向連接的同步鏈路SCO(Synchronous Connection Oriented)鏈路、異步鏈路ACL(Asynchronous Connectionless)鏈路和微微網(wǎng);錯(cuò)誤控制;物理層提供鑒權(quán)和加密,基于“請(qǐng)求-響應(yīng)”算法實(shí)現(xiàn)鑒權(quán),為用戶(hù)建立個(gè)人信任域,并通過(guò)加密保護(hù)連接中的個(gè)人信息。(3) 鏈路管理單元鏈路管理器LM(Link Manager)軟件模塊設(shè)計(jì)了鏈路數(shù)據(jù)設(shè)置、認(rèn)證、鏈路硬件配置等協(xié)議。鏈路管理器可以發(fā)現(xiàn)其他藍(lán)牙設(shè)
20、備的鏈路管理器,通過(guò)鏈路管理協(xié)議LMP(Link Mallager Protocol01)建立通信鏈路。鏈路管理器提供數(shù)據(jù)收發(fā)、設(shè)備號(hào)請(qǐng)求、鏈路地址查詢(xún)、連接建立、鑒權(quán)、鏈路模式協(xié)商與建立、設(shè)備模式切換等功能。2.2 藍(lán)牙協(xié)議棧藍(lán)牙協(xié)議棧的架構(gòu)是分層結(jié)構(gòu),如圖2.1所示。圖 2.1 藍(lán)牙協(xié)議棧架構(gòu)藍(lán)牙規(guī)范的目的是實(shí)現(xiàn)符合規(guī)范15J 的各種應(yīng)用程序之間的互操作性?;ゲ僮餍杂糜诓僮鞯倪h(yuǎn)程設(shè)備需要使用相同的協(xié)議棧,不同的應(yīng)用需要不同的協(xié)議棧。并非所有應(yīng)用程序都必須使用所有協(xié)議,但只能使用其中的一種或多種。但是,所有應(yīng)用程序都必須使用藍(lán)牙規(guī)范的數(shù)據(jù)鏈路層和物理層。2.3 藍(lán)牙控制器接口(HCI)分析2
21、.3.1人機(jī)交互概述主機(jī)控制器接口 (HCI) 位于藍(lán)牙協(xié)議棧的中間層。它為藍(lán)牙主機(jī)提供了一個(gè)統(tǒng)一的接口來(lái)訪問(wèn)藍(lán)牙主機(jī)控制器的基帶和鏈路控制器、鏈路管理器、狀態(tài)寄存器等硬件。藍(lán)牙主機(jī)控制器(Bluctooth Host Controller)是藍(lán)牙芯片的主要組成部分,其硬件結(jié)構(gòu)如圖2.2所示。鏈路控制器提供藍(lán)牙基帶功能,硬件和軟件實(shí)現(xiàn)物理層協(xié)議; CPU內(nèi)核為鏈路管理器和鏈路控制器的固件部分提供運(yùn)行環(huán)境,使主機(jī)控制器可以獨(dú)立于主機(jī)進(jìn)行查詢(xún)和過(guò)濾調(diào)用請(qǐng)求。圖2.2 藍(lán)牙主控制器硬件結(jié)構(gòu)圖硬件方面,主控制器集成了無(wú)線電收發(fā)器、基帶控制器、Flash存儲(chǔ)器等部分。大多數(shù)基帶控制器都是基于ARM的芯片
22、,通過(guò)接口控制無(wú)線電收發(fā)器,并提供物理連接(USB/UART/H)。 PCM 等)。藍(lán)牙模塊通過(guò)這些接口與主機(jī)上的相應(yīng)接口相連,形成藍(lán)牙系統(tǒng)的硬件連接。 HCI就是基于這些物理接口定義相應(yīng)的傳輸層,實(shí)現(xiàn)主機(jī)與主機(jī)控制器之間的數(shù)據(jù)交換。兩個(gè)藍(lán)牙設(shè)備之間通過(guò)人機(jī)交互層進(jìn)行數(shù)據(jù)傳輸?shù)倪^(guò)程如圖2.3所示。圖 2.3 藍(lán)牙設(shè)備通過(guò) HCI 層的數(shù)據(jù)傳輸過(guò)程2.3.2HCI 傳輸層HCI 傳輸層是指藍(lán)牙主機(jī)和主機(jī)控制器之間的物理接口。它位于主機(jī)控制器驅(qū)動(dòng)程序和主機(jī)控制器之間。主要目的是實(shí)現(xiàn)傳輸?shù)耐该骰磸乃{(lán)牙模塊外部看到 HCI 到 HCI 傳輸層,屏蔽物理總線,讓 HCI 固件升級(jí)不影響傳輸層。2.3
23、.3HCI 數(shù)據(jù)包格式HCI為藍(lán)牙主機(jī)和藍(lán)牙主機(jī)控制器提供信息交換接口,信息以數(shù)據(jù)包的形式進(jìn)行交換。主機(jī)可以向主機(jī)控制器致HCI命令包、ACL數(shù)據(jù)包和SCO數(shù)據(jù)包;主機(jī)控制器可以向主機(jī)返回HCI事件包、ACL數(shù)據(jù)包和SCO數(shù)據(jù)包。如圖2.4所示,為各HCl組流向示意圖。圖2.4 HCl包流示意圖(1) HCI命令分組HCI 命令包用于將命令從主機(jī)致到主機(jī)控制器。 HCI 命令分組的格式如表 2.1 所示。表 2.1 HCI 命令分組格式HCI 指令分組由操作碼、參數(shù)長(zhǎng)度和指令參數(shù)列表組成。(2) HCI事件分組主機(jī)向主機(jī)控制器致指令包后,主機(jī)控制器會(huì)返回相應(yīng)的事件包,其中攜帶指令的執(zhí)行狀態(tài)及相
24、關(guān)信息。主機(jī)必須能夠接收 255 字節(jié)的 HCI 事件包,不包括 HCI 事件包頭。HCI 事件包的格式如表 2.4 所示。表 2.2 HCI 事件分組格式HCI事件包由事件代碼、參數(shù)長(zhǎng)度和事件參數(shù)列表組成。事件代碼(Event Code)大小為 1 個(gè)字節(jié),用于唯一標(biāo)識(shí)事件的類(lèi)型。取值范圍為 0 x00 到 0 xff。參數(shù)長(zhǎng)度以字節(jié)為單位。事件參數(shù)列表存儲(chǔ)了對(duì)應(yīng)命令關(guān)聯(lián)的返回事件參數(shù),大小一般為8的倍數(shù)。(3)人機(jī)交互數(shù)據(jù)包HCI 數(shù)據(jù)包用于在主機(jī)和主機(jī)控制器之間交換數(shù)據(jù)。 HCI數(shù)據(jù)包分為ACL數(shù)據(jù)包和SCO數(shù)據(jù)包,每一種都有不同的格式。這里只討論 ACL 數(shù)據(jù)包格式。HCI ACL數(shù)據(jù)
25、包用于主機(jī)與主機(jī)控制器之間的異步鏈路數(shù)據(jù)交換,其包格式如表2.5所示。表 2.3 HCIACL 數(shù)據(jù)包格式第三章設(shè)計(jì)方案與模塊介紹3.1 藍(lán)牙家居控制系統(tǒng)組成基于藍(lán)牙技術(shù)的智能家居系統(tǒng)的硬件組成主要包括藍(lán)牙模塊、MCU、PC和受控設(shè)備。整體構(gòu)成如圖 3.1 所示。結(jié)構(gòu)框圖前半部分為中控部分,主要由PC和藍(lán)牙無(wú)線收發(fā)模塊組成;在被控單元中,通過(guò)串口輸入HCI指令,實(shí)現(xiàn)藍(lán)牙模塊與單片機(jī)之間的數(shù)據(jù)通信。工作過(guò)程為:PC致控制命令,通過(guò)串口致給藍(lán)牙模塊,由藍(lán)牙模塊發(fā)出。家用電器的控制。圖 3.1。家居控制系統(tǒng)總體設(shè)計(jì)框圖本設(shè)計(jì)中用作通信部分的藍(lán)牙模塊為ROK101008,單片機(jī)選用性?xún)r(jià)比高的C8051
26、F120。3.2 主要硬件模塊介紹3.2.1愛(ài)立信藍(lán)牙模塊ROK 101 008介紹Ericsson ROK 101008 是愛(ài)立信生產(chǎn)的適用于短距離通信的無(wú)線/基帶模塊。集成度高,功耗低,完全兼容藍(lán)牙1.0B協(xié)議。它可以嵌入任何需要藍(lán)牙功能的設(shè)備中。 .支持?jǐn)?shù)據(jù)和語(yǔ)音同時(shí)傳輸,輸出功率滿足Class2要求。它提供UART和PCM接口,可以方便地與主機(jī)通信。它在UART接口上的最大傳輸速率為460Kb/s,默認(rèn)波特率為57.6Kb/s,支持的波特率為300、600、900、1200、2400、4800、9600、19200、384001 57600、115200、 230400, 60800b
27、it/s, 并有一個(gè) 128 字節(jié)的 FIFO 隊(duì)列 111。采用壓縮結(jié)構(gòu)(3.31.7 0.365cm ),表面覆蓋金層。外觀圖如圖 3.2 所示。圖 3.2 Ericsson ROK 101 008 藍(lán)牙模塊外觀ROK 101 008 如圖 3.3 所示。模塊的底層是無(wú)線電層(Radio)和基帶(Baseband),它們以硬件的形式存在;模塊中的上層是鏈路管理器(LM)和HCI,它們以固件的形式存在。圖 3.3 Ericsson ROK 101 008 藍(lán)牙模塊系統(tǒng)結(jié)構(gòu)圖ROK 101 008由基帶控制器(Baseband)、閃存(Flash Memory)、無(wú)線電收發(fā)器(PBA 3130
28、1/2)、穩(wěn)壓器(Voltage Regulation)、13MHz晶振(13MHz Crystal)共5部分組成。內(nèi)部結(jié)構(gòu)框圖如圖 3.4 所示。圖 3.4 Ericsson ROK 101 008 藍(lán)牙模塊框圖基帶控制$1J-device(基帶):是基于ARM7-Thumb的芯片,通過(guò)接口控制無(wú)線電收發(fā)器的操作。 ROK 101 008 的基帶控制器同時(shí)提供 UART 和 PCM 接口。閃存r(Flash Memory):閃存和基帶控制器同時(shí)使用。無(wú)線電收發(fā)器(PBA 31301/2):PBA313 01/2是一種短距離微波無(wú)線電收發(fā)器,其天線濾波器、RX和TX巴倫變壓器均集成在電路中,可
29、作為嵌入式結(jié)構(gòu)使用。電壓調(diào)節(jié)器:(Voltage Regulation):Vcc的典型值為3.3V,產(chǎn)生兩個(gè)可調(diào)電壓。13MHz晶振(13MHz Crystal):晶振提供頻率為13MHz的設(shè)定時(shí)鐘。愛(ài)立信ROK 101 008藍(lán)牙模塊芯片詳細(xì)引腳封裝如圖3.5所示。圖 3.5 愛(ài)立信監(jiān)控模塊 ROK 101 008 芯片管腳封裝圖引腳編號(hào)從左到右排列為A、B、C、R、T,其中每個(gè)字母代表一列,每列從下到上分別為1、2、3、4、5、6。一些常用引腳的說(shuō)明如表 3.1 所示:表 3.1 Ericsson ROK 101 008 藍(lán)牙模塊芯片部分管腳說(shuō)明3.2.2 藍(lán)牙適配器模塊 HYPERLIN
30、K %20%20%20%20:/baike.baidu%20%20%20%20/picview/175383/175383/0/f95898189fd495944bedbc74.html o 查看圖片 t _blank 藍(lán)牙適配器圖片藍(lán)牙(Bluetooth)是一種 HYPERLINK %20%20%20%20:/baike.baidu%20%20%20%20/view/5030.htm t _blank 無(wú)線網(wǎng)絡(luò)傳輸技術(shù),最初用來(lái)代替紅外線。與紅外技術(shù)相比,藍(lán)牙無(wú)需對(duì)齊即可傳輸數(shù)據(jù),傳輸距離小于10米(紅外傳輸距離為數(shù)米)。在信號(hào)放大器 HYPERLINK %20%20%20%20:/bai
31、ke.baidu%20%20%20%20/view/840433.htm t _blank 的幫助下 HYPERLINK %20%20%20%20:/baike.baidu%20%20%20%20/view/7011.htm t _blank ,通訊距離甚至可以達(dá)到100米左右。藍(lán)牙技術(shù)非常適合低功耗的數(shù)字設(shè)備 HYPERLINK %20%20%20%20:/baike.baidu%20%20%20%20/view/29459.htm t _blank 之間共享數(shù)據(jù) HYPERLINK %20%20%20%20:/baike.baidu%20%20%20%20/view/30816.htm t
32、 _blank ,如手機(jī)、 PDA等。藍(lán)牙規(guī)范中廣泛使用的成熟版本有1.1、2.0、3.0和4.0,帶寬約1M -24Mbps(USB1.1接口帶寬為12Mbps,USB2.0接口帶寬為480Mbps,局域網(wǎng)帶寬為10Mbps/100Mbps/1000Mbps。,火線IEEE1394帶寬為400Mbps。因此,藍(lán)牙非常適用于傳輸10MB以下的小文件(圖片、鈴聲、電子書(shū)、文檔等),既方便又快捷,最新版本為2.1+EDR版本。第四章系統(tǒng)硬件設(shè)計(jì)4.1 下位機(jī)模塊設(shè)計(jì)4.1.1單片機(jī)C8051F120介紹微控制器(MCU)是藍(lán)牙應(yīng)用系統(tǒng)的核心,其選擇將直接影響系統(tǒng)的性能。 C8051F120是一款兼
33、容Cygnal公司8051的高速SOC單片機(jī),具有高速CIP。 51個(gè)內(nèi)核、靈活的I/O交叉切換、高級(jí)時(shí)鐘系統(tǒng)、JTAG系統(tǒng)調(diào)試接口和多源復(fù)位系統(tǒng)。性能卓越,核心采用流水線結(jié)構(gòu),速度可達(dá)100MIPS,比普通51快40倍,資源豐富,體積小,功耗低,集成度高,調(diào)試方便。下面列出了它的一些主要功能: 8051 兼容的CIP,具有高速、流水線結(jié)構(gòu)。 51個(gè)核心;真正的8位500ksps ADC,帶PGA和8通道模擬多路復(fù)用器;2循環(huán)1616乘法累加引擎;8448(8K+256)字節(jié)的片上RAM;具有可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲(chǔ)器接口;SPI、SMBus/12C和兩個(gè)硬件實(shí)現(xiàn)的UART串接在
34、El10l; 5個(gè)通用16位定時(shí)器;具有6個(gè)捕捉/比較模塊的可編程計(jì)數(shù)器/定時(shí)器陣列;FLASH 存儲(chǔ)器具有在系統(tǒng)中重新編程的能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并內(nèi)容在現(xiàn)場(chǎng)更新固件;片上JTAG調(diào)試電路內(nèi)容非侵入式(不占用片上資源)、全速、在系統(tǒng)測(cè)試;可在工業(yè)溫度NI(.45C-+85.c)N的2.7V3.6V電壓下工作。C8051F120 為100 腳TQFP 封裝。4.1.2單片機(jī)與藍(lán)牙模塊的連接單片機(jī)與藍(lán)牙模塊的硬件連接比較簡(jiǎn)單,其原理如圖4.1所示:圖 4.1 單片機(jī) C8051F120 通過(guò) UART 連接藍(lán)牙模塊示意圖圖中、分別標(biāo)出連接時(shí)需要注意的3點(diǎn)。數(shù)據(jù)線和信號(hào)線單片機(jī)C8051F
35、120有兩個(gè)UART,這里選擇UART0。在編程過(guò)程中,可以通過(guò)叉形開(kāi)關(guān)設(shè)置,將UART0分配給兩個(gè)引腳,如P0.0(TXD)和P0。 I(RXD)分別連接藍(lán)牙模塊的RXD(AS)和TXD(B5),用于傳輸控制信號(hào)。另外,MCU側(cè)需要分配兩個(gè)引腳P1.6和P1.7,分別作為流控信號(hào)CTS和RTS,連接藍(lán)牙的RTS(A6)和CTS(B6)模塊分別。如果CTS為1,則內(nèi)容對(duì)方致,如果CTS為0,則禁止對(duì)方致。藍(lán)牙模塊電源線藍(lán)牙模塊的電壓管理器共有3個(gè)輸入,分別是Vcc(C6)、Vcc_io(C4)和ON(C2)。 Vcc提供供電電壓,典型值為3.3V:Vet io為UART提供獨(dú)立的供電回路,可以
36、像單片機(jī)的邏輯接口一樣接Vcc; ON 信號(hào)控制電壓調(diào)節(jié)器的開(kāi)啟或關(guān)閉。將Vcc、Vcc io和ON連接在一起時(shí),無(wú)需考慮藍(lán)牙模塊的上電順序;否則嚴(yán)格按照“GND.Vet-ON.Vcc io”的順序上電,上電順序相反。這里采用的是前者,Vet、Vcc io和ON一起接外接3.3V電源。藍(lán)牙模塊天線藍(lán)牙模塊的ANT腳接50歐天線,天線的駐波比小于2:1。在本課題的實(shí)驗(yàn)板設(shè)計(jì)中,單片機(jī)和藍(lán)牙模塊焊接在一塊PCB板上。由于藍(lán)牙模塊采用扁平封裝,引腳密集,很難直接焊接到PCB上,天線也很難焊接。所以我自己設(shè)計(jì)了一塊輔助電路板,先把藍(lán)牙模塊焊接到這個(gè)輔助電路板上,然后引出藍(lán)牙模塊的一些要使用的引腳,通過(guò)
37、插座將藍(lán)牙模塊連接到PCB板上,這樣藍(lán)牙模塊的加載和卸載變得非常方便。從輔助電路板上引出的引腳為 GND。地線,VCC。 3. 3V,數(shù)據(jù)收發(fā)線RXD和TXD,流控線RTS和CTS,使能信號(hào)線。 EN,復(fù)位信號(hào)線。 RESET,其中BT EN為圖4.6中的ON信號(hào),實(shí)際應(yīng)用中與VCC相連,其余與單片機(jī)相連。如圖 4.2 所示。圖4.2 藍(lán)牙模塊ROKl01 008輔助電路板引腳圖PC與藍(lán)牙模塊的連接PC端的硬件連接比較簡(jiǎn)單,藍(lán)牙USB適配器可以通過(guò)USB直接連接到PC端。如圖4.3所示圖 4.3 PC 硬件結(jié)構(gòu)圖需要注意的是,插上適配器后,如果是XP系統(tǒng)下,系統(tǒng)會(huì)自動(dòng)加載藍(lán)牙適配器驅(qū)動(dòng),因?yàn)檫@
38、里是基于HCI層開(kāi)發(fā)自己的應(yīng)用,而自動(dòng)安裝的驅(qū)動(dòng)是為高級(jí)應(yīng)用程序是為覆蓋HCI層而開(kāi)發(fā)的,因此需要將其卸載并安裝特定適配器的硬件驅(qū)動(dòng)程序。這里使用的藍(lán)牙USB適配器是CSR Blue Core 04。安裝CSR USB Driver 1.18。安裝成功后,可以在“設(shè)備管理器”“通用串行總線控制器”中找到“CSR藍(lán)芯藍(lán)牙”,如圖4.3所示。圖4.4 CSR藍(lán)芯藍(lán)牙安裝成功示意圖4.3 MCU與家電的連接家電控制模塊的主要功能是接收來(lái)自系統(tǒng)中央控制模塊的指令。以控制電視開(kāi)關(guān)為例,單片機(jī)控制電視開(kāi)關(guān)的管腳設(shè)置為p13。該引腳為高電平時(shí),繼電器吸合,電視開(kāi)機(jī),為低電平時(shí),繼電器斷開(kāi),電視關(guān)機(jī)。電路圖如
39、圖4.3所示4.5 家電控制電路示意圖C8051F120接收到中央控制器致的控制信號(hào)后,P1.3引腳變?yōu)楦唠娖?。?dāng)光耦導(dǎo)通時(shí),遲滯繼電器吸合,信息插座通電,從而開(kāi)啟家用電器。當(dāng)有報(bào)警情況時(shí),P1.4和P1.5變?yōu)楦唠娖?,單片機(jī)通過(guò)TXD和RXD發(fā)出報(bào)警信號(hào),藍(lán)牙模塊輸出到中央控制器。在上述電路中,電阻R1的選擇非常重要,它影響著2N45的通斷性能。 R1 小時(shí),可以降低開(kāi)關(guān)時(shí)間和開(kāi)關(guān)損耗,而 R1 大時(shí)則相反。一般以產(chǎn)品手冊(cè)中提供的數(shù)據(jù)作為參考。請(qǐng)參閱從 1 到 10 倍參考值(48 歐姆)的選擇。這里選擇參考值的5倍,即240歐。系統(tǒng)電源模塊示意圖C8051F120單片機(jī)的內(nèi)核和I/O使用相
40、同的電源電壓,只需3.3V的單電源供電即可。如圖4.4所示,輸入9V直流電源,電感L1用來(lái)限制瞬態(tài)電流,經(jīng)過(guò)C1和C2濾波,然后電源通過(guò)SPX1117M-3.3穩(wěn)壓到3.3V,外接4.7uf電容用于其輸出以改善瞬態(tài)響應(yīng)和穩(wěn)定性。電源連接正確后,LED燈亮作為電源工作指示燈。為了降低噪聲和錯(cuò)誤概率,我們使用電感 L2 和 L3 將數(shù)字電源與模擬電源隔離。圖 4.6 3.3V 電源示意圖系統(tǒng)中一些外圍設(shè)備的工作電壓是5V,比如控制家電的部分,所以我們還需要一個(gè)5V的穩(wěn)壓電路,如圖4.5所示,它的工作原理是輸入一個(gè)9V的直流電源,經(jīng)C8和C9濾波,然后通過(guò)LM78L05將電源調(diào)節(jié)到5V 。5V 電源
41、示意圖SPX1117M是Sipex公司生產(chǎn)的LDO芯片,具有輸出電流最大、輸出電壓高、穩(wěn)定性好等特點(diǎn)。其輸出Tina可達(dá)800MA,輸出電壓精度在+-1%以?xún)?nèi)。它還具有電流限制和熱保護(hù)功能。廣泛應(yīng)用于手持設(shè)備、數(shù)碼家電和工業(yè)控制領(lǐng)域。第五章系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)分為單片機(jī)軟件設(shè)計(jì)和PC端軟件設(shè)計(jì)兩部分。5.1 單片機(jī)端軟件設(shè)計(jì)單片機(jī)軟件采用嵌入式C語(yǔ)言編程,開(kāi)發(fā)環(huán)境為Keil。在本設(shè)計(jì)中,只能完成藍(lán)牙的基本數(shù)據(jù)傳輸。這部分軟件包括三個(gè)部分:初始化、藍(lán)牙交互、數(shù)據(jù)處理。初始化包括系統(tǒng)初始化和藍(lán)牙初始化。系統(tǒng)初始化包括系統(tǒng)時(shí)鐘初始化、引腳分配、串口初始化、定時(shí)器初始化等。藍(lán)牙初始化是通過(guò)UAR
42、T向藍(lán)牙模塊致一系列初始化命令,藍(lán)牙模塊返回事件,交互完成一系列復(fù)位,身份驗(yàn)證和讀取地址。等待初始化操作。藍(lán)牙交互是指初始化完成后,如果本地藍(lán)牙作為從設(shè)備,會(huì)等待遠(yuǎn)程藍(lán)牙設(shè)備的鏈路建立請(qǐng)求。如果請(qǐng)求被接受,則繼續(xù)等待鏈接建立成功,獲取連接句柄,從而進(jìn)行數(shù)據(jù)交換;當(dāng)藍(lán)牙作為主設(shè)備時(shí),會(huì)進(jìn)行主動(dòng)查詢(xún)、鏈路建立、數(shù)據(jù)傳輸、鏈路斷開(kāi)等一系列操作。處理數(shù)據(jù)是一系列后續(xù)操作,例如將有效數(shù)據(jù)轉(zhuǎn)儲(chǔ)到相應(yīng)位置。需要注意的是,在程序的主循環(huán)中,需要實(shí)時(shí)判斷串口接收緩沖區(qū)中是否有數(shù)據(jù),如果有數(shù)據(jù)則調(diào)用HCI狀態(tài)機(jī)進(jìn)行處理。程序流程如圖 5.1 所示。圖 5.1 單片機(jī)側(cè)藍(lán)牙基礎(chǔ)數(shù)據(jù)傳輸模塊程序流程圖系統(tǒng)時(shí)鐘初始化用
43、于設(shè)置和啟動(dòng)系統(tǒng)時(shí)鐘。這里使用一個(gè)外部 24M 外部振蕩器來(lái)提供系統(tǒng)時(shí)鐘。首先使能24M外部晶振,等待外部晶振準(zhǔn)備好,然后使用PLL將其頻率倍增到96M作為系統(tǒng)時(shí)鐘。引腳分配用于將 UART0 的 TX 和 RX 分配給引腳 p0。 O 和 p0.1 和 pO。 0 設(shè)置為輸出模式,p0.1 設(shè)置為輸入模式。串口初始化調(diào)用單片機(jī)UART連接12個(gè)函數(shù)uart_rest0、uart_init0來(lái)實(shí)現(xiàn),其中uart_initoqb涉及到單片機(jī)具體寄存器的操作,包括設(shè)置UART0工作模式、設(shè)置定時(shí)器、設(shè)置波特率。定時(shí)器初始化部分實(shí)現(xiàn)定時(shí)器1的初始化和啟動(dòng),定時(shí)間隔為10ms。系統(tǒng)初始化完成后,需要開(kāi)
44、始操作藍(lán)牙設(shè)備。藍(lán)牙設(shè)備的操作需要構(gòu)造一個(gè)藍(lán)牙HCI設(shè)備控制結(jié)構(gòu)hci dev。藍(lán)牙設(shè)備操作的復(fù)雜性使得這個(gè)結(jié)構(gòu)體比較復(fù)雜,如圖5.2所示: UART控制結(jié)構(gòu)體uart dev變量ud,唯一標(biāo)識(shí)一個(gè)串口連接。 藍(lán)牙 HCI 設(shè)備信息結(jié)構(gòu)體 hci dev info 變量 hd-info,保存藍(lán)牙地址、設(shè)備類(lèi)型、緩沖區(qū)大小等 藍(lán)牙 HCI 設(shè)備連接控制結(jié)構(gòu)體 hci dev con 變量 hd con,保存連接狀態(tài)、連接句柄、遠(yuǎn)程地址、時(shí)隙等 藍(lán)牙 HCI 設(shè)備設(shè)置結(jié)構(gòu)體 hci dev set variable hd set 保存用戶(hù)設(shè)置信息,包括掃描權(quán)限、連接超時(shí)、認(rèn)證權(quán)限、查詢(xún)參數(shù)等。 藍(lán)
45、牙 HCI 設(shè)備標(biāo)志位結(jié)構(gòu) hci-dev_flags 變量 hd_flags,標(biāo)識(shí)查詢(xún)和連接狀態(tài)。圖 5.2 藍(lán)牙 HCl 控制結(jié)構(gòu) hci-dev 的數(shù)據(jù)結(jié)構(gòu)圖因?yàn)楸鞠到y(tǒng)中只有一個(gè)單片機(jī)藍(lán)牙模塊只連接了一個(gè)UART0,即藍(lán)牙HCI設(shè)備是唯一的,所以這個(gè)結(jié)構(gòu)體應(yīng)該定義為全局變量,并且只內(nèi)容整個(gè)程序運(yùn)行空間中的一個(gè)被定義為。為了便于討論,假設(shè)定義這個(gè)變量為hd,即:藍(lán)牙初始化包括藍(lán)牙 HCI 復(fù)位、藍(lán)牙參數(shù)設(shè)置和致一系列藍(lán)牙初始化命令。 Bluetooth HCI reset主要完成hd默認(rèn)值的設(shè)置,包括hd。 hd-info中的acl_num和acl-1en都設(shè)置為0,cmd-num設(shè)置為1
46、,防止藍(lán)牙讀緩沖區(qū)大小命令Read-Buffer-Size在執(zhí)行失敗后得到未定義的值;設(shè)置高清。 hd-con 中的 con-status 的值被賦值為 NOT CONNECTED,con 句柄的值被設(shè)置為 。 1 以此類(lèi)推;藍(lán)牙參數(shù)是通過(guò)高清設(shè)置的。 hd set對(duì)應(yīng)的參數(shù)直接賦值,可以根據(jù)具體需要進(jìn)行不同的設(shè)置;藍(lán)牙初始化命令的致是藍(lán)牙設(shè)備初始化的關(guān)鍵。這里可以調(diào)用藍(lán)牙HCI命令接口來(lái)完成。至于初始化需要哪些指令,可以根據(jù)需要增減,但有些指令是必須的。這里提供了兩個(gè)初始化指令集initl和init2,其中bt init required為強(qiáng)制必要指令集,bt_init_optional為非
47、強(qiáng)制可選指令集,見(jiàn)表5.1。調(diào)用HCI命令接口函數(shù)時(shí),需要傳入對(duì)應(yīng)的參數(shù)列表結(jié)構(gòu)體,該結(jié)構(gòu)體的每一項(xiàng)的參數(shù)值都來(lái)自于設(shè)置的hd。從高清組中提取。最好在每條指令之間增加2.5ms的延遲,只有在上一條指令執(zhí)行成功后才致下一條指令。指令包的流控由hd控制。高清信息。 cmd 數(shù)字控制。表 5.1 初始化指令集在進(jìn)入藍(lán)牙基礎(chǔ)數(shù)據(jù)傳輸實(shí)驗(yàn)項(xiàng)目之前,設(shè)置了一個(gè)標(biāo)志位bt角色,用戶(hù)可以選擇本地藍(lán)牙的角色作為主設(shè)備或從設(shè)備進(jìn)入實(shí)驗(yàn)。不管是master還是slave,藍(lán)牙初始化部分都是一樣的。初始化完成后,當(dāng)本地藍(lán)牙作為主設(shè)備時(shí),必須先發(fā)起查詢(xún)。遠(yuǎn)程藍(lán)牙設(shè)備被查詢(xún)后,必須主動(dòng)發(fā)起連接。連接建立后,本地藍(lán)牙和遠(yuǎn)程
48、藍(lán)牙之間就可以進(jìn)行數(shù)據(jù)傳輸了。本地藍(lán)牙致到遠(yuǎn)程藍(lán)牙,遠(yuǎn)程藍(lán)牙也可以致到本地藍(lán)牙。當(dāng)本地藍(lán)牙作為從設(shè)備時(shí),循環(huán)等待遠(yuǎn)程藍(lán)牙的連接請(qǐng)求。收到連接請(qǐng)求事件后,通知用戶(hù)決定是否接受連接請(qǐng)求。如果接受,則致 HCI Accept_Connection ,如果拒絕,則致 HCI_reject_connection_request 。單片機(jī)與PC建立藍(lán)牙連接后,兩者之間即可進(jìn)行數(shù)據(jù)傳輸。由于單片機(jī)不支持?jǐn)?shù)據(jù)輸入,因此系統(tǒng)使用PC端輸入數(shù)據(jù)并致給單片機(jī)。單片機(jī)接收到數(shù)據(jù)后。這涉及數(shù)據(jù)的檢測(cè)和處理。 HCI狀態(tài)機(jī)在檢測(cè)到ACL數(shù)據(jù)包到達(dá)后,經(jīng)過(guò)一系列處理,將實(shí)際致的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)接收緩沖區(qū)中。主機(jī)對(duì)標(biāo)志位dat
49、a_ready_flag的檢測(cè)放在主循環(huán)中。準(zhǔn)備好程序,從而保證數(shù)據(jù)能夠及時(shí)處理。 MCU側(cè)作為從設(shè)備時(shí),如果設(shè)置為自動(dòng)返回打開(kāi),也可以將接收到的數(shù)據(jù)返回給PC。MCU程序:以控制電視開(kāi)關(guān)為例:設(shè)置0X00表示關(guān)閉,0 x01表示開(kāi)啟voidbt_basic ()display_interface(); 顯示界面u art_init(); 串口初始化HCI_init(); Hci 設(shè)備初始化clear_data_rev_buf (); empty 接收數(shù)據(jù)緩沖區(qū)H ci_param_set(hd); 設(shè)置人機(jī)交互設(shè)備參數(shù)TV_0n_off=P13; p13 連接電路時(shí)控制電視雖然(1) 如果
50、UART 接收緩沖區(qū)不為空,則調(diào)用狀態(tài)機(jī)進(jìn)程。如果( hci_buf_status ! = HCI_BUF空)HCI_state();I f(local_bt_role) 如果數(shù)據(jù)是PC致的,微控制器會(huì)收到數(shù)據(jù)if (event_evcode=CONNECTlON REQUEST.) HYPERLINK 藍(lán)牙連接請(qǐng)求 藍(lán)牙連接請(qǐng)求人機(jī)交互接受_連接; _hci_event_connection_request(event.param);if(event_evcode= CONNEC TIO N COMPI ETE ) HYPERLINK 表示藍(lán)牙設(shè)備已連接 表示藍(lán)牙設(shè)備已連接oder= H c
51、i_rev_acl_data( ) ); HYPERLINK 接收控制信息賦予 接收控制信息女巫(奧德)case 0 x00 TV_on_off=0; 電視關(guān)閉TV_on_off =1; 電視開(kāi)event_evcode = DISCONNECTION_COMP )hci_event_disconnection_complete(event.param);disconnection5.2 上位機(jī)軟件設(shè)計(jì)PC端采用面向?qū)ο蟮腃+編程,在VC+6.0開(kāi)發(fā)平臺(tái)下實(shí)現(xiàn)基于藍(lán)牙HCI層通信的基本數(shù)據(jù)傳輸控制程序。 PC端的操作系統(tǒng)是XP,使用的藍(lán)牙設(shè)備是藍(lán)牙USB適配器,適配器內(nèi)嵌的藍(lán)牙芯片是來(lái)自CSR(
52、Cambridge Silicon Radio)的Blue Core 04。藍(lán)牙 USB 適配器和 PC 通過(guò) USB 接口連接和通信,因此數(shù)據(jù)傳輸利用藍(lán)牙 HCI USB 傳輸層。 USB是由“通用串行總線實(shí)現(xiàn)論壇”組織發(fā)布和推廣的串行接口標(biāo)準(zhǔn)。藍(lán)牙沒(méi)有為 USB 接口開(kāi)發(fā)新協(xié)議,而是使用現(xiàn)有的 USB 協(xié)議。驅(qū)動(dòng)方面,一方面,xP系統(tǒng)本身會(huì)提供底層硬件驅(qū)動(dòng)和簡(jiǎn)單的上層應(yīng)用,藍(lán)牙USB適配器連接PC后會(huì)自動(dòng)加載;另一方面,不同的藍(lán)牙芯片廠商會(huì)提供不同的藍(lán)牙USB適配器的硬件驅(qū)動(dòng),方便技術(shù)人員針對(duì)具體應(yīng)用進(jìn)行開(kāi)發(fā)。因?yàn)閄P系統(tǒng)自帶的驅(qū)動(dòng)是直接面向應(yīng)用的,屏蔽了HCI層,所以這里使用CSR提供的
53、藍(lán)牙USB驅(qū)動(dòng)csrbc01。 inf,它對(duì)應(yīng)于附加到該驅(qū)動(dòng)程序的一系列控制字。安裝藍(lán)牙USB適配器后,在VC+6.0編程平臺(tái)中,使用Windows API函數(shù),結(jié)合驅(qū)動(dòng)提供的一系列控制字,可以實(shí)現(xiàn)對(duì)藍(lán)牙USB適配器的訪問(wèn)。PC端基于HCI USB傳輸層開(kāi)發(fā)藍(lán)牙通信的步驟和過(guò)程與上述基于藍(lán)牙HCI UART層的單片機(jī)開(kāi)發(fā)類(lèi)似。它們都遵循藍(lán)牙 HCI 層的一般通信流程,不同之處在于使用的 HCI 傳輸層。當(dāng)使用 HCI USB 傳輸層進(jìn)行傳輸時(shí),數(shù)據(jù)通過(guò) USB 端點(diǎn)致和接收。 USB端點(diǎn)分為四類(lèi),分別是控制端點(diǎn)、塊端點(diǎn)、中斷端點(diǎn)和同步端點(diǎn)。不同的端點(diǎn)實(shí)現(xiàn)不相同的功能??刂贫它c(diǎn)用于配置和控制 U
54、SB 設(shè)備,主機(jī)(PC)可以使用它向主機(jī)控制器(藍(lán)牙 USB 適配器)致 HCI 命令包。塊端點(diǎn)用于傳輸 ACL 數(shù)據(jù)包。中斷端點(diǎn)用于確保及時(shí)接收 HCI 事件數(shù)據(jù)包。同步端點(diǎn)用于傳輸 SCO 數(shù)據(jù)包??梢钥闯?,在使用USB傳輸層時(shí),不同的HCI數(shù)據(jù)包可以通過(guò)不同的端點(diǎn)類(lèi)型來(lái)區(qū)分,因此不需要像HCI UART傳輸層那樣在數(shù)據(jù)包前面添加數(shù)據(jù)包指示符。軟件流程圖如圖5.3所示圖5.3 PC端藍(lán)牙基本數(shù)據(jù)傳輸模塊流程圖程序的實(shí)現(xiàn)采用基于對(duì)話框的MFC編程。程序中構(gòu)造了一個(gè)USB Stack類(lèi)來(lái)控制藍(lán)牙USB適配器,包括打開(kāi)設(shè)備、致HCI命令包、致和接收ACL數(shù)據(jù)包、接收HCI事件包。班級(jí)部門(mén)對(duì)藍(lán)牙U
55、SB適配器的訪問(wèn)是通過(guò)Windows API函數(shù)和CSR Blue Core控制字實(shí)現(xiàn)的。具體的類(lèi)細(xì)節(jié)參考CSR提供的CSR USB Dongle開(kāi)發(fā)文檔(CSR USB Kernel)實(shí)現(xiàn)。在程序的整個(gè)生命周期中,定義一個(gè)USB Stack的全局變量m_bt來(lái)標(biāo)識(shí)當(dāng)前的藍(lán)牙設(shè)備,如圖5.4所示圖 5.4 USB Stack 類(lèi)定義表 5.2 PC 端主要功能列表PC 只連接一個(gè)藍(lán)牙 USB 適配器時(shí),適配器的訪問(wèn)路徑默認(rèn)為“.CSRO”,插入第二個(gè)藍(lán)牙 USB 適配器時(shí),適配器的默認(rèn)訪問(wèn)路徑為第二個(gè)適配器是.CSRl,以此類(lèi)推。這里默認(rèn)只連接一個(gè)適配器。打開(kāi)藍(lán)牙設(shè)備時(shí),調(diào)用m_bt.open
56、_connection(. CSR0 ) 完成藍(lán)牙適配器打開(kāi)和兩條背景線check hci event0和check-acl-data(),這里多線程編程線程check hci event0和check-acl-data()用于實(shí)時(shí)接收主控制器返回的HCI事件分組和ACL事件分組, 分別藍(lán)牙設(shè)備開(kāi)啟后,需要對(duì)藍(lán)牙進(jìn)行初始化。與單片機(jī)側(cè)藍(lán)牙模塊的初始化操作類(lèi)似,這里也可以靈活選擇初始化指令集和各個(gè)初始化指令的參數(shù)。由于這里只實(shí)現(xiàn)了一個(gè)基本的測(cè)試程序,所以這些指令的參數(shù)選擇只是基于通用的,比如HCI_Write_Scan_Enable命令的掃描權(quán)限參數(shù)直接設(shè)置為0 x03,表示內(nèi)容查詢(xún)掃描和調(diào)用掃
57、描同時(shí)。以下命令參數(shù)的設(shè)置類(lèi)似,不再贅述。命令分組也是直接以十六進(jìn)制字符串形式發(fā)出,命令與命令之間使用一定的延時(shí),保證上位控制器命令緩沖區(qū)不會(huì)溢出。下面給出藍(lán)牙初始化命令集的代碼示例。 (限于篇幅,后面的查詢(xún)、建立連接等操作不再給出代碼,只給出文字說(shuō)明)。初始化完成后,PC會(huì)收到藍(lán)牙返回的多個(gè)HCI事件,捕獲讀緩沖區(qū)大小事件和讀本地藍(lán)牙地址事件,解析出主機(jī)控制器命令緩沖區(qū)和數(shù)據(jù)緩沖區(qū)大小,保存,解析出local 保存并顯示藍(lán)牙地址,然后可以查詢(xún)周?chē)乃{(lán)牙設(shè)備。查詢(xún)完成后,PC端捕獲藍(lán)牙返回的查詢(xún)結(jié)果事件,解析出查詢(xún)到的遠(yuǎn)程藍(lán)牙地址,保存在m_bt.remotebdaddr6中。根據(jù)獲取到的遠(yuǎn)程藍(lán)牙地址,可以發(fā)起連接建立請(qǐng)求。分組類(lèi)型參數(shù)選擇Ox0008,表示建立的連接為DM1類(lèi)型。與對(duì)端的藍(lán)牙連接建立完成后,會(huì)返回連接建立完成事件。需要注意的是,如果當(dāng)前兩端的藍(lán)牙設(shè)備在建立連接時(shí)有連接,則只會(huì)返回最大時(shí)隙改變事件。因此,在致連接建立請(qǐng)求命令后,需要捕獲返回的事件。如果連接建立完成事件或最大時(shí)隙變化事件且status參數(shù)為0,則表示連接建立成功;否則,必須重新發(fā)起連接請(qǐng)求。連接建立成功后,就可以收發(fā)數(shù)據(jù)了。數(shù)據(jù)的傳輸采用 ACL 數(shù)據(jù)包的形式。首先根據(jù)已建立連接的連接句柄和PB、BC標(biāo)志組合ACL包頭,然后
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年花卉保養(yǎng)服務(wù)協(xié)議范本
- 2023-2024學(xué)年浙江省溫州市蒼南縣金鄉(xiāng)衛(wèi)城中學(xué)高三5月第二次聯(lián)考數(shù)學(xué)試題文試卷
- 2023-2024學(xué)年浙江省金蘭教育合作組織高三下學(xué)期質(zhì)量調(diào)查(一)數(shù)學(xué)試題
- 2024年設(shè)計(jì)服務(wù)外包協(xié)議范本2
- 2024年深度鉆井工程服務(wù)協(xié)議
- 2024年荒山開(kāi)發(fā)承包協(xié)議樣本
- 2024年個(gè)人消費(fèi)貸款協(xié)議模板指南
- 2024年適用車(chē)輛租賃長(zhǎng)租協(xié)議樣式
- 底商租賃協(xié)議精簡(jiǎn)(2024年)
- 2024移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商服務(wù)協(xié)議
- 康復(fù)醫(yī)院設(shè)置標(biāo)準(zhǔn)匯總
- CA碼生成原理及matlab程序?qū)崿F(xiàn)
- 國(guó)家開(kāi)放大學(xué)《電氣傳動(dòng)與調(diào)速系統(tǒng)》章節(jié)測(cè)試參考答案
- 須彌(短篇小說(shuō))
- 旋風(fēng)除塵器設(shè)計(jì)與計(jì)算
- 《裝配基礎(chǔ)知識(shí)培訓(xùn)》
- 出口退稅的具體計(jì)算方法及出口報(bào)價(jià)技巧
- PCB鍍層與SMT焊接
- Unit 1 This is my new friend. Lesson 5 課件
- 2019年青年英才培養(yǎng)計(jì)劃項(xiàng)目申報(bào)表
- 芳香油的提取
評(píng)論
0/150
提交評(píng)論