开篇:润墨网以专业的文秘视角,为您筛选了一篇基于STM32的固话监测终端设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要: 固定电话应用广泛,管理固定电话话务信息的监测终端也有极广的应用市场。为了实现对固话话务明细的实时获取和电子管理,设计以STM32为核心的监测终端。该终端通过电路获取FSK/DTMF制式来显信息,检测摘挂机状态以及按键组合,并通过网络模块与服务器实现通信。实际应用中,该终端有较高的稳定性、准确性和实时性,并且已成功应用到挂机短信系统中。
关键词: STM32; FSK/DTMF; 固定电话; 话务监测
中图分类号: TN931+.3?34 文献标识码: A 文章编号: 1004?373X(2016)20?0111?03
Abstract: Since the fixed?line telephone is widely used, the monitoring terminal managing the fixed?line telephone traffic information also has a wide application market. In order to realize the real?time acquirement and e?management of the fixed?line telephone traffic information details, a monitoring terminal was designed, which takes STM32 as the core. This terminal acquires the ID caller information in FSK/DTMF modes and detects the status of on/off hook and keystroke combination by means of peripheral circuit, and communicates with the PC server via network module. In practical applications, this terminal has high stability, accuracy and real?time performance, and is applied to the on?hook short message system successfully.
Keywords: STM32; FSK/DTMF; fixed?line telephone; telephone traffic monitoring
0 引 言
话务信息的获取与管理在销售、业务联系和售后等商用固定电话领域起到越来越重要的作用。来电显示,又称主叫识别信息传送及显示(CID),该业务的主要功能是向被叫用户提供主叫号码、呼叫时间和日期等主叫识别信息。普通的来电可以在来电显示屏幕上显示主叫识别信息,但是难以实现对详细话务信息的存储和管理。本设计在普通来电显示的基础上通过网络与上位机进行通信,获取固定电话的话务明细,并将话务明细上传服务器,实现话务信息的存储与管理,并以此为依托扩展更多的功能。目前国际上不同地区规定的CID数据传送制式不同[1]。本设计以STM32为核心的话务检测终端与被监测的固定电话并联,通过电路获取并解析FSK/DTMF两种制式的来显,检测摘挂机状态,记录按键信息。
1 系统总体设计
该监测终端主要由监听模块、主控模块和网络模块三部分构成。主控芯片采用ST公司的STM32F1032ET6,它具有先进架构的Cortex?M3内核、资源丰富、实时性强、功耗低。监听模块由FSK信号解调电路、DTMF信号解码电路和摘挂机检测电路组成,通过RJ11接口与被监测电话实现并接。系统通过驱动程序控制DM9000实现网络模块,为终端和服务器之间提供双向通信渠道。系统框图如图1所示。
监听电路检测到有效的来电铃流时,引发系统中断,系统先将来电号码等信息存储,再判断摘挂机状态来确定已接还是未接,并在通话过程中记录按键信息,最终将所有采集信息以来电包的形式上传服务器;摘挂机监听模块检测主动摘机信号,则记录按键信息,并将信息以拨号包的形式上传服务器。
2 监听模块设计
国内来电显示(CID)的信息发送格式有频移键控(FSK)和双音多频(DTMF)两种制式。本设计采用双制式解调电路,可以识别和接收两种制式的来显信息。
2.1 FSK监听模块设计
FSK解调电路,采用Holtek公司的HT9032C主叫号码识别接收芯片。它满足Bell202和CCITT V.23 1 200 b/s FSK数据传输标准,能同时检测振铃和载波[2]。FSK制式支持被叫用户挂机和摘机两种状态下的信息传送[3]。在挂机状态下,来显信号位于第一次和第二次振铃之间。图2是HT9032C的时序图,检测到有效铃流时,nRDET输出下降沿,触发STM32中断,系统置位振铃标志,使能模拟串口做好接收来显数据的准备;检测到有效载波,nCDET输出下降沿,系统通过读取该引脚的电平值来判断是否接收到有效载波;HT9032C解调芯片将主叫识别信号解调成异步串行数据,从DOUTC输出。DOUT输出的信号除了主叫识别信号外,还有信道占用信号和标志信号。主叫识别信息格式有单数据消息格式(SDMF)和复合数据消息格式(MDMF)[4]。FSK监听模块原理图如图3所示。
解调后信号通过I/O口输入,STM32通过中断或查询方式进行读取[5],系统通过定时器中断,读取nCDET的电平来判断是否有有效载波。当存在有效载波时,记录模拟端口的电平值。每检测8次记录当前电平,记录8个电平后开始检测停止位,将检测到的模拟端口电平值存放在接收缓冲中。
2.2 DTMF监听模块设计
DTMF技术有传输速度高和抗干扰能力强等优点,8种频率按4×4矩阵形成16种组合代表不同的数字和字母,其中包括10个数字和六个功能符[6]。DTMF解码电路采用HT9170,电话的拨号也采用DTMF编码。HT9170具有工作电压低、电路简单、使用元件少且无需外部滤波器等优点[7]。输入的DTMF制式信号通过前置滤波器滤除噪声及低频干扰(350~400 Hz),经过滤波,输入的信号只剩高低两个频率。通过频率检测和编码生成4位BCD码,完成解码后,在DV脚输出高电平,并将数据锁存在D0~D3输出口。DV引脚上的上升沿触发系统中断,将OE置位使能输出,读取DTMF解码数据并判断数据类型。DTMF解码电路如图4所示。
在判断数据类型时,首先检测是否摘机,若未摘机则属于DTMF制式来显信息;若摘机再判断来电摘机标志位是否置位,若置位则属于接通电话后的有效按键组合,否则为拨号按键组合。根据不同的数据类型,将解码数据存入相应的缓存。
3 网络模块设计
网络接口模块通过驱动对以太网控制芯片DM9000的控制,实现网络数据传输功能。DM9000是DAVICOM研发的一款高度集成,低功耗的10/100 Mb/s以太网芯片[8]。网络设备接收数据包是通过中断实现的[9]。STM32和DM9000通过数据总线、地址总线和控制总线连接,STM32、DM9000、网络变压器和RJ45接头构成了网络接口平台,如图5所示。
STM32通过网络接收来自上位机的请求和控制信号。这一环节主要由DM9000来实现,DM9000驱动程序运行时首先监测网卡并获取网卡参数,但检测到中断源时,开中断进入中断服务程序传送数据。
4 数据解析过程
系统数据解析的过程如图6所示。两次振铃的间隔小于5 s,当检测到有效铃流时,响铃标志位置位,并将来显信息存储。系统2 ms进行一次T0计时器中断,若响铃标志为1且在5 s时间内摘机,则为已接来电,检测按键组合,存入数据包;若未在5 s内摘机,则主叫方已经挂断,来电未接,将未接标志存入数据包相应位。当检测到有效的DTMF信号,首先判断数据类型,存入缓存。按键之间最长相隔3 s,一旦超过3 s系统不再接收按键信息。
其中direction_buf存放的信息表示是来电信息还是拨号信息,这里约定“#A0”表示拨号信息,“#A1”表示来电信息;operation_buf中“B0”表示摘机,“B1”表示挂机;“*”表示有按键组合,“B2”表示未接;ID_buf存放检测终端的ID,每个终端对应惟一的ID号,便于服务器进行管理;num_buf存放来显主叫号码;button_buf存放按键组合信息。通过数据解析过程将对应的数据或标志存放入相应的缓存,最终以拨号包和来电包的形式上传服务器。
5 结 语
本设计的核心是数据的监听解码、数据解析和网络通信,监听模块采用双制式解调电路,网络模块实现终端与上位机的双向通信。方案可行性高且成本较低,采用STM32作主控芯片减少了软件工程量,稳定性高,可以应用到商用固定电话话务管理与短信挂载平台等实际应用中。
参考文献
[1] 薛莹,徐慨,黄麟舒.来电显示电路设计[J].船舰电子工程, 2008,28(9):39?42.
[2] 高万兵,王忠庆,任一峰.基于HT9032C的新型来电显示器设计[J].单片机与嵌入式系统应用,2010(3):49?51.
[3] 杨雯静,罗志昕,刘锦高,等.FSK制式来电显示的几种解码方式比较[J].国外电子元器件,2006(5):29?32.
[4] 中华人民共和国信息产业部.固定电话网主叫识别信息传送技术要求测试方法:YD/T1277.1―2003[S].北京:人民邮电出版社,2003.
[5] 张旭,亓学广,李世光,等.基于stm32电力数据采集系统的设计[J].电子测量技术,2010,33(11):90?93.
[6] 吕仁礼,周金和,李茂祥.电话DTMF数据收发模块的设计[J].电子技术应用,1998(4):46?48.
[7] 刘春生,孙志勇.DTMF芯片HT9170在数据通信中的应用[J]. 国外电子元器件,2002(1):22?24.
[8] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社, 2008.
[9] 何永琪,杨红涛,焦悦光,等.嵌入式Linux 系统实用开发[M]. 北京:电子工业出版社,2010.