电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:基于Atmega8及MSM7512的嵌入式Modem设计
来源:   时间: 2007-4-15 22:26:09    
   摘要:介绍了一种基于AVR单片机Atmega8和调制解调芯片MSM7512设计的嵌入式Modem,详细地阐述了Modem的硬件及软件设计方法。在设计中,鉴于单片机串口资源匮乏的问题,采用单片机上I/O模拟UART口的技术予以解决。上位机软件用Delphi语言编写,通过嵌入式Modem实现了计算机与远方设备之间的数据传送。

    关键词:嵌入式Modem Atmega8 MSM7512B 模拟串口

    随着经济的发展,远程监控系统的应用日益广泛。其核心部分是远程信息交换,即系统需要在地域分布广泛的设备之间进行信息的交换及协调工作。对于某些采集点分散、传输量不大、对速度要求又不高的信息交换系统,目前有两种解决方案:一是采用Internet或现场总线技术,该方案铺设网络的费用高,维护量大;二是利用现有的电话网通过Modem进行数据传输,这样不仅可以摆脱伎的分布式总线系统繁琐的布线、中继、放大以及运行过程中维护量大等问题,而且系统扩展极为方便,基本不受设备地域的限制,该方案灵活实用且成本低廉。



按此在新窗口浏览图片
图1

 

    嵌入式Modem主要由单片机(或DSP)和调制解调芯片构成。与通用Modem相比,嵌入式Modem具有体积小、易维护、外围电路简单、成本低廉等特点。在企业或住宅区中的远程监控系统使用嵌入式Modem,能够节约大量的人力和财力,大大提高自动水平,因此具有较广阔的应用前景。本文介绍一种基于Atmel公司AVR系列单片机Atmega8和OKI公司调制解调芯片MSM7512的嵌入式Modem。

    1 嵌入式Modem的硬件设计

    系统的原理框图如图1所示,上位机与PC机,下位机是远方的嵌入式Modem和设备。PC机是数据终端,通过嵌入式Modem与远方终端实现数据交换;嵌入式Modem以Atmega8为中心,控制MSM7512芯片实现数据的发送与接收,通过外围电路实现振铃检测、摘机、显示信息、呼叫远方Modem等,它以RS232接口标准与上位机相连。

    1.1 Atmega8单片机简介

    AVR单片机是美国Ateml公司生产的具有双结构的RISC单片机系列,具有较短的指令周期和较快的运行速度。Atmega8是基于2002年推出的一款新型AVR高档单片机,工作在16MHz时能达到16MIPS。该芯片内部集成了8K字节Flash、1K字节内部SRAM及512字节的E2PROM,具有丰富强大的硬件接口电路(32个通用寄存器,23个通用可编程I/O口,三个计数器,三个PWM通道,一个I2C的总线接口,一个USART接口,一个SPI接口,6通道的10位ADC及2通道的8位ADC),并且支持在线编程(ISP)和在应用程序(IAP)。由于采用了小引脚封装(PDIP28和TQFP/MLF32)形式,所以其价格仅与低档单片机相当,因此Atmgea8是一款性价比很高的8位单片机。
     1.2 MSM7512简介

    MSM7512是日本OKI公司生产的一种价格低廉、功耗低、性能良好的调制解调芯片。该芯片满足ITU-TV.23协议标准,由单电源(3~5V)供电,采用FSK半双工调制解调方式,通信速率为1200bps,低功耗(典型值仅25mW),稳定性好,具有片内回音消除电路,模拟输出可直接连入PSTN;并具有TTL接口,其FSK输出信号可直接驱动600Ω的通信电路,外围电路简单,可方便地与数字系统及计算机系统相连,广泛应用于嵌入式Modem、数据传输和家庭安防系统中。图2为该芯片的功能框图。


按此在新窗口浏览图片

图2

 

    MSM7512有四种工作模式,由MOD1、MOD2端口进行控制。当MOD1=0、MOD2=0时,MSM7512工作于调制模式,XD输入为“0”或“1”的数字信号,AO端则对应输出频率为“2100Hz”或“1300Hz”的FSK信号;当MOD1=1、MOD2=0时,MSM7512工作于解调模式,A输入频率为“2100Hz”或“1300Hz”的FSK信号,RD则对应输出解调后的“0”或“1”数字信号;当MOD1=0、MOD2=1时,MSM7512工作于环路自测模式,用于检测芯片工作是否正常;当MOD1=1、MOD2=1时,MSM7512工作于节电模式,此时MSM7512功耗仅为0.1mW,其它模式一般功耗为25mW。在本设计中所使用的工作模式是FSK调制发送及接收模式。

    在硬件设计中需要着重考虑的问题是:MSM7512是一块串行调制解调芯片,与单片机通过串口相连,而单片机上的USART串口也需要与上位机进行串行通信,但Atmega8只有这一个串口,就出现了串口资源不足的问题。如果仅仅为增加一个串口而使用可编程串行通信接口芯片8251,无疑会增加设计的复杂性和成本。而利用Atmega8的两个I/O口编程模拟一个UART串口的功能(即模拟串口),可以很好地解决这个问题。这将在软件设计部分具体介绍。

    1.3 振铃检测和拨号电路

    振铃检测与拨号电路如图3所示。它的工作原理很简单,在此不再多述。


