仇凌鋒(廈門大學電路所,福建 廈門 361005)
?
基于RT-Thread的CC3100應(yīng)用方案的研究與實現(xiàn)
仇凌鋒
(廈門大學電路所,福建 廈門 361005)
摘 要:本文提出了一種嵌入式無線數(shù)據(jù)傳輸系統(tǒng),以ARM9作為MCU,使用RTT操作系統(tǒng)。在系統(tǒng)中加入CC3100的驅(qū)動,把數(shù)據(jù)經(jīng)由CC3100無線模塊傳送,實現(xiàn)無線數(shù)據(jù)的收發(fā)。本文將重點介紹系統(tǒng)的結(jié)構(gòu)框架以及無線模塊傳輸功能的實現(xiàn)。
關(guān)鍵詞:CC3100;RT-Thread;無線傳輸
現(xiàn)今隨著物聯(lián)網(wǎng)技術(shù),計算機網(wǎng)絡(luò)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,使得物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)氖褂脠鏊絹碓蕉啵笠苍絹碓礁遊1,2]。傳統(tǒng)的系統(tǒng)使用基于電纜的有線傳輸,這不僅使得系統(tǒng)在很多場景下有所限制,在穩(wěn)定性和可靠性方面有所不足。本文介紹了一種基于RTT系統(tǒng)的無線數(shù)據(jù)傳輸?shù)慕鉀Q方案,該系統(tǒng)使用了ARM926作為處理器,并且把CC3100移到了ARM926上,嵌入RT-Thread系統(tǒng)中用來進行數(shù)據(jù)的傳輸,將來可以應(yīng)用到物聯(lián)網(wǎng)系統(tǒng)的無線傳輸[3]。
系統(tǒng)使用的硬件平臺是以ARM926作為處理器。ARM微處理器是一種高性能、低功耗的32位微處器,它被廣泛應(yīng)用于嵌入式系統(tǒng)中。ARM9代表了ARM公司主流的處理器。ARM926內(nèi)部有5條流水線。指令性能得到了很大的提升。內(nèi)部集成了DDR2,這樣可以使產(chǎn)品的體積非常小,集成度高,2層板能解決需求,性價比很好。
CC3100模塊。無線傳輸模塊選用的是美國TI公司的CC3100模塊。CC3100是TI推出的SimpleLink WiFi 系列WIFI平臺。CC3100有六個需要外接的管腳,其中四個是SPI接口管腳,一個是中斷管腳IRQ,一個是使能管腳nHIB。四個SPI管腳遵循SPI協(xié)議跟MCU相連對應(yīng)管腳相連即可,IRQ管腳負責向MCU發(fā)送中斷信號,nHIB則作為輸入腳,由MCU控制CC3100的開啟或者關(guān)閉。MCU在無線網(wǎng)絡(luò)傳輸?shù)慕Y(jié)果中負責應(yīng)用層的部分,當數(shù)據(jù)在CC3100中的時候,內(nèi)嵌的網(wǎng)絡(luò)協(xié)議棧將會自動根據(jù)網(wǎng)絡(luò)模型對數(shù)據(jù)進行逐層處理。其UDP傳輸速率達到了16Mbps,其速率足夠進行清晰的視頻數(shù)據(jù)的傳輸。
RT-Thread實時操作系統(tǒng)具有一個實時性優(yōu)異、高效穩(wěn)定、可裁減的硬實時微內(nèi)核[4]。該微內(nèi)核主要包括:內(nèi)存管理、對象管理器、線程管理、線程調(diào)度、線程間通信、I/O設(shè)備管理等部分。RTThread不僅僅是一款實時操作系統(tǒng)內(nèi)核,它還包含了嵌入式實時操作系統(tǒng)的相關(guān)組件,如優(yōu)化的Lwip輕型TCP/IP協(xié)議棧、Shell命令系統(tǒng)、分布式文件系統(tǒng)(Distributed File Systems,DFS)、RTGUI圖形用戶界面和完整的libc庫等組件,是一個完整的、產(chǎn)品級的應(yīng)用系統(tǒng)。我們將對其Lwip協(xié)議進行修改,并向其中加入CC3100的驅(qū)動程序。由于CC3100自身攜帶了網(wǎng)絡(luò)協(xié)議,所以把他作為一個可以分離的組件加入了RT-Thread。
CC3100 器件集成針對 Wi-Fi和互聯(lián)網(wǎng)的所有協(xié)議,這最大限度地減少了對主機 MCU 軟件的要求。 借助內(nèi)置的網(wǎng)絡(luò)協(xié)議,在RTT中使用CC3100,不需要其他的協(xié)議,因此在RTT中只需要對其進行初始化,并在線程中調(diào)用CC3100的接口,實現(xiàn)收發(fā)功能即可。在ARM926處理器上使用CC3100,由SPI傳輸[5],CC3100 Driver,還有嵌入RTT三個部分組成。RTT上的Lwip協(xié)議棧需要進行修改。CC3100的接口函數(shù)嵌入Lwip協(xié)議棧,代替原本的接口進行對底層網(wǎng)絡(luò)設(shè)備CC3100的操作[6]。SPI則負責從MCU到CC3100模塊的數(shù)據(jù)傳輸。
本文介紹了在ARM926上使用RTT系統(tǒng),并加入CC3100,用其完成了無線連接熱點,收發(fā)數(shù)據(jù)的功能。還可以將其與lwip聯(lián)合起來,使用CC3100進行無線音頻的傳輸,用在家庭監(jiān)控,移動醫(yī)療等行業(yè)中,有很大的研究應(yīng)用價值。
參考文獻:
[1]Bunse. C, Gross.H-G. Applying a Model—based Approach for Embedded System Development Software Engineering and Advanced Application[C].Proceedings of 33rd Euromicro Conferenee, Lubeek, Germany, 2007: 121-128.
[2]Behrad L, Shahrokni A,Motamedi S A, ete. A robust vision-based moving Target detection and tracking system[A]. Proceeding of Image and Vision Computing conference, 2001: 82-84.
[3]Ming Li, RuiMin Hu, Ge Gao, Wei Li, Zhongyuan Wang, ”Embedded Video Surveillanee System for Vehicle over WLAN and CDMAIX”, Proceeding s of International Conference on Wireless Communications, Networking and Mobile Computing (WCNM), 2005:1292-1295.
[4]BeardXiong. RT-Thread Programming Guide Release 0.3.0.RT-ThreadWebsite,2009.
[5]Leens F.An introduction to I2 C and SPI protocols. Instrumentation & Measurement Magazine,2009: 8-13.
[6]Du Genyuan, Zhang Yong. Method research of socket programming unrelated to protoco[J].Computer Engineering and Design, 2008, 29(14):3826-3828.
作者簡介:仇凌鋒(1992-),男,福建泉州人,碩士研究生,研究方向:嵌入式與電路系統(tǒng)。
DOI:10.16640/j.cnki.37-1222/t.2016.02.212