单片机远程接口技术设计
摘要
介绍了单片计算机系统通过电话网与上位计算机进行通讯的两种方法。该方法使用大规模集成电路,设计简单灵活,能满足各种工控系统的需要,实验证明是切实可行的。
关键词
单片计算机,调制解调器,串行通讯口,波特率。
Design of the Remote Interface Technique for
Chip Microprocessor
Abstract
Two communication ways with upper microprocessor for chip
microprocessor through telephonenet are introduced. These ways use
largescale integrated circuit. They are simple and flexible, and can
meet the needs of all kinds of industry control systems. The
experiment proves that the ways are feasible.
Key Words
Chip microprocessor, Modem, Series communication interface,Baud
rate.
1 设计目的
随着单片计算机控制系统的广泛使用,各类计算机控制系统交换数据和信息显得十分必要。但单片计算机往往仅有简单的3线串行口,只能解决近距离的通信(小于100
m),对中、远距离通讯则无能为力。在工业监测、控制系统中,各控制点的数据采集和通信通常采用DCS系统,或现场总线系统。但当各点之间距离超过1
km或更远时,就需要采用计算机远距离通信技术来解决。
2 实施方案
在远距离通信的情况下,采用电话线作通信介质的方案(包括单位内部电话网)。在主控计算机上通过数字调制解调器(简称Modem)拨号沟通各控制点,分别传送数据。针对不同工作方式的下位机可以有两种方案。
2.1 下位机不具有拨号功能的方案
2.1.1 概述
整个系统中,只有主控计算机(上位机)需要时,通过拨号与下位机建立通信通道,然后传送数据和指令。本方案中,下位机不需要拨号功能,通讯可采用结构简单的单片MODEM。系统结构见图1。
图1 无拨号功能远距离通讯系统结构图
在本方案中,采用一片MSM7512B集成电路。MSM7512B是OKI公司最近推出的
单片Modem芯片,其主要特点为:
a) 可以和单片机的串行口直接相接;
b) 低功耗、单电源供电(3V~5V);
c) 两个状态位:/CD为载波检测位(低有效);/RS为数据发送使能位(低有效);
d) MOD1、MOD2工作模式选择位;
e) AOG输入信号电平选择位;
e) 采用CCITTV.21标准,可进行1 200 bit半双工或1 200 bit收/75
bit发两种方式的
数据传送。
2.1.2 工作原理
有关引脚及功能定义见表1。MSM7512B主要由调制器(发送器)、解调器(接收器)、接口控制逻辑组成。AI是信号输入端,即解调器的输入端。AO是信号输出端,即调制器输出端。通过控制MOD1、MOD2可使MSM7512B在4种不同的工作方式下工作(见表2)。在工作时,计算机首先检测/CD端。若为高电平,标明Modem还没有与上位机建立联系,处于等待与上位机通讯状态。若其为低电平,则标明Modem已和上位机建立数据通道。这时,通讯双方都可以接收数据。而要使Modem发送数据,还需要计算机置/RS脚为低电平。对单片机来说,发送、接收数据就是对串行通讯口(SBUF)进行写、读。工作方式可设置成中断方式或查询方式。
2.2 下位机与上位机都具有拨号功能的方案
2.2.1 工作原理
通信双方都能通过拨号主动与对方建立点到点的通信通道。系统结构单片机侧见图2。单片机(下位机)通过串行接口集成电路(INS8250)和电平转换电路与Modem联接,Modem再联接至电话网。在PC计算机(上位机)上是通过串行口接Modem再接电话网。一般来说,PC计算机串口的核心部件都采用INS8250作异步通信接口,因此单片机和PC计算机对通信口的操作方式相同。
图2 有拨号功能远距离通讯系统(单片机侧)结构图
2.2.2 硬件设计
INS8250是一块具有异步串行通信接口功能的大规模集成电路。它的优点是可编程能力非常强,内部有9个寄存器可被访问。它的主要技术指标为:
a) 传输速率可以50 bit/s~115 200 bit/s范围内编程选择。
b)
传输的数据格式可通过编程选择:5,6,7或8位字符;奇校验、校验、无校验位;1,11/2,2停止位。
c) 具有控制Modem功能和完整的状态报告功能。
d) 具有线路隔离、故障模拟等内部诊断功能。
e) 具有独立的中断优先权控制功能。
对INS8250的控制是通过对其内部的9个寄存器读、写而完成。在本系统中寄存器选择信号为A2,A1,A0。具体定义见表3。
1) 线路控制、状态寄存器。
线路是指INS8250的串行输入(SIN)、输出线(SOUT)。线路控制寄存器(LCR)的功能是指定串行通信口的数据格式。该寄存器是可读、可写的。
线路状态寄存器(LSR)也是可读、可写的。它为单片机提供了INS8250内部的工作状态。单片机根据LSR的状态来决定发送、接收数据,并判别数据的正确与否。
2) Modem控制、状态寄存器。
这两个寄存器主要存放Modem发送、接收数据时与INS8250进行握手联络的信号状态。Modem控制寄存器(MCR)控制INS8250的4个引脚输出和INS8250的环路检测。
Modem状态寄存器(MSR)检测并存放INS8250的4个引脚的输入状态。据此,单片机用来决定串行口的工作方式。
3) 数据接收、发送寄存器和速率控制。
欲发送的数据写入数据发送寄存器(THR),然后通过SOUT脚移位输出。在发送过程中,INS8250除了发送有关的数据,还自动根据LCR的内容插入起始位、奇偶校验位、停止位。
数据发送移位结束后,LSR中的THRE位自动置“1”,以供计算机判别。由SIN脚输入的串行数据经过串并转换后送入数据接收寄存器(RBR)。在接收转换过
程中,INS8250自动校验起始位、停止位、奇偶校验位,并把这些内容从数据流中剔除。当RBR接收一完整数据时,自动置LSR的DR位为“1”,告诉计算机数据接收寄存器满。当计算机读取RBR时,DR位自动复位成“0”。
串行数据的传输速率是由INS8250的内部波特率发生器完成的。这是一个由软件控制的分频器,输出的工作时钟频率为16倍的波特率。在基准时钟频率确定后,通过改变除数寄存器的值来选择所需的波特率,即:
除数寄存器
= 基准时钟频率÷(16×波特率)
由于波特率在使用中,通信双方应一致并符合规范。在本系统中,采用1.832 MHz晶体振荡器,即基准时钟频率为1.843
2 MHz。这样,当除数寄存器的值为417H,300H,180H,0C0H,060H,030H,018H,00CH,006H时,INS8250的工作波特率可分别为110,300,1200,2
400,4 800,9 600,19 200。
2.2.3 软件设计
在本系统中,设计了4个子程序。分别为:
a) 初始化通信子程序;
b) 发送数据子程序;
c) 接收数据子程序;
d) 拨号子程序。
由于篇幅限制,本文仅给出初始化通信子程序部分的程序清单。
初始化通信子程序:INS8250初始化参数为-8数据位,1位停止位,9
600 bit/s。
3 结束语
单片机远距离数据通信的实现,既要求正确、可靠,又要求简单、价廉。通过上述方案的介绍,希望能促进有远距离通信功能的单片机系统的发展,以满足各种工控系
统的需要。 |