摘 要:本设计的来电防火墙可屏蔽骚扰电话等功能。系统基于μC/OS-II嵌入式实时操作系统和CallerID(来电显示)技术,由铃流检测、来电解码、DTMF解码、模拟挂机、号码存储等模块组成。μC/OS-II嵌入式实时操作系统的引入极大的方便了模块的管理和号码存储的管理。系统利用得到的来电号码,同存储的黑名单中的号码进行比较,判断是接通话机振铃线路,抑或控制模拟挂机电路挂机。本系统复用电话机键盘控制,并以LCD中文显示,可方便的对黑名单中号码的进行管理。
关键词:骚扰电话,μC/OS,防火墙
Firewall calling in based onμC/OS and MCS51
Abstract: This design calls firewall shielding telephone harassment. This calls firewall system is based on μ C / OS-II real-time operating systems and embedded CallerID (CND), from bell-testing, calls decoding, DTMF decoder, simulated hang up, the number of storage modules. μ C / OS-II RTOS greatly facilitate the introduction of a number of modules in the management and storage management. The system uses Caller ID, with the store's blacklist of numbers, the judgement is connected to phone lines ringing, or simulated hang up control circuit hang up. The system multiplexing telephone keypad control, and the Chinese LCD display, for the number of blacklisted in the conduct of management.
Key words: Telephone harassment, μ C / OS, firewall
引言
电话是现代工作生活中不可取代的一项工具,自发明诞生之日起便带给大众快捷和便利。随着电信业务的发展,骚扰电话问题日益突出,大量用户被骚扰电话所烦扰。为躲避骚扰,多数人采取拔电话线的方法,却因此错过不少重要来电。此外每个人在生活中都可能有一些出于礼貌或顾虑而不想接听的电话。针对此种现象,本次设计的来电防火墙可屏蔽骚扰电话。来电防火墙通俗地讲就是“不想听”的电话打不进来,避免打扰。它可以过滤掉黑名单中的电话号码的来电,直接拒绝接听该号码的来电。同时也支持亲友名单模式,只接听亲友名单中电话的来电,拒绝接听所有其它号码的来电,让您想接的电话一个也跑不了,不想接的电话一个也进不来,从此拒绝困扰,还您一个清净的工作和生活的环境。
1、系统概述
固定电话来电防火墙系统基于μC/OS-II嵌入式实时操作系统和CallerID(来电显示)技术,由铃流检测、来电解码、DTMF解码、模拟挂机、号码存储等模块组成。系统利用得到的来电号码,同存储的黑名单中的号码进行比较,判断是接通话机振铃线路,抑或控制模拟挂机电路挂机。μC/OS-II嵌入式实时操作系统的引入极大的方便了模块的管理和号码存储的管理。系统复用电话机键盘控制,并以LCD中文显示,可方便的对黑名单中号码的进行管理。
主叫识别信息传送及显示CID业务是向被电话用户提供的一种新的服务项目是指在被叫用户终端设备上显示主叫号码主叫用户姓名呼叫日期时间等主叫识别信息并进行存储以供用户查阅的一种服务项目。实现CID 的基本方法是发端交换机将主叫号码等通过局间信令系统传送给终端交换机终端交换机将主叫识别信息以移频键控FSK 的方式送给被叫用户终端设备如图1 所示。
图1 主叫识别信息传送
终端交换机将主叫识别信息送给被叫用户终端设备在下述两种状态下进行一种是用户终端挂机状态另一种是用户终端通话状态。挂机状态下的传送方法是终端交换机将主叫识别信息在第一次振铃和第二次振铃间隔期间送给被叫用户终端设备如图2所示。
图2 被叫终端信息传送
目前我国大陆地区都是采用图2所示的方式进行来电号码传递。
2、系统硬件电路设计
固定电话来电防火墙是基于来电显示(CID)的设计的,通过解码得到的来电号码,与黑名单中的号码进行比对,进行模拟挂机或者接通振铃。复用电话及键盘进行系统设置,通过电话机键盘输入号码,存储到EEPROM中。
2.1 铃流检测电路
我国大陆来电显示是FSK格式的。来电号码在第一声振铃于第二声振铃之间发送。为避免在得到来电号码前,第一声振铃对用户产生影响,需要在话机振铃电路动作之前截断振铃,因此要求振铃检测迅速有效。图3所示为振铃检测电路:
图3 振铃检测电路
铃流为25Hz电压有效值90士15V的正弦波,使用一个电压比较器,当铃流电压上升到60V以上的时候,比较器就会输出高电平,用反相器反相后,用来触发单片机的外中断。仿真波形如图4所示:
图4 振铃仿真波形
可见设计可以满足要求。
2.2 线路切换及后备电源
当检测到铃流后,单片机应立即把电话机与外线电话线路断开,防止电话响铃,由于话机可能存有信息,应继续为话机供电,以保证话机信息不丢失。同时电源也为系统设置复用话机键盘时提供电源。
图5 线路切换电路
如图5所示,使用一个双刀双掷继电器进行线路切换。常闭触点连接外线,常开触电连接后备电源。LM317结成电流反馈形式,构成一个恒流源为话机供电。
2.3 来电解码电路
图6 来电解码电路
如图6所示,解码芯片采用盛群半导体公司的集成解码芯片HT9032。它着眼于 Type I 或 On-hook caller ID 的应用,符合 Bellcore(Type I )及 ITU-I V.23 的规范。HT9032 整合了FSK 解调器于其芯片中。以低耗电量及价格的优势等见长。芯片将解码以1200波特率通过异步串行口发送至单片机接收。
2.4 摘挂机检测及DTMF解码电路
对系统黑名单设置时,复用话机键盘,因此需要对话机按键的DTMF拨号解码,得到相应的按键键值,送由单片机处理。同时要对话机状态进行检测,已及时通知单片机进行解码。DTMF解码采用盛群半导体公司的HT9170B集成解码芯片。电路图如图7所示:
图7 挂机检测及DTMF解码电路
摘挂机检测使用了电压比较器。根据我国电话网标准,挂机状态时电话网电压在24V以上,摘记时在10V以下,用电压比较器比较电压,判断话机状态。
2.5 模拟挂机电路
图8 模拟挂机电路
当TAKEUP为高电平时,T2导通;当TAKEUP低电平时,T2 不导通,因此T2就是一个受单片机IO口控制的开关。可以通过单片机模拟摘挂机。
2.6 单片机及显示部分
图9 单片机和显示部分电路
单片机采用飞利浦公司的51核P89C668。P89C66单片机内带64KB Flash存储器,8K RAM。该器件的时钟周期为6个时钟,是传统的80C51的两倍。4个中断优先级; 8个中断源;4个8位I/O口;全双工增强型UART; 2个DPTR寄存器; I2C串行接口;是功能非常强大的一款51核单片机。外扩1片eeprom存储器用于储存黑名单号码。显示电路采用的是128*64点阵LED屏,如图9所示。
2.7 系统电源
电话机后备电源需要24V供电,而其他数字电路需要5V供电,若采用线性稳压损耗较大,故而采用DC-DC芯片将24V电压降为5V为数字电路供电。电路图如图所示:
图10 电源电路
3、μC/OS硬件层驱动程序设计
3.1异步串行口驱动程序
当使用中断模式时,从接收移位寄存器接受到一个完整的字节,并将数据送入数据输入寄存器产生一个中断。中断处理程序从端口读入字节,清除中断源。这时可以处理ISR收到的字节,或者将字节送入缓冲区由后台处理,缓冲区大小依赖于后台进程控制CPU处理信息的速度。从串行端口捕捉数据时,常用一种被称作环形缓冲区的专用缓冲区。如图11所示为使用的环形缓冲区的输入缓冲
图11 输入缓冲
在接收字节时,ISR从串行端口读入字节。将读到的字节放入环形缓冲区。监测环形缓冲区中的字节,如果不为空,就从环形缓冲区中取出最旧得字节。程序不及时取出环状缓冲区中的字节,环状缓冲区就会将被填满而导致接受字节丢失。
输入数据的响应依赖于后台进程的执行速度。如果是实时内核,处理输入数据的速度就于ISR之接受不处理的速度差不多快。为此,环形缓冲区的管理加入了一个信号量,如图12所示。
图12 输入缓冲信号量
说明:
(1)应用程序等待信号量。
(2)接收到一字节后,ISR从串行端口读入字节。
(3)将接受到的字节送入环形缓冲区。
(4)ISR释放一个信号量,通知任务已经接收到一字节。
(5)信号量有效,等待任务准备开始运行。ISR完成后,内核决定等待任务是否成为优先级最高的任务。如果是,并且内核为可剥夺型内核,则恢复等待字节的任务,该任务从护环型缓冲区取出数据,执行相关操作。
3.2基于µC/OS-Ⅱ的串行口接收驱动
单片机对串口的支持仅仅是当数据送入SBUF时开始移位,但收到一个完整的字节后产生中断,通知用户进行读操作。在P89C668中,串行口并没有设计缓冲区,接收移位寄存器直接将数据送到接收SBUF,如果没有及时从接收SBUF中取出,前一字节就会丢失。如果没有驱动程序的支持,应用程序必须一字节一字节地接收数据,不但浪费时间,而且对应用程序的编制将产生极大影响。所以在使用串口的时候,串口驱动程序是必须的,通过驱动程序,可以大大简化应用程序的编写。
针对P89C668片内UART和µC/OS-Ⅱ的特性,设计了分层明确的驱动模型,如图13所示。
图13 串口接收分层驱动
任务在对环形缓冲区进行操作的时候,通过等待信号量,确定缓冲区是否允许操作,同时中断服务子程序通过释放信号量来通知任务可以对缓冲区进行操作,大大提高了任务的响应时间。一般来说,可以通过查询此计数型信号量来获知缓冲区的使用情况,但这样就需要对信号量的事件控制块(ECB)进行操作,效率不高,所以增加一个缓冲区技术,用来保存缓冲区中的数据计数。
4、系统软件设计
根据硬件构成,系统软件可分为来电解码,显示,键盘,判决,存储几大模块。模块在µC/OS-Ⅱ的调度之下运行。
防火墙在值守状态时,各模块处于挂起态。当系统检测到铃流,将运行来电解码模块,并将解得的号码通知µC/OS-Ⅱ。µC/OS-Ⅱ将通过判决模块判断来电属性,执行相应动作。程序流程如图14所示。
图14 主程序流程图
系统设置状态时,µC/OS-Ⅱ将协调显示,键盘,存储各个模块完成系统设置。如图15所示。
图15 人机界面流程图
结语
本文设计了基于μC/OS和MCS51单片机的固话来电防火墙。介绍了电话机的基本工作原理,硬件对主要模块进行了详细的分解分析,软件对基本流程和设计思路进行了阐述。整个系统通过了实际产品的最终验证,达到设计要求。
参 考 文 献
[1][美]Jean.J.Labrosse 著,邵贝贝 等译.嵌入式实时操作系统μC/OS-Ⅱ(第二版)[M].北京:北京航空航天大学出版社,2003:72-115,283-316.
[2]陈是知 著,μC/OS-Ⅱ内核分析、移植与驱动程序开发[M].北京:人民邮电出版社,2007:170-196,205-225.
[3] GB 8880-82,电话自动交换网铃流和信号音[S].北京:国家标准局,1982.
[4] YD/T868-1996,电话机附加设备进网技术要求及测试方法[S],1996
[5] 邮电部技术规定-电话主叫识别信息传送及显示功能的技术要求和测试方法[Z],1998

网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
发表评论
推荐商品
MarS Board 飞思卡尔i.MX 6Dual... 会员价:¥668 |
element14 BeagleBone Black(Rev... 会员价:¥420 |
Cortex-A9开发板 飞思卡尔 四核 ... 会员价:¥1300 |
最新 Real6410开发板+4.3寸触摸屏... 会员价:¥1380 |
增强型DM642开发板+H.264视频开发... 会员价:¥1580 |
S5PV210/QT210-V3开发板+7寸电容... 会员价:¥699 |
|