基于公话网的远程数据采集与监控系统 xin

更新时间:2024-05-11 02:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

前 言

随着信息时代的到来,信息已经成为我们生活不可缺少的组成部分。人们要想获取信息就必须进行通信,通信是指人与人之间、人与机器之间、机器与机器之间的信息传输、处理或再现信息的过程,它涉及信息的发送者、接收者和传输媒介。由于人们时时刻刻都离不开信息,所以也离不开能够传送信息的通信手段。到2004年上半年,我国固定与移动电话用户总数已经超过4亿,因特网用户达到8000多万。通过各种通信手段,人们已经可以享受到各种方便、快捷的信息通信服务,例如网上视频业务、电子信箱、电子商务、GPRS(通用分组无线业务)、移动漫游、预付费业务等等。

由于数据通讯在工业控制领域的应用越来越广泛,而很多控制系统都需要对分散在现场或者市区的设备进行远程监控和集中管理,以尽可能的保证生命和财产的安全,减少不必要的损失。现在各地区和各单位的电话网络都建设的比较完善,覆盖面积又广,能够实时稳定的传输数据,传输数据快而安全,而且不会出现堵塞和干扰的现象。对于各个机关团体、工矿企业,使用内部现有的公共电话网,减少了架线的过程,设备又比较简单,能够减低成本,实现投资少见效快的效益。使用 Modem(调制解调器)和公共电话网组成的开放式远程监控系统,在传输数据量不是很大的情况下,是一种既经济又可靠的方法。

Modem和公共电话网构成的远程通信系统具有很高的应用价值,可广泛应用于自动抄表系统、小区及机关团体的安全防盗、工业设备的远程监控等领域。如将Modem设置成自动应答方式,可实现无人监控功能,节约的资源和创造的效益更是非常明显的,这也是采用这种方式进行数据传输的最大优点。

目前国外的远程通信技术已经相当成熟,使用Modem和公共电话网

1

构成的远程通信系统己经向标准化、系列化发展。在国内一些生产厂家已经研制开发了很多类似的产品,从总体上看,在通信协议、数据格式等方面,还没有形成统一的标准。其发展趋势将是形成一种标准化、模块化和系列化的产品,以便降低成本,缩短开发周期。

本系统是以公共电话线作为传输媒质进行远程通信的监控系统。该系统能够对远程的工作现场进行实时稳定的监视和控制。本设计属于远程监控研究领域,由前端数据采集部分、公共电话网和终端监控计算机三部分构成。本设计主要工作是对终端采集的数据进行远距离传输,其重点就是对Modem的控制,然后监控主机对接收到的数据能够进行存储、显示,绘制曲线。

2

1 系统整体方案设计

1.1 系统概述

1.1.1 系统框图

整个系统由前端数据采集单元、数据传输电话网和计算机监控主机三部分组成。

整个系统的基本框图如下图1-1所示:

模拟量PC机(监控主机)RS-232电Modem话线通信电话网RS-电232话Modem线单片机(采集单元)开关量脉冲量图2-1 系统的基本框图

1.1.2 系统原理简述

本系统中前端的采集单元对外界各路信息进行采集,随后把各类信号进行处理,变换成数字信号后对其存储。当监控主机通过串口发送AT指令控制本地Modem摘机呼叫时,被叫的远程Modem收到信号以后,振铃,并向监控主机送回铃音,建立连接,被叫摘机应答。链路接通以后,终端开始向监控主机发送数据。发送的数据由于是TTL电平,而PC机串口处是RS-232(异步传输标准接口)逻辑电平,数据只有通过转换才能被主机接收,所以终端发送的数据要通过MAX232集成电路芯片转换成RS-232逻辑电平。而后数据再经过远程Modem由数字信号转变成电话线所能够传输的模拟信号,由只能传送模拟信号的电话线传输到本地Modem。本地Modem接收到数据后,把模拟信号再转换成数字信号,这是由于监控主机只能处理数字信号。监控主机对传送来的远程数据进行存

3

储、处理和分析,绘制曲线并加以显示,对超过阈值的数据所对应的终端发送指令报警,使能够及时准确的采取措施。

1.2 方案论证

系统中各个部分其功能可能有多种方法可以实现,但是从实际应用出发,还要从经济实用方面考虑,选择最佳的方案完成本设计的性能。下面就各个部分的方案进行简要叙述和论证。

1.2.1 单片机与ADC0832作为采集单元

数据采集(DAQ),是指从传感器和其它待测设备等模拟的或数字的被测单元中自动采取非电量的或者电量的信号,然后送到上位机中进行分析、处理。数据采集单元是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。通常,要在数据采集设备采集之前调制传感器信号,包括对其进行增益或衰减和隔离、放大、滤波等。对待某些传感器,还需要提供激励信号。

前端采集单元有两种方案可以选择:第一种以单片机和AD集成电路芯片作为采集单元,第二种以计算机和采集卡作为采集单元。但是在设计硬件电路的时候除了考虑能否满足设计的性能指标,还要尽量使成本达到最低。

在单片机和AD集成电路芯片组成的采集单元中,一般单片机采用89C51,AD芯片采用ADC0809。80C51单片机应用的时间比较长,而且技术也比较成熟,成本比较低,从硬件设计到软件设计国内外发展都比较成熟,而且能够满足本设计性能指标的要求。ADC0809是八位分辨率的AD器件,在一般情况下能够满足要求。

计算机和采集卡的采集单元中,计算机是上位机,而数据采集卡,是实现数据采集(DAQ)功能的计算机扩展卡,可以把控制器和AD芯片集

4

成在一个卡上,可以通过USB、PXI、PCI、PCI Express、火线(1394)、PCMCIA、ISA、Compact Flash等总线接入个人计算机,配合专用的数据采集程序来完成数据采集的功能。

第二种方案中虽然采集卡具有结构简单、采集速度快、处理能力强、传输可靠的优点,但是计算机与采集卡组成的采集单元体积较大,成本比较高,而且第一种方案也可以完成要求的功能。所以从实际的情况看,第一种方案是本设计的最佳选择。

1.2.2 脉冲量测量方法的选择

单片机对脉冲量读入的方法有两种:频率测量法和测量周期法。 频率测量法是指在定时时间内对所测量的脉冲计数。一般由单片机的定时器/计数器T0作为定时器,定时器/计数器T1作为计数器。在T0单位定时时间内,T1的计数值就是脉冲量的频率值。由于在定时时间内,第一个脉冲和最后一个脉冲可能会丢失,这样将导致测量精度降低。脉冲的频率越低,误差也越大。所以频率测量法不适合频率较低的的脉冲。而且在实际应用中,一般采用带同步控制的电路图读取脉冲量。即用门电路实现计数开始与脉冲上升沿的同步控制,可以提高测量的精度。

