0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机与数字电台实现串行通信的资料概述

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-07-18 11:02 次阅读

介绍无线数据传输系统的组成、AT89C51单片机串行口的工作方式及其与无线数字电台接口的软硬件设计与实现方法。

一般的数字采集系统,是通过传感器将捕捉的现场信号转换为电信号,经模/数转换器ADC采样、量化、编码后,为成数字信号,存入数据存储器,或送给微处理器,或通过无线方式将数据发送给接收端进行处理。无线数据传输系统就是 样一套利用无线手段,将采集的数据由测量站发送到主控站的设备。

PTR2000是一种短程无线通信技术。本文给出了一种基于PTR2000技术的温度检测系统的硬件电路原理框图和通信程序流程图。本文以一远程温度检测系统为例,详细讲解了基于单片机无线数据传输技术的应用。本系统由温度检测单元,发送单元和接收单元构成,发送单元的MCU连接温度传感器,检测远程温度,处理后,通过无线数据收发模块PTR 2000发送给接收单元的PTR 2000;通过无线数据收发模块PTR 2000接受发送单元发送过来的温度数据,传送给PC机,并在PC机上显示当前温度。本文详细分析了上述实现原理,并给出了主要程序代码,并通过了测试,有较强的实用价值。

系统由测量站和主控站两部分组成。测量站主要完成对现场信号的采集、存储,接收遥控指令并发送数据。主控站的主要工作是发送遥控指令、接收数据信息、进行数据处理和数据管理、随机显示打印等。

2 AT89C51与数字电台的串行通信

Atmel公司的AT89C51单片机,是一种低功耗、高性能的、片内含有4KB Flash ROM的8位CMOS单片机,工作电压范围为2.7~6V(实际使用+5V供电),8位数据总线。它有一个可编程的全双工串行通信接口,能同时进行串行发送和执着收。通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。

2.1 通信协议与波特率

数字电台与单片机、终端主控机的通信协议为:

通信接口——标准串行RS232接口,9线制半双工方式;

通信帧格式——1位起始位,8位数据位,1位可编程数据位,1位停止位;

波特率——1200 baud。

数字电台选用Motorola公司的GM系列车载电台,工作于VHF/UHF频段,可进行无线数传(9线制标准串行RS232接口),也可进行话音通信;采用二进制移频键控(2FSK)调制解调方式,符合国际电报电话咨询委员会CCITT.23标准。在话带内进行数字传输时,推荐在不高于1200b/s数据率时使用。实际使用时,电台工作于220~240MHz频率范围,采用半双工方式(执行收、发操作,但不能同时进行)即可满足系统要求。

2.2 AT89C51串行口工作方式

AT89C51串行口可设置四种工作方式,可有8位、10位和11位帧格式。本系统中,AT89C51串行口工作于方式3,即鳘帧11位的异步通信格式:1位起始位,8位数据位(低位在前),1位可编程数据位,1位停止位。

发送前,由软件设置第9位数据(TB8)作奇偶校验位,将要发送的数据写入SBUF,启动发送过程。串行口能自动把TB8取出,装入到第9位数据的位置,再逐一发送出去。发送完毕,使TI=1。