按此在新窗口浏览图片

图3

 

    2 嵌入式Modem的软件设计

    软件部分的设计包括上、下位机通信协议的制订、上位机程序和单片机程序的编写。其中上位机程序以Delphi为开发工具,单片机程序用ANSIC C编写。

    2.1 上位机与下位机通信协议的制订

    上位机与下位机之间的数据交换必须遵循一定的通信协议,通信双方才能按照该协议解析所传输的数据。就本设计而言,一台PC机要对应多个下位机,属于主从式结构。所制订的通信协议为:

    前导码 目的地址 源地址 数据帧 CRC校验码 

    前导码使通信双方保持同步,目的地址和源地址就是各设备所对应的电话号码,当PC机发送数据时,先发送目的地址给所有下位机,如果某个从机被上位机寻址,它将接收主机接下来发出的数据帧,而其它的从机则将忽略数据帧;当PC机接收数据时,同样地,下位机先发送源地址再发数据帧给上位机。同样时,下位机先发送源地址再发数据帧给上位机。CRC校验码是为了防止传输出错而设计的。为设计方便,规定数据帧为32位,其中功能码为4位,参数为28位。功能码为0000时,参数表示的是设备传输数据;功能码为1111时,参数表示设备自检数据。


按此在新窗口浏览图片
图4

 

    2.2 上位机软件的编写

    上位机是一个数据发送与接收的终端,上位机软件的功能是:选择并发送要呼叫的电话号码;使计算机与嵌入式Modem能够通过RS232接口标准收发数据。由于Delphi是一种易学易用的面向对象的程序设计工具,因而采用它来编写上位机程序。在上位机程序中要能够对计算机串行口的硬件进行操作。然而Delphi本身不提供串行通信组件,因此需要调用Windows API函数建立一个串行通信组件Tcomm来对串口硬件实现控制,进而使用该组件完成串行通信功能。在设计中还需要使用其它一些组件如Button、Memo、RadioGroup等来完成软件界面的设计。

    2.3 单片机程序设计

    根据设计中单片机的任务设置一个全局变量TransOrReceFlag(规定值为0时,表示Modem处于接收状态;为1时,Modem处于发送状态),主程序根据它的值跳转到相应的子程序中。下面分别介绍子程序的编写过程。

    嵌入式Modem发送数据:上位机按照通信协议通过串口向Atmega8先后发送目的地址(电话号码)和数据帧。单片机在USART接收完成中断服务程序中,将MSM7512设置为调制模式并使MSM7512与电话线连通,再控制双音多频信号发生器HT9200产生目的地址所对应的DTMF信号,送入MSM7512的外部信号输入端EAI,经内部放大后从AO输出端向电话线上发送所呼叫的电话号码,待与远方Modem建立起联系后,就可以通过模拟串口向MSM7512传送接下来所收到的数据帧。

    嵌入式Modem接收数据:Atmega8外部计数口T1上有下降沿出现时,表明电话线上有振铃信号,可能有远方Modem要求和本地Modem进行数据传输。为防止误拨,规定了振铃信号需要连续出现的次数。当达到计数设定值时,单片机确认有远方Modem要进行数据传输,于是将MSM7512设置为调解模式,接通电话线,再通过模拟串口接收MSM7512传来的数据,经USART把数据传给上位机。

    单片机程序中一个重要的部分是模拟UART串口的实现部分。在设计中用定时/计数器0产生合适的波特率,使接收和发送的数据符合异步串行通信数据帧的格式;一个普通I/O口作为TXD’,外部中断0口T0作为RXD’;在内存中开辟一块缓冲区模拟串口的数据接收/发送缓冲器。规定模拟串口中数据帧为1起始位,8个数据位,1个停止位,波特率为9600bps。下面就接收和发送两个过程介绍模拟串口的实现。


