<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的音頻交換控制系統(tǒng)設(shè)計(jì)

          基于單片機(jī)的音頻交換控制系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2009-01-08 來(lái)源:網(wǎng)絡(luò) 收藏
          1 引言
          小型會(huì)議系統(tǒng)或語(yǔ)音群聊系統(tǒng)是由多路組成的.為了使通話井然有序,需要通過(guò)來(lái)控制各路信號(hào)的輸出。音頻主要用于完成語(yǔ)音信號(hào)的切換。以實(shí)現(xiàn)同頻終端的話音通信。經(jīng)對(duì)可靠性、經(jīng)濟(jì)性、兼容性和供貨情況進(jìn)行多方面的綜合考慮,該選用了AT89S52型控制矩陣器件MT8816AE。其中,AT89S52型具有實(shí)用,價(jià)廉,功耗小,速度快,體積小,功能強(qiáng)等優(yōu)點(diǎn):MT8816AE是CMOS單片集成電路,具有功耗小,可靠性高等特點(diǎn)。

          2 組成和電路
          圖1給出整個(gè)系統(tǒng)組成框圖。它由主控計(jì)算機(jī)、音頻交換電路、終端設(shè)備等組成。其工作原理是:在主控計(jì)算機(jī)捕獲終端的工作頻率后。向交換控制發(fā)出指令,交換矩陣在單片機(jī)的控制下.連通同一頻點(diǎn)的終端。該電路包含交換控制矩陣電路、交換控制單片機(jī)電路和串行接口電路3部分。

          本文引用地址:http://www.ex-cimer.com/article/173918.htm

          2.1 交換控制矩陣電路
          MT8816AE內(nèi)含一個(gè)8x16的開(kāi)關(guān)陣列,并具有7~128條線路的譯碼器和鎖存器。選擇7個(gè)適當(dāng)?shù)牡刂肺?,即可?duì)矩陣開(kāi)關(guān)的任意一位進(jìn)行尋址。在該器件的DATA輸入端加1或0.可使選中的開(kāi)關(guān)開(kāi)啟或關(guān)閉。STROBE為鎖存信號(hào),器件選擇(CS)信號(hào)可使開(kāi)關(guān)陣列相互串接,以擴(kuò)大矩陣的容限。
          在話路規(guī)模不大的情況下,根據(jù)矩陣開(kāi)關(guān)規(guī)格,交換電路容量n與所需MT8816AE個(gè)數(shù)Ⅳ的運(yùn)算關(guān)系:N=(n/8)(n/16)。以16臺(tái)規(guī)模的系統(tǒng)終端為例,需兩片MT8816AE。定義開(kāi)關(guān)陣列的行,即X為終端發(fā);定義開(kāi)關(guān)陣列的列,即Y為終端收。規(guī)定MT8816AE片1中:X0~X15分別連接0~15號(hào)終端發(fā);Y0~Y7分別連接0~7號(hào)終端收,以實(shí)現(xiàn)0~7號(hào)內(nèi)任意同頻終端的收發(fā)互通.以及8~15號(hào)終端發(fā),0~7號(hào)收的功能。規(guī)定MT8816AE片2中:XO~X15分別連接0~15號(hào)終端發(fā);Y0~Y7分別連接8~15號(hào)終端收,以實(shí)現(xiàn)8~15號(hào)內(nèi)任意同頻終端的收發(fā)互通,以及0~7號(hào)終端發(fā),8~15號(hào)收的功能。這樣,兩片MT8816AE串接后。即可實(shí)現(xiàn)16臺(tái)終端機(jī)的全雙工語(yǔ)音通信。
          2.2 交換控制單片機(jī)電路
          AT89S52通過(guò)MAX232與主控計(jì)算機(jī)串口互聯(lián),根據(jù)從主控計(jì)算機(jī)接收到的命令數(shù)據(jù)幀控制MT8816AE開(kāi)關(guān)陣列的通斷。其中,AT89s52的P3.0(RXD)和P3.1(TXD)為串行接口的輸入端和輸出端,與MAX232串口電路連接;復(fù)位電路采用上電復(fù)位方式,其外圍電路的電容為22μF,下拉電阻為4.7 kΩ;單片機(jī)外接11.0592 NHz的晶振和兩片30 pF電解電容構(gòu)成振蕩電路。圖2a給出交換控制單片機(jī)電路。表1給出AT89S52與biT8816AE引腳間的對(duì)應(yīng)關(guān)系。

          2.3 串行接口電路設(shè)計(jì)
          AT89S52通過(guò)RS232接口與主控計(jì)算機(jī)連接。由于各自工作電壓不一樣,故采用MAX232實(shí)現(xiàn)電平轉(zhuǎn)換,滿足系統(tǒng)工作電壓要求。其串行接口電路如圖2b所示。

          3 軟件設(shè)計(jì)
          3.1 通信協(xié)議
          通過(guò)編制通信協(xié)議實(shí)現(xiàn)電路的交換功能。其原理是:由主控計(jì)算機(jī)發(fā)送一幀數(shù)據(jù),通過(guò)RS232標(biāo)準(zhǔn)接口發(fā)送給AT89S52單片機(jī),然后根據(jù)通信幀指令控制交換矩陣電路的通斷。表2給出數(shù)據(jù)幀結(jié)構(gòu)定義。

          表2中,$為發(fā)送標(biāo)志;aaaa為16臺(tái)終端通斷數(shù);片l為0~15號(hào)機(jī)與0~7號(hào)機(jī)的通斷情況控制字節(jié):片2為0~15號(hào)機(jī)與8~15號(hào)機(jī)的通斷情況。在接通情況下,控制字節(jié)的最高位為“l(fā)”;在斷開(kāi)情況下,控制字節(jié)的最高位為“0”。發(fā)送$80則為MT8816AE復(fù)位控制信號(hào)。例如,發(fā)送$048133,表示有4臺(tái)終端的通斷情況改變,即1號(hào)與0號(hào)終端接通.由片l控制;3號(hào)與10號(hào)終端斷開(kāi).由片2控制。
          3.2 主控制程序設(shè)計(jì)
          圖3a示出AT89S52單片機(jī)的主程序流程。首先,初始化單片機(jī),定義內(nèi)部時(shí)鐘,完成中斷及串口設(shè)置,一旦有中斷請(qǐng)求,CPU被喚醒,則進(jìn)入中斷程序(圖3b),接收串口命令數(shù)據(jù)幀。根據(jù)命令要求,執(zhí)行開(kāi)關(guān)矩陣復(fù)位、話路通斷等功能,執(zhí)行完畢,系統(tǒng)返回待機(jī)狀態(tài)。

          4 結(jié)語(yǔ)
          該系統(tǒng)設(shè)計(jì)可廣泛用于小型會(huì)議系統(tǒng)或語(yǔ)音群聊系統(tǒng).也可完全不依靠電信網(wǎng)絡(luò)而實(shí)現(xiàn)小范圍內(nèi)多語(yǔ)音終端的音頻交換,即語(yǔ)音信號(hào)的切換,可使通話井然有序。此外,可通過(guò)同頻模擬終端的話音通信,實(shí)現(xiàn)通信電臺(tái)之間語(yǔ)音通信的呼叫和應(yīng)答功能模擬。經(jīng)試驗(yàn)電路調(diào)試和試用表明.該系統(tǒng)滿足音頻交換控制的技術(shù)要求,性能及各項(xiàng)技術(shù)指標(biāo)基本達(dá)到設(shè)計(jì)要求。交換電路的切換準(zhǔn)確、流暢,單片機(jī)運(yùn)行可靠、穩(wěn)定,在完成準(zhǔn)確切換各路音頻信道的基礎(chǔ)上.提高了交換電路的可靠性與穩(wěn)定性。

          DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY




          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();