999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RS232串口通信技術(shù)在Visual Basic中的應(yīng)用及注意問(wèn)題

2014-04-29 00:00:00宋晶晶

摘要:本文介紹了RS232通信的基本概念以及常用通信技術(shù)。常用通信連線的管腳介紹及連線方法。VB通信控件MSComm控件的使用及常見使用時(shí)的問(wèn)題及解決方法。

關(guān)鍵詞:RS232技術(shù)MSComm控件的使用

1 概述

通信技術(shù)是現(xiàn)代數(shù)據(jù)傳輸過(guò)程中不可缺少的重要內(nèi)容,無(wú)論是日常生活,還是現(xiàn)代工業(yè)生產(chǎn),計(jì)算機(jī)通信越來(lái)越為人們所熟知。例如無(wú)線通信技術(shù),工廠上位機(jī)與下位機(jī)的MES通信等等。它在節(jié)能、保密、自動(dòng)、快速、提高功效等方面也起到了相當(dāng)大的作用。本文主要介紹了常用的串口通信232技術(shù)和VB應(yīng)用串口通信控件技術(shù)及注意事項(xiàng)。

2 串口通信的協(xié)議

串口通信接口的標(biāo)準(zhǔn)有很多種,基本上都是在RS-232標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)行創(chuàng)新形成的,所以,本文主要討論的是RS-232-C。RS-232C標(biāo)準(zhǔn)是在1969年由美國(guó)ETA與BELL等公司聯(lián)合開發(fā)的通信協(xié)議。它主要適用于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信,對(duì)串行通信接口的很多方面都做出了明確規(guī)定。目前市場(chǎng)上出現(xiàn)了很多能夠與該標(biāo)準(zhǔn)兼容的通信設(shè)備,該標(biāo)準(zhǔn)已經(jīng)得到了廣泛的應(yīng)用。

2.1 電氣特性 EIA-RS-232-C規(guī)定了電氣特性、各種信號(hào)線功能等。

在TxD和RxD上:邏輯1(MARK)=-3V~-15V

邏輯0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制線上:

信號(hào)有效(接通,ON狀態(tài),正電壓)=+3~+15V

信號(hào)有效(斷開,ON狀態(tài),負(fù)電壓)=-3V~-15V

2.2 連接器的機(jī)械特性 連接器:由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種烈性的連接器,其引腳的定義也各不相同。

2.3RS-232C的接口信號(hào) 比較常用的接口信號(hào)有9條,分別是:

①聯(lián)絡(luò)控制信號(hào)線:數(shù)據(jù)裝置準(zhǔn)備好(Datasetready-DSR)——有效時(shí)(on)狀態(tài),說(shuō)明現(xiàn)在可以使用MODOM。數(shù)據(jù)終端準(zhǔn)備好(Dataterminalready-DTR)——有效時(shí)(on)狀態(tài),說(shuō)明現(xiàn)在可以使用數(shù)據(jù)終端。請(qǐng)求發(fā)送(Requesttosend-RTS)——說(shuō)明DTE(數(shù)據(jù)終端設(shè)備)需要DCE(數(shù)據(jù)通信設(shè)備)提供數(shù)據(jù)。允許發(fā)送(Cleartosend-CTS)——它是對(duì)發(fā)送數(shù)據(jù)和請(qǐng)求發(fā)送信號(hào)RTs的響應(yīng)信號(hào),該信號(hào)說(shuō)明MODOM已經(jīng)準(zhǔn)備好了接收終端數(shù)據(jù),DCE(數(shù)據(jù)通信設(shè)備)可以向DTE(數(shù)據(jù)終端設(shè)備)輸送數(shù)據(jù)了。連接線信號(hào)檢出(RLSD)——說(shuō)明DCE已接通通信鏈路,DTE可以準(zhǔn)備接收數(shù)據(jù)了,當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODOM送來(lái)的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來(lái)的載波信號(hào)解調(diào)成數(shù)字?jǐn)?shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載波檢出(DataCarrierdectection-DCD)線。

振鈴指示(Ringing-RI)——當(dāng)MODEM收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。

②數(shù)據(jù)發(fā)送與接收線:發(fā)送數(shù)據(jù)(Transmitteddata-TxD)——通過(guò)TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。接收數(shù)據(jù)(Receiveddata-RxD)——通過(guò)RxD終端接收從MODEM發(fā)來(lái)的串行數(shù)據(jù),(DCE→DTE)。