测量周期法是指在被测脉冲的一个周期内对一个基准脉冲进行计数,基准时间和所得的计数值的乘积就是所测脉冲的周期。在实际应用中,所测脉冲线经过D触发器分频,经分频后的脉冲信号作为/INT0的输入信号,当变为高电平时,控制启动定时器/计数器T0开始定时,即对单片机内部的机器周期脉冲进行计数。当/INT0变为低电平时,产生中断,在中断程序中关闭T0,对计数结果进行处理。T0的计数值乘以机器周期就是测量的脉冲周期。这种方法适合频率比较低的脉冲。

由于在本设计中,要用一个定时器作为波特率产生器、一个定时器用于发送数据时产生1s的定时时间,而89C51只有三个定时器,所以在

5

测量脉冲时,只能用一个定时器。

本文中的一个不同之处就是,我们采用一种新的脉冲频率测量法。由于在频率测量法中,无论是否采用带同步控制的电路图,都需要两个定时/计数器,所以经过改进后,我们让输入脉冲直接和单片机的外部中断连接,当脉冲的下降沿到来时,触发外部中断,同时启动定时器,并在中断中计数脉冲个数,当定时单位时间到时,关断外部中断和关闭定时器,所得的计数值即位所测量脉冲量的频率。这种方法电路结构比上述两种方法简单,只用一个定时器,符合本系统的性能要求。所以选择此种方案。

1.2.3 以串行方式通信的选择

在计算机与计算机,计算机与数据通信终端,终端与终端之间可以以并行方式和串行方式两种通信方式进行通信。

并行通信是构成字符的二进制代码在并行信道上同时传输的方式。并行传输时,一次可以传输一个字符,即8位数据同时进行传输,所以传送数据时需要8根传送线。虽然发送方和接收方不存在同步问题,传输数据的速度也比较快,但是并行传送的线路长度因为长度的增加,干扰就会增加,容易出错,因此而会受到限制,而且传送线越长越多,传输时的代价也就越高,线路投资也越大,所以并行通信方式不适合远距离传输。一般应用在近距离数据传输的场合。

串行通信是构成字符的二进制代码序列在一条信道上以位为单位、按时间顺序并且按位传输的方式。串行传输时,先将要传送的数据转换成串行的方式,然后发送端按位依次一位一位的发送数据,接收端按位接收数据,同时对所传输的字符加以确认,所以发送端和接收端需要采取严格的同步措施,否则接收端将不能正确区分所传输的字符,导致通信失败。虽然传送数据的速度较之并行比较慢,但串行传送数据时只需要

6

一根传送线,比并行传输节省了大量的传送线路,降低了成本,因此多在远距离传输中采用串行通信方式。

本设计是远程通信领域,因此采用串行通信方式。

1.2.4异步通信方式的选择

串行通信又可以以同步和异步两种方式进行传输数据。在低数据率时采用同步方式,在高数据率时采用异步通信方式。

同步通信是一种连续串行传送数据的通信方式,通信双方必须先建立同步,使发送方和接收方的时钟为同步时钟,即波特率一样,时序相同,而且要准确协调。传送数据时将字符组合成数据帧成组发送,数据帧包含一组同步字符使收发双方进入同步,而且一次通信只传送一帧信息,这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定,校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

异步通信是以字符为传送数据的单位,发送方传送字符的时间间隔不确定,发送方可以在任何时刻发送数据,而接收机随时准备接收数据。在传送数据时,每个被传送的字符都前面有起始位,后面有停止位。起始位用以通知接收机开始接收数据,当接收机接到停止位时表示一个字符数据已经接收完,对这个数据进行存储,准备接收下一个数据。通信双方可以使用不同的时钟,能够随时进行通信,不需要同步时钟,通信双方遵守规定的通信协议即可。

异步通信是常用的一种通信方式,异步通信时,虽然由于起始位和停止位的开销比较大,其发送效率比同步传送效率低,但是通信设备简单、

7

便宜,而且比同步更具有灵活性,使用方便,并且在远程通信中能够安全稳定的传输数据。在本设计中单片机和计算机都要求能够随时进行传输和接收数据,所以选择异步通信方式。

1.2.5 RS-232接口标准的选择

在通信时,为了实现计算机、数据终端设备和数据通信设备之间的正确匹配连接,必须按某种规程和接口标准进行联接。所谓接口标准就是明确定义若干信号线,使接口电路标准化、通用化,借助串行通信标准接口,可以使不同类型的数据通信设备很容易实现它们之间的串行通信连接。使用标准接口后,能够很方便的把各种计算机和终端、终端和终端、计算机和计算机有机的连接起来,从而进行通信。接口标准有多种,例如RS-232,RS-422,RS-485等,但本设计中采用的是RS-232接口标准.。

RS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准,也是使用较广泛的一种接口标准。应用于数据终端设备 (DTE -data teminal equipment)和数据通信设备(DCE-data communication equipment)之间作接口,主要适用于模拟通道传输数字信号的场合,比如电话线传送数据,这时串行方式的Modem如果采用EIA-RS-232C作为接口标准,具有很好的负载能力。 S-422和RS-485是在RS-232的基础上发展的接口标准,也是EIA-RS系列标准,它们主要适用于数字系统中。

考虑到RS-232的应用现状,较之后两者成本又比较低,而且也能完成本系统设计所要求的性能指标,所以在本模拟通道(电话线)传送数字信号(计算机和单片机终端所处理的信号)的系统,选择RS-232作为本设计的接口标准。

8

1.3 各部分功能

1.3.1 前端数据采集单元

前端的数据采集单元由控制部分和数据采集部分组成,控制部分以C语言作为控制平台。

采集单元中由单片机89C51作为控制部分。89C51是经常使用的通用型单片机,作为终端控制数据采集和远程Modem。通过C语言对单片机编制程序和对单片机的外围硬件电路进行设计,对所要监控的环境的各类信息进行采集和存储,然后根据主机发送的命令信号,或连接电话线路和本地主机进行通信,或断开连接线路进入待命状态。

数据采集部分又由三部分组成:模拟量采集、脉冲量采集、开关量采集。其中8路模拟量数据的采集部分使用8位分辨率的ADC0809集成电路芯片进行模数转换,然后由单片机的一个I/O口读入。8路开关量的数据采集是由单片机的一个八位I/O口读入的。而2路脉冲量信号的采集部分是由单片机的两个时钟输入口T0和T1读入的。采集来的数据由单片机读入后,对其进行存储和处理。

