<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 利用STC11F02E的RS232/RS485轉換器設計方案

利用STC11F02E的RS232/RS485轉換器設計方案

作者: 時(shí)間:2011-05-15 來(lái)源:網(wǎng)絡(luò ) 收藏

為了便于對分布式的各個(gè)現場(chǎng)測控設備實(shí)現集中控制,現場(chǎng)總線(xiàn)技術(shù)得到了廣泛的應用。RS485總線(xiàn)因其硬件設計和通信協(xié)議簡(jiǎn)單、控制方便、成本低廉、傳輸距離遠以及可掛接多個(gè)從設備等優(yōu)點(diǎn)而成為目前國內應用較多的現場(chǎng)總線(xiàn)之一。

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

采用單片機進(jìn)行RS232/RS485轉換器的設計是比較常用的一種方法。傳統的基于單片機設計的RS232/RS485轉換器存在著(zhù)以下不足之處:

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

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

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

轉換器的總體結構概述

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



圖1 轉換器總體結構框圖

RS232電平轉TTL電平模塊用來(lái)實(shí)現RS232總線(xiàn)和單片機之間的連接,RS485電平轉TTL電平模塊用來(lái)實(shí)現RS485總線(xiàn)和單片機之間的連接,而單片機主控制模塊起到一個(gè)過(guò)渡連接的作用,用于協(xié)調和控制RS232總線(xiàn)和RS485總線(xiàn)之間的數據傳輸。

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

轉換器的硬件電路設計

RS232電平轉TTL電平模塊的電路設計

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

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

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


圖2 RS232電平轉TTL電平電路

RS485電平轉TTL電平模塊的電路設計

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

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

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


圖3 RS485電平轉TTL電平電路

單片機主控制模塊的電路設計

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

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

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


圖4 轉換器總體硬件電路圖

轉換器的工作原理

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

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

轉換器的程序設計和通信協(xié)議設計

轉換器的程序設計流程

轉換器的整個(gè)程序的總體流程圖如圖5所示,主要包括程序初始化模塊、主程序模塊和串行口中斷服務(wù)模塊這三個(gè)部分。



圖5 轉換器程序流程圖

程序初始化模塊主要完成一些寄存器的初始化工作,包括看門(mén)狗設置、設定主機數據接收結束標志位MDE和從機數據接收結束標志位SDE、初始化串行口的連接引腳、初始化串行口設置寄存器和通信波特率、開(kāi)啟串口中斷和總中斷。主程序模塊主要任務(wù)是完成串行口連接引腳之間的有序切換以及數據的發(fā)送。串行口中斷服務(wù)模塊的功能是完成數據的接收并置位標志位MDE和SDE。

由于每次通信結束之后單片機的UART模塊的引腳總是和主機相連的,所以每次通信都必須是由主機發(fā)起的,從機總是處于接收狀態(tài),只有主機尋址到從機時(shí),從機才可向主機發(fā)送數據。

RS485總線(xiàn)通信協(xié)議設計

為了保證數據傳輸的可靠性,必須規定好RS485總線(xiàn)主從式通信的通信協(xié)議。

該轉換器采用的通信協(xié)議在傳送每個(gè)字節數據時(shí)共發(fā)送的數據位有10位和11位兩種,具體采用哪種通信方式可以人為進(jìn)行設置。通信數據以信息幀的格式發(fā)送信息,每一信息幀由多個(gè)字節數據構成,包含地址域、功能域、數據域和CRC校驗域這4個(gè)部分,如表1所示。其中地址域用于選擇要進(jìn)行通信的從機地址;功能域用于指示要執行的具體操作;數據域包含所要傳輸的數據;CRC校驗域用于存放產(chǎn)生的CRC差錯校驗碼,保證數據傳輸的正確性。

通信協(xié)議中規定的通信波特率有2400 bps 、4800 bps 、9600 bps 、19200 bps、38400bps和115200bps六種波特率,默認波特率為9600bps,可以根據實(shí)際需要通過(guò)軟件設定。通信方式和波特率對應的設置參數存于單片機自帶的EEPROM存儲器中。

