基于單片機(jī)的程控交換機(jī)多機(jī)通信應(yīng)用
出處:徐冠捷,陳力平,曹柏榮 發(fā)布于:2011-12-06 14:58:16
摘 要:本文介紹單片機(jī)在程控交換機(jī)中的應(yīng)用, 使用五個(gè)ATMEL 公司的AT89C52 和AT89C51 作為主控制器和從控制器, 多機(jī)通訊, 硬件結(jié)構(gòu)清晰, 模塊化程序結(jié)構(gòu)。
關(guān)鍵詞:AT 系列單片機(jī)應(yīng)用; 多機(jī)通信; 程控交換機(jī)
0 引言
國(guó)內(nèi)單片機(jī)多機(jī)通信方向技術(shù)開(kāi)發(fā)應(yīng)用已有相當(dāng)長(zhǎng)時(shí)間,在智能化儀器、工業(yè)自動(dòng)控制、家用電器機(jī)電一體化等方面的應(yīng)用成果尤為顯著。本文介紹AT 系列單片機(jī)多機(jī)通信在程控交換機(jī)中應(yīng)用。
多機(jī)程控交換機(jī)將1 至2 條電話外線擴(kuò)展成4 繩路、12 個(gè)分機(jī)容量, 可以多部分機(jī)同時(shí)通話而互不干擾(可以內(nèi)外線混用); 分機(jī)可以為電話機(jī)、傳真機(jī)、答錄機(jī)和電腦等任何電訊產(chǎn)品。
1 硬件結(jié)構(gòu)簡(jiǎn)介
本程控交換機(jī)應(yīng)用AT 系列單片機(jī), CPU 使用一個(gè)AT89C52 和四個(gè)AT89C51, 進(jìn)行多機(jī)通信, 如圖1 所示。