③地線:SG——保護(hù)地信號(hào)線,無(wú)方向。

3 通信方式

3.1 遠(yuǎn)距離通信 遠(yuǎn)距離通信是指?jìng)鬏斁嚯x大于15m的通信,通常會(huì)使用調(diào)制解調(diào)器MODEM,所以可供選擇的信號(hào)線是很多的。

3.2 近距離通信零Modem的最簡(jiǎn)連接(3線制) 如果通信距離比較近,就不需要Modem,只需要直接連接通信雙方就可以了。甚至有時(shí)不需要RS-232C的控制聯(lián)絡(luò)信號(hào),只連接發(fā)送線、接收線、信號(hào)地線就可以實(shí)現(xiàn)通信。

4 Visual Basic MSComm控件介紹

該控件是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它能夠?yàn)閼?yīng)用程序提供通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。

MSComm控件處理通訊的方式有事件驅(qū)動(dòng)方式和查詢方式兩種。

MSComm 控件的常用屬性

5 MSComm控件常見使用問(wèn)題及解決方法

5.1 MSComm控件中“文本格式”的缺陷

本人在VB與儀表的串口通訊軟件操作中發(fā)現(xiàn),儀表的數(shù)據(jù)格式是ASCII文本格式的,因此在以往編寫VB代碼的過(guò)程中,一直也是文本方式接收的。直到最近,一個(gè)項(xiàng)目中需要使用十六進(jìn)制數(shù)據(jù)通訊,方才發(fā)現(xiàn),MSComm空間在接收文本時(shí)存在的問(wèn)題。

Dim i

For i=0 to 255

Mscomm1.output=chr(i)

Next i

起初,我仍用文本方式接收下位機(jī)傳來(lái)的數(shù)據(jù),收到后用(ASC)函數(shù)轉(zhuǎn)為數(shù)據(jù)字節(jié)。按說(shuō)這種方式也是可以的,但是,通訊后查看數(shù)據(jù)長(zhǎng)度時(shí)才發(fā)現(xiàn),很多字節(jié)丟失了!這是怎么回事?經(jīng)過(guò)反復(fù)調(diào)試,終于發(fā)現(xiàn),被丟掉的字節(jié),是某些特定的字符。比如當(dāng)數(shù)據(jù)是FF時(shí),能夠接受,當(dāng)數(shù)據(jù)是D9時(shí),就無(wú)論如何都收不到,MSComm會(huì)丟棄這個(gè)字節(jié),等到下個(gè)“有效”字節(jié)接收到時(shí)才觸發(fā)中斷。原來(lái),MSComm控件在接收字符時(shí)有個(gè)“認(rèn)生”的毛病,如果以字符方式接收數(shù)據(jù),收到“字符”后MSComm會(huì)嘗試對(duì)其進(jìn)行識(shí)別。后來(lái)發(fā)現(xiàn)對(duì)于大于128的字符,在文本接受模式下,這個(gè)字節(jié)被當(dāng)作了ASCII碼對(duì)應(yīng)的字符是MSComm不認(rèn)識(shí)的。

針對(duì)這種情況,我在接收數(shù)據(jù)時(shí),將MSCommINputMode的值設(shè)定為“comInputModeBinary”。此時(shí),MSComm將轉(zhuǎn)為二進(jìn)制接收狀態(tài),不再試圖將接收數(shù)據(jù)辨識(shí)為字符。經(jīng)測(cè)試,在二進(jìn)制接收條件下,MSComm可以接收到所有數(shù)據(jù),不會(huì)再有丟失數(shù)據(jù)現(xiàn)象,將接收到的二進(jìn)制字符按字節(jié)轉(zhuǎn)換成十六進(jìn)制,即可獲取通訊輸入的數(shù)據(jù)。

Dim a1(255) as Byte

For i=0 to 255

chr(i)=i

Next i

Mscomm1.output=a1(i)

Do

DoEvents

Loop until mscomm1. OutBufferCount=0

接收過(guò)程

Mscomm1_OnComm()

Select case ComEvReceive

Dim buffer as variant,i

Mscomm1.Inputmode=ComInputModeBinary

Mscomm1.InputLen=0

Buffer=Mscomm.Input

For i=LBound(buffer) to UBound(buffer)

Debug.pint=buffer(i)

Next i

Case

