艾紅斌
(1.中國電子科技集團公司 第41研究所,蚌埠233000;2.蚌埠依愛消防電子有限責任公司;3.安徽省消防電子工程技術研究中心)
盡早地掌握火情,對于防火救災,將火災損失降到最小,具有著至關重要的意義。特別是對于一些無人值守的重要場所,更需要及時地了解火災報警設備的運行情況,保持火災報警設備處于良好的監控狀態。本文介紹的方案就是當火災報警設備出現故障或發現火警時,利用公共電話網自動撥打有關人員的電話,并將火災報警設備的故障及火警信息轉換成語音進行播放。
語音自動報警技術的硬件實現主要由4部分電路組成:串行通信電路、撥號電路、語音合成電路、存儲電路。各部分電路在CPU(如AT89S52)的控制下協調工作,完成文字信息的收發、自動撥號、語音合成和信息存儲。電路框圖如圖1所示。
串行通信電路是與火災報警控制器間的接口電路,可采用RS-232驅動器/接收器(如 MAX202)來構建,連接CPU的串行通信口,以完成RS-232電平與TTL電平間的轉換。主要用來接收火災報警控制器發來的預撥打電話號碼和報警信息的文字代碼等信息,并將已撥通的電話號碼回傳給火災報警控制器。

圖1 語音自動報警系統電路框圖
撥號電路主要包括兩部分,即DTMF(雙音多頻)收發電路和電話接口電路,如圖2所示。

圖2 撥號電路
DTMF收發電路采用 MT8888,該芯片可直接與CPU接口相連,具有完整的DTMF收發功能,能夠對電話呼叫過程中的各種信號音(信號音是450±25Hz的正弦波,不同的通斷間隔代表不同的信號音,例如1s通4s斷代表回鈴音,0.35s通0.35s斷代表忙音)進行檢測,只要信號頻率落在320~510Hz頻率范圍內,片內呼叫處理濾波器便可濾出,并在CALL端輸出經限幅得到的方波。方波寬度代表信號音持續的時間,該方波由CALL端輸出至CPU,供CPU判斷呼叫的性質和類別。當需要撥打電話時,CPU通過數據線將電話號碼發送給DTMF收發芯片,控制其合成與號碼數字相對應的雙音頻信號,經電話接口電路送至公共電話網。DTMF信號是由兩種不同頻率的信號疊加而成的合成波,0~9每個數字都有一組確定頻率的波形與其對應,每個數字由4位二進制碼表示。
電話接口電路除了可以采用傳統的音頻變壓器之外,也可以采用恒流源電路,利用其直流阻抗較小和交流阻抗較大的特點,完成自動呼叫時的摘機檢測和音頻信號的傳輸。
圖中的繼電器K1用于控制將電路接通至公共電話網,繼電器K2用于控制將DTMF芯片的接收或發送端連通至電話接口電路。
語音合成電路其核心是語音合成芯片,可采用XFS3031CN。這是一款高性價比的中文語音合成芯片,它可以通過UART接口接收待合成的文本(比如火災報警控制器顯示的故障或火警信息,以及其他提示信息),把文本合成為語音輸出。該芯片具有智能的文本分析處理算法,對常見的數值、電話號碼、時間日期、度量衡符號等格式的文本及多音字,能夠根據內置的文本匹配規則進行正確的識別和處理;支持多種文本控制命令及控制標記,提高處理的正確率。若CPU沒有多余的UART口,也可以采用串口擴展芯片(如16C550)進行擴展。合成的語音經功放電路放大后,一方面通過公共電話網送至已接聽的用戶電話進行播放;另一方面可由揚聲器播放,供現場監聽。語音合成電路如圖3所示。
通過火災報警控制器,可以設置幾個相關人員的電話號碼,保存在存儲器中。發生火警時,依次撥打存儲的相關電話號碼,撥通的電話號碼及撥打時間也可保存在存儲器中以備事后查詢。可用CPU自帶的存儲器或外接的EEPROM存儲器,如24LC02。
CPU與火災報警控制器間的串行通信采用中斷方式,傳輸的數據信息可以按照一定的格式封裝為數據包,內含校驗碼,防止信息被錯誤接收。接收方收到數據包后向發送方返回應答包。
CPU通過數據線控制DTMF收發器的工作模式。撥打電話號碼時首先要檢測電話線狀態,需將DTMF收發器設置成呼叫處理(CALL)模式;并利用CPU內部的計數器對DTMF收發器輸出的方波寬度進行計數檢測,根據一定時間內(例如5s)計數值的大小判斷出電話線上的各種狀態信號音(撥號音、忙音、回鈴音等);然后再轉入后續的相應操作。發送完電話號碼后,仍需檢測狀態信號音。若是忙音則撥打下一個號碼,若是回鈴音則繼續等待一定時間,若用戶已摘機則播放合成的報警語音,撥號程序流程如圖4所示。

圖3 語音合成電路

圖4 撥號程序流程
語音合成芯片通過UART接口接收CPU發送的命令和數據,允許發送數據的最大長度為204字節。通信傳輸字節格式為:起始位1位,數據位8位(低位在前),停止位1位,無校驗位,波特率為9 600bps。
CPU發送給語音合成芯片的所有命令和數據都需要用“幀”的方式進行傳輸,幀格式為:幀頭+數據長度+數據區。如下所示為其中一種格式,數據區中的文本編碼格式可以采用GB2312、GBK、BIG5和UNICODE四種編碼方式。

幀頭 數據區長度 數據區0xFD 高字節 低字節 命令字 文本編碼格式 待合成文本
芯片收到命令幀或狀態查詢命令后,回傳相應的狀態數據供CPU判斷目前芯片的工作狀態。
芯片正在合成文本的時候,如果又接收到一幀有效的合成命令幀,芯片會立即停止當前正在合成的文本,轉而合成新收到的文本。
外接EEPROM存儲器24LC02與CPU間采用I2C總線方式進行通信。若CPU沒有I2C總線接口,可使用2個I/O端口,用軟件模擬I2C總線方式進行通信。
主程序主要完成初始化,存儲工程名稱及電話號碼、合成反映系統運行狀態的提示語音,撥打預設的電話,合成報警語音等。主程序流程如圖5所示。

圖5 主程序流程
語音自動報警技術應用于火災報警系統,有利于消防管理人員及時掌握消防設備的運行情況,尤其適用于一些不是全天候有人值班的場所。將文字轉變成語音,使報警信息變得更加直觀,為報警信息的傳遞提供了一條新的途徑。
[1]合肥訊飛數碼科技有限公司.XFS3031CN中文語音合成芯片數據手冊,2012.
[2]Mitel.MT8888Cintegrated DTMF transceiver with Intel Micro interface[EB/OL].[2013-01].http://www.mitelsemi.com.
[3]何立民.單片機應用技術選編[M].北京:北京航空航天大學出版社,1997.