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