袁邵祎 曾文 胡彬
摘 要:本文介紹了一種實(shí)用簡(jiǎn)單的RS-232光電隔離通訊接口設(shè)計(jì)方法,通過光電耦合器對(duì)信號(hào)進(jìn)行濾波,實(shí)現(xiàn)防干擾能力;并設(shè)計(jì)出一個(gè)AT89C2051單片機(jī)和PC機(jī)通訊的硬件連接電路、完整的通訊協(xié)議和軟件設(shè)計(jì)流程,最后在實(shí)現(xiàn)在云臺(tái)控制器上應(yīng)用的實(shí)例。
關(guān)鍵詞:光電隔離;通信;RS-232;云臺(tái)
RS-232是EIA(美國(guó)電子工業(yè)協(xié)會(huì))在上世紀(jì)60年代設(shè)計(jì)的一種串行通訊接口標(biāo)準(zhǔn),一直廣泛應(yīng)用于通訊領(lǐng)域[ 1 ]。然而,面對(duì)復(fù)雜多變的電氣環(huán)境,RS-232通信極不穩(wěn)定,受環(huán)境干擾大;而且RS-232通信距離也不是很長(zhǎng)。為了提高通信的抗干擾能力,本設(shè)計(jì)在RS-232通信模塊中添加光電隔離技術(shù),實(shí)現(xiàn)電氣隔離,對(duì)信號(hào)進(jìn)行過濾處理。本文將RS-232串行通信接口應(yīng)用于云臺(tái)控制器上進(jìn)行實(shí)例檢測(cè)應(yīng)用,詳細(xì)介紹如何利用MAX232串行通信接口芯片給AT89C2051單片機(jī)進(jìn)行光電隔離RS-232串行接口通訊[ 2 ]。
1 設(shè)計(jì)目標(biāo)
本文的目標(biāo)是設(shè)計(jì)一個(gè)當(dāng)下實(shí)際通訊應(yīng)用下開放、通用的系統(tǒng),因此采用了通用通訊標(biāo)準(zhǔn)去設(shè)計(jì)方案。本設(shè)計(jì)的目的是實(shí)現(xiàn)基于RS-232總線上的數(shù)據(jù)通訊與控制的系統(tǒng),利用單片機(jī)對(duì)數(shù)據(jù)采集而后進(jìn)行處理控制??刹杉妷骸㈦娏?、脈沖等信號(hào),即收集即將輸入云臺(tái)各種數(shù)據(jù)信號(hào),送給光耦對(duì)信號(hào)進(jìn)行篩選,再將信號(hào)提供給單片機(jī),單片機(jī)根據(jù)光耦過濾的信號(hào)對(duì)外部裝置發(fā)出相應(yīng)指令(單片機(jī)程序設(shè)計(jì)好的),從而實(shí)現(xiàn)對(duì)裝置的控制。
技術(shù)指標(biāo)要求:(1)工作電源,輸入電壓5V直流±10%,電流不大于300mA。(2)通迅接口符合RS232電平標(biāo)準(zhǔn),波特率高達(dá)250KB。(3)兩路獨(dú)立RS-232通迅,輸入、輸出間電路相互間隔離,兩路輸入端地相互間隔離,兩路輸出端地相互間隔離,通迅地與工作電源地相互間隔離,隔離電阻1000M歐以上。(4)通迅端口輸入端抗干擾峰值電壓可達(dá)15KV。(5)開關(guān)K1、K2、K3、K4、K5的通斷負(fù)載電壓/電流為300V/300mA,接通時(shí)間0~24小時(shí)可調(diào)(默認(rèn)為1秒)。
2 電路設(shè)計(jì)說(shuō)明
根據(jù)單片機(jī)基本原理設(shè)計(jì)如下電路圖:
基于RS232通信光電隔離通訊電路設(shè)計(jì)圖
電路工作原理:
通過AT89C2051單片機(jī)來(lái)對(duì)電路信號(hào)處理和控制,同時(shí)利用MAX232芯片來(lái)實(shí)現(xiàn)TTL電平(計(jì)算機(jī)輸出信號(hào)電平5v)和RS232電平(電路傳輸工作電平12v)之間轉(zhuǎn)換,以達(dá)到用RS232電平來(lái)傳輸信息,實(shí)現(xiàn)抗干擾和遠(yuǎn)距離傳輸信號(hào)的效果;同時(shí)通過光耦實(shí)現(xiàn)輸入端和輸出端電信號(hào)隔離,并且對(duì)輸入信號(hào)進(jìn)行濾波。電路中還利用DS1232(看門狗芯片)對(duì)電路自檢和保護(hù)作用。最終實(shí)現(xiàn)計(jì)算機(jī)對(duì)設(shè)備的控制。
通過過設(shè)計(jì)好RS-232的通信模塊,實(shí)現(xiàn)基于RS-232總線的數(shù)據(jù)通信與控制;而后加入繼電器控制模塊電路,實(shí)現(xiàn)單片機(jī)主從機(jī)之間的數(shù)據(jù)通信,從而達(dá)到PC端對(duì)設(shè)備的控制;接著,設(shè)計(jì)出PC端和設(shè)備端進(jìn)行數(shù)據(jù)采集與控制的模塊,單片機(jī)都按自己的任務(wù)進(jìn)行相關(guān)數(shù)據(jù)采集或者控制。在硬件都設(shè)計(jì)好后,調(diào)試通過,這時(shí)要跟據(jù)整個(gè)系統(tǒng)編制出一定的通信協(xié)議,選擇最優(yōu)方案,實(shí)現(xiàn)PC端和設(shè)備端的數(shù)據(jù)通信[ 3 ]。這些在程序設(shè)計(jì)中實(shí)現(xiàn),軟件采用Keil軟件進(jìn)行編程。PC端和設(shè)備端在實(shí)現(xiàn)數(shù)據(jù)通信后,按照擬定的通信協(xié)議,提取有用數(shù)據(jù)信息,從而按照這個(gè)信息,進(jìn)行相關(guān)操作,以達(dá)到基于RS-232總線上的數(shù)據(jù)通信與控制的目的。
本設(shè)計(jì)硬件電路部分主要包括MAX232電平轉(zhuǎn)換、單片機(jī)最小系統(tǒng)、五路光電轉(zhuǎn)換電路、RS-232通訊電路、五路信息傳輸電路等;軟件部分主要包括系統(tǒng)初始化、RS-232通訊協(xié)議、AD/DA驅(qū)動(dòng)等[ 4 ]。
3 基于RS232通信光電隔離通訊在云臺(tái)控制器的運(yùn)用
3.1 通信協(xié)議設(shè)置
晶體11.0592M下RS232串行通迅方式,波特率9600,校驗(yàn)位PNONE。
3.2 對(duì)外接口設(shè)置
(1)5V+、GND電路板工作電源,輸入5V直流電壓;
(2)K1+、K1- 通道一控制,閉合時(shí)開啟,斷開時(shí)停止;
K2+、K2- 通道二控制,閉合時(shí)開啟,斷開時(shí)停止;
K3+、K3- 通道三控制,閉合時(shí)開啟,斷開時(shí)停止;
K4+、K4- 通道四開啟,閉合時(shí)開啟,斷開時(shí)停止;
K5+、K5- 通道五開啟,閉合時(shí)開啟,斷開時(shí)停止;
(3)通迅1輸入:TX1、GND1、RX1;通迅2輸入:TX2、GND1、RX2;
(4)通迅1輸出:TX1、GND、RX1;通迅2輸出:TX2、GND2、RX2;
(5)指示燈POW1、POW2分別指示內(nèi)部?jī)陕犯綦x電源的工作狀態(tài);點(diǎn)亮表示工作正常。指示燈K1、K2、K3、K4、K5指示相對(duì)應(yīng)的開關(guān)狀態(tài),點(diǎn)亮?xí)r表示接通。
(6)測(cè)試按扭S1,按下時(shí)K1、K2、K3、K4接通,相對(duì)應(yīng)的指示燈點(diǎn)亮。
3.3 通迅協(xié)議設(shè)置
(1)通道1、通道2輸入指令33A6同時(shí)控制K1、K2、K3、K4接通時(shí)間一秒,相對(duì)應(yīng)的指示燈亮。
(2)通道1、通道2分別輸入指令33A1、33A2、33A3、33A4、33A5,分別控制K1、K2、K3、K4接通,接通時(shí)間一秒,相對(duì)應(yīng)的指示燈亮。
(3)單片機(jī)上電開啟或熱啟動(dòng)時(shí),通過RS232通道1返饋信息66 D9 20 13 06 15。
(4)S1鍵盤按下后立即釋放,測(cè)試K1、K2、K3、K4開關(guān)性能,接通時(shí)間一秒,相對(duì)應(yīng)的指示燈亮,同時(shí)通過RS232通道1返饋信息66 DA A1 A2 A3 A4。S1鍵盤按下保持時(shí)間超過2秒以上時(shí),測(cè)試K1、K2、K3、K4、K5開關(guān)性能,接通時(shí)間一秒,相對(duì)應(yīng)的指示燈亮,同時(shí)通過RS232通道1返饋信息66 DA A1 A2 A3 A4A5。
(5)通道1、通道2在超過24小時(shí)后,無(wú)任何通迅時(shí),關(guān)機(jī)復(fù)位。
(6)系統(tǒng)受干擾頻繁通迅時(shí),關(guān)機(jī)復(fù)位。
(7)168小時(shí)(一周)后同時(shí)收到關(guān)主機(jī)的命令“30H”后,關(guān)機(jī)復(fù)位。
4 產(chǎn)品測(cè)試
(1)插入好測(cè)試插座(測(cè)試插座圖紙R232TEST.S01),接入+5V電源,觀察指示燈狀態(tài),POW1、POW2常亮,RUN省爍。觀察電流消耗應(yīng)小于200mA。
(2)測(cè)試端與電腦串口連接,打開串口調(diào)試軟件(見圖)。
設(shè)置波特率為9600bit/S,校驗(yàn)位:PNone,數(shù)據(jù)位8,停止位為1,十六進(jìn)制收發(fā)及顯示,做以下操作:輸入指令33后,系統(tǒng)復(fù)位,接收窗口應(yīng)能接收到字符66 D9 20 13 06 15。發(fā)送十六進(jìn)制任意字符(33以外),接收窗口應(yīng)能接收到同樣的字符。輸入指令33A6后,K1、K2、K3、K4點(diǎn)亮1秒后熄滅。輸入指令33A5后,K5點(diǎn)亮1秒后熄滅。
(4)S1鍵盤按下保持時(shí)間超過2秒以上時(shí),K1、K2、K3、K4、K5相對(duì)應(yīng)的指示燈亮一秒后熄滅,接收窗口應(yīng)能接收顯示66 DA A1 A2 A3 A4 A5。
(5)通過以上測(cè)試,產(chǎn)品合格。
5 結(jié)語(yǔ)
根據(jù)本設(shè)計(jì)理論分析與實(shí)驗(yàn)表明:從對(duì)云臺(tái)控制器的實(shí)例應(yīng)用來(lái)看,本文所采用的原理和方法是正確的,達(dá)到了題目設(shè)計(jì)要求。本設(shè)計(jì)的信息通訊只能完成單向的數(shù)據(jù)傳輸和控制等基本功能,系統(tǒng)設(shè)計(jì)比較簡(jiǎn)單。因此,本設(shè)計(jì)可在多方面進(jìn)行充實(shí)和完善。
參考文獻(xiàn):
[1] 肖海榮光電隔離的RS-232串行接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001,(8):38.
[2] 幸國(guó)全單片機(jī)系統(tǒng)的光電隔離式RS-232接口設(shè)計(jì)[J].測(cè)控技術(shù),2001,20(1):62.
[3] 南華大學(xué)基于RS485的遠(yuǎn)程采集與控制系統(tǒng)的設(shè)計(jì)[D].畢業(yè)論文,2013.
[4] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990
[5] 楊將新.單片機(jī)程序設(shè)計(jì)及應(yīng)用從基礎(chǔ)到實(shí)踐[M].北京:電子工業(yè)出版社,2006.
*通信作者:胡彬