其中一個(gè)CPU(AT89C52)作為上位機(jī), 實(shí)現(xiàn)分機(jī)摘機(jī)/ 掛機(jī)查詢、分機(jī)振鈴等功能。四個(gè)CPU(AT89C51)作為下位機(jī), 各控制一根繩路, P10、P11 口作為CPU 地址, CPU 進(jìn)行查詢外線來(lái)電、分機(jī)掛線(內(nèi)線和外線)、分機(jī)撤線、分機(jī)撥號(hào)處理等工作, 提供內(nèi)線撥號(hào)音、回音鈴、忙音、證實(shí)音等信號(hào)音。0_CPU 和1_CPU各有一個(gè)繼電器J 控制開(kāi)關(guān), 用于接通或切斷電話外線與繩路的連接。
硬件線路保證每CPU 各施其職, 互不串?dāng)_。某分機(jī)一旦掛線后, 該分機(jī)的信號(hào)音、撥號(hào)等只受該繩路的CPU 控制, 而且分機(jī)摘機(jī)、掛線后撥號(hào)才有效; 撤線后, 該分機(jī)不再受繩路的CPU 控制。
2 多機(jī)通信協(xié)議
在多機(jī)通信協(xié)議中定義上位機(jī)為主動(dòng), 下位機(jī)為被動(dòng)。
2.1 上——下位機(jī)聯(lián)絡(luò)握手
上位機(jī)向下位機(jī)廣播地址信息; 下位機(jī)收到地址信息后判斷是否是本機(jī)地址, 若不是, 不應(yīng)答; 若是, 向上位機(jī)發(fā)應(yīng)答信號(hào), 同時(shí)作好接收數(shù)據(jù)準(zhǔn)備。上位機(jī)收到應(yīng)答信號(hào)后, 判斷應(yīng)答信號(hào)是否正確。若不正確, 重發(fā)地址信號(hào); 若正確, 發(fā)送數(shù)據(jù)(命令代碼)。已握手的下位機(jī)接收數(shù)據(jù)(命令代碼)后, 執(zhí)行相應(yīng)功能或?qū)嵤┓?wù)。地址信息與命令代碼設(shè)置不重碼, 以便下位機(jī)能判別出。
2.2 上位機(jī)向下位機(jī)發(fā)送命令類(lèi)
是否接外線(僅為0_CPU 和1_CPU)、有否請(qǐng)求服務(wù)、指定分機(jī)掛某一根內(nèi)/ 外線、指定分機(jī)撤線、釋放外線繼電器、編程密碼、長(zhǎng)途等級(jí)(內(nèi)部、市內(nèi)、國(guó)內(nèi)和國(guó)際)、長(zhǎng)途解鎖、要求繩路發(fā)內(nèi)線撥號(hào)音、內(nèi)線回音鈴、內(nèi)線忙音鈴或內(nèi)線證實(shí)音等。
2.3 下位機(jī)向上位機(jī)請(qǐng)求服務(wù)
下位機(jī)只有在上位機(jī)“有否請(qǐng)求服務(wù)”時(shí), 才可向上位機(jī)發(fā)送信息。發(fā)送信息有:本繩路有外電呼叫、撥打內(nèi)部分機(jī)、三方通話、代接外線、設(shè)置轉(zhuǎn)移功能(無(wú)條件轉(zhuǎn)移、遇忙轉(zhuǎn)移、無(wú)應(yīng)答轉(zhuǎn)移、撤消轉(zhuǎn)移)、設(shè)置外線來(lái)電振鈴方式(指定若干分機(jī)振鈴、全部分機(jī)振鈴、三機(jī)四組輪流振動(dòng)鈴、外線來(lái)電時(shí)指定分機(jī)振鈴)、設(shè)置長(zhǎng)途密碼\ 長(zhǎng)途等級(jí)\ 長(zhǎng)途解碼、強(qiáng)插監(jiān)聽(tīng)等。
3 多機(jī)程控交換機(jī)軟件設(shè)計(jì)方法
程序設(shè)計(jì)思路是根據(jù)多機(jī)程控交換機(jī)工作過(guò)程而制定的, 采用上下位機(jī)包干控制, 充分利用CPU 資源, 實(shí)現(xiàn)程控交換機(jī)功能。
3.1 上位機(jī)軟件設(shè)計(jì)思路
根據(jù)多機(jī)程控交換機(jī)功能, 上位機(jī)程序分成初始化、摘機(jī)處理、掛機(jī)處理、發(fā)送命令、下位機(jī)請(qǐng)求服務(wù)處理、振鈴處理和定時(shí)器處理(包括看門(mén)狗)七個(gè)模塊, 程序模塊結(jié)構(gòu)如圖2 所示。
初始化模塊主要是定義常數(shù)變量、變量單元、位標(biāo)志、緩沖區(qū)、中斷設(shè)置、定時(shí)器設(shè)置/ 啟動(dòng)、電話分機(jī)工作初始狀態(tài)等。
摘機(jī)處理模塊主要判別是外線來(lái)電摘機(jī)、內(nèi)線來(lái)電摘機(jī)還是要撥打外線或內(nèi)線電話。
掛機(jī)處理模塊比較復(fù)雜, 既有內(nèi)外線通話結(jié)束掛機(jī), 又有內(nèi)外線通話中止掛機(jī), 還有三方通話主叫機(jī)掛機(jī)和從叫機(jī)掛機(jī), 其它有中止撥打外線/ 內(nèi)線掛機(jī)、分機(jī)功能設(shè)置完畢掛機(jī)等。
發(fā)送命令模塊主要是根據(jù)電話分機(jī)發(fā)生摘/ 掛機(jī)時(shí), 向下位機(jī)發(fā)送掛線/ 撤線命令、內(nèi)線撥號(hào)音等命令, 發(fā)送詢問(wèn)下位機(jī)有否請(qǐng)求服務(wù)等命令。
下位機(jī)請(qǐng)求服務(wù)處理模塊主要根據(jù)下位機(jī)CPU 請(qǐng)求, 完成外線來(lái)電、撥打內(nèi)線分機(jī)、分機(jī)功能設(shè)置等工作。
振鈴處理模塊主要處理外線來(lái)電時(shí), 根據(jù)振鈴模式進(jìn)行分機(jī)振鈴、輪流振鈴等; 內(nèi)線呼叫分機(jī)時(shí), 根據(jù)分機(jī)轉(zhuǎn)移功能, 作相應(yīng)的振鈴處理; 被呼叫分機(jī)摘機(jī)后停止振鈴等功能。
定時(shí)器處理模塊配合振鈴處理模塊產(chǎn)生各種振鈴計(jì)時(shí)以及看門(mén)狗定時(shí)常數(shù)刷新等。

