目前,市面上的工业Modem主要以外置为主。外置Modem具有体积大、成本高、集成不方便等缺点;而嵌入式Modem以其性能稳定、高度集成化等优点,可以方便地嵌入到各种单片机应用系统,得到广大工业用户的极大关注与欢迎。美国硅实验定(Silicon Laboratories)生产的ISOmodem就是一系列的嵌入式Modem芯片。
1 ISOmodem介绍
ISOmodem采用双芯片形式:Modem控制芯片Si2414和DAA芯片Si3015。Modem芯片Si2414是对Modem通信进行控制并提供与微控制器的通信接口;DAA芯片Si3015是将数字信号调制为模拟信号后输出,或是将接收的模拟信号解调为数字信号。它的通信传输速率最高可达14.4kbps,耗电量小于85mW,且具有过流侦测与保护功能。
1.1 Si2414内部结构及功能
Si2414芯片是高度集成化的,工作电压为3.3V,内部功能模块如图1所示。包括1个控制、数据泵、ROM、RAM、1个晶振、乐相环、定时器、串行接口、UART(通用异步收发器)、1个并行接口和1个DAA接口。Modem软件永久地被存储在片内ROM中,只有Modem设置信息(默认值除外)和其它软件更新程序必须存储在主机里, 然后下载到片内RAM中。
在片内,控制器提供了一些重要的功能,包括AT命令解析,DAA控制,连接序列控制,DCE(数据通信装置)协议控制,接入检测,并行电话摘机检测,溢出控制,来电显示控制和格式化,PCM(脉冲编码调制)模式控制,振铃检测,DTMF(双音多频)控制,通话进程临测,错误纠正和数据压缩。事实上,主机和Modem之间的所有相互作用都是由控制器完成的。控制器使用“AT”指令、S-寄存器和U-寄存器来配置和控制Modem。
1.2 Si2414的接口
Si2414提供两种与主机接口方式:串行接口和并行接口。Si2414默认的用户接口为串行接口,当AOUT/INT引脚通过一个下拉电阻(≤10kΩ)拉至低电平且在复位的上升沿CS引脚为高电平时,Modem接口选择为并行接口。
(1)串行接口
当选择串口作为Si2414的用户接口时,TXD为发送引脚,RXD为接收引脚,数据通信的流控制通过硬件实现,即通过RTS、CTS、RI、DCD引脚信号控制数据的传送。RTS(请求发送)是终端(DTE)到Modem(DCE)的控制信号,它通知DCE可以把数据发送到DTE,低电平有效。CTS(清除发送)是DCE到DTE的控制信号,它通知DTE可以把数据发送到DCE,低电平有低。RI(振铃指示)是指当Modem接收到远程呼叫时,发出振铃指示信号RI,以通知DTE有远程呼叫。DCD(载波检测)是指当Modem检测到载波信号时发出DCD信号,以通知DTE线路已经建立连接,双方可以开始进行通信。
图1
(2)并行接口
采用并行接口方式时,主机是通过对Si2414内部的两个寄存器读写实现Modem通信控制的。地址线A0=0时,指向并行接口寄存器0;A0=1时,指向并行接口寄存器1。并行接口寄存器0为发送接收寄存器,寄存器1为Modem控制及状态寄存器。
并行接口寄存器0接收主机从并口发送过来的数据,并将从远程Modem接收以的数据输出到并口。与串行接口不同,在并口方式下,发送和接收数据的流控制是通过并行接口寄存器1中的RTS、CT位及RXF、TXE位实现的。表2中,RTS、CTS位同串口的INT、ESC、RTS、CTS引脚功能相同,RXF为12字节学度接收FIFO缓冲满椟志位;TXE为14字节深度发送FIFO缓冲区空标志武位;REM为接收FIFO缓冲区空标志位;INTM是INT中断引脚使能位;INT为中断标志位。
1.3 Si3015
Si3015,DAA或线-端芯片,包含ADC、DAC、控制电路和1个ISOlink接口。Si3015和其周围的电路提供了电话线接口需要的呢功能,包括1个整流桥、摘挂机、直流终端 、交换终端、振铃监测、回路电流/电压监测及通话进程测、回路电流/电压监测及通话进程监测。另外,Si3015的外部电路主要负责EMI(电磁干扰)、EMC(电磁兼容)、安全设置和振荡操作。
2 ISOmodem在配电变压器远方终端单元中的应用
2.1 硬件设计
嵌入式ISOmodem系统框图如图2。主机,即微控制器,采用TI公司的16位高性能定点DSP芯片TMS 320LF2407A。Si2414与主机TMS320 LF2407A(简称2407A)连接采用并口方式,与Si3015连接通过ISOlink接口,即Si2414的C1A引脚经电容C到Si3015的C1B引脚。ISOlink是一个连接Modem芯片和DAA芯片的专用高速接口,有三个作用:首先,将控制信号和数据从Modem芯片传输到DAA芯片;其次,将DAA芯片缛 眰的数据和产生的状态信号传输到Mdoem芯芯片;最后,在挂机的时候,从Modem芯片提供 “keep-alive”电源到DAA芯片。系统通过TIP、RING两条线接入电话线网络或是采用专线通信方式即直接与远方Modem的TIP、RING相连。
Si2414与控制器的硬件接口电路原理如图3所示。采用2407A的I/O空间与Si2414的并口相连,这样,利用I/O空间的64K可寻址空间,既节省2407A的输入输出端口资源,又简化了软件编程。图3中,2407A的I/O空间选通引脚IS与I/O通用端口IOPA4经一个或门连接到Si2414的片选线CS,当IOPA4=0且IS=0时,Modem芯片被稳选通,DSP就能对Modem进行操作。另外,Si2414的8根数据线D0~D7;地址线A0连接到2407A的A0;读、写控制线RD、WE分别连接到2407A的读、写使能引脚RD、Weko怕输出引脚INT连接到2407A的外部中断引脚XINT1.该引脚进行软件设置后,当系统检测到振铃或载波信号时,将输出一个中断脉冲tjt位引脚RESET连接到2407A的一个I/O口IPB5,当控制器给IOPB5一个大于5ms的低脉冲时, Si2414就会产生硬件复位。C1A引脚是Si2414与Si3015连接的DAA接口,它通过一个电容到Si3015的C1B引脚,电容主要是起隔离作用。Si3015的外围电路主要包括一个整流桥、摘挂机、直流终端、交流终端。振铃监测、回路电流/电压监测及通话进程监测。
2.2 软件设计
在利用Modem通信时,首先需要对Modem初始化。Modem初始化包括通信的波特率、数据格式、通信协议、中断、自动应答、振铃次数的设置等。初始化后,Modem处于等待连接状态。这时,可以由Modem进行主动拨号建立连接,也可以由对方电话进行拨号建立连接。若由对方电话拨号,则Modem接收到振铃RING信号的振铃次数为一次后,Modem自动摘机进行应答。接收到载波后,Modem发出一个中断信号,DSP进入中断,数据通信链路建立成功,延时几十ms后,就可以进行数据通信了。若是由Modem进行主动拨号,则拨号后,Modem一直在等待对方的载波信号,DSP收到Modem返回CONNECT码后,连接成功,Modem自动进入在线状态,双方可以开始通信。若是DSP接收到BUSY,说明线路占线,可令Modem挂断并等待一定时间后重新连接。通信结束后,延时一段时间,DSP向Modem发送+++,挂起数据通信,进入命令状态,再发送ATH0命令挂断连接,最后发送ATZ命令,复位Modem。一次通信过程完成,重新初始化Modem,开始新的通信。Modem拨号通信流程如图4.Modem自动应答流程与图4相似,只是靠对方建立连接。程序入口采用中断方式,一旦DSP进入中断,连接成功,接下来的流程与拨号通信流程一样。
下面提供对Si2414初始化的源程序。采用C语言编写,AT命令字符都是以ASCII码形式发送及接收的。
Ioport unsigned port0000;/*并行接口寄存器0:发送接收寄存器*/
Ioport unsigned port0001;/*并行接口寄存器1:状态寄存器*/
#define modemport0 port0000
#defin modemport port0001
void initmodem()
{*PADATDIR=*PADATDIR&(0XFFFF-bit4);/*选通cs*/
modemport0='A';
modemport0='T';
modemport0='Z'; /*复位*/
modemport0=13;/*回车码
delay500ms(); /*延时500ms*/
modemport='A';
modemport0='T';
modemport0=';
modemport0='B';
modemport0=' '3;/*1个起始位,8位数据,无校验,1个停止位*/
modemport0='S';
modemport0='0';
modemport0='=';
modemport0='1';/*设置自动应答:ATS0=1*/
modemport0=':';
modemport0='U';
modemport0=70; /*INT引脚位映射寄存器*/
modemport0=0;
modemport0=0x01;/*设置载波中断*/
modemport0='V'
modemport0='0';/*以数字形式返回结果码*/
modemport0='Q';/*允许返回结果码*/
modemport0='0';
modemport0=13;/*回车码
modemport1=0x10;/*设置RTS有效,中断使能*/
}
结语
嵌入式工业级Modem不仅性能稳定、误码率低、不易掉线、能达到较高传输速率,而且集成度高、外形小巧、可方便地嵌入式到各种单片机系统,节省用户系统空间。另外,是直流低压低电,TTL电平接口,具有并行总线和标准串行总线两种连接方式,通过与市话或单位内部电话线相连即可实现远程数据采集和控制功能。随着微处理器技术的发展和嵌入式产品日趋复杂的应用需求,嵌入式Modem有广阔的市场前景。
- 嵌入式M(5508)
相关推荐
在嵌入式开发中,你是如何理解嵌入式C编程的?
在分布式嵌入式系统的过程中利用Jini技术有什么优势?
嵌入式Modem在配变终端单元中的应用是什么?
嵌入式终端使用串口的优缺点
嵌入式FIFO怎么配置和使用?
嵌入式Linux智能娱乐终端项目的相关资料分享
嵌入式Linux音频流媒体终端系统的设计资料分享
嵌入式SIP协议栈怎么设计?
嵌入式pyqt的运行问题!
嵌入式在生活中的应用
嵌入式手持终端电源管理系统有什么功能?
嵌入式技术在生活中有哪些行业应用?
嵌入式是什么? 嵌入式开发是什么意思?
嵌入式电能计量及查询系统有什么功能?
嵌入式系统EMC的产生原理是什么?
嵌入式系统和嵌入式电脑有什么区别?
嵌入式系统的发展历史
嵌入式网络终端间的语音通信如何实现?
嵌入式视觉技术是什么?
嵌入式设备上的文件系统该怎么优化?
嵌入式跟踪单元ETB MTB是什么意思
嵌入式软件和PC的结合
嵌入式需不需要单元测试?
嵌入式非编码矩阵键盘怎么实现?
FCU1401嵌入式控制单元
SIP协议在嵌入式环境下有什么应用?
USB在嵌入式产品中的应用
嵌入式技术在物联网中的应用
嵌入式技术在物联网中的应用
与嵌入式相关的资料
什么是嵌入式系统
基于嵌入式系统中DRAM控制器该怎么设计?
基于ATMEGA8及MSM7512的嵌入式MODEM设计
基于MPEG-4的嵌入式DVR中如何去实现?
基于TCP IP协议栈的嵌入式以太网终端设计
大佬都在看的嵌入式系统解决方案
如何为 i.MIMXRT1064 EVK启用ETM(嵌入式跟踪宏单元)功能?
如何对嵌入式软件进行覆盖测试?
如何提高嵌入式软件单元测试效率
如何设计嵌入式系统中电源管理电路?
如何设计带Cache的嵌入式CPU?
对ARM在嵌入式开发中的概述
怎么实现基于8051嵌入式系统的GPRS终端的设计?
求认识在嵌入式行业的前辈啊!我在成都!奋斗在嵌入式.....
生活中嵌入式系统实例
用GPRS modem实现嵌入式Internet接入系统
嵌入式系统中的MODEM
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Modem 在配变终端单元中的应用
![](https://skin.elecfans.com/images/2021-soft/load.png)
浅谈嵌入式Modem的通信技术
![](https://skin.elecfans.com/images/2021-soft/eye.png)
评论