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