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