摘 要: 以51單片機(jī)P89V51RD2為主控制器、ROK101008為藍(lán)牙模塊、W3100A為TCP/IP硬件協(xié)議棧、以太網(wǎng)網(wǎng)卡芯片RTL8201為網(wǎng)絡(luò)接口,介紹了一種基于藍(lán)牙的無線接入點(diǎn)的硬件結(jié)構(gòu)和軟件流程。該設(shè)計(jì)支持TCP/IP協(xié)議和藍(lán)牙協(xié)議,具備藍(lán)牙設(shè)備的無線上網(wǎng)功能,通過Internet實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。
關(guān)鍵詞: 藍(lán)牙技術(shù);無線接入技術(shù);以太網(wǎng);互聯(lián)網(wǎng)
無線接入技術(shù)是實(shí)現(xiàn)無線網(wǎng)接入有線網(wǎng)的網(wǎng)絡(luò)通信技術(shù),其典型應(yīng)用就是無線接入點(diǎn)。無線接入點(diǎn)是一個(gè)用于將無線網(wǎng)與有線網(wǎng)連接到一起,使無線客戶端和有線網(wǎng)絡(luò)之間能夠相互發(fā)送和接收數(shù)據(jù)的裝置,是無線移動(dòng)終端設(shè)備接入到Internet的網(wǎng)絡(luò)接口。無線移動(dòng)終端可通過無線接入點(diǎn)訪問Internet資源[1]。
基于藍(lán)牙的無線接入點(diǎn)就是實(shí)現(xiàn)藍(lán)牙無線移動(dòng)終端接入Internet的網(wǎng)絡(luò)接口,其主要功能是通過藍(lán)牙無線傳輸技術(shù),使藍(lán)牙設(shè)備接入Internet網(wǎng),實(shí)現(xiàn)一個(gè)或數(shù)個(gè)藍(lán)牙設(shè)備的無線上網(wǎng)功能。
1 藍(lán)牙接入點(diǎn)的組成
藍(lán)牙接入點(diǎn)的結(jié)構(gòu)框圖如圖1所示。它由前端和后端兩部分組成,前端部分由藍(lán)牙模塊和單片機(jī)組成,構(gòu)成藍(lán)牙收/發(fā)模塊,主要功能是通過藍(lán)牙協(xié)議,與其他藍(lán)牙設(shè)備建立無線鏈接,實(shí)現(xiàn)藍(lán)牙設(shè)備間的無線通信;后端則由單片機(jī)和TCP/IP協(xié)議棧芯片、以太網(wǎng)網(wǎng)卡芯片組成,構(gòu)成單片機(jī)網(wǎng)絡(luò)接口模塊,主要功能是通過TCP/IP協(xié)議棧芯片、網(wǎng)卡芯片,再經(jīng)RJ45接入Internet,根據(jù)TCP/IP協(xié)議,與Internet上的服務(wù)器進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。這樣,通過藍(lán)牙接入點(diǎn)就可實(shí)現(xiàn)從藍(lán)牙網(wǎng)接入到Internet網(wǎng),完成藍(lán)牙協(xié)議與TCP/IP協(xié)議的轉(zhuǎn)換。藍(lán)牙接入點(diǎn)為其他藍(lán)牙設(shè)備提供了無線上網(wǎng)途徑。
2 藍(lán)牙接入點(diǎn)的設(shè)計(jì)
由圖1可知,藍(lán)牙接入點(diǎn)的設(shè)計(jì)包括藍(lán)牙收/發(fā)模塊的設(shè)計(jì)和單片機(jī)網(wǎng)絡(luò)接口模塊的設(shè)計(jì),每個(gè)模塊又包括硬件設(shè)計(jì)和軟體設(shè)計(jì)兩部分。
2.1 藍(lán)牙收/發(fā)模塊設(shè)計(jì)
2.1.1 硬件設(shè)計(jì)
藍(lán)牙收/發(fā)模塊主要由單片機(jī)通過異步串行通信接口與藍(lán)牙模塊連接而成。由于單片機(jī)與藍(lán)牙模塊的工作電壓不一定相同,不僅需要考慮電源變換問題,還需要考慮邏輯電平的轉(zhuǎn)換問題。若所選單片機(jī)與藍(lán)牙模塊都是+3.3 V供電,則可把單片機(jī)的UART串口與藍(lán)牙模塊的UART串口直接相連接。
在本設(shè)計(jì)中,所選用的單片機(jī)P89V51RD2是+5 V供電,ROK101008是+3.3 V供電,需要進(jìn)行電源變換。電源變換電路比較簡(jiǎn)單,采用電源變換芯片AMS1117-3.3即可。至于邏輯電平轉(zhuǎn)換,可在P89V51RD2與ROK101008之間接入IDT公司的電平轉(zhuǎn)換芯片IDT74FCT164245T,其連接示意圖如圖2所示。
2.1.2 軟體設(shè)計(jì)
藍(lán)牙收/發(fā)模塊的軟體設(shè)計(jì)包括藍(lán)牙鏈接和數(shù)據(jù)的收/發(fā)兩部分。藍(lán)牙設(shè)備間的通信主要是通過單片機(jī)向藍(lán)牙模塊發(fā)送HCI指令、接收HCI事件的形式實(shí)現(xiàn)[2-3]。當(dāng)兩個(gè)藍(lán)牙模塊鏈接成功后,就可以按照藍(lán)牙規(guī)范規(guī)定的ACL數(shù)據(jù)包格式收/發(fā)數(shù)據(jù)。
本系統(tǒng)設(shè)計(jì)的是藍(lán)牙終端點(diǎn)對(duì)點(diǎn)的鏈接,其通信流程如圖3所示。由圖可知,藍(lán)牙通信過程主要有藍(lán)牙模塊的初始化、查詢、鏈接、數(shù)據(jù)通信和鏈接斷開等幾個(gè)過程。實(shí)現(xiàn)時(shí),可以將藍(lán)牙指令以函數(shù)的形式封裝成一個(gè)HCI指令接口函數(shù)庫。編寫HCI驅(qū)動(dòng)程序時(shí),可直接從函數(shù)庫中調(diào)用HCI指令函數(shù),對(duì)藍(lán)牙設(shè)備進(jìn)行基本操作,如對(duì)藍(lán)牙設(shè)備進(jìn)行復(fù)位、讀取藍(lán)牙設(shè)備的地址、初始化、查詢、建立鏈接、收發(fā)數(shù)據(jù)和斷開鏈接等[4]。
2.2 單片機(jī)網(wǎng)絡(luò)接口模塊設(shè)計(jì)
2.2.1 硬件設(shè)計(jì)
單片機(jī)網(wǎng)絡(luò)接口模塊主要由單片機(jī)P89V51RD2、TCP/IP硬件協(xié)議棧芯片W3100A及物理收發(fā)芯片RTL8201BL組成,完成單片機(jī)與Internet間的通信。
W3100A芯片提供了直接總線模式(Direct Bus I/F)、間接總線模式(Indirect Bus I/F)和I2C總線模式(I2C Bus I/F)三種不同的接口模式與MCU相連接。為了提高數(shù)據(jù)的網(wǎng)絡(luò)傳輸速率,本設(shè)計(jì)采用直接總線模式和時(shí)鐘工作模式。單片機(jī)與W3100A的硬件連接示意圖如圖4所示。
W3100A是韓國(guó)Wiznet公司專門為以太網(wǎng)互聯(lián)和嵌入式設(shè)備推出的一款硬件TCP/IP協(xié)議棧芯片。在芯片硬件中安裝了簡(jiǎn)單的TCP/IP協(xié)議棧,實(shí)現(xiàn)了軟件硬化,降低了軟件開發(fā)的開銷及難度。W3100A提供MII接口與PHY芯片RTL8201BL相連。
2.2.2 軟體設(shè)計(jì)
對(duì)于W3100A,可配置成客戶端,也可配置成服務(wù)器端。W3100A的客戶端工作模式與服務(wù)器端工作模式基本相同,不同的地方是,只要把客戶端工作流程中發(fā)起鏈接請(qǐng)求處改成偵聽鏈接請(qǐng)求,則客戶端工作模式就變成了服務(wù)器端工作模式。本設(shè)計(jì)中把W3100A配置成客戶端,在建立起與PC服務(wù)器的連接后,就可實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收。整個(gè)過程的建立基于TCP協(xié)議??蛻舳酥鞒绦虻牧鞒倘鐖D5所示。從客戶端主程序的流程可以看出,客戶端的工作過程包括初始化、建立鏈接、收發(fā)數(shù)據(jù)和終止鏈接四個(gè)步驟。在所有初始化及參數(shù)設(shè)置完成以后,就可發(fā)起鏈接請(qǐng)求。若鏈接失敗,則返回重新執(zhí)行SOCKET初始化程序。若鏈接成功,程序?qū)⒆x取SOCKET狀態(tài)寄存器的內(nèi)容,判斷SOCKET所處的狀態(tài),然后,根據(jù)SOCKET所處狀態(tài)的不同進(jìn)行相應(yīng)的處理。整個(gè)TCP/IP的工作過程都是建立在W3100A的中斷機(jī)制基礎(chǔ)之上。
W3100A芯片的工作方式類似于Windows的Socket API,WIZnet公司為W3100A提供了專門的Socket API軟件包,只要調(diào)用Socket API函數(shù),就可很方便地用單片機(jī)C語言來編寫單片機(jī)的網(wǎng)絡(luò)通信接口程序。
藍(lán)牙技術(shù)以其成本低、組網(wǎng)靈活等優(yōu)點(diǎn)正成為當(dāng)今世界的一個(gè)研究熱點(diǎn),是下一代無線個(gè)人區(qū)域網(wǎng)(WPAN)的理想實(shí)現(xiàn)技術(shù)。與目前的IEEE802.11以太網(wǎng)無線接入技術(shù)相比,基于藍(lán)牙的無線接入技術(shù)在小區(qū)域組網(wǎng)中更具優(yōu)勢(shì)。作為藍(lán)牙無線接入技術(shù)的典型應(yīng)用,藍(lán)牙接入點(diǎn)具有廣泛的應(yīng)用前景,如機(jī)器人、遠(yuǎn)程監(jiān)控、數(shù)據(jù)遠(yuǎn)程傳輸及無線上網(wǎng)等??梢灶A(yù)見,在不久的將來,基于藍(lán)牙技術(shù)的移動(dòng)通信產(chǎn)品及移動(dòng)互聯(lián)網(wǎng)必將在工農(nóng)業(yè)生產(chǎn)和人們的生活中應(yīng)用越來越廣泛。
參考文獻(xiàn)
[1] 黎連業(yè),郭春芳,向東明.無線網(wǎng)絡(luò)及其應(yīng)用技術(shù)[M].北京:清華大學(xué)出版社,2004.
[2] 何國(guó)泉,李躍忠,黃志紅.基于HCI層的單片機(jī)對(duì)藍(lán)牙模塊的控制[J].科技廣場(chǎng),2005(1):43-46.
[3] 金純,許光辰.藍(lán)牙技術(shù)[M].北京:電子工業(yè)出版社,2001.
[4] 王瀾.藍(lán)牙技術(shù)及其在測(cè)試與監(jiān)控系統(tǒng)中的應(yīng)用探討[J].中國(guó)鐵道科學(xué),2002,23(6):24-29.