1. 單片機怎麼採集溫度輸入信號
問題有點籠統,要看用什麼樣的溫度感測器和什麼樣的單片機,數字溫度感測器按感測器提供的介面連接。模擬溫度感測器需要通過模擬介面連接,如果你的單片機自帶AD,而且滿足精度要求,則可以用單片機自帶的AD採集,如果單片機不帶AD,則需要擴一個AD,通過AD採集溫度。
2. 如何用單片機做多路數據採集系統
1、從你的方案大致可以看出,現場是有源檢測儀表類,50M的引線阻抗太大,建議你採用4-20mA的標准III型儀表輸出信號。
2、數據采大敬帆集頻率多高?單片機一般最高工作頻率大致為12M(別拿高等級的單片機來說,那成本太高了),還有A/滾雹D晶元工作時間通常也達到幾十微秒級,所以對於高頻採集通道,單片機方案不太合適。
3、採集的數據是否要保存?單片機可訪問稿槐的RAM容量很有限,很難保存大量的採集數據。
如果是高頻採集通道或需要保存大量的採集數據,工控PC機+高速採集卡是一個比較好的解決方案。
3. 單片機如何實現多路模擬量的數據採集、顯示
普通單片機實現多路模擬量的數據採集、顯示需要:
外部連接一個多通道輸入的ADC晶元,單片機按照一定的周期驅動模擬開關切換到不同的模擬通道,設計模數轉換控制器的控製程序,可以進行定時模擬信號採集和顯示。
(3)單片機做信息採集擴展閱讀:
單片機基本結構及作用:
1、運算器
運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。
ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。
運算器有兩個功能:
執行各種算術運算。
執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2、控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
從內存中取出一條指令,並指出下一條指令在內存中的位置。
對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3、主要寄存器
累加器A
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入散豎/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送槐或往存儲器中存儲的一個數據位元組等等。
指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。
當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
程序計數器PC
PC用於確定下一條指令鉛掘伍的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。
4. 需要用51單片機做一個數據採集系統,但是要求采樣頻率達到至少每秒2000次以上,請問51單片機可以做到么
肯定要速度快的單片機,比如帶ADC的STC12單片機,用定時器設置好每秒中斷2000次,每次啟動ADC轉換一次,這樣就得到數據了。
當然要存儲2000個數據還是問題,如果是8bit的結果,那需要2000位元組,12bit結果要4000位元組。所以要求單片機本身有很大的RAM或者要擴展RAM才行。但STC12內部才1024位元組的RAM,肯定不夠用,所以這時要用STC90C58AD了,4096位元組的RAM。
如果用C8051F單片機,那更簡單。比如C8051F的ADC0是100ksps,就是說連續轉換時每秒能采樣100000個數據,轉換2000個是小菜一碟,只要設置好定時器以0.5毫秒觸發一次ADC轉換,再設置好ADC中斷,這樣1秒採集2000個數據沒問題。
5. 單片機中 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頁
6. 單片機如何進行數據採集
對於液壓設備中的8個待測參數選用相應的感測器來來檢測,試驗時選取應變式感測器作為測試現場的工具。這些選用的檢測元件輸出都是標準的4-20mA微弱的電流信號,電流信號又經過由LM324組成的放大轉換電路轉換成0-5V的電壓信號輸入到C8051F020的模擬輸入端,如圖2所示,經內部集成的A/D轉換器轉換成相應的數字量。C8051F020將8路采樣值作為液壓設備現場的狀況存入相應的內存單元。
3.2 LCD顯示
為了使數據採集系統小巧美觀,同時又獲得較高的性價比,選用德彼克公司生產的DMF-50174藍屏液晶顯示器,該顯示器是320×240點陣式液晶,圖形和文本都可以顯示。顯示驅動控制晶元採用EPSON 公司的一種高性能LCD 控制器SED1335。硬體電路採用間接接法,如圖3所示。用單片機的P5.0~P5.7口作為SED1335的DB0~DB7數據匯流排的輸入通道。P4.5作為SED1335的片選信號, 配合地址信號A0實現SED1335 通過數據匯流排接收來自單片機的指令和數據。當A 0= 0, P4.6(WR)=0,P4.7(RD)= 1時, 實現指令的寫入和從SED1335 中讀取數據。當A 0= 1, P4.6(WR)= 0, P4.7(RD)=1時, 則是顯示數據的寫入,該功能通過軟體實現。
3.3 數據通訊
單片機C8051F020的TX0、RX0及P0.2通過MAX485與上位機相連,進行串列通信,如圖3所示。P0.2控制MAX485的狀態或發送,用軟體控制。RX0為單片機的串列輸入端,接收上位機通過MAX485向單片機發送的數據。TX0為單片機的串列輸出端,通過MAX485發送給上位機。
4 系統軟體設計
4.1 軟體設計總體上由兩部分組成:一部分為單片機C8051F020
主程序設計,一部分為LCD液晶顯示程序設計。由於用C語言編程可以降低程序的復雜度,提高程序的可讀性和可修改性,所以本軟體採用C51進行編程,keil μVision2編譯器進行編譯。
7. 單片機如何實現多路模擬量的數據採集、顯示
普通單片機實現多路模擬量的數據採集、顯示需要:
外部連接一個多通道輸入的ADC晶元,單片機按照一定的周期驅動模擬開關切換到不同的模擬通道,設計模數轉換控制器的控製程序,可以進行定團戚時模擬信號採集和顯示。
(7)單片機做信息採集擴展閱讀:
單片機基本結構及作用:
1、運算器
運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。
ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。
運算器有兩個功能:
執行各種算術運算。
執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2、控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
從內存中取出一條指令,並指出下一條指令在內存中的位置。
對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排鍵或仿DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3、主要寄存器
累加器A
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。
當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時稿纖,也需要用到地址寄存器和數據寄存器。