资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
检验仪器与计算机接口技术串行通信介绍串行通信的基本知识w单工(Simplex),半双工(half- duplex)和全双工(full-duplex)。w起始位(start),奇偶校验位(parity),停止 位(stop)和波特率(baud rate)。异步串行通信数据发送格式RS-232C串行数据接口标准20世纪60年代,随着分时计算机的广泛使用, MODEM也得到了发展,使远程终端可以通过 电话线与远方的主机通信。用来发送串行数 据的MODEM和其他器件通常称为数据通信设 备或DEC;用来收发数据的终端和计算机通 常称为数据终端设备或DTE。为了满足DTE 和DCE之间信号及握手序列的需要,电子工 业协会(Electronic Industries Association或 EIA)开发了一个EIA标准RS-232C。 插件针脚编号RS-232C针脚定义9针针号25针针号通用名RS232C名功能信号方向3 2 7 81 2 3 4 5TXD RXD RTS CTSAA BA BB CA CB保护地 发送数据 接收数据 请求发送 清除发送 IN OUT IN OUT6 5 16 7 8 9 10DSR GND CDCC AB CF数据装置准备好 信号地 接收线信号检测 保留 保留OUT OUT 11 12 13 14 15SCF SCB SBA DB未分配 第二通道接收线信号检测 第二通道清除发送 第二通道发送数据 传输信号单元定时(DCE源) OUT OUT IN OUT416 17 18 19 20DTRSBB DDSCA CD第二通道接收数据 接受信号单元定时(DEC源) 未分配 第二通道请求发送 数据终端准备好OUT OUT IN IN921 22 23 24 25CG CE CH/CI DA信号质量检测 音响指示 数据信号速率选择 发送信号单元定时(DTE源)OUT OUT IN/OUT IN常用针脚定义9针针 脚25针针 脚通用名RS-232C名功能信号方向32TXDBA发送数据IN23RXDBB接受数据OUT74RTXCA请求发送IN85CTSCB清除发送OUT66DSRCC数据设备 准 备好OUT57GNDAB信号地420DTRCD数据终端准 备好INRS-232C的接口信号 DSR DTRwRS-232C规标准接口有25条线,常用的只有7根,它 们是: w(1)联络控制信号线: w数据装置准备好(Data set ready-DSR)有效时( ON)状态,表明通信装置处于可以使用的状态。 w数据终端准备好(Data set ready-DTR)有效时( ON)状态,表明数据终端可以使用。 w这两个信号有时连到电源上,一上电就立即有效。 这两个设备状态信号有效,只表示设备本身可用, 并不说明通信链路可以开始进行通信了,能否开始 进行通信要由下面的控制信号决定。RS-232C的接口信号 RTS CTSw请求发送(Request to send-RTS)用来表示DTE请 求DCE发送数据,即当终端要发送数据时,使该信号 有效(ON状态),向MODEM请求发送。它用来控制 MODEM是否要进入发送状态。 w允许发送(Clear to send-CTS)用来表示DCE准 备好接收DTE发来的数据,是对请求发送信号RTS的 响应信号。当MODEM已准备好接收终端传来的数据 ,并向前发送时,使该信号有效,通知终端开始沿 发送数据线TxD发送数据。 w这对RTS/CTS请求应答联络信号是用于半双工 MODEM系统中发送方式和接收方式之间的切换。在 全双工系统中作发送方式和接收方式之间的切换。 在全双工系统中,因配置双向通道,故不需要 RTS/CTS联络信号,使其变高。连接RS-232C设备简化3线接法用VB编写串行通信程序w在VB中是通过串行端口通信,需要使 用mscomm控件。mscomm控件提供了 一系列标准通讯命令的使用界面。使用 它可以建立与串行端口的连接,通过串 行端口连接到其它通讯设备(例如调制 解调器),发出命令,交换数据,以及 监视和响应串行连接中发生的事件和错 误。 Mscomm控件的常用属性Commport属性:Commport属性设置并返回使用的通信 端口号。mscomm1.CommPort=1 Settings属性:Settings属性设置并返回波特率、奇 偶校验、数据位、停止位参数。mscomm1.Setting=“9600,N,8,1”mscomm1.Setting=“2400,E,7,1”Mscomm控件的常用属性HandShaking属性:HandShaking属性设置并返回通信的握手协议 。 mscomm1.Handshaking=comRTS mscomm1.Handshaking=ComNone PortOpen属性:PortOpen属性设置并返回通讯端口的状态( 开或关)。mscomm1.PortOpen=Truemscomm1.PortOpen=FalseInBufferSize和OutBufferSize属性:InBufferSize和OutBufferSize以字节 的形式设置并返回输入缓冲区和输出缓 冲区的大小。输入缓冲区缺省值为 1024字节,输出缓冲区缺省值为512字 节。Mscomm控件的常用属性InputLen属性:如果把 InputLen 属性设置为 0,那么 在使用 Input 属性时, Communications 控件将读出接收缓冲 区中的所有内容。如果读取以定长的数 据块的形式格式化了的数据时,则需要 将该属性设置为合适的值。Mscomm控件的常用属性Mscomm控件的常用属性Input属性:Input属性被用来保存和接收从接收缓 冲区获取的数据。例如,如果希望从接 收缓冲区获取数据,并将其显示在一个 文本框中,可以使用下面的代码: TxtDisplay.Text = MSComm1.Input。 如果需要获得接收缓冲区的所有内容, 就必须将 InputLen 属性设置为 0。这 可以在设计时或运行时设置。Mscomm控件的常用属性wOutput属性:Output 属性被用来向发送缓冲区发出命令和数据 。发送 AT 命令MSComm1.Output = “ATDT 555-5555“发送文本字符串MsComm1.Output = “ This is a text string “发送 Byte 数组数据MSComm1.Output = OutMscomm控件的常用属性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确定在通讯时是否使 Data Terminal Ready (DTR) 线有效。当 DTREnabel设置为 True,当端口被打开时 Data Terminal Ready 线设置为高电平( 开),当端口被关闭时 Data Terminal Ready 线设置为低电平(关)。当 DTREnable 设置为 False,Data Terminal Ready 线始终保持为低电平。Mscomm控件的常用属性wRTSEnable属性 :RTSEnable确定是否使 Request To Send (RTS) 线有效。当 RTSEnable 设 置为 True,端口打开时,Request To Send 线设置为高电平,端口关闭时, 设置为低电平。当 RTSEnable 设置为 False,Request To Send 线无效,设 置为低电平。 OnComm 事件w根据应用程序的用途和功能,在连接到 其它设备过程中,以及接收或发送数据 过程中,可能需要监视并响应一些事件 和错误。可以使用 OnComm 事件和 CommEvent 属性捕捉并检查通讯事件 和错误的值。 用mscomm控件编程 w用mscomm控件访问串行口的两种方法:n1.轮询法:轮询法就是程序不断地监视端口的信号 线和输入缓冲区,从输入缓冲区中获取数据 。n2.事件驱动法:对于mscomm控件来说,不管是 端口的信号线状态变化,还是接收到了数据,或 是有通信错误发生。端口驱动程序都会产生一个 OnComm事件,设置控件的CommEvent属性来表 示发生了什么事件,并且调用程序的mscomm控 件的OnComm事件处理的代码。我们要做的就是 在OnComm事件中根据不同的事件来做相应的处 理。 轮询法代码示例DoDoEventsBuffer$ = Buffer$ & MSComm1.Input从串行端口读 “OK“ 响应,跳出循环。Loop Until InStr(Buffer$, “OK“ & vbCRLF)事件驱动法代码示例Private Sub MSComm_OnComm () select分支处理语句,根据消息的不同,执行相应 的处理Select Case MSComm1.CommEvent Case comEventBreak CTS 线状态变化,此处添加相应处理语句。Case comEvDSR DSR 线状态变化,此处添加相应处理语句。 comEvReceive 收到 RThreshold 个字符,此处添加相应处理语句 。End Select End SubCL7300和计算机的数据通信wCL7300通信时使用2400波特率,偶校 验,8位数据位,2位停止位。并且要在 计算机和CL7300联机时设置DSR和CTS 信号线为高电平。CL7300的通信数据线wCL7300数据通信线采用标准NULL MODEM解 法。CL7300(25针) 计算机(9针)2(TXD) 2(RXD)3(RXD) 3(RXD)6(DSR) 4(DTR)5(CTS) 7(RTS)7(GND) 5(GND)CL7300通信协议CL7300计算机发送ENQ,询问是否准备好 ? 发送ACK,表明准备好发送数据块(STX开始, ETX结尾) 发送ACK确认接收发送EOT,表示传输结 束发送ACK表示无错误发 生
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号