计算机辅助语音拨号系统设计

2015-02-21 06:49常海滨
电子设计工程 2015年18期
关键词:单元格号码上位

常海滨

(陕西学前师范学院 陕西 西安 710100)

计算机辅助语音拨号系统设计

常海滨

(陕西学前师范学院 陕西 西安 710100)

针对当前对批量拨号应用的需求,并且考虑到传统固定电话在批量拨号功能上的欠缺,文中提出一种实施简单、费用低廉的改造方案以实现传统固定电话批量自动拨号功能。嵌入式设备可以对电子设备进行控制,完成开关量的输出。个人微计算机可以处理大量的数字文件,并且日常办公使用的文件大多已经电子化,有计算机软件操作完成。在本设计中,采用以微控制器为核心器件的嵌入式设备控制传统固定电话的拨号与摘挂机过程,通过开发基于MFC的用户交互软件来实现从EXCEL表格文件中读取个人电话号码的功能。并最终通过串口将上位机读取的拨号信息传递给嵌入式控制板,完成最终的拨号过程。通过公司内部的拨号系统进行测试表明,本系统可以在现有座机电话进行简单改造实现批量号码的拨号功能,而且拨号规则可以灵活变通,方便其他应用场合结合自身需要进行扩展。

智能电话;单片机;MFC;EXCEL读写;UART

现代社会中,手机QQ、微信已经在改变着人们通信的方式,但是传统的语音通信功能由于拥有实时性的特点,依然在许多场合下扮演着非常重要的角色,许多重要信息依然是通过语音通信系统进行传输的。随着电子技术的进步,语音信息的传播越来越智能化,而且在更多公众性的场合下被应用。通过信息技术的改进,语音通信系统还实现了批量拨号和智能交互的功能。如近年出现的高考语音查询系统。人们可以通过拨号查询成绩数据库,并在接入后通过拨号完成一次数据交互,并最终通过语音软件将查询的信息“说”出来[1]。

此类语音系统通常使用语音卡来完成。这些语音卡往往制作成板卡样式,插入计算机主板中。通过PCI总线完成与计算机的连接。在使用中需要特殊的函数库的支持。该类系统类似小型智能交换机。作为一个程控智能设备,语音卡完成了对打入电话的自动摘机挂机功能,并能够读取通话线路传递的模拟信号,并解码成相应的拨号信息。

在一些比较大的公司中总部往往会为分公司提供一种公用语音系统接口。分公司可以通过专用线路将所需要拨打的号码以一定的格式拨号至该语音系统,然后便可以通过总公司的语音系统进行拨打常规回访电话。在对此类应用场景进行批量拨号改造设计中,传统的语音卡方案虽然功能强大,但是确实提供了许多冗余功能,从而使得整个设计的费用往往比较高。另外以往子公司在针对此类应用,常通过雇佣大量人员,采用人工拨打电话的方式。采用语音卡进行升级会造成大量固定座机的浪费。

文中介绍了一种计算机辅助语音拨号系统。该系统由在计算机上运行的上位机软件和嵌入式设备组成。通过嵌入式设备连接传统固定电话,使得传统的电话可以经由少量信号线被嵌入式设备控制,完成自动摘挂机和拨号的过程。另外考虑到大多数号码名单往往存于Excel表格中,本设计采取结合计算机的方式实现上位机原始号码读取的功能。在MFC下开发表格读写和串口通信的软件,从而将上位机获取的号码信息传输至下位机完成拨号功能。

1 总体设计

在传统的固定电话的设计中,绝大多数固定电话的键盘扫描功能是由专门芯片完成的,并且直接将获得的键值发送给DTMF发生芯片来完成双音频信号的合成。为了能够方便该计算机辅助拨号系统的扩展性,本设计采取直接控制键盘扫描芯片,以实现控制固定电话拨号的功能。

本方案设计中主要由计算机上位机和嵌入式控制模块组成。上位机的主要功能是完成对存入Excel表格中的电话号码信息进行读取。然后通过RS232通信接口,将读出的电话号码信息发送给嵌入式设备。嵌入式设备采用一片核心MCU作为中央控制器,完成对上位机数据读取的功能。然后通过控制开关矩阵完成号码的拨号功能。系统整体设计框图如图1所示。

图1 系统总体结构图Fig.1 Structure diagram of the system

2 上位机软件设计

