辛 利,張志國
(中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050200)
當(dāng)前環(huán)境下,突發(fā)及應(yīng)急事件日益增多。能夠在現(xiàn)場(chǎng)進(jìn)行可靠、穩(wěn)定的應(yīng)急指揮通信非常重要。車載通信調(diào)度機(jī)在應(yīng)急通信車中的使用使通信調(diào)度兩位一體,滿足了應(yīng)急通信靈活、快速、機(jī)動(dòng)的要求。本文所設(shè)計(jì)的使用CPC5621芯片完成的模擬環(huán)路啟動(dòng)單元為車載調(diào)度機(jī)在條件受限的情況下實(shí)現(xiàn)方便快捷的通信聯(lián)網(wǎng)提供了保證。
環(huán)路中繼是電路交換機(jī)中一種常用的模擬中繼方式,示意圖如圖1所示。它能模擬與其連接的用戶接口的摘/掛機(jī)動(dòng)作,就像對(duì)端交換機(jī)的用戶接口連接一部電話在摘/掛機(jī)一樣。這種方式實(shí)現(xiàn)方便,連接可靠。環(huán)路中繼接口在用戶側(cè)和中繼側(cè)均為兩線實(shí)線連接,用于話務(wù)量較小的交換機(jī)之間互聯(lián),可以完成出入局的雙向呼叫等功能。典型的應(yīng)用如圖2所示。
圖1 環(huán)路中繼示意圖
圖2 環(huán)路中繼的典型應(yīng)用
CPC5621是一款通信中繼接口芯片,支持5 V和3.3V兩種電壓模式,對(duì)外接口可以分為線路側(cè)和處理器側(cè)。線路側(cè)提供連接PSTN網(wǎng)絡(luò)兩線接口的各種功能;處理器側(cè)連接微處理器,接受控制,上報(bào)狀態(tài),并提供音頻接口。同時(shí)還具有以下功能:
(1)二四線變換:通過二四線混合電路,將兩線信號(hào)變換為差分音頻線對(duì)。內(nèi)置的光學(xué)隔離柵將線路側(cè)和主機(jī)側(cè)屏蔽隔開,為用戶提供低噪聲、低失真的音頻信號(hào)。增強(qiáng)的3 000Vrms隔離電壓也進(jìn)一步增強(qiáng)了設(shè)備的浪涌抗擾度。
(2)振鈴檢測(cè):PSTN網(wǎng)絡(luò)環(huán)境下,用戶線間電壓在待機(jī)狀態(tài)下約為52V,振鈴信號(hào)為90V、25Hz的正弦交流信號(hào),兩者疊加形成高壓,內(nèi)置的高壓隔離柵可以對(duì)此高壓進(jìn)行隔離處理。當(dāng)有入局呼叫時(shí),振鈴信號(hào)經(jīng)過高壓隔離柵后,在RING引腳輸出一個(gè)同頻率間斷的TTL電平信號(hào)。通過微處理器的I/O引腳,軟件就可以通過檢測(cè)引腳上的信號(hào)頻率實(shí)現(xiàn)檢測(cè)振鈴信號(hào)及檢測(cè)入局呼叫的目的。
(3)摘/掛機(jī)控制:交換機(jī)是通過線路上的環(huán)流大小來判斷用戶電話機(jī)的摘/掛機(jī)狀態(tài)的。掛機(jī)狀態(tài)下,電路上的電流接近0;而摘機(jī)狀態(tài)下,線路上的電流約為30mA(可調(diào))。利用三極管 CPC5602的開關(guān)特性,通過改變CPC5621的OH引腳電平控制三極管CPC5602的通斷,以此改變線路中的環(huán)流,達(dá)到模擬話機(jī)的摘/掛機(jī)動(dòng)作的目的。具體描述為:當(dāng)CPC5621的OH引腳被控制輸入高電平時(shí),CPC5602截止,回路電流很小,設(shè)備被判斷處于掛機(jī)狀態(tài);反之,當(dāng)CPC5621的OH引腳被控制輸入低電平時(shí),CPC5602導(dǎo)通,此時(shí)流過CPC5602的電流超過30mA,設(shè)備被判斷處于摘機(jī)狀態(tài)[1]。
(4)環(huán)流調(diào)整:CPC5621還提供可編程設(shè)置的恒流源作為環(huán)路負(fù)載,通過改變負(fù)載電阻來改變環(huán)路電流的大小,解決由于線路遠(yuǎn)近而影響環(huán)流大小的問題,提高摘掛機(jī)檢測(cè)的穩(wěn)定性及可靠性。
(5)來電顯示及掛機(jī)傳輸:CPC5621采用了高阻信號(hào)通道,在掛機(jī)狀態(tài)下,電路會(huì)自動(dòng)切換到該通道,以實(shí)現(xiàn)掛機(jī)狀態(tài)下的音頻信號(hào)傳輸。該通道具有極小的失真度,可以在掛機(jī)狀態(tài)下可靠地檢測(cè)DTMF信號(hào)及FSK信號(hào)。
環(huán)路中繼單元是車載調(diào)度機(jī)的重要部件,通過同步TBUS總線與總控單元連接,上報(bào)本單元狀態(tài)并接受總控單元的控制。
每通道定義控制字 8 bit,狀態(tài)字8 bit,如表1所示。
表1 進(jìn)程描述學(xué)
環(huán)路中繼定義的呼叫進(jìn)程是:當(dāng)有入局呼叫時(shí),硬件檢測(cè)鈴流,狀態(tài)字上報(bào)給總控單元;總控單元收到有入局呼叫的消息后,向環(huán)路中繼發(fā)送控制字,讓其模擬話機(jī)摘機(jī)動(dòng)作,用戶電路切斷鈴流,上報(bào)端口占用狀態(tài);如果為出局呼叫,總控單元控制模擬環(huán)路進(jìn)行摘機(jī)服務(wù)請(qǐng)求,環(huán)路中繼單元上報(bào)端口占用狀態(tài);當(dāng)模擬環(huán)路完成呼叫,CPU控制其掛機(jī)時(shí),終止呼叫連接。
基于以上的分析,設(shè)計(jì)環(huán)路中繼單元如圖3所示。
圖3 硬件結(jié)構(gòu)圖
本系統(tǒng)主要包含CPC5621接口芯片1~8,IDT82V1054 CODEC芯片 A和B,C8051F020 CPU以及 Altera CPLD。
整個(gè)系統(tǒng)需要處理的內(nèi)容分為語音及消息兩部分,而語音和消息都有上行及下行兩個(gè)方向。CPLD由FPGA語言編程,通過TBUS總線連接背板,負(fù)責(zé)在總線上裝卸對(duì)總控單元的音頻及消息。
雙向音頻總線進(jìn)入CPLD,經(jīng)過CPLD調(diào)整使系統(tǒng)的TBUS和CODEC編程設(shè)置的PCM BUS可以直接匹配對(duì)接,即CODEC可以直接從CPLD輸出的PCM總線需要的時(shí)隙卸載音頻數(shù)據(jù),也可以將收到的PCM數(shù)據(jù)直接裝載到PCM總線對(duì)應(yīng)的時(shí)隙上去,實(shí)現(xiàn)語音雙向貫通的目標(biāo)。至于CODEC的雙向模擬音頻,直接連接CPC5621接口芯片就可以了[2]。
對(duì)應(yīng)總控單元的消息處理是由C8051F020 CPU通過A/D總線定時(shí)掃瞄訪問CPLD內(nèi)的TBUS總線消息區(qū)來實(shí)現(xiàn)的,CPLD內(nèi)部對(duì)上行和下行消息分別開辟了一塊雙端口RAM,用于存放消息,CPU定時(shí)讀取,經(jīng)過去抖后進(jìn)行分析。
對(duì)CPC5621的控制是通過4路CODEC IDT82V1054的I/O端口編程來實(shí)現(xiàn)的。每個(gè)IDT82V1054有4組I/O端口,可以控制連接4個(gè)CPC5621。而每組I/O端口分為兩個(gè)輸入 SI1、SI2,兩個(gè)輸出 SO1、SO2以及 3個(gè)雙向端口SB1、SB2、SB3。這些I/O端口可以通過內(nèi)部寄存器進(jìn)行功能設(shè)定。 IDT82V1054的SI1、SI2帶有去抖功能,把CPC5621的振鈴檢測(cè)輸出和環(huán)流檢測(cè)輸出分別連接到此,SI1對(duì)應(yīng)/RING_DEC,SI2對(duì)應(yīng)L_CUR。CODEC的輸出SO1對(duì)應(yīng)摘掛機(jī)控制/OFFHOOK,SO2對(duì)應(yīng)掛機(jī)接收的CID控制。
CODEC IDT82V1054支持MPI串行總線接入,故把兩個(gè)CODEC全都掛接在MPI總線上。C8051F020 CPU通過MPI總線來訪問每一個(gè)環(huán)路端口的狀態(tài)以及端口控制。
為了使系統(tǒng)工作更加穩(wěn)定,C8051F020 CPU設(shè)計(jì)工作在4MHz時(shí)鐘下,程序存儲(chǔ)利用CPU自帶的64 KB的Flash,數(shù)據(jù)存儲(chǔ)區(qū)除了片內(nèi)的4KB的RAM以外,將CPU通過A/D總線訪問的CPLD劃分到外部RAM區(qū)域。中斷設(shè)計(jì)為兩個(gè)外部中斷源INT0和INT1,當(dāng)CPC5621有振鈴檢測(cè)及成環(huán)等消息時(shí),IDT82V1054通過中斷INT0通知C8051F020 CPU;而INT1設(shè)計(jì)為軟件定時(shí)中斷,作為程序事件的驅(qū)動(dòng),定時(shí)掃描總控單元的控制消息[3-6]。
另外,CPC5621內(nèi)部的高壓柵隔離電路會(huì)使得音頻信號(hào)的復(fù)制被消弱到200mV左右,為保證正確檢測(cè)音頻信號(hào),對(duì)信號(hào)進(jìn)行整形之前先進(jìn)行了放大,通過隔直電容后,取出交流信號(hào)。同時(shí)在電路中增加積分電路來消除高頻干擾,最后進(jìn)入電壓比較器LM331,將信號(hào)音整形為TTL電平。
本設(shè)計(jì)中使用Keil編程工具,采用C語言編程。具體流程如圖4所示,軟件總體分為以下幾個(gè)部分:
(1)單片機(jī)初始化部分:系統(tǒng)上電后,要使硬件進(jìn)入一個(gè)起始狀態(tài),重新設(shè)定系統(tǒng)時(shí)鐘,初始化CPU各個(gè)端口的狀態(tài)、定時(shí)器、中斷、指針等。
(2)SPI總線處理部分:配置C8051F020的交叉開關(guān)寄存器 XBR0、XBR1、XB2,務(wù)必使能交叉開關(guān),使其工作于 SPI總線方式,并設(shè)置寄存器 PnMDOUT,選擇端口輸出方式。設(shè)置寄存器 SPI0CKR、SPI0CN、SPI0CFG,使其滿足CODEC IDT82V1054的SPI時(shí)序要求,通過 SPI總線配置CODEC內(nèi)部寄存器,CODEC內(nèi)部共有3種寄存器,分別是全局寄存器GREG、局部寄存器LREG和COE-RAM。對(duì)應(yīng)3種寄存器,設(shè)置函數(shù)對(duì)它們進(jìn)行讀寫操作,COE-RAM只能進(jìn)行寫操作。分配語音通道,制定CPC5621硬件接口與PCM總線上時(shí)隙的對(duì)應(yīng)關(guān)系。
(3)主函數(shù):控制整個(gè)軟件的進(jìn)程,具體定義函數(shù)來實(shí)現(xiàn)采集呼叫信息,初始化所有寄存器,映射RING_DEC、OFFHOOK 等消息,調(diào)用所有已經(jīng)定義的函數(shù)[3-6]。
圖4 軟件流程圖
利用CPC5621接口芯片設(shè)計(jì)實(shí)現(xiàn)的環(huán)路中繼單元在應(yīng)急通信系統(tǒng)中的應(yīng)用實(shí)現(xiàn)了車載調(diào)度機(jī)的聯(lián)網(wǎng)指揮功能,且通信穩(wěn)定可靠。用集成電路替代了原來環(huán)路中繼單元大量的分立器件,電路結(jié)構(gòu)簡潔,軟件開發(fā)難度低,大大提高了開發(fā)效率。
[1]陽素權(quán).嵌入式語音系統(tǒng)設(shè)計(jì)[D].北京:北方工業(yè)大學(xué),2006.
[2]趙世霞,楊豐,劉揭生.VHDL與微機(jī)接口設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.
[3]陳嘯宇,劉錦高.基于CPLD的SGPIO總線實(shí)現(xiàn)及應(yīng)用[J].微型機(jī)與應(yīng)用,2013,32(5):22-24.
[4]王華.基于C8051F020 MCU的數(shù)據(jù)采集分析系統(tǒng)的研究[D].成都:四川大學(xué),2007.
[5]張瑋,劉宇,薛志遠(yuǎn),等.基于 SPI總線的 DSP與音頻編解碼芯片的接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(6):31-33.
[6]李波,屈均偉.基于 C8051F020的標(biāo)準(zhǔn)單元控制單元的設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2006,22(11):39-42.