51单片机串行接口和调制解调器的远程通信实现

控制/MCU

1882人已加入

描述

在工业测控系统中,51单片机在现场用来采集模拟量、开关量,而中央控制计算机在控制室或调度室用来监测整个控制现场。它们之间的数据传送可构成局部网络、多用户系统和分布式控制系统。

一、51单片机与计算机通信方式

  
  利用51单片机串行接口调制解调器及现有电话线,实现远程双向通信的方框图如图1-18所示。

远程通信


  
  在利用现有电话线进行数据传输的串行通信中,把将要传送的数据按先后顺序,在公共信道上逐位传送。
  
  串行通信对字符的编码、字符格式和传输速率都有具体规定,必须严格遵守。异步串行通信数据的传送格式由4部分组成:起始位、数据位、奇偶校验位和终止位。
  
  通信协议要求:在发送端,每传送一个字符都必须有起始位、数据位、奇偶校验位和一个终止位的字符串;在接收端,也要按照起始位、数据位、奇偶校验位和一个终止位的字符串进行计数接收。

二、51单片机串行接口  

51单片机串行接口简介
  
  51单片机引脚中P3.0(10脚)为RxD(串行输入口),P3.1(11脚)为TxD(串行输出口)。
  
  51单片机串行接口为全双工,即它可以同时发送和接收。两个串行口寄存器通过特殊功能寄存器SBUF来访问,即写入SBUF装入发送寄存器,读SBUF访问物理上分开的接收寄存器,两个缓冲器共用一个地址99H。
  
  51单片机串行接口有4种工作方式。通信只使用方式1,2,3;方式0主要用于扩展并行输入/输出口。
  
  ●方式0  在方式0状态下,串行口为同步移位寄存器方式。其波特率是固定的,为osc/12。数据由RxD端输入,同步移位脉冲由TxD端输出,发送、接收的是8位数据,低位在先。
  
  ●方式1在方式1状态下,串行口为8位异步通信接口,一帧信息为10位:1位起始位(0)、8位数据位(低位在先)和1位停止位(1),波特率可变。
  
  ●方式2和3  串行口在方式2,3时,为9位异步通信接口,发送、接收一帧信息由11位组成,1位可编程数据位(第9位数据位)和1位停止位(1)。
  
  方式2的波特率固定为osc/64/2SMOD,即fosc/32或osc/64。方式3的波特率可变。
  
  2、51单片机串行接口的电平转换
  
  RS - 232C的标准规定:逻辑0为+5~+15 V,逻辑1为-5~-15 V,而51单片机串口电平为TTL电平。因此,必须通过电平转换,才能符合串行通信标准。
  
  电平转换采用MC1488和MC1489。图1-19为其引脚图。MC1488输入电平为TTL电平,输出电平为RS - 232C电平。MC1489输入电平为RS - 232C电平,输出电平为TTL电平。以上两个专用芯片除了电平转换外,还实现了正、负逻辑电平的转换。

远程通信

图1- 20为51单片机串口的实际转换电路连接图。考虑到现场干扰因素,为了抑制尖峰脉冲及各种噪声干扰,串口电路中加了两片TiL117光电耦合器,以增强数据传送的可靠性。

远程通信

三、贺氏(Hayes)调制解调器介绍

  
  本系统采用Hayes OPTIMA 336调制解调器,前面板有一组状态指示灯,如图1- 21(a)所示。

远程通信


  MR(调制解调器就绪/进行测试):当调制解调器上电时,灯亮;当调制在自检或诊断方式下时,此灯闪烁。
  
  TR(终端就绪):当RS - 232 DTR信号给出时,此灯亮。
  
  SD(发送数据):从本地数据终端自本地调制解调器传送数据时,SD灯闪烁。
  
  RD(接收数据):从本地调制解调器自其所连接的设备传送数据时,RD灯闪烁。
  
  OH(摘机):当调制解调器摘机时,OH灯亮;挂机时,OH灯灭。
  
  CD(载波检测):本地调制解调器从远方调制解调器收到有效数据载波信号时,CD灯亮。
  
  AA(自动应答):当调制解调器设定在应答方式时,AA灯亮;当调制解调器检测到从远方来的呼叫,而它又被置于自动应答方式时,在振铃期间,AA灯灭。如不是自动应答方式,在振铃期间,AA灯亮。
  
  VO(语音):连接调制解调器的电话摘机时,VO灯亮;电话挂机时,VO灯灭。
  
  从图1 - 21(b)可知,调制解调器有一个25芯的数据终端接口( DTE  INTERFACE)。在这里只说明几根重要的信号线。
  
  2针:发送数据入Modem;
  
  3针:接收数据出Modem;
  
  4针:请求发送入Modem;
  
  5针:允许发送出Modem;
  
  6针:数据就绪  出Modem。
  
  所有的贺氏调制解调器支持一组通用的AT命令、S寄存器和结果码集。
  
  AT命令可以用来配置调制解调器与软件共同工作,与远端系统通信,发起或应答一个呼叫。每一条AT命令都对应调制解调器的某种动作。
  
  调制解调器拨号之后,等待对方调制解调器送来的载波信号。如果在预定的时间(S7寄存器的值决定这一等待时间的长短)没有检测到载波,则调制解调器自动释放线路并送回结果码NO CARRIER; -旦检测到载波信号,调制解调器送回结果码CONNECT,进入联机状态,即可与远方系统通信。

