检验仪器与计算机接口通信,检验仪器与计算机接口技术.ppt

本文介绍了串行通信的基础知识,包括单工、半双工和全双工通信方式,以及起始位、奇偶校验位、停止位和波特率的概念。详细解释了RS-232C标准及其针脚定义,探讨了如何使用VB中的mscomm控件实现串行通信,包括编程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

检验仪器与计算机接口技术,串行通信介绍,串行通信的基本知识,单工(Simplex),半双工(half-duplex)和全双工(full-duplex)。起始位(start),奇偶校验位(parity),停止位(stop)和波特率(baudrate)。,异步串行通信数据发送格式,,RS-232C串行数据接口标准,20世纪60年代,随着分时计算机的广泛使用,MODEM也得到了发展,使远程终端可以通过电话线与远方的主机通信。用来发送串行数据的MODEM和其他器件通常称为数据通信设备或DEC;用来收发数据的终端和计算机通常称为数据终端设备或DTE。为了满足DTE和DCE之间信号及握手序列的需要,电子工业协会(ElectronicIndustriesAssociation或EIA)开发了一个EIA标准RS-232C。,插件针脚编号,,RS-232C针脚定义,常用针脚定义,RS-232C的接口信号DSRDTR,RS-232C规标准接口有25条线,常用的只有7根,它们是:(1)联络控制信号线:数据装置准备好(Datasetready-DSR)——有效时(ON)状态,表明通信装置处于可以使用的状态。数据终端准备好(Datasetready-DTR)——有效时(ON)状态,表明数据终端可以使用。这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。,RS-232C的接口信号RTSCTS,请求发送(Requesttosend-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。允许发送(Cleartosend-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。,连接RS-232C设备,,简化3线接法,用VB编写串行通信程序,在VB中是通过串行端口通信,需要使用mscomm控件。mscomm控件提供了一系列标准通讯命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口连接到其它通讯设备(例如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。,Mscomm控件的常用属性,Commport属性:Commport属性设置并返回使用的通信端口号。mscomm1.CommPort=1Settings属性:Settings属性设置并返回波特率、奇偶校验、数据位、停止位参数。mscomm1.Setting=“9600,N,8,1”mscomm1.Setting=“2400,E,7,1”,Mscomm控件的常用属性,HandShaking属性:HandShaking属性设置并返回通信的握手协议。mscomm1.Handshaking=comRTSmscomm1.Handshaking=ComNonePortOpen属性:PortOpen属性设置并返回通讯端口的状态(开或关)。mscomm1.PortOpen=Truemscomm1.PortOpen=False,InBufferSize和OutBufferSize属性:InBufferSize和OutBufferSize以字节的形式设置并返回输入缓冲区和输出缓冲区的大小。输入缓冲区缺省值为1024字节,输出缓冲区缺省值为512字节。,Mscomm控件的常用属性,InputLen属性:如果把InputLen属性设置为0,那么在使用Input属性时,Communications控件将读出接收缓冲区中的所有内容。如果读取以定长的数据块的形式格式化了的数据时,则需要将该属性设置为合适的值。,Mscomm控件的常用属性,Mscomm控件的常用属性,Input属性:Input属性被用来保存和接收从接收缓冲区获取的数据。例如,如果希望从接收缓冲区获取数据,并将其显示在一个文本框中,可以使用下面的代码:TxtDisplay.Text=MSComm1.Input。如果需要获得接收缓冲区的所有内容,就必须将InputLen属性设置为0。这可以在设计时或运行时设置。,Mscomm控件的常用属性,Output属性:Output属性被用来向发送缓冲区发出命令和数据。发送AT命令MSComm1.Output="ATDT555-5555"发送文本字符串MsComm1.Output="Thisisatextstring"发送Byte数组数据MSComm1.Output=Out,Mscomm控件的常用属性,CTSHolding、DSRHolding和CDHolding属性:这三个属性都是用来检测通信端口信号线的状态的,而且这三个属性都是设计时无效,运行时只读的。三个属性返回值都是布尔值(True或者False)。CTSHolding属性用来查询CTS(clear-to-send,准许发送)线的状态。返回值为True表示CTS线为高电平,返回False表示CTS线为低电平。DSRHolding属性用来查询DSR(data-set-ready,数据设备准备好)线的状态。CDHolding属性用来查询CD(carrier-detect,载波检测)线的状态。,Mscomm控件的常用属性,DTREnable属性:DTREnable确定在通讯时是否使DataTerminalReady(DTR)线有效。当DTREnabel设置为True,当端口被打开时DataTerminalReady线设置为高电平(开),当端口被关闭时DataTerminalReady线设置为低电平(关)。当DTREnable设置为False,DataTerminalReady线始终保持为低电平。,Mscomm控件的常用属性,RTSEnable属性:RTSEnable确定是否使RequestToSend(RTS)线有效。当RTSEnable设置为True,端口打开时,RequestToSend线设置为高电平,端口关闭时,设置为低电平。当RTSEnable设置为False,RequestToSend线无效,设置为低电平。,OnComm事件,根据应用程序的用途和功能,在连接到其它设备过程中,以及接收或发送数据过程中,可能需要监视并响应一些事件和错误。可以使用OnComm事件和CommEvent属性捕捉并检查通讯事件和错误的值。,用mscomm控件编程,用mscomm控件访问串行口的两种方法:1.轮询法:轮询法就是程序不断地监视端口的信号线和输入缓冲区,从输入缓冲区中获取数据。2.事件驱动法:对于mscomm控件来说,不管是端口的信号线状态变化,还是接收到了数据,或是有通信错误发生。端口驱动程序都会产生一个OnComm事件,设置控件的CommEvent属性来表示发生了什么事件,并且调用程序的mscomm控件的OnComm事件处理的代码。我们要做的就是在OnComm事件中根据不同的事件来做相应的处理。,轮询法代码示例,DoDoEventsBuffer$=Buffer$&MSComm1.Input从串行端口读"OK"响应,跳出循环。LoopUntilInStr(Buffer$,"OK"&vbCRLF),事件驱动法代码示例,PrivateSubMSComm_OnComm()’select分支处理语句,根据消息的不同,执行相应的处理SelectCaseMSComm1.CommEventCasecomEventBreakCTS线状态变化,此处添加相应处理语句。CasecomEvDSRDSR线状态变化,此处添加相应处理语句。comEvReceive收到RThreshold个字符,此处添加相应处理语句。EndSelectEndSub,CL7300和计算机的数据通信,CL7300通信时使用2400波特率,偶校验,8位数据位,2位停止位。并且要在计算机和CL7300联机时设置DSR和CTS信号线为高电平。,CL7300的通信数据线,CL7300数据通信线采用标准NULLMODEM解法。CL7300(25针)计算机(9针)2(TXD)2(RXD)3(RXD)3(RXD)6(DSR)4(DTR)5(CTS)7(RTS)7(GND)5(GND),CL7300通信协议,

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值