造成這種結(jié)果的原因在于中文WINDOW的操作系統(tǒng)使用雙字節(jié)字符系統(tǒng)(DBCS)。DBCS系統(tǒng)使用0-128之間的數(shù)字代表字符,大于128的字符代表前導(dǎo)字符,不代表實(shí)際意義,它只是顯示非拉丁語(yǔ)系的字符。

5.2 如何發(fā)送0字符(00H,NULL)

在Mscomm 控件屬性NulDiscard=1

使用二進(jìn)制接收即Mscomm1.Inputmode=ComInputModeBinary

5.3 小技巧

很多技術(shù)文獻(xiàn)中要求用戶先設(shè)定”comInputModeBinary”,再打開串口。實(shí)際上,通訊過(guò)程中,VB允許在打開串口的情況下修改接收數(shù)據(jù)方式,且修改會(huì)立即生效,不必重新開關(guān)串口。我們只要保證不在接收數(shù)據(jù)中途修改這個(gè)參數(shù)就可以了。

6 結(jié)束語(yǔ)

就目前國(guó)內(nèi)的通信而言,RS232技術(shù)雖然很成熟,且有被網(wǎng)絡(luò)技術(shù)取代的趨勢(shì),但是RS232串口通信還是被大量的使用,因此熟悉并掌握它的原理及技術(shù)對(duì)于我們今后維護(hù)和開發(fā)新技術(shù)會(huì)有很好的參考作用。

參考文獻(xiàn):

[1]黃志峰編著.Visual Basic高級(jí)編程實(shí)例精解[M].北京:國(guó)防工業(yè)出版社,2001.

[2]孫秀梅等編著.Visual Basic開發(fā)實(shí)戰(zhàn)1200例[M].北京:清華大學(xué)出版社,2011.

[3]郭天祥編著.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2009.

主站蜘蛛池模板: 色欲国产一区二区日韩欧美| 国内精品91| 中文国产成人精品久久一| 国产一二视频| 国产乱人激情H在线观看| 国产天天色| 久久一本日韩精品中文字幕屁孩| 激情无码字幕综合| 精品91自产拍在线| 久久频这里精品99香蕉久网址| 四虎永久免费地址| 五月天久久婷婷| 国产精品2| 成年人国产视频| 麻豆精品久久久久久久99蜜桃| 一级爆乳无码av| 亚洲精品在线影院| 国产成人艳妇AA视频在线| 亚洲一区精品视频在线| 三上悠亚一区二区| 欧美www在线观看| 亚洲男人天堂2020| 亚洲国产中文精品va在线播放 | 久久香蕉国产线看精品| 99精品国产高清一区二区| 亚洲午夜国产片在线观看| 尤物在线观看乱码| 亚洲国产亚洲综合在线尤物| 国产视频入口| 亚洲乱码视频| 亚洲va精品中文字幕| 97国产精品视频自在拍| 国产福利微拍精品一区二区| 中文字幕日韩久久综合影院| 国产乱人伦偷精品视频AAA| 国产网站在线看| 国产乱子伦精品视频| 色婷婷丁香| 女人18毛片一级毛片在线 | 成人在线亚洲| 少妇精品网站| 麻豆精品在线播放| 国内精品伊人久久久久7777人| 91成人精品视频| 无码中文AⅤ在线观看| 国产日韩AV高潮在线| 天堂在线www网亚洲| 97人妻精品专区久久久久| 国产精品理论片| jijzzizz老师出水喷水喷出| 亚洲区欧美区| 永久免费AⅤ无码网站在线观看| 日本一区二区不卡视频| 特级做a爰片毛片免费69| 欧美亚洲国产精品久久蜜芽| 美女毛片在线| 久久精品无码一区二区国产区| 精品一区二区三区自慰喷水| 91精品综合| 日本妇乱子伦视频| 亚洲欧美日本国产综合在线| 久久免费视频播放| 久久伊人操| 福利姬国产精品一区在线| 欧美一级色视频| 欧美无专区| 国内视频精品| AV不卡无码免费一区二区三区| 找国产毛片看| 亚州AV秘 一区二区三区| 国产美女无遮挡免费视频| 国产又黄又硬又粗| 国产噜噜噜| 伊人激情久久综合中文字幕| 国产一区二区三区精品欧美日韩| 永久天堂网Av| 亚洲品质国产精品无码| 欧美性猛交一区二区三区| 亚洲视频免费在线看| 91小视频在线播放| 亚洲国产理论片在线播放| 欧美成人精品一级在线观看|