考虑到大多数电子名单都存于Office办公软件Excel中,上位机的核心功能可以被分为3大块,分别为Excel表单数据获取、UI用户界面设计和与下位机通信3大部分。本设计采用Visio C++环境,并基于MFC库开发。MFC库是微软在VC6.0环境下对用户交互界面程序编写的一种开发库。并且该环境非常好的支持了Office软件产品的二次开发。可以通过关联并调用每一款软件对应的接口库文件,实现对Office文档的读写操作。同时在MFC控件中也提供了大量的底层通信的接口,可以通过直接拖拽com口控件实现对RS232接口的读写操作[2-3]。上位机系统框图设计如图2所示。

图2 上位机软件体系框图Fig.2 Structure diagram of the software in PC

1)EXCEl接口软件设计

VC 6.0的开发环境中已经增加了对Office文件的读取支持,且版本不同需要添加所安装Office版本的开发库的支持。在MFC中对Excel文件读写操作函数是封装在特定的类中。在创建工程之后添加新的类,在选择类型的时候选择添加From a type library。在弹出的对话框中寻找Office软件的安装目录。以往的添加过程中往往寻找.olb类型的文件,在Office2003以上的版本中,Office接口库程序可以通过添加.exe可执行文件完成。操作如图3所示。

图3 MFC添加类库Fig.3 Add class to MFC project

添加完毕后,软件运行流程图4所示。

图4 EXCEL读写软件流程Fig.4 The operation progress of software for EXCEL

在操作Excel软件中需要在工作薄中创建工作表,并在工作表中完成数据的录入和数据的处理。在VC中进行软件开发过程中,也需要针对每个数据存储模块分别设计对应操作。软件中通过创建对应对象来实现这一功能。Workbooks是工作薄的对象,Worksheets是工作表对应的对象。Range是对一个工作表中单元格操作的集合。获取Excel开发库支持并例化对象后就可以开始对单元格进行操作了。

在单元格操作中有4个关键的操作分别是单元格定位、单元格读、单元格写和保存。单元格定位操作中输入的参数为行 列 坐 标 ,range=sheet.GetRange (COleVariant("A1"),COleVariant("A1"));获取当前坐标单元格之后就可以进行读写操作了。range.GetValue()和range.SetValue2(COleVariant("******"));分别实现了指定单元格区域的读写。book.Save()实现对整个工作薄的保存。至此EXCEL文档可以顺利操作了[3]。

2)UART接口软件设计

UART是一种通用全双工串行数据总线,用于异步通信。在嵌入式设计中,UART是主机与辅助设备通信的常用方式,如计算机和嵌入式微控制器。在本设计中使用UART接口将MFC中读取的电话号码信息传输给单片机从而完成相应的拨号过程。在MFC框架中,对底层串口的操作是封装在CMSComm类中的。在添加类向导中添加CMSComm类对象m_ctrlComm,然后在cpp文件中编写初始化操作。考虑到拨号的时间相比传输时间长很多,这里选择波特率为19 200,格式为无校验8个数据位一个停止位,代码设置为m_ctrlComm.SetSettings("19200,n,8,1");

串口初始化完毕之后便可以进行读写操作了。从串口发送数据就是向串口发送缓存区写入数据,操作代码为m_ctrlComm.SetOutput(COleVariant(*****));从串口接受数据是通过软件触发完成的。当底层设备向计算机发送数据时,会触发OnComm()消息。在其内部可以添加读取函数。当有串口接收到数据时m_ctrlComm.GetCommEvent()操作将返回一个非零的数值,可以通过判断该返回值判断是否有数发回。之后便可以通过m_ctrlComm.GetInput()操作读取缓存区以获得数据。从而完成串口数据收发操作。

3 底层嵌入式控制板设计

1)底层硬件设计

在底层接口设计中主要需要完成两个重要功能。首先是完成对电话机的摘挂机的操作。该部分使用MCU通用IO引脚输出高低电平控制开关电路来实现控制摘挂机。其次是对电话的键盘按键功能的模拟。在传统固定电话机中,按键扫描与DTMF编码是在同一芯片中实现的。常见的处理芯片有W91314等。行列扫描引线接入4*4矩阵开关,检查用户按下的信息。在这一部分本设计采用矩阵开关来实现。将电话机原有的键盘扫描线路接到矩阵开关通断引脚,使用控制引脚选择通断组合,从而实现按键的模拟。这一功能选择CSC8816芯片来实现。主控芯片选择STC89C52RC单片机来完成,该单片机拥有四组八位IO引脚,工作在5V电压下有着比较强的驱动能力。52系列使用51单片机通用的指令集,代码通用,移植性强。且拥有2K的存储空间,可以执行较复杂的操作过程。核心硬件设计如图5所示。

图5 底层硬件设计Fig.5 The design of the hardware

2)底层软件设计

