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

在许多实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠的实现数据的远程传输是这些监测系统必须解决的问题。在监测现场,为了降低系统的成本,往往采用单片机系统作为数据采集和记录单元;在中央控制中心,常常利用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与远方监控中心进行通讯。这种系统的软硬件设计方案简单可行,运行成本低,数据传输速率较高。本监控系统已在现场投入使用,经受了实际考验。可推广应用于各类远程通讯系统
 

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

北京 2025年6月9日 /美通社/ -- 2025年6月5日,国家知识产权局官网发布了《关于第二十五届中国专利奖授奖的决定》(国知发运字〔2025〕20号)。同方威视"一种行李物品CT安检系统及其探测器装置...

关键字: BSP 探测器 智能机 系统设计

在一些特殊的工业场合,有时需要将传感器的信号不断的实时采集和存储起来,并且到一定时间再把数据回放到PC机中进行分析和处理。

关键字: PC机

超市水果识别主要依赖人工,计算机视觉成为一种解决方案。然而目前仍面临部分水果识别精度低、终端设备部署困难、误识别图片难处理等挑战。因此,文章基于深度学习对移动端水果识别进行研究,旨在替代人工识别。首先文章构建了包含49种...

关键字: 水果识别 数据集构建 改进注意力机制 ViT 系统设计 模型权重自更新

新3U服务器支持最多18个GPU,搭载双Intel® Xeon® 6900系列P核处理器 加利福尼亚州圣何塞2024年10月10日 /美通社/ -- Super Micro...

关键字: MICRO SUPER 人工智能 系统设计

经过优化的 EDA 和 IP 全面解决方案为台积公司 N2 和 A16 工艺带来强化的计算性能、功耗和工程生产力 摘要: 由Synopsys.ai赋能、可投入生产的人工智能驱动EDA流程面向N2工艺可实现全球领...

关键字: 人工智能 晶体管 系统设计 芯片

PC机所使用的电源是基于一种叫做 “开关模式 ”的技术,所以我们通常把PC电源称为——开关电源(SMPS),它还有一个别名——直流——直流转换器。

关键字: PC机 开关模式 直流

数字可编程变频电源是一种能够根据用户需求调整输出电压和频率的电源设备。它在工业生产和实验室研究等领域中被广泛使用。

关键字: 单片机 可编程电源 系统设计

随着科技的不断发展,计算机与嵌入式系统之间的通信已成为现代电子技术的重要组成部分。PC机与单片机之间的通信关系是其中的重要一环。本文将详细探讨PC机与单片机之间的通信关系,包括串口通信、并口通信、USB通信等,并分析它们...

关键字: 计算机 嵌入式系统 PC机

太阳能供电应用系统的设计需要考虑多个方面,包括太阳能电池板、储能装置、控制模块等。本文将介绍一种基于太阳能供电的应用系统设计方法,并从这几个方面进行详细阐述。

关键字: 太阳能 系统设计

北京2023年8月15日 /美通社/ -- 日前,在第五届OCP China Day 2023(开放计算中国技术峰会)上,浪潮信息正式推出融合架构3.0原型系统,以开创性的系统架构设计实现了计算资源、存储资源、...

关键字: 系统设计 内存 软件定义 数据中心
关闭