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