利用VB 6.0实现网络远程PC与单片机通信

在各种单片机应用系统的设计中,常常遇到单片机与PC的通信问题,在速度要求不高、传送距离不远的场合一般采用RS 232标准串行接口实现,在传送距离较远的场合,也有学者研究通过网络实现PC间的通信。但是,要同时满足高速度和远距离PC与单片机通信这是一个迫切需 要解决的问题。随着信息技术的发展,计算机和网络越来越普及,对单片机的远程控制与测量的要求也越来越多。本文在结合现有研究的基础上,对相关的设计进行 一定的改进和创新,设计一个远程通信系统,他由3部分构成:远端PC、本地端PC和单片机系统。通过VB可视化编程,远端PC利用局域网向本地端PC发出 命令,本地端PC接到命令后,自动与单片机通过打印机接口以EPP1.9协议进行通信(串行接口作为备用通信口),并将接到的单片机数据实时传送给远端 PC,以实现高速远程情况下PC与单片机通信的要求。

1 系统结构与设计

系统构成如图1所示,远端PC通过局域网和本地PC通信,在通信中使用Winsock控件和TCP/1P协议;本地端PC通过并行通信接口或串 行通信接口与单片机通信,在并口通信中使用WINIO并口通信驱动程序、EPP协议和LPT打印机接口,在串口通信中使用MsComm控件、RS 232C协议和COM口。在此结构中,本地PC端起到中继的作用,当本地端PC接收到从远端PC传送过来的命令,在选择通信方式后,与单片机通信,使单片 机向远端PC传送数据。

2 远端PC与本地端PC通信设计

TCP/IP是目前在网络通信中广泛采用的一组完整的网络协议,该协议的核心是TCP,IP和UDP协议。TCP/IP网络环境下应用程序通过 网络系统编程界面套接字(Socket)实现与内核的交互。利用Socket通信编程接口编写程序,其目的是在TCP/IP所组建网络的不同机器之间利用 客户/服务器模式建立通信连接,开发人员只要提供一些基本的连接信息,其余由操作系统内核完成。WinSock(Windows Socket)是Windows操作系统下的通用的TCP/IP应用程序的网络编程接口,通过调用WinSock的接口函数来调用TCP/IP的各种功 能。在VB 6.0中,WinSock控件对Windows Sockets API进行封装,使用程序员可以不必了解TCP/IP或调用底层WinSock API的具体细节,只要设置好相应属性,在触发的事件过程中作好相应处理,就能编写出网络应用程序。

远端PC与本地端PC通信通过VB 6.0调用WinSock控件实现,图2(a),(b)分别为其控制界面。需说明以下几点:远端PC选择好要连接的本地端PC的IP地址和网络传送端口 后,再发起联机申请;本地端PC网络传送端口必须和远端PC传送端口一致,串行端口选择是COM1/COM2,并行端口输入并口地址(378H);远端 PC在命令输入区输入命令后,发送命令按钮才有效;回传数据区存放单片机传送回来的实时数据并可保存成文本文件,信息区存放网络工作状态、远端PC的命 令,及单片机数据传送情况。其工作过程如图2(c)所示。

3 本地端PC与单片机通信设计

3.1 本地端PC与单片机并口通信设计

3.1.1 并行通信接口及协议

在速率要求较高的场合,可以利用PC机上的打印机接口(CENTRONICS标准,DB-25芯针座,TTL电平)实现。并口通信有SPP、EPP和ECP三种工作模式。本文采用EPP协议。

(1)EPP协议

增强型并行接口协议EPP(Enhanced Parallel Port),为PC和外设之间定义了并行双向通信的标准,该协议通过硬件自动握手,能达到500 kB/S~2 MB/s的通信速率,适合大量数据传输的外设进行告诉通信。EPP分为EPP1.7和EPP1.9,二者之间的区别是:EPP1.9需要判断超时(避免出 现“死循环”)以及nwait信号是否有效,而EPP1.7不需要判断,传输速度更快。EPP协议支持4种操作,包括数据写出、地址写出、数据读取和地址 读取。

(2) EPP协议的寄存器地址及一些主要的引脚定义,如表1,表2所示。

时间: 2024-10-29 11:31:51

利用VB 6.0实现网络远程PC与单片机通信的相关文章

vb net vfp6 0 dll-如何利用vfp编写一个dll?如何利用vb.net调用这个dll?

