幾種實現(xiàn)PC機和單片機串行通信的硬件接口設(shè)計
目前,計算機控制系統(tǒng)已逐步從單機控制發(fā)展成為多機控制并出現(xiàn)了以計算機技術(shù)為核心,與數(shù)據(jù)通訊技術(shù)相結(jié)合的集檢測、控制和管理為一體的計算機網(wǎng)絡(luò),即集中分布式測控系統(tǒng)。其中單片機作為從機,負(fù)責(zé)現(xiàn)場控制和實時數(shù)據(jù)的采集;PC機作為主機,負(fù)責(zé)對各從機發(fā)來的數(shù)據(jù)進(jìn)行分析、處理,并向各從機發(fā)布命令,以實現(xiàn)對工業(yè)現(xiàn)場的集中監(jiān)控與管理。由于主從機需不斷進(jìn)行信息交流,因此通信成為分布式測控系統(tǒng)重要而基本的功能。
本文以MCS-96系列單片機中的8098為例,論述了幾種實現(xiàn)PC機和單片機串行通信的硬件接口設(shè)計,其中包括RS232標(biāo)準(zhǔn)接口、RS 422標(biāo)準(zhǔn)接口、20mA電流環(huán)路串行接口以及利用調(diào)制解調(diào)器實現(xiàn)遠(yuǎn)程通信。
1 基本原理
PC機與單片機之間通常采用2種通信方式:并行通信和串行通信。并行通信是指將待發(fā)送數(shù)據(jù)的各位同時傳送,串行通信則將數(shù)據(jù)一位一位地按順序傳送。并行通信雖然傳輸效率高,由于所需硬件設(shè)備復(fù)雜,不適于長距離通信,所以一般只適用于要求實時性強,傳送速率較高的控制系統(tǒng)中,實用面較窄;相比之下,串行通信簡單易實現(xiàn),傳輸距離較長,所以已被廣泛應(yīng)用于各種工控系統(tǒng)中。
串行通信分為同步通信和異步通信2種方式。同步通信是指通過在每個數(shù)據(jù)塊開始時的同步字符來實現(xiàn)收/發(fā)雙方同步的一種數(shù)據(jù)傳輸方法,常用于信息量大,速度要求高的場合;異步通信則規(guī)定了標(biāo)準(zhǔn)的字符數(shù)據(jù)傳輸格式,即每一幀信息由起始位、數(shù)據(jù)位、奇偶校驗位和停止位組成。由于有冗余位,所以傳送效率不高,常用于信息量不大,速度較低的場合。在計算機測控系統(tǒng)中,由于串行接口的標(biāo)準(zhǔn)化,一般采用異步串行通信方式,以提高其通用性。由于各種接口的機械和電器特性有所差異,串行通信分為近程通信和遠(yuǎn)程通信。
2 接口電路的設(shè)計
2.1 近程通信
目前,PC機是利用異步通訊控制器來實現(xiàn)串行通訊的,其核心是8250通訊芯片加上一些收發(fā)邏輯電路。接口標(biāo)準(zhǔn)大多是RS232標(biāo)準(zhǔn),其通訊距離小于15m,傳輸速率小于20kb/s。RS232標(biāo)準(zhǔn)是按負(fù)邏輯定義的,他的"1"電平在一5~一15V之間,"0"電平在+5~+15V之間。由于PC機使用的是TTL電平信號,因此數(shù)據(jù)輸出時必須把TTL電平信號轉(zhuǎn)換成RS232標(biāo)準(zhǔn)電子;數(shù)據(jù)接收時把RS232標(biāo)準(zhǔn)信號轉(zhuǎn)換成TTL電平信號。實現(xiàn)這種功能的常用芯片是傳送線驅(qū)動器MCl488和接收器MCl489,其作用除了電平轉(zhuǎn)換外,還實現(xiàn)正負(fù)邏輯電平轉(zhuǎn)換。如圖1和圖2所示。
PC機的串行口適用25針D型插座,其中RTS(請求發(fā)送,輸出)和CTS(清除發(fā)送,輸入),DSR(數(shù)據(jù)準(zhǔn)備好,輸入)和DTR(數(shù)據(jù)終端準(zhǔn)備好,輸出),分別連在一起,這是因為PC機的BIOS中的INT14H(串行通訊程序)在接收和發(fā)送數(shù)據(jù)時均要判斷CTS和DSR是否有效。8098與RS232標(biāo)準(zhǔn)接口電路圖如圖3所示。
2.2 遠(yuǎn)程通信
(1)RS422標(biāo)準(zhǔn)接口
雖然RS232應(yīng)用很廣,但由于數(shù)據(jù)傳輸速率慢,通訊距離短,特別是在100m以上的遠(yuǎn)程通訊中難以讓人滿意,因此通常采用RS422,RS449,RS423及RS485等接口標(biāo)準(zhǔn)來實現(xiàn)遠(yuǎn)程通訊。這里以RS422為例。
RS422接口標(biāo)準(zhǔn)通過提供平衡電路來改進(jìn)接口電氣特性,通過傳輸線驅(qū)動器將邏輯電平變?yōu)殡娢徊睿瑢崿F(xiàn)信息傳送。通過傳輸線接收器將電位差變?yōu)檫壿嬰娖剑瑢崿F(xiàn)信息接收。因而可以支持較高的傳輸速率和較長的傳輸距離,在最大傳輸率10Mb/s的情況下,電纜允許長度為120m;如果采用低傳輸率,如90kb/s時,最大距離可達(dá)1 200m。
RS422每個通道用兩條信號線,一條為邏輯"1",一條為邏輯"0"。RS422A電路由發(fā)送器,接收器,平衡連接電纜,電纜終端負(fù)載,接收器等部分組成,通常采用點對點通信方式。
該標(biāo)準(zhǔn)允許驅(qū)動器輸出為目前RS422A與TTL的電平轉(zhuǎn)換常用芯片是驅(qū)動器SN75174和接收器SN75175。該標(biāo)準(zhǔn)允許驅(qū)動器輸出為土2~土6V,接收器可以檢測到的輸入信息電平可低到200mA。采用光隔離的RS422標(biāo)準(zhǔn)來實現(xiàn)8098與PC機的遠(yuǎn)程通信的通訊接口電路如圖4所示。
(2)20mA電流環(huán)路串行接口
20mA電流環(huán)是目前遠(yuǎn)程通訊廣泛使用的另一種接口。其原理如圖5所示,發(fā)送正和負(fù),接受正或負(fù)4根線組成一個輸入回路和一個輸出回路。由于20mA電流環(huán)是一種異步串行接口標(biāo)準(zhǔn),所以每次發(fā)送數(shù)據(jù)時必須以無電流的起始作為字符的起始位,接收端檢測到起始位便開始接收數(shù)據(jù)。
電流環(huán)路串行接口的優(yōu)點是低阻抗傳輸線對電氣噪聲不敏感,以實現(xiàn)光電隔離,有利于長距離傳輸。圖6為一個帶光電隔離的20mA電流環(huán)接口線路圖。發(fā)送端將TTL電子轉(zhuǎn)為環(huán)路電流信號,在接收端又轉(zhuǎn)換成TTL電子。
(3)Modem實現(xiàn)遠(yuǎn)程通信
盡管RS232總線標(biāo)準(zhǔn)無法實現(xiàn)遠(yuǎn)程數(shù)字通訊,但由于電話網(wǎng)絡(luò)的普及,利用Modem和現(xiàn)有電話線實現(xiàn)PC機和單片機的遠(yuǎn)程雙向通訊也是工業(yè)控制系統(tǒng)中廣泛采用的一種方法?;驹砜驁D如圖7所示。
通常外置式Modem具有RS232接口,通過DB-9插頭可與計算機RS232口相連接。如果單片機串行口直接與Modem接口,由于沒有握手信號,只能保證單個字節(jié)傳輸?shù)恼_,對大量數(shù)據(jù)的傳輸將導(dǎo)致數(shù)據(jù)丟失,這點可通過軟件處理來避免;如果采用單片機的I/O口與Modem握手,將占用單片機I/O口資源。因此一般采用前一種方法實現(xiàn)對Modem接口。
本文僅以Modem芯片MSM7512B為例,闡述一下接口電路的設(shè)計。由于PC機與Modem芯片的接口已非常普及,現(xiàn)僅將8098和MSM7512B的接口電路畫出。如圖8所示。
MSM7512B主要由調(diào)制器、解調(diào)器、接口控制邏輯組成。AI是解調(diào)器的輸入端;AO是調(diào)制器輸出端。通過控制MODl,MOD2可使MSM7512B工作在4種不同的工作方式。在工作時,計算機首先檢測CD端。若為高電子,表明Modem處于等待與上位機通信狀態(tài);若其為低電平,則標(biāo)明Modem已和上位機建立數(shù)據(jù)通道。而要想使Modem發(fā)送數(shù)據(jù),應(yīng)置RS腳為低電平。單片機發(fā)送和接收數(shù)據(jù)就是對串行通信口寫和讀,可采用中斷或查詢方式工作。
3 結(jié) 語
上述幾例是工業(yè)控制系統(tǒng)中比較實用的串行通信接口電路設(shè)計,在具體的控制系統(tǒng)中可根據(jù)要求編制相應(yīng)的軟件程序來實現(xiàn)近程或遠(yuǎn)程的PC機與單片機串行通信。