当前位置:首页 > 单片机 > 单片机
[导读]在许多实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠的实现数据的远程传输是这些监测系统必须解决的问题。在监测现场,为了降低系统的成本,往往采用单片机系统作为数据采集和记录单元;在中央控

在许多实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠的实现数据的远程传输是这些监测系统必须解决的问题。在监测现场,为了降低系统的成本,往往采用单片机系统作为数据采集和记录单元;在中央控制中心,常常利用PC机来完成人机会话及与监测现场的通信。数据的远程传输目前经常用调制解调器(Modem)通过电话线来进行。本文将介绍一套实用的主从式远程通记系统。其下位机由16位单片机80C196KB承提,上位机的管理平台则基于界面友好、功能强大的Visual Basic 6.0。

1 80C196与PC间的通讯方式

用80C196KB单片机的串行接口和调制解调器以及现有的电话线来实现远程双向通讯的系统方框图如图1所示。

在利用现有电话线进行数据传输的串行通讯时,必须把将要传送的数据按先后顺序,在公共信道上逐位传送。

串行通讯对字符编码、字符格式和传输速度都有具体规定,必须严格遵守。

异步串行通讯数据的传送格式由四部分组成,即起始位、数据位、奇偶校验位和终止位。通讯协议要求在发送端每传送一个字符都必须要有起始位、数据位、奇偶校验位和一个终止位的字符串;而在接收端,也要按照起始位、数据位、奇偶校验位和一个终止位的字符串进行计数接收。

2 80C196KB与Modem间的接口

RS-232C的标准规定,逻辑“0”表示其电位应在+5~+15V之间,逻辑“1”表示其电位应在-5~-15V之间,而80C196KB单片机串口电闰为TTL电平,因此必须要通过电平转换才能符合串行通讯标准。具体的接口电路如图2所示。

电路中采用IN-TERSIL公司生产的只需+5V供电的串行收/发驱动器芯片ICL232来进行电平的转换和驱动。当终端(196KB)处于操作规程状态并可接收数据时,为了能将此信息传送给MODEM,则必须使用管脚4上的数据终端就绪(DTR)信号;同样地,为使终端设备(196KB)能够将数据传输的信息通知调制解调器,就必须使用管脚7上的请求发送(RTS)信号。

由图2可见,单片机DB(9芯)只给调制解调器的RS-232接口(9芯)提供三条信号线,即发送数据(TXD)、接收数据(RXD)和信号地SG。为了使数据链路能正常工作,可将调制解调器RS-232接口的4脚(DTR)和7脚(RTS)置高,以使之长期有效。

表1列出了RS-232的管脚及描述。表中的DTE为数据终端设备(Data Terminal Equipment)。本文中指下位机80C196KB和上位机PC,而DCE则表示数据通信设备(Data Communication Equipment)。本文中指调制解调器。

表1 RS-232各引脚描述

3 波特率设置

为了实现与远方中央控制计算机正确可靠地通讯,双方波特率必须一致。考虑到所选信道为公用电话网,为兼顾数据传输的高速性和可靠性,文中将波特率定为9600bps。

3.1 下位机部分

80C196KB串行口的波特率取决于16位波特率寄存器的内容。该寄存器应以连续2个字节进行装载,低位字节优先。寄存器的最高位用于选择波特率发生器的输入时钟源,最高位为1,选用XTAL1(即晶体振荡器)信号为源信号,否则选用自T2CLK引脚的信号为源信号。

80C196KB 的内部时钟信号是经2分频获得的。若以BAUD-REG表示波特率寄存器的装载值,那么在同步模式0时,BUAD-REG=XTAL1/(2×波特率)- 1或T2CLK/波特率;而在异步模式1、2和3时,其BAUD-REG=XTAL1/(16×波特率)-1或T2CLK/(8×波特率)。

80C196KB的通信方式设定为异步方式1时,可进行全双工通讯,其格式为每10位构成一串行帧,其中包括1位起始位,8位数据位和1位停止位。

在本系统中,80C196KB的晶振为12MHz,因此,为使波特率达到9600,需将波特率寄存器赋值为804EH。

表2列出了采用XTAL1作为时钟源时,异步模式下一些常用波特率所对应的波特率寄存器值。应注意,表中所列的值是根据上述公式计算所得的值再加上最高位“1”后得到的。

表2 常用波特率对应的波特率寄存器值

3.2 上位机部分

微机数据采集系统中的一个关键问题是要在Windows环境下编写相应的通信程序。Windows应用编程接口(API)所提供的有关串行通讯的16个函数可以实现完整的通讯功能,但其应用较为复杂。而VB中有一个通讯控件MSComm,通过改变其属性设置和编写相应的程序,就能在Windows环境下方便地实现不同用户的串行通讯要求。

