董旭宇,夏路易
(太原理工大學 信息工程學院,山西 太原 030024)
隨著21世紀社會經濟的迅速發展,人們對能夠隨時隨地提供信息服務的移動計算與寬帶無線通信的需求越來越迫切。在工業生產中,常常需要采集大量的現場數據,如溫度、重量、氣壓等,并將這些數據傳輸到主機進行處理,由主機根據處理的結果,將控制信號傳輸給現場執行模塊進行各種操作。可以看出數據不管是從采集設備到處理終端,還是從監測控制指令從處理終端到采集設備,均需經過傳輸過程這一重要環節。但當有線網絡不通暢或由于現場環境因素的限制不便架設線路的情況下,使用無線通信技術進行數據采集、傳輸顯得更加實用、高效、快捷。
如圖1所示,整個系統首先用傳感器將現場信號轉換為電信號,經過模/數轉換器ADC采樣、量化、編碼后轉換成數字信號,送到微控制器進行初步處理,然后利用nRF905無線數據傳輸芯片通過無線方式將有效數據發送給接收端,接收端在接收到有效數據后通過串行口將數據送到輸出設備并且對有效數據的進一步的處理。

圖1 整體系統框架Fig.1 System framework
LPC1766芯片使用高性能的 ARM CortexTM-M3 32位的RISC內核,工作頻率為100 MHz。它內置高速存儲器(高達512 k字節的閃存和64 k字節的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。該板包含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。它的一系列省電模式突顯出了它的低功耗的特點。豐富的外設配置,使得LPC1700微控制器適合于多種應用領域:電機驅動和應用、控制醫療和手持設備汽車電子等領域。
nRF905是Nordic VLSI公司推出的單片射頻收發器,工作電壓為 1.9~3.6 V, 工作于 433 MHz、868 MHz、915 MHz 3個ISM頻段,頻道轉換時間小于650 μs,最大數據速率為100 kbit/s。nRF905可以自動完成處理字頭和CRC(循環冗余碼校驗)的工作,可由片內硬件自動完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其功耗非常低。nRF905工作模式主要包括活動模式和節電模式。在活動模式下,數據能低速從處理器進入,然后高速發射出去;同時,發送數據時可以自動生成數據幀頭并計算CRC校驗和。接收數據時具有載波檢測功能,并對接收的代碼進行地址檢測,并計算CRC以保證數據的準確性。
無線數據傳輸系統硬件以LPC1766微控制器及其外圍部件為基礎,通過串口收發數據并控制無線傳輸模塊,最終達到系統要求。
本設計中采用AMR微控制芯片LPC1766,其有100個引腳,70多個輸入輸出端口,其他端口用來與電源、地及電阻等相連;還有看門狗時鐘、實時時鐘、10位8信道的數模轉換等。其中LPC1766與nRF905通過SIP協議進行通訊。
無線數據傳輸主要利用單片機LPC1766對無線射頻芯片nRF905的控制實現的。發送過程如下:首先LPC1766通過SPI接口對nRF905的各種配置寄存器(如通訊頻率、本機地址、目標地址、數據長度等)進行設置,并將要發送的數據放入發送存儲區中;然后LPC1766將TRX_CE和TX_EN置高,使nRF905開始傳輸,nRF905啟動射頻部分電路,完成數據打包,用GFSK的方式以100 kbps的速率將數據傳出;如果AUTO_RETRAN被設置為高,nRF905重復發送數據直到TRX_CE被設置為低;傳輸完成時,如果TRX_CE被置為低,nRF905自動進入待機狀態。
接收過程如下:先通過設置TRX_CE和TX_EN為低,選擇接收狀態;經650 μs,nRF905開始檢測空中的信號;當nRF905檢測到接收頻率上的載波,載波檢測(CD)引腳置高;當收到有效地址時,地址匹配(AM)引腳置高;當有效的數據包被接收時,即CRC檢測[7]正確,nRF905打開數據包,去掉包頭包尾并將接收數據或發送數據準備(DR)引腳置高;MCU將TRX_CE引腳置低從而進入待機狀態,通過SPI接口將數據取出;數據被取出后,nRF905重新將DR與AM引腳置低。

圖2 nRF905電路圖Fig.2 Circuit of nRF905
本設計制只實現了點到點之間的通訊。要實現這一步主要是要通過對LPC1766和NRF905進行適當的配置,對NRF905的收發程序進行編寫及對LPC1766管腳功能進行配置。在發送端,為了盡可能的節約電能,一開始把NRF905設置為STANDBY靜電模式,并把SPI_CSN置為無效,這樣一方面可以達到節能的效果,同時又可以隨時監測是否有數據要發送。當有數據發送時,再改變為發送模式,并置SPI_CSN為有效開始片選,發送端和接收端程序流程圖如圖3和4所示。
系統調試成功后,進行了多次數據傳輸實驗。本系統通過了實際數據通信實驗的驗證,運行穩定,通信可靠,能夠實現50米左右的無線通信。本系統可以應用于點對點、點對多點通信的一些實際工作環境中。

圖3 發送端程序流程圖Fig.3 Process flow diagram of sender

圖4 接收端程序流程圖Fig.4 Rocess flow diagram of receiver
[1]姚文祥.ARM Cortex-M3權威指南[M].北京:科學出版社,2003.
[2]黃智偉.無線通信集成電路[M].北京:航空航天大學出版,2007.
[3]周立功.深入淺出Cortex-M3-LPC1700[M].廣州:致遠電子有限公司出版,2009.
[4]陳忠平,曹巧媛,曹琳琳.單片機原理及接口[M].北京:清華大學出版社,2007.
[5]譚浩強.C語言程序設計[M].2版.北京:清華大學出版社,2001.
[6]趙茂泰.智能儀器原理及應用[M].2版.北京:電子工業出版社,2004.
[7]張華鈞,高麗,史延東.基于虛擬儀器技術的光伏雙軸跟蹤監測系統研究[J].工業儀表與自動化裝置,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.