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