利用下面的语句可以方便地设置传输波特率,MSComm1.Settings=“9600,N,8,1”

表明波特率为9600,无奇偶校验位,8位数据位,1位停止位。

4 80C196KB和中央控制机的通讯

在本系统中,下位机为主叫端,上位机为应答端,它们通过公用电话网进行数据传输。其数据链路的建立、数据传输及结束通信的全过程如表3所列。

表3 数据传输过程表

调制解调器安装好后,必须预先设置好调制解调器的初始状态,然后再开通。否则通讯将不会成功。用户对Modem初始化状态的设置可以保存在非易失性RAM中。

下面对表3所列的传输过程进行说明。

(1)在握手初期,两端的DTE需对Modem进行复位操作。为此,它们先给本端的Modem发ATZ命令。若Modem能执行重设操作,便会返回结果码OK,若Modem尚未与电话线连接,便返回NO DIALTONE,表示没有拨号音。

(2)两端DTE给各自的Modem发AT&F命令,调入Modem出厂缺省设置。

(3)主叫端DTE(196KB)向应答端Modem发拨号命令ATDT xxxx(ATDT表示音频拨号,xxxx为对端的电话号码)。当对端Modem检测到振铃(RING)后,由PC机控制并回送应答呼叫命令ATA。如果话路正常,则在一定的延时后,两端Modem收到结果码CONNECT 9600,并使Modem的CD指示灯亮,以表明数据传输链路成功建立。

(4)数据传输。

(5)数据通讯完成后,双方Modem要拆链挂机。“+ + +”命令是由数据传输状态转为命令状态的AT指令,它的前后必须有一段时间延时。当Modem状态变为命令状态时,可以用命令ATH来实现挂机。至此,两台Modem间的通讯任务就完成了。此时PC机内已存放了主机传来的数据,将这些数据存入数据库后可作进一步的处理。

5 数据传输的流量控制和侦错纠错

当两端Modem正确可靠地建立起数据链路后就可以进行数据通讯了。在通过电话系统传输数据时,没有一种简单的方法能确保数据正确完整地到达对方。数据错误的发生可能有多种原因。由于串行通讯时数据是逐位发送的,因此即使极小的噪声都有可能在多个位上造成严重错误,当波特率较高时出现错误更严重。在实际应用,常采用XMODEM协议对数据进行打包处理以检测传输过程中出现的错误,若检测到错误信息,则要求重传出现错误的数据信息。理论上讲如果每个数据包都能正确地传送,那么整个数据块也将成功地传送。XMODEM协议按照一套特定的准则控制着数据传输的所有细节,其中包括如何启动传输、包的大小、包的内容、正负应答以及如何完成传输等。

XMODEM协议虽然较为成熟和完美,全过于复杂。本系统借鉴XMODEM协议的设计思想,并针对现场监控数据的特点,设计了一套简洁的流控和侦错协议。从本系统的实际运行情况来看,该协议可保证数据的可靠传输,并能在话路质量较差时多次重发出错的数据帧直到数据传输正确为止。
 
图3为上位机通信子程序的流程图,它主要利用VB6.0的通讯控件MSComm的ON COMM事件。

本系统在每次通信中,由80C196KB送给PC机的有效数据帧共4320帧,每帧113字节。其中有效字节112个,以3个FFH开头,最后1个字节为异或结果,可用于传输后的异或校验。在发送有效数据帧之前,下位机先发一个请求帧(仍为113字节),其帧结构为112个F0H加一异或结果。上位机收到该帧请求信号后,将回送握手成功信号,并作好接收有效数据的准备。下位机收到上位机发回的握手成功信号后,便将有效数据帧逐帧发送。

上位机对每帧数据的均要作异或校验。如有错误的则回送失败信号,并要求下位机重发;正确的则放入缓冲数组以备存库,并回送成功信号。当有效数据帧发送完毕后,下位机将发一个结束帧,其帧结构为112个FCH加一个异或结果。上位机收到该帧结束信号后,发出AT命令“+ + +ATH”以拆链挂机。至此,数据通信过程结束,之后,上位机将缓冲数组里数据存入数据库,以便日后进行数据分析。

6 结束语

利用公用电话网,80C196KB单片机系统可通过Modem与远方监控中心进行通讯。这种系统的软硬件设计方案简单可行,运行成本低,数据传输速率较高。本监控系统已在现场投入使用,经受了实际考验。可推广应用于各类远程通讯系统
 

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