基于PIC12F629單片機(jī)的新型醫(yī)用呼叫對(duì)講系統(tǒng)設(shè)計(jì)
分機(jī)發(fā)碼采用100 kHz的方波,由單片機(jī)GPIO4引腳輸出并經(jīng)三極管耦合至總線。分機(jī)呼叫時(shí)發(fā)送一定時(shí)長(zhǎng)的方波,如圖6所示,分機(jī)回復(fù)主機(jī)的信號(hào)是間隔性的方波,如圖7所示。
3.2 主機(jī)發(fā)碼方式
主機(jī)發(fā)碼采用變長(zhǎng)占空比發(fā)送碼元,其中1:1的占空比表示0碼元,而若占空比為3:1則表示碼元1,主機(jī)發(fā)碼示意圖如圖8所示。
3.3 通信協(xié)議
為保證通信過(guò)程的可靠性,特制定如下通信協(xié)議:主機(jī)發(fā)碼數(shù)據(jù)格式規(guī)定為:控制命令+分機(jī)地址,每次發(fā)送11位數(shù)據(jù),其中bit11~bit9為是命令碼,低字節(jié)為指定分機(jī)的號(hào)碼。主機(jī)發(fā)碼時(shí),先發(fā)起始信號(hào),分機(jī)識(shí)別到起始信號(hào)后開(kāi)始收碼。分機(jī)的號(hào)碼存儲(chǔ)在各自E2PROM里,初始值均設(shè)為0,主機(jī)可對(duì)其在線編碼,收到主機(jī)的改號(hào)命令,所有分機(jī)的LED指示燈點(diǎn)亮,提示用戶按鍵,修改成功后將返回主機(jī)一個(gè)確認(rèn)信號(hào),否則將超時(shí)退出而不作處理。分機(jī)只有在主動(dòng)呼叫或識(shí)別到主機(jī)的起始信號(hào)后才被喚醒,平時(shí)處于睡眠狀態(tài),因此極大地節(jié)省了功耗。
主機(jī)查詢時(shí),每查詢一個(gè)分機(jī)后,都先檢測(cè)是否有摘機(jī),若摘機(jī)將會(huì)執(zhí)行摘機(jī)流程。所有分機(jī)的忙標(biāo)志從剛開(kāi)始查詢時(shí)就會(huì)被置位,此不允許分機(jī)呼叫時(shí)再發(fā)碼,此時(shí)分機(jī)呼叫主機(jī)仍能檢測(cè)到,只是總線上沒(méi)有方波傳輸,因此保證了通信的穩(wěn)定性。
主、分機(jī)進(jìn)行語(yǔ)音通信時(shí),其他分機(jī)仍可以發(fā)出呼叫,由于請(qǐng)求信號(hào)的方波是100 kHz,而語(yǔ)音頻率范圍為0.3~3.4 kHz,主機(jī)在電話掛機(jī)的狀態(tài)下才查詢呼叫的分機(jī),不會(huì)相互干擾,因此語(yǔ)音信號(hào)和數(shù)字信號(hào)可以同時(shí)在總線上傳輸。分機(jī)呼叫時(shí)發(fā)送100 kHz方波到總線,主機(jī)由收到電路檢測(cè)到低電平,觸發(fā)中斷進(jìn)行收碼,然后主機(jī)將先屏蔽此呼入中斷,再開(kāi)始按病床護(hù)理等級(jí)的高低依次查詢,若查詢到該分機(jī),就回復(fù)應(yīng)答信號(hào),沒(méi)有呼叫的分機(jī)不做應(yīng)答。查詢完以后恢復(fù)呼入電平中斷,并發(fā)送命令通知分機(jī)復(fù)位的忙標(biāo)志位。
4 主分機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)
4.1 工作流程
系統(tǒng)主機(jī)、分機(jī)通信軟件主要包括發(fā)送和接收2部分,分發(fā)送模塊和主機(jī)收碼流程分別如圖9和圖10所示。每個(gè)分機(jī)需包含分機(jī)地址碼,廣播機(jī)標(biāo)志位,這些信息均存儲(chǔ)在E2PROM中,當(dāng)?shù)谝淮螁?dòng)分機(jī)后,寫(xiě)入初始值,以后只從指定地址讀取分機(jī)信息。地址分配如表1所示。
為了保證發(fā)碼的準(zhǔn)確性,使波形更加精確,在發(fā)碼模塊采用了匯編語(yǔ)言提高,并通過(guò)參數(shù)控制發(fā)碼周期,發(fā)送100 kHz的方波,精確到微秒級(jí),經(jīng)實(shí)驗(yàn)測(cè)得頻率誤差小于5%。收碼均用定時(shí)器讀取。由于主機(jī)采用變長(zhǎng)編碼,因此分機(jī)解碼過(guò)程需要根據(jù)協(xié)議進(jìn)行1或O門限判決;主機(jī)解碼主要由鎖相環(huán)集成芯片LM567完成,加上分機(jī)回復(fù)碼只分有無(wú)回復(fù)二種。
4.2 系統(tǒng)穩(wěn)定性
此系統(tǒng)很好解決了呼叫與請(qǐng)求總線的沖突,由于主機(jī)總是從1號(hào)分機(jī)查詢到最后一個(gè),主機(jī)在查詢時(shí)分機(jī)都不能發(fā)100 kHz的方波,因此總線不會(huì)受到干擾,誤碼率大大降低,且不會(huì)遺漏分機(jī)請(qǐng)求,即使出現(xiàn)100個(gè)分機(jī)同時(shí)呼叫這種極端情況,主機(jī)也能一一響應(yīng)。主機(jī)采用變長(zhǎng)編碼,分機(jī)用碼時(shí)采用定時(shí)器讀取,配以計(jì)數(shù)的狀態(tài)機(jī),使CPU能準(zhǔn)確解碼,而且能夠消除毛刺帶來(lái)的影響,保證了收碼的準(zhǔn)確性。主機(jī)和分機(jī)在主循環(huán)中同樣采用狀態(tài)機(jī),用全局變量在各狀態(tài)間切換并用變量及標(biāo)志位控制,合理地分配CPU資源,能夠及時(shí)處理最緊急事件。主機(jī)電話掛機(jī)還能復(fù)位輸入的變量,即使操作失誤,仍能通過(guò)掛機(jī)來(lái)取消。
5 結(jié)語(yǔ)
該系統(tǒng)采用載波技術(shù),實(shí)現(xiàn)了兩線無(wú)極性連接,使安裝施工變得十分簡(jiǎn)單。分機(jī)采用低功耗穩(wěn)壓電源和PIC單片機(jī),使分機(jī)具有較低功耗,從而系統(tǒng)具有較好的擴(kuò)展性。主機(jī)與分機(jī)通信距離大于等于1 000 m,分機(jī)數(shù)大于等于100,能滿足各種規(guī)模醫(yī)院的要求,并預(yù)留了接口與PC進(jìn)行通信。在通信穩(wěn)定的基礎(chǔ)上,使用了經(jīng)濟(jì)實(shí)惠的芯片,具有安裝布線簡(jiǎn)單,便于檢測(cè)維修,節(jié)約設(shè)計(jì)成本等優(yōu)點(diǎn)。本文研發(fā)的樣機(jī)已經(jīng)經(jīng)過(guò)實(shí)驗(yàn)運(yùn)行驗(yàn)證了其有效性和實(shí)用價(jià)值,并已投入小批量試生產(chǎn),具有良好的推廣應(yīng)用前景。
評(píng)論