当前位置:首页 > 单片机 > 单片机
[导读]在工程中,常采用Modem通过模拟线路进行数据的远程传输。我们用工业级PIC16F87系列单片机控制Modem完成串行异步/同步通信,在较低速率的线路上实现了数据的实时传输,收到了很好的效果。 本文就系统中PIC单片机

在工程中,常采用Modem通过模拟线路进行数据的远程传输。我们用工业级PIC16F87系列单片机控制Modem完成串行异步/同步通信,在较低速率的线路上实现了数据的实时传输,收到了很好的效果。

      本文就系统中PIC单片机控制Modem的串行通信技术,在硬件、软件两方面进行了分析。

       1 PIC单片机及其同步/异步串行接口USART模块功能简介
        PIC16F877A单片机内部有8K*14的FLASH程序存储器和512字的RAM数据存储器:不仅采用哈佛体系结构,而且还采用哈佛总线结构,流水线操作,PIC16F877A大大提高了指令执行速度,PIC单片机的系统时钟可以工作在DC- 20MHz的频率范围之内。优化的CPU结构,加上精简指令集(RISC)技术,更加快了指令执行速度,这为复杂控制算法的实现提供了良好的条件。
       本系统采用的是PIC16F87系列单片机,其内部集成了同步/异步串行接口USART模块,适合同单片机外部扩展独立的外设部件进行串行通信。并且可以定义三种工作方式:全双工异步、半双工同步主控和半双工同步从动方式。

       2 PIC单片机控制Modem 实现异步串行通信
       利用PIC单片机,可实现对Modem的控制,从而进行异步通信。USART模块在单片机的RX引脚上接收,在TX引脚上发送,串行信息的编码方式采用1 位起始位、8位数据位和1位停止位。片内提供了一个专用的8位波特率发生器BRG,利用来自时基振荡器的系统时钟信号,产生标准的波特率时钟。USART 模块的接收和发送数据顺序是地位在前。即首先发送最低位(LSB)。USART模块的接收器和发送器在功能上是相互独立的,但是它们所用的数据格式与波特率是相同的。

        2.1异步串行通信硬件连接
       PIC控制Modem串行通信的原理图如图1。

         PIC将要发送的数据通过串口送给本端Modem,将数字信号调制成可在模拟线路上传输的模拟信号,并通过模拟线路传给远方的Modem。远方的 Modem将收到的模拟信号还原为数字信号送给与其相连的PIC,PIC通过异步串口发送AT(请求)命令来实现对Modem控制进行串行通信,与 Modem接口按RS-232标准设计。PIC的输入输出电平为TTL电平,我们通过电平转换芯片MAX232,实现与RS-232接口的匹配。系统中对 Modem的初始化、呼叫(应答)、传输数据及挂机等都由PIC发送的AT命令通过存于Modem的Flash ROM中的程序控制完成。

          2.2 异步串行通信软件设计

         2.2.1 PIC单片机与USART模块相关的寄存器
  

         PIC单片机USART模块的两条外接引脚是与输入/输出端口RC模块公用的RC7/RX/DT和RC6/TX/CK两条口线,与USART模块有关的寄存器共有9个。
  

        在此.就PIC工作于USART模式时,所涉及的一些位进行介绍,详见表1。

       中断控制寄存器INTCON,第一外围设备中断标志寄存器PIR1。第一外围设备中断屏蔽寄存器PIE1,端口C方向寄存器TRISC,发送状态和控制寄存器TXSTA,接收状态和控制寄存器RCSTA,发送寄存器TXREG,接收寄存器RCREG,波特率寄存器SPBRG。

       2.2.2 USART模块波特率设置
  

        USART模块带一个8位的波特率发生器(BRG),BRG支持USART的同步方式和异步方式。用波特率寄存器SPBRG控制一个独立的8位定时器周期。波特率发生器可以根据BRGH位(发送状态和控制寄存器TXSTA的位2)的设置,产生两种不同的移位速度,分别是对于系统时钟16分频和64分频得到的波特率时钟。用波特率寄存器SPBRG控制一个独立的8位定时器周期。在异步方式下,BRGH位也被用来控制波特率;在同步方式下。不用BRGH位。表2给出了在主控方式下,不同USART工作方式的波特率计算公式(x为写入SPBRG寄存器的值)。

   2.2.3 通信程序设计
       要实现系统的正常数据传输,正确设置PIC异步串口USART至关重要。在此,以异步接收方式为例,编写程序应遵循以下几个步骤:

       (1)选择合适的波特率,然后根据表2计算出SPBRG寄存器的值(x),并将其写入SPBRG寄存器;
       (2)设置SYNC=0,SPEN=1,使USART工作于异步方式;
       (3)如需中断功能,将中断控制寄存器的中断屏蔽GIE和PEIE置1,同时置第一外围设备中断屏蔽寄存器的RCIE=1;
       (4)如需接收9位数据,置接收状态和控制寄存器的RX9=1;
       (5)置接收状态和控制寄存器的CREN=1,激活接收器;
       (6)当一个字节接收完后,产生中断请求,如果RCIE=1,便产生中断;
       (7)读RCSTA寄存器以便获得第9位数据(如果选择了接收9位数据),并且判断是否在接收过程中发生了错误;
       (8)读RCREG寄存器中已经收到的8位数据;
       (9)如果发生了接收错误,通过置CREN=0以清除错误标志。
  

       下面给出了串口的初始化程序:
       bsf STATUS,RP0 ;选择存储体1
       bcf STATUS,RP1
       bsf TRISC,7 ;设置RC7脚为输入状态
       bcf TRISC,6 ;设置RC6脚为输出状态
       movlw 25H ;设置波特率
       movwf SPBRG
       movlw 20H ;设定8位发送/接收
       movwf TXSTA ;设定异步方式。低速方式
       bsf PIE1,TXI ;使能发送器中断
       bsf PIE1,RCIE ;使能接收器中断
       bcf STATUS,RP0 ;选择存储体0
       movlw 0x90 ;设定8位接收,使能接收器
       movwf RCSTA ;使能串口
  异步串行通信主程序框图如图2,中断服务子程序框图如图3。             

                    

