㈠ 單片機采樣有幾種方法
主要有定時器中斷采樣或dma通道采樣,定時器作為觸發源采樣,軟體觸發采樣幾種。
㈡ 單片機中 ADC 是如何進行採集的
摘 要:本文設計並實現了基於2.4GHz ISM頻段射頻收發晶元nRF2401的計算機短距離無線數據採集系統。該系統採用PC作為系統控制中心,以C8051F021單片機為核心構成數據採集傳送的前端,並且採用nRF2401晶元進行數據無線發射與接收。
關鍵詞:ISM頻段; 射頻; C8051F021單片機; nRF2401
引言
針對某醫療裝置中的人體生理信號採集和傳輸問題,本文設計了計算機近距離無線數據採集系統。採用Nodic公司的nRF2401作為無線收發核心器件。系統由一台PC、無線數據接收模塊和無線數據採集發射模塊組成。無線數據發射模塊以C8051F021單片機為處理核心,採用單片機內部的12位ADC對現場的模擬信號進行採集和發送;無線數據接收模塊以C8051F021單片機作為處理核心,接收與發射模塊由nRF2401無線收發晶元完成,採用MAX5591實現12位D/A轉換,採用 RS-485匯流排與PC進行通信,它負責現場數據的接收和初步處理,並轉發給PC以供顯示和監控,同時將數字量轉換為模擬量,供示波器顯示;PC有良好的人機界面,利用NI的虛擬示波器顯示遠端現場採集的數據,並可以向現場的採集模塊發送控制命令,同時可以實現保存採集數據、列印、回放歷史數據等功能。
系統分析及設計
計算機短距離無線數據採集系統組成如圖1所示。
圖 1 系統組成框圖
系統分析及硬體設計
由於現場要採集的數據為醫學人體實驗數據,幅值大約在-1.0V~+1.0V之間,頻率為300Hz,要求測量誤差低於10mV,C8051F021自帶的12位ADC在精度上可以滿足要求;但是單片機中的ADC要求輸入為正電壓,同時考慮到轉換精度要求,故需要對信號進行轉換,將原信號轉換為幅值在0~3V、頻率300Hz左右的信號。可以利用MAX4194組成信號轉換電路,將模擬信號的零參考電平抬升到1.0V。這樣,原先-1.0V~0V之間的電壓信號轉換為0~1.0V之間的電壓,而原先0V~1.0V之間的電壓轉換為1.0V~2.0V之間的電壓。這樣就完成了原始信號的轉換,適應了單片機的輸入要求。單片機A/D轉換參考電壓選擇外部3.3V,由MAX6013提供。
考慮到無線數據的發送與接收特點,故選用Nordic 公司的nRF2401晶元。nRF2401是單片射頻收發晶元,工作於2.4GHz~2.5GHz ISM頻段,晶元內置頻率合成器、功率放大器、晶體振盪器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。晶元功耗非常低,以-5dBm的功率發射時,工作電流只有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轉換)、無線數據發射、無線數據接收、數據D/A轉換、與PC串口通信等。下面重點介紹下位機的無線發射與接收部分軟體。
無線數據收發主要通過對nRF2401進行操作實現,包括器件配置、發送數據、接收數據等。nRF2401的工作模式通過引腳PWR_UP、CE和CS選擇。在RX/TX模式下,有兩種工作方式:ShockBurs和Direct Mode。本系統選用了ShockBurst模式,這種模式下需要配置的內容有:接收數據長度、接收通道地址、CRC校驗、工作方式、發送頻率、傳送速率、接收與發送等。需要15位元組的配置內容,下面給出了16進制的配置內容:0x80,0x80,0x00,0xcc,0xcc,0xcc,
0x00,0xcd,0xcd,0xcd,0xcd,0x83,0x4f,
0x05。
難點分析及解決方法
nRF2401半雙工通信方式與C8051全雙工通信介面的轉換
在數據的採集端,單片機與射頻模塊是雙向通信,可以直接採用單片機自帶的SPI 介面與射頻模塊單向通信,包括配置射頻模塊的工作方式、接收通道地址、接收數據長度、接收頻率、發送功率等參數和要發送的採集數據;當單片機要讀取遠端發送的控制命令時,要將SPI模式關閉,同時將MOSI、DR1埠定義為輸入方式,然後將射頻模塊接收的控制命令讀到單片機內部,並根據控制命令進行相應的操作,如採集通道選擇、採集次數設定、開始採集、停止採集、發送數據等。
表1 實驗數據表
在接收端,單片機和射頻模塊之間也是雙向通信,單片機首先關閉SPI 模式,將MISO定義為輸入模式,通過模擬的SPI 操作,對射頻模塊進行配置;當有控制命令要發送時,仍將MISO埠定義為輸出模式,將射頻模塊配置為發送模式,將控制命令發送到數據採集終端;當要接收採集終端傳來的數據時,首先將射頻模塊配置為接收模式,然後打開SPI 功能,利用單片機的SPI介面,將數據讀到單片機內部。
這樣,就完成了射頻模塊的半雙工通信介面與單片機全雙工通信介面的轉換。
單片機與MAX5591之間的
SPI介面通信
C8051單片機的SPI 操作時序不能滿足MAX5591的時序要求。要使單片機和MAX5591之間進行數據傳輸,必須根據MAX5591的時序要求將單片機的SPI時序進行轉換。
實驗結果及分析總結
實驗結果
現場模擬電壓信號通過12位ADC轉換為數字量,通過無線方式傳送到遠端監控室,一方面通過DAC轉換為模擬量,供示波器觀看;另一方面,通過RS-232傳送到PC進行顯示、存儲和列印。表1是實驗數據。
分析總結
從試驗數據可以看到,系統實現了現場模擬電壓信號的採集、無線傳輸以及模擬信號還原,誤差不大於0.2%,滿足了設計要求。同時系統還存在著不足之處:在數據量加大,傳輸速率為1MHz時,偶爾會出現數據丟失現象;當被測信號頻率大於500Hz的時候,信號復現時會出現波形失真。
系統實現了遠端現場採集8路人體生理信號,無線傳送到監控中心並復現現場信號的功能。實驗證明,系統在250Kbps速率下無線傳輸距離可達50米,採集信號誤差低於0.5% 。數據傳輸中採用了16位CRC校驗,降低了誤碼率。該系統已經在某醫療器械上得到應用。經改造,系統可以採集現場的數字量和一些開關量,實現設備狀態監測和開關量控制等。
結語
本文採用軟體切換的方式實現了半雙工器件與全雙工器件的通訊轉換,採用軟體模擬SPI操作,解決了多SPI器件之間的通信協議匹配問題。■
參考文獻:
1 沈陽新華龍電子有限公司,C8051F020/1/2/3 混合信號ISP FLASH 微控制器,2005
2 趙念強,鮑可進,申屠浩.基於SoC單片機8051F的碼頭供給監控系統 北京:微計算機信息, 2005年第3期第70頁
㈢ 單片機最高采樣頻率
這個問題不能泛泛回答,你問的問題沒有答案,你要加限定條件,什麼單片機,什麼型號,多大晶振,甚至可以設置晶振分頻的單片機多少分頻,這樣才能確定單片機的采樣頻率,比如你用最簡單最原始的51,12MHz晶振,12分頻的話就是1MHz,但是如果你用STM32實現,那IO的時鍾你都可以設置到50MHz東西不一樣屬性就不一樣
㈣ 單片機書上采樣「s5p2」是什麼意思
Total時鍾周期為(晶振頻率f)2個晶振周期2*1/f,機器周期或稱狀態周期(S)為6個時鍾周期即12個晶振周期
1、每個狀態周期有P1和P2兩個相,每個相佔一個振盪周期,故一個機器周期為12個振盪周期.
2、在每個時鍾周期(即機器狀態時間S)的前半周期,相位1(即P1信號)有效,在每個時鍾周期的後半周期,相位2(即P2信號)有效。
3、每個時鍾周期(S)有兩個節拍即相位P1和P2(可理解為P1:高電平,P2:低電平),CPU以兩相時鍾P1和P2為基本節拍指揮8051各們部件協調工作。
PS:因此,S5P2: 第5個時鍾周期的相位2(後半拍)。
㈤ 51單片機ad采樣可以採集什麼
51單片機有很多型號,普通的51單片機是沒有ADC的,需要外接ADC晶元,一般是ADC0832等等,網上很多,利用51單片機驅動AD晶元進行采樣就可以實現AD採集,利用定時器設置好采樣率就OK了,為了得到較高精度,你將除數乘以100,再除被除數。所以最好定義為int型。內存中肯定以十六進制形式(二進制)存儲的。
㈥ 單片機A/D采樣
假設一個系統使用12位的ADC,每秒輸出一個溫度值(1Hz)。為了將測量解析度增加到16位,我們按下式計算過采樣頻率:
因此,如果我們以fs=256Hz的采樣頻率對溫度感測器進行過采樣,我們將在所要求的采樣周期內採集到足夠的樣本,對這些樣本求均值便可得到16位的輸出數據。為此,我們先累加(將256個連續樣本加在一起),然後將總和除以16(或將總和右移4位)。這樣的過程通常被稱為抽取。這樣得到的結果是16位的有用數據,所做的操作被稱為累加和抽取。一旦我們計算得到由256個樣本(對本例而言)所產生的結果,我們將對數據進行保存或處理,然後開始為下一個輸出字採集樣本。
註:用於累加過采樣數據和進行除法運算的存儲器單元所佔的位元組數必須足夠多,以免發生溢出或產生截斷錯誤。
㈦ 單片機電壓采樣
如果用單片機直接采樣,會燒毀單片,產生嚴重後果。所以要用兩個大阻值電阻串聯,接成分壓電路。