常海濱
(陜西學前師范學院 陜西 西安 710100)
計算機輔助語音撥號系統設計
常海濱
(陜西學前師范學院 陜西 西安 710100)
針對當前對批量撥號應用的需求,并且考慮到傳統固定電話在批量撥號功能上的欠缺,文中提出一種實施簡單、費用低廉的改造方案以實現傳統固定電話批量自動撥號功能。嵌入式設備可以對電子設備進行控制,完成開關量的輸出。個人微計算機可以處理大量的數字文件,并且日常辦公使用的文件大多已經電子化,有計算機軟件操作完成。在本設計中,采用以微控制器為核心器件的嵌入式設備控制傳統固定電話的撥號與摘掛機過程,通過開發(fā)基于MFC的用戶交互軟件來實現從EXCEL表格文件中讀取個人電話號碼的功能。并最終通過串口將上位機讀取的撥號信息傳遞給嵌入式控制板,完成最終的撥號過程。通過公司內部的撥號系統進行測試表明,本系統可以在現有座機電話進行簡單改造實現批量號碼的撥號功能,而且撥號規(guī)則可以靈活變通,方便其他應用場合結合自身需要進行擴展。
智能電話;單片機;MFC;EXCEL讀寫;UART
現代社會中,手機QQ、微信已經在改變著人們通信的方式,但是傳統的語音通信功能由于擁有實時性的特點,依然在許多場合下扮演著非常重要的角色,許多重要信息依然是通過語音通信系統進行傳輸的。隨著電子技術的進步,語音信息的傳播越來越智能化,而且在更多公眾性的場合下被應用。通過信息技術的改進,語音通信系統還實現了批量撥號和智能交互的功能。如近年出現的高考語音查詢系統。人們可以通過撥號查詢成績數據庫,并在接入后通過撥號完成一次數據交互,并最終通過語音軟件將查詢的信息“說”出來[1]。
此類語音系統通常使用語音卡來完成。這些語音卡往往制作成板卡樣式,插入計算機主板中。通過PCI總線完成與計算機的連接。在使用中需要特殊的函數庫的支持。該類系統類似小型智能交換機。作為一個程控智能設備,語音卡完成了對打入電話的自動摘機掛機功能,并能夠讀取通話線路傳遞的模擬信號,并解碼成相應的撥號信息。
在一些比較大的公司中總部往往會為分公司提供一種公用語音系統接口。分公司可以通過專用線路將所需要撥打的號碼以一定的格式撥號至該語音系統,然后便可以通過總公司的語音系統進行撥打常規(guī)回訪電話。在對此類應用場景進行批量撥號改造設計中,傳統的語音卡方案雖然功能強大,但是確實提供了許多冗余功能,從而使得整個設計的費用往往比較高。另外以往子公司在針對此類應用,常通過雇傭大量人員,采用人工撥打電話的方式。采用語音卡進行升級會造成大量固定座機的浪費。
文中介紹了一種計算機輔助語音撥號系統。該系統由在計算機上運行的上位機軟件和嵌入式設備組成。通過嵌入式設備連接傳統固定電話,使得傳統的電話可以經由少量信號線被嵌入式設備控制,完成自動摘掛機和撥號的過程。另外考慮到大多數號碼名單往往存于Excel表格中,本設計采取結合計算機的方式實現上位機原始號碼讀取的功能。在MFC下開發(fā)表格讀寫和串口通信的軟件,從而將上位機獲取的號碼信息傳輸至下位機完成撥號功能。
在傳統的固定電話的設計中,絕大多數固定電話的鍵盤掃描功能是由專門芯片完成的,并且直接將獲得的鍵值發(fā)送給DTMF發(fā)生芯片來完成雙音頻信號的合成。為了能夠方便該計算機輔助撥號系統的擴展性,本設計采取直接控制鍵盤掃描芯片,以實現控制固定電話撥號的功能。
本方案設計中主要由計算機上位機和嵌入式控制模塊組成。上位機的主要功能是完成對存入Excel表格中的電話號碼信息進行讀取。然后通過RS232通信接口,將讀出的電話號碼信息發(fā)送給嵌入式設備。嵌入式設備采用一片核心MCU作為中央控制器,完成對上位機數據讀取的功能。然后通過控制開關矩陣完成號碼的撥號功能。系統整體設計框圖如圖1所示。

圖1 系統總體結構圖Fig.1 Structure diagram of the system
考慮到大多數電子名單都存于Office辦公軟件Excel中,上位機的核心功能可以被分為3大塊,分別為Excel表單數據獲取、UI用戶界面設計和與下位機通信3大部分。本設計采用Visio C++環(huán)境,并基于MFC庫開發(fā)。MFC庫是微軟在VC6.0環(huán)境下對用戶交互界面程序編寫的一種開發(fā)庫。并且該環(huán)境非常好的支持了Office軟件產品的二次開發(fā)。可以通過關聯并調用每一款軟件對應的接口庫文件,實現對Office文檔的讀寫操作。同時在MFC控件中也提供了大量的底層通信的接口,可以通過直接拖拽com口控件實現對RS232接口的讀寫操作[2-3]。上位機系統框圖設計如圖2所示。

