首页 >> 读书频道 >> 电脑 >> VB开发通讯软件上
 
· 第14章 XSL变换
· VB Mscomm控件应
· VB Mscomm控件应
· 第14章 XSL变换
· VB Mscomm控件应
· 编写映射驱动器
· 第14章 XSL变换
· 用VB更换桌面墙纸下
· 一组VB实用小程序函数
· 第14章 XSL变换
· 第14章 XSL变换
· 设计更换屏幕保护的程序
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

VB开发通讯软件上


查看有无更新版本

关键字:VB 2006-9-18

 

一、PC串行通信程序机制 
常用的PC串行通信程序大多利用BIOSINT14H中断,以查询I/O方式完成异步串行通信。
Windows系统提供中断方式驱动的串行通信驱动程序COMM.DRV。通信程序无需直接对串行端口进行操作,而是通过驱动程序这一编程接口进行间接操作。
Windows操作系统中,串行通信采用"事件通知"方式,支持数据按块传送。进行通信时,Windows开辟一个用户定义的输入输出缓冲区,每接收一个字符就产生一个低级硬件中断,串行驱动程序立即取得控制权,并将字符放入输入数据缓冲区,然后将控制权返还正在运行的应用程序。如果输入数据缓冲区满了,驱动程序用当前定义的流控制机制通知发送方停止发送数据。发送数据也采用类似的处理方式,应用程序将需要发送的数据放入输出数据缓冲区,串口每发送一个字符就产生一个低级硬件中断。
二、PC串行口远程通信的硬件配置
串行通信数据链中,计算机一端称为DTE,即数据终端设备;调制解调器一端称为DCE,即数据通信设备。PC串行通信的硬件连接方式分为零Modem连接和Modem连接。
零Modem连接即直接用调制解调器电缆将两台设备连接起来,Modem连接则通过DCE(Modem)将两台PC连接起来。
零Modem连接用于距离15m内两台DTE或DCE设备之间的连接。而Modem连接则通过电话网或专线用于长距离的通信。
TXD和RXD信号线用于计算机和Modem间传输数据信息;RTS从计算机端发送信号到Modem,表示希望把数据传给Modem,若Modem能接收这个数据,它将发送CTS信号给计算机;DTR从计算机端发送信号到Modem,表示计算机已作好通信准备,Modem将DTR信号作为初始化自己的信号,然后给计算机回送数据设置就绪信号DSR;当本地Modem接收到远地Modem的呼叫,则发送RING信号给计算机;Modem应答呼叫后,发送数据载波检测DCD信号到计算机,表示已建立连接。
Modem的工作状态分为命令状态和在线状态。处于命令状态时,Modem对串口发送的信息进行解释,可通过PC串口向Modem发送AT命令对其进行初始化、设置和操作。
例如,初始化命令为:"ATQOV1WOSOΚ1&C1&D2&YO&WO",其含义为:
QO:返回结果码; 
V1:以字符形式显示结果码; 
WO:不返回协商进程结果码; 
SOΚ1:振铃一次,即应答; 
&C1:追踪数据载波信号CD; 
&D2当DTR从开到关时,Modem挂机进入命令状态; 
&YO:Modem上电时重新调出用户方案; 
&WO:将以上设置存为动态设置用户方案0; 
一旦本地Modem与远地Modem建立连接,Modem即处于在线状态,可进行数据传输。此时,Modem不响应AT命令,直接传送所收到的数据。
三、Modem连接远程通信软件的编制
通信过程中大部分的工作由串行通信驱动软件承担。
本文软件的运行环境为AST+4/66d,Hayes公司的ACCURA144+FAX144Modem,Windows3.2,VB3.0专业版。VB3.0专业版中提供了一个MSCOMM.VBX通信控件。它使用户能很方便地通过对控件属性的设置、检测,访问串行通信驱动程序的大多数特性,而不必考虑其实现细节。该控件为"事件驱动",只响应"OnComm"事件,该事件可对已发生的事件或错误进行处理,与CommEvent属性紧密相关。
通信软件、通信驱动软件和Modem之间的通信关系
以下程序实现了通信的基本过程。包括初始化串口和Modem,上位机拨号呼叫下位机,下位机应答并开始定时传输数据,挂机停止传输等功能。
VB3.0编制的通信软件清单如下:
上位机控件清单:
控件名称 属性
Form1Form1Caption ″上位机通信″
MsComm comm1

CommandButton1CallCaption ″拨号″
CommandButton2hangCaption ″挂机″
CommandButton3ExitCaption ″退出″
下位机控件清单
控件名称 属性
Form1Form1Caption ″下位机通信″
MsComm comm1
CommandButton1hangCaption ″挂机″
CommandButton2ExitCaption ″退出″
Timer1Timer1Interval 3000
Text(i)Text(i)
1.串口初始化、设置程序
在程序初始化时,先对串口初始化。因为使用RTS/CTS握手信号的硬件设备只有RTS信号置为高才能接收数据,所以需将MSCOMM通信控件的RTSenable属性设为TRUE。由于Modem在处于命令状态时,通过串口发送的命令以及命令结果均会回显在输入缓冲区中,因此在进入在线状态前,禁止产生EV-RECEIVE事件,避免数据误处理。
由于Windows是多任务系统,在进行数据收发循环处理时,应调用DOEVENTS事件,将控制权交还系统,允许Windows执行其他任务。但应注意,在处理OnComm事件时小心使用DOEVENTS,避免系统又产生OnComm事件,造成嵌套,出现堆栈溢出错误。
Sub Form-Load()
comm1.CommportΚ1′COM1口通信
comm1.SettingsΚ″9600,N,8,1″′波特率9600,无校验,8位数据位1位停止位
comm1.OutBufferSizeΚOUTPACK′设置输出缓冲区大小
comm1.InBufferSizeΚINPACK′设置输入缓冲区大小
comm1.InputLenΚ1′每次从输入缓冲区中取一个字符
comm1.RTSenableΚ-1′RTS信号为高
comm1.RthresholdΚ0′不产生MSCOMM-EV-RECEIVE事件
comm1.PortOpenΚ-1′打开串口
cdΚcomm1.CDHolding′取载波检测信号线原始状态
comm1.outputΚ″ATQOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem
Do DoEventsLoopUntilcomm1.OutBufferCountΚ0
End Sub

VB开发通讯软件上

[ 1 ]
VB开发通讯软件上 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