当前位置:首页 > 通信技术 > 通信技术
[导读]重点介绍单片机及计算机远程通信的MODEM软件处理方法,并给出部分应用程序供读者参考。

摘要:给出一种用于远程通信的分布式计算机和单片机网络结构。重点介绍单片机及计算机远程通信的MODEM软件处理方法,并给出部分应用程序供读者参考。本系统成功应用于铁路部门的雨量监测。

    关键词:单片机 MODEM 远程通信 监测系统 VB

引言

铁路部门的雨量监测是有关铁路安全的一个重要环节。由雨量过多引起的洪水会影响铁路路基,引发列车交通事故。因此,为了确保交通命脉的安全,应及时将铁路沿线的雨量反馈至铁路管理部门。过去雨量监测是由各站点人工抄记雨量监测仪表数据,再汇总铁路管理部门。显然信息传送不及时,且存在人为因素,备案困难。

微型计算机的发展和计算机通信技术的提高,使得各种信息采集的自动化、实时性变为可能。作者成功地运用微型计算机和单片机组成主从式微机网络,将铁路雨量监测构成一个分布式雨量监测系统。该系统将单片机雨量监测仪采集的数据,自动地由MODEM汇集到系统主计算机,从而使几百公里长的远程通信既经济又可靠,大大提高了铁路部门抗灾的能力。

一、系统结构设计

雨量监测系统是由微型计算机和单片机组成的主从式微机网络。以单片机为核心的雨量监测仪分布在铁路各站点。该仪器功能有采集雨量、存储雨量信息、雨量报警、现场雨量曲线打印以及通信。管理部门以个人计算机为系统主机。雨量监测系统结构如图1所示。

从图1中看出系统主机直接与单片机建立通信联系。由于各站点远离系统主机,在不附加外部连线等硬件设施基础上,利用单片机加MODEM方式以及电话线实现单片机远程。系统主机可对各站部的单片机雨量监测仪进行各种设置及数据采集,单片机雨量监测仪根据雨量情况也可自动向系统主机发送当前雨量数据,这样就可做到及时提供现场的雨量情况。

二、单片机雨量监测仪及其远程通信

各站点的雨量监测仪以8051系列单片机为CPU,辅以定制的液晶显示器、SRAM、热敏式绘图仪、雨量传感器等,其原理框图如图2所示。图中W87E58是MCU,它兼容MCS-51单片机并具有32KB片内EEPROM。

单片机远程通信由ST16C450连接MODEM实现。ST16C450是一种通用异步接收发送器,内部有10个寄存器,其中有MODEM控制寄存器和MODEM状态寄存器。MCU通过这2个寄存器的操作实现对MODEM的控制并了解MODEM的工作状态,从而顺利进行数据通信。ST16C450进行通信前首先要对其进行初始化,即设置波特率、通信数据格式、是否使用中断等。ST16C450初始化后可采用程序查询或中断方式进行通信。

MODEM的使用主要有以下4个操作:

①初始化MODEM;

②拨号;

③应答到来的呼叫;

④挂断线路,使MODEM回到AT命令状态。

MODEM的控制由Hayes AT命令集完成,程序可直接发送(以AT字符开始再加命令和参)数给MODEM。但是,AT命令无法完成系统间的文件传送,发送或接收文件必须由通信软件按预先规定的通信协议完成。

MODEM初始化命令串"AT&FS0=3","&F"重置MODEM,"S0=3"表示应答铃响3次。雨量监测仪MODEM初始化子程序如下:

MSTR:MOV R4,#0

MST0:MOV DPTR,#P3FE ;MODEM状态寄存器地址

MST1:MOVX A,@DPTR

ANL A,#30H

CJNE A,#30H,MST1

MOV DPTR,#P3FD ;通信线状态寄存器

MST2:MOVX A,@DPTR

JNB ACC.5,MST2

MOV DPTR,#MTAB

MOV A,R4

MOVC A,@A+DPTR

JZ MST3

MOV DPTR,#P3F3 ;数据发送保持寄存器

MOVX @DPTR,A

INC R4

SJMP MST0

MST3:RET

MTAB:DB 41H,54H,26H,53H,30H,3DH,33H

DB 0DH,0 ;AT&FS0=3

子程序执行后MODEM应答"OK",表示初始化完成。