问题描述 如何利用vfp编写一个dll?如何利用vb.net调用这个dll? 问题1需要一个vfp写的dll,代码如下:DEFINE CLASS VpfUpdate AS CUSTOM OLEPUBLICFUNCTION VpfUpdate(tableSource AS String, tableTarget as String) as String USE (tableSource) COPY TO (tableTarget) TYPE Fox2x RETURN tableTargetENDF

VB 6.0能不能和手机上的微信软件进行通讯?怎么给微信软件发送消息?

问题描述 VB 6.0能不能和手机上的微信软件进行通讯?怎么给微信软件发送消息? VB 6.0能不能和手机上的微信软件进行通讯?怎么给微信软件发送消息? 解决方案 微信有一套开发供调用的API,在VB6.0里通过调用这些API然后保证你的网络是通畅的,应该能给微信软件发消息

利用VB.NET访问注册表

访问|注册表 利用VB.NET访问注册表 译者注:访问注册表的例子比较多,然而通过VB.NET访问注册表的例子并不多,本文翻译了一篇MSDN上的利用VB.NET存取注册表的例子,挺详细也挺全面的. ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchimpdragdrop.asp) Cat FrancisVisual Studio TeamMicrosoft Corpo

穷举法破解密码-MPI+VC6.0进行两台PC的并行计算,穷举法破解6-12位的密码(字母和数字组合)的MPI程序

问题描述 MPI+VC6.0进行两台PC的并行计算,穷举法破解6-12位的密码(字母和数字组合)的MPI程序 10C 需要分配任务,任务不知道怎么分配,我打算写控制台程序,先提示输入密码,用"*"显示,然后破解密码,显示密码是什么.怎么写这个程序啊,谢谢各位大神了.我在网上找了好多资料,可是估计是因为编程能力太差,实在写不出来啊.求大家帮帮忙,比较着急这个,谢谢 解决方案 我搭建好了MPI运行环境,只是遇到编程就傻了,实在编不出来,能给出程序吗?本身编程能力比较差,现在马上要交毕业设计

怎样利用vb.net向ACCESS库中存储图片

问题描述 怎样利用vb.net向ACCESS库中存储图片 解决方案 解决方案二:http://topic.csdn.net/t/20060130/11/4537305.html解决方案三:有没有vb.net的实例啊?解决方案四:DimC_FilestreamAsSystem.IO.FileStreamC_Filestream=NewSystem.IO.FileStream(strPicPath,IO.FileMode.Open,IO.FileAccess.Read)Dimbt(C_Filestr

C#利用WMI操作DNS服务器(可远程操作,需要相应权限)_C#教程

using System; using System.Collections.Generic; using System.Text; using System.Data; namespace Yaosansi {     class Test     {         static void Main()         {             MyDnsTEST();         }     /// <summary>     /// MyDnsTEST功能测试   /// C#利

在业务中利用 Web 2.0

虽然 Web 2.0 已经有众多的用户,但有些企业在采纳 Web 2.0 方面却走得太慢.不过,很多公司现在也意识到 Web 2.0 的巨大潜力,并且清楚 YouTube.Twitter 和 SlideShare 等 Web 2.0 服务如何为他们的组织提供价值... 虽然 Web 2.0 已经有众多的用户,但有些企业在采纳 Web 2.0 方面却走得太慢.不过,很多公司现在也意识到 Web 2.0 的巨大潜力,并且清楚 YouTube.Twitter 和 SlideShare 等 Web 2.

如何通过网络远程开机

  电脑加入了局域网,想通过网络远程开机,该如何操作呢? 1.进行硬件及相关准备.首先要确保局域网计算机的主板支持远程网络唤醒功能.可以进入CMOS参数设置,查看"PowreManagementSetup"中是否有"Wake on LAN"项目,如果有将其设置为"Enable". 2.获取工作站网卡的物理地址.先进入计算机的系统,输入"Ipconfig/all"命令,结果中的Physical Address后对应的网卡的物理地

VB 6.0下拉框弹出界面的方式问题,如何收起界面

问题描述 VB 6.0下拉框弹出界面的方式问题,如何收起界面 请问弹出下拉的界面,点击窗体外部,怎么样像combox那样可以自动收起界面呢? 解决方案 直接把你的控件放在窗体上,通过控制visible属性来显示和隐藏.