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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > RS-485通信卡及其應(yīng)用

          RS-485通信卡及其應(yīng)用

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘要:本文介紹了RS-485通信卡方式的特點、使用方法以及在實際中采用VB5編程實現(xiàn)微機與單片機通信的方法和應(yīng)注意的問題。

          本文引用地址:http://www.ex-cimer.com/article/244632.htm

          關(guān)鍵詞:RS-485通信 微機串行通信 VB通信編程

          領(lǐng)域,數(shù)據(jù)采集與傳輸是經(jīng)常性的工作,RS-485協(xié)議通信由于采用差分方式接收,對共模干擾抑制能力強,故廣泛應(yīng)用于領(lǐng)域。

          實現(xiàn)RS-485通信的兩種方法

          微機標(biāo)準(zhǔn)通信適配器滿足RS-232C協(xié)議標(biāo)準(zhǔn),在波形畸變小于10%的條件下,最大傳輸距離為50英尺(約15.24米),最高傳輸速率小于20kbps,無法滿足工業(yè)現(xiàn)場數(shù)據(jù)較遠(yuǎn)距離和較高速率傳輸?shù)囊?。微機要實現(xiàn)RS-485協(xié)議通信可以采用兩種方法:第一種是采用RS-232C與RS-485轉(zhuǎn)換接口裝置;第二種是采用RS-485通信卡,插在微機主板擴展槽上。采用第一種方法的優(yōu)點是硬件裝置安裝簡單,軟件編程相對簡單;缺點中通信速率仍然限制在20kbps以內(nèi)(RS-232C協(xié)議的限制)。第二種方法的優(yōu)點是通信速率較高,可達(dá)921.6kbps;缺點是通信卡需安裝在微機擴展槽上,軟件需安裝通信卡的驅(qū)動程序及進行必要的設(shè)置。

          RS-485通信卡的特點和連接方式

          RS-485通信卡的通信波特率由50bps至921.6kbps可選;通常每卡有兩個通信口,各支持32個節(jié)點,共64個節(jié)點;軟件環(huán)境支持DOS、WINDOWS95、WINDOWS NT。通信聯(lián)接方式可以采用點對點半雙工方式、點對點全雙工方式、多點半雙工方式和多點全雙工方式。

          RS-485通信卡的應(yīng)用

          安裝驅(qū)動程序

          RS-485通信卡隨卡帶有驅(qū)動程序,第一次使用通信卡時須首選安裝驅(qū)動程序,設(shè)置通信卡的I/O地址、中斷號、通信口號等內(nèi)容,以后系統(tǒng)運行時無需再次設(shè)置。

          VB通信軟件的特性

          本例通信軟件是采用VB5.0在WINDOWS95平臺下實現(xiàn)的,數(shù)據(jù)以隨機文件的形式存放。由于WINDOWS不支持對系統(tǒng)I/O端口的直接訪問,因此在WINDOWS下實現(xiàn)串行通信的簡便方法就是利用VB提供的通信軟件MSComm。MSComm軟件中幾個最重要和最常用的屬性是:CommPort 設(shè)置或返回通信端口的編號;其格式為:MSComm.Comm Port=n,其中no 1~99中的任何整數(shù)值。若這個端口不存在,當(dāng)用PortOpen屬性打開端口時,就會產(chǎn)生錯誤。

          Settings設(shè)置或返回波特率、數(shù)據(jù)位、停止位等參數(shù)。例如:MSComm1.Settings=9600,N,8,1

          其中等號右邊的參數(shù)中,每一部分表示通信波特率。第二部分為校驗方式,N表示不校驗;E表示偶校檢;O表示奇校驗;S表示空格校驗;M表示符號校驗。第三部分為數(shù)據(jù)位數(shù)。最后是停止位位數(shù)。

          PortOpen設(shè)置或返回通信口的狀態(tài),若為TRUE,打開通信口;若為FALSE,則關(guān)閉通信口。

          Input從接收緩沖區(qū)取出并返回字符串。

          Output向發(fā)送緩沖區(qū)寫入字符。

          InBuffSize設(shè)置或返回接收緩沖區(qū)字節(jié)值。

          InputLen設(shè)置或返回從緩沖區(qū)讀字符串時每次讀出的字符串個數(shù);若設(shè)置InputLen為0, 則讀緩沖區(qū)時,一次讀出整個緩沖區(qū)內(nèi)容。

          通信協(xié)議

          物理層通信協(xié)議采用RS-485標(biāo)準(zhǔn);鏈路層采用面向字符型規(guī)程;本例采用筆者在現(xiàn)場實際使用的字符型通信規(guī)程,具體數(shù)據(jù)(16進制)格式如表1所示。

          表1

          字頭 命令代碼 數(shù)據(jù)1 數(shù)據(jù)2 校驗 字尾
          FCH 00H~FEH 00H~FEH 00H~FEH 校驗字 FFH
          8位 8位 8位 8位 8位 8位

          其中命令代碼中含有數(shù)據(jù)重發(fā)命令(校驗出錯時),連續(xù)3次校驗出錯,系統(tǒng)應(yīng)告警。

          特別提到的是,本例程序是完成微機與單片機系統(tǒng)之間的串行通信,微機端采用的是VB軟件平臺,在WINDOWS95環(huán)境下編程。由于VB在WINDOWS環(huán)境下是以字符(ANSI碼)方式進行通信,而單片機系統(tǒng)則采用16進制代碼,因此VB在實現(xiàn)通信過程中,對數(shù)據(jù)須進行特殊的轉(zhuǎn)換,才能與單片機系統(tǒng)進行通信。

          程序中所輸出的數(shù)據(jù)只有用CHR()函數(shù)轉(zhuǎn)換,才能使VB輸出16進制數(shù)據(jù),才能使VB輸出16進制數(shù)據(jù),單片機系統(tǒng)才能正常接收。具體程序見程序清單。

          結(jié)語

          RS-485通信卡以其具有較高的通信速率(921kbps)、較強的抗干擾能力和較低的價格,在領(lǐng)域具有較強競爭力,極具實用價值。筆者將RS-485通信卡成功地應(yīng)用于微機與單片機數(shù)據(jù)采集系統(tǒng)的串行通信,微機側(cè)采用VB編制通信及數(shù)據(jù)處理軟件,單片機側(cè)采用匯編語言編程。VB中采用CHR()函數(shù)進行數(shù)據(jù)轉(zhuǎn)換是微機與單片機實現(xiàn)16進制數(shù)據(jù)通信的關(guān)鍵。



          評論


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