MODEM拨号命令串"ATDTxxxxx",xxxxx是电话号码;拨号成功时MODEM将应答以"CONNECT"字符开始的字符串。单睡机与系统主机连接完成后,按通信协议所规定的数据串通信交换数据。数据通信结束后,程序发送挂断线路命令串"+++ATH0",MODEM自动断线,从而完成1次通信。

三、系统主机与雨量监测仪的通信

系统主机软件用VB5.0编制,运行于Windows 95环境。整个软件由通信、日报表、月报表、年报表、设定、曲线图、报警等模块组成,操作平台如图3所示。主机可与30个站点的雨量监测仪连接。

程序中使用MSComm控件,通过向连接在串行口上的MODEM发送AT命令来控制。主机通信状况分为2类:主动通信和被动通信。下面分别加以介绍。

1.主动通信

主机向站点雨量监测仪传送报警设定值及收集当天或前天的雨量数据时称为主动通信。电话图标表示各站点的雨量监测仪,一旦被选中,程序就发出"ATDTxxxxx"拨号命令,雨量监测仪MDOEM处于自动应答方式被连接。MODEM连接成功后,主机会收到"CONNECT 4800"信息,此时,主机就可以向站点发送命令和数据串。如果站点接收到正确数据,根据命令代码(由通信协议规定)就可知道主机是要设定参数还是要收集当天或前天的雨量数据。若是收集雨量数据,站点雨量监测仪将雨量数据传送给主机;主机收到站点正确的雨量数据后,向MODEM发送"+++ATH0"离线挂机命令,结束本次通信。

主站发送的数据串里包括站点号、通信代码、当前日期和时间、警戒值及校验和等信息。用@K和@J作为开始和结束标志。

下面是主动通信的主要源程序:

Private Sub 主动通信(发送代码)

Dim i,j,ss,FsStr,ret

设置充许通信False

For i=0 T0 29 '工区数

If工区选中(i)Then

显示信息"拨号到"+工区名(i)+"..."

FsStr="ATDT"+电话号码(i)+vbCr

'拨号的AT命令

ret=发送AT命令(FsStr,"CONNECT",60000)

'发送拨号命令,限时60s

If ret="正常"Then

FsStr=Format(i,"00")+发送代码

'发送字符串组合

FsStr=FsStr+Format(Now,"yymmddhhmmss")

FsStr=FsStr+设定值

FsStr=FsStr+计算累加和(FsStr)

FsStr="@K"+FsStr+"@J"

ret=发送AT命令(FsStr,"@J",5000)

'发送数据,等待接收串结束符@J

If InStr(接收串,"@KCUO@J")Then

'收到下位机的返回是"错"

显示"返回有错."信息处理

Else

处理接收串 '下位机接收正确

End If

显示"挂机..."信息处理

ret=发送AT命令("+++","OK",3000)

'挂机,等待OK,限时3S

ret=发送AT命令("ATH0"+vbCrLf,"OK",3000)

End If

End If

Next i

End Sub

2.被动通信

    当站点监测到雨量超过警戒值时,就主动拨号给主机,对主机而言就是被动通信。平时主机MODEM也处于自动应答状态,随时可以接收站点呼叫。主机程序接收到正确数据串后,将数据记录到相应文件中保存,点亮操作平台上该站点的报警指示灯提醒用户,同时向站点发送"接收正确"的信息。站点收到主机正确信息后向MODEM发送"+++ATH0"离线挂机命令,结束本次通信。站点发来的数据串里包括站点号、通信代码、各种雨量数据、报警数据及校验和等信息。用@K和@J作为开始和结束标志。

被动通信部分的主要源程序如下:

Private Sub MSComm1_OnComm()

Dim strSh,Shc

Shc=MSComm1.InBufferCount '取接收字符个数

If Shc>0 Then

strSh=MSComm1,Input '取本次接收串

接收串=接收串+strSh

If InStr(接收串,"RING")Then '若是电话铃响

显示"接收数据..."信息算是 '显示接收数据信息

接收串=""

End If

If InStr(接收串,"@J")Then '收到接收串结束答@J

处理接收串 '处理接收串

End If

End If

End Sub

结束语

本系统已成功应用于铁路部门。它具有实时性好、信息传送距离远、可靠性高、电路简单、投资少等优点。它可推广用于其他需要信息采集及远程通信的部门,如气象部门温度和风速收集、水文部门水位和雨量监测;电力部门电网监测等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