摘 要:本文設計并實現了基于2.4GHz ISM頻段射頻收發(fā)芯片nRF2401的計算機短距離無線數據采集系統。該系統采用PC作為系統控制中心,以C8051F021單片機為核心構成數據采集傳送的前端,并且采用nRF2401芯片進行數據無線發(fā)射與接收。
關鍵詞:ISM頻段; 射頻; C8051F021單片機; nRF2401
引言
針對某醫(yī)療裝置中的人體生理信號采集和傳輸問題,本文設計了計算機近距離無線數據采集系統。采用Nodic公司的nRF2401作為無線收發(fā)核心器件。系統由一臺PC、無線數據接收模塊和無線數據采集發(fā)射模塊組成。無線數據發(fā)射模塊以C8051F021單片機為處理核心,采用單片機內部的12位ADC對現場的模擬信號進行采集和發(fā)送;無線數據接收模塊以C8051F021單片機作為處理核心,接收與發(fā)射模塊由nRF2401無線收發(fā)芯片完成,采用MAX5591實現12位D/A轉換,采用 RS-485總線與PC進行通信,它負責現場數據的接收和初步處理,并轉發(fā)給PC以供顯示和監(jiān)控,同時將數字量轉換為模擬量,供示波器顯示;PC有良好的人機界面,利用NI的虛擬示波器顯示遠端現場采集的數據,并可以向現場的采集模塊發(fā)送控制命令,同時可以實現保存采集數據、打印、回放歷史數據等功能。
系統分析及設計
計算機短距離無線數據采集系統組成如圖1所示。
圖 1 系統組成框圖
系統分析及硬件設計
由于現場要采集的數據為醫(yī)學人體實驗數據,幅值大約在-1.0V~+1.0V之間,頻率為300Hz,要求測量誤差低于10mV,C8051F021自帶的12位ADC在精度上可以滿足要求;但是單片機中的ADC要求輸入為正電壓,同時考慮到轉換精度要求,故需要對信號進行轉換,將原信號轉換為幅值在0~3V、頻率300Hz左右的信號??梢岳肕AX4194組成信號轉換電路,將模擬信號的零參考電平抬升到1.0V。這樣,原先-1.0V~0V之間的電壓信號轉換為0~1.0V之間的電壓,而原先0V~1.0V之間的電壓轉換為1.0V~2.0V之間的電壓。這樣就完成了原始信號的轉換,適應了單片機的輸入要求。單片機A/D轉換參考電壓選擇外部3.3V,由MAX6013提供。
考慮到無線數據的發(fā)送與接收特點,故選用Nordic 公司的nRF2401芯片。nRF2401是單片射頻收發(fā)芯片,工作于2.4GHz~2.5GHz ISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片功耗非常低,以-5dBm的功率發(fā)射時,工作電流只有10.5mA,接收時工作電流只有18mA。其獨有的DuoCeiver技術使nRF2401可以使用同一天線,同時接收兩個不同頻道的數據。nRF2401使用跳頻技術,在2400MHz~2527MHz之間設立了128個頻道(每個頻道帶寬1MHz),頻道間的切換時間小于200ms。此外,nRF2401內置CRC編解碼模塊,可以在不增加編程難度的條件下減小誤碼率。
無線數據接收后,要進行D/A轉換,供示波器觀看;考慮到數據的采集精度要求,故采用了 MAX5591作為轉換器件,一方面可以方便地與C8051F021單片機SPI接口連接,另一方面,它是12位DAC,與采集端的ADC匹配,可減小轉換誤差。
無線數據接收到終端后,要求能直觀地觀看,并且可以對現場的數據采集次數、采集啟停時間進行控制,故需要將數據傳到PC,進行顯示;同時,通過人機界面,對現場進行遠程控制。PC采用VC++編寫程序,利用NI 的虛擬示波器和其它控件實現友好的人機界面,數據顯示、存儲和打印功能。
系統中的主要軟件模塊
系統軟件主要由上位機軟件和下位機軟件組成。
上位機軟件主要實現與單片機通信、波形顯示、數據存儲、數據回放、打印等功能。下位機的主要功能有:系統初始化、數據采集(A/D轉換)、無線數據發(fā)射、無線數據接收、數據D/A轉換、與PC串口通信等。下面重點介紹下位機的無線發(fā)射與接收部分軟件。
無線數據收發(fā)主要通過對nRF2401進行操作實現,包括器件配置、發(fā)送數據、接收數據等。nRF2401的工作模式通過引腳PWR_UP、CE和CS選擇。在RX/TX模式下,有兩種工作方式:ShockBurs和Direct Mode。本系統選用了ShockBurst模式,這種模式下需要配置的內容有:接收數據長度、接收通道地址、CRC校驗、工作方式、發(fā)送頻率、傳送速率、接收與發(fā)送等。需要15字節(jié)的配置內容,下面給出了16進制的配置內容:0x80,0x80,0x00,0xcc,0xcc,0xcc,
0x00,0xcd,0xcd,0xcd,0xcd,0x83,0x4f,
0x05。
難點分析及解決方法
nRF2401半雙工通信方式與C8051全雙工通信接口的轉換
在數據的采集端,單片機與射頻模塊是雙向通信,可以直接采用單片機自帶的SPI 接口與射頻模塊單向通信,包括配置射頻模塊的工作方式、接收通道地址、接收數據長度、接收頻率、發(fā)送功率等參數和要發(fā)送的采集數據;當單片機要讀取遠端發(fā)送的控制命令時,要將SPI模式關閉,同時將MOSI、DR1端口定義為輸入方式,然后將射頻模塊接收的控制命令讀到單片機內部,并根據控制命令進行相應的操作,如采集通道選擇、采集次數設定、開始采集、停止采集、發(fā)送數據等。
表1 實驗數據表
在接收端,單片機和射頻模塊之間也是雙向通信,單片機首先關閉SPI 模式,將MISO定義為輸入模式,通過模擬的SPI 操作,對射頻模塊進行配置;當有控制命令要發(fā)送時,仍將MISO端口定義為輸出模式,將射頻模塊配置為發(fā)送模式,將控制命令發(fā)送到數據采集終端;當要接收采集終端傳來的數據時,首先將射頻模塊配置為接收模式,然后打開SPI 功能,利用單片機的SPI接口,將數據讀到單片機內部。
這樣,就完成了射頻模塊的半雙工通信接口與單片機全雙工通信接口的轉換。
單片機與MAX5591之間的SPI接口通信
C8051單片機的SPI 操作時序不能滿足MAX5591的時序要求。要使單片機和MAX5591之間進行數據傳輸,必須根據MAX5591的時序要求將單片機的SPI時序進行轉換。
實驗結果及分析總結
實驗結果
現場模擬電壓信號通過12位ADC轉換為數字量,通過無線方式傳送到遠端監(jiān)控室,一方面通過DAC轉換為模擬量,供示波器觀看;另一方面,通過RS-232傳送到PC進行顯示、存儲和打印。表1是實驗數據。
分析總結
從試驗數據可以看到,系統實現了現場模擬電壓信號的采集、無線傳輸以及模擬信號還原,誤差不大于0.2%,滿足了設計要求。同時系統還存在著不足之處:在數據量加大,傳輸速率為1MHz時,偶爾會出現數據丟失現象;當被測信號頻率大于500Hz的時候,信號復現時會出現波形失真。
系統實現了遠端現場采集8路人體生理信號,無線傳送到監(jiān)控中心并復現現場信號的功能。實驗證明,系統在250Kbps速率下無線傳輸距離可達50米,采集信號誤差低于0.5% 。數據傳輸中采用了16位CRC校驗,降低了誤碼率。該系統已經在某醫(yī)療器械上得到應用。經改造,系統可以采集現場的數字量和一些開關量,實現設備狀態(tài)監(jiān)測和開關量控制等。
結語
本文采用軟件切換的方式實現了半雙工器件與全雙工器件的通訊轉換,采用軟件模擬SPI操作,解決了多SPI器件之間的通信協議匹配問題。
參考文獻:
1 沈陽新華龍電子有限公司,C8051F020/1/2/3 混合信號ISP FLASH 微控制器,2005
2 趙念強,鮑可進,申屠浩.基于SoC單片機8051F的碼頭供給監(jiān)控系統 北京:微計算機信息, 2005年第3期第70頁