摘 要: 為了滿足應(yīng)急通信系統(tǒng)中車(chē)載調(diào)度機(jī)穩(wěn)定可靠的中繼通信要求,,提出了一種基于CPC5621芯片的環(huán)路中繼電路設(shè)計(jì)方案。介紹了此設(shè)計(jì)在車(chē)載調(diào)度機(jī)中的典型應(yīng)用,,對(duì)CPC5621芯片的功能作了說(shuō)明,,給出了系統(tǒng)設(shè)計(jì)的硬件結(jié)構(gòu),分模塊描述了利用CPC5621實(shí)現(xiàn)環(huán)路中繼電路的方法,,詳細(xì)講解了語(yǔ)音及信令的處理流程,,并對(duì)系統(tǒng)軟件設(shè)計(jì)進(jìn)行了分析,給出了軟件的處理流程,。經(jīng)過(guò)測(cè)試及應(yīng)用,,證明利用CPC5621芯片設(shè)計(jì)的環(huán)路中繼完全達(dá)到了穩(wěn)定、可靠的指標(biāo)要求,。
關(guān)鍵詞: 應(yīng)急通信系統(tǒng),; CPC5621芯片; 環(huán)路中繼,; C8051F020,; IDT82V1054
當(dāng)前環(huán)境下,,突發(fā)及應(yīng)急事件日益增多。能夠在現(xiàn)場(chǎng)進(jìn)行可靠,、穩(wěn)定的應(yīng)急指揮通信非常重要,。車(chē)載通信調(diào)度機(jī)在應(yīng)急通信車(chē)中的使用使通信調(diào)度兩位一體,滿足了應(yīng)急通信靈活,、快速,、機(jī)動(dòng)的要求。本文所設(shè)計(jì)的使用CPC5621芯片完成的模擬環(huán)路啟動(dòng)單元為車(chē)載調(diào)度機(jī)在條件受限的情況下實(shí)現(xiàn)方便快捷的通信聯(lián)網(wǎng)提供了保證,。
1 系統(tǒng)硬件
1.1 環(huán)路中繼的應(yīng)用
環(huán)路中繼是電路交換機(jī)中一種常用的模擬中繼方式,,示意圖如圖1所示。它能模擬與其連接的用戶(hù)接口的摘/掛機(jī)動(dòng)作,,就像對(duì)端交換機(jī)的用戶(hù)接口連接一部電話在摘/掛機(jī)一樣,。這種方式實(shí)現(xiàn)方便,,連接可靠,。環(huán)路中繼接口在用戶(hù)側(cè)和中繼側(cè)均為兩線實(shí)線連接,用于話務(wù)量較小的交換機(jī)之間互聯(lián),,可以完成出入局的雙向呼叫等功能,。典型的應(yīng)用如圖2所示。
1.2 CPC5621芯片功能分析
CPC5621是一款通信中繼接口芯片, 支持5 V和3.3 V兩種電壓模式,,對(duì)外接口可以分為線路側(cè)和處理器側(cè),。線路側(cè)提供連接PSTN網(wǎng)絡(luò)兩線接口的各種功能;處理器側(cè)連接微處理器,接受控制,,上報(bào)狀態(tài),,并提供音頻接口。同時(shí)還具有以下功能:
(1)二四線變換:通過(guò)二四線混合電路,,將兩線信號(hào)變換為差分音頻線對(duì),。內(nèi)置的光學(xué)隔離柵將線路側(cè)和主機(jī)側(cè)屏蔽隔開(kāi),為用戶(hù)提供低噪聲,、低失真的音頻信號(hào),。增強(qiáng)的3 000 Vrms隔離電壓也進(jìn)一步增強(qiáng)了設(shè)備的浪涌抗擾度。
(2)振鈴檢測(cè):PSTN網(wǎng)絡(luò)環(huán)境下,,用戶(hù)線間電壓在待機(jī)狀態(tài)下約為52 V,,振鈴信號(hào)為90 V、25 Hz的正弦交流信號(hào),,兩者疊加形成高壓,,內(nèi)置的高壓隔離柵可以對(duì)此高壓進(jìn)行隔離處理。當(dāng)有入局呼叫時(shí),,振鈴信號(hào)經(jīng)過(guò)高壓隔離柵后,,在RING引腳輸出一個(gè)同頻率間斷的TTL電平信號(hào),。通過(guò)微處理器的I/O引腳,軟件就可以通過(guò)檢測(cè)引腳上的信號(hào)頻率實(shí)現(xiàn)檢測(cè)振鈴信號(hào)及檢測(cè)入局呼叫的目的,。
(3)摘/掛機(jī)控制:交換機(jī)是通過(guò)線路上的環(huán)流大小來(lái)判斷用戶(hù)電話機(jī)的摘/掛機(jī)狀態(tài)的,。掛機(jī)狀態(tài)下,電路上的電流接近0,; 而摘機(jī)狀態(tài)下, 線路上的電流約為30 mA(可調(diào)),。利用三極管CPC5602的開(kāi)關(guān)特性,通過(guò)改變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í)流過(guò)CPC5602的電流超過(guò)30 mA,,設(shè)備被判斷處于摘機(jī)狀態(tài)[1],。
(4)環(huán)流調(diào)整:CPC5621還提供可編程設(shè)置的恒流源作為環(huán)路負(fù)載,通過(guò)改變負(fù)載電阻來(lái)改變環(huán)路電流的大小,,解決由于線路遠(yuǎn)近而影響環(huán)流大小的問(wèn)題,,提高摘掛機(jī)檢測(cè)的穩(wěn)定性及可靠性。
(5)來(lái)電顯示及掛機(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),。
1.3 系統(tǒng)功能分析及硬件結(jié)構(gòu)
環(huán)路中繼單元是車(chē)載調(diào)度機(jī)的重要部件,通過(guò)同步TBUS總線與總控單元連接,,上報(bào)本單元狀態(tài)并接受總控單元的控制,。
每通道定義控制字8 bit,狀態(tài)字8 bit,,如表1所示,。
環(huán)路中繼定義的呼叫進(jìn)程是:當(dāng)有入局呼叫時(shí),硬件檢測(cè)鈴流,,狀態(tài)字上報(bào)給總控單元;總控單元收到有入局呼叫的消息后,,向環(huán)路中繼發(fā)送控制字,讓其模擬話機(jī)摘機(jī)動(dòng)作,用戶(hù)電路切斷鈴流,,上報(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所示,。
本系統(tǒng)主要包含CPC5621接口芯片1~8,IDT82V1054 CODEC芯片A和B,,C8051F020 CPU以及Altera CPLD,。
整個(gè)系統(tǒng)需要處理的內(nèi)容分為語(yǔ)音及消息兩部分,而語(yǔ)音和消息都有上行及下行兩個(gè)方向,。CPLD由FPGA語(yǔ)言編程,,通過(guò)TBUS總線連接背板,負(fù)責(zé)在總線上裝卸對(duì)總控單元的音頻及消息。
雙向音頻總線進(jìn)入CPLD,,經(jīng)過(guò)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)語(yǔ)音雙向貫通的目標(biāo),。至于CODEC的雙向模擬音頻,直接連接CPC5621接口芯片就可以了[2]。
對(duì)應(yīng)總控單元的消息處理是由C8051F020 CPU通過(guò)A/D總線定時(shí)掃瞄訪問(wèn)CPLD內(nèi)的TBUS總線消息區(qū)來(lái)實(shí)現(xiàn)的,,CPLD內(nèi)部對(duì)上行和下行消息分別開(kāi)辟了一塊雙端口RAM,,用于存放消息,,CPU定時(shí)讀取,,經(jīng)過(guò)去抖后進(jìn)行分析。
對(duì)CPC5621的控制是通過(guò)4路CODEC IDT82V1054的I/O端口編程來(lái)實(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端口可以通過(guò)內(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通過(guò)MPI總線來(lái)訪問(wèn)每一個(gè)環(huán)路端口的狀態(tài)以及端口控制。
為了使系統(tǒng)工作更加穩(wěn)定,,C8051F020 CPU設(shè)計(jì)工作在4 MHz時(shí)鐘下,,程序存儲(chǔ)利用CPU自帶的64 KB的Flash,數(shù)據(jù)存儲(chǔ)區(qū)除了片內(nèi)的4 KB的RAM以外,將CPU通過(guò)A/D總線訪問(wèn)的CPLD劃分到外部RAM區(qū)域,。中斷設(shè)計(jì)為兩個(gè)外部中斷源INT0和INT1,,當(dāng)CPC5621有振鈴檢測(cè)及成環(huán)等消息時(shí),IDT82V1054通過(guò)中斷INT0通知C8051F020 CPU,;而INT1設(shè)計(jì)為軟件定時(shí)中斷,,作為程序事件的驅(qū)動(dòng),定時(shí)掃描總控單元的控制消息[3-6],。
另外,,CPC5621內(nèi)部的高壓柵隔離電路會(huì)使得音頻信號(hào)的復(fù)制被消弱到200 mV左右,為保證正確檢測(cè)音頻信號(hào),,對(duì)信號(hào)進(jìn)行整形之前先進(jìn)行了放大,,通過(guò)隔直電容后,取出交流信號(hào),。同時(shí)在電路中增加積分電路來(lái)消除高頻干擾,,最后進(jìn)入電壓比較器LM331,將信號(hào)音整形為T(mén)TL電平,。
2 軟件設(shè)計(jì)
本設(shè)計(jì)中使用Keil編程工具,,采用C語(yǔ)言編程。具體流程如圖4所示,,軟件總體分為以下幾個(gè)部分:
(1)單片機(jī)初始化部分:系統(tǒng)上電后,,要使硬件進(jìn)入一個(gè)起始狀態(tài),重新設(shè)定系統(tǒng)時(shí)鐘,,初始化CPU各個(gè)端口的狀態(tài),、定時(shí)器、中斷,、指針等,。
(2)SPI總線處理部分:配置C8051F020的交叉開(kāi)關(guān)寄存器XBR0、XBR1,、XB2,務(wù)必使能交叉開(kāi)關(guān),,使其工作于SPI總線方式,并設(shè)置寄存器PnMDOUT,選擇端口輸出方式,。設(shè)置寄存器SPI0CKR,、SPI0CN、SPI0CFG,使其滿足CODEC IDT82V1054的SPI時(shí)序要求,,通過(guò)SPI總線配置CODEC內(nèi)部寄存器,,CODEC內(nèi)部共有3種寄存器,分別是全局寄存器GREG,、局部寄存器LREG和COE-RAM,。對(duì)應(yīng)3種寄存器,設(shè)置函數(shù)對(duì)它們進(jìn)行讀寫(xiě)操作,,COE-RAM只能進(jìn)行寫(xiě)操作,。分配語(yǔ)音通道,制定CPC5621硬件接口與PCM總線上時(shí)隙的對(duì)應(yīng)關(guān)系,。
(3)主函數(shù): 控制整個(gè)軟件的進(jìn)程,,具體定義函數(shù)來(lái)實(shí)現(xiàn)采集呼叫信息,初始化所有寄存器,映射RING_DEC、OFFHOOK等消息,調(diào)用所有已經(jīng)定義的函數(shù)[3-6],。
利用CPC5621接口芯片設(shè)計(jì)實(shí)現(xiàn)的環(huán)路中繼單元在應(yīng)急通信系統(tǒng)中的應(yīng)用實(shí)現(xiàn)了車(chē)載調(diào)度機(jī)的聯(lián)網(wǎng)指揮功能,,且通信穩(wěn)定可靠。用集成電路替代了原來(lái)環(huán)路中繼單元大量的分立器件,,電路結(jié)構(gòu)簡(jiǎn)潔,,軟件開(kāi)發(fā)難度低,大大提高了開(kāi)發(fā)效率,。
參考文獻(xiàn)
[1] 陽(yáng)素權(quán).嵌入式語(yǔ)音系統(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.