微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 80C196KB与PC机之间的远程通讯系统设计

80C196KB与PC机之间的远程通讯系统设计

时间:03-14 来源:互联网 点击:

在许多实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠的实现数据的远程传输是这些监测系统必须解决的问题。在监测现场,为了降低系统的成本,往往采用单片机系统作为数据采集和记录单元;在中央控制中心,常常利用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和中央控制机的通讯

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top