基于MAX114的高速數(shù)據(jù)采集系統(tǒng)設(shè)計
1 引言
數(shù)據(jù)采集技術(shù)是信息科學(xué)的一個很重要的分支,它研究信息數(shù)據(jù)的轉(zhuǎn)換,采集、存儲、處理以及顯示等作業(yè),在信號處理、智能儀器以及工業(yè)自動控制等領(lǐng)域起到巨大的作用。如工業(yè)生產(chǎn)過程中常常需要對濕度、溫度、壓力、流量等各種工藝參數(shù)隨時進行檢測和監(jiān)控,同時還要將檢測到的數(shù)據(jù)及時傳遞給上位機,以實現(xiàn)對于參數(shù)的隨機查詢,對信息的存儲與處理,及時調(diào)整控制方案,提高生產(chǎn)效率和產(chǎn)品質(zhì)量。
但是,在許多其他領(lǐng)域如:雷達(dá)通信,地理信息,圖像傳輸,軍工及醫(yī)療化工,為了捕捉,采集,存儲,處理,傳輸和再現(xiàn)瞬間變化的模擬信號(類似脈沖信號),則對數(shù)據(jù)采集速度及效率提出了更高的要求。本文應(yīng)用單片機89C51作為主控制來實現(xiàn)模擬信號的高速采集、存儲及再現(xiàn)。應(yīng)用中,單片機只對信號進行中轉(zhuǎn)不對數(shù)據(jù)進行處理,采集的數(shù)字信號傳給DA轉(zhuǎn)換器后,由DA轉(zhuǎn)換器將信號還原成模擬信號。
2硬件組成
設(shè)計的方案主要用于瞬間信號的采集,要求選用的A/D轉(zhuǎn)換芯片轉(zhuǎn)換速度比較快,經(jīng)過考慮選用MAX114。89C51單片機的指令執(zhí)行時間(us級)與AD轉(zhuǎn)換芯片的轉(zhuǎn)換時間往往不同步[1],因此在單片機與AD轉(zhuǎn)換器間加入高速緩存IDT72041,用高速緩存來連接單片機與AD轉(zhuǎn)換器。系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
實際應(yīng)用中,須將瞬間的連續(xù)的模擬信號轉(zhuǎn)換成便于存儲與分析的數(shù)字信號。在這個過程中應(yīng)盡量避免模擬信號的失真,這就與AD轉(zhuǎn)換芯片的轉(zhuǎn)換精度與轉(zhuǎn)換速度有極大的關(guān)聯(lián)。在模擬信號的頻率很高時,AD芯片的轉(zhuǎn)換速度就顯得尤其重要。MAX114芯片對輸入的模擬電壓有一定的要求,必須對輸入的模擬電壓進行放大以滿足AD轉(zhuǎn)換芯片的要求[2]。MAX114的前置放大電路如圖2:
圖2 放大與濾波電路
高通濾波只允許一定頻率的信號通過,清除雜波的影響。MAX114的引腳REF+,REF-所接旁路電容消除干擾。MAX114為四通道的A/D芯片,而我們只需要一個通道轉(zhuǎn)換數(shù)據(jù),因此A1,A2必須接數(shù)字“0”。根據(jù)需要選擇模式“0”狀態(tài)來轉(zhuǎn)換數(shù)據(jù),引腳“5”MODE也必須接數(shù)字“0”。其真值表如表1所示: www.51kaifa.com
表1 MAX114真值表
AD轉(zhuǎn)換芯片MAX114將轉(zhuǎn)換出來的數(shù)字信號傳送給高速緩存IDT72041。MAX114的工作時鐘由內(nèi)部時鐘電路提供的時鐘脈沖,緩存寫控制信號也是由該芯片的 “INT”來控制,在AD芯片轉(zhuǎn)換完畢后,“INT”產(chǎn)生一個低電平,這一低電平被傳送給緩存芯片,數(shù)據(jù)即被寫入緩存中并按照先入先出的規(guī)則進行保存。只有當(dāng)緩存引腳(FF)為高電平,(EF)為低電平時,AD轉(zhuǎn)換出來的數(shù)據(jù)才能被寫入[3]。
IDT72XX系列是IDT公司推出的先進先出(FIFO)存儲器芯片,它具有雙口輸入輸出,采集傳輸速度快和先進先出的特點,能滿足高速數(shù)據(jù)傳輸?shù)囊?SUP>[4]。
高速緩存IDT72041有這樣一個特點:當(dāng)緩存芯片被寫滿后,緩存芯片就不再接受外來的寫信號,同時緩存IDT72041的滿位FF變?yōu)榈?,同時會觸發(fā)單片機的外部中斷。單片機接收到中斷信號后運行片選程序,第二塊緩存開始讀入A/D轉(zhuǎn)換數(shù)據(jù)。以此類推,當(dāng)所有的緩存芯片中的數(shù)據(jù)被全部寫滿后,單片機經(jīng)運用程序傳輸緩存中的數(shù)據(jù)再進行處理。緩存中數(shù)據(jù)全部處理完后重新啟動A/D轉(zhuǎn)換,開始數(shù)據(jù)的采集。
為了保證數(shù)據(jù)采集的連續(xù)性和采集足夠的數(shù)據(jù),必須有較大的存儲空間來存放數(shù)據(jù),為此,本系統(tǒng)中將IDT72041芯片擴展了8片[5]。擴展中的第一個芯片用FL/RT端接地來表示,其它芯片的FL/RT端接高電平。且每個芯片的“XO”端必須接到下個芯片的“XI”端。并將每個芯片的 “EF”標(biāo)志相“或”以構(gòu)成新的空標(biāo)志,每個芯片的“FF”端也相“或”在一起構(gòu)成新的滿標(biāo)志。RT和HF在字深的擴展中不起作用。這里采用的方式是將8 塊芯片的“ FF”端分別接在單片機的P2口,由單片機來控制寫滿。
在設(shè)計中,當(dāng)IDT緩存芯片4K的存儲空間被寫滿,緩存的引腳“FF”為低,MAX114轉(zhuǎn)換的數(shù)據(jù)不能再寫入。同時FF向89C51發(fā)出中斷請求,單片機接收到中斷信號后,用P0口來實現(xiàn)與緩存芯片的數(shù)據(jù)傳送,然后由單片機對存儲于IDT72041中的數(shù)據(jù)進行初步處理。經(jīng)單片機P3.6口(WR)的片選,再將處理過的數(shù)據(jù)傳給DAC0832[6]。
在硬件電路中,單片機控制IDT72041和DAC0832,MAX114開始采樣時,要用到IDT72041中的D0~D7數(shù)據(jù)線、寫控制端口 WR;當(dāng)數(shù)據(jù)采樣結(jié)束,即數(shù)據(jù)已經(jīng)存儲到IDT72041中,單片機就要從IDT72041中讀取數(shù)據(jù),要用到Q0~Q7線,讀控制端口。在實際的運用中,通過QE腳和/DIR腳置不同的電平來解決信號串?dāng)_的問題。通過置QE腳不同的電平可以實現(xiàn)三態(tài)的功能,同時由/DIR腳來確定信號傳輸?shù)姆较颉?/P>
3系統(tǒng)軟件
3.1程序功能www.51kaifa.com
此程序的功能是實現(xiàn)AD芯片MAX114、緩存IDT72041之間的通信以及采樣頻率的控制,各功能分別用進程完成[6]。程序主體分為五個部分:單片機初始化及對外圍器件的設(shè)置、對緩存的全滿標(biāo)志位判斷以及該條指令的循環(huán)、對緩存的片選以及將緩存的數(shù)據(jù)傳給單片機寄存器A、對DAC的片選以及將暫存器的數(shù)據(jù)傳給DAC、判斷緩存是否為空以及跳轉(zhuǎn)。
3.2程序各部分的實現(xiàn)
第一部分是單片機的初始化及對外圍器件,主要是對IDT72041的設(shè)置,開始是對89C51的P0、P1和P2口所有的端口置1,接下來是P1.1清“0”,實現(xiàn)IDT72041的復(fù)位,對P1.1清“0”,實現(xiàn)對MAX114進行片選,指令如下:
START:SETB P0
SETB P1
SETB P2
CLR P1.0
CLR P1.1
第二部分主要是判斷緩存是否被寫滿。輸入的模擬信號進入該系統(tǒng),由放大電路先進行放大、整流,進入A/D(MAX114)進行轉(zhuǎn)換,由于A/D芯片的INT腳在每轉(zhuǎn)換結(jié)束一次將產(chǎn)生一個低電平,此低電平驅(qū)動緩存(IDT72041)進行寫入數(shù)據(jù),由于使用8片緩存,所以會出現(xiàn)數(shù)據(jù)先被寫入哪個緩存的問題,為了提高單片機處理效率,在硬件上將前一個芯片的XO端接下一個芯片的XI端,邏輯“1” 芯片的FL/RT接地,其它芯片的FL/RT接高電平,這樣就可以實現(xiàn)將8個緩存芯片組成一個存儲整體,這樣數(shù)據(jù)將從第一個芯片一直寫到最后一個芯片,8 個緩存的寫滿端“FF”被接在單片節(jié)的P2口,用來判斷每個緩存是否被寫滿。在硬件連接上,將8個緩存已經(jīng)組成了一個整體存儲體,所以在軟件方面,只需判斷P2.7是否為“0”來確定緩存是否被寫滿[7],即:
ST:JNB P2.7, ST
第三部分判斷緩存是否寫滿,如果寫滿就中止A/D轉(zhuǎn)換,已被轉(zhuǎn)換的數(shù)據(jù)將全部被存儲到緩存中,指令如下:www.51kaifa.com
SETB P1.1
第四部分對DAC的片選以及將暫存器的數(shù)據(jù)傳給DAC。將首地址存入DPTR數(shù)據(jù)指針寄存器,從緩存中順序讀取數(shù)據(jù)并存入外部RAM,經(jīng)由單片機初步處理后傳送到DAC。指令如下:
MCADTS:MOV DPTR, # 7000H
CLR P2.6
MOVX A,@DPTR
MOV DPTR, #5000H
CLR P2.0
MOVX @DPTR,A
第五部分判斷緩存是否為空,如果不為空將繼續(xù)讀取數(shù)據(jù),否則程序跳轉(zhuǎn)到初始位置,重復(fù)上述過程,實現(xiàn)對數(shù)據(jù)的不斷采集及還原。指令如下:
SA: JNB INT1, MCADTS
SJMP START
結(jié)語:
本文作者創(chuàng)新點為:
本系統(tǒng)運用簡單的MCS-51單片機來實現(xiàn)復(fù)雜的數(shù)據(jù)采集與還原電路。在操作過程中,將該應(yīng)用系統(tǒng)按其功能分成各個模塊,對電路進行焊接以及調(diào)試,并進行仿真測試。該系統(tǒng)設(shè)計方案電路簡單,可靠性好,實現(xiàn)了高速數(shù)據(jù)采集的目的。
參考文獻:
【1】 張振榮等,MCS-51單片機原理及實用技術(shù)[M],人民郵電出版社,1997.5
【2】 MAXIM.MAX114-MAX118[DB/OL]./upload/eWebUpload/200805/2008051509462072.pdf
【3】 李大慶, 段建民, 綦慧, 江存勝. 高速數(shù)據(jù)采集處理系統(tǒng)的設(shè)計和實現(xiàn)[J]. 微計算機信息 , 2006(20)
【4】 Integrated Device Technology. CMOS ASYNCHRONOUS FIFO WITH RETRANSMIT [DB/OL], www.idt.com, 1996(12)
【5】 陳國良,黃心漢. 一種數(shù)據(jù)采集與融合系統(tǒng)結(jié)構(gòu)及其實例[J], 高技術(shù)通訊,2005(07)www.51kaifa.com
【6】 王力,趙慶玲. 基于AT89S51和USB接口的實時數(shù)據(jù)采集系統(tǒng)設(shè)計[J]電子工程師 , 2006,(11) .
【7】 林焯華,蔣梁中,姚錫凡,王春寶.一個單片機串行數(shù)據(jù)采集及傳輸模塊的設(shè)計[J],微計算機信息,2006(29)
評論