引言
在現(xiàn)代工業(yè)控制系統(tǒng)中,多參數(shù)實時采集對監(jiān)控設備正常運行有著十分重要的作用。多參數(shù)信號采集是將監(jiān)控現(xiàn)場的物理量、化學量或生物量通過相應的傳感器和調理電路把模擬量轉換為易于采集、處理的電壓信號,經過單片機的處理,一方面反饋給控制部件對監(jiān)控對象進行控制調整,另一方面送給顯示單元,實時顯示采集的信號數(shù)據(jù)。在航空、汽車、通信、園林等控制領域,多參數(shù)實時采集與處理是自動控制系統(tǒng)的核心。但是專用的數(shù)據(jù)采集設備價格動輒上萬,高速數(shù)據(jù)采集卡的價格也在千元以上,而且這類設備大多有固定的接口,無法適應千差萬別的被測對象的需求,不具有通用性。本文從應用角度出發(fā),設計分辨率為8位的實時數(shù)據(jù)采集系統(tǒng),在STC_ISP_V394軟件環(huán)境的支持下,通過PC機實時顯示采集的參數(shù)。下位機以AT89C52單片機為控制單元,8路A/D轉換芯片ADC0809采集兩路電壓信號:通道0每隔1s采樣一次,共采集10次;通道l每隔5s采樣一次,共采集20次。采集的數(shù)據(jù)通過串行通信方式發(fā)送到上位機實現(xiàn)實時顯示。本系統(tǒng)利用不同的傳感器取代兩路電壓信號的采集,適用于各種控制電路,具有較強的通用性。
1 系統(tǒng)硬件設計
數(shù)據(jù)采集與處理系統(tǒng)分為單片機主控模塊、A/D轉換模塊、數(shù)碼管顯示模塊、鍵盤控制模塊和串行通訊模塊等五個單元,系統(tǒng)組成框圖如圖1所示。
1.1 A/D轉換模塊
模數(shù)轉換采用常用芯片ADC0809,其內部有一個8通道多路開關,由于內部進行轉換的轉換器只有一個,所以只能對8路模擬量信號進行分時轉換,根據(jù)鎖存地址線譯碼后的信號,某一時刻只選通8路模擬輸入信號中的一路,以逐次逼近原理進行模一數(shù)轉換,轉換時間為100μs,轉換精度為8位。
ADC0809內部結構如圖2所示。啟動ADC0809進行A/D轉換,首先輸入3位地址信號,并使ALE為高電平,將地址存入地址鎖存器中,經譯碼器譯碼選通8路模擬輸入之一到比較器;START上升沿將逐次逼近寄存器復位,下降沿啟動A/D轉換,EOC輸出信號變低,指示轉換正在進行。直到EOC變?yōu)楦唠娖剑硎続/D轉換結束,轉換結果存入鎖存器。當OE輸入高電平時,輸出三態(tài)門打開,轉換結果的數(shù)字量輸出到數(shù)據(jù)總線上。
1.2 鍵盤及顯示模塊
參數(shù)采集與處理系統(tǒng)的人機交互采用2×8矩陣鍵盤和靜態(tài)數(shù)碼管顯示,如圖3所示。設計上為節(jié)省單片機I/O口線,人機交互采用兩條線控制,利用模擬開關CD4052切換,控制鍵盤和數(shù)碼管的數(shù)據(jù)信號。
1.3 串行通信模塊
由于單片機和PC機使用不同的邏輯電平,在設計串行接口電路時,必須考慮電平的匹配、驅動能力的匹配、元器件的選擇以及其它電氣特性。PC機通常有兩個標準的RS232串行口,為了提高抗干擾能力,這種接口采用EIA電平邏輯,如表1所示。
為實現(xiàn)單片機與PC機電平兼容,單片機與PC機通訊時,必須經過電平轉換。通常使用MCl488租MCl489芯片實現(xiàn)電平轉換,但這兩種轉換芯片組成電路結構復雜,電源需±12V電源供電,工作不穩(wěn)定,易燒壞芯片。本設計使用MAX232集成電路芯片,僅用+5V供電,其內部有兩組電壓轉換電路,外圍電路配上4個升壓電容,實現(xiàn)在EIA電平和TTL電平之間互相轉換,具有電路結構簡單、元器件數(shù)量少、電源單一、功耗低等特點,MAX232芯片組成的串行接口電路如圖4所示。
AT89C52單片機內有一個可編程、全雙工的串行口,串行收發(fā)的數(shù)據(jù)在通訊時,通過特殊功能寄存器SFR的串行數(shù)據(jù)緩沖器SUBF實現(xiàn)數(shù)據(jù)交換,故可做多機通訊,特別適合于終端和系統(tǒng)主機間的通訊。
1.4 單片機與A/D接口模塊
單片機采用ATMEL公司生產的AT89C52單片機。它采用先進工藝制造,具有高性能的MCS51內核設計,帶有非易失性Flash程序存儲器,是一種高性能、低功耗的8位CMOS微處理芯片,市場應用廣泛,在實現(xiàn)信號采集、數(shù)據(jù)處理、串行傳輸、實時控制等有較大優(yōu)勢。
本設計采用查詢法采集數(shù)據(jù),合理分配單片機的資源,大部分時間單片機用來運行控制程序,只有在采集時間到來時單片機才用來執(zhí)行采集程序。圖5所示為ADC0809與單片機的接口電路,需要采集數(shù)據(jù)時,單片機首先輸出地址信號,指定采集的通道,接著使ALE和START為高電平,啟動A/D轉換,然后單片機處理其它事務,稍后查詢EOC是否為高電平,若為高電平,轉換結束,需要讀取轉換結果時,發(fā)送讀取命令使OE為高電平讀取轉換結果,存入指定單元,供數(shù)碼管顯示和上傳給PC機。
2 系統(tǒng)軟件設計
系統(tǒng)軟件主要包括:系統(tǒng)初始化、判鍵程序、AD轉換程序、數(shù)碼管顯示程序和串行通信程序,圖6為程序結構框圖。
單片機采用11.0592MHz晶振、定時器選擇工作方式2、串口工作在方式l,波特率設為9600。上位PC機在STC_ISP_V394開發(fā)環(huán)境下,使用“串行調試助手”功能,接收串行數(shù)據(jù)并顯示采集結果,圖7為STC_ISP_V394數(shù)據(jù)采集界面,顯示出兩路電壓信號的實時采集結果。
單片機串行通信初始化設置:
MOV TMOD,#20H:T1工作方式2
MOV THl,#0FDH:波特率9600
MOV SCON,#40H:串口工作方式1
SETB TR1:打開定時器1
單片機發(fā)送數(shù)據(jù):
MOV SBUF,A:將接收的數(shù)據(jù)傳送給PC機
JNBTI,S
CLR TI
3 結束語
本文介紹了一種基于A/D轉換芯片ADC0809和AT89C52單片機的數(shù)據(jù)采集和串行通信接口的實現(xiàn)方法。本設計在自制開發(fā)機上完成調試,自制開發(fā)機采用STC89C54單片機,具有ISP在線編程功能,在STC_ISP_V394開發(fā)環(huán)境下完成程序下載以及數(shù)據(jù)通信。通過實踐驗證在短距離傳輸中有很好的效果,傳輸中未出現(xiàn)數(shù)據(jù)丟失和錯誤。數(shù)據(jù)采集和串行數(shù)據(jù)傳輸在工業(yè)控制中十分重要,本設計具有一般通用性,讀者可根據(jù)自己的實際需要進行改進,以滿足工程設計需要。