基于單片機的通用數據采集和通訊儀的設計
0 引言
單片機數據采集系統是指利用單片機對現場(chǎng)的各種信號,包括:非電量信號(如溫度、壓力、流量等),電信號(電壓、電流),以及開(kāi)關(guān)量,頻率量信號等進(jìn)行采集,存儲,顯示,傳輸的系統。目前,8位單片機由于其控制功能強大、品種多、價(jià)格低廉,正廣泛應用于各個(gè)領(lǐng)域,特別是應用在數據采集,設備控制等方面,是單片機應用中的主流機種。本文采用臺灣華邦公司生產(chǎn)的高性能Turbo-51系列單片機 W77E58,實(shí)現了一種基于單片機的通用數據采集和通訊儀的研制,具有較高的實(shí)用價(jià)值。為了使設計的數據采集儀應用方便,系統利用PTR2000無(wú)線(xiàn)數據傳輸模塊與上位機進(jìn)行通訊,以便能隨時(shí)響應控制中心的PC機的數據上傳命令,將采集到的數據實(shí)時(shí)上傳給控制中心。
1 系統硬件設計
本文設計的通用數據采集和通訊儀能夠對各種現場(chǎng)設備的標準輸出信號進(jìn)行采集,包括傳感器輸出的0-5V/4-20mA模擬信號;開(kāi)關(guān)量信號;頻率量信號;此外系統還具有RS-485接口,以便能夠與現場(chǎng)具有485接口的智能儀表相連接。為了實(shí)現良好的人機交互,系統擴展了鍵盤(pán)輸入,液晶顯示,實(shí)時(shí)時(shí)鐘以及現場(chǎng)故障報警指示電路等模塊。系統總體框圖如圖1所示。
1.1 電源模塊電路設計
在單片機數據采集系統中,電源的設計是非常關(guān)鍵的。本儀表設計采用電網(wǎng)和充電電池雙電源供電。電源設計如圖2所示。
當電網(wǎng)電壓正常時(shí),220V交流電經(jīng)過(guò)24V穩壓電源,電解電容器C1濾波后的電壓經(jīng)二極管D1后分成兩路,一路通過(guò)三極管Q1到7805三端穩壓芯片,完成穩壓輸出+5V電壓,供單片機W77E58等芯片所需的電源;另一路通過(guò)電阻R1對鎳鎘電池9V進(jìn)行充電,充電電流選擇約40mA。如果電網(wǎng)停電, C1放電為0V,這時(shí),電池通過(guò)D2、Q1到7805向電路供電,使輸出端仍有+5V電壓,從而完成電網(wǎng)短時(shí)停電時(shí),單片機后備電源的功能。
二極管D1起隔離作用,使得當電網(wǎng)偶爾停電時(shí),能夠阻止電池電流流向24V穩壓電源。穩壓管D3(5.6V)的作用,是防止電池(+9V)過(guò)放電,即當電池放電下降到約6V時(shí),因D3作用,三極管Q1截止,電池放電停止,此時(shí)單片機將停電。
1.2 實(shí)時(shí)時(shí)鐘芯片DS12887
為了能夠實(shí)時(shí)顯示系統時(shí)間以及實(shí)現按時(shí)間日期保存采集到的數據的功能,系統擴展了一片并行實(shí)時(shí)時(shí)鐘日歷芯片DS12887。DS12887是DALLAS半導體公司推出的實(shí)時(shí)時(shí)鐘芯片,采用CMOS技術(shù)制成,把時(shí)鐘芯片所需的晶振和外部鋰電池相關(guān)電路集成于芯片內部。DS12887芯片具有微功耗、外圍接口簡(jiǎn)單、精度高、工作穩定可靠等優(yōu)點(diǎn),在現代工業(yè)控制及智能儀器儀表中有著(zhù)廣泛的用途。
1.3 鍵盤(pán)接口電路
為便于人機交互,采用專(zhuān)用鍵盤(pán)接口芯片8279,配合74LS138譯碼器,系統擴展了3×8=24鍵的鍵盤(pán)。鍵盤(pán)上設置有0~9數字鍵,以便輸入各種信息。同時(shí)還設有各種控制按鍵。通過(guò)鍵盤(pán)能夠控制對各種類(lèi)型數據進(jìn)行采集。為提高CPU的效率,鍵盤(pán)采用中斷方式。
1.4 LCD液晶顯示模塊
為便于實(shí)時(shí)顯示采集的數據及人機交互,系統擴展了圖文液晶顯示模塊MGLS-12032,MGLS-12032是由香港精電公司生產(chǎn)的內置SED1520控制驅動(dòng)器的LCD模塊,使用簡(jiǎn)單方便。液晶顯示模塊MGLS-12032與W77E58的硬件接口
其中D0~D7與單片機的數據總線(xiàn)相連,A0、A1為單片機的P0口經(jīng)74LS373地址鎖存器后產(chǎn)生的低兩位地址線(xiàn),系統用74LS138譯碼器產(chǎn)生的Y5、Y6作為MGLS12032兩個(gè)控制驅動(dòng)器工作的選通信號。
1.5 模擬信號采集電路
系統采用12位并行A/D轉換器MAX197對傳感器輸出的0-5v/4-20mA 模擬電信號進(jìn)行采集。MAX197是美國Maxim公司推出的多量程(本系統采用0-5V量程)、8通道、12位快速A/D轉換器,采用逐次逼近工作方式,片內含有高精度的參考電壓源和時(shí)鐘電路,使它可以在不需要任何外部電路和時(shí)鐘的情況下完成一切A/D轉換功能,應用非常方便。并且MAX197內部具有輸入跟蹤/采樣保持電路,其并行輸出口很容易與單片機連接,僅需外接幾個(gè)電容即可。
MAX197與單片機的典型接口電路如圖4所示。設計采用MAX197的CH0-CH6通道采集7路0-5V電壓信號。而4-20mA電流信號則經(jīng)過(guò)8選 1模擬開(kāi)關(guān)CD4051輪流選通,再經(jīng)靈敏電阻,放大器轉化為0-5V電壓信號后,進(jìn)入MAX197的CH7通道進(jìn)行模數轉換,從而系統可以采集8路電流信號。
1.6 開(kāi)關(guān)量采集電路設計
系統通過(guò)一片8255芯片來(lái)擴展并行口。編程使8255的A口為輸入,用于采集8路開(kāi)關(guān)信號。B口為輸出,用于8路開(kāi)關(guān)量的輸出。為了增強系統抗干擾能力,開(kāi)關(guān)量輸入/輸出通道都采用光電隔離。開(kāi)關(guān)量采集電路圖略。
1.7 頻率信號測量電路設計
本系統利用8253芯片的定時(shí)器/計數器1和2對兩路待測脈沖個(gè)數進(jìn)行記數,8253的定時(shí)器/計數器0用來(lái)定時(shí),利用W77E58有多個(gè)中斷源的特性,定時(shí)結束產(chǎn)生中斷,在中斷服務(wù)程序中,讀取8253定時(shí)器/計數器1和2的當前記數值,通過(guò)計算便可得到待測頻率量。
頻率信號測量電路如圖5所示。其中D0-D7與W77E58數據總線(xiàn)相連,單片機P2口高三位經(jīng)138譯碼器譯出的Y0與8253的CS引腳相連,用來(lái)選通8253芯片,8253的A0、A1直接與低二位地址線(xiàn)相連,因此8253的端口地址為1FFCH~1FFFH。
1.8 串行通訊設計
利用MAX485芯片,W77E58單片機的增強串口用來(lái)擴展485接口,以便能夠與工業(yè)現場(chǎng)具有485接口的智能儀表相連接。單片機與MAX485芯片的連接只需要外加幾個(gè)電阻,非常簡(jiǎn)便,在此不再詳述。
為了使設計的數據采集儀應用方便,系統利用PTR2000無(wú)線(xiàn)數據傳輸模塊與上位機進(jìn)行通訊,以便能隨時(shí)響應控制中心的PC機的數據上傳命令,將采集到的數據實(shí)時(shí)上傳給控制中心。PTR2000是一種超小型、低功耗、高速率的無(wú)線(xiàn)收發(fā)數據傳輸模塊。其通訊速率最高可達20Mbit/s,也可工作在其他速率,如4800bit/s、9600bit/s。系統無(wú)線(xiàn)數據傳輸原理圖如圖6所示。
PTR2000可直接與單片機的串口TXD、RXD相連接。PTR2000無(wú)線(xiàn)MODEM的DO和DI引腳分別連接單片機串口的RXD和TXD,這樣單片機就可以和無(wú)線(xiàn)數據傳輸模塊進(jìn)行串行通信。PTR2000的PWR腳和單片機的P1.0腳相連,以便對無(wú)線(xiàn)數據傳輸模塊的電源進(jìn)行管理,TXEN與單片機的P1.1腳連接,控制PTR2000無(wú)線(xiàn)收發(fā)模塊的收發(fā)狀態(tài)轉換。上位機通過(guò)PTR2000與單片機進(jìn)行實(shí)時(shí)通訊。由于上位機串口通常采用RS-232 電平,而單片機串口使用的是TTL電平,故PTR2000與上位機連接時(shí)必須將TTL電平轉換成RS-232電平,系統采用MAXM公司的MAX232芯片進(jìn)行轉換。上位機用串口的RTS與PTR2000的TXEN連接來(lái)控制PTR2000無(wú)線(xiàn)收發(fā)模塊的收發(fā)狀態(tài)轉換。
2 系統軟件設計
系統軟件采用模塊化設計,主程序首先對各接口芯片進(jìn)行初始化,然后分別調用各個(gè)子程序模塊以進(jìn)入各個(gè)數據采集子系統,并將采集到的數據存儲在32K字節的串行E2PROM AT24C256中,以備控制中心查詢(xún),同時(shí)將對應的數據在液晶顯示器上顯示。如果系統接收到上位機的數據上傳命令,就將存儲在E2PROM中的數據通過(guò) PTR2000發(fā)送給PC機。系統主程序流程如圖7所示。
串口通信程序中雙方通信協(xié)議是至關(guān)重要的,這關(guān)系到無(wú)線(xiàn)數據傳輸的可靠性,本系統約定雙方的通信協(xié)議格式如下:串行通信使用單片機的內部定時(shí)器/計數器1 作為波特率發(fā)生器,本系統波特率設定為4800 bit/s;幀格式為1位起始位,8位數據位,1位停止位,無(wú)奇偶校驗;通信采用中斷方式;上位機采用COM 1通信。在設計時(shí),數據傳輸通道也采用光電隔離來(lái)提高系統的抗干擾能力,并且采用了CRC校驗以確保數據傳輸的準確。單片機系統初始化時(shí),將單片機的 P1.1腳設置為低電平,這就可使得在默認狀態(tài)下,PTR2000處于接收狀態(tài),以便時(shí)刻監聽(tīng)上位機的數據上傳命令。當接收到上位機的命令后,中斷服務(wù)程序將數據從單片機數據緩沖區取出,同時(shí)將模塊的接收狀態(tài)切換為發(fā)射狀態(tài),轉換過(guò)程所需時(shí)間約5ms,然后將這些數據以FSK的調制形式發(fā)射出去, PTR2000模塊隨后恢復為接收狀態(tài)。從單片機系統發(fā)射的數據經(jīng)上位機系統中的PTR2000接收,由RS232接口進(jìn)行電平轉換,送進(jìn)上位機,上位機對數據進(jìn)行分析和處理后,向單片機系統發(fā)送一個(gè)確認數據包,以確認單片機系統數據包的正確性。上位機接收完數據后,它的PTR2000模塊又恢復為常發(fā)射狀態(tài)。如果數據在傳輸的過(guò)程中有數據丟失,上位機將要求單片機系統重新發(fā)送數據,直到數據全部正確為止,串行中斷服務(wù)程序如圖8所示。
3 結束語(yǔ)
本文利用8位單片機設計的通用數據采集系統,可以作為工業(yè)現場(chǎng)的遠程監控終端來(lái)使用,也可以方便的設計成便攜式智能數據采集和通訊儀表,由于數據傳輸采用了無(wú)線(xiàn)方式,使其能夠非常廣泛的應用于工業(yè)上需要數據采集的場(chǎng)合,具有比較高的實(shí)際應用價(jià)值。
評論