基于ATmega128的無線數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
1 設(shè)計(jì)思想
數(shù)據(jù)采集單元采用先進(jìn)的ATmega128嵌入式單片機(jī)作為核心部件,利用RS-485通信接口與控制系統(tǒng)通信。測量站主要是將捕捉的現(xiàn)場信號經(jīng)轉(zhuǎn)換器ADC采樣、量化、編碼后,變成數(shù)字信號傳給微處理器,接收遙控指令并發(fā)送數(shù)據(jù);主控站的主要工作是發(fā)送遙控指令、接收數(shù)據(jù)信息、進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)管理。整個系統(tǒng)結(jié)構(gòu)簡單,可靠性高。見圖1。
1.1 高速的模數(shù)轉(zhuǎn)換芯片TLC5510
該系統(tǒng)的A/D轉(zhuǎn)換采用TLC5510模數(shù)轉(zhuǎn)換芯片。TLC5510模數(shù)轉(zhuǎn)換芯片是TI公司的8位A/D轉(zhuǎn)換器,是一款高速、低功耗且內(nèi)部帶有采樣保持電路。它的數(shù)據(jù)采集時序是當(dāng)CLK為高電平時轉(zhuǎn)換數(shù)據(jù),當(dāng)CLK為低電平時輸出有效數(shù)據(jù)。當(dāng)要從A/D中讀取數(shù)據(jù)時,只要500)this.style.width=500;" border="0" /> 保持低電平即可,當(dāng) 500)this.style.width=500;" border="0" />為高電平時D1-D8為高阻態(tài).見圖2.
1.2 數(shù)據(jù)采集系統(tǒng)的接口電路設(shè)計(jì)與流程
FIFO芯片SN74ACT7808是2048字節(jié)×9位可以實(shí)現(xiàn)先進(jìn)先出異步讀寫操作的雙端口存儲器.讀寫操作會自動訪問存儲器中連續(xù)的存儲單元。從FIFO中讀出的數(shù)據(jù)順序與寫入的順序相同,地址的順序在內(nèi)部已經(jīng)預(yù)先定義好了。對FIFO的讀寫操作只由讀寫信號控制,不需要另外的地址信息。這使得FIFO的控制電路變得十分簡單:讀數(shù)據(jù)時只要OE保持為高電平同時使UNCK產(chǎn)生一個上升沿;寫數(shù)據(jù)只要LDCK產(chǎn)生一個上升沿即可.
由于是高速數(shù)據(jù)采集,單片機(jī)相對A/D來說速度遠(yuǎn)遠(yuǎn)不夠,所以需要設(shè)計(jì)一個電路讓數(shù)據(jù)采集與存儲自動完成,見圖2。單片機(jī)的PB0引腳通過與門與外部CLK時鐘相連,這樣單片機(jī)就可以控制A/D的采樣。當(dāng)PB0為高電平時進(jìn)行采樣,當(dāng)PB0引腳為低電平時A/D的CLK沒有脈沖,采樣停止。當(dāng)FIFO保存的數(shù)據(jù)幾乎滿后給單片機(jī)一個中斷信號,單片機(jī)接到中斷信號后置PB0為低電平停止采樣,然后把數(shù)據(jù)從FIFO中讀出。因?yàn)閱纹瑱C(jī)的PG0引腳經(jīng)反向器后接到FIFO的UNCK,PC4腳接到FIFO的OE,它的有效地址只要保持PC4引腳為高電平即可。數(shù)據(jù)處理完畢后再接著采樣,如此反復(fù),完成周期性采樣[2]。
2 嵌入式單片機(jī)ATmega128與數(shù)傳電臺的串行通信
ATmega128為基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS微處理器。ATmega128的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。8通道10位ADC(具有可選的可編程增益)、具有片內(nèi)振蕩器的可編程看門狗定時器、SPI串行端口、異步串行口與JTAG測試接口(此接口同時還可以用于片上調(diào)試),以及六種可以通過軟件選擇的省電模式。
2.1 ATmega128的串行通信方式
串行通信波特率:9600bps,發(fā)送接收方式:一位起始位,8位數(shù)據(jù)位,奇校驗(yàn),1位停止位。UARTO初始化可以在ICC AVR中設(shè)置完成,而且Builder自動生成中斷服務(wù)子程序和人口地址,只需在服務(wù)子程序中加人處理代碼即可。
//UARTO initialisation
//desired baud rate:9600
//char size:8bit
//parity: Disabled
void uart0_init(void)
{
UCSR0A=0x00;
UCSR0B=0x98; //接收完成中斷允許,發(fā)送數(shù)據(jù)允許.
UCSR0C=0x06; //發(fā)送接收的字符長度為8位.
UBRR0H=0x00;
}
接收數(shù)據(jù)時,單片機(jī)設(shè)置一個標(biāo)志,假設(shè)接收到第一個“*”字符,標(biāo)志置1,認(rèn)為通信正常,可以接收數(shù)據(jù)。接收數(shù)據(jù)時,判斷是否收到接收完成消息;是,則清除標(biāo)志,使得下次收到的數(shù)據(jù)無效,直到再次收到“*”,標(biāo)志置1。標(biāo)志為1時,判斷是否收到消息(字符值等于8);是,將上次收到字符清為0;不是則將接收到的數(shù)據(jù)保存到接收緩沖區(qū)中。執(zhí)行操作后,最后將接收到的字符發(fā)回給計(jì)算機(jī)。單片機(jī)通信流程圖見圖3。[!--empirenews.page--]
2.2 ATmega128與數(shù)傳電臺的硬件連接
數(shù)傳電臺與單片機(jī)、終端主控機(jī)的通信協(xié)議:標(biāo)準(zhǔn)串行RS485接口,通信幀格式——1位起始位,8位數(shù)據(jù)位,1位可編程數(shù)據(jù)位,1位停止位,波特率9600bps。建議使用窄帶無線數(shù)傳電臺MDS SCADA,專門用于電力自動化中。此電臺采用工業(yè)級鑄鋁封裝,可提升電磁干擾,繞射能力強(qiáng),提供標(biāo)準(zhǔn)的RS-485接口,系統(tǒng)響應(yīng)快。
系統(tǒng)采用異步串行通信方式。利用單片機(jī)串口與數(shù)字電臺RS-485數(shù)據(jù)口相連,電臺常態(tài)為收狀態(tài)(PPT=0,收狀態(tài);PPT=1,發(fā)狀態(tài))。單片機(jī)通過帶控制端的三態(tài)緩沖門74HC125、非門74HC14控制電臺的收發(fā)轉(zhuǎn)換。接收時,PC1=1,PC1經(jīng)74HC14反相、光電隔離,使電臺PPT腳為低電平,將其置為接收狀態(tài);發(fā)射時,PC1=0,經(jīng)74HC14反相、光電隔離,使電臺PPT腳為高電平,將其置為發(fā)射狀態(tài);同時74HC125A截止,74HC125B導(dǎo)通,數(shù)據(jù)由單片機(jī)TXD腳輸出,經(jīng)74HC125B緩沖門、光電隔離、MAX232電平變換,通過電臺TXD端口將數(shù)據(jù)發(fā)送出去。具體硬件連接見圖4。
3 結(jié)束語
國家的農(nóng)網(wǎng)改造,使配電網(wǎng)絡(luò)的供電能力得到了很大的提高.但隨著社會經(jīng)濟(jì)的發(fā)展,對電力部門又提出了更高的要求.結(jié)合電網(wǎng)的實(shí)際情況,對于實(shí)時性、配電質(zhì)量要求教高的地區(qū),無線數(shù)據(jù)傳輸系統(tǒng)建成使用后,運(yùn)行結(jié)果表明:系統(tǒng)工作穩(wěn)定可靠,本系統(tǒng)與有線網(wǎng)相比,具有建網(wǎng)費(fèi)用低、建設(shè)周期短、維護(hù)量小、抗災(zāi)能力強(qiáng)、無需查線檢修、數(shù)據(jù)易傳等優(yōu)點(diǎn)。由于在該數(shù)據(jù)采集系統(tǒng)中采用了ATmega128,其開發(fā)速度較以往有很大的提高,這種高效靈活的嵌入式正廣泛應(yīng)用于工業(yè)控制領(lǐng)域,有著廣闊的前景。
4 本文作者創(chuàng)新點(diǎn):1.本系統(tǒng)采用了多種先進(jìn)技術(shù),高性能單片機(jī)系統(tǒng)技術(shù)、無線傳輸技術(shù)、計(jì)算機(jī)的遠(yuǎn)程控制技術(shù)等。2.本系統(tǒng)具有自動化程度高、系統(tǒng)可靠性和穩(wěn)定性好、數(shù)據(jù)采集精度高等比較突出的優(yōu)點(diǎn)。3.由于本系統(tǒng)和上位計(jì)算機(jī)系統(tǒng)可以方便地進(jìn)行通訊和數(shù)據(jù)傳送,可以把檢測記錄的數(shù)據(jù)保存在計(jì)算機(jī)的數(shù)據(jù)庫內(nèi),有助于實(shí)現(xiàn)電力調(diào)度的網(wǎng)絡(luò)化、數(shù)字化和信息化。