董旭宇,夏路易
(太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)
隨著21世紀(jì)社會(huì)經(jīng)濟(jì)的迅速發(fā)展,人們對(duì)能夠隨時(shí)隨地提供信息服務(wù)的移動(dòng)計(jì)算與寬帶無(wú)線通信的需求越來(lái)越迫切。在工業(yè)生產(chǎn)中,常常需要采集大量的現(xiàn)場(chǎng)數(shù)據(jù),如溫度、重量、氣壓等,并將這些數(shù)據(jù)傳輸?shù)街鳈C(jī)進(jìn)行處理,由主機(jī)根據(jù)處理的結(jié)果,將控制信號(hào)傳輸給現(xiàn)場(chǎng)執(zhí)行模塊進(jìn)行各種操作??梢钥闯鰯?shù)據(jù)不管是從采集設(shè)備到處理終端,還是從監(jiān)測(cè)控制指令從處理終端到采集設(shè)備,均需經(jīng)過(guò)傳輸過(guò)程這一重要環(huán)節(jié)。但當(dāng)有線網(wǎng)絡(luò)不通暢或由于現(xiàn)場(chǎng)環(huán)境因素的限制不便架設(shè)線路的情況下,使用無(wú)線通信技術(shù)進(jìn)行數(shù)據(jù)采集、傳輸顯得更加實(shí)用、高效、快捷。
如圖1所示,整個(gè)系統(tǒng)首先用傳感器將現(xiàn)場(chǎng)信號(hào)轉(zhuǎn)換為電信號(hào),經(jīng)過(guò)模/數(shù)轉(zhuǎn)換器ADC采樣、量化、編碼后轉(zhuǎn)換成數(shù)字信號(hào),送到微控制器進(jìn)行初步處理,然后利用nRF905無(wú)線數(shù)據(jù)傳輸芯片通過(guò)無(wú)線方式將有效數(shù)據(jù)發(fā)送給接收端,接收端在接收到有效數(shù)據(jù)后通過(guò)串行口將數(shù)據(jù)送到輸出設(shè)備并且對(duì)有效數(shù)據(jù)的進(jìn)一步的處理。
圖1 整體系統(tǒng)框架Fig.1 System framework
LPC1766芯片使用高性能的 ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率為100 MHz。它內(nèi)置高速存儲(chǔ)器(高達(dá)512 k字節(jié)的閃存和64 k字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。該板包含8通道12位的ADC和10位的DAC、4個(gè)通用16位定時(shí)器、電機(jī)控制PWM接口以及多個(gè)標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)3個(gè)I2C、SPI、2個(gè) I2S、1個(gè) SDIO、4個(gè) USART、一個(gè) USB Host/Device/OTG 接口 和 兩 個(gè) CAN、Ethernet MIC 接 口 、Quadrature Encoder interface。 LPC1766芯片工作于-40~+105°C 的溫度范圍,供電電壓為2.0~3.6 V。它的一系列省電模式突顯出了它的低功耗的特點(diǎn)。豐富的外設(shè)配置,使得LPC1700微控制器適合于多種應(yīng)用領(lǐng)域:電機(jī)驅(qū)動(dòng)和應(yīng)用、控制醫(yī)療和手持設(shè)備汽車電子等領(lǐng)域。
nRF905是Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓為 1.9~3.6 V, 工作于 433 MHz、868 MHz、915 MHz 3個(gè)ISM頻段,頻道轉(zhuǎn)換時(shí)間小于650 μs,最大數(shù)據(jù)速率為100 kbit/s。nRF905可以自動(dòng)完成處理字頭和CRC(循環(huán)冗余碼校驗(yàn))的工作,可由片內(nèi)硬件自動(dòng)完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其功耗非常低。nRF905工作模式主要包括活動(dòng)模式和節(jié)電模式。在活動(dòng)模式下,數(shù)據(jù)能低速?gòu)奶幚砥鬟M(jìn)入,然后高速發(fā)射出去;同時(shí),發(fā)送數(shù)據(jù)時(shí)可以自動(dòng)生成數(shù)據(jù)幀頭并計(jì)算CRC校驗(yàn)和。接收數(shù)據(jù)時(shí)具有載波檢測(cè)功能,并對(duì)接收的代碼進(jìn)行地址檢測(cè),并計(jì)算CRC以保證數(shù)據(jù)的準(zhǔn)確性。
無(wú)線數(shù)據(jù)傳輸系統(tǒng)硬件以LPC1766微控制器及其外圍部件為基礎(chǔ),通過(guò)串口收發(fā)數(shù)據(jù)并控制無(wú)線傳輸模塊,最終達(dá)到系統(tǒng)要求。
本設(shè)計(jì)中采用AMR微控制芯片LPC1766,其有100個(gè)引腳,70多個(gè)輸入輸出端口,其他端口用來(lái)與電源、地及電阻等相連;還有看門狗時(shí)鐘、實(shí)時(shí)時(shí)鐘、10位8信道的數(shù)模轉(zhuǎn)換等。其中LPC1766與nRF905通過(guò)SIP協(xié)議進(jìn)行通訊。
無(wú)線數(shù)據(jù)傳輸主要利用單片機(jī)LPC1766對(duì)無(wú)線射頻芯片nRF905的控制實(shí)現(xiàn)的。發(fā)送過(guò)程如下:首先LPC1766通過(guò)SPI接口對(duì)nRF905的各種配置寄存器(如通訊頻率、本機(jī)地址、目標(biāo)地址、數(shù)據(jù)長(zhǎng)度等)進(jìn)行設(shè)置,并將要發(fā)送的數(shù)據(jù)放入發(fā)送存儲(chǔ)區(qū)中;然后LPC1766將TRX_CE和TX_EN置高,使nRF905開始傳輸,nRF905啟動(dòng)射頻部分電路,完成數(shù)據(jù)打包,用GFSK的方式以100 kbps的速率將數(shù)據(jù)傳出;如果AUTO_RETRAN被設(shè)置為高,nRF905重復(fù)發(fā)送數(shù)據(jù)直到TRX_CE被設(shè)置為低;傳輸完成時(shí),如果TRX_CE被置為低,nRF905自動(dòng)進(jìn)入待機(jī)狀態(tài)。
接收過(guò)程如下:先通過(guò)設(shè)置TRX_CE和TX_EN為低,選擇接收狀態(tài);經(jīng)650 μs,nRF905開始檢測(cè)空中的信號(hào);當(dāng)nRF905檢測(cè)到接收頻率上的載波,載波檢測(cè)(CD)引腳置高;當(dāng)收到有效地址時(shí),地址匹配(AM)引腳置高;當(dāng)有效的數(shù)據(jù)包被接收時(shí),即CRC檢測(cè)[7]正確,nRF905打開數(shù)據(jù)包,去掉包頭包尾并將接收數(shù)據(jù)或發(fā)送數(shù)據(jù)準(zhǔn)備(DR)引腳置高;MCU將TRX_CE引腳置低從而進(jìn)入待機(jī)狀態(tài),通過(guò)SPI接口將數(shù)據(jù)取出;數(shù)據(jù)被取出后,nRF905重新將DR與AM引腳置低。
圖2 nRF905電路圖Fig.2 Circuit of nRF905
本設(shè)計(jì)制只實(shí)現(xiàn)了點(diǎn)到點(diǎn)之間的通訊。要實(shí)現(xiàn)這一步主要是要通過(guò)對(duì)LPC1766和NRF905進(jìn)行適當(dāng)?shù)呐渲茫瑢?duì)NRF905的收發(fā)程序進(jìn)行編寫及對(duì)LPC1766管腳功能進(jìn)行配置。在發(fā)送端,為了盡可能的節(jié)約電能,一開始把NRF905設(shè)置為STANDBY靜電模式,并把SPI_CSN置為無(wú)效,這樣一方面可以達(dá)到節(jié)能的效果,同時(shí)又可以隨時(shí)監(jiān)測(cè)是否有數(shù)據(jù)要發(fā)送。當(dāng)有數(shù)據(jù)發(fā)送時(shí),再改變?yōu)榘l(fā)送模式,并置SPI_CSN為有效開始片選,發(fā)送端和接收端程序流程圖如圖3和4所示。
系統(tǒng)調(diào)試成功后,進(jìn)行了多次數(shù)據(jù)傳輸實(shí)驗(yàn)。本系統(tǒng)通過(guò)了實(shí)際數(shù)據(jù)通信實(shí)驗(yàn)的驗(yàn)證,運(yùn)行穩(wěn)定,通信可靠,能夠?qū)崿F(xiàn)50米左右的無(wú)線通信。本系統(tǒng)可以應(yīng)用于點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)通信的一些實(shí)際工作環(huán)境中。
圖3 發(fā)送端程序流程圖Fig.3 Process flow diagram of sender
圖4 接收端程序流程圖Fig.4 Rocess flow diagram of receiver
[1]姚文祥.ARM Cortex-M3權(quán)威指南[M].北京:科學(xué)出版社,2003.
[2]黃智偉.無(wú)線通信集成電路[M].北京:航空航天大學(xué)出版,2007.
[3]周立功.深入淺出Cortex-M3-LPC1700[M].廣州:致遠(yuǎn)電子有限公司出版,2009.
[4]陳忠平,曹巧媛,曹琳琳.單片機(jī)原理及接口[M].北京:清華大學(xué)出版社,2007.
[5]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,2001.
[6]趙茂泰.智能儀器原理及應(yīng)用[M].2版.北京:電子工業(yè)出版社,2004.
[7]張華鈞,高麗,史延?xùn)|.基于虛擬儀器技術(shù)的光伏雙軸跟蹤監(jiān)測(cè)系統(tǒng)研究[J].工業(yè)儀表與自動(dòng)化裝置,2011(5):50-54.ZHANG Hua-jun,GAO Li,SHI Yan-dong.Research of photovoltaic double axes tracking monitoring system based on the virtual instrument technology[J]. Industrial Instrumentation&Automation, 2011(5):50-54.