2.3 Modem设置
       在Modem安装好开通之前,须预先设置好Modem的初始状态。PIC上电后,需对Modem进行复位操作,发送命令设置Modem结果码形式。
        Modem初始化服务程序执行Modem初始化命令和呼叫(应答)等。Modem的呼叫、应答采用自动方式。在进行通信之前,呼叫PIC发出ATD (专线方式)命令,Modem监测线路上的载波。如果检测到载波,则返回连接成功结果码;否则返回无载波结果码。两端Modem正确可靠地建立起数据链路后。就可以进行数据通信了。通信完成以后,双方Modem若要拆线挂机.则Modem由数据状态转为命令状态,PIC发出ATH(挂机命令)实现挂机。挂机后要对Modem的自动应答和中断等状态进行重新设置。

        3 PIC控制Modem 同步串行通信
        用PIC的同步串口USART控制Modem实现同步数据通信,保证了数据的高效率和实时传输。PIC的USART模块工作于同步方式时,RC7引脚被用做数据双向传输通道DT,RC6引脚被用做时钟发送/接收专线CK。线路上的数据格式可以是8位或者9位,由于利用时钟专线进行双方同步,就不需要起始位和停止位了。同步数据是在一条线路上双向传输的,而时钟却是在一条线路上固定从主机向从机单向发送的。
       同步串口的初始化与异步串口通信类似,程序设计可参照2.2,对Modem进行相应的初始化,使其工作于同步模式。

       4 结论
       本系统用PIC单片机控制Modem的同步/异步串行通信,实现了数据的远程传输,可方便提供多种速率,硬件构成简单,软件设计容易。在点对点的远程数字终端维护中,传输数据、话音及传真收到了很好的效果。

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

今天,小编将在这篇文章中为大家带来调制解调器的有关报道,通过阅读这篇文章,大家可以对调制解调器具备清晰的认识,主要内容如下。

关键字: 调制解调器 MODEM 多路复用

摘要:介绍了一种使用3G手机短信(SMS)进行家电远程控制的物联网系统的设计方法,该方法的主要思路是3GMODEM和红外线遥控的结合应用,可在3GMODEM收到短信并通过系统控制平台处理后发送控制数据给单片机控制器,然后...

关键字: SMS 3G MODEM 红外线遥控 家电控制

说到通信设计院,相信很多人都听说过。平常我们在新闻报道中,经常会看到各家设计院的名字出现,例如联通设计院、中移设计院,等等。最近各地校招启动,有一些同学收到了设计院的offer,于是问我,设计院到底是干啥的?今天,我就给...

关键字: 通信设计

1 前言   近年来,数字化电视技术迅猛发展,特别是遥控系统的面市,各厂商在电视机中加人微处理器(MCU),各种人工智能化彩电完全替代了老式电视手动(机械式)控制和记忆方式。随着电视专用

关键字: eeprom 串行通信 i2c总线

  无论任何产品,品质的好坏主要取决于性能的优劣,而性能优劣的关键跟产品结构和工作原理又有着较大的关系,CCD和CMOS也既如此。   基本组成   CCD是在MOS晶体管的基础

关键字: 串行通信 多线程 动态链接库 vc开发环境

  当前,软件定义网络(SDN)成为业界一个时髦的话题,SDN技术及其可能带来的影响受到了学术界和产业界的高度重视,同时也存在着对SDN不同的理解和认识。近日,从一知名的社交新闻站点&mdash

关键字: sdn 通信设计

  随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的

关键字: mipi 串行通信 时钟

1、引言 随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已经扩展到了几乎所有的工业领域。其中,PLC和单片机在小规模控制系统中获得了广泛的应用。 在塑料挤出机温度自动控

关键字: pic16f877 plc 串行通信

引言 计算机串行通信是计算机与控制设备(如变频器)进行数据传送的一种通信方式,也是实现工业自动控制经常用到的通信模式。每一种通信方式都严格约定了与其对应的通信协议。要确保计算机与变频器之

关键字: 串行通信 变频器

串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式。串行通信中,将数据按位依次传输, 每位数据占据固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算

关键字: 串行通信 光电耦合器

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