利明, 楊秀芳, 陳劍虹
(西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院,陜西 西安 710048)
基于CC1200的嵌入式無線數(shù)據(jù)通訊系統(tǒng)的設(shè)計(jì)
利明, 楊秀芳, 陳劍虹
(西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院,陜西 西安 710048)
設(shè)計(jì)了一種基于TI公司2013年推出的射頻芯片CC1200和嵌入式芯片STM32F407的無線數(shù)據(jù)通訊系統(tǒng),介紹了STM32的SPI接口控制CC1200收/發(fā)信號的驅(qū)動的設(shè)計(jì)與實(shí)現(xiàn),分析了STM32的SPI接口與CC1200的硬件連接,探討了系統(tǒng)的初始化和點(diǎn)對點(diǎn)之間通訊程序的編寫,最終實(shí)現(xiàn)了100 kbit/s的500 m短距離無線數(shù)據(jù)通訊,并將發(fā)送-接收-判斷-發(fā)送-接收時(shí)間控制在0.5 s內(nèi)。該系統(tǒng)具有功耗低、速率高、體積小、通訊質(zhì)量高的特點(diǎn)。
CC1200; 短距離無線通信; STM32F07; SPI
信息通信領(lǐng)域中,近些年發(fā)展最快、應(yīng)用最廣的就是無線通信技術(shù)。而且無線通信技術(shù)又有著集成化、低功耗、易于操作的發(fā)展趨勢。無線通信技術(shù)已經(jīng)廣泛應(yīng)用到人們的生活和工作中,例如收費(fèi)站中的刷卡技術(shù),智能家居中的無線通訊系統(tǒng)[1]等等。目前,很多公司都在不斷完善本公司的前期產(chǎn)品,這就使得無線通信模塊不斷地推陳出新[2-3]。
本文設(shè)計(jì)了一種基于最新型無線收發(fā)芯片的無線通訊系統(tǒng),采用了TI公司于2013年新推出的一款射頻芯片CC1200,相較于1 GHz以下的射頻芯片CC1100, CC1200的最大傳輸速率可達(dá)1 250 kbit/s,支持多達(dá)6種調(diào)制方式。本文設(shè)計(jì)的是一款傳播速率很高的無線通訊設(shè)備,能夠在100 kbit/s的速率下進(jìn)行工作,在500 m通訊距離時(shí)能夠保證通訊質(zhì)量(即誤碼率在0.1%以下)。
CC1200是TI公司于2013年7月推出的一款Sub-1 GHz 收發(fā)器。具有業(yè)界領(lǐng)先的覆蓋范圍與共存性,專門針對高級電表基礎(chǔ)設(shè)施(AMI)及家域網(wǎng)(HAN)的1 GHz以下無線連接而開發(fā),可充分滿足智能電網(wǎng)、家庭樓宇自動化以及告警與安全系統(tǒng)應(yīng)用需求。
CC1200是一款性價(jià)比很高的高性能射頻芯片,它具有體積小(32 pins、QFN、5 mm×5 mm)、極低功耗(TX/915 MHz/+14 dBm/46 mA,啟動時(shí)間為0.24 ms,空閑時(shí)間電流為1.5 mA)和極低的供電電壓(2.0~3.6 V)等優(yōu)點(diǎn)。所有的濾波器都是內(nèi)部集成,不再需要昂貴的外部SAW和IF濾波器。該芯片在接收和發(fā)送中,最高數(shù)據(jù)傳輸速率可達(dá)1 250 kbit/s、最高輸出功率可達(dá)到+14 dBm,可工作在169/433/868 /915/920 MHz的ISM/SRD頻帶,并可能支持137~160、205~240及274~320 MHz等其它頻帶。該芯片具有極好的接收靈敏度:在1.2 kHz時(shí)可達(dá)到-123 dBm、在50 kHz時(shí)可達(dá)-110 dBm。該芯片具有128字節(jié)的RXFIFO和TXFIFO。
STM32F407是采用最新的ARM內(nèi)核Cortex M4的嵌入式帶有浮點(diǎn)運(yùn)算能力(FPU)的處理器,常用于控制和信號處理的數(shù)字控制。該控制器增加了信號處理功能,提高了運(yùn)行速度,具有32位多重AHB總線矩陣和多通道DMA控制器等多種功能。它的集成度高,功耗低(睡眠、停止以及待機(jī)模式),內(nèi)部有最高可達(dá)1 MB Flash和192 KB SRAM,工作頻率最高為168 MHz,外部晶振頻率可選4~26 MHz,內(nèi)部具有32 kHz的RC校準(zhǔn)頻率。Debug模式:串口調(diào)試SWD和JTAG接口。STM32F407最高可達(dá)140個(gè)I/O端口并帶有中斷功能,3個(gè)I2C接口,4個(gè)USART和2個(gè)UART接口(10.5 Mbit/s,ISO 7816 接口)、3個(gè)SPI接口和2個(gè)CAN接口[5-6]。
3.1 系統(tǒng)總方案
無線射頻收發(fā)系統(tǒng)的結(jié)構(gòu)框圖如圖1所示,由STM32F407構(gòu)成控制核心,控制CC1200實(shí)現(xiàn)數(shù)據(jù)的無線收發(fā)。本次設(shè)計(jì)在接收端接收到數(shù)據(jù)后對這組數(shù)據(jù)進(jìn)行處理,然后將處理的結(jié)果返回給發(fā)送端,發(fā)送端通過接收端返回的數(shù)據(jù)來判斷接收端是否正確地接收到數(shù)據(jù),如果沒有正確地接收到數(shù)據(jù)則對上一組數(shù)據(jù)重新發(fā)送,直到接收端接收到正確的數(shù)據(jù)。通訊頻率設(shè)定為920 MHz。
在STM32F407和CC1200之間的通訊方式采用SPI通訊協(xié)議[5],用于完成STM32F407對CC1200的初始化配置、數(shù)據(jù)的讀寫以及FIFO的訪問等操作。STM32F407選用SPI3作為與CC1200的通訊接口??紤]到高頻信號的干擾,對射頻部分的硬件部分進(jìn)行獨(dú)立設(shè)計(jì)。
通過SPI對CC1200進(jìn)行寄存器的讀/寫時(shí)序如圖2所示。
3.2 軟件設(shè)計(jì)
軟件開發(fā)用Keil Uvision4,編程語言采用C語言。系統(tǒng)之間的通訊采用主從結(jié)構(gòu),主站對從站進(jìn)行詢問,當(dāng)從站接收到來自主站的詢問信號時(shí),從站做出回答并接收來自主站的信息。設(shè)計(jì)中給每個(gè)從站和主站編寫相對應(yīng)的地址編號,只有當(dāng)主站點(diǎn)名通訊的從站時(shí),相對應(yīng)地址的從站才會與主站進(jìn)行通訊[7]。
本設(shè)計(jì)采用可變包長度的模式,即在建立數(shù)據(jù)包時(shí)按照圖3來建立。在CC1200的內(nèi)部,存在著一個(gè)用于管理各個(gè)狀態(tài)之間進(jìn)行切換的狀態(tài)機(jī)。在CC1200工作過程中,可以通過讀MARCSTATE寄存器來獲得當(dāng)前射頻芯片當(dāng)前的工作狀態(tài)。
圖3 標(biāo)準(zhǔn)的數(shù)據(jù)包格式
Fig.3 Standard packet format
圖3中,前導(dǎo)碼表示的是一組前導(dǎo)字,同步字表示數(shù)據(jù)包中設(shè)置的同步字,長度則表示發(fā)送數(shù)據(jù)的長度(包括地址位和數(shù)據(jù)信息位)。其中,地址表示接受方的地址編號;數(shù)據(jù)信息就是用戶要傳輸?shù)臄?shù)據(jù)內(nèi)容,CRC16是最后的數(shù)據(jù)校驗(yàn),它是由CC1200在發(fā)送完前邊的數(shù)據(jù)后自動添加到數(shù)據(jù)包的最后。在這里要提到的是,通過配置相應(yīng)的寄存器CC1200會自動在數(shù)據(jù)信息的添加2個(gè)字節(jié)的數(shù)據(jù),這2個(gè)字節(jié)的數(shù)據(jù)表示CRC、LQI和RSSI。
3.2.1 初始化程序
初始化程序包括對STM32F407、CC1200的各項(xiàng)配置以及STM32F407對CC1200驅(qū)動的初始化,對CC1200的初始化包括各個(gè)寄存器的配置。為了獲得最佳的通訊性能,有些配置必須經(jīng)過復(fù)雜的計(jì)算才能獲得,在這里筆者使用Chipcon公司提供的SmartRF Studio軟件對相關(guān)的寄存器進(jìn)行配置。對于一些軟件中沒有提到或者沒有滿足用戶要求的配置,用戶可以根據(jù)數(shù)據(jù)手冊的相關(guān)內(nèi)容自己再進(jìn)行配置。
這里STM32F407對CC1200驅(qū)動,主要就是通過SPI3接口來驅(qū)動CC1200。
3.2.2 無線通訊流程
由于采用詢問-回答的方式進(jìn)行無線數(shù)據(jù)通訊。所以在本次設(shè)計(jì)的編程中,發(fā)送程序只執(zhí)行一次,然后會轉(zhuǎn)換到接收狀態(tài),這在編程時(shí)就要特別注意時(shí)序的問題以保證信息能夠完整地被接收到,也就是當(dāng)發(fā)送端發(fā)送完數(shù)據(jù),接收端應(yīng)該處于接收狀態(tài),接收端在返回信息時(shí)發(fā)送端應(yīng)該處于接收狀態(tài)。
當(dāng)數(shù)據(jù)包發(fā)送完成后,GPIO2會產(chǎn)生一個(gè)先上升后下降的信號,STM32F407以此來判斷CC1200是否完成了數(shù)據(jù)的發(fā)送。無線數(shù)據(jù)發(fā)送流程如圖4所示。
在接收過程中,只有接收到的地址位的數(shù)據(jù)與接收方本身配置的地址匹配,它才會繼續(xù)接收后邊的數(shù)據(jù)并將其存入到RXFIFO中,當(dāng)接收完成后,GPIO2會給STM32F407發(fā)送一個(gè)先上升后下降的中斷,告訴STM32F407接收方的CC1200已經(jīng)完整地接收到一組數(shù)據(jù)。無線數(shù)據(jù)接收流程圖如圖5所示。
3.2.3 模擬串口的使用
模擬串口采用SSCOM3.3軟件,這款軟件是一個(gè)綠色軟件,只需在上位機(jī)中安裝其對應(yīng)的驅(qū)動程序,然后直接打開該軟件進(jìn)行對應(yīng)參數(shù)的設(shè)置即可使用。在本實(shí)驗(yàn)中對其參數(shù)設(shè)置為:波特率為115 200,數(shù)據(jù)位為8,停止位為1。
為了驗(yàn)證本設(shè)計(jì)的可靠性,進(jìn)行了以下兩個(gè)實(shí)驗(yàn)(頻率為920 MHz,傳輸速率為100 kbit/s)。
1) 在一處空曠的地方,通訊距離為100 m進(jìn)行無線數(shù)據(jù)的點(diǎn)對點(diǎn)之間的通訊。其實(shí)驗(yàn)結(jié)果如圖6所示。
從圖6可以看出,本次設(shè)計(jì)的無線數(shù)據(jù)通訊系統(tǒng)在進(jìn)行短距離的點(diǎn)對點(diǎn)通訊時(shí)是可以進(jìn)行可靠工作的,可以按照用戶的意愿來進(jìn)行工作。
2) 通訊距離的測試,還是兩個(gè)系統(tǒng)之間進(jìn)行通信,通訊距離依次設(shè)定為50 m、100 m、200 m、300 m和500 m,分別進(jìn)行3次實(shí)驗(yàn),每次實(shí)驗(yàn)發(fā)送17 000字節(jié)的數(shù)據(jù)。實(shí)驗(yàn)結(jié)果如表1所示。
表1 100 kbit/s速率不同距離誤碼率
Tab.1 Error rate of different distance based on 100 kbit/s
說明:300 m的誤碼率按照常出現(xiàn)的錯(cuò)誤字節(jié)12個(gè)計(jì)算;500 m的誤碼率按照常出現(xiàn)的17個(gè)錯(cuò)誤字節(jié)計(jì)算。
由此可知:在傳輸速率為100 kbit/s時(shí),距離較近時(shí),誤碼率為0,在較遠(yuǎn)距離時(shí)誤碼率最高為0.1%。因此,該無線射頻收發(fā)系統(tǒng)能夠?qū)崿F(xiàn)短距離、高速率、低誤碼率的通信要求。
以后將在800 m距離、空曠環(huán)境下,對本系統(tǒng)再進(jìn)行實(shí)驗(yàn)。以到達(dá)更遠(yuǎn)距離的數(shù)據(jù)通訊。
3)在發(fā)送端對時(shí)間進(jìn)行測試,采用STM32F407的TIM2作為計(jì)時(shí)器,其頻率設(shè)定為8 MHz,每次發(fā)送32個(gè)字節(jié)的數(shù)據(jù)包。
得出發(fā)送機(jī)從發(fā)送到接受到返回的正確數(shù)據(jù)時(shí)間為2f3bd(十六進(jìn)制),則將其轉(zhuǎn)換為十進(jìn)制為193470,即所用時(shí)間:
t=193470/8000000=0.024 183 75 s
本次設(shè)計(jì)的無線數(shù)據(jù)通訊系統(tǒng)能在高速率的情況下完成500 m距離的數(shù)據(jù)通訊,保證了很好的通訊質(zhì)量,在此前提下,完成發(fā)送-接收-判斷-發(fā)送-接收,時(shí)間保證在了0.5 s之內(nèi),本系統(tǒng)具有體積小、功耗低以及性能高等優(yōu)點(diǎn)。
[1]閔麗娟,盧捍華,陳玲,等.智能家居的系統(tǒng)結(jié)構(gòu)及相關(guān)無線通信技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(8):169-172.
Min Lijuan,Lu Hanhua,Chen Ling,et al. Research of architecture of smart home and related wireless communication technology[J]. Computer Technology and Development, 2011,21(8):169-172.
[2]馮莉,董桂梅,林玉池. 短距離無線通信技術(shù)及其在儀器通信中的應(yīng)用[J].儀器技術(shù)與傳感器,2007,(2):31-32.
Feng Li , Dong Guimei, Lin Yuchi. Application of short-distance wireless communication to instruments communication[J]. Instrument Technique and Sensor, 2007,(2):31-32.
[3]江和,張培銘,翁桂華. 基于無線通信的高壓設(shè)備溫度監(jiān)測系統(tǒng)的設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2009,30(9):1969-1975.
Jiang He,Zhang Peiming, Weng Guihua. Design of temperature monitoring system for high-voltage equipment based on wireless communication[J]. Chinese Journal of Scientific Instrument, 2009,30(9):1969-1975.
[4]鄧專,陳維,王春麟. 射頻收發(fā)芯片CC1100及其應(yīng)用[J].機(jī)械工程與自動化,2007,(12):168-169,172.
Deng Zhuan, Chen Wei, Wang Chun-lin. RF transceiver chip CC1100 and its application [J]. Mechanical Engineering & Automation,2007,(12):168-169,172.
[5]李波,袁霞. STM32和CC2520的TinyOS移植與驅(qū)動分析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2012,12(11):35-38.
Li bo, Yuan Xia. TinyOS transplant and driver analysis based on STM32 and CC2520[J]. Microcontroller and embedded systems applications,2012,12(11):35-38.
[6]袁安富,徐金琦,王偉,等.基于雙STM32多旋翼無人機(jī)控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(11):136-138.
Yuan Anfu, Xu Jinqi, Wang Wei,et al. Control system design for multi-rotor unmanned aerial vehicle based on dual STM32[J].Applications of Electronic Technique, 2013,39(11):136-138.
[7]王俊荷,高飛,吳節(jié)林. 基于CC1100點(diǎn)對點(diǎn)無線數(shù)據(jù)采集[J].計(jì)算機(jī)科學(xué),2011,38(10):212-214.
Wang Junhe, Gao Fei, Wu Jielin. Point to point wireless data acquisition based on CC1100[J]. Computer Science ,2011,38(10):212-214.
(責(zé)任編輯 王衛(wèi)勛)
The design of embedded wireless data communication system based on CC1200
LI Ming , YANG Xiufang, CHEN Jianhong
(Faculty of Mechanical and Precision Instrument Engineering, Xi’an University of Technology, Xi’an 710048, China)
In the paper, a wireless data communication system is designed based on TI's 2013 launch of the RF chip CC1200 and embedded chips STM32F407 and the design and implementation of driver and the hardware about STM32 SPI interface control CC1200 transmit/receive signals are introduced. This wireless data communication system achieves low power consumption, high data rate,small size, high quality. The programing of Initializing System and point-to-point communication has been discussed. Ultimately, the 500 m short-range wireless data communication has been achieved at 100 kbit/s. The send-receive-judge-send-receive time has been controlled within 0.5 s.
CC1200; short-range wireless communication; STM32F07; SPI
1006-4710(2015)02-0248-05
2014-12-20
陜西省教育廳科研計(jì)劃資助項(xiàng)目(2013JK1049)。
利明,男,碩士生,研究方向?yàn)楣怆姍z測。E-mail:highli@qq.com。
楊秀芳,女,副教授,研究方向?yàn)楣怆姕y試及數(shù)字信號處理技術(shù)。E-mail:yxf5078@163.com。
TN919.72
A