按此在新窗口浏览图片

 

    模拟串口接收数据:串行通信中数据帧都是从一个下降沿开始的。当T0口上有下降沿出现并触发中断时,表明MSM7512已经接收到远方传来的数据,单片机需要对所接收到的数据进行采样。在中断服务程序中初始化数据位计数器和定时/计数器0,设定其第一次定时时间为1.5位,因为从起始位需要延时1.5位才能进行数据位D0的采样(1.5位=1起始位+0.5D0位),如图4所示。接下来的8次采样的间隔一样,所以在定时器第一次计时溢出后,在每次溢出中断服务程序中重新装载的定时时间均为1位。采样后将所得数据存入缓冲区再送给上位机。图5是模拟串口接收数据的程序流程图。
    模拟串口发送数据:与接收数据过程相比,发送数据要简单些。因为不需要采样,帧中所有位的时间长度是一样的,所以定时/计数器0的定时时间为固定值,即1位的时间。送出的第一位数据是起始位,通过接收方准备接收数据,然后从最低有效位LSB支最高有效位MSB,数据被一位一位地移出,在最末的是停止位(即逻辑1),用来让接收方区分发送的数据字节。

    由于在上位机程序中集成了选择发送电话号码的功能,所以本文所介绍的嵌入式Modem能够灵活方便地与远方设备进行数据传输。它还具有体积小、外围电路简单、易维护、成本低廉等特点,具有较大的应用价值。


相关信息
发表评论
打印本页 关闭本页
基于RS232及红外接口的多功能通讯实验板的设计
  1 引言 计算机控制系统中经常采用多机系统进行通信,在由PC机和单片机构成的分布式控制系统中,往往以PC机为上位机完成较为复杂的数据处理和对前沿机的监督管理,以及对下位机进行多机协调,单片机主要执行上位机的命令,对来自微机串行口的命令进行操作,完成对被控对象的直接控制,并把被控对象的信息上报给上位机,异步串行通信是一种常用的多机通信手段,本文介绍一种将RS232,RS48...
>>详细内容
用ATmega8单片机设计串行编程器
  通常进行单片机实验和开发,编程器是必不可少的。仿真、调试完的程序要借助编程器写入单片机的存储器中,随着单片机技术的发展出现了MTP(可多次编程)存储器技术和ISP(在系统可编程)技术,这样就可以省去昂贵的仿真器,只要通过计算机接口和一条串行下载线就可直接在目标芯片上编程。ATmega8就是一种具有MTP与ISP功能的单片机,他也是AVR单片机中价格性能比最高的单片机,因此研究他的串行...
>>详细内容
集UART与RS232于一体的MAX3110E原理及应用
  摘要:MAX3110E是MAXIM公司推出的全功能收发器,它内部包括一个兼容SPITM/MICROWIRETM接口的UART以及内置电泵电容和土15kV ESD保护的双RS-232收发器。该芯片集成度高,使用灵活,性能优越。文中详细介绍了MAX31OOE的特点、原理及应用电路。 关键词:MAX3110E; UART; RS-232收发器; SPI串行接口 分类号:TN919.3 文献标识码:B 文章编号:1006-6977(2003)01-0027-05 1 概述MAX3110...
>>详细内容
CAN-RS232通信转换模块的设计与实现
  1 引言 RS232作为标准的计算机串行接口已被广泛使用,与此同时,随着现场总线技术的飞速发展,具有实时性好、可靠性高、结构简单等优点的CAN总线在测控系统中也越来越多地被采用,但由于两者的总线结构、通信协议及传输特点各不相同,因而给不同设备之间的连接带来诸多不便。因此,如何以最简单的方式实现CAN节点与RS232串行口的通信就成为工程实践中一个不可回避的问题。 本文采用典...
>>详细内容
ATmega8内部RC振荡器漂移测试
  选择ATmega8-16PI,内部1M RC,程序为I/O取反操作,Agilent infiniium 54833A DSO 1GHz 4GSa/S数字示波器测量,LM2825-5供电。 27℃ Mean:141.313 Min:141.2439 Max:141.4173 Current:141.0/141.2 35℃ Mean:141.245 Min:141.0358 Max:141.4173 Current:140.9/141.0 40℃ Mean:141.18 ...
>>详细内容
ATmega8内部2.56V ADC基准温飘测试报告
  选用ATmega8-16PI,工业级(-40℃-85℃),5V供电,FLUKE 189表测量。 27℃ 2.7158/2.7159 35℃ 2.7159/2.7160 40℃ 2.7161/2.7162 45℃ 2.7160/2.7161 50℃ 2.7161/2.7162 55℃ 2.7162/2.7163 60℃ 2.7163/2.7164 ...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com