单片机上的软件部分负责接收从上位机传输来的号码信息,并按照一定规则拨打出去。这一部分中,串口的接收是通过硬件中断来实现的,整个操作是从中断处理函数开始的。首先,对串口进行初始化设置。这里设置串口模式、定时器和中断寄存器。核心代码为SCON=0x50;TMOD|=0x20;IE |=0x90;这样设置之后在串口接收中断服务函数中编写拨号代码[4-5]。图流程图如6所示。

在拨打每一个号码时,通过设定CSC8816输入控制引脚状态,选择接通的行号和列号,完成按键按下的模拟。并且在拨打每一个号码时还需要添加适当延时,根据DTMF规则一般至少在100 ms。

图6 拨号软件流程Fig.6 The progress of dialing software

4 实验应用

在实际测试过程中,采用一台PC主机按总线形式连接多套自动拨号设备,每套设备控制2部座机的规格设置。连接设置完毕后,打开主机并启动主程序并选择所需拨号的名单。待名单遍历后主程序开始拨号。观察所拨号码的归属电话,在适当时间后都可以收到回访电话。本套设备在某通信运营子公司运行界面图7所示。

图7 软件操作界面Fig.7 The operation of the UI software

5 结论

经测试表明,本设计可以将存储于计算机excel文件上的用户号码名单读取出来,并通过下位机将号此码拨打出去。通过软硬件的帮助,可以将大量的号码有序拨打出去。该设计简单并且方便各单位在原有座机基础上进行智能升级,不需要进行大规模的更新换代[6]。对未来智能电话的改进提供了参考。

[1]姚仲敏,丁学英.列车车次信息语音查询系统的开发设计[J].齐齐哈尔大学学报,2009,25(6):1-5.YAO Zhong-min,DING Xue-ying.The design of the phonetic inquiry system of the train number[J].Journal of Qiqihar University,2009,25(6):1-5.

[2]徐璇,姜明新,黄静,等.基于MFC的工程软件界面设计[J].电子设计工程,2011,19(21):11-13.XU Xuan,JIANG Ming-xin,HUANG Jing,et al.Software interface design of MFC-based engineering [J].Electronic Design Engineering.2009,25(6):1-5.

[3]杜诗雨,王子源.Visual C++操作 Excel的应用研究 [J].计算机与现代化,2011,08(192):201-206.DU Shi-yu,WANG Zi-yuan.Application Research on Excel in VC++Environment[J].Jisuanji yu xiandaihua,2011,08(192):201-206.

[4]宋晶,沈兴全,赵润鹏.基于组态王的PC机与单片机串口通信技术研究[J].化工自动化及仪表,2011,38(5):551-553.SONG Jing,SHEN Xing-quan,ZHAO Run-peng.KingView-based PC and serial communication technology[J].Control and Instruments in Chemical Industry,2011,38(5): 551-553.

[5]刘杰,王慧.组态王与单片机多机串口通信的设计[J].电子设计工程,2009,17(7):7-11.[J].LIU Jie,WANG Hui.Design of communication between multi-SCM and KingView by serial ports[J].Electronic Design Engineering,2009,17(7):7-11.

[6]江世明,刘湘涛.基于单片机的智能电话控制系统的研制[J].船电技术,2006,2:60-63.JIANG Shi-ming,LIU Xiang-tao.The advanced development of intelligent phone control system based on single-chip[J].Marine Electric&Electronic Engineering.2006,2:60-63.

Design of computer aided telephone dialing system

CHANG Hai-bing
(Shanxi Xueqian Normal University,Xiˊan 710100,China)

Considering the need of dialing with large number and the inconvenient of the traditional line phone,a new improvement which is very easy and cost little is described in this article to make the traditional telephone dial automatically.Combined with embedded MCU and PC,this equipment can read all the information from the excel file and dial them automatically.In this design the embedded board is in charge of the dialing and picking up or hanging over the phone,while the software in PC will read all the number in excel file and send this to the embedded board.The test of this equipment in the phone system in the lab shows that this design performs well and can be used in many other situations with little change.

smart phone;MCU;MFC;EXCEL develop;UART

TN916

:A

:1674-6236(2015)18-0157-03

2015-02-13稿件编号:201502112

常海滨(1981—),男,陕西西安人,硕士,讲师。研究方向:信号与信息处理、信息系统设计。

猜你喜欢
单元格号码上位
流水账分类统计巧实现
说号码 知颜色
玩转方格
玩转方格
一个号码,一个故事
猜出新号码
特斯拉 风云之老阿姨上位
浅谈Excel中常见统计个数函数的用法
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统