圖2 上位機軟件體系框圖Fig.2 Structure diagram of the software in PC
1)EXCEl接口軟件設計
VC 6.0的開發(fā)環(huán)境中已經增加了對Office文件的讀取支持,且版本不同需要添加所安裝Office版本的開發(fā)庫的支持。在MFC中對Excel文件讀寫操作函數是封裝在特定的類中。在創(chuàng)建工程之后添加新的類,在選擇類型的時候選擇添加From a type library。在彈出的對話框中尋找Office軟件的安裝目錄。以往的添加過程中往往尋找.olb類型的文件,在Office2003以上的版本中,Office接口庫程序可以通過添加.exe可執(zhí)行文件完成。操作如圖3所示。

圖3 MFC添加類庫Fig.3 Add class to MFC project
添加完畢后,軟件運行流程圖4所示。

圖4 EXCEL讀寫軟件流程Fig.4 The operation progress of software for EXCEL
在操作Excel軟件中需要在工作薄中創(chuàng)建工作表,并在工作表中完成數據的錄入和數據的處理。在VC中進行軟件開發(fā)過程中,也需要針對每個數據存儲模塊分別設計對應操作。軟件中通過創(chuàng)建對應對象來實現這一功能。Workbooks是工作薄的對象,Worksheets是工作表對應的對象。Range是對一個工作表中單元格操作的集合。獲取Excel開發(fā)庫支持并例化對象后就可以開始對單元格進行操作了。
在單元格操作中有4個關鍵的操作分別是單元格定位、單元格讀、單元格寫和保存。單元格定位操作中輸入的參數為行 列 坐 標 ,range=sheet.GetRange (COleVariant("A1"),COleVariant("A1"));獲取當前坐標單元格之后就可以進行讀寫操作了。range.GetValue()和range.SetValue2(COleVariant("******"));分別實現了指定單元格區(qū)域的讀寫。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");
串口初始化完畢之后便可以進行讀寫操作了。從串口發(fā)送數據就是向串口發(fā)送緩存區(qū)寫入數據,操作代碼為m_ctrlComm.SetOutput(COleVariant(*****));從串口接受數據是通過軟件觸發(fā)完成的。當底層設備向計算機發(fā)送數據時,會觸發(fā)OnComm()消息。在其內部可以添加讀取函數。當有串口接收到數據時m_ctrlComm.GetCommEvent()操作將返回一個非零的數值,可以通過判斷該返回值判斷是否有數發(fā)回。之后便可以通過m_ctrlComm.GetInput()操作讀取緩存區(qū)以獲得數據。從而完成串口數據收發(fā)操作。
1)底層硬件設計
在底層接口設計中主要需要完成兩個重要功能。首先是完成對電話機的摘掛機的操作。該部分使用MCU通用IO引腳輸出高低電平控制開關電路來實現控制摘掛機。其次是對電話的鍵盤按鍵功能的模擬。在傳統固定電話機中,按鍵掃描與DTMF編碼是在同一芯片中實現的。常見的處理芯片有W91314等。行列掃描引線接入4*4矩陣開關,檢查用戶按下的信息。在這一部分本設計采用矩陣開關來實現。將電話機原有的鍵盤掃描線路接到矩陣開關通斷引腳,使用控制引腳選擇通斷組合,從而實現按鍵的模擬。這一功能選擇CSC8816芯片來實現。主控芯片選擇STC89C52RC單片機來完成,該單片機擁有四組八位IO引腳,工作在5V電壓下有著比較強的驅動能力。52系列使用51單片機通用的指令集,代碼通用,移植性強。且擁有2K的存儲空間,可以執(zhí)行較復雜的操作過程。核心硬件設計如圖5所示。

圖5 底層硬件設計Fig.5 The design of the hardware
2)底層軟件設計
單片機上的軟件部分負責接收從上位機傳輸來的號碼信息,并按照一定規(guī)則撥打出去。這一部分中,串口的接收是通過硬件中斷來實現的,整個操作是從中斷處理函數開始的。首先,對串口進行初始化設置。這里設置串口模式、定時器和中斷寄存器。核心代碼為SCON=0x50;TMOD|=0x20;IE |=0x90;這樣設置之后在串口接收中斷服務函數中編寫撥號代碼[4-5]。圖流程圖如6所示。
在撥打每一個號碼時,通過設定CSC8816輸入控制引腳狀態(tài),選擇接通的行號和列號,完成按鍵按下的模擬。并且在撥打每一個號碼時還需要添加適當延時,根據DTMF規(guī)則一般至少在100 ms。

圖6 撥號軟件流程Fig.6 The progress of dialing software
在實際測試過程中,采用一臺PC主機按總線形式連接多套自動撥號設備,每套設備控制2部座機的規(guī)格設置。連接設置完畢后,打開主機并啟動主程序并選擇所需撥號的名單。待名單遍歷后主程序開始撥號。觀察所撥號碼的歸屬電話,在適當時間后都可以收到回訪電話。本套設備在某通信運營子公司運行界面圖7所示。

圖7 軟件操作界面Fig.7 The operation of the UI software
經測試表明,本設計可以將存儲于計算機excel文件上的用戶號碼名單讀取出來,并通過下位機將號此碼撥打出去。通過軟硬件的幫助,可以將大量的號碼有序撥打出去。該設計簡單并且方便各單位在原有座機基礎上進行智能升級,不需要進行大規(guī)模的更新換代[6]。對未來智能電話的改進提供了參考。
[1]姚仲敏,丁學英.列車車次信息語音查詢系統的開發(fā)設計[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]宋晶,沈興全,趙潤鵬.基于組態(tài)王的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]劉杰,王慧.組態(tài)王與單片機多機串口通信的設計[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—),男,陜西西安人,碩士,講師。研究方向:信號與信息處理、信息系統設計。