四、51单片机串行接口与调制解调器之间通信

1. 51单片机与调制解调器之间的连接线路
  
  图1- 22为51单片机DB与调制解调器的连接线路。由图1- 22可知:51单片机的9芯插座中的2针和3针分别与调制解调器25芯插座中的2针和3针相连;51单片机的数字地5针与调制解调器中的信号地7针相连。调制解调器的4针、5针、8针相连;6针和20针相连。

远程通信


  2.波特率设置
  
  为了实现与远方中央控制计算机正确可靠地通信,双方波特率必须一致。RS - 232C标准波特率为:50,75 ,110 ,150,300,600.1 200,2 400,4 800,9 600及19 200。
  
  当51单片机应用系统晶振为6 MHz时,选波特率为2 400,串口工作方式1。
  
  51单片机用定时器1作为串口波特率发生器。波特率计算公式为

在任何情况下,若定时器1的C根号T=0,则计数率为振荡频率的1/12。即

远程通信


  
  当SMOD=0时,TH1=249. 49,圆整误差过大。改为取SMOD=1,TH1=242. 98≈243=3H。51单片机系统波特率设为2 400,串口工作方式1,汇编语言如下:
  
  MOV TMOD,#20H    ;定时器1工作,方式2
  
  MOV TH1,#OF3H    ;装8位计数器常数
  
  MOV  TLl,# OF3H
  
  SEATB TR1    ;允许定时器1工作
  
  MOV SCON,#50H    ;串口按方式1工作,允许串行接收
  
  MOV PCON,#80H    ;SMOD置位

3.数据同步

  51单片机虽有串行输人口、串行输出口,但不具有RTS,CTS,DTR,TxC,RxC等标准RS- 2320接口的握手信号线。
  
  一般计算机串行口只具有异步工作方式。在异步串行通信中,波特率的一致性是数据位同步的保证,而帧同步只能靠几根握手控制线了。51单片机没有这些握手线,在波特率一致时,能保证单个字节传输正确,但无法保证大量数据接收正确,有可能导致大量数据丢失。本系统用软件方法来达到同步。
  
  当计算机发送一字节或若干字节时,一方面计算机采用一定的延时,另一方面等待51单片机接收正确的应答信号。该信号既可表示接收到的数据正确与否,又可起到同步作用。
  
  4. 51单片机和远方中央控制机之间通信
  
  51单片机系统用来采集现场的模拟量、开关量等。当发生越限时,通过调制解调器呼叫中央控制计算机的电话号码,联通之后,发出当前的告警状态。中央控制计算机通过调制解调器呼叫51单片机的电话号码,联通之后,调用51单片机的串口中断程序,就可以知道当前的模拟量、开关量、设备号等数据。
  
  正常状态时,中央控制计算机巡回调用现场中51单片机的串口中断程序,就可以得到所需要的各种数据。

图1- 23为本系统实际应用的程序流程图。单片机主程序流程图省略。下面解释一下图1 - 23(b)告警拨号中有关调制解调器的命令。

远程通信

注:# OIH是连接已经叫通的数字结果码
  
  ATSO=3    选择开始应答前振铃数为3次
  
  ATVO    结果码以数字形式显示
  
  AT8F    出厂缺省值
  
  ATDT 6803412  以双音频方式呼叫假设电话号码为6803412的中央控制机
  
  选择等待载波/拨音的出厂时间值为50 s。
  
  通信协议规定使用ASCII码,为使中央计算机接收命令清晰,每条命令之后须加CR(换行)。
  
  本节介绍的51单片机串行接口通过调制解调器与中央控制计算机的双向远程通信方法,也可以推广为多个单片机系统和中央控制计算机的远程通信。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分