1.3.2 通信电话网单元

系统中以电话线作为传输媒介,利用现有的公共电话网或公司及机关单位内部电话网,通过Modem与电话线、监控主机和终端进行通信。

由单片机采集来的数据,经过电平转换成RS-232逻辑电平以后,要经过电话网单元传输。当初发明电话后,电话线是专用来传输语音信号的,而语音信号是模拟信号,所以电话线只能传送模拟信号,而不能传输单片机和计算机能够处理的数字信号。因此为了完成对远程数据的传输,就需要把单片机发送的数字信号转变成模拟信号后再通过电话线传输,接收端处再把接收到的模拟信号转变成数字信号,而Modem就能完

9

成这样的功能,所以在发送端和接收端各安装一个Modem,完成数字信号和模拟信号的转变,从而实现数字信号通过模拟通道(电话线)的通信。

利用现有的电话网通信,既达到了监控远程数据的目的,又减少了架线的过程,大大减低了成本,而且传输数据时,受外界干扰较小,稳定可靠性高,传输数据又快。

1.3.3 计算机监控主机单元

本单元以PC机作为监控主机,以VB(Visual Basic)作为监控平台。PC机巡回呼叫各个终端,终端应答后开始传输远程数据,然后PC机通过VB平台对接收到的数据进行存储分析,并通过界面显示站点,时间和当时的数据,绘制并显示曲线图,对于超过阈值的数据报警显示,使站点人工或自动做相应的调整。

1.4 本章小结

本章主要介绍了整个系统是由前端数据采集单元、数据传输电话网和计算机监控主机三部分组成。从经济和性能两方面对设计进行了方案论证。并且介绍了各部分的功能。

10

2 终端采集单元硬件电路设计

2.1 硬件电路组成原理

本设计的采集单元的硬件电路图以8051作为核心控制器件。8路模拟输入是通过8位分辨率的AD转换芯片ADC0809完成模数转换的。8路开关量通过限流电阻与8051的I/O口连接。还有两路脉冲量,是通过T0和T1和单片机连接的。8051单片机使用MAX232接口芯片进行串口电平转换,然后和Modem(调制解调器)连接,Modem另一端和电话线连接进行通信,完成数据的传送和接收。具体的硬件电路组成如下图2-1所

示。

PC机 8路开关量 MAX232 单 片 机 2路脉冲量 ADC0809 8路模拟量 Modem 电话线

Modem 晶振 图2-1 硬件电路组成框图

2.2 硬件电路图的设计

以单片机作为远程主机,对数据进行采集和控制。单片机采用89C51,采集的数据类型有模拟量数据、脉冲量数据、开关量数据。

2.2.1 模拟量采集

8路模拟量数据(IN0~IN7)通过ADC0809模数转换芯片的模拟量输入端口IN-0~IN-7进入ADC0809的模拟量选通开关部分,然后由ADC0809的地址码ADDA、ADDB、ADDC选择8路模拟量中的一路进入ADC0809内部的8位A/D转换器进行逐次逼近型的模数转换,转换得到的数字信号由

11

三态输出数据锁存器输出到ADC0809的端口D0~D7。经模数转化以后由D0~D7口输出的8位数据由8051的P0口读入,然后存储,最后发送给主机。其硬件电路采集电路如图2-2所示。

图2-2 模拟量数据采集硬件电路

2.2.2 脉冲量采集

外界环境中的2路脉冲量数据(f0和f1)是和单片机89C51的两个外部中断输入端/INT0和/INT1口连接的。如果所采集的脉冲量数据是标准的TTL(Transistor-Transistor Logic)电平则能够直接由单片机的/INT0和/INT1口读入,但是如果输入的脉冲量信号是非TTL电平,则必须先经过限幅电路将非TTL电平转换为标准的TTL电平后再由单片机的/INT0和/INT1口读入,随后存储,以待发送。其脉冲量的数据采集硬件电路如图2-3。图中所示是需要经过限幅电路的非TTL电平的脉冲量,经过限幅后的脉冲下降沿出发外部中断的同时启动定时器,中断中计数,定

12

时器定时,单位时间到的时候,停止计数,所得的计数值就是脉冲量的频率值。

P32Vccf0123P33Vccf1123

图2-3 脉冲量数据采集硬件电路

2.2.3 开关量的采集

8路开关量数据经过限流电阻后由单片机的P1口直接读入,其具体的数据采集硬件电路图如下图2-4。

数据采集完以后,由单片机将数据发送出去,经过MAX232接口芯片的TTL电平和逻辑电平的相互转换,再经过调制解调器的调制和解调,以电话线作为传输媒介传送给监控主机。

VCC3.3K3.3K3.3K3.3K3.3K3.3K3.3K3.3KR9R10R11R12R13R14R15R161K987654321R1R2R3R4R5R6R7R8102C1102C2102C3102C4102C5102C6102C7102C8P10P11P12P13P14P15P16P17开关量

图2-4 开关量数据采集硬件电路图

13

2.3 主要器件的说明

2.3.1 单片机STC89C51

(1)STC89C51的基本结构及特点

单片机(microcontroller,又称微控制器)是在一块硅片上集成了各种部件的微型计算机。这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。

STC89C51单片机的基本结构如下图2-5所示。

T0 T1

P0 P1 P2 P3 TXD RXD /INT0 /INT1 图2-5 STC89C51单片机的基本结构 并行接口 串行接口 中断系统 CPU 时钟电路 ROM RAM 定时器/计数器 STC公司生产的STC89C51比以前所用的单片机更小、更轻、成本更低、功耗更低,而性能更好。

其结构特点如下: ①8位CPU;

②片内振荡器及时钟电路;

③程序存储器ROM为4K,数据存储器RAM为512字节; ④3个16位的定时器/计数器; ⑤8个中断源,4个中断优先级;

14

⑥全双工串行口; ⑦布尔处理器;

(2)STC89C51的引脚图及引脚说明

STC89C51单片机采用40引脚双列直插式封装,其引脚图如图2-6,有些引脚有两种功能。

各引脚的功能如下: Vcc:电源+5V。 Vss:接地。

XTAL1和XTAL2:使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。

P0口(P0.0~P0.7):双向I/O口,既可以作为、地址/数据总线口用,也可作普通I/O口用。

P1(P1.0~P1.7):准双向通用I/O口。

P2口(P2.0~P2.7):准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用。

P3口(P3.0~P3.7):多用途端口,既可作普通I/O口用,也可按每位定义的第二功能操作。

