周 超
(長(zhǎng)春職工大學(xué),吉林長(zhǎng)春 130051)
STC單片機(jī)在高速數(shù)據(jù)采集和控制系統(tǒng)中的應(yīng)用
周 超
(長(zhǎng)春職工大學(xué),吉林長(zhǎng)春 130051)
本文介紹了數(shù)據(jù)采集和控制系統(tǒng)的設(shè)計(jì),根據(jù)測(cè)試要求不斷的提高,利用STC10F08單片機(jī)和雙口緩沖接口芯片CH421設(shè)計(jì)出高速數(shù)據(jù)控制采集系統(tǒng),并從實(shí)際應(yīng)用的要求和性能指標(biāo)來(lái)設(shè)計(jì)出相關(guān)的硬件和軟件,詳細(xì)地闡述了硬件設(shè)計(jì)的思路和達(dá)到的結(jié)果。
STC10F08單片機(jī);雙口數(shù)據(jù)緩沖芯片CH421;數(shù)據(jù)采集;AD7705
在現(xiàn)代的工業(yè)生產(chǎn)的控制過(guò)程中,需要很多數(shù)據(jù)的實(shí)時(shí)采集、分析、處理及保存,用來(lái)指導(dǎo)產(chǎn)品的配料和配方的調(diào)整,使產(chǎn)品得到及時(shí)的控制和質(zhì)量的保證。一般地,要用機(jī)電一體化的設(shè)備進(jìn)行控制,如各種材料試驗(yàn)機(jī)、生產(chǎn)的流水線等。采用實(shí)時(shí)的方法對(duì)數(shù)據(jù)的采集處理有較高的要求。筆者設(shè)計(jì)了一種高速的數(shù)據(jù)采集和控制系統(tǒng),該系統(tǒng)采用多個(gè)單片機(jī)和雙口緩沖RAM的方法,利用高精度的AD轉(zhuǎn)換器,使數(shù)據(jù)能夠快速地采集、分析、處理,并及時(shí)對(duì)所控制的設(shè)備進(jìn)行調(diào)正,滿足生產(chǎn)上的要求。
數(shù)據(jù)采集和控制系統(tǒng)由于采用了單片機(jī)技術(shù)、貼片的元器件等手段,減小了體積,提高了速度,使用方便,測(cè)量準(zhǔn)確,功耗低,可靠耐用。經(jīng)過(guò)多年的實(shí)際使用,受到用戶(hù)的好評(píng)。
(1)采用Σ-Δ轉(zhuǎn)換技術(shù)的16位的AD轉(zhuǎn)換器,采集多路信號(hào)。
(3)測(cè)量的數(shù)據(jù)可全量程不分檔,并任意標(biāo)定。
(4)通過(guò)雙口數(shù)據(jù)緩沖芯片CH421可以與復(fù)雜的網(wǎng)絡(luò)、PC機(jī)、USB提供人機(jī)交互接口。
(5)可通過(guò)產(chǎn)生PWN信號(hào)或電壓能控制伺服電機(jī)等設(shè)備。
(6)可對(duì)脈沖信號(hào)采集并分析處理。
(7)能夠與PC機(jī)進(jìn)行數(shù)據(jù)通訊,按PC機(jī)的指令操作,以完成數(shù)據(jù)采集和控制的全過(guò)程。整體功能框圖如圖1。
根據(jù)系統(tǒng)的要求,本系統(tǒng)中配接二片單片機(jī)和一片雙口緩沖芯片CH421、AD轉(zhuǎn)換器AD7705、前置放大器AD625、1014彩色液晶屏等。下面分別說(shuō)明一下各部件的功能和實(shí)現(xiàn)的作用。
此款單片機(jī),集成的混合信號(hào)片上系統(tǒng) (Soc)是有與MCS51的內(nèi)核及指令集完全兼容的微處理器。主要性能為:(1)高速度,單時(shí)鐘/機(jī)器周期的單片機(jī),比傳統(tǒng)的單片機(jī)快10至12倍;(2)內(nèi)部集成高可靠復(fù)位電路,適合高速通信,智能控制,強(qiáng)干擾場(chǎng)合;(3)具有最大64K B可在線編程的Flash存儲(chǔ)器;(4)具有片內(nèi)數(shù)據(jù)存儲(chǔ)器;(5)具有P0、P1、P2、P3、P45個(gè)I/0接口;(6)2個(gè)通用16位計(jì)數(shù)器/定時(shí)器;(7)5個(gè)捕捉/比較模塊的可編程計(jì)數(shù)器/定時(shí)器;(8)可尋址64K B地址空間的外部數(shù)據(jù)存儲(chǔ)器接口;(9)片上看門(mén)狗定時(shí)器、Vdd監(jiān)視器和溫度傳感器;(10)該單片機(jī)的溫度范圍 (-45至-85),工作電壓5至316V。端口I/O,/RST,都容許5V輸入信號(hào)電壓,是44引腳TQFP封裝的芯片。
本系統(tǒng)中共用2只STC10F08單片機(jī)。其中一只單片機(jī)用來(lái)做主控單片機(jī),主要負(fù)責(zé)數(shù)據(jù)采集的任務(wù),包括與AD轉(zhuǎn)換器連接、處理輸入的脈沖信號(hào)、提供各種信號(hào),及時(shí)把信號(hào)傳送給CH421雙口RAM,也能及時(shí)讀出上位機(jī)發(fā)出的命令并加以執(zhí)行,用串口連接彩色液晶屏,能接受觸摸屏的信號(hào)并加以處理執(zhí)行;另一只單片機(jī)作為輔助單片機(jī),用來(lái)產(chǎn)生PWN和電壓信號(hào)能控制伺服電機(jī)等設(shè)備,還要負(fù)責(zé)處理復(fù)雜的網(wǎng)絡(luò)通訊協(xié)議,與上位機(jī)進(jìn)行接口聯(lián)系并執(zhí)行上位機(jī)的命令。這種結(jié)構(gòu)才能保證高速的目的。
為了能夠達(dá)到采集數(shù)據(jù)的數(shù)量和速度,本設(shè)計(jì)采用多個(gè)單片機(jī)來(lái)完成信號(hào)的采集,并在單片機(jī)之間用雙口RAM CH421進(jìn)行連接。用這種方式可以把串口的信號(hào)轉(zhuǎn)換成并口的信號(hào)進(jìn)行傳輸大大的提高了速度,滿足了系統(tǒng)的要求。
圖1 數(shù)據(jù)采集和控制系統(tǒng)功能框圖
這是一個(gè)提供雙向緩沖的接口芯片。CH421有X和兩個(gè)8位被動(dòng)并行端口,通過(guò)共享66個(gè)字節(jié)的雙端口數(shù)據(jù)緩沖區(qū),實(shí)現(xiàn)X端與Y端之間的單片機(jī)進(jìn)行雙向異步數(shù)據(jù)交換。引腳框圖見(jiàn)圖2。
圖2 雙口緩沖器CH421引腳圖
CH421的主要特點(diǎn):(1)通用的8位雙向數(shù)據(jù)總線,可以直接到單片機(jī)的系統(tǒng)總線上;(2)可以提供共享的66字節(jié)的數(shù)據(jù)緩沖區(qū);(3)分別為X端和Y端一個(gè)字節(jié)的單向緩沖區(qū),即一端寫(xiě)可兩端讀;(4)低電平有效的通用并行接口控制信號(hào):片選控制線,讀選通線,寫(xiě)選通線;(5)只占用兩個(gè)地址位:索引地址口,讀寫(xiě)數(shù)據(jù)口后內(nèi)部索引地址自動(dòng)遞增;(6)提供兩端軟件可控制的中斷輸出引腳INT#,低電平有效;(7)最大傳輸速度不低于每秒7M字節(jié)。
CH421的工作原理:CH421內(nèi)置了一個(gè)雙口SRAM存儲(chǔ)器,具有兩套地址線,兩套雙向數(shù)據(jù)線,以及兩套讀寫(xiě)控制線,分別連到X端和Y端,共有66個(gè)字節(jié),地址范圍是00H~41H。X端連接一只單片機(jī),Y端連接另一只單片機(jī)。從Y端寫(xiě)入的數(shù)據(jù),在X端可以讀出,這樣就實(shí)現(xiàn)了兩只單片機(jī)的數(shù)據(jù)交換,只有用并行的方式才能保證速度。
CH421還在X端和Y端各有一個(gè)字節(jié)的單向緩沖器,是一端寫(xiě)入兩端可讀的。X端可寫(xiě)的地址是42H,Y端可寫(xiě)的地址是43H。CH421的INT#引腳是軟件可控的中斷請(qǐng)求輸出,當(dāng)單向緩沖器位7被置1時(shí)就會(huì)使INT#引腳輸出低電平。在實(shí)際應(yīng)用中還是采用中斷的方式傳遞數(shù)據(jù)最可靠,而且當(dāng)我們寫(xiě)完一組數(shù)據(jù)后,發(fā)出中斷信號(hào),另一端響應(yīng)馬上讀出。
CH421外部只有一根地址線XA0或者Y A0,為0指向索引口,為1指向數(shù)據(jù)口。
CH421的Y端速度比較快,X端速度較慢,并且Y端比X端的優(yōu)先級(jí)高。
與單片機(jī)連接見(jiàn)圖3。
圖3 單片機(jī)連接雙口緩沖器的原理圖
由圖3可以看出,CH421把兩只單片機(jī)連接起來(lái)了,其中雙方只用了數(shù)據(jù)總線、讀寫(xiě)信號(hào)、片選信號(hào)、A0信號(hào)。這些都是單片機(jī)的基本信號(hào),硬件電路并不復(fù)雜,但卻提高了速度。接單片機(jī)的時(shí)鐘為1110592MHZ,那么一個(gè)機(jī)器周期=1/11059200=0109us。單片機(jī)寫(xiě)入一個(gè)字節(jié)大約用4個(gè)周期,也就是用0136us的時(shí)間,假如我們一次寫(xiě)入的數(shù)據(jù)100個(gè)字節(jié),總共用時(shí)約36us,那么傳送的速率為27777/s,見(jiàn)表1。
表1 CH421并口I/O操作的真值表
AD7705是美國(guó)AD公司推出的16位Σ-ΔA/D轉(zhuǎn)換器。器件包括由緩沖器和增益可編程放大器 (PG A)組成的前端模擬調(diào)節(jié)電路、Σ-Δ調(diào)制器、可編程數(shù)字濾波器等部件。內(nèi)部有增益可編程放大器AD7705包括兩個(gè)全差分模擬輸入通道。片內(nèi)的增益可編程放大器PG A可選擇1、2、4、8、16、32、64、128八種增益之一,能將不同幅度的各類(lèi)輸入信號(hào)放大到接近A/D轉(zhuǎn)換器的滿標(biāo)度電壓再進(jìn)行A/D轉(zhuǎn)換,這樣有利于提高轉(zhuǎn)換質(zhì)量。當(dāng)電源電壓為5V,基準(zhǔn)電壓為215V時(shí),器件可直接接受從0~20mV至0~215V幅度范圍的單極性信號(hào)和從0~±20mV至0~±215V范圍的雙極性信號(hào)。輸入的模擬信號(hào)被A/D轉(zhuǎn)換器連續(xù)采樣,采樣頻率fS由主時(shí)鐘頻率fCLK和選定的增益決定。
數(shù)字接口AD7705的串行數(shù)據(jù)接口包括5個(gè)接口,其中片選輸入CS、串行時(shí)鐘輸入SCLK、數(shù)據(jù)輸入DIN、轉(zhuǎn)換數(shù)據(jù)輸出口DOUT用于傳輸數(shù)據(jù),狀態(tài)信號(hào)輸出口用于指示什么時(shí)候輸出數(shù)據(jù)寄存器的數(shù)據(jù)準(zhǔn)備就緒。當(dāng)DRDY為低電平時(shí),轉(zhuǎn)換數(shù)據(jù)可用;當(dāng)DRDY為高電平時(shí),輸出寄存器正在更新數(shù)據(jù),不能讀取數(shù)據(jù)。器件的A/D轉(zhuǎn)換過(guò)程是按設(shè)定的數(shù)據(jù)輸出更新速率連續(xù)進(jìn)行的。任何操作都需要對(duì)相應(yīng)片內(nèi)寄存器送入新的編程指令。
片內(nèi)寄存器AD7705包括8個(gè)寄存器,均通過(guò)器件串行口訪問(wèn)。
由上所述采用AD7705轉(zhuǎn)換器能夠滿足設(shè)計(jì)的要求,在實(shí)踐中證明效果也是很好的。以下是單片機(jī)連接AD轉(zhuǎn)換器見(jiàn)圖4。
圖4 單片機(jī)連接AD轉(zhuǎn)換器
采用美國(guó)Analog Device公司生產(chǎn)的儀表放大器AD620。前置放大器采用差分輸入,提高阻抗抑制共模噪聲。為了保證兩端信號(hào)保持平衡在兩路輸出信號(hào)加上低通濾波器,由于A/D轉(zhuǎn)換器的模擬信號(hào)輸入電壓是0~215V的信號(hào),所以前置放大器AD620將20mv的信號(hào)放大至215V,放大倍數(shù)約為125倍左右。AD620的增益計(jì)算方法為:G=(4914KΩ/Rg)+1,Rg=4914KΩ/(G-1)=4914KΩ/(125-1),Rg約等于398Ω。見(jiàn)圖5。
具有這樣的前置放大器就可以配接多種橋式測(cè)量傳感器,滿足現(xiàn)場(chǎng)的要求。
一般的控制系統(tǒng)中,都需要和伺服電機(jī)進(jìn)行配接。目前大都采用數(shù)字輸出信號(hào)控制電機(jī)的轉(zhuǎn)動(dòng)。筆者采用控制頻率方式。實(shí)踐證明用頻率的方式電機(jī)旋轉(zhuǎn)穩(wěn)定,沒(méi)有漂移。用STC10F08的定時(shí)器2產(chǎn)生精確的頻率,來(lái)控制電機(jī)的旋轉(zhuǎn)。所產(chǎn)生的頻率由下式確定:Fcexn=SYScLK/(23((65536-(RCAP2h,RCAP2L))),式中SYScLK是單片機(jī)的時(shí)鐘頻率。通過(guò)改變RCAP2HRCAP2L的數(shù)值,就可以改變輸出頻率,并改變速度。有脈沖后,再加一個(gè)控制方向的電平,當(dāng)高電平時(shí)左轉(zhuǎn),低電平時(shí)右轉(zhuǎn)。
(1)要使用STC10F08的看門(mén)狗功能。
(2)電源要加上抗干擾濾波器。經(jīng)過(guò)穩(wěn)壓模塊將各個(gè)電源分開(kāi),并分開(kāi)接地。減少交叉耦合。
圖5 前置放大器原理圖
(3)與外設(shè)系統(tǒng)的連接加上光電耦合器件。
(4)所有的屏蔽線要就近接地。
實(shí)踐證明,采取上述措施大大減少了干擾,使數(shù)據(jù)采集和控制系統(tǒng)穩(wěn)定地運(yùn)行。
在已有硬件基礎(chǔ)上,筆者采用C++語(yǔ)言進(jìn)行編程設(shè)計(jì)。軟件采用模塊化的方式來(lái)設(shè)計(jì),這樣有利于調(diào)整和修改。下面介紹幾個(gè)主要的模塊。
因?yàn)椴捎玫氖荢TC10F08單片機(jī)和CH421、AD7705轉(zhuǎn)換器,加電以后對(duì)系統(tǒng)要進(jìn)行初始化,讀參數(shù)等操作根據(jù)要求做如下配置:(1)配置看門(mén)狗:系統(tǒng)采用的時(shí)鐘是1110592MHZ,看門(mén)狗溢出時(shí)間= (123Proscale332768)/11059200,溢出時(shí)間為7111ms。程序運(yùn)行周期最長(zhǎng)不過(guò)30ms左右,在30ms時(shí)間內(nèi)可以喂一次狗??梢员WC程序正常運(yùn)行。(2)配置AD7705轉(zhuǎn)換器的初始化。(3)讀取EEPROM 24C64存儲(chǔ)器里面設(shè)定過(guò)的參數(shù)。(4)把彩色液晶屏顯示主畫(huà)面。
圖6 主函數(shù)流程圖
因篇幅有限,源程序不能全部寫(xiě)出。本高速數(shù)據(jù)采集和控制系統(tǒng)完全按照工業(yè)要求設(shè)計(jì),由于采用高速的AD轉(zhuǎn)換器和雙口緩沖器RAM實(shí)現(xiàn)了高速,高精度,大大提高了系統(tǒng)的數(shù)據(jù)吞吐量,滿足用戶(hù)的需求。通過(guò)設(shè)置不同的參數(shù)可以應(yīng)用在各種場(chǎng)合。
以上開(kāi)發(fā)設(shè)計(jì)的高速數(shù)據(jù)采集和控制系統(tǒng),經(jīng)過(guò)多年的應(yīng)用取得較好的效果??刂旗`活方便,數(shù)據(jù)準(zhǔn)確,彩色液晶觸摸屏實(shí)現(xiàn)方便的人機(jī)對(duì)話,用戶(hù)操作簡(jiǎn)單方便。由于體積小,功耗低,能長(zhǎng)時(shí)間穩(wěn)定工作,特別是有的試驗(yàn)要做幾百個(gè)小時(shí)仍能正常工作,可靠性很高?,F(xiàn)已為大專(zhuān)院校、科研院所、企事業(yè)單位及相關(guān)生產(chǎn)行業(yè)提供了精度高、性能穩(wěn)定可靠的高端測(cè)控儀器,既創(chuàng)造了較好的經(jīng)濟(jì)效益,又收到了較高的社會(huì)效益。
[1]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1997.
[2]蘇長(zhǎng)齡,劉威.C語(yǔ)言程序設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2006.
[3]王新賢.通用集成電路速查手冊(cè)[M].濟(jì)南:山東科學(xué)技術(shù)出版社,2003.
[4]許錦峰,陳炳全.雙通道邏輯控制高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(11).
[5]崔建華,孫紅勝,王保進(jìn).硬件實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)應(yīng)用,2008(5).
[6]張興會(huì),趙杰.智能數(shù)據(jù)采集系統(tǒng)的研究[J].儀器儀表學(xué)報(bào),2001,22(4).
The Application of STC-based Singlechip in High-speed Data Acquisition and Control System
ZHOU Chao
(Changchun Staff University,Changchun 130051,China)
In this paper.we describe the design of data acquisition and control system.According to the continuous increase of test requirements.we can design the high-speed data acquisition system by using the present STC10F08 singlechip and dual-port buffer interface chip CH421.From the practical application of the requirements and performance indicators.we can design the relevant hardwares and softwares.We explain the thought and result of the design of relevant hardwares de2 tailedly.
STC10F08 singlechip;dual-port buffer interface chip CH421;data acquisition;AD7705
TP273
A
1008-178X(2011)02-0061-06
2010-02-19
周 超 (1952-),吉林長(zhǎng)春人,長(zhǎng)春職工大學(xué)講師,從事數(shù)據(jù)庫(kù)及單片機(jī)研究。