接收时,置SCON中的REN为1,允许接收。当检测到RXD(P3.0端有“1”到“0”的跳变(起始位)时,开始接收9位数据,送入移位寄存器(9位)。当满足RI=0且SM2=0或接收到的9位数据为1时,前8位数据送入SBUF,第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效,不置位RI。

串口方式3的波特率由定时器T1的溢出率与SMOD值同时决定:

方式3波特率=T1溢出率/n

当SMOD=0时,n=32;SMOD=1时,n=16。T1溢出率取决于T1的计数速率(计数速率=fosc/12)和TI预置的初值。

定时器T1用作波特率发生器,工作于模式2(自动重装初值)。设TH1和TL1定时计数初值为X,则每过“2 8-X”个机器周期,T1就会发生一次溢出。初值X确定如下:

X=256-fosc×(SMOD+1)/384×BTL

本系统中,SMOD=0,波行率BTL=1200,晶振fosc=6MHz,所以初值X=F3H。

2.3 AT89C51与数字电台的硬件连接

AT89C51与数字电台的硬件连接如图3所示。

系统采用异步串行通信方式传输测量数据。利用单片机串口与数字电台RS232数据口相连。电台常态为收状态(PPT=0,收状态;PPT=1,发状态),单片机P3.5脚输出高电平。单片机使用TTL电平,电台使用RS232电平,由MAX232完成TTL电平与RS232电平之间的转换。3片光电耦合器6N137实现单片机与电台之间的电源隔离,增强系统抗干扰性能。

单片机通过带控制端的三态缓冲门74HC125、非门74HC14控制电台的收发转换,以及指令的接收和数据发送。接收时,P3.5=1,c2=1,74HC125B截止;P3.5经74HC14反相、光电隔离,使电台PPT脚为低电平,将其置为接收状态;同时c1=0,74HC125A导通,接收的指令由电台的RXD端输入,经MAX232电平变换、光电隔离、74HC125A缓冲门,送入单片机RXD脚。发射时,P3.5=0,经74HC14反相、光电隔离,使电台PPT脚为高电平,将其置为发射状态;同时c1=1,74HC125A截止,c2=0,74HC125B导通,数据由单片机TXD脚输出,经74HC125B缓冲门、光电隔离、MAX232电平变换,通过电台TXD端口将数据发送出去。

3 通信软件设计

通信软件至关重要,一旦出现问题,整个系统就会瘫痪。采取差错控制与容错技术是非常重要的。

*主控站发送的指令中包含一定数量的同步符55H和3字节的密码。测量站在连续收到5个同步符后进行密码验证,验证通过后正式接收指令字节;如未通过,则测量站发一信号让主控站重发,三次验证不过则停发该命令。测量站发/主控站收时,验证方式与此相同。验证通过后,测量站开始发送数据。

*一个指令由3字节构成,第二字节等于第一字节加上35H,第3字节等于第二字节加上36H。如果收到的指令不符合此规则,则重发该命令,连续三次错误时停发。

*主控站每发一个指令,测量站都回送一个应答信号。该应答信号中包含原指令样本。

下面给出单片机串行口与电台的基本通信程序。

初始化程序:

BTL EQU 2FH ;波特率放在内部RAM的2FH单元

MOV TMOD,#21H;T0方式1,16位计数器,T1方式2,串口用

SETB TR0 ;启动T0

MOV BTL,#0F3H ;波特率设定为1200

MOV SCON,#0C0H;串口方式3,9位数据,禁止接收

接收及验证程序:

NUM EQU 2BH ;同步符个数值存放在内部RAM的2BH单元

TEMP EQU 2CH

ROM-CH:DB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55H

DB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55H ;20字节同步符

MIM DB ‘WSC’:3字节密码“WSC”

SETB P3.5 ;置电台收状态

SETB REN ;允许串口接收

A1:MOV NUM,#0 ;记录连续到同步符55H的个数

A2:JB RI,A2 ;串口有数据转A3

A3:CLR RI ;清接收中断标志

MOV A,SBUF ;读串口数据

CJNE A,#55H,A1;不是同步符转A1

INC NUM ;收到的同步符个数加1

MOV A,NUM ;取收到的同步符个数

CJNE A,#5,A2 ;未收够连续5个55H转A2

A4:MOV NUM,#0 ;密码验证,记录收到密码字节数

A5:MOV DPTR,#MIM;密码字符首址

MOV A,NUM

MOVC A,@A+DPTR;查表取密码

MOV TEMP,A ;保存密码

JB RI,A6 ;串口收完一个字节转A6

A6:CLR RI ;清接收中断标志

MOV A,SBUF ;读串口数据

CJNE A,TEMP,A4;与密码不符转A4

INC NUM ;收到的密码个数加1

MOV A,NUM ;取已收到的密码字节数

CJNE A,#3,A5 ;密码未收完转A5

发送程序:

CLR P3.5 ;置电台发状态

MOV B,#23

MOV DPTR,#ROM-CH

B1:CLR A

MOVC A,@A+DPTR;查表发送同步符和密码共24字节

INC DPTR

LCALL SEND-CH ;调发送单字节子程序

DJNZ B,B1

CLR A

MOV DPTR,#7000H;外部RAM数据首址,发送外部RAM中的数据到电台

B2:CJNE R4,#0,B3

CJNE R3,#0,B3;R4R3=发送字节数

B3:MOVX A,@DPTR;取数据

INC DPTR

LCALL SEND-CH

CJNE R3,#0,B4

CJNE R4,#0,B5

B4:DEC R3

LJMP B2

DEC R3

DEC R4

LJMP B2

SEND-CH:SETB TB8

MOV SBUF,A

DB 0,0,0,0,0,0,0,0

JNB TI,$ ;延时4μs

CLR TI

RET

结语

无线数据传输系统建成后,已经使用了两年多,运行结果表明,系统工作稳定可靠。由于采用了较完善的软硬件设计和抗干扰措施,保证了系统工作的安全性和可靠性。测量站把采集的现场信号及时传送到主控站,提高了数据处理的实时性。单片机和数字电台接口的软硬件设计具有很强的适用性,可广泛应用于无线数传设备

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

    关注

    6044

    文章

    44633

    浏览量

    639557
  • adc
    adc
    +关注

    关注

    99

    文章

    6543

    浏览量

    546092
  • 定时器
    +关注

    关注

    23

    文章

    3257

    浏览量

    115555
  • 串行通信
    +关注

    关注

    4

    文章

    580

    浏览量

    35633
收藏 人收藏

    评论

    相关推荐

    32位单片机相关资料和解决方案参考指南

    电子发烧友网站提供《32位单片机相关资料和解决方案参考指南.pdf》资料免费下载
    发表于 01-21 14:00 0次下载
    32位<b class='flag-5'>单片机</b>相关<b class='flag-5'>资料</b>和解决方案参考指南

    I2C总线与单片机的连接

    在现代电子系统中,单片机(MCU)是核心控制单元,而I2C总线作为一种多主机、多从串行通信协议,因其简单、高效和节省引脚的特性而被广泛应用于各种电子设备中。 I2C总线
    的头像 发表于 01-17 15:18 254次阅读

    昂宝单片机相关资料

    昂宝单片机相关资料
    发表于 11-25 14:50 0次下载

    基于51单片机的手动数字时钟

    按键,可实现秒复位。仿真演示视频:基于51单片机的手动数字时钟-仿真视频设计介绍51单片机简介51单片是一种低功耗、高性能CMOS-8位微控
    的头像 发表于 10-22 14:12 309次阅读
    基于51<b class='flag-5'>单片机</b>的手动<b class='flag-5'>数字</b>时钟

    基于51单片机的遥控开关仿真(双机通信)

    单片机最小系统、继电器及LED灯构成;(4)由于仿真无法模拟无线模块通信,故利用单片机RXD、TXD端口模拟,通过遥控器的开关实现对主机LED灯的控制,
    的头像 发表于 10-22 14:12 407次阅读
    基于51<b class='flag-5'>单片机</b>的遥控开关仿真(双机<b class='flag-5'>通信</b>)

    如何实现51单片机与PC串行通信

    51单片机与PC串行通信是一种常见的通信方式,它允许单片机通过
    的头像 发表于 10-21 11:35 1364次阅读

    把esp8266加入到c51单片机单通道程序怎么写

    要将ESP8266模块加入到C51单片机的单通道程序中,您需要了解如何通过串行通信(UART)与ESP8266进行通信。以下是如何实现这一点
    的头像 发表于 10-18 11:32 864次阅读

    单片机SPI通信实现

    在深入探讨单片机(如基于STM32、AVR、PIC等)如何通过SPI(Serial Peripheral Interface)进行通信之前,我们先概述SPI通信的基本原理,随后以STM
    的头像 发表于 09-09 17:00 840次阅读

    单片机烧录程序用什么软件

    单片机烧录程序是单片机开发过程中的一个重要环节,涉及到将编写好的程序代码通过烧录器写入单片机的ROM中,以实现单片机的控制。 烧录器的类型
    的头像 发表于 09-02 10:05 1780次阅读

    蓝牙模块如何实现单片机和手机端数据互传

    蓝牙模块实现单片机和手机端数据互传的过程可以分为以下几个步骤: 硬件准备 : 确保你有一个支持蓝牙通信单片机开发板,如Arduino、Raspberry Pi等。 准备一个兼容的蓝牙
    的头像 发表于 07-24 17:59 3000次阅读
    蓝牙模块如何<b class='flag-5'>实现</b><b class='flag-5'>单片机</b>和手机端数据互传

    基于51单片机数字时钟闹钟设计

    本资源内容概要:       这是基于51单片机数字时钟闹钟设计包含了PDF版本电路图、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合人群:      单片机爱好者、电子
    发表于 06-25 10:17 0次下载

    聊聊几种常见的单片机通信方式

    在这个数字化和智能化的时代,单片机(MicrocontrollerUnits,MCUs)已经成为现代电子设备中不可或缺的核心组件。从简单的家用电器如微波炉和洗衣,到复杂的工业控制系统,甚至是高科技
    的头像 发表于 05-22 12:28 2205次阅读
    聊聊几种常见的<b class='flag-5'>单片机</b><b class='flag-5'>通信</b>方式

    数字电路仿真软件单片机怎么用

    数字电路仿真软件是一种用于模拟和测试数字电路设计的工具。其中,单片机仿真软件是一种专门针对单片机进行仿真的工具。这种软件能够提供一个类似真实硬件环境的仿真平台,让用户在计算机上进行
    的头像 发表于 04-21 10:28 1175次阅读

    51单片机串口通信详细介绍-小白必看

    51单片机串口通信单片机与外部设备通信的重要方式,它基于串行通信的原理,以字节为单位进行数据传
    的头像 发表于 04-17 09:33 2206次阅读
    51<b class='flag-5'>单片机</b>串口<b class='flag-5'>通信</b>详细介绍-小白必看

    单片机是什么?单片机编程如何入门?

    单片机其实是一种很早的叫法了,最开始我们的前辈叫单板机或者叫单片机,因为那个时候单片机的处理能力还没有很强,现在我们所用的基本都是微型处理单元,也叫为控制器也称之为MCU
    的头像 发表于 03-28 08:03 2319次阅读
    <b class='flag-5'>单片机</b>是什么?<b class='flag-5'>单片机</b>编程如何入门?