ALE / /PROG:地址锁存信号输出端。在访问片外存储器时,若ALE为有效高电平,则P0口输出地址的低8位,可以用ALE信号作外部地址锁存器的锁存信号。其频率是晶振的1/6,可以作系统中其他芯片的时钟源。第二功能/PROG是对EPROM(可擦除可编程ROM)编程时的编程脉冲输入端。

RST/Vpd:复位信号输入端。单片机接通电源后,在时钟电路的作用下,该引脚上出现两个机器周期(24个振荡周期)以上的高电平,使内部复位。第二功能Vpd即备用电源输入端。当主电源Vcc发生故障,

15

降低到低电平规定值时,Vpd将为RAM提供备用电源,以保证存储在RAM中的信号不丢失。

/EA / Vpp:内部和外部程序存储器选择线。/EA=0时访问外部ROM 0000H~FFFFH;/EA=1时,地址0000H~0FFFH空间访问内部ROM,地址1000H~ FFFFH空间访问外部ROM。

/PSEN:片外程序存储器选通信号,低电平有效。

由于STC89C51内部多了一个定时器,因此借用P1.0和P1.1作为定时器2的输入T2和T2EX。 (3)复位电路和时钟产生电路

STC89C51单片机内有由一个反相放大器构成振荡器,可以由它产生时钟。在XTAL1和XTAL2端外接石英晶体作定时元件,内部反相放大器自激振荡,产生时钟。

STC89C51单片机上电时,要对内部进行初始化即复位。单片机有上电自动复位和手工复位两种方式。

图2-6 引脚图

STC89C51单片机连接上电源和地,加上复位电路和时钟产生电路就构成了单片机的最小系统。通过在STC89C51单片机的外部设计外围电路,利用其指令系统,在计算机上编程,然后下载到单片机,上电运行就可以完成所需要的功能。

16

2.3.2 调制解调器及AT指令集

(1).调制解调器

在以电话线作为传输媒介的通信系统中,由于计算机主机或终端的微处理器只能处理二进制的数字信号,而电话线只能传输模拟音频信号。因此,要想利用现有的电话网完成通信,就必须在模拟信号和数字信号之间进行转换,调制解调器就是可以完成此功能的设备。我们只要在计算机与电话线、终端和电话线之间安装调制解调器就可以完成信息的传递了。

调制解调器的英文名字是Modem,是Modulator/Demodulator的缩写形式。调制解调器是能够通过电话线实现计算机通信的一种设备。调制是指把终端或计算机发送的数据调制成可以在电话线上传输的模拟信号;解调是指把电话线上传送的模拟信号转换成计算机或终端可以处理的数字信号。

当接收数据时,调制解调器接收从电话线上传来的模拟信号,然后把模拟信号转换成数字信息,最后把数字信号以串行的方式送到计算机或终端,这其实就是一个解调的过程;在发送数据时,调制解调器接收计算机或终端发送的数字信号,然后把数字信号调制成模拟信号,最后把模拟的信号发送到电话线上,也可以说就是调制的过程。

在实际应用中,我们要考虑调制解调器的安装、速率、性能、通信方式等等。目前市场上有两种调制解调器:外部调制解调器和内部调制解调器。外部调制解调器一般是安装在计算机之外的,通过电缆与计算机连接,拥有独立的电源;内部调制解调器是要插在计算机的一个扩展槽上的扩展卡,需要占用计算机的一个扩展槽,没有独立电源,需要和计算机共用电源。外部调制解调器安装和携带都很方便,并且适用于任何的计算机和终端,我们一般都使用外部的调制解调器。调制解调器也

17

有低速调制解调器、中速调制解调器、高速调制解调器、超高速调制解调器几类,要根据具体的电路需要,选择适当速率的调制解调器。调制解调器按通信方式有同步调制解调器和异步调制解调器两类,远距离通信时,以异步通信方式通信,所以也采用异步调制解调器进行通信。

本设计中,计算机和调制解调器连接时是与计算机的串行连接器连接的。计算机的每个串口都有串行连接器,是和外界通信的物理连接,一般通过电缆把计算机和调制解调器连接起来。串行连接器按其形状和管脚分类,常用的有DB-9、DB-25和DB-37。调制解调器使用的DB-25,计算机的串口一般是DB-9或DB-25。当计算机和调制解调器用电缆连接时,根据计算机串口的不同,就有两种可能的连接图,图2-7是两种连接图。

计算机的DB-25 调制解调器DB-25 计算机的DB-9 调制解调器DB-25

2 2

3 4 5 6 7 8 20 22 3 4 5 6 7 8 20 22 1 2 3 4 5 6 7 8 9 8 3 2 20 7 6 4 5 22 图2-7 计算机与调制解调器的管脚连接图

调制解调器的一端和计算机连接,另一端是和电话线连接。调制解调器通过一个RJxx类型的插头或标准接线盒与电话线连接。在调制解调器的背面有两个地方可以插上电话线,上面分别标着“phone”和“line”,一个供电话线使用,一个是供电话使用。一般将买调制解调器时就带有的电话线的一端插到“line”插口,另一端插到RJxx插座上。将实际连

18

入电话网的电话线插到“phone”插口。调制解调器的封面图如下图2-8,图2-9是电话、调制解调器和计算机的连接图。 电源开关 DB-25 Line phone

电话 插座 实际电话线 电话线 器 电缆 电源线插头 到RJxx插头 实际电话线插头

图2-8 调制解调器封面 图2-9 电话、调制解调器和计算机连接

调制解调计算机 调制解调器与计算机,并与电话连接的时候要把电源关掉,连接以后,开始测试调制解调器,编程调试。 (2)AT指令集

调制解调器在完成通信的过程中,是由计算机或终端发送的调制解调器命令控制的。调制解调器命令集是由一组调制解调器命令组成的,用于配置和测试调制解调器以及建立和断开连接。AT指令集是工业界使用比较广泛的标准。

AT指令一般以AT开头,作为注意码提示是AT指令,每行以回车键结束。下面主要介绍AT指令及其使用说明。

A/,重复上一个命令,不需要使用前缀AT开始,也不需要按回车键; +++:从联机状态转到命令状态,不需要在命令前加AT和回车键; ATO:从命令状态转到联机状态; ATA:人工应答电话呼叫;

ATDT 电话号:使用音频拨号方式拨电话号: ATDP 电话号:使用脉冲拨号方式拨电话号;

ATDP9,电话号:使用脉冲方式先拨外线9,等待由S8寄存器指定的时间

19

(默认2s),然后拨电话号;

ATDP9W电话号:按脉冲方式先拨外线9,等待由S7寄存器指定的时间(默认30s),然后拨电话号; ATDL:重新拨号;

