信息电话机关键模块的研究与应用
2 信号采集模块方案设计
本文引用地址:http://www.amcfsurvey.com/article/87724.htm作为对输出数据的研究,经由MC14LC5447解调后的信号为异步串行信号,而且数据速率为1 200 bps,可使用单片机的串口模式1来进行数据接收,算法请见参考文献[1]。单片机除了进行数据采集,将串行数据包解包外,还将数据复原。
主中断程序大部分都在循环等待串口程序的中断响应,首先需要接收的是来电显示包的长度字段,接收到长度字段的好处就在于可以动态地接收来电数据包,而不必每次都等待接收固定的长度。虽然来电显示包长度不可能大于某个固定长度,但根据来电数据包的长度字段,动态接收数据,使采集的数据更容易处理,而且位于数据包尾的干扰信号也可以再次滤除,从而减轻其他程序的负荷。
当然,在此也可以通过单片机将数据分离出来并进行处理,但为了包的可分析性,单片机除了数据采集外,不做其他的工作。
某一次获取的数据如下:
图4 数据采集模块原理
图4给出了数据采集模块的原理,MC14LC5447的DOC信号输出连接到AT89C2051的第2引脚处(串行输入端口);MC14LC5447的RDO信号输出连接到AT89C2051的第6引脚处(AT89C2051的外部中断0);AT89C2051的第9引脚连接到MC14LC5447的第7引脚(PWRUP),来控制MC14LC5447的开与关。AT89C2051第7引脚连接到USB设备状态输出口,第1 引脚也连接到USB设备的状态输出口,第11引脚连接到USB设备的状态输入口,数据线连接到USB设备的并行数据输入口。其中第12、第13引脚需要外接上拉电阻。
利用单片机实现的方案较数字逻辑电路的方案有许多优点。主要有出错几率小,有存储控制功能,方便,更换灵活等。
利用存储转发方案提高了数据传输的安全性。由于USB203无USB的中断功能,所以接收数据只能用程序循环的方式来实现,但不恰当地使用循环会增加系统的负担。
3 电话信号处理模块设计
摘挂机信号可以由电话机叉簧线路取得。
经过检测,叉簧上共有两路信号: 一路为22~27 V的正弦波信号,位于叉簧第5、6引脚;另一路为15~20 V的负正弦波信号,位于叉簧第3、4引脚。第1、2引脚为信号输出。当叉簧上的弹片没有被压下时,第1、2引脚与第5、6引脚连通,信号为正交流信号,此时表示摘机;当挂机时,叉簧上的弹片被压下,此时,第1、2引脚与第3、4引脚连通,第1、2引脚上的信号为负交流信号。将此信号转换为逻辑0、1电平,即摘机时信号为逻辑1,挂机时信号为逻辑0,电路原理如图5所示。
图5 叉簧信号处理原理
通过分压电路与二极管进行滤波,负半周信号将被二极管滤除。由于10 MΩ的电阻分压,使得输出电平在1 V左右。经过测试,USB状态输入引脚需要1.6 V以上才认为输入信号为逻辑1,而低于1.6 V的将被认为是逻辑0。
摘机输入信号为正弦波,通过整流滤波电路后,能输出2.6 V左右的电平信号给USB设备,信号为稳定的逻辑1。
挂机信号为负值的正弦波,通过整流滤波电路后,能输出260 mV的电平信号给USB设备,信号为稳定的逻辑0。
4 USB传输模块设计
USB传输模块使用USB203作为传输接口,如图6所示。使用此模块的好处是,它为并串转换的传输模块,而且有4位控制信号输入和4位控制信号输出,并提供了DLL库文件,为二次开发提供了方便;但是此设备并没有使用中断控制方式,因此读取数据将是本系统的瓶颈。然而在本系统内并未用到大量的数据采集,数据长度仅仅为26位,即使为其他长度的复合来电显示数据包,长度也不会大于1 000位,所以是否为高速传输在此并不重要。本系统使用USB的原因在于,USB的简单易用和支持热插拔,这对于使用RS232通信口的设备较有优势;另外USB使用5 V电源,可以为外接设备提供电源,节省了外接设备的电源部分,从而减小了外接设备的体积。
图6 USB传输模块电路原理
图7 USB接口程序算法流程图
在DLL中需要建立USB_CID函数,无参数,直接返回处理后的来电数据包中的来电号码,而且在无号码时将相应的错误代码返回。在此要注意的是,虽然单片机程序为可变长度存储,但依然有错误产生,原因是来电显示数据包的发送。当一次来电时,数据包会在第一和第二振铃间,如果呼叫者挂断电话,那么来电数据包将不再发送;或者被叫者拿起电话也将丢失来电数据包,那么来电包将被存储一部分,单片机在不重启的情况下将继续等待接收。当下一个来电到达时,这个新的来电数据包将被继续存储,直到满足第一个来电数据包的长度时,才结束接收,那么整个数据包将被接口程序获取并判断是否出错。如果是复合包,那么在来电号码数据包前出错的情况将被排除,但是如果在来电数据号码数据包内出错,那么接收到的号码将被发送,显示的可能是乱码,其算法流程如图7所示。表 1给出了状态字的定义。
表1 状态字定义
5 结论
信息电话USB接口设计,是来电显示电话与计算机的接口和相关的数据采集系统,是运用接口技术、计算机软件技术实现来电号码等相关信息在计算机上的显示或存储,并可以根据基本信息进行来电号码的分类统计。这些数据对相关部门服务质量和效率的提高将起到重要的作用,同时还可以为相关决策部门及时提供参考信息。
本装置完成数据采集和数据传送,而且通过软件接口完成对相关数据的分离。详细地研究了来电显示技术,单片机程序编制和使用VC++编写DLL。本装置不但可以嵌入到电话内,还可以作为单一的模块来使用,所以该系统有广泛的实用价值。
参考文献
[1] 常波,朱全银. 来电显示电话机USB接口数据采集与处理[J].陕西理工学院学报,2007,23(3): 11-14.
[2] 王辛之,钟爱琴,王雷,等.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004.
[3] 尹勇,王洪成.单片机开发环境μVision2使用指南及USB固件编程与调试[M]. 北京:北京航空航天大学出版社,2004.
[4] 陈启美,丁传锁.计算机USB接口技术[M].南京:南京大学出版社,2003.
[5] 马伟.计算机USB系统原理及其主/从机设计[M].北京:北京航空航天大学出版社,2004.
[6] Gary Legg.Usb Goes Wireless[OL].http://www.techonline.com/community/tech_topic/Bluetooth/37308,2004.
[7] Bellcore Caller ID specification[OL].http://www.epanorama.net,1991.
[8] 如何用单片机实现FSK来电显示解码[OL].http://www.softexam.cn/tech/catasecond.asp?catalogf=4&catalogs=15.
朱全银(副教授),主要研究方向为信息技术研究与应用。
评论