AT89C52在程控交換機(jī)呼叫緩沖系統(tǒng)中的應(yīng)用
程控交換機(jī)生成的呼叫信息是通過串行接口輸出,電話計(jì)費(fèi)系統(tǒng)可用計(jì)算機(jī)從交換機(jī)輸出口接收呼叫信息。而呼叫信息的輸出取決于系統(tǒng)分機(jī)電話的使用狀態(tài),為防止信息丟失,計(jì)算機(jī)系統(tǒng)必須保持全天連續(xù)工作。早期系統(tǒng)多采用靜態(tài)RAM作緩存,因此數(shù)據(jù)可靠性不高,系統(tǒng)功耗大;并且系統(tǒng)靈活性較差。本文介紹一種以AT89C52單片機(jī)為核心,運(yùn)用In-telStrata系列閃速存儲器作緩存的程控交換機(jī)呼叫信息緩沖系統(tǒng),該系統(tǒng)具有多任務(wù)工作特性,數(shù)據(jù)存儲可靠性高,讀出速度快,系統(tǒng)靈活性高等諸多特點(diǎn)。
系統(tǒng)硬件結(jié)構(gòu)
下圖為交換機(jī)呼叫信息緩存系統(tǒng)的硬件結(jié)構(gòu)構(gòu)圖。其主要組成為:
(1)以Atmel公司微控制器AT89C52為核心,時鐘頻率為18.432MHz。
(2)用Intelstrata系列閃速存儲器28F320J5和28F640J5組成緩沖存儲器陣列,硬件支持4MB、8MB、12MB、16MB緩存空間配置,運(yùn)用無跳線設(shè)計(jì)。
(3)UART接口芯片采用TL16C550,運(yùn)用Maxim公司的MAX3225完成CMOS與RS232C電平轉(zhuǎn)換,用于與計(jì)算機(jī)或Modem接口。
(4)運(yùn)用AT89C52的Pl、P3接口構(gòu)成串行接口,采用電流環(huán)驅(qū)動電路和相應(yīng)電平轉(zhuǎn)換電路與交換機(jī)串口相連,其通信距離可達(dá)lkm。
(5)備用電池管理及DC-DC變換電路。串行輸出A/D變換器,用于外部電源及電池電壓及容量監(jiān)測的TLC0838C芯片,行輸出口74HC374芯片則用于電池充放電控制及AMX3225、電流環(huán)電路的開關(guān)控制。
(6)單片串行EEPROMX25045用于系統(tǒng)參數(shù)的配置與保存,低電源電壓監(jiān)視,可編程硬件看門獨(dú)電路。
(7)閃速存儲器AT29C256用于微控制器片外執(zhí)行系統(tǒng)軟件。用戶可以利用AT89C52內(nèi)部程序存儲器中的重載模塊和AT29C256,實(shí)施系統(tǒng)軟件的在線升級。
系統(tǒng)軟件組成
(1)主流程過程系統(tǒng)軟件主體流程如上圖所示。其中初始化程序完成系統(tǒng)主緩存容量及其讀寫斷點(diǎn)的檢測,包括對28F320J5和28F640J5混合配置及無跳線硬件設(shè)計(jì)的支持;從串行EEPROM中讀取系統(tǒng)配置參數(shù),設(shè)置各種報警值,初始化軟串行口和TL16C550硬串行口波特率等;單片機(jī)和TL16C550接口硬件的初始化編程。主循環(huán)中,后備電池管理包括電池工作模式及其工作時間,電池可維持系統(tǒng)工作時間及電池容量信息的管理,電池充放電控制;LED及蜂鳴器在空閑緩存容量抵于門限,電池供電,Tl定時中斷時,TO則產(chǎn)生約2.4kHz的蜂鳴器驅(qū)動波形。
(2)信息緩存過程如上圖所示,交換機(jī)呼叫信息的接收和緩沖存儲是嵌入各功能模塊中完成的。在AT89C52內(nèi)RAM區(qū)開辟二個16KB的編程緩沖區(qū),軟串口接收到的數(shù)據(jù)經(jīng)壓縮后依次填入緩沖區(qū),一旦填滿一個緩沖區(qū),即通知系統(tǒng)實(shí)施緩沖編程。各功能模塊及時主動檢測相應(yīng)的通知標(biāo)志,確保呼叫信息的實(shí)時緩存。
(3)軟串口的實(shí)現(xiàn)以AT89C52的NTO引腳為RXD,結(jié)合INTO邊沿中斷和后定時中斷服務(wù)程序的設(shè)計(jì),以軟件方式控制串行呼叫信息的采樣接收。同時通過監(jiān)測記錄串行幀起始位及LSB的特征,實(shí)現(xiàn)對串口輸出波特率的自動識別和跟蹤。
結(jié)束語
該系統(tǒng)以AT89C52為核心,選用性價比高的主存儲器和外圍接口芯片,配合強(qiáng)大靈活的軟件設(shè)計(jì),開發(fā)程控交換機(jī)叫信息緩沖系統(tǒng),實(shí)現(xiàn)了低成本、大容量高實(shí)時和多任務(wù)特性。