ATE:禁止调制解调器本地回应; ATE1:允许调制解调器本地回应; ATH0:挂机; ATH1:摘机;

ATL:控制扬声器音量为极低音量; ATL1:低音量; ATL2:中等音量; ATL3:高音量; ATM:关闭扬声器;

ATM1:扬声器打开,直到检测到载波; ATM2:扬声器总是打开;

ATM3:检测到载波和调制解调器拨号时关闭扬声器; ATQ:允许响应显示; ATQ1:禁止响应显示; ATQ2:只有发起方才显示;

AT\\T5:通知调制解调器在指定的等待时间(5min)内无活动时断开连接; ATSn=X:将X写入到S寄存器n中; ATSn:显示Sn寄存器的值;

S0 :S0=0禁止自动应答,S0=N为调制解调器应答前电话铃响N次; S1:计数电话铃响的次数(自动应答方式); S2:转义字符的ASCII码(默认为42); S3:回车字符的ASCII码(默认为13); S4:换行字符的ASCII码;

20

S5:回退字符的ASCII码; S6:拨号前等待的时间(s); S7:等待建立载波的时间(s);

S8:指定拨号电话号码数字中每个逗号暂停时间(s); S9:指定载波检测前等待的时间(1/10s);

S10:指定载波丢失后调制解调器终止操作的时间(1/10s); S11:拨号间的间隔时间(us);

S12:转义码序列中字符“+”间暂停的时间(1/50s); S13~S17:保留;

S18:调制解调器自检所需的时间; S19~S24:保留;

S25:DTR信号的最小时间间隔(1/100s); S26:RTS和CTS信号的时间间隔; S27~S35:保留;

S36:S36=0断开连接,S36=1保持连接; S37:调制解调器的传输速率;

S38:调制解调器断开连接前需等待的时间(s); S39:保留;

S40:指定线路没有信号发送时调制解调器自动切断连接的时间; S41:指定第一次建立连接失败时调制解调器重新拨号的时间间隔; S42~S45:保留;

S46:退回到最简单类型连接字符的ASCII码; ATI:请求返回调制解调器型号和版本号; ATI1:对调制解调器的EPROM进行CRC校验; ATI3:返回版本号;

ATV0:按字符串方式显示返回结果码; ATV1:按数字方式显示返回结果码;

21

ATX0:不检测拨号音和忙音,所连接速率都显示CONNECT; ATX1:不检测拨号音和忙音,为连接速率显示相应的结果码;

ATX2:不检测拨号音,如果5s内仍未检测到到拨号音,则显示NO DIAL TONE 结果码;

ATX3:只检测忙音信号,如果拨号时遇忙音,则显示BUZY结果码; ATX4:显示所有结果码; ATY:禁止长空挂断; ATY1:允许长空挂断; AT&A0:应答调制解调器; AT&A1:呼叫调制解调器;

AT&F:将调制解调器的默认设置恢复成当前设置; AT&C:置DCD为ON状态;

AT&C1:收到载波时置DCD为ON状态; AT&D:忽略DTR信号;

AT&D1:DTR由高到低时调制解调器由数据模式进入命令模式; AT&D2:DTR变低时,挂断并进入命令模式; AT&D3:DTR变低时,重新设置调制解调器; AT&L:工作于拨号线; AT&L1:二线专线; AT&L2:四线专线;

AT&R:使能RTS到CTS延迟,延迟时间由S26寄存器确定; AT&R1:使CTS变为高电平,忽略RTS; AT&R2:检测到DCD时使CTS变为高电平; AT&R3:使得CTS跟着RTS状态变化; AT&S:设置DSR为ON状态; AT&S1:摘机时设置DSR为ON状态;

AT&S2:挂断时DSR先保持OFF5s,再变为ON状态;

22

AT&S3:DSR随OH变化; AT&V:查看配置参数; AT&W:保存当前配置;

AT&Zn=M:保存电话号码到调制解调器存储器位置。n为位置号,M为电话号码。

AT指令控制通信的过程:为了通信双方建立连接,应当先拨号,拨号使用D命令,拨号后,调制解调器等待对方Modem发来载波信号,如果在给定时间内检测到载波则可以和对方通信了,如果没有检测到载波就自动释放电话线;收到对方的呼叫以后,Modem可以人工方式(发送命令A)或自动方式应答(设置S0=n);应答后建立连接,就可以通过电话线传送数据了;通信结束后,就要终止连接,发送+++命令使Modem进入命令状态,然后发AT命令H挂断,最后通信结束。

2.3.3 A/D转换芯片ADC0809

A/D转换器是一种能把输入的模拟电压或电流转变成与参考电压成正比的能被单片机或计算机读取的数字信号。本系统中AD转化采用的是8位的A/D转换芯片ADC0809,它是逐次逼近型的A/D转换器。由于价格适中,与单片机的接口和软件操作都比较简单,目前在单片机系统中有着广泛的应用。ADC0809带8个模拟量输入通道,芯片内带有通道地址译码锁存器,输出带有三太数据锁存器,启动信号为脉冲启动方式,每一通道的转换时间大约为100us。ADC0809由两大部分组成:一部分为输入通道,包括8位模拟开关、3条地址线的锁存器和译码器,可以实现8路模拟输入通道的选择;另一部分为一个逐次逼近型的A/D转换器。多路模拟开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 其引脚图和模拟通道地址码如下图2-10和图2-11所示:

23

为了保证模数转换的精度,ADC0809一般采用模拟电路的电源供电以避免数字电路中难以避免的脉冲干扰。对ADC0809的参考电源输入端采用一大一小两个电容进行滤波:大电容(10?F电解电容)用于滤除低频干扰,但由于大电解电容存在较大的分别电感,因而它滤除高频干扰的效果反而不如小电容,因此并联一个高频性能好的小电容用于滤除高频干扰。通常在焊接电路板时,这两个电容都要尽可能地靠近ADC0809的参考电源输入引脚,以取得较好的效果。

地址码C0000111B0011001A0101010选通模拟通道IN0IN1IN2IN3IN4IN5IN6IN7 111 图2-10 ADC0809引脚图 图2-11 模拟通道地址码

(1)ADC0809的各引脚的功能如下: IN0~IN7:8个模拟通道输入端。

START:启动转换信号。START上跳变时所有内部寄存器清0,START下跳变时开始进行A/D转换,A/D转换期间START保持低电平。

EOC:转换结束信号。EOC=0时正在进行转换,EOC=1时转换结束。该状态信号既可以作为查询的状态标志,也可以作为中断请求信号使用。 OE:输出允许信号。信号由CPU读信号和片选信号组合产生.用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0时输出数据线呈高阻状态,OE=1时输出转换得到的数据。

