無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:在工業(yè)控制領(lǐng)域,常常需要采集大量的現(xiàn)場(chǎng)數(shù)據(jù),然后傳輸給主機(jī)進(jìn)行處理。而目前數(shù)據(jù)傳輸通常使用的是RS485或者是CAN等網(wǎng)絡(luò)。這些網(wǎng)絡(luò)均基于有線傳輸,他們?cè)谑褂弥胁粌H要考慮成本因素,還要考慮數(shù)據(jù)傳輸中的干擾因素。而無(wú)線傳輸相對(duì)具有一定的優(yōu)勢(shì),成本相對(duì)低,并且傳輸中的干擾也較少,這也在一定程度上提高了傳輸?shù)目煽啃?。設(shè)計(jì)了一個(gè)基于PTR2000無(wú)線傳輸模塊的數(shù)據(jù)采集系統(tǒng)。該實(shí)例對(duì)其他相類似的無(wú)線數(shù)據(jù)采集、無(wú)線數(shù)據(jù)傳輸應(yīng)用具有一定的參考價(jià)值。
1 引 言
在工業(yè)控制現(xiàn)場(chǎng),常常需要采集大量的現(xiàn)場(chǎng)數(shù)據(jù),如電壓、電流、溫度、濕度、氣壓等,并將這些數(shù)據(jù)采集模塊采集的數(shù)據(jù)傳輸?shù)街鳈C(jī)進(jìn)行處理,由主機(jī)根據(jù)處理的結(jié)果,將控制信號(hào)傳輸給現(xiàn)場(chǎng)執(zhí)行模塊進(jìn)行各種操作。目前數(shù)據(jù)的傳輸基本是基于有線的網(wǎng)絡(luò),如RS485,CAN等。這些有線的網(wǎng)絡(luò)一般具有成本比較高、維護(hù)不方便等缺點(diǎn)。而無(wú)線傳輸相對(duì)具有一定的優(yōu)勢(shì),如成本低、可靠性高、維護(hù)方便等。本文介紹一個(gè)基于PTR2000無(wú)線數(shù)據(jù)采集系統(tǒng)。通過(guò)本系統(tǒng),不僅能了解數(shù)據(jù)采集的一般過(guò)程以及一般數(shù)據(jù)采集系統(tǒng)的構(gòu)成,還能了解PTR2000模塊、ADUC812單片機(jī)、USB100模塊的功能。該系統(tǒng)最高傳輸速度可達(dá)19.2 kb/s。
2 系統(tǒng)原理
該系統(tǒng)由工控機(jī)、USB100、AT89C51單片機(jī)、PTR2000(2塊)、ADUC812單片機(jī)構(gòu)成。
2.1 ADUC812高性能單片機(jī) ADUC812,pdf datasheet (with Embedded Flash MCU)
Anolog Device公司的ADUC812高性能單片機(jī)由與 8051兼容的內(nèi)核[1]、片內(nèi)外圍設(shè)備、電源單元和模擬單元組成。8051兼容的內(nèi)核額定的工作頻率是12 MHz(最大可達(dá)16 MHz),3個(gè)16 b定時(shí)計(jì)數(shù)器,功能包括看門(mén)狗定時(shí)器、電源監(jiān)視PSM、高速ADC以及DMA控制器。片內(nèi)有8 kB的閃速/電可擦除程序存儲(chǔ)器,640 B的閃速/電可擦除數(shù)據(jù)存儲(chǔ)器和256 B的片內(nèi)數(shù)據(jù)RAM,支持16 MB的外部數(shù)據(jù)存儲(chǔ)空間和64 kB的外部數(shù)據(jù)尋址空間,為多處理器接口和I/O擴(kuò)展提供了32條可編程的I/O口線,端口3有高電流驅(qū)動(dòng)能力,同時(shí)具有標(biāo)準(zhǔn)的UART接口和可配置的I2 C端口或SPI端口。模擬單元包括8通道、高速(200 kb/s)自校準(zhǔn)12 b ADC、片內(nèi)4OPPM/C電壓基準(zhǔn)、2個(gè)電壓輸出DAC和片內(nèi)溫度傳感器等,可構(gòu)成一個(gè)強(qiáng)大的12 b數(shù)據(jù)采集系統(tǒng)。
2.2 USB100通用串行總線協(xié)議模塊
USB100是基于ASIC設(shè)計(jì)的,內(nèi)部封裝了USB1.1全部協(xié)議以及多達(dá)384 B的發(fā)送緩沖區(qū)和128 B的接收緩沖接口,對(duì)USB接口的操作如同對(duì)外部存儲(chǔ)器操作一樣方便,由USB100模塊完成全部協(xié)議的轉(zhuǎn)換和封裝,使開(kāi)發(fā) 過(guò)程變得十分簡(jiǎn)單。
各管腳說(shuō)明如下:
P1~P9,P16,NC:空腳。
P10,VCC:輸出,+5 V輸出,提供給外部MCU使用,最大400 mA。
P11,USBVCC:輸入,USB接口的電源腳。P12~P13,D+,D-:輸入/輸出,USB數(shù)據(jù)線。P14~P15,GND:電源地。
P17,RXE:輸出,高表示模塊沒(méi)有數(shù)據(jù)輸出;低表示模塊有數(shù)據(jù)輸出,可以讀數(shù)據(jù)。
P18,TXE:輸出,高表示模塊發(fā)送緩沖區(qū)已滿;低表示發(fā)送緩沖區(qū)為空,可以發(fā)送數(shù)據(jù)。
P19,WR:輸入,將8 b并行總線上的數(shù)據(jù)鎖存入內(nèi)部緩沖區(qū)。
P20,RD:輸入,允許內(nèi)部接收緩沖區(qū)數(shù)據(jù)通過(guò)8 b并行總線讀出。
P28~P21,D0~D7:8 b雙向數(shù)據(jù)線,他是一個(gè)8 b并口,USB100通過(guò)他與單片機(jī)交換數(shù)據(jù)。
USB100模塊的控制時(shí)序:
發(fā)送時(shí)序 當(dāng)單片機(jī)檢測(cè)到USB100模塊TXE為低時(shí),表示內(nèi)部發(fā)送緩沖區(qū)允許發(fā)送數(shù)據(jù)到USB端口,可以 將數(shù)據(jù)通過(guò)8 b數(shù)據(jù)總線發(fā)給USB100模塊,發(fā)送數(shù)據(jù)鎖存由WR控制,USB100模塊TXE為高時(shí),禁止發(fā)送數(shù)據(jù)。
接收時(shí)序 當(dāng)單片機(jī)檢測(cè)到USB100模塊RXF為低時(shí),表示內(nèi)部接收緩沖區(qū)有來(lái)自USB端口的數(shù)據(jù),可以通過(guò)8 b數(shù)據(jù)總線將數(shù)據(jù)讀入發(fā)給USB100模塊,接收數(shù)據(jù)鎖存由RD控制,接收時(shí)序如圖5所示。
2.3 PTR2000無(wú)線傳輸模塊
PTR2000是一個(gè)小型、超低功耗無(wú)線數(shù)據(jù)收發(fā)模塊。 該模塊工作頻率為國(guó)際通用的數(shù)傳頻段433 MHz[3],采用了FSK調(diào)制,抗干擾能力強(qiáng),采用了DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性極好,靈敏度達(dá)到-105 dPm,最大發(fā)射功率為+10 dPm,工作電壓2.7~5.25 V,具有2個(gè)工作頻道,工作最高速度可達(dá)19.2 kb/s(也可工作在其他頻率,如9 600 b/s),可直接與CPU串口使用如8031等,也可以接計(jì)算機(jī)RS232串口,軟件編程非常方便。由于該模塊采用了低發(fā)射功率、高靈敏度設(shè)計(jì),使用無(wú)需申請(qǐng)?jiān)S可證。
各管腳說(shuō)明如下:
P1:VCC,電源輸入端,接2.7~5.25 V。
P2:CS,頻道選擇,CS=0選擇工作頻道1,即433.92 MHz;CS=1選擇工作頻道2,即434.33 MHz。
P3:DO,數(shù)據(jù)輸出。
P4:DI,數(shù)據(jù)輸入。
P5:GND,接地端。
P6:PWR,節(jié)能控制,PWR=1,正常工作狀態(tài);PWR=0,待機(jī)微功耗狀態(tài)。
P7:TXEN,發(fā)射接收控制,TXEN=1模塊處于發(fā)射狀態(tài),TXEN=0模塊處于接收狀態(tài)。
3 采集系統(tǒng)的編程
3.1 單片機(jī)ADUC812編程 ADuC812中文資料pdf
程序在初始化了各種參數(shù)以后,開(kāi)始不斷循環(huán),查詢A/D端口,將各路A/D端口的數(shù)據(jù)不斷采集,并通過(guò)串口輸入PTR2000,由PTR2000將數(shù)據(jù)傳輸出去;同時(shí)該模塊不斷查詢串口,若有由PTR2000通過(guò)串口輸入的數(shù)據(jù),及時(shí)將數(shù)據(jù)輸出到D/A端口。本程序采用C語(yǔ)言編程,主程序?yàn)閙ain()。
注:FFH開(kāi)始采集數(shù)據(jù)標(biāo)志;EEH結(jié)束標(biāo)志。
3.2 AT89C51單片機(jī)編程 AT89C51中文資料
AT89C51負(fù)責(zé)傳輸數(shù)據(jù),一方面他通過(guò)PB口與USB100的并行數(shù)據(jù)口相連,負(fù)責(zé)從USB100接收或者將數(shù)據(jù)傳輸給USB100模塊;另一方面AT89C51通過(guò)串口與另一塊PTR2000相連,負(fù)責(zé)將從USB100模塊接收的數(shù)據(jù)傳給PTR2000,或者將從PTR2000模塊接收的數(shù)據(jù)傳給USB100模塊。他的程序與ADUC812的程序相似,區(qū)別在于他沒(méi)有開(kāi)始和結(jié)束標(biāo)志,并且他查詢的是USB100模塊是否有數(shù)據(jù)輸出和串口是否接收到PTR2000傳來(lái)的數(shù)據(jù)。
3.3 工控機(jī)編程
在工控機(jī)上安裝好USB100模塊的專用驅(qū)動(dòng)程序后,USB100即可作為一個(gè)標(biāo)準(zhǔn)的設(shè)備來(lái)編程,可以按照與串口完全一樣的方法進(jìn)行編程。在本次設(shè)計(jì)中采用了VC編程,在VC中采用MSComm控件,將USB接口作為一個(gè)標(biāo)準(zhǔn)的串口使用。程序分為兩部分:一部分是USB接口程序;另一部分是應(yīng)用程序部分。將由ADUC812采集到的A/D數(shù)據(jù)用直觀的圖像的方法顯示出來(lái)。
4 結(jié) 語(yǔ)
本設(shè)計(jì)介紹的無(wú)線數(shù)據(jù)采集系統(tǒng)對(duì)于其他無(wú)線數(shù)據(jù)傳輸?shù)膽?yīng)用具有一定的參考價(jià)值,通過(guò)適當(dāng)改變硬件配置,以及適當(dāng)修改程序,可以應(yīng)用于遠(yuǎn)程抄表、遠(yuǎn)程監(jiān)控等領(lǐng)域。