3.2 下位機(jī)軟件設(shè)計(jì)思路
為便于編輯和管理, 4 個(gè)下位機(jī)程序使用同一版本, 程序運(yùn)行時(shí)根據(jù)地址作相應(yīng)的處理。
根據(jù)多機(jī)程控交換機(jī)功能, 下位機(jī)程序分成初始化、連接外線查詢、發(fā)送請(qǐng)求服務(wù)、外線來(lái)電中斷請(qǐng)求、分機(jī)撥號(hào)中斷請(qǐng)求和定時(shí)器中斷(包括看門(mén)狗)六個(gè)模塊, 程序模塊結(jié)構(gòu)如圖3 所示。

初始化模塊主要是定義變量單元、位標(biāo)志、緩沖區(qū)、中斷設(shè)置、定時(shí)器設(shè)置/ 啟動(dòng)等。
連接外線查詢模塊在開(kāi)機(jī)復(fù)位后查詢本CPU 是否接外線(2_CPU 和3_CPU 跳過(guò)), 然后置標(biāo)志, 上位機(jī)通過(guò)問(wèn)詢下位機(jī)知道程控交換機(jī)接幾根外線。
命令處理模塊主要完成上位機(jī)下達(dá)的命令, 命令有指定分機(jī)掛外線/ 內(nèi)線、對(duì)掛內(nèi)線分機(jī)發(fā)送或停止內(nèi)線信號(hào)音(內(nèi)線撥號(hào)音、內(nèi)線回音鈴、內(nèi)線忙音鈴或內(nèi)線證實(shí)音等)、指定分機(jī)撤外線/ 內(nèi)線等等。
發(fā)送請(qǐng)求服務(wù)模塊主要向上位機(jī)發(fā)送外線來(lái)電處理、分機(jī)撥打內(nèi)線電話、分機(jī)設(shè)置功能等請(qǐng)求服務(wù)。
外線來(lái)電中斷請(qǐng)求模塊在外線來(lái)電時(shí)(0_CPU 和1_CPU),向CPU 請(qǐng)求中斷。CPU 響應(yīng)中斷后, 首先判斷是否干擾信號(hào), 確認(rèn)為外線來(lái)后, 豎立外線來(lái)電標(biāo)。當(dāng)上位機(jī)查詢下位機(jī)有否請(qǐng)求服務(wù)時(shí), 向上位機(jī)發(fā)送外線來(lái)電服務(wù)請(qǐng)求。為防外線來(lái)電中止,下位機(jī)CPU 發(fā)送請(qǐng)求后即清除外線來(lái)電標(biāo)。上位機(jī)在送出分機(jī)振鈴后一秒鐘內(nèi), 如分機(jī)未摘機(jī), 而下位機(jī)又沒(méi)發(fā)來(lái)新的外線來(lái)電請(qǐng)求服務(wù), 立馬中止振鈴。
分機(jī)撥號(hào)中斷請(qǐng)求模塊在分機(jī)撥號(hào)后, 向CPU 請(qǐng)求中斷。
CPU 響應(yīng)中斷后, 根據(jù)所撥號(hào)碼, 產(chǎn)生對(duì)應(yīng)請(qǐng)求服務(wù)代碼。上位機(jī)收到請(qǐng)求服務(wù)后, 對(duì)其進(jìn)行譯碼, 作相應(yīng)處理。如分機(jī)是掛外線, 除判別該分機(jī)長(zhǎng)途等級(jí)外, 對(duì)撥號(hào)不作任何處理。分機(jī)在掛線情況下, 撥號(hào)才有中斷請(qǐng)求信號(hào)產(chǎn)生, 這由硬件保證。
定時(shí)器處理模塊主要產(chǎn)生450 方波信號(hào), 產(chǎn)生各種內(nèi)線鈴聲所需脈沖信號(hào)以及看門(mén)狗定時(shí)常數(shù)刷新等。
上下位機(jī)源程序限于篇幅, 不作介紹。
4 編程中特點(diǎn)
由于多機(jī)程控交換機(jī)上位機(jī)CPU 要對(duì)四個(gè)下位機(jī)CPU, 而分機(jī)摘/ 掛機(jī)狀態(tài)采用查詢方式, 又要處理分機(jī)振鈴等, 查詢過(guò)程中要采用抗干擾措施, 防止CPU 誤判、誤動(dòng)作。所以編程中要考慮整體時(shí)間分配, 以免延誤用戶通話。
上位機(jī)在查詢下位機(jī)有否服務(wù)請(qǐng)求時(shí), 采用輪流查詢法。在發(fā)送信息前又要與下位機(jī)握手, 所以查詢時(shí)間較長(zhǎng)。當(dāng)下位機(jī)有服務(wù)請(qǐng)求時(shí), 上位機(jī)馬上中止查詢下一CPU, 為當(dāng)前下位機(jī)服務(wù)。
為縮短上下位機(jī)通信時(shí)間, 下發(fā)代碼采用單字節(jié), 按位定義。如“D7”位表示掛線或撤線,“D6”位表示掛內(nèi)線或外線,“D5、D4”位表示發(fā)內(nèi)線撥號(hào)音、內(nèi)線回音鈴、內(nèi)線忙音或內(nèi)線證實(shí)音,“D3”~“D0”表示分機(jī)號(hào)。
上發(fā)代碼采用多字節(jié), 長(zhǎng)短不同, 這是由于多機(jī)程控交換機(jī)功能豐富多采, 下位機(jī)在上發(fā)代碼加一個(gè)結(jié)束符。
多機(jī)程控交換機(jī)功能較多, 分機(jī)撥號(hào)中斷請(qǐng)求模塊要分成外線撥號(hào)、內(nèi)線撥號(hào)(包括代接、轉(zhuǎn)接和三方通話)和功能設(shè)置三個(gè)小模塊。為提高CPU 利用率, 分機(jī)撥號(hào)中斷請(qǐng)求模塊采用流水線作業(yè)方式, 按鍵, 模塊執(zhí)行。所以要保護(hù)好現(xiàn)場(chǎng),豎立相應(yīng)的標(biāo)志, 保證分機(jī)撥號(hào)中斷請(qǐng)求模塊工作正常。當(dāng)某功能撥完后, CPU 再將請(qǐng)求服務(wù)代碼送到發(fā)送緩沖區(qū)。
5 結(jié)束語(yǔ)
多機(jī)程控交換機(jī)可連接二根外線, 十二只內(nèi)部分機(jī), 四繩路通話容量, 具有豐富的實(shí)用功能, 可不間斷連續(xù)工作。分機(jī)之間可多對(duì)電話(多四對(duì)八機(jī))同時(shí)通話而彼此互不干擾。分機(jī)可直撥外線、強(qiáng)插外線、長(zhǎng)途加鎖設(shè)置等。外線來(lái)電響鈴方式有二種, 一為選擇某些分機(jī)振鈴, 二為分機(jī)輪流振鈴, 由1 號(hào)分機(jī)進(jìn)行設(shè)置。分機(jī)可代撥、代接、征詢轉(zhuǎn)接和三方通話等。
本文作者的創(chuàng)新點(diǎn):上、下位機(jī)CPU 串行通信發(fā)送采用查詢方式, 接收采用中斷循環(huán)隊(duì)列緩沖區(qū)方式。多機(jī)程控交換機(jī)不使用擴(kuò)展外RAM, 上位機(jī)采用AT89C52, 其內(nèi)RAM為256 字節(jié), 足夠CPU 工作所需, 同時(shí)給硬件上分清上位機(jī)和下位機(jī)CPU 芯片帶來(lái)好處, 一舉二得。
多機(jī)程控交換機(jī)樣機(jī)已小批量投入某些公司、企業(yè)使用, 用戶反映程控交換機(jī)基本功能工作正常, 使用方便, 由此說(shuō)明多機(jī)程控交換機(jī)達(dá)到設(shè)計(jì)要求。
參考文獻(xiàn):
[1]. AT89C52 datasheet http://www.hbjingang.com/datasheet/AT89C52+_1064535.html.
[2]. AT89C51 datasheet http://www.hbjingang.com/datasheet/AT89C51+_810155.html.
[3]. P10 datasheet http://www.hbjingang.com/datasheet/P10_2043486.html.
[4]. P11 datasheet http://www.hbjingang.com/datasheet/P11+_1149147.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開(kāi)發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類(lèi)及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專(zhuān)用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類(lèi)型擴(kuò)充定義2025/10/27 13:59:22
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題