CLOCK:外部时钟脉冲输入端,典型值为640KHZ。

ALE:地址锁存允许信号。在ALE上跳变时将A,B和C地址送入地址锁存器中。

24

A,B,C:通道地址线。A为低位地址,C为高位地址,用于对模拟通道进行选择.CBA的8种组合状态000~111对应了8个通道的选择。

D0~D7:数据输出线。为三态缓冲输出形式,和单片机的数据线直接连接。 Vref(+),Vref(-):参考电压输入端。 (2)ADC0809的特性:

①8路8位A/D转换器,即分辨率为8位。 ②具有转换起停控制端。 ③转换时间为100μs。 ④单个+5V电源供电。

⑤模拟输入电压范围0~+5V,不需零点和满刻度校准。 ⑥工作温度范围为-40~+85摄氏度。 ⑦低功耗,约15mW。 (3)ADC0809的工作过程:

①通过单片机把想要转换的通道地址送到A,B,C上,选择一个模拟通道。

②在通道地址信号有效期间,ALE上升沿把该地址锁存到内部的地址锁存器。

③START引脚上的下降沿则启动A/D转换,对选择的模拟输入进行模数转换。

④变换开始的时候EOC引脚为低电平,当EOC信号变为高电平的时候表示转换结束。

⑤当OE信号为高电平,就打开了输出锁存器的三态门并把转换结果送出给单片机。

2.3.4 MAX232芯片及接口电路

计算机监控主机与单片机终端的通信是建立在RS-232串行通信接口

25

标准上的.但是由于RS-232是用正负电压来表示逻辑状态,RS-232的逻辑0电平规定为+5~+15V,逻辑1电平规定为-15~-5V,与TTL以高低电平来表示逻辑状态的规定不同.因此,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232和TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可以用分立元件,也可以用集成电路芯片。本设计中采用MAX232集成电路接口芯片完成EIA电平到TTL电平之间双向电平的转换。

MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源电压变换成RS-232输出电平所需的+10V或-10V电压。采用此芯片接口的串行通信系统只需要单一的+5V电源就可以了。MAX232的价格适中,硬件接口简单,所以被广泛的采用。

MAX232芯片的引脚图如下图3-6所示.其各引脚的功能具体如下: Cl+, Cl-:倍压器电容接入端,接0.1laF电容; C2+,C2-:电压反相器电容接入端,接0.1gF电容; V+:升压电容接入端,对+5V接0.111F电容; V-:极性变换电容接入端,对地接0.1F电容;

TIin,T2in:TTL/CMOS电平输入端,接单片机输出端口; Tlout. T2out: E1ARS-232-C电平输出端,接串口端口; Rlin, R2in: EIARS-232-C电平输入端,接串口端口; Rlout, R2out: TTTJCMOS电平输出端,接单片机输出端口。

如图2-12引脚图中所示,电容C1,C2,C3,C4及V+,V-是电源变换部分。在实际应用中,期间对电源噪声很敏感。因此,VCC对地要加去耦电容C5,其值为0.1Uf。电容C1,C2,C3,C4都选用电解电容,电容值为1.0uF,可以提高抗干扰的能力。连接电容的时候要尽量靠近器件,注意极性。

26

图2-12 引脚图

RS-232电平与单片机电平不同,通过MAX232进行电平转换.,.MAX232使用单+5V供电,配接四个1uF电容即可完成EIA电平与TTL电平之间的转换.转换后RXD和TXD直接连接单片机的串口TXD和RXD。

2.4 本章小结

本章主要是采集单元的硬件电路的设计。该硬件电路以8051作为核心控制器件。并以单片机STC89C51、A/D转换芯片ADC0809、MAX232芯片等为组成电路。本章还对各组成电路和指令集进行了介绍。

27

3 单片机采集及通信系统软件设计

3.1 模拟量的A/D转换程序设计

在终端采集三种数据:模拟量、开关量和脉冲量。其中开关量和脉冲量数据通过硬件电路的设计直接由单片机端口读入,不需要进行软件的设计,只有模拟量数据要结合单片机与A/D转换芯片ADC0809的硬件设计和相应的软件编程才能读入单片机。

模拟量的数据采集硬件电路如图2-2,从图中可以看出,ADC0809的启动信号START是由单片机的P2.7与/WR信号的或非产生的。而ALE地址允许锁存信号是和START相连的,所以只要向ADC0809发送一条写操作指令就可以把给定的通道地址的模拟量进行转换。输出允许信号OE由单片机的P3.3与读信号的与非产生,所以只要一个读操作命令就可以把转换的结果读入单片机。转换结束信号EOC和单片机的P3.3相连,可以由两种方式读取转换后的数据:中断方式和查询方式。当进行转换的时候,EOC为低电平,当转换结束后EOC则变为高电平,此时就可以申请中断或用程序查询该引脚,然后读取数据。

按照数据采集硬件电路如图2-4的连接方法则可以计算出ADC0809的模拟通道IN0~IN7的地址为7FF8H~7FFFH。

ADC0809进行模数转换的程序流程图如下图3-1(查询方式)和图3-2(中断方式)。IN0是第一个通道,即&IN0是第一个通道的地址;*ad-addr是定义一个指针,使它的初值是第一个通道的地址(ad-addr=&IN0),那么ad-addr每次加1都表示指向下一个通道;X[10]是个能够存放10个数据的数组,每个通道转换结束后,单片机读取的转换结果都存放到该数组中。其基本流程是根据电路图的连接计算出通道的地址以后,先锁定通道0的地址即ad-addr=&IN0,并设置i的初值为0,然后进行模数,转换结束以后把转换结果存放到数组成员X[i]中,然后地址值ad-addr加1,i也加1,再启动模数转换,并把结果存放到X[i]中,依次

28

循环,直到处理完8个通道,这样就完成了8个通道的模拟量数据的A/D转换,单片机则把读取的8路信息存储在数组X[10]中。 开始

初始化 int i=0; *ad-addr;ad-addr= &IN0; int X[10] 启动转换 ad-addr=0 N 转 换 是 否 结 束 P3.3=0 N Y 读数,放入X[i]中X[i]=* N ad-addr Y ad-addr++ ; i++ 结束 图3-1 查询方式流程图

29

开始 初始化 int i=0; flag=0; *ad-addr;ad-addr=&IN0; int X[10]。数据都设为公共变量 开中断 EA=1;EX1=1 N i<8 启动转换 ad-addr=0 N flag=1 Y Y flag=0 Y 结束 1.主程序 开始 读数 X[i]=* ad-addr; ad-addr++;i++;flag=1 结束 2中断程序