通信協(xié)議中定義的功能碼及其功能如表2所示。將來(lái)如果需要擴展功能的話(huà),還可以通過(guò)在應用程序中增加相應的功能碼來(lái)增加系統對應的功能,使得系統功能擴展更加靈活。

表1 信息幀標準結構


表2 功能


轉換器的試驗結果

為了方便轉換器的調試,這里采用10位的通信方式,即1位起始位、8位數據位和1位停止位。其中上位機為PC機,通信接口為RS232接口;下位機是以C8051F020單片機為核心設計的水泵綜合參數測試平臺的主控電路板,通信接口為RS485接口。調試軟件使用串口調試助手。上位機和下位機的連接就是采用上面已經(jīng)設計好的RS232/RS485轉換器。這里設置從機地址為01H,采用前面設置的功能碼進(jìn)行調試。具體的調試結果如圖6所示。

圖6中第1行豎線(xiàn)左邊的數據是PC機發(fā)送03H功能碼讀取從機外部數據存儲器2345H地址單元開(kāi)始的16個(gè)單元中的數據時(shí)從機返回的數據。主機發(fā)送的數據幀(16進(jìn)制數)為:

01 03 23 45 10 db 12

圖6中第1行豎線(xiàn)左邊部分第1字節代表從機地址,第2字節代表從機返回的功能碼,第3字節為從機發(fā)給主機的數據個(gè)數,后面的16個(gè)字節為所讀取的單元的數據,最后2個(gè)字節為CRC16校驗碼。重復發(fā)送相同功能碼時(shí)可以看到返回的數據是一樣的,說(shuō)明通信正常。

圖6中第2行豎線(xiàn)右邊的數據是PC機發(fā)送10H功能碼對從機外部數據存儲器2345H地址單元開(kāi)始的16個(gè)單元寫(xiě)入數據時(shí)從機返回的數據。主機發(fā)送的數據幀(16進(jìn)制數)為:

01 10 23 45 10 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff a7 21

圖6中第2行豎線(xiàn)右邊部分第1字節代表從機地址,第2字節代表從機返回的功能碼,第3和第4字節分別為外部數據存儲器地址的高字節和低字節,第5字節代表寫(xiě)入的數據個(gè)數,最后2個(gè)字節為CRC16校驗碼。重復發(fā)送相同功能碼時(shí)可以看到返回的數據是一樣的,說(shuō)明此時(shí)通信也正常。在發(fā)送10H功能碼之后再發(fā)送03H功能碼進(jìn)行檢查,可以看出從機返回的外部數據存儲器2345H地址單元開(kāi)始的16個(gè)單元中的數據和剛才寫(xiě)入的數據是相同的,由此可知對應功能碼的操作正確,而且通信也正常。



圖6 采用串口調試助手對設計的轉換器進(jìn)行調試的結果

從上面的試驗可以看出該轉換器可以實(shí)現PC機和RS485總線(xiàn)的正常通信,說(shuō)明所設計的轉換器符合預期的要求。

結論

本文利用單片機STC11F02E的串口引腳可以在P3.0、P3.1引腳和P1.6、P1.7引腳之間隨意切換的特性,設計了一個(gè)簡(jiǎn)單實(shí)用的RS232/RS485轉換器。該轉換器結構非常簡(jiǎn)單,只用到了三片常用集成芯片外加少量外圍器件便可完成總體設計,極大地減小了體積和成本,而且轉換器的電源還可以通過(guò)PC機的USB接口提供的5V電源來(lái)供電,可以省去另外配置電源的麻煩。

該轉換器已成功應用在所設計的水泵綜合參數測試平臺上,實(shí)際試驗結果表明該轉換器運行穩定可靠,可應用于由PC機作為主機的RS485總線(xiàn)的主從式半雙工通信系統當中

51單片機相關(guān)文章:51單片機教程


存儲器相關(guān)文章:存儲器原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>