<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于STC11F02E的RS232/RS485轉(zhuǎn)換器設(shè)計

          基于STC11F02E的RS232/RS485轉(zhuǎn)換器設(shè)計

          作者: 時間:2010-03-24 來源:網(wǎng)絡(luò) 收藏
          引言

          隨著通信技術(shù)的普及和發(fā)展,人們對測控系統(tǒng)的總體性能要求越來越高,為了便于對分布式的各個現(xiàn)場測控設(shè)備實現(xiàn)集中控制,現(xiàn)場總線技術(shù)得到了廣泛的應用。RS485總線因其硬件設(shè)計和簡單、控制方便、成本低廉、傳輸距離遠以及可掛接多個從設(shè)備等優(yōu)點而成為目前國內(nèi)應用較多的現(xiàn)場總線之一。

          目前大多數(shù)的分布式現(xiàn)場總線通信系統(tǒng)通常都使用PC機(或工控機)作為主機對各個現(xiàn)場設(shè)備進行集中控制和數(shù)據(jù)傳輸。PC機只有標準的RS232接口,而RS232總線和RS485總線的接口電平不兼容,要實現(xiàn)PC機和RS485總線構(gòu)成的通信網(wǎng)絡(luò)的連接就必須進行RS232和RS485之間的電平轉(zhuǎn)換。因此,進行RS232/RS485轉(zhuǎn)換器的設(shè)計就顯得很有必要。

          采用單片機進行RS232/RS485轉(zhuǎn)換器的設(shè)計是比較常用的一種方法。傳統(tǒng)的基于單片機設(shè)計的RS232/RS485轉(zhuǎn)換器存在著以下不足之處:

          (1)采用的單片機和外圍器件個數(shù)較多,給設(shè)計帶來不便,也不利于降低成本,減小體積;

          (2)設(shè)置不靈活,不能改變波特率和通信方式,或者更改參數(shù)不方便,使通用性受限。

          鑒于以上不足,本文采用宏晶科技公司生產(chǎn)的增強型51單片機STC11F02E為核心設(shè)計了一款RS232/RS485轉(zhuǎn)換器來彌補這些缺陷,降低了成本,減小了體積,同時能夠方便地進行波特率和通信方式的設(shè)置,增強了其通用性;而且單片機的可編程方式也方便了轉(zhuǎn)換器的功能擴展,靈活性大大增強。

          轉(zhuǎn)換器的總體結(jié)構(gòu)概述

          轉(zhuǎn)換器主要由三部分組成,分別為:RS232電平轉(zhuǎn)TTL電平模塊、RS485電平轉(zhuǎn)TTL電平模塊和單片機主控制模塊。轉(zhuǎn)換器的總體結(jié)構(gòu)框圖如圖1所示。



          圖1 轉(zhuǎn)換器總體結(jié)構(gòu)框圖

          RS232電平轉(zhuǎn)TTL電平模塊用來實現(xiàn)RS232總線和單片機之間的連接,RS485電平轉(zhuǎn)TTL電平模塊用來實現(xiàn)RS485總線和單片機之間的連接,而單片機主控制模塊起到一個過渡連接的作用,用于協(xié)調(diào)和控制RS232總線和RS485總線之間的數(shù)據(jù)傳輸。

          下面詳細闡述這3個模塊的具體硬件電路設(shè)計。

          轉(zhuǎn)換器的硬件電路設(shè)計

          RS232電平轉(zhuǎn)TTL電平模塊的電路設(shè)計

          這里采用Maxim公司生產(chǎn)的MAX232電平轉(zhuǎn)換芯片設(shè)計RS232和單片機的電平轉(zhuǎn)換接口電路。

          MAX232芯片只需用5V的單電源供電,外加4個電容,就可實現(xiàn)RS232電平和TTL電平之間的轉(zhuǎn)換,可直接驅(qū)動RS232總線進行數(shù)據(jù)傳輸,使用十分方便。采用該芯片可以很容易地實現(xiàn)單片機和RS232總線之間的連接,其最高傳輸速率可達120kbps。

          該模塊的具體電路設(shè)計圖如圖2所示。


          圖2 RS232電平轉(zhuǎn)TTL電平電路

          RS485電平轉(zhuǎn)TTL電平模塊的電路設(shè)計

          該模塊的電路采用Maxim公司生產(chǎn)的RS485接口芯片MAX483E進行設(shè)計。

          MAX483E芯片是一款用于RS485和RS422通信的低功耗總線收發(fā)器,具有±15kV靜電放電沖擊保護和限擺率驅(qū)動特性,減小了電磁干擾和終端電纜反射,允許高達250kbps速率的無差錯數(shù)據(jù)傳輸。該芯片只需用5V的單電源電壓供電即可正常工作,而且在一條總線上最多可以連接32個負載。利用該芯片可以極大地簡化單片機和RS485總線的接口電路設(shè)計。

          該模塊的具體電路設(shè)計圖如圖3所示。


          圖3 RS485電平轉(zhuǎn)TTL電平電路

          單片機主控制模塊的電路設(shè)計

          該模塊是轉(zhuǎn)換器的核心模塊,轉(zhuǎn)換器的主要功能就是通過該模塊來實現(xiàn)的。整個電路設(shè)計也非常簡單,只需一片增強型的51單片機STC11F02E外加一些基本的外圍電路(包括外部晶體振蕩器電路和復位電路)即可完成設(shè)計。

          STC11F02E單片機為增強型的8051內(nèi)核,具有2KB的片內(nèi)Flash程序存儲器、2KB的EEPROM存儲器和256KB的片內(nèi)SRAM數(shù)據(jù)存儲器。這款單片機的UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器)模塊的最大特點就是通過配置特殊功能寄存器AUXR1中的第7位UART_P1的狀態(tài)可以使UART模塊的兩個引腳(RXD、TXD)接到P3端口的P3.0、P3.1引腳,或者接到P1端口的P1.6、P1.7引腳,從而可以充當兩個串口使用。這里主要利用該功能來設(shè)計RS232/RS485轉(zhuǎn)換器。

          整個轉(zhuǎn)換器的總體硬件電路圖如圖4所示。


          圖4 轉(zhuǎn)換器總體硬件電路圖

          轉(zhuǎn)換器的工作原理

          轉(zhuǎn)換器硬件電路的工作原理是先將PC機串口輸出的RS232總線信號電平通過電平轉(zhuǎn)換芯片MAX232轉(zhuǎn)換成STC11F02E可以接收的TTL電平信號,由該單片機接收PC發(fā)送過來的數(shù)據(jù)。STC11F02E接收完傳來的全部數(shù)據(jù)后將串口引腳從P3.0和P3.1切換至P1.6和P1.7引腳,再把接收到的數(shù)據(jù)通過RS485收發(fā)器MAX483E發(fā)送到RS485總線上。從機應答后將相應的數(shù)據(jù)傳至RS485總線上,再通過RS485收發(fā)器轉(zhuǎn)成TTL電平后由單片機STC11F02E接收。STC11F02E接收完從機傳來的全部數(shù)據(jù)后將串口引腳重新切換至P3.0和P3.1引腳,再通過MAX232電平轉(zhuǎn)換芯片傳送到PC機的RS232串口上去,使PC機接收從機傳來的數(shù)據(jù)。整個數(shù)據(jù)傳輸過程就這樣反復地進行。

          一般的RS485總線的多機通信方式是半雙工方式,也就是發(fā)送和接收不是同時進行的,某一個終端設(shè)備在某一時刻只能是發(fā)送狀態(tài)或者是接收狀態(tài),所以采用這種方法來設(shè)計RS232/RS485轉(zhuǎn)換器是合理的。這里的關(guān)鍵問題是如何協(xié)調(diào)好P3.0、P3.1和P1.6、P1.7這兩組串口引腳之間的切換,這可以通過單片機的程序設(shè)計來實現(xiàn)。

          上一頁 1 2 下一頁

          關(guān)鍵詞: 通信協(xié)議

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();