图3-2 中断方式流程图

在中断方式流程图中有两部分,一部分是主程序的流程图,一部分是中断程序的流程图。在本设计中,采取查询的方式读取ADC0809的转换结果。

3.2 脉冲量的测量程序设计

本设计中采用一种新的脉冲量的频率测量方法,也是在单位时间内计数。2路脉冲量由单片机的两个外部中断读入。脉冲量的下降沿到来就出发外部中断,同时要启动定时器开始计时,在外部中断中要对输入的脉冲进行计数,直到定时1s的时间到,则关闭外部中断和定时器,然后读取数据即可得到所测脉冲的频率值。

设定的定时时间为1s,这么长的时间,只有由T0先定时100ms,之后再软件定时10次,这样由硬件定时和软件定时结合完成1s的定时。其软件设计流程图如下图4-3。程序设计中,jishu用来表示在定时时间内所测的外部脉冲的个数; tf用来表示定时时间到;A表示1s定时时间内T0中断的次数,用来软件计数;flag用来标志第一个脉冲下降沿的到来,第一个脉冲下降沿到来时启动定时器并计数,而后触发中断时则只计数脉冲个数。所有的变量都设置成全局变量,变量jishu、tf和flag初值都设置成0,A的初值设置为5。具体的软件设计流程分为主程序流程图、定时器中断流程图和外部中断流程图3部分,如下图所示。

下图中只画出了一路(由/INT0输入)脉冲量采集的程序设计流程图,另一路(由/INT1输入)软件设计流程图中只要把变量tf换成tf1,jishu换成jishu1,flag换成flag1,图中是把外部中断程序写到/INT0的中断中,另一路则把外部中断程序写到/INT1的中断中即可。除了以上变化之外,另一路脉冲测量的软件设计中其他的初始化设置及软件设计过程都和下图一样。

30

开始 开始 变量jishu,A,tf T0赋初值 开中断 定时器初始化 A―― Y A=0 N Y N tf=0 tf=1,A=5, 关闭T0 取计数值,关中断,flag=0 结束 结束 Y 1.主程序流程图 开始 2定时器中断流程图 flag=1 flag=1,TR0=1, jishu++ 结束 3.外部中断流程图 图4-3 各部分流程图

31

3.3 单片机串行通信的程序设计

89C51单片机上有通用的异步接收发送器用于串行通信,发送数据时是由TXD端口送出,接收数据时是由RXD端口输入的。还由两个缓冲器SBUF,分别是发送缓冲器和接收缓冲器。发送数据时只要向发送缓冲器中写入数据即可,接收数据时就是读出接收缓冲器中的内容。

在单片机和微机进行通信时,在某一时刻,一个为发送方,一个为接收方,要求使用相同的波特率和相同的传送位数。所以在初始化时,发送器和接收器的串行口的初始化设置要求是一样的。由于一般设置定时器1来产生波特率,所以初始化时先确定定时器1的工作方式——编程TMOD寄存器,然后计算定时器1的初值——装载TH1、TL1,启动定时器。最后确定串行口的控制——编程SCON,开CPU和源中断——编程IE寄存器。初始化结束以后,按照通信协议进行发送和接收数据。其具体约定的协议如下:

当发送机开始发送时,先发送一个@@信号,接收机收到此信号后,如果回答一个&&信号,表示同意接收。当发送机收到&&信号后,开始发送数据,每发一个数据就求一次校验和,数据发送完后立即发送校验和。

接收机接收数据并把数据存储起来,每接收一个数据就计算一次校验和,当接收完数据后,接着便接收发送器传来的校验和,并将它与接收机计算出来的校验和进行比较。如果两者相等,则表示接收正确,接收机回答00H;如果两者不相等,则表示接收不正确,接收机回答0FFH,请求发送机重新发送。

当发送机接收到接收机发送的00H信号后,结束发送。如果发送机收到的时0FFH信号,则要把数据再重新发送一次。

发送方和接收方的发送和接收程序流程图分别如图4-5和图4-6。通过运行异步的发送和接收程序完成单片机和微机之间的数据通信。

32

发送请求信号@@ 串口初始化,设定工作方式 等待发送机联络 设定波特率,启动定时器 设定波特率,启动定时器1 开始 开始 设定串口工作方式 N 发送机请求发送 接收机允许N 发送应答信号&& 发送 Y Y Y 指针初始化,校验指针初始化,校验和清零 和清零 Y N N 节,求校验和 节,求校验和 发送一个数据字接收一个数据字 数据发送完 数据接收完 Y N Y 发送校验和 Y

两者的校验和 接收校验和,并比较 接收正确 Y 校验和相等 Y 发送 00H Y N 结束

结束 发送0FFH 33

图4-5 发送程序流程图

图 4-6 接收程序流程图

3.4 本章小结

本章主要介绍了单片机采集及通信系统软件设计。其中包括模拟量的A/D转换程序设计、脉冲量的测量程序设计、单片机串行通信的程序设计。

34

4 监控计算机通信系统设计

以前对于开发人员来说,串口通信软件设计是件比较困难的事。而现在使用Visual Basic 6.0中的MSComm控件就可以很容易的实现计算机串口通信了。

Visual Basic 6.0是一种新型的现代程序设计语言,是面向对象的程序设计语言,它有专业版和企业版两种。为了方便人们编写串口通信程序,Visual Basic 6.0把串口通信对底层的操作都封装在MSComm控件中。MSComm控件是一种可以完成远程通信的串口通信控件,开发人员只要在自己的应用程序中引用MSComm控件后,对其进行简单的属性设置和相关事件的程序处理,就能进行串行通信了。

4.1 SComm控件的属性及事件

在本系统中,通过Modem和电话线进行远距离的串口通信,关键是如何控制Modem完成数据的发送和接收,这其中包括单片机和监控计算机分别控制远程Modem和本地Modem两部分。但是不论是哪一部分,都是使用AT指令进行Modem控制的。AT指令可以实现Modem的初始化、自动摘机和挂机、数据的接收和发送等操作。在单片机部分可以直接通过串口发送数据(即写入SBUF)就可以控制Modem。而在监控计算机部分则使用Visual Basic 6.0企业版中自带的MSComm串口通信控件来完成串口通信中数据的发送和接收操作。

MSComm控件是专为串口通信设计的控件,在MSComm控件控件中封装了串口通信对底层的所有操作,引用MSComm控件后,需要设置MSComm控件的属性,一般使用MSComm控件的发送属性发送数据,而调用MSComm控件的接收事件接收数据。

