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

          新聞中心

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

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

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


          轉(zhuǎn)換器的程序設(shè)計(jì)和設(shè)計(jì)

          轉(zhuǎn)換器的程序設(shè)計(jì)流程

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



          圖5 轉(zhuǎn)換器程序流程圖

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

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

          RS485總線設(shè)計(jì)

          為了保證數(shù)據(jù)傳輸?shù)目煽啃?,必須?guī)定好RS485總線主從式通信的

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

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

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

          表1 信息幀標(biāo)準(zhǔn)結(jié)構(gòu)


          表2 功能


          轉(zhuǎn)換器的試驗(yàn)結(jié)果

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

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

          01 03 23 45 10 db 12

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

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

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



          圖6 采用串口調(diào)試助手對(duì)設(shè)計(jì)的轉(zhuǎn)換器進(jìn)行調(diào)試的結(jié)果

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

          結(jié)論

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

          該轉(zhuǎn)換器已成功應(yīng)用在所設(shè)計(jì)的水泵綜合參數(shù)測(cè)試平臺(tái)上,實(shí)際試驗(yàn)結(jié)果表明該轉(zhuǎn)換器運(yùn)行穩(wěn)定可靠,可應(yīng)用于由PC機(jī)作為主機(jī)的RS485總線的主從式半雙工通信系統(tǒng)當(dāng)中。

          上一頁(yè) 1 2 下一頁(yè)

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

          評(píng)論


          相關(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); })();