亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        1 概述

        通信技術(shù)是現(xiàn)代數(shù)據(jù)傳輸過程中不可缺少的重要內(nèi)容,無論是日常生活,還是現(xiàn)代工業(yè)生產(chǎn),計(jì)算機(jī)通信越來越為人們所熟知。例如無線通信技術(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),說明現(xiàn)在可以使用MODOM。數(shù)據(jù)終端準(zhǔn)備好(Dataterminalready-DTR)——有效時(shí)(on)狀態(tài),說明現(xiàn)在可以使用數(shù)據(jù)終端。請(qǐng)求發(fā)送(Requesttosend-RTS)——說明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)說明MODOM已經(jīng)準(zhǔn)備好了接收終端數(shù)據(jù),DCE(數(shù)據(jù)通信設(shè)備)可以向DTE(數(shù)據(jù)終端設(shè)備)輸送數(shù)據(jù)了。連接線信號(hào)檢出(RLSD)——說明DCE已接通通信鏈路,DTE可以準(zhǔn)備接收數(shù)據(jù)了,當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODOM送來的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來的載波信號(hào)解調(diào)成數(shù)字?jǐn)?shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載波檢出(DataCarrierdectection-DCD)線。

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

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

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

        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)用程序提供通過串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。

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

        MSComm 控件的常用屬性

        5 MSComm控件常見使用問題及解決方法

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

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

        Dim i

        For i=0 to 255

        Mscomm1.output=chr(i)

        Next i

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

        接收過程

        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í)際上,通訊過程中,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.

        免费a级毛片无码免费视频120软件| 国产亚洲精品高清视频| 日本一区二区三区在线视频播放| 久久久精品国产亚洲av网深田 | 狠狠躁天天躁中文字幕| 漂亮人妻被黑人久久精品| 欧美洲精品亚洲精品中文字幕| 国产精品自拍视频免费观看| 天天做天天爱夜夜爽毛片毛片| 日韩高清在线观看永久| 久久一区二区三区四区| 国产精品一区又黄又粗又猛又爽| 日本亚洲精品一区二区三| 日本乱偷人妻中文字幕在线| 美女裸体无遮挡免费视频的网站 | 国产一区二区三区av香蕉| 精品少妇一区二区三区免费| 丰满少妇被粗大的猛烈进出视频| 最近日韩激情中文字幕| 中文字幕一区二区三区.| 亚洲美女自拍偷拍视频| 国产高潮视频在线观看| 国产精在线| 91麻豆精品一区二区三区| 国产日产韩国av在线| 亚洲精品无amm毛片| 亚洲AV无码国产成人久久强迫| 日本高清无卡一区二区三区| 欧美性生交大片免费看app麻豆| 亚洲一线二线三线写真| 久久精品成人91一区二区| 亚洲三级香港三级久久| 午夜免费视频| 亚洲美腿丝袜综合一区| av天堂手机在线免费| 日韩精品综合一本久道在线视频| 人人澡人人澡人人看添av| 久久99精品中文字幕在| 日本一区二区三区综合视频| 精品国产精品国产偷麻豆| 在线免费黄网|