MSComm控件有30个属性和一个事件。在这30个属性中,真正用于

35

串口通信的属性不到10个,这些属性和事件可以通过Visual Basic 6.0联机帮助中或VB6.0的集成开发环境中MSComm控件的属性窗口中找到它的全部资料。本文中简要叙述MSComm控件的主要属性和事件。

4.1.1 MSComm控件的属性

这里只介绍和串口通信有关的属性 (1)Commport属性

语法:MSComm1.CommPort[=Value] 作用:设置/返回通讯使用的串口号。 数据类型 :Integer

取值:Value= 1,2,...,表示串口COM1,COM2,...(缺省值为1) 在设计时,value可以设置成从1到16的任何数,但是如果用PortOpen属性打开一个并不存在的端口时,会产生“无效的端口号”错误。 说明:必须在打开端口之前设置CommPort属性。 (2)Settings属性

语法:MSComml.Settings【=Value】

作用:设置或返回通信参数,通信参数包括波特率、奇偶校验位、数据位、停止位。

格式:\数据类型:String

取值:Value=\

BBBB为波特率,下列为合法的波特率设置值。 110,300,600,1200,2400,9600(缺省)

14400,19200,28800,38400,56000,128000,256000\P为奇偶校验(不区分大小写),下列为合法的奇偶校验位: E-偶数校验(even);M-标 记(Mark); N-无奇偶校验(缺省);

36

O-奇 数 校 验 (Odd); S-空格(Space).

D为数据位数,下列为合法的数据位:4,5,6,7,8(缺省)。 S为停止位数,下列为合法的停止位:1(缺省),1.5,2。

MSComm控件Settings属性的缺省值是,“9600,N,8,1”,表示波特率为9600bps,没有奇偶校验位,8个数据位,1个停止位。 (3)PortOpen属性(打用/关闭端口) 语法:MSComml.PortOpen[=Value]

作用:打开或关闭通讯串行端口,在设计时无效。 数据类型:Boolean型。 取值:True/False. 说明:

设置Portopen属性为True打开串口,设置为False关闭串口并清除接收和传输缓冲区。当应用程序终止时,MSComm控件自动关闭串行端口。

在打开串口之前,确定CommPort属性设置为一个合法的端口号。若CommPort属性设置为一个非法的端口号,则当打开该端口时,MSComm控件产生错误。

另外,串行端口设备必须支持Settings属性当前的设置值。如果Settings属性包含硬件不支持的通讯设置值(如停止位设为3),在设计时就会产生“无效的属性值”错误。 (4)OutPut属性(发送数据) 语法:MSConunl.OutPut卜Varian月

作用:向输出缓冲区写数据流并将数据发送出去。该属性在设计时无效,在运行时为只读。 数据类型:Variant型

取值:要传输的文本数据或二进制数据。

37

说明:

传输文本数据时,应将String型数据放入Variant变量,传输二进制数据(即按字节)时,应将Byte型数组数据放入Variant变量。

正常情况下,如果发送ASCI字符串,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null字符等数据时,要以二进制形式发送。 (5)SThreshold属性

语法:MSComml.SThreshold[= Value]

作用:设置或返回发送缓冲区中允许的最小字符数。该属性和MSComm控件的Oncomm事件有关联,详细的解释将放在OnComm事件中。 数据类型:Integer型

取值:发送缓冲区中允许的最小字符数 说明:

若设置Sthreshold属性为a(缺省值),数据传输事件不会产生OnComm事件。若设置Sthreshold属性为1,当传输缓冲区完全空时,MSComm控件产生OnComm事件。

如果在传输缓冲区中的字符数小于value,CommEvent属性设置为comEvSend,并产生OnComm事件。comEvSend事件仅当字符数与Sthreshold交叉时被激活一次。例如,如果Sthreshold等于5,仅当在输出队列中字符数从5降到4时,comEvSend才发生。如果在输出队列中从没有比Sthreshold多的字符,comEvsend事件将绝不会发生。 (6)Input属性

语法:MSComml.Input【=Variant】

作用:从接收缓冲区中接收数据并将数据读入应用程序中。该属性在设计时无效,在运行时为只读。 数据类型:Variant型

38

数值:接收缓冲区中收到的数据。 说明:

接收文本数据时,读入的数据为String型。接收二进制数据时,读入的数据为Byte型数组数据。

只有在串口打开的条件下,才可以使用Input、Output属性· (7)InBuferCount属性

语法:MSComml.InBuferCou【=value】

作用:返回接收缓冲区中已传到但还未取走的字符个数,该属性在设计时无效。

数据类型:Integer型 取值:未取走的字符个数。 说明:

InBufferCount是指已接收,并在接收缓冲区等待被取走数据的字符数,可以把InBufferCount属性设置为Q来清除接收缓冲区。

不要把该属性与InBufferSize属性混淆,InBufferSize属性用来设置整个接收缓冲区的大小。 (8)RThreshold属性

语法:MSComml.RThreshold【=Value】

作用:设置或返回在接收多少个字符数时,产生OnComm事件。与SThreshol 属性相同,该属性也和MSComm控件的Oncomm事件有关联,详细的解释将放在OnComm事件中。 数据类型:Integer型

取值:说明在产生OnComm事件之前要接收的字符数 说明:

当接收字符后,若Rthreshold属性设置为0(缺省值)则不产生Oncomm事

39

件。设置 Rthreshold为1,接收缓冲区收到每一个字符都会使MSComm控件产生OnComm事件。 (8)DTREnabled属性

语法:Mscomml.DTREnabled【=Value】

作用:设置在通讯时是否使DTR信号有效。由本方控制,表示本方准备就绪,可以接收数据。 数据类型:Boolean型。

取值:True(有效)/False(无效)。 说明:

DTREnable属性设置为True,在端口被打开时DTR线设置为高电平(开),当端口被关闭时DTR线设置为低电平(关)。DTREnable设置为False时,DTR线始终保持为低电平。

在使用Modem远程通信时,DTR线设置为高才能摘机通信,DTR线设置为低可以用来完成挂机操作。 (9)RTSEnabled属性

语法:Mscomml.RTSEnable【=Value】

作用:设置是否使RTS线有效。由本方控制,用以请示对方是否允许发送数据。

数据类型:Boolean型·

取值:True(有效)/False(无效)。 说明:

当RTSEnable设置为True,在端口打开时,RTS线设置为高电平,端口关闭时,设置为低电平。

RTS信号主要用于RTS/CTS硬件握手。

40

本文来源:https://www.bwwdw.com/article/eegg.html

Top