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