基于C8051F000的多通道數據采集范圍控制系統
介紹了利用Cygnal公司的C8051F000單片機可編程窗口檢測器,進(jìn)行多通道數據采集范圍控制的硬件組成和軟件設計方法。
關(guān)鍵詞:C8051F000單片機,窗口檢測器,數據采集,范圍控制
1 引 言
在實(shí)際應用中,對被控對象的物理參數(溫度、濕度、位移、電流、電壓等)在一定的范圍內進(jìn)行控制,是單片機的典型應用之一。很多宏觀(guān)要求精確控制的場(chǎng)合,其微觀(guān)控制過(guò)程,仍可歸結為是對某些參數變化范圍的控制。如,傳統的三相異步電機從啟動(dòng)到正常運行,其電流、電壓和溫度的變化;抽水塔水位的變化;機床刀具的行程變化及數字電表的自動(dòng)量程變換等。這些控制過(guò)程最顯著(zhù)的特點(diǎn)是:被控物理量都是一個(gè)變化范圍,而非某一個(gè)精確的“點(diǎn)”。有效控制物理量變化范圍的方法很多,本文重點(diǎn)介紹利用C8051F000單片機片內8路高性能的12位ADC數據采集系統和可編程窗口檢測器,實(shí)現對多路參數變化范圍控制的硬件組成和軟件設計方法。
2 C8051Fxxx系列單片機介紹
美國Cygnal公司是專(zhuān)業(yè)從事混合信號片上系統單片機設計與制造的一家新興半導體公司。C8051Fxxx系列是該公司以擁有自主產(chǎn)權并與MCS-51內核及指令集完全兼容的CIP-51為內核而集成的混合信號片上系統(System on Chip)。片內集成了數據采集和控制系統中常用的模擬部件,并能方便地通過(guò)數字交叉開(kāi)關(guān)將內部數字系統資源定向到外部I/O口上。它的特點(diǎn)是:高達25 MIPS的執行速度,強大的模擬信號處理和資源控制功能;8路高性能的12位ADC(最大轉換速率為100 kSPS)數據采集系統,兩路12位精度DAC,兩路模擬比較器和ADC可編程窗口檢測器;8K~128K字節閃速/電可擦除程序存儲器、256~8 448 bit的RAM;覆蓋了典型的串行通信接口,22個(gè)中斷源,7個(gè)復位源;先進(jìn)的JTAG非侵入式在線(xiàn)調試和看門(mén)狗、電源監視等可靠的安全機制。該產(chǎn)品匯集了單片機領(lǐng)域許多先進(jìn)技術(shù),成為目前功能最強大的8位單片機之一。

3 硬件電路組成及原理
電路硬件組成如圖1所示,分成數據采集、按鍵控制和顯示輸出三大部分。C8051Fxxx系列的8路模擬量采集通道,通過(guò)選擇不同功能的傳感器或電量轉換裝置(如電流、電壓互感器、集成溫度傳感器等),就能完成對被測目標系統多路參數的數據采集。工作時(shí),系統不斷將各通道采集來(lái)的數據與用戶(hù)事先設定的上下限極值進(jìn)行比較,系統執行機構根據比較結果,確定是否越限而作出相應的操作。系統為5位LED顯示,低4位用來(lái)顯示用戶(hù)所選定通道的模擬信號大小或上下限極值設置數據,最高位LED4為通道數字(0~7)顯示位。P0.0~P0.7為各通道越限處理輸出,分別控制相應的執行機構。
3.1 按鍵控制功能
這是整個(gè)系統最復雜、但也最能體現設計思想的一部分。為了方便地選擇通道及顯示設置數據,以盡量少的按鍵完成盡可能多的功能,實(shí)現較好的人機界面和軟、硬件資源的有機結合,在此設置了選擇通道的“切換”鍵S1、進(jìn)行ADC窗口檢測器上下限極值設定的“設置”鍵S5、改變LED顯示數據的“+”、“-”鍵S3、S4,并要求它每按一次使顯示值加(減)1,如果連續按鍵超過(guò)一定時(shí)間(如2s),則顯示值將很快地遞增或遞減。用戶(hù)設置完畢,按下“存儲”鍵S2,可將所設數據保存在非易失性數據存儲器FLASH中,避免由于斷電而需重新設置數據。通過(guò)軟件設計完成數據的自我備份與保護,不需要另置備用電池,簡(jiǎn)化了硬件結構。
3.2 ADC的工作方式及窗口檢測器
C8051F000片內ADC子系統內除集成了1個(gè)多通道模擬輸入選擇器(AMUX)、可編程增益放大器(PGA)和1個(gè)100 kSPS、12位分辨率的逐次逼近型ADC外,還集成了跟蹤保持電路和可編程窗口檢測器,它們完全由CIP-51通過(guò)特殊功能寄存器控制。
ADC0CN寄存器:控制轉換啟動(dòng)方式和結果數據存放方式,設置ADC轉換結束和窗口檢測器中斷標志等。A/D轉換允許用軟件事件、硬件信號觸發(fā)轉換或進(jìn)行連續轉換,每次轉換完成后產(chǎn)生一個(gè)中斷,或者用軟件查詢(xún)來(lái)判斷轉換是否結束,完成后數據字被鎖存在指定的寄存器中。
AMXOSL、AMXOCF寄存器:ADC通道選擇。當AMXOCF=00H時(shí),AMXOSL從00H~07H分別表示選擇AIN0~AIN7八個(gè)模擬輸入通道。
ADC0GTH、ADC0GTL寄存器:這兩個(gè)存貯單元是ADC可編程窗口檢測器供用戶(hù)設定的上限12位數據寄存器。ADC0GTH是高4位,ADC0GTL為低8位。
ADC0LTH、ADC0LTL寄存器:ADC可編程窗口檢測器供用戶(hù)設定的下限12位數據寄存器。
4 軟件設計
為便于以后的升級和維護,軟件設計采用積木式模塊化處理,各功能模塊既相互聯(lián)系,又能自成一體。其基本設計思想是:利用定時(shí)/計數器T3的溢出,定時(shí)地啟動(dòng)ADC轉換和窗口比較器中斷。通過(guò)中斷處理,將相應通道的12位轉換數據與由用戶(hù)設定的上下限極值作為越限條件進(jìn)行比較,產(chǎn)生新的中斷輸出,驅使系統執行機構進(jìn)行相應的調整,從而達到把數據控制在某一范圍內的目的。
主程序由初始化、顯示、定時(shí)比較、按鍵處理等軟件功能模塊組成。圖2為主程序流程框圖。圖3為中斷處理子程序。這里只給出主程序清單,所有被調用的子程序略。

評論