單片機(jī)多機(jī)通信在程控交換機(jī)中應(yīng)用
3.2 下位機(jī)軟件設(shè)計(jì)思路
為便于編輯和管理, 4 個(gè)下位機(jī)程序使用同一版本, 程序運(yùn)行時(shí)根據(jù)地址作相應(yīng)的處理。
根據(jù)多機(jī)程控交換機(jī)功能, 下位機(jī)程序分成初始化、連接外線查詢(xún)、發(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)等。
連接外線查詢(xún)模塊在開(kāi)機(jī)復(fù)位后查詢(xún)本CPU 是否接外線(2_CPU 和3_CPU 跳過(guò)), 然后置標(biāo)志, 上位機(jī)通過(guò)問(wèn)詢(xú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ī)查詢(xún)下位機(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)生, 這由硬件保證。
交換機(jī)相關(guān)文章:交換機(jī)工作原理
評(píng)論