0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于VB可视化编程实现远程通信系统的设计

电子设计 来源:网络整理 作者:佚名 2020-01-07 07:57 次阅读

在各种单片机应用系统的设计中,常常遇到单片机与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传送数据。

基于VB可视化编程实现远程通信系统的设计

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)所示。

基于VB可视化编程实现远程通信系统的设计

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所示。

基于VB可视化编程实现远程通信系统的设计

3.1.2 WINIO并口通信驱动程序

在VB中无法直接使用输入/输出指令来完成对端口的访问,尤其是Windows 2000/XP系统对端口的保护更加严格。要对端口进行访问,一般有2种方法:第一种是通过C/C++等编程软件开发一些动态链接库(DLL)或 ActiveX控件用于在VB中调用来完成对底层硬件的控制;第二种更为简便的方法是到互联网上去寻找一些免费的DLL或ActiveX控件,本系统使用的是网络上免费的动态链接库文件WINIO.DLL(适用于Windows 2000/XP),主要实现了对底层并行端口使用的方法。WINIO是一个绿色环保软件,他不需要向注册表中添加任何信息,只要把 WINIO.VXD,WINIO.SYS,WINIO.DLL放在应用程序所在的文件夹下就可以。在使用的时候,直接将WINIO.BAS引用到工程中,就可以实现对端口的控制和访问。

3.1.3 并口通信设计

如图3所示,打印机口通过单片机的P1口传送数据,nWait和nDstorbe通过P2.0和P2.1与单片机连接。并行接口与单片机相连一般有两种方式:一种是直接连接,另一种是使用双向驱动器或锁存器的总线方式。本系统采用第一种方式,能最大限度发挥EPP速度快的优势,但单片机易受到不稳定信号的干扰。EPP模式为双向传输协议,为了简化设计,只进行采用单片机向PC传送数据的单向读传送,并口采用EPP1.9模式,支持超时和 nwait判断。

本地端PC通过并口与单片机通信的VB源程序如下:

基于VB可视化编程实现远程通信系统的设计

3.2 本地端PC与单片机串口通信设计

MsComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,他为应用程序提供通过串行接口收发数据的简便方法。该控件具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其他设备实现轻松连接,简单高效地实现设备之间的通讯。

基于VB可视化编程实现远程通信系统的设计

PC串行接口COM1/COM2信号符合RS 232C电气标准,而单片机串行接口采用TTL逻辑电平,实现二者之间的异步串行通信需要电平转换芯片。单片机串行接口有一个全双工串行接口,经过MAX 232芯片可方便地转换成RS 232电气标准。

本系统以串行通信为备用通信方式,本地端PC通过串口与单片机通信的VB源程序如下:

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

3.3 单片机程序设计

单片机部分可进行并口和串口2种方式的通信,用汇编语言编写通信子程序。在这里分别给出2种方式的程序流程图。如图4(a),(b)所示。

基于VB可视化编程实现远程通信系统的设计

本系统有如下特色:本地端PC起到中继作用;这里使用局域网(如果要使用Internet,必须为本地端PC提供固定的IP地址),当网络连接中断时,可自动重新连接;本地端PC采用并口和串口2种方式与单片机通信。并口采用EPP1.9模式,单片机也可判断超时;远端PC可实时读取单片机中的数据。

本文利用了VB面向对象和可视化编程的特点,将网络、并口、串口通信方式相结合实现了远程PC与单片机系统的通信,并在大功率开关电源控制系统上测试,可完全正常运转。本系统给出的方法,对其他PC通信场合亦有一定参考价值。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620854
  • 计算机
    +关注

    关注

    19

    文章

    6651

    浏览量

    84544
  • 通信系统
    +关注

    关注

    6

    文章

    1066

    浏览量

    53056
收藏 人收藏

    评论

    相关推荐

    何谓单片机编程可视化?

    何谓单片机编程可视化?可视化编程就是提供给用户可视化的器件模块配置界面使用户在不用关心具体器件工作原理和设置的情况下直接生成所要配置的器件
    发表于 07-08 16:53

    单片机可视化编程

    单片机的可视化编程是不是指在环境下避开复杂的指令编写而通过图形的方式产生指令代码?-在可视化的条件下是否可以观察到仿真的结果?是的。不过仿真的结果不能够直接观察到,而要通过将生成的代码装载到仿真器工具中才能看到。
    发表于 07-08 16:56

    轨道交通路面3G手机移动可视化巡检系统方案

    和动态图像的采集和传送功能;实现视频发送、接收数据通信功能,3G移动可视化巡检即移动影音采集设备,具备双向对讲功能,夜间拍摄功能,要求图像清晰度不低于D1;现场综合接入平台为现场指挥中心(功能要求同应急
    发表于 01-28 10:05

    基于无线的应急现场可视化协作系统设计

    的BYOD应用环境,从而实现随时、随地、随心地跨网络、跨系统、跨设备的应急现场实时再现、可视化沟通与协作,达到应急快速响应、无障碍联动协作、远程应急指挥和决策等。
    发表于 07-26 18:10

    小批量企业可视化电子看板系统(二)

    2.3 可视化 电子看板系统 的关键技术所谓可视化看板,是采用可视化技术,能实现电子看板的可视化
    发表于 11-06 17:50

    可视化MES系统软件

    和客户都会造成损失,为了更好的满足客户需求、实现企业信息,目前企业制造过程中主要还存在以下需求:(1)数据可视化方面。MES系统软件之所以能有效的监控整个车间的生产过程,主要是通过对
    发表于 11-30 19:55

    如何把AD中非可视化区域物件移到可视化区域?

    AD中非可视化区域物件怎么移到可视化区域???
    发表于 09-10 05:36

    什么是可视化系统集成器?

    System View公司是一家位于美国加州的早期创业型公司,公司的主要产品和业务是设计开发当今嵌入式系统集成开发所使用的工具,打破传统,推出更加高效便捷的开发工具。近期该公司推出一款嵌入式系统开发工具,命名为“可视化
    发表于 10-09 07:56

    可视化电子看板系统的岗位需求

    系统 是一个可视化管理的工具,让管理人员更直观的了解实时生产情况,控制了有些工序的生产速度和数量,不是传统的生产得越多越好,使得库存控制在一个能满足客户需求的合理水平,但并不是有些人道听途说的零库存。在
    发表于 10-19 20:07

    基于STM的可视化门禁系统

    基于STM的可视化门禁系统
    发表于 03-07 09:49

    基于stm的可视化门禁系统

    基于stm的可视化门禁系统
    发表于 03-11 09:23

    Python数据可视化

    Python数据可视化:网易云音乐歌单
    发表于 07-19 08:30

    三维可视化的应用和优势

    ,为此三维可视化运维系统登场了。  三维可视化的应用  宏观场景可视化:在特定的环境中对随着时间推移而不断变化的目标实体进行检测,可以直观、灵活、逼真的展示所处区域的情景和环境,可以快
    发表于 12-02 11:52

    可视化编程LCD模组技术特性是什么?

    可视化编程LCD模组技术特性是什么?在编写单片机AT89C2051的控制软件时需注意有哪些事项?
    发表于 06-08 06:13

    如何在Ubuntu下实现可视化代码跟踪调试

    目录一、在Ubuntu下实现可视化代码跟踪调试1.1 安装VSCode1.2 配置调试和编译文件一、在Ubuntu下实现可视化代码跟踪调试1.1 安装VSCode在Ubuntu的应用商
    发表于 12-14 07:02