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