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

        ?

        利用VB 6.0實(shí)現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程PC與單片機(jī)通信

        2008-04-12 00:00:00張光南馬勝前
        現(xiàn)代電子技術(shù) 2008年8期

        摘 要:根據(jù)對(duì)單片機(jī)系統(tǒng)的遠(yuǎn)程網(wǎng)絡(luò)控制的要求,充分利用VB可視化編程、先進(jìn)的網(wǎng)絡(luò)技術(shù)和并、串行口通信的特點(diǎn),提出一種基于VB 6.0環(huán)境下將WinSock網(wǎng)絡(luò)控件、WINIO并口通信驅(qū)動(dòng)程序以及MsComm串口通信控件相結(jié)合實(shí)現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程PC與單片機(jī)通信的方法,并給出部分原程序。

        關(guān)鍵詞:VB 6.0;WinSock;WINIO;MsComm;EPP;單片機(jī)

        中圖分類號(hào):TP872;TN915.04文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004-373X(2008)08-150-03

        Realization of Longdistance Network PC′s Communication with Single Chip Computer by VB 6.0

        ZHANG Guangnan1,2,MA Shengqian1

        (1.College of Physics and Electronic Engineering,Northwest Normal University,Lanzhou,730070,China;

        2.Arts and Science of Baoji University,Baoji,721007,China)

        Abstract:According to the requirements of longdistance network control of single chip microcomputer,fully using the unique features of VB visual programming,the advanced network technology,parallel and serial communication,by integrated with Winsock network controls,WINIO parallel communication drivers and MsComm serial communication controls in the VB 6.0 software environment.This paper designs a system which can implement longdistance network PC′s communication with single chip computer.

        Keywords:VB 6.0;WinSock;WINIO;MsComm;EPP;single chip microcomputer

        在各種單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,常常遇到單片機(jī)與PC的通信問題,在速度要求不高、傳送距離不遠(yuǎn)的場(chǎng)合一般采用RS 232標(biāo)準(zhǔn)串行接口實(shí)現(xiàn) [1],在傳送距離較遠(yuǎn)的場(chǎng)合,也有學(xué)者研究通過網(wǎng)絡(luò)實(shí)現(xiàn)PC間的通信[2]。但是,要同時(shí)滿足高速度和遠(yuǎn)距離PC與單片機(jī)通信這是一個(gè)迫切需要解決的問題。隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)和網(wǎng)絡(luò)越來越普及,對(duì)單片機(jī)的遠(yuǎn)程控制與測(cè)量的要求也越來越多。本文在結(jié)合現(xiàn)有研究的基礎(chǔ)上,對(duì)相關(guān)的設(shè)計(jì)進(jìn)行一定的改進(jìn)和創(chuàng)新,設(shè)計(jì)一個(gè)遠(yuǎn)程通信系統(tǒng),他由3部分構(gòu)成:遠(yuǎn)端PC、本地端PC和單片機(jī)系統(tǒng)。通過VB可視化編程,遠(yuǎn)端PC利用局域網(wǎng)向本地端PC發(fā)出命令,本地端PC接到命令后,自動(dòng)與單片機(jī)通過打印機(jī)接口以EPP1.9協(xié)議進(jìn)行通信(串行接口作為備用通信口),并將接到的單片機(jī)數(shù)據(jù)實(shí)時(shí)傳送給遠(yuǎn)端PC,以實(shí)現(xiàn)高速遠(yuǎn)程情況下PC與單片機(jī)通信的要求。

        1 系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)

        系統(tǒng)構(gòu)成如圖1所示,遠(yuǎn)端PC通過局域網(wǎng)和本地PC通信,在通信中使用Winsock控件和TCP/IP協(xié)議;本地端PC通過并行通信接口或串行通信接口與單片機(jī)通信,在并口通信中使用WINIO并口通信驅(qū)動(dòng)程序、EPP協(xié)議和LPT打印機(jī)接口,在串口通信中使用MsComm控件、RS 232C協(xié)議和COM口。在此結(jié)構(gòu)中,本地PC端起到中繼的作用,當(dāng)本地端PC接收到從遠(yuǎn)端PC傳送過來的命令,在選擇通信方式后,與單片機(jī)通信,使單片機(jī)向遠(yuǎn)端PC傳送數(shù)據(jù)。

        圖1 系統(tǒng)結(jié)構(gòu)圖

        2 遠(yuǎn)端PC與本地端PC通信設(shè)計(jì)

        TCP/IP 是目前在網(wǎng)絡(luò)通信中廣泛采用的一組完整的網(wǎng)絡(luò)協(xié)議,該協(xié)議的核心是TCP,IP和UDP協(xié)議。TCP/IP 網(wǎng)絡(luò)環(huán)境下應(yīng)用程序通過網(wǎng)絡(luò)系統(tǒng)編程界面套接字(Socket)實(shí)現(xiàn)與內(nèi)核的交互。利用Socket通信編程接口編寫程序,其目的是在TCP/IP所組建網(wǎng)絡(luò)的不同機(jī)器之間利用客戶/服務(wù)器模式建立通信連接,開發(fā)人員只要提供一些基本的連接信息,其余由操作系統(tǒng)內(nèi)核完成。WinSock (Windows Socket) 是Windows 操作系統(tǒng)下的通用的TCP/IP 應(yīng)用程序的網(wǎng)絡(luò)編程接口,通過調(diào)用WinSock的接口函數(shù)來調(diào)用TCP/IP的各種功能。在VB 6.0 中,WinSock 控件對(duì)Windows Sockets API進(jìn)行封裝,使用程序員可以不必了解TCP/IP或調(diào)用底層WinSock API的具體細(xì)節(jié),只要設(shè)置好相應(yīng)屬性,在觸發(fā)的事件過程中作好相應(yīng)處理,就能編寫出網(wǎng)絡(luò)應(yīng)用程序。

        遠(yuǎn)端PC與本地端PC通信通過VB 6.0調(diào)用WinSock控件實(shí)現(xiàn),圖2(a),(b) 分別為其控制界面。需說明以下幾點(diǎn):遠(yuǎn)端PC選擇好要連接的本地端PC的IP地址和網(wǎng)絡(luò)傳送端口后,再發(fā)起聯(lián)機(jī)申請(qǐng);本地端PC網(wǎng)絡(luò)傳送端口必須和遠(yuǎn)端PC傳送端口一致,串行端口選擇是COM1/COM2,并行端口輸入并口地址(378H);遠(yuǎn)端PC在命令輸入?yún)^(qū)輸入命令后,發(fā)送命令按鈕才有效;回傳數(shù)據(jù)區(qū)存放單片機(jī)傳送回來的實(shí)時(shí)數(shù)據(jù)并可保存成文本文件,信息區(qū)存放網(wǎng)絡(luò)工作狀態(tài)、遠(yuǎn)端PC的命令,及單片機(jī)數(shù)據(jù)傳送情況。其工作過程如圖2(c)所示。

        圖2 PC控制界面及通信過程

        3 本地端PC與單片機(jī)通信設(shè)計(jì)

        3.1 本地端PC與單片機(jī)并口通信設(shè)計(jì)

        3.1.1 并行通信接口及協(xié)議

        在速率要求較高的場(chǎng)合,可以利用PC機(jī)上的打印機(jī)接口(CENTRONICS標(biāo)準(zhǔn),DB25芯針座,TTL電平)實(shí)現(xiàn)。并口通信有SPP、EPP和ECP三種工作模式。本文采用EPP協(xié)議。

        (1) EPP協(xié)議[3]

        增強(qiáng)型并行接口協(xié)議EPP(Enhanced Parallel Port),為PC和外設(shè)之間定義了并行雙向通信的標(biāo)準(zhǔn),該協(xié)議通過硬件自動(dòng)握手,能達(dá)到500 kB/S~2 MB/s的通信速率,適合大量數(shù)據(jù)傳輸?shù)耐庠O(shè)進(jìn)行告訴通信。EPP分為EPP1.7和EPP1.9,二者之間的區(qū)別是:EPP1.9需要判斷超時(shí)(避免出現(xiàn)“死循環(huán)”)以及nwait信號(hào)是否有效,而EPP1.7不需要判斷,傳輸速度更快。EPP協(xié)議支持4種操作,包括數(shù)據(jù)寫出、地址寫出、數(shù)據(jù)讀取和地址讀取。

        (2)EPP協(xié)議的寄存器地址及一些主要的引腳定義[4],如表1,表2所示。

        表1 EPP協(xié)議引腳定義

        3.1.2 WINIO并口通信驅(qū)動(dòng)程序

        在VB中無法直接使用輸入/輸出指令來完成對(duì)端口的訪問,尤其是Windows 2000/XP系統(tǒng)對(duì)端口的保護(hù)更加嚴(yán)格。要對(duì)端口進(jìn)行訪問,一般有2種方法:第一種是通過C/C++等編程軟件開發(fā)一些動(dòng)態(tài)鏈接庫(DLL)或ActiveX 控件用于在VB 中調(diào)用來完成對(duì)底層硬件的控制;第二種更為簡(jiǎn)便的方法是到互聯(lián)網(wǎng)上去尋找一些免費(fèi)的DLL 或ActiveX 控件,本系統(tǒng)使用的是網(wǎng)絡(luò)上免費(fèi)的動(dòng)態(tài)鏈接庫文件WINIO.DLL[5](適用于Windows 2000/XP),主要實(shí)現(xiàn)了對(duì)底層并行端口使用的方法。WINIO是一個(gè)綠色環(huán)保軟件,他不需要向注冊(cè)表中添加任何信息,只要把WINIO.VXD,WINIO.SYS,WINIO.DLL放在應(yīng)用程序所在的文件夾下就可以。在使用的時(shí)候,直接將WINIO.BAS引用到工程中,就可以實(shí)現(xiàn)對(duì)端口的控制和訪問。

        3.1.3 并口通信設(shè)計(jì)

        如圖3所示,打印機(jī)口通過單片機(jī)的P1口傳送數(shù)據(jù),nWait和nDstorbe通過P2.0和P2.1與單片機(jī)連接。并行接口與單片機(jī)相連一般有兩種方式:一種是直接連接,另一種是使用雙向驅(qū)動(dòng)器或鎖存器的總線方式[6]。本系統(tǒng)采用第一種方式,能最大限度發(fā)揮EPP速度快的優(yōu)勢(shì),但單片機(jī)易受到不穩(wěn)定信號(hào)的干擾。EPP模式為雙向傳輸協(xié)議,為了簡(jiǎn)化設(shè)計(jì),只進(jìn)行采用單片機(jī)向PC傳送數(shù)據(jù)的單向讀傳送,并口采用EPP1.9模式,支持超時(shí)和nwait判斷。

        本地端PC通過并口與單片機(jī)通信的VB源程序如下:

        If optlpt.Value = True Then′判斷是否選擇并口通信

        Result1 = SetPortVal(Val(\"H\" + \"37A\"),Val(\"H\" + \"24\"),1)′初始化,選擇讀模式

        rdsta: Result2 = GetPortVal(Val(\"H\" + \"379\"),PortVal1,1) ′讀狀態(tài)端口

        buf1 = HexMYM(PortVal1 And HFF)

        If buf1 = \"FE\" Then′nwait有效

        rddata:Result1 = GetPortVal(Val(\"H\" + \"37C\"),PortVal2,1) ′讀數(shù)

        buf2 = HexMYM(PortVal2 And HFF)

        Winsock2.SendData buf2′數(shù)據(jù)送給遠(yuǎn)端PC

        ElseIf buf1 = \"EF\" Then′超時(shí)

        txtreceive.Text =\"并口通信傳輸超時(shí)\" vbCr 

        Winsock2.SendData \"并口通信傳輸超時(shí)\"

        Result1 = SetPortVal(Val(\"H\" + \"379\"),Val(\"H\" + \"FF\"),1) ′去掉超時(shí)位

        Call ShutdownWinIo

        End If

        End If

        3.2 本地端PC與單片機(jī)串口通信設(shè)計(jì)

        MsComm 控件是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,他為應(yīng)用程序提供通過串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。該控件具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機(jī)可以利用串行口與其他設(shè)備實(shí)現(xiàn)輕松連接,簡(jiǎn)單高效地實(shí)現(xiàn)設(shè)備之間的通訊。

        圖3 并口通信硬件連接圖

        PC串行接口COM1/COM2信號(hào)符合RS 232C電氣標(biāo)準(zhǔn),而單片機(jī)串行接口采用TTL邏輯電平,實(shí)現(xiàn)二者之間的異步串行通信需要電平轉(zhuǎn)換芯片。單片機(jī)串行接口有一個(gè)全雙工串行接口,經(jīng)過MAX 232芯片可方便地轉(zhuǎn)換成RS 232電氣標(biāo)準(zhǔn)[7]。

        本系統(tǒng)以串行通信為備用通信方式,本地端PC通過串口與單片機(jī)通信的VB源程序如下:

        If optcom.Value = True Then′判斷是否選擇串口通信

        buf1 = \"\"

        MSComm1.Output = \"?\" ′發(fā)送?

        buf1 = MSComm1.Input

        timedelay 50

        buf1 = buf1 MSComm1.Input′從串口讀取數(shù)據(jù)

        Winsock2.SendData buf1 \"串口數(shù)據(jù)傳送完畢\"

        txtreceive.Text = \"串口數(shù)據(jù)傳送完畢\"

        End If

        3.3 單片機(jī)程序設(shè)計(jì)

        單片機(jī)部分可進(jìn)行并口和串口2種方式的通信,用匯編語言編寫通信子程序。在這里分別給出2種方式的程序流程圖。如圖4(a),(b)所示。

        圖4 程序流程圖

        本系統(tǒng)有如下特色:本地端PC起到中繼作用;這里使用局域網(wǎng)(如果要使用Internet,必須為本地端PC提供固定的IP地址),當(dāng)網(wǎng)絡(luò)連接中斷時(shí),可自動(dòng)重新連接;本地端PC采用并口和串口2種方式與單片機(jī)通信。并口采用EPP1.9模式,單片機(jī)也可判斷超時(shí);遠(yuǎn)端PC可實(shí)時(shí)讀取單片機(jī)中的數(shù)據(jù)。

        本文利用了VB面向?qū)ο蠛涂梢暬幊痰奶攸c(diǎn),將網(wǎng)絡(luò)、并口、串口通信方式相結(jié)合實(shí)現(xiàn)了遠(yuǎn)程PC與單片機(jī)系統(tǒng)的通信,并在大功率開關(guān)電源控制系統(tǒng)上測(cè)試,可完全正常運(yùn)轉(zhuǎn)。本系統(tǒng)給出的方法,對(duì)其他PC通信場(chǎng)合亦有一定參考價(jià)值。

        參 考 文 獻(xiàn)

        [1]范逸之,陳立元.Visual Basic與RS 232串行通信控制[M].北京:清華大學(xué)出版社,2002.

        [2]陸繼翔,余隋懷.基于WinSock 控件實(shí)現(xiàn)局域網(wǎng)上的點(diǎn)到點(diǎn)通信[J].彈箭與制導(dǎo)學(xué)報(bào),2006,26(1):150156.

        [3]汪洋.利用EPP接口協(xié)議實(shí)現(xiàn)高速數(shù)據(jù)通信[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001(6):2122.

        [4]徐曉東,劉江虹.并口EPP模式下的雙機(jī)高速互連[J].內(nèi)蒙古大學(xué)學(xué)報(bào):自然科學(xué)版,2003,34(5):560563.

        [5]網(wǎng)頁http://www.daqchina.net/daqchina/download/winio.htm資料.

        [6]周永基.PC并口EPP通信外圍電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2003,26(10):2934.

        [7]朱立忠 ,馮丹.PC機(jī)與 MCS51單片機(jī)串行通信接口電路的設(shè)計(jì)[J].沈陽工業(yè)學(xué)院學(xué)報(bào),2003,22(2):2224.

        作者簡(jiǎn)介 張光南 男,1981年出生,陜西寶雞人,碩士研究生。研究方向?yàn)橛?jì)算機(jī)測(cè)控技術(shù)。

        馬勝前 男,1954年出生,甘肅天水人,教授,碩士生導(dǎo)師。研究方向?yàn)橛?jì)算機(jī)測(cè)控技術(shù)、信號(hào)處理。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

        特黄熟妇丰满人妻无码| 色婷婷精久久品蜜臀av蜜桃| 性感美女脱内裤无遮挡| 国产综合色在线精品| 激情 人妻 制服 丝袜| 丰满人妻无套中出中文字幕| 亚洲福利一区二区不卡| 欲香欲色天天天综合和网| 麻麻张开腿让我爽了一夜| 乱人伦视频69| 女同在线视频一区二区 | 大屁股流白浆一区二区| av影片在线免费观看| 午夜内射中出视频| 国产精品九九九久久九九| 亚洲在中文字幕乱码熟女| 亚洲 小说区 图片区 都市| 免费国产黄网站在线观看| 国产一区二区精品久久凹凸| 午夜一区二区三区福利视频| 国产精品成熟老女人| 国产三级在线观看免费| 日韩Va亚洲va欧美Ⅴa久久| 亚洲精品一区二区高清| 精品人妻伦九区久久aaa片| 国产成人久久精品区一区二区 | 国产成人精品a视频| 国产亚洲日韩欧美久久一区二区| 精品久久日产国产一区| 麻豆精品国产专区在线观看| 麻麻张开腿让我爽了一夜| 国产精品国产三级国产av创| 日本一区二区三区清视频| 日韩国产精品无码一区二区三区| 色爱区综合激情五月综合小说| 亚洲在线视频一区二区| 红桃av一区二区三区在线无码av| 亚洲欧美日韩精品久久亚洲区 | 亚洲大胆美女人体一二三区| 久久性爱视频| 免费啪啪视频一区|