HU219932B - Öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez - Google Patents

Öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez Download PDF

Info

Publication number
HU219932B
HU219932B HU9601009A HUP9601009A HU219932B HU 219932 B HU219932 B HU 219932B HU 9601009 A HU9601009 A HU 9601009A HU P9601009 A HUP9601009 A HU P9601009A HU 219932 B HU219932 B HU 219932B
Authority
HU
Hungary
Prior art keywords
cellular
call
remote
test
self
Prior art date
Application number
HU9601009A
Other languages
English (en)
Inventor
Luis R. Ortiz
Alexis Torres
Original Assignee
Telular International, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/505,868 external-priority patent/US5859894A/en
Application filed by Telular International, Inc. filed Critical Telular International, Inc.
Publication of HU9601009D0 publication Critical patent/HU9601009D0/hu
Publication of HUP9601009A2 publication Critical patent/HUP9601009A2/hu
Publication of HUP9601009A3 publication Critical patent/HUP9601009A3/hu
Publication of HU219932B publication Critical patent/HU219932B/hu

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/14WLL [Wireless Local Loop]; RLL [Radio Local Loop]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

A találmány tárgya öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez, ezek összes funkciójának ellenőrzéséhez.
A találmány elsősorban egy olyan cellás interfészrendszerhez alkalmazható, mint amilyet az US 4,658,096 és az US 4,737,975 számú szabadalmi leírások ismertetnek. Az említett szabadalmi leírásokban leírt rendszerekben egy interfészegység egy szabványos telefonkészüléket, faxot vagy más kommunikációs berendezést csatlakoztat egy cellás vagy hasonló adóvevőhöz, és lehetővé teszi a kommunikációs berendezés normál üzemeltetését a rádió adó-vevőn keresztül. Az interfészegység elvégezheti a DTMF vagy impulzus típusú tárcsajelek átalakítását is digitális formátumra a rádió adó-vevőhöz történő átvitelhez, aminek következtében a tárcsázással előállított szám felhasználható egy szám hívására a rádiórendszeren keresztül a rádió adóvevő segítségével. A találmány szerinti rendszer teszteli az adapter-interfészegység összes funkciójának helyes működését, valamint más jellemzőket is, így például a rádió adó-vevő kimenőteljesítményét, amely vagy az adó-vevőről vagy a rádióhálózatról kapott jelekkel változtatható, továbbá azt a frekvenciát, amelyet az adó-vevő használ, és amelyet szelektíven változtathat vagy az adó-vevő vagy a cellás hálózat.
A találmány szerinti berendezés és eljárás bármilyen cellás vagy hasonló rendszerben használható, tehát tisztán cellás rendszerekben vagy a celláshoz hasonló, például ISDN és más személyi kommunikációs rendszerekben, ahol a celláshoz hasonló adaptert vagy illesztőegységet alkalmaznak a DTMF vagy impulzus típusú tárcsajelek átalakítására digitális formátumra a celláshoz hasonló rendszerhez tartozó adó-vevőre történő átvitelhez.
Ismeretesek teljes cellás rendszerekhez használható diagnosztizáló- és tesztelőberendezések. Ismeretes olyan berendezés is, amely önmagát teszteli. Ilyet ír le az US 5,016,269 számú szabadalmi leírás egy cellás telefonrendszerhez tartozó segélykérő telefonfülkével kapcsolatban. Ez a szabadalmi leírás olyan öndiagnosztizálásra vonatkozik, amelyet maga a telefonfülke hajt végre. A szabadalmi leírás szerinti telefonfülke tartalmazza az öndiagnosztizáláshoz szükséges berendezéseket, és a cellás rendszeren keresztül periodikusan jelenti egy központi állomásnak az ellenőrzött részek állapotát. Ebből a szabadalmi leírásból megismerhető egy cellás kézi készülék és egy adó-vevő, valamint a hozzá tartozó öndiagnosztizáló rendszer az ellenőrzéshez és a központi állomásnak történő visszajelzéshez. Ez a szabadalmi leírás azonban nem foglalkozik DTMF konverter figyelésével és öndiagnosztizálásával, ahogy az a már említett US 4,658,096 és US 4,737,975 számú szabadalmi leírások szerint történik, továbbá nem ismerteti a csengetési visszhang inicializálását egy telefonközpontból a rendszer helyes működésének ellenőrzéséhez.
Az igazi cellás rendszerek mellett azok a celláshoz hasonló rendszerek, amelyekben a találmány alkalmazható, általában vezeték nélküli, digitális, személyi kommunikációs rendszerek (PCS), amelyek több intelligens bázisállomást és intelligens, hordozható kézi terminált tartalmaznak, amelyek mindegyike egy előre meghatározott rádiós cellaterületet fed le, vagy még inkább olyan digitális, cellás, rádiótelefonos személyi kommunikációs rendszerek, amelyek teljes ISDN interfésszel rendelkeznek, és így lehetővé teszik a PCS hívási forgalom közvetlen összekötését és kapcsolását az ISDN interfészen és a nyilvános kapcsolt telefonhálózaton vagy bármilyen kapcsolt hálózaton keresztül, továbbá ezek a személyi kommunikációs rendszerek hang/adat/kép (vagy ezek bármilyen kombinációja) és kétutas teljes duplex bejövő és kimenő hívási kapacitással rendelkeznek, és teljes mértékben működőképesek és kompatibilisek bármilyen választott modulációval, a cellák közötti körzetátadási protokollal, amely az intelligens, hordozható kézi terminálokban rezidens szoftverrel végrehajtott elosztott logikával van megvalósítva, továbbá az intelligens bázisállomások és a nyilvános kapcsolt telefonhálózat (vagy bármilyen kapcsolt hálózat) a PCS szolgáltatást ellenőrző adatbázissal van felszerelve.
Az elmúlt évtizedben a mobil és hordozható kommunikációs eszközök egyre könnyebb elérhetősége megszabadította az üzletembereket és a lakossági felhasználókat a teljesen vezetékes távközlési hálózat fizikai kötöttségeitől. Különösen a cellás kommunikációs rendszerek, a paging és más komplementer szolgáltatásokkal együtt, tették először igazán mobillá a távközlési szolgáltatásokat. A mobil és hordozható technológiák, valamint az új technológiák jelentős fejlődése - így a digitális átvitel a vezeték nélküli távközlésben - lényegesen bővítette a vezeték nélküli távközlési szolgáltatások számát és típusait, a felhasználók számára elérhetővé tehető rádióspektrum felhasználásával. Ezek a jövőbeli szolgáltatások magukba foglalják - de nem kizárólagosan - a cellás telefonszolgáltatások fejlett formáit, a fejlett digitális zsinór nélküli szolgáltatást, a hordozhatófax-szolgáltatásokat, a vezeték nélküli centrexet, a vezeték nélküli házi kapcsolóközponti szolgáltatásokat és a vezeték nélküli helyi hálózati szolgáltatásokat, továbbá használhatók a létező nyilvános kapcsolt hálózatban vagy az alternatív helyi vezetékes hálózatokban (például kábeles televízió-rendszerekben). így a digitális személyi kommunikációs rendszerek a helyi vezetékes hálózatoktól függetlenül, azokkal együtt létezhetnek, kitöltve a jelenlegi kommunikációs rendszerekben és a keletkező új piacokban meglevő hézagokat, amelyek nagy részét még meg kell határozni. A PCS megjelenése nagy hatással lesz az összes távközlési hálózat jövőbeli fejlődésére és felépítésére, mivel jelentősen javítja azok rugalmasságát és funkcionálását. Ennek megfelelően a PCS szolgáltatók képesek lesznek országos szinten gazdaságosan és felelősséggel elérni és kiszolgálni a létező és új piacokat.
A személyi kommunikációs követelmények gyorsan változnak az Egyesült Államokban azzal párhuzamosan, ahogy az azonnali kommunikáció iránti igény növekszik a felhasználók fokozott mobilitása következtében. A PCS egyik előnye az, hogy egyetlen készülék használatával bárki, bármikor, bárhol elérhető. A PCS nagyobb mozgékonyságot és rugalmasságot biztosít a felhasználónak, mivel lehetővé teszi számára az állan2
HU 219 932 Β dó kommunikációt. A vezeték nélküli PCS-nek köszönhetően a felhasználó nem mulaszt el fontos hívásokat, valamint csökken a visszahívásokra fordított idő és költség. A PCS egyesíti a rádió és a nyilvános kapcsolt telefonhálózat (PSTN) technológiáját és infrastruktúráját, illetve funkcióit, teljes duplex képességgel rendelkezik (kétutas bejövő és kimenő hívás) továbbá biztosítja a rádiócellák között a körzetátadást (hand-ofi), ami lehetővé teszi a felhasználó szabad mozgását egyik cellából a másikba anélkül, hogy megszakadna a hívás. Meg kell említeni, hogy egyre növekszik az igény új PCS szolgáltatások és technológiák iránt számos - néha inkompatibilis - alkalmazáshoz, mégpedig vezeték nélküli házi telefonközpontokhoz, kisebb és könnyebb hordozható cellás telefonokhoz, hordozható faxokhoz, sokcsatornás zsinór nélküli telefonokhoz, valamint olyan további szolgáltatásokhoz, amelyek elsősorban egy adott előfizető személyes elérését (és nem egy adott állomás elérését) célozzák. A jelenlegi rádiós berendezések és a velük kapcsolatos, jelenleg rendelkezésre álló szolgáltatások (azaz a zsinór nélküli telefon, a rádiópaging és a cellás rádió) nem elégítik ki maradéktalanul az új típusú PCS szolgáltatások iránti igényeket. Például a zsinór nélküli telefonok, amelyeket lakásban vagy irodában, illetve ezek környezetében használnak, csak egynéhány (körülbelül 10) csatornán működnek, amelyek túlterheltek, továbbá ezeknek a telefonoknak a használata a bázisállomásuk közvetlen környezetére korlátozódik. A rádiópaging-rendszerek csak egyutasak, és korlátozott lehetőségekkel rendelkeznek. A cellás és speciális mobil rádiós szolgáltatások nem képesek kielégíteni a PCS iránti igények teljes skáláját. A PCS berendezéseket és modulokat idővel szabványosítani fogják, aminek következtében javul majd a kapcsolódó berendezések megbízhatósága, amelyek kevésbé lesznek érzékenyek a külső forrásokból származó tranziens interferenciával szemben, továbbá a PCS képes lesz automatikus hívásregisztrálásra, automatikus hívástovábbításra, hangpostára, faxolásra, könnyen végrehajtható bolyongásra (roaming), távadatátvitelre, a személyiségi jogok fokozott védelmére, hívóazonosításra, típusszolgáltatásokra, a telepet kímélő üzemelésre és közös protokollok használatára. A piaci követelmények lehető legjobb kielégítéséhez digitális PCS szükséges. A vezeték nélküli PCS feleslegessé teheti az épületek kommunikációs célú behuzalozását. Általánosságban elmondható, hogy a PCS a jelenleginél több szolgáltatást fog nyújtani. A digitális PCS lehetővé teszi a műszaki kommunikációs berendezések és rendszerek továbbfejlesztését.
A jelen találmány tehát olyan ISDN és egyéb PCS rendszerekben használható, ahol cellás típusú adaptert vagy interfészt alkalmaznak, ami lehetővé teszi egy szabványos, hagyományos telefonkészülék vagy más kommunikációs berendezés használatát ebben a rendszerben azáltal, hogy annak DTMF vagy impulzusjeleit olyan digitális formátumra alakítja át, amely elküldhető egy PCS adó-vevő egységre, vagy azáltal, hogy más rendszerspecifikus funkciókat biztosít. Például riasztórendszerekben, ahol a rádió adó-vevőt csak kimenő hívásokra használják, az illesztőegységnek nem kell csengetőjelet és foglaltsági jelet előállítani stb. Hasonlóképpen azokban a rendszerekben, ahol csak bejövő hívások fordulnak elő, az illesztőegységnek nem kell a tárcsázott DTMF vagy impulzusjeleket átalakítani digitális formátumra. Egy ilyen PCS cellás adapter az összes többi szükséges funkciót is biztosítja, így a tárcsahang előállítását, a csengetést stb., ahogy az az US 4,658,096 és az US 4,737,975 számú szabadalmi leírásokban ismertetett cellás interfészkártya esetén történik.
A találmány szerinti öndiagnosztizáló berendezés cellás vagy celláshoz hasonló adó-vevő és egy ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatára alkalmas, ahol egy földi típusú telefonkészülék DTMF vagy impulzus típusú tárcsajeleket digitális formára alakító illesztőegységen keresztül a cellás vagy celláshoz hasonló adó-vevővel van összekötve a földi típusú telefonon tárcsázott számnak a cellás vagy celláshoz hasonló rendszeren keresztül történő hívásához. A berendezés a cellás vagy celláshoz hasonló adó-vevő és az ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység helyes működésének tesztelését kezdeményező jelet előállító távtesztelés-inicializáló eszközt; és a távtesztelés-inicializáló eszközről kapott jel hatására a tesztelési folyamatot elindító távfenntartó egységet tartalmaz.
Előnyösen a távfenntartó egység a tesztelés eredményeit képviselő adatokat egy távoli távfenntartó központnak a cellás vagy celláshoz hasonló adó-vevő segítségével elküldő távjelentő eszközt tartalmaz. A távoli távfenntartó központ a teszteredményeket képviselő adatokat fogadó és feldolgozó eszközzel rendelkezik, és a távfenntartó egységtől a teszteredményeket képviselő adatokat kérő jelzőeszközt, valamint a távfenntartó egységnek a teszteredményeket képviselő adatok sikeres vételét jelző eszközt tartalmaz. Mindegyik jelzőeszköz egy 1020 Hz-es hangot generáló eszközt; a távfenntartó egység pedig az 1020 Hz-es hangot vevő eszközt tartalmaz. Célszerűen a távfenntartó egység a teszteredményeket képviselő adatok átvitelét újramegkísérlő eszközt is tartalmaz; ez az eszköz a teszteredményeket képviselő adatok újraátviteli kísérleteinek számát korlátozó eszközzel van ellátva. Előnyösen a távfenntartó egység a távfenntartó központ telefonszámát a cellás vagy celláshoz hasonló hálózaton át hívó eszközt, valamint sikertelen első kísérlet esetén a hívást újramegkísérlő eszközt tartalmaz; a távfenntartó központ a távfenntartó egységnek a cellás vagy celláshoz hasonló hálózaton keresztül az öndiagnosztizáló teszt végrehajtásához az öndiagnosztizáló berendezés működtetését kiváltó jelet küldő tesztinicializáló eszközt tartalmaz; továbbá a távfenntartó egység a tesztinicializáló jelet fogadó jelvevő eszközzel rendelkezik. Szintén előnyös, ha a távfenntartó egység a távfenntartó központ telefonszámát a cellás vagy celláshoz hasonló hálózaton keresztül hívó eszközt, valamint sikertelen első kísérlet esetén a hívást újramegkísérlő eszközt tartalmaz.
A berendezés egy másik előnyös kiviteli alakja a cellás vagy celláshoz hasonló adó-vevő és az ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység helyes működésének tesztelését kezdeményező jelet
HU 219 932 Β előállító, távol elhelyezett távtesztelés-inicializáló eszközt; és a távtesztelés-inicializáló eszközről kapott jel hatására a tesztelési folyamatot elindító távfenntartó egységet tartalmaz, továbbá a távfenntartó egység a tesztelés eredményeit képviselő adatokat egy távoli helyre a cellás vagy celláshoz hasonló hálózat segítségével elküldő távjelentő eszközzel van ellátva.
Előnyösen a távfenntartó egység egy standard földi telefonhoz hasonló készülék funkcióit szimuláló, a cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatához a cellás vagy celláshoz hasonló illesztőegységben válaszokat generáló eszközöket tartalmaz. Célszerűen a távfenntartó egység a cellás vagy celláshoz hasonló illesztőegység felé off-hook jelzést generáló eszközt; a cellás vagy celláshoz hasonló illesztőegység által az említett off-hook jelzésre válaszul előállított tárcsahangot érzékelő tárcsahangdetektort; DTMF jelet előállító, és ezt a jelet a cellás vagy celláshoz hasonló illesztőegység felé küldő MFTD generátort; a cellás vagy celláshoz hasonló illesztőegységnek az MFTD generátor által előállított jelre válaszul kiadott DTMF jelét detektáló eszközt; a cellás vagy celláshoz hasonló illesztőegység felé on-hook jelzést generáló eszközt; a cellás vagy celláshoz hasonló illesztőegység csengetőgenerátorának működtetéséhez az adóvevő számára bejövő telefonhívást szimuláló eszközt; az így előállított csengetési jelet érzékelő csengetőjeldetektort; a cellás vagy celláshoz hasonló illesztőegység számára - az alatt az idő alatt, amíg a cellás vagy celláshoz hasonló illesztőegység a csengetési jelet generálja - off-hook jelzést előállító eszközt; a cellás vagy celláshoz hasonló telefonhálózaton keresztül - amikor a cellás vagy celláshoz hasonló illesztőegység egy adóvevőhöz van kapcsolva - egy kimenő telefonhívást, és vissza az említett cellás vagy celláshoz hasonló adóvevő felé irányuló hívást generáló eszközt tartalmaz; továbbá a cellás vagy celláshoz hasonló adó-vevő által az említett telefonhívásra válaszul generált foglaltsági jelet érzékelő foglaltságijel-detektort; és az illesztőegység helyes működését monitorozó és a távjelentő eszköz segítségével az említett távoli helyre jelentő eszközt tartalmaz.
Az eljárás során: (a) egy távoli helyről tesztinicializáló jelet küldünk egy távfenntartó egységre; (b) az (a) lépésre válaszul a távfenntartó egység segítségével végrehajtjuk a cellás vagy celláshoz hasonló illesztőegység tesztelését; (c) a teszteredményeket a cellás vagy celláshoz hasonló hálózaton át elküldhető adatokká transzformáljuk; és (d) a teszteredmények adatait a cellás vagy celláshoz hasonló adó-vevő segítségével egy távoli távfenntartó központba küldjük.
Előnyösen a (d) lépés előtt a távoli távfenntartó központból a távfenntartó egység számára az adatkapcsolat létrejöttét jelző nyugtázójelet generálunk; a (b) lépésben monitorozzuk az illesztőegység által végrehajtott funkciókat; és a cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatához a monitorozás folyamán egy kommunikációs készülék funkcióit szimulálva válaszokat generálunk a cellás vagy celláshoz hasonló illesztőegységben.
A találmány tárgyát a továbbiakban kiviteli példák és rajzok alapján ismertetjük részletesebben. A rajzokon az la. és lb. ábra: a találmány szerinti öntesztelés lépéseit általánosságban szemléltető folyamatábra, a
2. ábra: a találmány szerinti off-hook önteszt szubrutinjának lépéseit szemléltető folyamatábra, a
3. ábra: a tárcsahang-generálás találmány szerinti öntesztjéhez tartozó szubrutin lépéseit szemléltető folyamatábra, a
4. ábra: a DTMF hang generálásának találmány szerinti öntesztjéhez tartozó szubrutin lépéseit szemléltető folyamatábra, az
5a-5c. ábra: a csengetőjel generálásának találmány szerinti öntesztjéhez tartozó szubrutin lépéseit szemléltető folyamatábra, a
6. ábra: a csengőválasz találmány szerinti öntesztjéhez tartozó szubrutin lépéseit szemléltető folyamatábra, a
7a. és 7b. ábra: egy bejövő hívás megfelelő detektálását és a válaszadást vizsgáló találmány szerinti hívási teszthez tartozó szubrutin lépéseit szemléltető folyamatábra, a
8a. és 8b. ábra: a találmány szerinti hibakódgenerálást szemléltető folyamatábra, a
9. ábra: a találmány szerinti rését szubrutint szemléltető folyamatábra, a
10. ábra: a találmány szerinti rendszer tömbvázlata, a
11-14. ábra: a cellás és celláshoz hasonló interfészt és adó-vevőt a vizsgált események szimulálásával tesztelő különböző áramkörök vázlata,
15-17. ábra: a cellás és celláshoz hasonló interfész és a kapcsolódó berendezések vizsgálati eredményeinek egy távfenntartó központban történő feldolgozását szemléltető folyamatábrák, a
18. ábra: az eljárási lépések folyamata, amikor a távoli távfenntartó központ kezdeményezi a cellás és hasonló interfész és a kapcsolódó berendezések tesztelését, és a
19. ábra: a főhurok státusát ellenőrző rutint szemléltető folyamatábra.
A találmány szerinti öndiagnosztizáló távfenntartó rendszer cellás és celláshoz hasonló illesztőegységeknél és rendszereknél használható, például olyanoknál, mint amilyeneket az US 4,658,096 és az US 4,737,975 számú szabadalmi leírások ismertetnek. Ezenkívül a találmány szerinti öndiagnosztizáló távfenntartó rendszer más rádió adó-vevő rendszerekkel (például IMTS) is alkalmazható, ahol vezeték nélküli kapcsolat van egy bázisállomás és vezérállomások között, és ahol az adóvevő egy olyan illesztőegységgel van ellátva, mint amilyet például az US 4,658,096 és az US 4,737,975 számú szabadalmi leírások ismertetnek, amely lehetővé teszi vezetékes telefon, faxgép, modem és hasonló kommunikációs készülékek csatlakoztatását a rádió adó-ve4
HU 219 932 Β vőhöz, és normál működtetésüket. Az interfészegységnek - rendeltetésétől függően - számos funkciója van. Például riasztórendszerekben, ahol a rádió adó-vevőt csak kimenő hívásokra használják, az interfészegységnek nem kell csengetőjelet és foglaltsági jelet előállítani stb. Hasonlóképpen azokban a rendszerekben, ahol csak bejövő hívások fordulnak elő, az interfészegységnek nem kell a tárcsázott DTMF vagy impulzusjeleket átalakítani digitális formátumra. A találmány szerint olyan szoftvert alkalmazunk, amely kommunikál az - US 4,658,096 és US 4,737,975 számú szabadalmi leírásokban leírt - cellás illesztőegység vagy más rádió adó-vevő illesztőkártyájának mikroprocesszorával, és amely szoftver manuálisan vagy automatikusan aktiválható a találmány szerinti öndiagnosztizáló illesztőegység aktiválásához, és diagnosztizálja az említett szabadalmak szerinti teljes rendszerben az összes szoftverés hardverrendszer megfelelő funkcionálását. Minden részlet ellenőrizhető. Például az illesztőegységen vizsgálható a DTMF konverter, a négyhuzalos interfész kéthuzalos csatlakozása, a foglaltsági hang szoftvere, valamint az interfész működésének más vonatkozásai. Ezenkívül ellenőrizhető az adó-vevő, a telep, és az interfész bármely más funkciója. A találmány szerinti fenntartórendszer képes hívást kezdeményezni a cellás vagy celláshoz hasonló hálózaton keresztül egy központi állomás vagy bázisállomás egy adott telefonszámára, amely központi állomás vagy egy visszajelző hangot küld vissza, vagy tárcsázza az interfészrendszer számát, hogy foglaltsági jel keletkezzen. Ezt tesztnek tekintjük. A találmány szerinti rendszer egy másik telefonszámot is küld a cellás vagy celláshoz hasonló rendszeren keresztül ugyanannak vagy egy másik központi állomásnak a hívása érdekében, úgyhogy az egy 1000 Hz-es precíziós hangot küldhet vissza, és így a találmány szerinti szoftver összehasonlíthatja ezt az 1000 Hz-es hangot a saját, előre meghatározott konfigurációjával annak meghatározására, hogy van-e vonali kapcsolat, és hogy a cellás vagy celláshoz hasonló rendszer helyesen működik-e. Ez egy különösen hasznos rendszer, mivel a felhasználó számára lehetővé teszi a telefon aktiválását akkor, ha úgy gondolja, hogy valamilyen probléma van a telefonnal. Ez a teszt a telefontársaság számára kimutatja, hogy a hiba a cellás rendszer központjában vagy a felhasználó készülékében van.
A találmány szerinti berendezés része egy távfenntartó áramkör és egy távtarifa-áramkör. A távfenntartó áramkör egy - később részletesen ismertetett - többszörös tesztet generál, amely magában foglalja egy adott számra szóló telefonhívás generálását. Az áramkör erre a számra jelenti a teszt eredményeit. Ezenkívül az áramkör tárcsázhatja a saját számát, és egy foglaltsági jel vételével meggyőződhet arról, hogy az egységben rendben van-e a vétel és az adás. Ezeket a tesztsorozatokat az előfizető az egység oldalán elhelyezett nyomógomb megnyomásával kezdeményezheti. A gomb megnyomásakor a mellette elhelyezett LED fénye jelzi, hogy a teszt folyamatban van. Ha a teszt végén a LED tovább világít, az azt jelzi, hogy valamilyen probléma van az egységgel. Ez a teszt általában legfeljebb 40 másodpercig tart. Másrészt, ha a LED abbahagyja a villogást és kikapcsolódik, az azt jelzi, hogy a teszt sikeres volt, és hogy az egység megfelelő állapotban van a tesztelt tényezők tekintetében. A szoftver és a hardver előnyösen azt is biztosíthatja, hogy a tesztet egy külső számról is el lehessen végezni, feltéve, hogy az átviteli közeg ezt megengedi (azaz az adó-vevő a telefonszám vételére alkalmas működési állapotban van).
A távtarifa-áramkör a következőkből áll: A cellás vagy celláshoz hasonló rendszerről kapott tarifajelek felhasználásával generálja a megfelelő tarifaimpulzusokat a szabványos asztali vagy fizetős telefon számára. A készülék értelmezi a cellás vagy celláshoz hasonló rendszerről érkező jelet, és nem igényel helyi tarifát. Hasonló módon működik a hosszú hangok generálásánál. Bármilyen cellás vagy celláshoz hasonló rendszerrel használható, amely képes tarifajelek küldésére.
A felhasználó bármikor előhívhatja a tesztsorozatot az öndiagnózisgomb lenyomásával. Az előhíváskor a távfenntartó egység öndiagnosztizáló főszubrutinja átveszi az illesztőegység vezérlését az öntesztelés végrehajtásához.
Az la. és lb. ábrán a DOTEST szubrutin vagy öndiagnosztizáló főszubrutin látható. A különböző tesztelési lépésekhez több hívást hajtunk végre. Az egyes műveletek után ellenőrizzük a hibajelzőket (error flags). Bármilyen hiba esetén leállítjuk a tesztsorozatot. Ezután a státust kódoljuk, és az eredményt - az alább leírt módon - négy LED segítségével kijelezzük a felhasználónak.
Az la. ábra szerint az 1. lépésben a működésitesztsorozat a változók és jelzők inicializálásával kezdődik. A 2. lépésben a program hívja a villaérintkezőt vizsgáló HookTest szubrutint. A Hook_Test-ben az előfizető telefonja lekapcsolódik a TIP & RING vezetékekről, és a továbbiakban részletesen leírt távfenntartó egység kapcsolódik helyette a például az US 4,658,096 és az US 4,737,975 számú szabadalmi leírásokban leírt illesztőegységhez a teszt előkészítése érdekében. A 3. lépésben azt vizsgáljuk, hogy a Hook_Test érzékelt-e valamilyen hibát. Ha előfordult hiba, a tesztsorozat leáll, és a program az lb. ábra szerinti 14. lépéssel folytatódik. Ha nem volt hiba, a program a tárcsahangot vizsgáló DialToneTest szubrutint hívja a 4. lépésben. Az 5. lépésben megvizsgáljuk, hogy nincs-e valamilyen tárcsahanghiba. Ha hibát találunk, a tesztsorozat leáll, és a program az lb. ábra szerinti 14. lépéssel folytatódik. Ha nincs hiba, a program a következő tesztet, mégpedig a DTMFTest szubrutint hívja a 6. lépésben. A program az lb. ábra szerinti 7. lépéssel folytatódik, amelyben DTMF/Tone hibát keresünk. Ha hibát találunk, a tesztsorozat leáll, és a program a 14. lépéssel folytatódik. Ha nem detektálunk hibát, a program a következő tesztet, mégpedig a RingTest szubrutint hívja a 8. lépésben. A 9. lépés a csengetési hibákat vizsgálja. Ha hiba van, a tesztsorozat leáll, és a program a 14. lépéssel folytatódik. Ha nincs hiba, a program a következő tesztet, a RingAnswerTest szubrutint hívja a 10. lépésben. All. lépés a csengetésre adott válasz (hívott válaszol) hibáit vizsgálja. Ha valamilyen hiba van, a tesztsorozat
HU 219 932 Β leáll, és a program a 14. lépéssel folytatódik. Ha nincs hiba, a program a következő tesztet, a MakeCallTest szubrutint hívja a 12. lépésben. A 13. lépés a kimenő hívások hibáit vizsgálja. Ha valamilyen hiba van, a tesztsorozat leáll, és a program a 14. lépéssel folytatódik. Ha nincs hiba, a program a következő tesztet, a FinSelfTest szubrutint hívja a 15. lépésben. Ha bármelyik szubrutin végrehajtása folyamán hibát találunk, a program a 14. lépésre ugrik. A 14. lépésben a program az ErrorAcc szubrutint hívja. Végül a tesztsorozat azzal fejeződik be, hogy a 15. lépés az összes változót és jelzőt törli, a telefonkészülék visszaveszi a vezérlést, és újra megkezdődik az interfész normál működése.
A 2-9. ábrák megfelelnek a fentiekben említett egyes tesztszubrutinoknak, illetve részletesen leírják azokat.
A 2. ábra szerint a HookTest szubrutin (az la. ábrán a 2. lépés) a változók és jelzők inicializálásával kezdődik a 16. lépésben. A 17. lépésben a program törli a LED-ek kimenetét. A 18. lépésben az előfizető telefonja lekapcsolódik az illesztőegység TIP & RING vezetékeiről, míg a 19. lépésben a találmány szerinti távfenntartó egység a telefon helyére kapcsolódik. A 20. lépés egy késleltetési idő, amely elegendő reakcióidőt biztosít a csatlakoztatáshoz. A 21. lépésben a találmány szerinti távfenntartó egység a kézibeszélő felemelését (offhook) szimulálja és generálja. A 22. lépés szintén egy késleltetési idő, amely elegendő időt biztosít az offhook számára. A 23. lépésben a program az illesztőegység villakapcsolójának (hook) státusát vizsgálja, miközben az illesztőegység már a távfenntartó egységhez csatlakozik. A 24. lépés egy off-hook teszt. Ha nem detektál off-hook állapotot, a program a 25. lépéssel folytatódik, amely egy első hibajelző, a MAINFLAGERROR értékét 1-re állítja. Ha nincs hiba, a program a 26. lépéssel folytatódik, amely engedélyezi a tárcsahangot a 3. ábrán látható következő teszthez. Végül ez a szubrutin befejeződik, és a program visszatér az la. és lb. ábra szerinti DoTest főszubrutinhoz.
A 3. ábrán a DialTest szubrutin a változók és jelzők inicializálásával kezdődik a 27. lépésben. A 28. lépés egy késleltetési idő, amely elegendő időt biztosít egy megfelelő tárcsahanghoz. A 29. lépés a tárcsahangot vizsgálja. Ha nincs tárcsahang, a program a 30. lépéssel folytatódik, amely a MAIN FLAG ERROR értékét 3-ra állítja. Ha nincs hiba, a program a 31. lépéssel folytatódik, ahol a program visszatér a 29. lépésre, és a tárcsahangot legalább 711 ms-ig vizsgálja. Ha a 711 ms alatt nem detektálunk hibát, ez a szubrutin befejeződik, és a program visszatér az la. és lb. ábra szerinti Do Test főszubrutinhoz.
A 4. ábrán a DTMFTest szubrutin látható, amely azt vizsgálja, hogy az illesztőegység megfelelően végzi-e a DTMF átalakítást digitális adatokká. Ez a szubrutin a 32. lépésben kezdődik az előző szubrutintesztből származó tárcsahang tiltásával. A 33. lépés az első DTMF hangot 0-ra állítja. A 34. lépésben a távfenntartó egység ennek az értéknek megfelelő DTMF hangot küld. A 35. lépés egy késleltetési idő, amely elegendő időt biztosít a hang bekapcsolásához. A 36. lépés tiltja a DTMF hangot. A 37. lépés egy késleltetési idő, amely lehetővé teszi, hogy az interfész detektálja a DTMF hangimpulzust. A 38. lépésben az interfész érzékeli a hangot. A 39. lépés a vett DTMF hangot vizsgálja. Ha az elküldött DTMF hang nem egyezik a vett DTMF hanggal, vagy egyáltalán nem vehető DTMF hang, akkor a program a 40. lépéssel folytatódik, amelyben a MAIN FLAG ERROR értéke 4 lesz. Ha a DTMF hangok megegyeznek, a program a 41. lépéssel folytatódik, és megtörténik a következő DTMF digit kiválasztása. A 42. lépésben a program azt vizsgálja, hogy megtörtént-e az összes DTMF hang tesztelése; ha nem, a program visszatér a következő számjegy tesztelésére. Végül az összes DTMF hang tesztelése után a szubrutin befejeződik, és a program visszatér az la. és lb. ábra szerinti Do Test főszubrutinhoz.
Az 5a. és 5b. ábrán a RingTest szubrutin látható. Ez a szubrutin az illesztőegység csengőáramköre által generált csengetés két impulzusának időzítését teszteli. Az 5a. ábra szerint a szubrutin a változók és jelzők inicializálásával kezdődik a 43. lépésben. A 44. lépésben a távfenntartó egység on-hook állapotot generál. A 45. lépés egy késleltetési idő, amely lehetővé teszi az interfésznek az on-hook állapot detektálását. A 46. lépésben az interfészre olyan jelet adunk, amit az egy folyamatban levő bejövő hívásként érzékel; ezért az illesztőegység csengetésijel-sorozatot állít elő. A 47-53. lépéseknek az a célja, hogy meggyőződjünk arról, hogy a csengetés a következő két másodpercen belül elkezdődik, és hogy nincs off-hook állapot. A 47. lépésben az időzítő törlődik. A 48. lépés off-hook tesztet végez. Ha off-hook állapotot detektál, a teszt leáll, és a program az 5c. ábrán látható 49. lépésre ugrik a hibajelzéshez. Ha on-hook állapotot detektál, a program az 51. lépéssel folytatódik, amelyben a távfenntartó egység azt vizsgálja, hogy aktív-e a csengő. Az 52. lépés azt teszteli, hogy megindult-e a csengetés. Ha a csengetés megkezdődött, a program az 5b. ábrán látható 54. lépéssel folytatódik. Ha a csengetés még nem indult meg, a program az időzítőt vizsgálja az 53. lépésben. Ha az idő kevesebb két másodpercnél, a program mindaddig visszatér a 48. lépésre, amíg megkezdődik a csengetés. Ha a két másodperces időzítés már letelt, a teszt leáll, és a program az 5c. ábrán látható 49. lépésre ugrik a hibajelzéshez. Az 5b. ábrán az 54. lépés egy késleltetési idő. Az 55-59. lépésekben arról győződünk meg, hogy a csengetés legalább 1,3 másodpercig tart, és hogy nincs offhook állapot. Az 55. lépésben töröljük az időzítőt. Az 56. lépés egy on-hook teszt. Ha off-hook állapotot detektálunk, a teszt leáll, és a program az 5c. ábrán látható 49. lépésre ugrik a hibajelzéshez. Ha on-hook állapotot detektálunk, a program az 57. lépéssel folytatódik, amelyben a távfenntartó egység azt vizsgálja, hogy aktív-e a csengő. Az 58. lépés azt teszteli, hogy befejeződött-e a csengetés. Ha befejeződött, a program az 5c. ábrán látható 49. lépéssel folytatódik. Ha a csengetés még nem fejeződött be, a program az időzítőt vizsgálja az 59. lépésben. Ha az eltelt idő kevesebb 1,3 másodpercnél, a program ismételten visszatér az 56. lépésre, amíg a csengetés megszűnik. Ha az idő letelt, a teszt leáll,
HU 219 932 Β és a program az 5c. ábrán látható 49. lépésre ugrik. A 60-62. lépésekben arról győződünk meg, hogy a csengetés nem tart tovább 2,5 másodpercnél. A 60. lépésben a távfenntartó egység azt vizsgálja, hogy a csengő aktív-e A 61. lépés azt állapítja meg, hogy a csengetés megszűnt-e. Ha megszűnt, a program az 5c. ábrán látható 63. lépésre ugrik. Ha a csengetés még nem ért véget, a program az időzítőt vizsgálja a 62. lépésben. Ha az eltelt idő kisebb 2,5 másodpercnél, akkor a program mindaddig visszatér a 60. lépésre, amíg a csengetés megszűnik. Ha az idő letelt, a teszt leáll, és a program az 5c. ábrán látható 49. lépésre ugrik.
Az 5c. ábrán a 63-65. lépéseknek az a célja, hogy meggyőződjünk arról, hogy egy két másodperces időtartam folyamán nem detektálható off-hook állapot. A 63. lépésben töröljük az időzítőt. A 64. lépés egy on-hook teszt. Ha off-hook állapotot detektálunk, akkor a teszt leáll, és a program a 49. lépésben hibajelzéssel folytatódik. Ha nem detektálunk off-hook állapotot, a program az időzítőt vizsgálja a 65. lépésben. Ha az eltelt idő kevesebb két másodpercnél, a program mindaddig visszatér a 64. lépésre, amíg a csengetés elkezdődik. Ha az idő már letelt, a program a 66. lépésben folytatódik, amelyben a program azt vizsgálja, hogy ennek a szubrutinnak hány ciklusa tesztelte a csengetést. Ha a csengő tesztelése csak egy ciklusban történt, a program a 67. lépéssel folytatódik, ahol megtörténik a RingSecond elnevezésű jelző beállítása. Ezután a program visszatér a 47. lépésre a csengő másodszori teszteléséhez. A csengő második tesztelése után a szubrutin befejeződik, és a program visszatér a DoTest nevű főszubrutinhoz. Ha a Ring Test szubrutin valamelyik részében hibát detektáltunk, a program a 49. lépésre ugrik. A 49. lépés törli a bejövő hívás státust; ezért a csengetési sorozat leáll. Ezután a program az 50. lépésben folytatódik, ahol a MAINFLAGERROR értékét 5-re állítjuk. Ezt követően a szubrutin véget ér, és a program visszatér a Do Test nevű főszubrutinhoz.
A 6. ábrán a RingAnswerTest szubrutin látható. Ez a szubrutin az illesztőegység válaszát teszteli, ha offhook jelzést kap a csengetési ciklus folyamán, amikor a telefon egy bejövő hívásra válaszol. A 68-69. lépésben arról győződünk meg, hogy a csengetés a következő két másodpercen belül elkezdődik, és hogy nem detektálunk off-hook állapotot. A 68. lépésben az időzítőt töröljük. A 69. lépés egy on-hook teszt. Ha off-hook jelzést detektálunk, akkor a teszt leáll, és a program a csengő aktiválásával folytatódik. A 71. lépés azt vizsgálja, hogy megkezdődött-e a csengetés. Ha megkezdődött, a program a 74. lépéssel folytatódik. Ha a csengetés még nem kezdődött el, a program az időzítőt vizsgálja a 72. lépésben. Ha az eltelt idő kevesebb két másodpercnél, a program visszatér a 69. lépéshez, és váija a csengetés kezdetét. Ha a két másodperces időzítés letelt, a teszt leáll, és a program a 73. lépésre ugrik. A 74. lépésben a távfenntartó egység off-hook jelzést generál. A 75. lépés egy késleltetési idő, amely lehetővé teszi, hogy az illesztőegység detektálja az off-hook állapotot. A 76. lépésben az interfész a hook státus vizsgálatát végzi. Ha a ΊΊ. lépés nem detektál off-hook állapotot, a teszt leáll, és a program a 73. lépésre ugrik. Ha azonban az illesztőegység off-hook állapotot detektál, a program a 78. lépésben folytatódik. Ha a Ring Answer Test szubrutin valamelyik részében hibát detektáltunk, a program a 73. lépésre ugrik, ahol a MAINFLAGERROR értékét 6-ra állítjuk. Ezután a program a 78. lépésben folytatódik. A 78. lépésben a bejövő hívás státust töröljük; ezért az illesztőegység leállítja a csengetési sorozatot. Ezután a szubrutin befejeződik, és a program visszatér a Do Test nevű főszubrutinhoz.
A 7a. és 7b. ábrán a CallTest szubrutin látható. Ez a szubrutin az illesztőegységhez kapcsolt cellás vagy celláshoz hasonló adó-vevőt teszteli; először a tápfeszültséget vizsgálja, majd hívást generál a saját telefonszámára. A 7a. ábrán a 79. lépés azt vizsgálja, hogy az adóvevő tápfeszültsége be van-e kapcsolva („on”). Ha nincs bekapcsolva („off’), egy második hibajelző, a MAIN1FLAG ERROR értéke 1 lesz a 81. lépésben, majd a program a 7b. ábra 93. lépésére ugrik. Ha a tápfeszültség be van kapcsolva, a program a 82. lépéssel folytatódik, ahol az illesztőegység kéri és megkapja az adóvevőhöz rendelt telefonszámot. A 83. lépés egy késleltetési idő, amely reakcióidőt biztosít az adó-vevőnek. A 84. lépésben az illesztőegység telefonhívást generál saját magának. A 85. lépés egy késleltetési idő, amely időt ad a cellás vagy celláshoz hasonló hálózat és az adó-vevő közötti kapcsolat létrehozásához. A 86. lépésben az illesztőegység az IN USE státust kéri az adóvevőtől. A 87. lépés a hívás státusát vizsgálja. Ha ez nem IN USE státus, a MAIN 1FLAG ERROR értékét 4-re állítjuk a 88. lépésben; ezután a program a 7b. ábra szerinti 93. lépésre ugrik. Ha az adó-vevő státusa IN USE, a program a 7b. ábra 89. lépésével folytatódik. A 7b. ábrán a távfenntartó egység a foglaltsági hangot vizsgálja a 89. lépésben. Ha a 90. lépés foglaltsági hangot detektál, a program a 93. lépésre ugrik annak jelzéséhez, hogy minden megfelelően működik. Ha foglaltsági hang nem detektálható, a program a 91. lépéssel folytatódik, amely az időzítőt vizsgálja. Ha az eltelt idő kevesebb 18,2 másodpercnél, a program visszatér a 86. lépésre. Ez több időt biztosít a cellás vagy celláshoz hasonló hálózatnak arra, hogy visszaküldje a foglaltsági választ. Ha az idő még nem telt le, a program a 92. lépéssel folytatódik, amelyben a MAIN1FLAGERROR értékét 3ra állítjuk. A 93. lépésben az illesztőegység egy hívás vége (END) üzenetet küld az adó-vevőnek. Ezután a távfenntartó egység on-hook jelzést küld az illesztőegységnek a 94. lépésben. Végül a szubrutin befejeződik, és a program visszatér a Do Test főszubrutinhoz.
A 8a. és 8b. ábrák szerinti műveleteknek az a célja, hogy egy ERRORCODE hibakódot állítsunk elő a korábban leírt hibajelzőkből oly módon, hogy az eredményeket később LED-ekkel ki lehessen jelezni. A 8a. ábrán a szubrutin azzal kezdődik, hogy megvizsgálja a két hibajelző közül az elsőnek, a MAINFLAGERRORnak az értékét. A 95. lépés azt vizsgálja, hogy a MAIN FLAG ERROR értéke 1-gyel egyenlő-e, vagyis Hook Slic Error áll-e fenn. Ha igen, az ERROR CODE értékét 1-re állítjuk a 96. lépésben, majd a program viszszatér a Do Test fő szubrutinhoz. Ha nem, a program a
HU 219 932 Β
97. lépéssel folytatódik. A 97. lépés azt vizsgálja, hogy a MAINFLAGERROR értéke 2-vel egyenlő-e, vagyis hook-ring error áll-e fenn. Ha igen, az ERRORCODE értékét 2-re állítjuk a 98. lépésben; ezután a program visszatér a DoTest főszubrutinhoz. Ha nem, a program a 99. lépéssel folytatódik. A 99. lépés azt vizsgálja, hogy a MAIN FLAG ERROR értéke 3-mal egyenlő-e, vagyis dial-tone error áll-e fenn. Ha igen, az ERROR CODE értékét 3-ra állítjuk a 100. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 101. lépéssel folytatódik. A 101. lépés azt vizsgálja, hogy a MAIN FLAG ERROR értéke 4-gyel egyenlő-e, vagyis DTMF tone error áll-e fenn. Ha igen, az ERROR CODE értékét 4-re állítjuk a 102. lépésben; ezután a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 103. lépéssel folytatódik. A 103. lépés azt vizsgálja, hogy a MAIN FLAG ERROR értéke 5-tel egyenlő-e, vagyis ring-detection error áll-e fenn. Ha igen, az ERROR CODE értékét 5-re állítjuk a 104. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 105. lépéssel folytatódik. A 105. lépés azt vizsgálja, hogy a MAINFLAGERROR értéke 6-tal egyenlő-e, vagyis ring-answer error áll-e fenn. Ha igen, az ERROR CODE értékét 6-ra állítjuk a 106. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 8b. ábra 107. lépésére ugrik. A 8b. ábrán a szubrutin azzal kezdődik, hogy megvizsgálja a második hibajelző, azaz a MAIN1FLAG ERROR értékét. A 107. lépés azt vizsgálja, hogy a MAIN1FLAG ERROR értéke 1-gyel egyenlő-e, vagyis power-radio error áll-e fenn. Ha igen, az ERROR CODE értékét 7-re állítjuk a 108. lépésben, és ezután a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 109. lépéssel folytatódik. A 109. lépés azt vizsgálja, hogy a MAIN1FLAG ERROR értéke 2-vel egyenlő-e, vagyis call error áll-e fenn. Ha igen, az ERROR CODE értékét 8-ra állítjuk a 110. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 111. lépéssel folytatódik. A 111. lépés azt vizsgálja, hogy a MAIN1FLAG ERROR értéke 3-mal egyenlő-e, vagyis busy-tone error áll-e fenn. Ha igen, az ERROR CODE értékét 9-re állítjuk a 112. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program a 113. lépéssel folytatódik. A 113. lépés azt vizsgálja, hogy a MAIN1FLAG ERROR értéke 4-gyel egyenlő-e, vagyis „In Use” hiba áll-e fenn. Ha igen, az ERROR CODE értékét 10-re állítjuk a 114. lépésben; ezután a program visszatér a Do_Test főszubrutinhoz. Ha nem, a program a 115. lépéssel folytatódik. A 115. lépés azt vizsgálja, hogy a MAIN1FLAG ERROR értéke egyenlő-e 5-tel, vagyis az 1000 Hz hibája áll-e fenn. Ha igen, az ERROR CODE értékét 11-re állítjuk a 116. lépésben, majd a program visszatér a Do Test főszubrutinhoz. Ha nem, a program szintén visszatér a Do Test főszubrutinhoz.
A 9. ábrán a FIN_SELF szubrutin látható, amelynek az a célja, hogy visszaállítsa az illesztőegység normál funkcióját, és jelezze a teszt végét a LED-ek négyszeri felvillantásával. A szubrutin a 117. lépéssel indul, amelyben a távfenntartó egység on-hook jelzést generál. A 118. lépésben minden változót és hibajelzőt törlünk. A 119. lépés kikapcsolja az összes LED-et. A 120. lépés egy késleltetési idő. A 121. lépés bekapcsolja az összes LED-et. A 122. lépés egy késleltetési idő. A 123. lépés lehetővé teszi a 119. lépésre történő visszatérést, hogy a felvillanás négyszer megismétlődjön. Végül a 124. lépés törli az összes LED-et, majd a program visszatér az la. és lb. ábrán látható Do Test főszubrutinhoz.
A továbbiakban a találmány működését ismertetjük a 10. ábra alapján, majd a fentiekben leírt önteszt végrehajtásához használt egyes áramköröket írjuk le, azután pedig a leírt műveleteket végrehajtó szoftvert.
A 10. ábrán a 10 távfenntartó egység áramkörének tömbvázlata látható. A 10 távfenntartó egység egy olyan cellás vagy celláshoz hasonló illesztőrendszerben helyezkedik el, mint amilyet az US 4,658,096 és az US 4,737,975 számú szabadalmi leírások ismertetnek, és úgy van kialakítva, hogy lehetővé teszi az automatikus tesztelési folyamat elindítását egy gombnyomással a telefon-előfizető készülékéről, vagy az automatikus tesztelést körülbelül 12 órás időközökben, az la-9. ábrák szerinti folyamatábráknak megfelelően, a fentiekben részletesen leírt módon. Az önteszt végeredményét a felhasználó számára egy narancsszínű fényjelző (LED) jelzi ki, amely a cellás vagy celláshoz hasonló adapter jobb oldali falán van elhelyezve. A 10 távfenntartó egység a teszt eredményeit egy távoli szolgáltatóközpontnak is jelenti. A jelentés a szolgáltatóközponthoz hozzárendelt szám automatikus hívásával történik. Ez a funkció megköveteli azt, hogy a központ fel legyen szerelve a kommunikációhoz szükséges, illetve a kapott jelentéseket értelmező hardver- és szoftvereszközökkel. A találmány szerinti öndiagnosztizáló teszt a cellás vagy celláshoz hasonló illesztőegység és az ahhoz tartozó komponensek helyes működését ellenőrzi, például az illesztőegység főáramköreit, a rádió és az interfész közötti adatkábelt, az átviteli vonalat, az antennát, a cellás vagy celláshoz hasonló adó-vevőt, a tarifaáramkört és a tápellátást. A távfenntartó áramkör úgy van kialakítva, hogy ahhoz az adó-vevőhöz hozzárendelt számot hívja, ahol a tesztelés történik. Az öndiagnosztizáló áramkör úgy detektál egy foglaltsági vagy vonaltorlódási jelet, mint annak a jelzését, hogy hívást lehet végrehajtani, és hogy az átviteli áramkör megfelelően működik.
A 10 távfenntartó egység cellás vagy celláshoz hasonló illesztőegységben alkalmazható annak ellenőrzésére, hogy ez utóbbi megfelelően működik-e; ehhez az ellenőrzéshez nincs szükség szakemberek helyszínre küldésére. A 10 távfenntartó egység ellátását közvetlenül a cellás vagy celláshoz hasonló illesztőegység biztosítja. A távfenntartó egység nem autonóm áramkör. Működése olyan vezérlőjelektől függ, amelyeket a cellás vagy celláshoz hasonló illesztőegységben elhelyezett auditortól kap. Az auditor összehasonlítja a teszt eredményeit a rendszert működtető program paramétereivel. A10 távfenntartó egység öndiagnosztizáló áramköre a következő teszteket végzi el:
HU 219 932 Β
Válaszadási hibák (answering errors) [hibás szám] - ezt a tesztet két alternatív módszerrel hajtjuk végre; csengetési feszültség (ring voltage) - az áramkör hívást generál, és detektálja az illesztőegység által előállított csengetési feszültség jelenlétét; hívott válaszol (call answer) - azt ellenőrzi, hogy a csengetés a válaszkor megszűnik-e; tárcsahang (diai tone) - a tárcsahang jelenlétét ellenőrzi; MFTD működés (MFTD operation) - azt vizsgálja, hogy az illesztőegység megfelelően detektálja-e az MFTD [multifrequency tone detector/sokfrekvenciás hangdetektor] hangok vételét; adó-vevő teszt; vételi áramkör tesztje; átviteli áramkör tesztje; tarifaáramkor tesztje - a 12 kHz-es impulzusok frekvenciakarakterisztikáját ellenőrzi; az adó-vevő tápfeszültsége; a tápegység teljesítménye. Ezeket a teszteket részletesen leírtuk a fentiekben az la-9. ábrákon látható folyamatábrákkal kapcsolatban.
A 10 távfenntartó egység egy húszpólusú dugóval csatlakozik az általánosan használt cellás vagy celláshoz hasonló illesztőegységhez. A tesztet az illesztőegység házának jobb oldalán elhelyezett kézi kapcsoló működtetésével kezdeményezzük. Ha valamilyen rendellenességet találunk a telefon működésében, például nem hallható tárcsahang a kézibeszélő felemelésekor, az előfizető megnyomja az illesztőegység házán a teszt nyomógombját. A 10 távfenntartó egység megszünteti az előfizetői telefonkészülék kapcsolatát a cellás vagy celláshoz hasonló illesztőegységgel, és végrehajtja a fentiekben leírt öndiagnosztizáló tesztek sorozatát. A 10 távfenntartó egység úgy van programozva, hogy automatikusan kezdeményezi a tesztet körülbelül 12 órás időközökben attól kezdve, hogy a cellás vagy celláshoz hasonló illesztőegységet bekapcsoltuk. A teszt automatikus kezdeményezése esetén kimenő teszthívást nem generálunk. Az öndiagnosztizáló teszt indítása egy távoli központból is kezdeményezhető. Ez a távfenntartó funkció az illesztőegységet működtető szoftver, illetve a távfenntartó központ hardverének és szoftverének módosításával jár. Az öntesztelő rutin kezdeményezése után a narancsszínű fényjelző (LED) kigyulladása jelzi az előfizetőnek, hogy a teszt folyamatban van. A jelzőfényben körülbelül egy másodperces szünetek vannak az áramkör által végrehajtott egyes tesztek között. A teljes teszt körülbelül 40 másodpercig tart. A teszt befejezése után a teszt sikerét az jelzi, hogy a fényjelző bekapcsolva marad. Ebben az esetben a fennálló probléma a vezetékekkel vagy a cellás vagy celláshoz hasonló illesztőegységhez csatlakozó telefonkészülékkel kapcsolatos. Ha a fényjelző továbbra is folyamatosan világít, a cellás vagy celláshoz hasonló illesztőegység visszatér normál működéséhez. Ha a teszt a cellás vagy celláshoz hasonló illesztőegység hibáját állapítja meg, a fényjelző bizonytalanul kialszik. Ez azt jelzi a felhasználónak, hogy a hiba a cellás vagy celláshoz hasonló illesztőegységben van. A tesztelőrutin befejezése után a cellás vagy celláshoz hasonló illesztőegység visszatér normál működéséhez függetlenül attól, hogy milyen hibát detektáltunk. A felhasználó - az észlelt hibából adódó korlátozással - továbbra is használhatja az illesztőegységet.
A cellás vagy celláshoz hasonló illesztőegység áramkörében a négylámpás kijelzőt (LED) az észlelt hiba azonosítására használjuk. Ez segíti a hibát elhárító technikust a lehetséges hiba meghatározásában. A LED-ek „be” és „ki” állapotainak kombinációi azonosítják a tesztben detektált főhibát. Ez a kombináció a teszt befejezése után 60 másodpercig világít. A cellás vagy celláshoz hasonló illesztőegység LED-jei által jelzett lehetséges hibakódok listáját a továbbiakban megadjuk.
Az önteszt befejezésekor hívást kezdeményezünk a távfenntartó központ felé, ha hibát észleltünk. A kapcsolat létrehozása után jelentjük az észlelt hibát. Ez a távfenntartó funkció lehetővé teszi, hogy mindegyik egységhez egy adatbázist hozzunk létre. Ha a tesztet a nyomógomb segítségével manuálisan kezdeményeztük, a befejezett teszt teljes eredményét - függetlenül attól, hogy észleltünk-e hibát - jelentjük a távfenntartó központnak.
A LED-elrendezéssel kijelzett kódok listája a következő:
4.10 Hibakód (ERROR CODE)
Hibatípus 5. LED 4. LED 3. LED 2. LED
nincs hiba ki ki ki ki
hurokhiba ki ki ki be
hurokhiba ki ki be ki
tárcsahang ki ki be be
MFTD detektor ki be ki ki
csengődetektor ki be be be
hívott válaszol ki be be ki
adó-vevő táp ki be be be
adó (hívás) be ki ki be
vevő (foglalt) be ki ki ki
hangdetektálás 12 kHz-en be ki be be
táplálás a forrásról be ki be ki
„NO SERVICE” be be be be
adóáramkör be be be ki
meghatározatlan be be ki be
meghatározatlan be be ki ki
Az önteszt sorrendje a következő. A távfenntartó áramkör az első művelettel az előfizető berendezését kapcsolja le. Ezután a híváskezdeményezésre adott válasz (answer the subscriber’s telephoné) szimulálása következik. Ekkor a hurok záródásának megfelelő detektálását ellenőrizzük, tehát a tárcsahang előállítását. Ezután a tárcsahang megfelelő generálásának ellenőrzése következik egy minimális frekvencia- és szinttartományban. A következő lépésben a sokfrekvenciás hangdetektor (MFTD) tesztelése kezdődik. Ennek során a távfenntartó egység öndiagnosztizáló kártyája előállítja a tizenhat MFTD hang teljes sorozatát, ezt kiküldi a hagyományos cellás vagy celláshoz hasonló interfészkártyára az illesztőegységben, és ellenőrzi, hogy megfe9
HU 219 932 Β lelő-e ezeknek a hangoknak a detektálása. Ezután a csengetőgenerátor helyes működését ellenőrző teszt következik. Előállítjuk a csengetőáramot, ellenőrizzük annak frekvenciáját és szintjét egy meghatározott minimális tartományon belül. Ezt követően újra a hívásra adott választ szimuláljuk a csengetőáramkör működésének ellenőrzéséhez, amely áramkörnek dezaktiválódnia kell a válasz előtt. A következő teszt azt vizsgálja, hogy a tarifaáramkor képes-e 12 kHz-es impulzusok előállítására egy minimális frekvencia- és szinttartományban a cellás vagy celláshoz hasonló illesztőegységgel rendelkező fizetőtelefonok esetén. A tarifakártya által generált impulzusokat egy pontos impulzusdetektor detektálja a 10 távfenntartó egységben a jól ismert módon. Tarifamodullal nem rendelkező cellás vagy celláshoz hasonló illesztőrendszereknél a cellás vagy celláshoz hasonló illesztőegység csatlakozójában egy hidat eltávolítunk, míg tarifamodullal ellátott egységeknél a hidat behelyezzük.
A következő tesztek a cellás vagy celláshoz hasonló adó-vevő működését ellenőrzik. Először az adó-vevő tápellátásának ellenőrzése történik meg. Ezt a tesztet az adó-vevő adatcsatlakozójából származó +12 V-os egyenfeszültség detektálásával végezzük. Másodszor az adó-vevőt ellenőrizzük, hogy cellás vagy celláshoz hasonló hozzáférésre alkalmas állapotban van-e, amit az jelez, hogy nincs jelen a „NO SERVICE” jel. A „NO SERVICE” jel jelenléte hibát jelez. Ezt az állapotot lefedési hiba is okozhatja, és nem csak a cellás vagy celláshoz hasonló adó-vevő hibája. Ezután egy hívást generálunk a cellás vagy celláshoz hasonló hálózaton keresztül az előfizető hívószámára. Az adó-vevő működését úgy ellenőrizzük, hogy detektáljuk, amint az adóvevő foglaltsági jelet vesz a rendszerről, mivel önmagát hívja. Ha a hálózat torlódás miatt blokkolva van, az adó-vevő „PATH ENGAGED” jelzést kap. Az adó-vevő ekkor egy torlódási (foglaltsági) hangot generál. Ezt a hangot úgy értelmezzük, hogy az adó-vevő megfelelően működik, tehát ugyanúgy értelmezzük, mint a foglaltsági jelzést. Ezt a tesztet csak akkor hajtjuk végre, ha a rutint manuálisan indítottuk a nyomógombbal. Erre a tesztre nem kerül sor azokban az egységekben, amelyek automatikusan kezdeményezik a folyamatot. A tápfeszültséget szinten ellenőrizzük. Ha az egyenfeszültség kisebb 13,5 V-nál, akkor hibás a tápforrás.
A 10. ábrán a fő 10 távfenntartó egység a szabványos cellás vagy celláshoz hasonló 14 illesztőegységhez és a 12 csatlakozóegységgel a telefonvezeték T és R vezetékágaihoz (TIP&RING) csatlakozik. A 10 távfenntartó egységben több önálló áramkör van elhelyezve a fentiekben leírt öndiagnosztizáló tesztek végrehajtásához. Ezek az áramkörök a következők: a 16 foglaltságijel-detektor, amelyet a teszt folyamán a távfenntartó egység által kezdeményezett hívás megfelelő vételére használunk a 7a. ábrával kapcsolatban leírt visszahívási öntesztnél; a 12 000 Hz-es 18 detektor, amelyet a tarifálás tesztelésére használunk, és amely ellenőrzi a 12 kHz-es impulzusok frekvenciakarakterisztikáját; a 20 MFTD generátor, amely a cellás vagy celláshoz hasonló illesztőegység által átalakított DTMF jeleket generálja, ahogy a fentiekben a 4. ábrával kapcsolatban leírtuk; a 22 csengetőjel-detektor, amelyet a cellás vagy celláshoz hasonló 14 illesztőegység által előállított csengetőjel detektálására használunk a csengőteszt és a csengőválasz-szubrutinok folyamán, ahogy a fentiekben az 5a-6. ábrákkal kapcsolatban leírtuk; a 24 tárcsahangdetektor, amely azt detektálja, hogy a cellás vagy celláshoz hasonló 14 illesztőegység megfelelően generálja-e a tárcsahangot, amint a fentiekben a 3. ábrával kapcsolatban leírtuk; a 28 feszültségdetektor, amely az adó-vevő és az egész rendszer tápfeszültségét vizsgálja; és a 30 távfenntartó vezérlőegység, amely ellátja a vezérlőegység funkcióját, és amelyet a központi állomás hívására és az önteszt eredményeinek jelentésére is használunk. A fent említett áramkörök tényleges elrendezése a 11-14. ábrákon látható, amelyeket a továbbiakban részletesen leírunk.
A 11-14. ábrákon azok a hardveráramkörök láthatók, amelyek végrehajtják a fentiekben leírt szimulációs teszteket az egész öntesztelő folyamat során. All. ábrán a 10 távfenntartó egység összekötő-áramköre látható. All. ábra „A” jelű része azt a helyet mutatja, ahol a 10 távfenntartó egység a T és R vezetékágakhoz kapcsolódik. Az Rl relé lekapcsolja az előfizető telefonját a cellás vagy celláshoz hasonló interfészről a fenntartási teszt folyamán. Helyette a távfenntartó áramkör kapcsolódik a T és R vezetékágakhoz a tesztek végrehajtása érdekében. Amikor a tesztelést engedélyező ET (ENABLE-TEST) vezetékre magas szintű jelet adunk, a Q3 tranzisztor telítésbe kerül, gerjeszti az Rl jelfogót, amely a fenntartó áramkört a T és R vezetékágakhoz kapcsolja. All. ábra „B” jelű része a felhasználó telefonjának csatlakozóját mutatja. Az ábrázolt példában a felhasználó telefonja két módon kapcsolható a kártyához; ezek egyike a normál telefon-csatlakozóaljzat kétpólusú J1 csatlakozója.
All. ábra „C” jelű része az audiointerfész, amelyet a T és R vezetékágak és az audiorész közötti illesztésre használunk. A TI telefonillesztő transzformátor biztosítja a telefon megfelelő AC és DC karakterisztikáit, miközben lehetővé teszi az audiojelek vételét és adását. A Dl és D2 Zener-dióda levágja a +/- 4,5 V-nál nagyobb feszültségű jeleket. Ez a rész egy SSR1 optoizolátort is tartalmaz, amely a Q4 tranzisztorral együtt lehetőséget ad a T és R vezetékágak zárására. Amikor a CL (Conn-Loop) vezetékre magas szintű jelet adunk, a Q4 tranzisztor telítésbe kerül, ami gerjeszti az SSR1 optoizolátort, amely zárja az áramkört, és off-hook állapotot állít elő.
All. ábra „D” jelű része egy csengődetektáló áramkör, amely két főrészből áll: az integrált U2 csengődetektorból, és a megfelelő CMOS jelszintű kimenetet szolgáltató U9 optoizolátorból. Az U2 csengődetektor 4-es és 7-es csatlakozója közötti áram egy kimenőjelet képez, amikor a csengetőfeszültség jelen van a T és R vezetékágakon. Ezt az áramot ezután az U9 optoizolátor transzformálja, és egy aktív alacsony szintű jelet ad a ki- és bemenetre.
A 11. ábra „E” jelű része a hurokáram-detektor, amely egy U17 optoizolátort tartalmaz a detektált hu10
HU 219 932 Β rokáram számára. Ha a teszt engedélyezve van (az ET vezetéken magas szintű jel van az „A” részben) és offhook állapot áll fenn (a CL vezetéken magas szintű jel van a „C” részben), a T és R vezetékágak zárt áramkört alkotva off-hook áramot szolgáltatnak. Ezt az áramot az U17 optoizolátor egy aktív alacsony szintű jellé transzformálja a be- és kimenet számára.
All. ábra „F” jelű része a bemeneti-kimeneti audioáramkör, amely az U1 műveleti erősítő IC 1/4-éből áll. Ennek az áramkörnek a főfunkciója a bejövő audiojelek elválasztása és előerősítése. Az áramkör kimenete az AI (AUDIO IN) vezeték. Ez a rész küldi a találmány szerinti távfenntartó áramkör által generált DTMF kimenetet a T és R vezetékágakra. Ez a DTMF jel a TO (TONE OUT) vezetéken jelenik meg.
A 12. ábra „G” része a DTMF hanggenerátor, amely az U4 DTMF hanggenerátorból és a kimeneti erősítőként használt U1 műveleti erősítő 1/4-éből áll. Egy DTMF hang előállításához először egy négybites kódot adunk az U4 DTMF hanggenerátor bemeneti DTMFO, DTMF1, DTMF2 és DTMF4 kapcsaira. Ezután a négybites kódot tartva az engedélyezőjelet alacsony szintről magas szintre változtatjuk, ami lehetővé teszi a hang generálását. A hang az U1 műveleti erősítővel történt erősítés után a TO vezetékre kerül. A hang megszüntetéséhez az engedélyezőjelet ismét alacsony szintre állítjuk.
A 12. ábra „H” része a bemeneti/kimeneti kapu, amely az U8 I/O Port IC-t tartalmazza. Ezt az integrált áramkört a cellás vagy celláshoz hasonló illesztőegység mikrokontrollere a bemeneti adatok olvasására és a távfenntartó egység összes kimenetének vezérlésére használja. A J4 jumperrel választható ki a 12 vagy 24 órás tesztelési periódus automatikus teszt esetén. A J5 jumperrel engedélyezhető az automatikus válasz (automatic answer) hívása.
A 12. ábra „1.1” és „1.2” részei a tápfeszültség-, adatés vezérlőcsatlakozók. Az 1.1 rész tartalmazza a 2x10 pólusú J2 csatlakozódugót, amelyet a tápfeszültség bevezetésére, valamint adatoknak az I/O portra küldésére és onnan történő fogadására használunk. Az 1.2 rész egy négypólusú csatlakozót tartalmaz a külső LED számára, amely a teszt státusát mutatja, és egy külső nyomógombot a teszt manuális indításához. A 12. ábra ,J” része a tápfeszültség-szabályozó, amely az 5 V-os stabilizált, pozitív feszültséget előállító U7 szabályozót tartalmazza, amely a digitális áramkörök számára szükséges feszültséget szolgáltatja.
A 10 távfenntartó egység hat egyhang-detektort tartalmaz (12-14. ábrák, K, L, Μ, N, Ο, P részek), amelyeket a vételi hangút tesztelésére, a frekvencia és az ROH, tárcsa-, foglaltsági és torlódási hangok időzítésére használunk. Mindegyik hangdetektor egy UK, UL, UM, UN, UP műveleti erősítőből és egy U3, U6, U14, U13, U16, U12 egyhang-detektort alkotó IC-ből áll. Az UK, UL, UM, UN, UP műveleti erősítők bemenete az AI vezetékre van kapcsolva. A detektálás frekvenciáját az U3, U6, U14, U13, U16, U12 egyhang-detektorok és 6 kapcsai között elhelyezett ellenállás, valamint a kapocs és a föld között elhelyezett kondenzátor határozza meg. Ha egy érvényes hang megfelel az RC taggal programozott hangnak, a hangdetektor kimeneti kapcsa magasról alacsony szintre kerül.
A 12. ábra „K” része a tárcsahangdetektor áramköre. Ha egy érvényes tárcsahang van jelen az U3 egyhang-detektor bemenetén, a DD (DIAL-DETECT) vezeték alacsony szintre kerül. Az „L” rész a foglaltsági hang detektorának áramkörét mutatja. Ha egy érvényes foglaltsági hang van jelen az U6 egyhang-detektor bemenetén, a BD (BUSY-DETECT) vezeték alacsony szintre kerül.
A 13. ábra „M” része egy 400 Hz-es hangdetektor-áramkör. Ha egy érvényes 400 Hz-es hang van jelen az U14 egyhang-detektor bemenetén, a 400-D (400-DETECT) vezeték alacsony szintre kerül.
A 14. ábra „N” része egy 800 Hz-es hangdetektor-áramkör. Ha egy érvényes 800 Hz-es hang van jelen az U13 egyhang-detektor bemenetén, a 800-D (800-DETECT) vezeték alacsony szintre kerül. Az „O” rész egy 1020 Hz-es hangdetektor-áramkör. Ha egy érvényes 1020 Hz-es hang van jelen az U16 egyhangdetektor bemenetén, az 1020-D (1020-DETECT) vezeték alacsony szintre kerül. A „P” rész egy 12 kHz-es hangdetektor-áramkör. Ha egy érvényes 12 kHz-es hang van jelen az U12 egyhang-detektor bemenetén, a kHz-D (12 kHz-DETECT) vezeték alacsony szintre kerül.
A 13. ábra „Q” része egy DTMF hangdekóder, amely az Ull DTMF hangdetektorból és a bemeneti előerősítőként használt U1 műveleti erősítő 1/4-éből áll. Ha egy érvényes DTMF hang van jelen a bemenetén, a vezérlővezeték alacsony szintre kerül, amíg az IC a dekódolást végzi. A hang dekódolása után egy négybites kód kerül az Ull DTMF hangdetektor DTMFO, DTMF1, DTMF2 és DTMF4 kapcsaira. A vezérlővezeték ezután visszatér a magas szintre. Az „R” rész egy AC monitor, amely a feszültség 4,5 V alá csökkenését érzékelő U10 feszültségdetektort tartalmazza. Az R17 és R33 ellenállások feszültségosztót alkotnak, amellyel az U10 feszültségdetektor küszöbértéke 4,5 V helyett
V-ra állítható. Az áramkör annak feltételezésével működik, hogy ha a tápfeszültség a tápforrásról érkezik,
V van jelen a távfenntartó egység bemenetén. AC kiesés esetén a feszültség a háttértelep szintjére esik, amely nem nagyobb 13 V-nál. Az áramkör érzékeli a feszültségesést, és az U10 feszültségdetektor az AC-D (AC-DETECT) vezetéket alacsony szintre állítja.
A 15-19. ábrák közül a 15-17. ábrák olyan folyamatábrák, amelyeket az öndiagnosztizáló tesztek eredményeinek jelentésére használunk a távoli távfenntartó központ számára, míg a 19. ábrán látható folyamatábra az öndiagnosztizáló tesztnek a távfenntartó központ általi kezdeményezését mutatja be.
A 15. ábra szerinti folyamat felül a 200 blokkal kezdődik, amely a távfenntartó központ hívórutinjának kezdőpontja. Az 1. lépésben (202 blokk) 3-ra állítjuk be annak a változónak az értékét, amely az átviteli kísérletek számát határozza meg. Ez az érték megadja azt, hogy hányszor küldünk el egy adást a távfenntartó központnak, mielőtt abbahagynánk a sikertelen hívást. A 2. lépésben (204 blokk) töröljük a „befejezetlen hívás” bitet.
HU 219 932 Β
Ez minden korábbi függő hívást töröl, feltételezve, hogy egy korábbi hívás folyamatban volt, de nem fejeződött be, és beállított egy visszahívásjelzőt (call-back flag). A 3. lépésben (206 blokk) a távfenntartó központ hívása előtt a rendszer szolgáltatási jelzőjét (service flag) vizsgáljuk. Ha NO-SERVICE állapot áll fenn, a hívás megszakad, és megjelenik a call-back jelző. A 4. lépésben (208 blokk) a távfenntartó központ telefonszámát újrahívjuk az adó-vevő memóriájából. Az 5. lépésben (210 blokk) a program utasítja a rádiót a hívásra. A 16. ábrán a 8. lépésben (212 blokk) egy számlálót/időzítőt állítunk be arra a maximális időre (timeout), amíg a program vár a hívás ejtése előtt, ha adási/vételi hiba fordul elő a távfenntartó központ felől. A 10. lépésben (216 blokk) a NO-SERVICE és az IN USE jelzőket teszteljük annak megállapítására, hogy a hívás ejtése megtörtént-e. Ha ez megtörtént, a program átadja a végrehajtást a 15. ábra 6. lépésének (211 blokk). All. lépésben (218 blokk), és jel vétele után a vételi hangcsatornán, a vett jelet vizsgáljuk, hogy tartalmaz-e speciális ütemeket, például foglalt (BUSY) jelet, majd a hívást megszakítjuk, és átadjuk a végrehajtást a 7. lépésnek a. kilépési rutin (EXIT ROUTINE) számára (15. ábra). A 12. lépésben (220 blokk), és jel vétele után a vételi hangcsatornán, a vett jelet vizsgáljuk annak megállapítására, hogy jelen van-e csengetőhang (RINGBACK). Ha RINGBACK jelet detektálunk, a program átadja a végrehajtást a 9. lépésnek (214 blokk) annak vizsgálatára, hogy eltelt-e az egyperces időzítés/időtúllépés (timeout) az EXIT ROUTINE megkezdése előtt. A 13. lépésben (222 blokk) azt vizsgáljuk, hogy a jelben jelen van-e egy 1020 Hz-es hang. Ha a hang legalább 100 ms-ig jelen van, a program átadja a végrehajtást a 17. ábra 14. lépésének, az üzenetküldő rutin elindításához. A 14. lépésben (224 blokk, 17. ábra) az átvitelek számát megadó visszaszámlálási változó értékét 3-ra állítjuk. Az ezt tartalmazó számláló határozza meg a távfenntartó központ felé végzett újbóli adások maximális számát. A 15. lépésben (226 blokk) a program a távfenntartó központnak továbbítja az üzenetet. A 16. lépésben (228 blokk) egy 10 másodperces időtúllépési (timeout) számlálót 0-ra állítunk. Ez a számláló határozza meg, hogy a program 10 másodpercet fog várni a távfenntartó központból érkező nyugtázóhangra (1020 Hz). Ha ezt a hangot nem vesszük 10 másodpercen belül (16. lépés, 232 blokk), a program a 19. lépéssel folytatódik. A 19. lépésben (234 blokk) az adási számláló értéke (amit kezdetben 3-ra állítottunk) csökken. A 20. lépésben (236 blokk) a számláló értékét 0-val hasonlítjuk össze. Ha a számláló értéke 0, beállítjuk a call-back jelzőt, és ezután a program átadja a végrehajtást a 7. lépésnek az EXIT ROUTINE számára. A 17. lépésben (230 blokk), ha az üzenet adása után egy 1020 Hz-es hangot veszünk a távfenntartó központból, ami az üze$nopi nosb db noge nomo nopr ep $nolist $include (reg252.pdf) $list net vételét nyugtázza, a call-back jelzőt töröljük, sikeresen befejezve a hívást.
A 18. ábrán látható folyamatábra a találmány szerinti rendszer működését mutatja abban az esetben, amikor az öndiagnosztizáló tesztet a távoli távfenntartó központ kezdeményezi. A 23. lépés (240 blokk) azt jelzi, hogy a rádió megszakításfeldolgozó rutin (Rádió Interrupt Processing Routine) az alábbiakban leírttól eltérő tászkokat végez. Ezek a tászkok az interfész alapfünkcióival vannak társítva. A 24. lépésben (242 blokk) egy üzenet vége bitet vizsgálunk. Ha nem vettünk üzenetet, a program átadja a végrehajtást a 29. lépésnek (244 blokk), amely a megszakítást kiszolgálórutint hajtja végre. A 25. lépésben (246 blokk) a rádió bejövő adatbájtját összehasonlítjuk a távfelügyelő tesztet aktiváló kóddal, amelyet a távfenntartó központ küld a rendszeren keresztül. A távfelügyelő tesztet aktiváló kódnak a távfenntartó központból történő vétele után a program végrehajtja a 26. lépést (248 blokk), ahol egy jelzőt állítunk be a callback változóra annak jelzésére, hogy a távfenntartó központ kezdeményezte a tesztet. A 27. lépésben (250 blokk) a testenable jelzőt állítjuk be a teszt folyamatának engedélyezéséhez. A 28. lépésben (252 blokk) a teszteredményekhez társított változókat kezdeti állapotba állítjuk az öndiagnosztizáló teszt elindítása előtt.
A 19. ábrán a HOOKCHK rutin látható, amely a státusjelzőket ellenőrzi. A 30. lépés (260 blokk) visszaállítja (RÉSÉT) a watchdog időzítőt a CPU resetálásának megelőzésére. A 31. lépésben (262 blokk) a test enable jelzőt vizsgáljuk. Ha a test enable jelző értéke 1, az azt jelenti, hogy a teszt engedélyezve van (az érték beállítása manuálisan, időzítővel automatikusan vagy távfelügyelet útján történhet), és a program elágazik a 34. (DOTEST) lépéshez (264 blokk). A DO-TEST folyamat végrehajtása után a program visszatér a HOOKCHK hurokhoz. A 32. lépésben (266 blokk) az OFFHOOK jelzőt vizsgáljuk. Ha az OFFHOOK jelző értéke 1, az azt jelenti, hogy a kézibeszélőt felemelték, és a program elágazik az OFFHOOK folyamathoz (35. lépés, 268 blokk). Az OFFHOOK folyamat végrehajtása után a program visszatér a HOOKCHK hurokhoz. A 33. lépésben (270 blokk) a FANSWER jelzőt teszteljük. Ha a FANSWER jelző be van állítva, ami azt jelenti, hogy egy bejövő hívást vettünk, és hogy a telefon OFFHOOK állapotban van, a program elágazik a RINGANSWER folyamatra (36. lépés, 272 blokk). A RING ANSWER folyamatból való kilépés után a program visszatér a HOOKCHK hurokra.
A továbbiakban megadjuk a forráskódot a találmány szerinti öndiagnosztizálás végrehajtásához, az öndiagnosztizáló teszt eredményeinek jelentéséhez a távfenntartó központnak, valamint az öndiagnosztizáló teszt megindításához a távfenntartó központ által.
HU 219 932 Β
Maxjack by Alexis V. Torres fór Telular International, Inc.
(C) Copyright Telular International, Inc. 1993-1995 Telephone/cellular interface: Main program with the maintenance board 11-29-92 maint.asm.
;Ezek az univerzális földi telefonbillentyű-kódok,
nulla equ Oah ;[0] billentyűkód
csillag equ Obh ;[*] billentyűkód
pound equ Och ;[#] billentyűkód
;Pufferterület-mutatók a HS displayhez és a TRU üzenetekhez.
dspbufstart equ 80h ;16 bájtos LCD displaypuffer start
dspbufend equ 90h ;LCD displaypuffer vége
msgbufstart equ 90h ;TRU (stb.) msg puffer start
msgbufend equ Oh ;TRU msg puffer vége
mainflag equ ObOh jindirekt cím használata a tesztjelzóhöz
jhookslic 1
jdial 2
;dtmf 3
jringtest 4
janstest 5
mainflagerror equ Oblh
jhookslicerror 1 ;villaérintkező-hiba
jhookringerror 2 ;villaérintkező-hiba
jdialerror 3 jtárcsahanghiba
jdtmferror 4 jdtmf hiba
jringtesterror 5 jcsengőhiba
janstesterror 6 ;csengőválasz-hiba
mainl flag equ 0b2h jugyanaz
jpowerradio 1 ;rádiótápfeszültség-hiba
jcalltest 2 jhívási hiba
jcalltone 3 jhívási hanghiba
mainlflagerror equ 0b3h jugyanaz
jpowerradioerror 1 jscare
jcalltesterror 2 jcall spare error
jcalltoneerror 3 jcall audio spare error
jinuse 4 jinuse error
;1000 Hz 5 ;1000 Hz error
errorcode equ 0b4h utolsó kijelzés LED-kijelzés
jhookslicerror 1 jvillaérintkező
jhookringerror 2 jvillaérintkező
jdialerror 3 jtárcsa
jdtmferror 4 jdtmf
jringtesterror 5 jcsengő
;ans_test_error 6 jcsengőválasz
jpowerradioerror 7 jrádió-tápfeszültség
;call_test_error 8 jhívás
jcalltoneerror 9 jhívási hang
jinuse 10 jinuse
jlOOOHz 11 ;1000 Hz
HU 219 932 Β
cero equ OOh
unó equ 08h
dós equ 04h
trés equ Och
cuatro equ 02h
cinco equ Oah
seis equ 06h
siete equ Oeh
ocho equ Olh
nueve equ 09h
estrella equ Odh
libra equ 03h
Belső Ram változó definíciók ;00h-07h bájtokat elfoglaló regiszterek (reg. bank 0) ;r0 tárolási mutató (címmutató is az I/O expanderhez) ;rl mutató a TRU-ból származó adatok tárolásához ;r2 számjegyek száma ;r3 késleltetési hurok a buszidőzítőhöz ;r4 késleltetési hurok a buszidőzítőhöz ;r5 rohtone időzítőben használjuk ;r6 send_time-ban használjuk ;r7 rohtone időzítőben használjuk ;Változó tárolási helyek
timeoffl data lOh ;off-hook idő mérése
time_off2 data llh ;off-hook idő mérése
timeofB data 12h ;off-hook idő mérése
timeonl data 13h ;on-hook idő mérése
time_on2 data 14h ;on-hook idő mérése
pulsedigit data 15h impulzussal tárcsázott számjegy értéke
inuseofftimer data 16h ;cpd-hez 2 s-os vizsgálat a használatot jelző lámpa kialvása után
ringtimer data 17h időzítő a csengetések közötti időt vizsgálja
belltimer data 18h időzítő 20 Hz-et generál a csengőnek
bell_timer2 data 19h ;csengőidőzítő
gndstarttimerl data lah jelengedi a GS vezetéket, ha 1 s-on belül nincs kapcsolat
gndstart_timer2 data lbh jugyanaz, mint fent
;highpoint data lch ;dph-t tárolja a hangtáblázatokhoz
; lowpoint data ldh ;dpl-t tárolja a hangtáblázatokhoz
highpoint data 35h ;dph-t tárolja a hangtáblázatokhoz
lowpoint data 36h ;dpl-t tárolja a hangtáblázatokhoz
testmin data leh
;ffee data lfh
A 20h-tól 29h Ram területet fenntartjuk a főmodul számára vagy adatbájtokként vagy egyedi bitekként
flags DATA 20h ;ez a bájt a következő jelzőket tartalmazza egyedileg címezhető bitekként
fhook bit OOh ;off-hook jelző beállítása, a feldolgozásnál törlődik
fsend bit Olh jküldési jelző
fflash bit 02h jvilágítási jelző
fhang bit 03h ;„kézibeszélő letétele” jelző
ftime bit 04h ;40 s-os időzítőjelző
HU 219 932 Β
fdigit bit 05h
fonhook bit 06h
fdtmfin bit 07h
inds DATA 21h
roam bit 08h
noserv bit 09h
lock bit Oah
rdis bit Obh
hóm bit Och
finit bit Odh
fstart bit Oeh
testenable bit Ofh
indasc DATA 22h
inuse bit lOh
api bit llh
ap2 bit 12h
testend bit 12h
jnoterror bit 14h
retumring bit 15h
errorflag bit 16h
ringsecond bit 17h
iostatus DATA 23h
strobe bit lch
flags2 DATA 24h
fdigready bit 20h
fanswer bit 21h
fsendtimer bit 22h
finuseofiftiming bit 23h
funlocktimer bit 24h
fdtone bit 25h
fdecoderbusy bit 26h
fbellsound bit 27h
pxltemp DATA 25h
mitelql bit 28h
mitelq2 bit 29h
mitelq3 bit 2ah
mitelq4 bit 2bh
powerhold bit 2ch
sparel bit 2dh
spare2 bit 2eh
noring bit 2fh
px2_temp DATA 26h
loopswitch_ bit 30h
ring_ bit 31h
mute_ bit 32h
rohboost bit 33h
swsendtimer bit 34h
sw dialtone bit 35h
jelzőimpulzus bemenethez ;on hook jelző beállítása 700 ms-mal a, kézibeszélő visszahelye zése után, a következő off-hook törli ;dtmf bemeneti jelző jndikátorok - ez a bájt a következő biteket tartalmazza:
;roam indikátor ;no service indikátor ;lock indikátor ;reset digit display ;hom indikátor ;csak a TRU-val állítható (1=inicializálások megtörténtek) ;1 =onhook inicializálások tiltva 500 ms-ra jönteszt az első offhook után az érintkezőpergés kizárására jndikátorok és audiokapcsolóvezérlés, ez a bájt a következő biteket tartalmazza:
jnuse indikátor ;hangút ;hangút ;nincs hibajelző az önteszthez ;önteszthiba ;18h-lfh bitek ;20h-27h bitek ;számjegy kész jelző ;csengőválaszjelző jelző 4 s utáni elküldéshez jelző mutatja, hogy az időzítő 2 s-ot méri kikapcsolt inuse lámpa mellett jelző 4 s utáni feloldásra jbekapcsolt DT-t mutató jelző ;még nem törölt dtmf dekódert mutató jelző ;”működő csengő” jelzők ;I/O puffer a pxl porthoz - a következő biteket tartalmazza:
;dtmf dekóderből ;dtmf dekóderből ;dtmf dekóderből ;dtmf dekóderből ;tápfeszültséghiba után tápfeszültség fenntartása TRU kikapcsolásához ;spare I/O kapocs ;spare I/O kapocs ;spare I/O kapocs ;I/O puffer px2 porthoz (30h-37h) ;alacsony szint zárja a hurkot jalacsony szint bekapcsolja a csengőt (ps) ;rx audionémítás ;roh hang erősítésének növelése jumper be, 4 s-t ad az elküldéshez jumper be=tárcsahang roam out fenntartó modulhoz
HU 219 932 Β
swgndstart bit 36h ;IN=hurok start, OUT=föld start
swdata bit 37h Jumper be megakadályozza, ki engedélyezi a digit. adatokat TRU-nak elküldés után (jellemzők engedélyezése cell. kapcsolóról)
lamps temp DATA 27h ;a következő biteket tartalmazza:
;ffee bit 38h ;nem lámpák - ezek tárolják az indikátorok pillanatnyi státusát
;ffee bit 39h
;free bit 3ah
;free bit 3bh
roamlamp bit 3ch
noservlamp bit 3dh
locklamp bit 3eh
inuselamp bit 3fh
flags3 DATA 28h ;több jelző - ez a bájt a következő önállóan címezhető biteket tartalmazza:
ffohtimeout bit 40h jbeállítva, ha rohtone 1 perce bekapcsolva
fcall bit 41h ;beállítva, ha bejövő hívás van, ha nincs, törölve
fonesec bit 42h ;beállítva, ha 1 másodperce off-hook jelzés, így az inuse lámpa változása nem okoz távoli bontást, ha a telefont közvetlenül a helyi bontás után veszik fel
rohon bit 43h ;a roh hangot: be- és kikapcsolja
fspecl bit 44h Jelző speciális használathoz specifikus TRU-val, feldolgozva a display-ek frissítésénél 71,1 ms-onként, calls spéci
fspec2 bit 45h Jelző speciális használathoz specifikus TRU-val, feldolgozva ön- vagy off-hook időzítőkben 277,8 ps-onként, calls spec2
fremotehup bit 46h jtávoli bontást jelez 700 ms késleltetéssel
flocktimer bit 47h Jelző 2 s utáni záráshoz
Implementált TRU tászkok
fcmds DATA 29h ;választható TRU specifikus tászkszámok
;TRU tászkok a főmodulból a TRU modulba történő hívásokhoz.
1. tászk:
a) feszültségveszteség ellenőrzése NEC 3700-nál (1. naeOl)
b) villakapcsoló státusában bekövetkezett változás elküldése OKI-nak, és kezdeti CLR elküldése Motorolának (1. oee02 és mae04)
c) rdbus rutin hívása indikátor státusának kiolvasásához az Audiovox TRU-kban (1. taeOl és tbeOl)
d) csendes riasztási üzemmód monitorozása az Audiovox CTX-3100A-ban, és csendes riasztási üzemmód beállítása, ha szükséges (1. tbeOl)
2. tászk:
a) kettős NAM kapcsolás NEC 3700-hoz (1. naeOl)
3. tászk:
a) feszültségveszteség ellenőrzése NEC 3700-nál (1. naeOl)
b) villakapcsoló státusában bekövetkezett változás elküldése OKI-nak és Motorolának (1. oee02 és mae04)
c) rdbus rutin hívása indikátor státusának kiolvasásához az Audiovox TRU-kban (1. taeOl és tbeOl)
d) csendes riasztási üzemmód monitorozása az Audiovox CTX-3100A-ban, és csendes riasztási üzemmód beállítása, ha szükséges (1. tbeOl)
4. tászk:
a) rdbus rutin hívása indikátor státusának kiolvasásához az Audiovox TRU-kban (1. taeOl és tbeOl)
b) csendes riasztási üzemmód monitorozása az Audiovox CTX-3100A-ban, és csendes riasztási üzemmód beállítása, ha szükséges (1. tbeOl)
HU 219 932 Β
A 2Ah-tól 2dh Ram területet fenntartjuk a TRU modulok számára vagy adatbájtokként vagy egyedi bitváltozókként
;TRU bitsl data 2ah ;50h-57hbit
;TRU bits2 data 2bh ;58h-5fh bit
;TRU bits3 data 2ch ;60h-67hbit
;TRU bits4 data 2dh ;68h-6fh bit
Használat a fenntartókártyához! ellenőrizd a TRU rutint!
io m b data 2eh ;70h-77h bit
tdO bit 70h
tdl bit 71h
td2 bit 72h
td3 bit 73h
dtmf out bit 74h
enable test bit 75h
enable tone bit 76h
enabletonein bit 77h
oi m c data 2fh ;78h-7fh bit
ext led bit 78h
enablespecial bit 79h
enable busy bit 7ah
enable 16h bit 7bh
connloop bit 7ch
További belső (bájt címezhető) ram változók
looptest timer data 30h ;a huroktesztet késlelteti
looptest_timer2 data 31h 2 ms-mal a hurokkapcsoló zárása után a SLIC válaszához
display delay data 32h ;a display frissítését késlelteti 71,1 ms-onként
dsp_ptr data 33h ;kézibeszélő LCD displaypuffer mutató
msg_ptr data 34h ;TRU üzenetpuffer mutató
A következő bájtokat a TRU modulok számára tartjuk fenn kizárólag adatbájtokkénti használatra (nem bit címezhetők)
;TRU byteO data 38h
;TRU bytel data 39h
;TRU byte2 data 3ah
;TRU byte3 data 3bh
;TRU byte4 data 3ch
;TRU byte5 data 3dh
;TRU byteó data 3eh
;TRU byte7 data 3fh
A verem a 40h-5fh bájtokat foglalja el
A tárcsázott számjegyeket a 60h-7fh bájtok tárolják, ami összesen 32 számjegy tárolását teszi lehetővé, beleértve a terminátorként használt SND kódot.
prefíx data 60h ;csak [0] vagy [1] érvényes, egyébként FFh
fírstdigit data 61h ;első három hely a számjegypufferban (segélykérő számok,
seconddigit data 62h hétjegyű szám elején a körzetszám stb.)
tbirddigit data 63h
HU 219 932 Β
8051 porti & port3 bitdefiníciók (valamennyi egységhez)
ioselect bit pl.2
dt_pwm bit pl.4 jtárcsahang pwm
twenty_hz_pwm bit pl.5 ;20 Hz pwm csengőhöz
;power_fail_ bit pl. 6 ;bemenet, 0=tápfeszültséghiba
lc_ bit p3.2 jhurokáram-érzékelés (ExtlntO)
ring ground bit p3.4 ;bemenet: föld a csengővezetéken
jstrobe bit p3.5 jbemenet: számjegy kész a DTMF dekóderről
aO bit pl.6
al bit P3.5
Tápbelépési pont, és megszakításirutin-vektorok:
org OOOOh ;resetvektor
jmp init
org jmp db 0003h offhook edge Offh, Offh, Offh, Offh, Offh ;ExtIntO szervizvektor ;offhook, fény, impulzustárcsajel ;Eprom és emulátor töltés
org jmp Db OOObh onhook timer Offh, Offh, Offh, Offh, Offh jTimerO (tlO) svc vektor ;onhook időtartama
org jmp db 0013h inti service Offh, Offh, Offh, Offh, Offh ;ExtIntl szervizvektor ;általában adatok kiolvasásához a TRU-ból
org jmp db OOlbh offhook timer Offh, Offh, Offh, Offh, Offh ;Timerl (thO) svc vektor ;periodikus időzítő inicializáláshoz
org jmp db 0023h ser_port service Offh, Offh, Offh, Offh, Offh ;soros port svc vektor ;általában adatok kiolvasásához a TRU-ból
org jmp db 002bh timer2 service Offh, Offh, Offh, Offh, Offh ;Timer2/ext2 svc vektor
org jmp 0033h pcaservice ;PCA szervizvektor ;impulzusszélesség-modulátorokhoz
db (c) Copyright Codecom db 1992.
$include(main. msg) $include(tru. msg)
init:
%set(intmask, 0) (általában két megszakítási szint, ha intmask nincs O-tól eltérő értékre állítva a TRU szekcióban (TAE01.ASM: Audiovox)
mov sp,#3fh ;verem 40h-nál indul
clr rsO ;0 regiszterblokk kiválasztása
HU 219 932 Β
clr rsl jugyanaz
mov a,#0 ;ram töltése 0-val
mov fillram: r0,#0 ;első ram-ra mutat
mov @rO,a ;egy időben egy hely
inc rO ;következő helyre mutat
cjne r0,#0,fill ram ;ram végének kitöltése (FFh)
clr pl.2
mov rl, #main flag
mov @rl,#0 ;második jelző olvasása
inc rl
mov @rl,#0
inc rl
mov @rl,#0
inc rl
mov @rl,#0
call resetiom ;fenntartókártya rését
mov io_m_b,#0 ;modul tiltása
call writeiomb
mov io_m_c,#0 ;modul tiltása
call writeiomc
call resetio ;i/o rését kiterjesztve #13-ra
mov p2,#0f8h ;p2 beállítása kapubővítő meghajtásához
mov pxl_temp,#l 1111111b ;inicializálás tápfeszültségtartással együtt
call write_pxl
mov px2_temp,#l 111001 lb ;inicializálás: hurokkapcsoló nyitva, nincs csengetés
call write_px2
call read_px2 ;opciós kapcsolók olvasása
mov tmod,#0000001 lb jtimerO két időzítő, és timeri baudráta gén. lehet
mov ip,#01001010b ;belső prioritások beállítása
mov ie,#l 1001011b jengedélyezés PCA, timerl,timerO, ExtO Tmr/Ext2,SerPort, TRU-val inic.
setb itO ;ExtIntO éltriggerelt
setb itl ;ExtIntl éltriggerelt
mov cmod,#80h ;számláló ki üresjáratban, óra/12
mov ch,#O jnagy terhelés számláló
mov cl,#0 ;kis terhelés számláló
mov ccap01,#0ffli ;alacsony bájt időzítő komparátorhoz
mov ccapOh,#O jmagas bájt időzítő komparátorhoz
mov ccapm0,#049h ;PCA0: szoftveridőzítő
mov ccapml,#0 ;PCA1: (tárcsahang) ki, most
mov ccapm2,#0 ;PCA2 (20 Hz pwm) ki, most
clr tri ;off-hook belső időzítő még nem működik
clr tiO ;on-hook időzítő nem működik
;bájt változók inicializálása
mov timeonl, #0 ;onhook megszakításidőzítők inicializálása
mov time_on2, #0
mcv time_offl,#0 ;offhook megszakításidőzítők inicializálása
mov time_off2,#0
mov time_off3,#0
mov flags,#O jösszes jelző törlése
mov flags2,#0 ;összes jelző törlése
mov flags3,#0 jösszes jelző törlése
HU 219 932 Β
mov inds,#0ffh ;kezdeti értékek
mov indasc,#0ffh ;kezdeti értékek
mov pulse_digit,#O ;0=impulzus számjegy(ek) most nem érhetők el
mov f_cmds,#0 ;0=nincs TRU tászk parancs
;bit változók inicializálása
clr test enable
clr test-end
clr errorflag
clr retumring
setb fonhook ;1 =telefon be, onhook, táp be
clr finit ;0=TRU inits nincs befejezve
clr fcall ;0=még nincs bejövő hívás (ÁLÉRT)
call clrdsp ;kézibeszélő LCD displaypuffer törlése
call clr_ msg ;TRU üzenetpuffer törlése
call specificinits ;TRU specifikus inicializálások
mov ccap41,#0ffh ;watchdog match word alsó bájt
mov ccap4h,#0ffh ;watchdog match word felső bájt
mov ccapm4,#48h ;PCA4: komparátor és megszakítás engedélyezése
orl cmod,#40h ;watchdog időzítő engedélyezése
setb cr ;PCA számláló start
setb trO ;onhook időzítő start
;2,55 s várakozás TRU feléledésére. Tárcsázott számjegyek helyének törlése, azután RO számjegypuffer startra (60h),
és R2 törlése (tárcsázott számjegyek számi.).
timewakeup:
call watchdog
mov a,time on2 ;eltelt idő
cjne a,#255, timewakeup ;itt 2,55 s várakozás TRU feléledésére
mov c,sw_gndstart ;GS-LS jumper vizsgálata, 0=LS 1=GS
mov loopswitch_,c ;save start üzemmód
clr noring
call write_px2
jmp start
$include(tru.asm) ;TRU modul itt, így INTMASK. kiértékelhető (at assembly time)
Start, és új belépési pont bontás után
start:
mov r0,#60h ;számjegypuffer startra mutat
mov a,#Offh ;nem számjegyekkel tölt
clrdigbuf:
mov @rO,a ;egy időben egy hely
inc rO jkövetkező helyre mutat
cjne r0,#80h,clr_digbuf mov mov setb clr setb r0,#60h r2,#0 fstart ieO exO ;7fh-n át ;puffer stratra mutat számjegyek számlálásának inicializálása ;1 = villakapcsoló eng.
;ofíhook töri.
;offhook eng.
;Végtelen hurok, amíg bejövő hívást detektálunk vagy tárcsázáshoz felemeljük a kézibeszélőt
HU 219 932 Β
Hookchk:
call jb mov call jb jnb jmp watchdog testenable, do test f_cmds,#l trucmd fhook,firstl fanswer,hookchk ringanswer ;ha önteszt aktiválva jterhelési parancs ID jtászkl TRU-hoz, ha szüks. ;offhook ;vissza, ha nincs bejövő csengetés jválasz a csengetésre, offhook egy ÁLÉRT (bejövő hívás) állapot folyamán
firstl:
jmp first
dotest:
mov rl,#main flag error
mov @rl,#0 ;hanghiba vagy 1000 Hz
mov rl,#mainl flag error
mov @rl,#0 ;hanghiba vagy 1000 Hz
clr testend
clr errorflag
clr errorflag
mov rl,#main_flag
mov a,@rl ;első jelző olvasása
anl a,#00000001b ;villakapcsoló ellenőrzése
call starthooktest ;hook teszt
testhook:
jb error_flag,rou_error
call diai test ;tárcsateszt
testdiai:
jb error_flag,rou_error
call startdtmf ;dtmf teszt
testdtmf:
jb error_flag,rou_error
call startringtest ;csengőteszt
testring:
jb error_flag,rou_error
call startringanstest ;csengőválaszteszt
test_ring_a:
jb errorflagrouerror
call makecall ;hívási teszt
jb error_flag,rou error
jmp untilfintim jkilépés hibák nélkül
rouerror:
call erroracc ;betöltési hiba változó
jmp waitend
untilfintim:
setb testend
clrtrO
mov time_on2,#0 ;10 ms-onként onhook folyamán
mov time_onl,#0 ;reset a következő 36-hoz
mov test min,#0 ;10 msx255=.255 s
setb trO
waitend:
call watchdog ;1 percig itt maradni
mov a,test min
cjne a,#23, waitend ;.255x236=60.18
call fin_self ;visszatérés normálra
jmp hookchk jvisszatérés normálra
HU 219 932 Β
starthooktest - hook teszt start
start hook test:
mov rl,#main_flag
mov a,@rl
orl a, #00000001b
mov @rl,a
setb enable test
clr connloop
call write io m b
call rését io m
call write io m b
call write io m c
clr loopswitch_
call write_px2
testhup:
setb fremote hup
call hup
mov lamps_temp,#O
call writeioe
mov ró,#10
nőse:
push 6
mov r6,#0ffh
loop_m:
mov r7,#0£fh
djnz r7, $
call watchdog
djnz ró,loop_m
mov r6,#0ffh
loog_ma:
mov r7,#0fíh
djnz r7,$
call watchdog
djnz r6,loop ma
mov r6,#0ffh
loop_mb:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz ró,loop_mb
mov r6,#0ffh
loop mc:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz ró,loop mc
POP 6
djnz ró,nőse
test hup2:
clr fanswer
clr fhook
jnb fhook, nothookdet
jmp hookerror
;fő jelző olvasása ;offhook jelző beállítása ;telefon lekapcsolása ;és modul csatlakoztatása ;fenntartókártya törlése ;másik oldal lekapcsolva ;LED-ek frissítése ;késleltetőmodul ;késleltetőmodul ;késleltetőmodul ;késleltetőmodul jelző törlése ;nincs offhook ofíhook hibát detekt.
HU 219 932 Β nothookdet: joffhook teszt
setbfonhook setb connloop joffhook jelzés az interfésznek
call writeiomc
mov r6,#0ffh ;offhook késleltetés
loopmoff:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loop_m_off
mov r6,#0ffh joffhook késleltetés
loop_m_off2:
mov r7,#0ffh
djnz r7, $
call watchdog
djnz r6,loop m_off2
mov r6,#0ffh joffhook késleltetés
loopmofD:
mov r7,#Offh
djnz r7,$
call watchdog
djnz r6,loop_m_ofiD
mov r6,#0ffh joffhook késleltetés
loop_m_off4:
mov r7,#Offh
djnz r7,$
call watchdog
djnz r6,loop_m_off4
mov r6,#0ffh joffhook késleltetés
loop_m_off5:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loop_m_ofT5
test fhook:
jb fhook, detected hook jhook rendben
jmp hook_error nincs offhook hiba
detected hook:
clr exO joffhook tiltás tárcsahangig, érintkezőpergés hatásának
clr hookswout kiküszöbölésére joffhook jelzés TRU-nak
setb hookswout_ jugyanaz
clr fhook Jelző törlése
dt delayl:
call watchdog
jnb lc_,still_off_hook
jmp hookerror jnincs offhook
stilloff hook:
jb f_start,dt_delayl ;500 ms után
clr ieO joffhook int jelző törlése
setb exO
setb fdtone ;1 =tárcsahang van
call dtone jtárcsahang-engedélyezés
rét jkilépés a hook tesztből
HU 219 932 Β hook error:
mov rl ,#main flag error
mov @rl,#l ;hook slic hiba
setb error flag
rét
diai test - tárcsahang vizsgálata diaitest:
mov rl,#main_flag ;fő jelző olvasása
mov a,@rl
orl a,#00000010b
mov @rl,a ;tárcsahangjelző beállítása
mov r6,#0ffh ;offhook késleltetés
delaydial:
mov r7,#0ffh
djnz r7,S
call watchdog
djnz rő.delaydial
mov r6,#0ffh ;offhook késleltetés
delay_dial2:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,delay_dial2
clr trl ;711 ms várakozás tárcsázás detektálásáig
mov timeoffl, #0
mov time off2,#0
setb trl verifydial:
call read io m a tárcsahang ellenőrzése
anl a,#00000001b
cjne a,#00000001b, diai ok ;0 tárcsázása rendben
call watchdog
mov a,time_off2 ;tárcsázás nem detektálható
cjne a,#10, verifydial ;711 ms várakozás, ha nem foglalt
mov r 1 ,#main flag error ;nincs tárcsahang
mov @rl,#3 ;tárcsahiba
setb error flag
rét
diaiok: ;nincs hiba
rét
startdtmf - dtmf start startdtmf:
clr fdtone mov ccapml, #0 anl io_m_b,#0füh orl io_m_b,#cero ;0 küldése call senddtmf call delaydtmf
HU 219 932 Β call disabledtmf call delaydtmf call gettest testcero:
cjne a, #Oh,dtmf_error flag anl io_m_b,#0fl)h orl io_m_b,#uno call senddtmf call delaydtnmf call disabledtmf call delaydtmf call get_test testi:
cjne a, #lh,dtmf_error_flag anl io_m_b,#0f0h orl io_m_b,#dos call senddtmf call delaydtnmf call disabledtmf call delay_dtmf call gettest test_2:
cjne a, #2h,dtraf_error_flag anl iornb, #OfOh orl io_m_b,#tres call senddtmf call delaydtnmf call disabledtmf call delaydtmf call gettest test_3:
cjne a,#3h,dtmf_error_flag anl io_m_b,#0fl)h orl io_m_b,#cuatro call senddtmf call delaydtnmf call disabledtmf call delaydtmf call gettest test_4:
cjne a,#4h,dtmf_error_flag jmp go_to_5 dtmf error flag:
jmp errordtmf go_to_5:
anl io_m_b,#0fDh orl io m b, #cinco call senddtmf call delaydtnmf call disabledtmf call delaydtmf call get_test test_5:
cjne a,#5h,dtmf_error_flag anl io_m_b,#0fDh orl io_m_b,#seis call senddtmf call delaydtnmf call disabledtmf ;0 ellenőrzése ;1 küldése ;1 ellenőrzése ;2 küldése ;2 ellenőrzése ;3 küldése ;3 ellenőrzése ;4 küldése ;4 ellenőrzése ;5 küldése ;5 ellenőrzése ;6 küldése
HU 219 932 Β
call delaydtmf
call gettest
test_6:
cjne a,#6h,dtmf_error flag
anl io_m_b,#0föh
orl io_m_b,#siete
call senddtmf
call delaydtnmf
call disabledtmf
call delaydtmf
call gettest
test_7:
cjne a, #7h,dtmf_error_flag
anl iornb, #OfOh
orl io_m_b,#ocho
call senddtmf
call delaydtnmf
call disable dtmf
call delaydtmf
call gettest
test_8:
cjne a, #8h,dtmf_error_flagl
anl iornb, #Oföh
orl iornb, #nueve
call senddtmf
call delaydtnmf
call disable dtmf
call delaydtmf
call gettest
test_9:
cjne a, #9h,dtmf error flagl
anl io_m_b,#0fdh
orl io_m_b,#05h
call senddtmf
call delaydtnmf
call disabledtmf
call delaydtmf
call gettest
testa:
cjne a, #Oah,dtmf_error_flagl
anl io_m_b,#0föh
orl io_m_b,#0dh
call senddtmf
call delaydtnmf
call disabledtmf
call delaydtmf
call get_test
test b:
cjne a, #Obh,dtmf_error_flagl
jmp g°_to_c
dtmferrorflagl:
jmp errordtmf
go to c:
anl io_m_b,#0f0h
orl io_m_b,#03h
call senddtmf
call delaydtnmf
call disabledtmf
call delay_dtmf
call gettest
;6 ellenőrzése ;7 küldése ;7 ellenőrzése ;8 küldése ;8 ellenőrzése ;9 küldése ;9 ellenőrzése ;a küldése ;a vétele ;es b
HU 219 932 Β test_c:
cjne a, #Och,dtmf_error flagl
anl io_m_b,#0föh
orl io_m_b,#0bh ;es d
call senddtmf
call delaydtnmf
call disabledtmf
call delay_dtmf
call gettest
testd:
cjne a, #Odh,dtmf_errorflagl
anl io_m_b,#0föh
orl io_m_b,#07h ;es 7
call senddtmf
call delaydtnmf
call disable_dtmf
call delaydtmf
call gettest
teste:
cjne a, #Oeh,dtmf_error_flagl
anl iomb, #0fl)h
orl io_m_b,#0fh ;es f
call senddtmf
call delay dtnmf
call disabledtmf
call delaydtmf
call gettest
testf:
cjne a,#Ofh,dtmf_error_flag 1
rét ;kilépés hibák nélkül
errordtmf:
mov rl ,#main_flag_error
mov @rl,#4 ;dtmf hiba
setb errorflag
rét
startringtest - csengőteszt start
startringtest:
mov rl,#main_flag ;csengetés inic. ;fő jelző olvasása
mov a,@rl
orl a,#00001000b
mov @rl,a jcsengőtesztjelző beáll.
clr ringsecond
clr connloop ;onhook jelzés
call write io m c
setb fremote hup
call hup
mov ró,#6
loopringwait:
push 6
mov r6,#0ffh ;késleltetőmodul
loop mbb:
mov r7,#0ffh
djnz r7,$
HU 219 932 Β
call watchdog
djnz r6,loop_mbb
mov r6,#0ffh ;késleltetőmodul
loopmcc:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loop_mcc
POP 6
djnz r6,loop_ring_wait ;bejövő hívás
clr api ;bejövő hívás inic.
jb 1 c_,loop_ring_off
jmp ring_flag
loop ring off: ;visszatérés ide, amíg a csengetés kezdődik vagy 2 s eltelik
clr trO
mov time_on2,#0
mov time onl,#0
setb trO
wait_2_sec:
call watchdog
jnb fanswer, notanswer
jmp ring flag ;válaszhiba
notanswer:
call read io m a
anl a,#00000100b
cjne a,#00000100b, ringstarts ;0 csengetés kezdődött?
mov a,time_on2 ;2 s eltelt?
cjne a,#200, wait_2_sec ;2 s várakozás a dtmf leállításáig
jmp ring flag ;2 s eltelt, hiba
ringstarts:
mov r6,#0ffh ;késleltetőmodul
loopmbbc:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loop_mbbc
mov r6,#0ffh jkésleltetőmodul
loopmccd:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6, loop mccd
ringstart: ;csengővizsgálat 1,3 s-ig folyamatosan
clr trO
mov time_on2,#0
mov time onl,#0
setb trO
wait_130 msec: ;csengővizsgálat 1,3 s folyamán
call watchdog
jnb fanswer, notanswerl
jmp ringflag ;válaszhiba
notanswerl:
call readioma
HU 219 932 Β test_130:
anl a,#00000100b cjne a,#00000100b,ring_expire jmp ringflag ringexpire:
mov a,time_on2 cjne a,#90,wait_130 msec ;1,3 s-ig alacsony ;nincs csengetés 1,3 s-on belül ; 130 ms várakozás wait_250 msec:
call watchdog call readioma test_250:
anl a,#00000100b cjne a,#00000100b,ring_not_expire teststop:
jmp ringstop ringnotexpire:
mov a,time_on2 cjne a,#250,wait_250 msec test flag:
jmp ringflag ;a csengetésnek 1,5 s után meg kell szűnnie, de 2,5 s-ot várunk ennek ellenőrzésére jalacsony szintű. 2 s-mal tovább jcsengetés vége 2,5 s előtt ;1,5 s után magas szintű ;250 ms várakozás jcsengetés nem szűnt meg 2,5 s-on belül, hiba
ringstop: ;2,55 s várakozás
clr trO
mov time_on2,#0
mov time onl,#0
setb trO
wait 2 seca:
call watchdog
jnb fanswer, not_answer2
jmp ringflag jválaszhiba
not_answer2:
mov a,time_on2
cjne a,#255, wait_2_seca ;2,55 s várakozás a dtmf megszüntetéséig
jb ring_second,rin_stop 1 jmásodik hurok
setb ringsecond jcsengőellenőrzés kétszer
jmp loopringoff ;új start
ringflag:
setb api jbejövő hívás törlése
mov rl,#main flag error
mov @rl,#5 jcsengőhiba
setb errorflag
ringstopl: test timbre:
rét jkilépés hiba nélkül
start_ring_ anstest - válasz a csengetésre
startringans test: jcsengetés inic.
mov rl,#main_flag ;fő jelző olvasása
mov a,@rl
orl a,#00010000b
mov @rl,a jcsengőtesztjelző beáll.
HU 219 932 Β jvárakozás itt, amíg a csengetés újrakezdődik loop_ring_off2:
clr trO
mov time_on2,#0
mov time_onl,#0
setb trO
wait_2_sec2:
call watchdog
jnb fanswer, not answera
jmp ansflag
notanswera:
call read io m a
anl a,#00000100b
cjne a,#0000100b,ring_present
mov a,time_on2
cjne a,#200, wait_2_sec2
jmp ansflag
ring present:
setb connloop
call writeiomc
mov r7,#0ffh
waitans:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,wait_ans
mov r7,x0ffh
waitansa:
mov r6,#0ffh
djnz ró, $
call watchdog
djnz r7,wait_ansa
testans:
jb fanswer, ok ring
jmp ansflag
ansflag:
mov rl ,#main_flag_eHor
mov @rl,#6
setb errorflag
setb api
clr fanswer
rét
;ha csengőválasz, kilépés ;ha 0 csengetés ;2 s várakozás a leállításig ;2 s letelik jválasz a csengőre jfanswer beállításához késleltetési idő ok ring:
timbre:
clr fanswer setb api rét ;ha válasz, csengőválasz ok ;nem válaszolt hiba jcsengőhiba ;kilépés hiba nélkül jbejövő hívás törlése makecall - hívás a rádió teszteléséhez makecall:
mov rl,#mainl_flag ;mainl jelző olvasása
mov a,@rl
orl a,#00000001b
mov @rl,a ;hívásiteszt-jelző beáll.
HU 219 932 Β testmute:
jnb power,powerisok
mov rl,#mainl flag error
mov @rl,#l
setb errorflag
jmp preonhook
powerisok:
mov a,#func
call wrbus
mov a, #7
call wrbus
call clrdsp
mov a,#star
call wrbus
mov r7,#0fíh
waitmin:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,wait_min
mov r7,#0ffh
waitmina:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,wait_mina
mov a,#9h
call wrbus
mov a,#0ah
call wrbus
;ha rádió ok, vezeték alacsony szinten (0) ;tápvezetékhiba beáll.
;fúnkció a telefonszám kiolvasására ;késleltetési idő szám interfészre küldéséhez
mov add a,#dspbuf start a, #3
mov rl,a
mov a,@rl
anl a,#Ofh
call wrbus
inc rl
mov a,@rl
anl a,#Ofh
call wrbus
inc rl
mov a,@rl
anl a,#Ofh
call wrbus
inc rl
mov a,@rl
anl a,#Ofh
call wrbus
inc rl
mov a,@rl
;hívás a telefonszámára ;pillanatnyi mutató ; msg pufferba ; msg pufferba ; msg pufferba ; msg pufferba ; msg pufferba
HU 219 932 Β
anl a,#0fh
call wrbus
inc rl
mov a,@rl ; msg pufferba
anl a,#Ofh
call wrbus
inc rl
mov a,@rl ; msg pufferba
anl a,#Ofh
call wrbus
setb fsend ;,Jcüld” jelző beáll.
mov a,#send jhívás
call wrbus
setb enablespecial ;Q4 engedélyezés
call writeiomc
testmutel:
clr mute jnincs némítás
call write_px2
clr trl jkésleltetés inuse vizsg.-hoz
mov time_offl,#0
mov time ofí2,#0
setb trl
delaycall:
mov a,time_off2
call watchdog
cjne a,#8O,delay_call ;1 s várakozás
test_mute2: jteszt foglaltsági hang
clr trl
mov time_offl,#0
mov time_off2, #0
mov time off3,#0
setb trl
contwaiting:
jnb inuse, still inuse
mov rl, #mainl flagerror
mov @rl,#4 jinuse hiba beáll.
jmp callerror
stillinuse:
call read io m a jtárcsahang vizsg.
anl a,#00000001b
cjne a,#00000001b,busy_ok ;ha 0 fogl. ok
call read io m a jtárcsahang vizsg.
anl a,#00001000b
cjne a, #00001000b, tlOOO Hz ;ha 1000 Hz fogl. ok
mov a,time_off3 jfogl. nincs detektálva
call watchdog
cjne a,#lh,cont_waiting ;18,2 s várakozás, ha fogl. nem detektálható
mov rl,#mainl flag error
mov @rl,#3 jhanghiba fogl. vagy 1000 Hz
callerror:
mov a,#endl jhívás
call wrbus
setb error flag jelen és onhook
jmp preonhook
HU 219 932 Β
tlOOOhz: ;950— 1100 Hz hang detekt.
busyok: ;400-620 Hz hang detekt.
mov a,#endl ;hívás
call wrbus
preonhook:
clr connloop jelen és onhook
call writeiomb ;és modulcsatlakoztatás
call hup
rét
error_acc - hibakód beállítása erroracc:
mov r 1 ,#main flagerror
mov a,@rl
cjne a,#l ,check_hook_ring
mov rl,#error_code ;hook slic hiba
mov @rl,#l jmp exiterror check hook ring:
cjne mov mov jmp a,#2,check_dial_flag rl,#error code @rl,#2 exiterror ;hook ring hiba
check dial flag
cjne a,#3 ,check_dtmf_flag
mov rl,#error_code ;tárcsahiba
mov @rl,#3 jmp exiterror checkdtmfflag:
cjne mov mov jmp a,#4,check_ring_flag rl,#error code @rl,#4 exiterror ;dtmfhiba
checkringflag
cjne a,#5,check_ring_ans_flag
mov rl,#error_code ;csengődetekt.-hiba
mov @rl,#5 jmp exiterror check ring ans flag:
cjne mov mov jmp a,#6,check_power_flag rl,#error_code @rl,#6 exiterror ;csengőválaszhiba
check_power flag: ;hívási jelzők vizsg.
mov rl ,#main lflagerror
mov a,@rl
cjne a,#7, checkcalltest
mov rl,#error_code ;rádió tápfesz. hiba
mov @rl,#7 jmp exiterror checkcalltest:
cjne a,#2,check_busy_test
mov rl,#error code ;xxx hiba
mov @rl,#8
jmp exiterror
HU 219 932 Β checkbusytest:
cjne a,#3,check_inuse_test
mov rl,#error_code foglaltsági hang hiba
mov @rl,#9
jmp exiterror
inuse_ test:
cjne a,#4,check_1000_test
mov rl,#error_code ;inuse hiba
mov @rl,#10 jmp exiterror checklOOOtest:
exiterror:
rét
cjne a,#5,exit_error
mov rl,#error_code ;1000Hz hanghiba
mov @rl,#l 1
jmp exiterror
finself - visszatérés normálra finself:
clr call call connloop writeiomc hup ;onhook az interfészre
clr enabletest ;telefon csatlakoztatása
call write_io_m_b ;és modul lekapcsolása
clr testenable fenntartási teszt inic.
clr testend ;teszt vége
clr error flag ;hibajelző
jnb error_flag,tum_on_led
clr extled ;külső led kikapcsolása a tesztelés folyamán
call writeiomc ;külső led be/ki kapcs.
call loopbad
tumonled:
setb ext_led ;külső led kikapcsolása a tesztelés folyamán
call writeiomc ;külső led be/ki kapcs.
call loopbad
clr extled ;külsó led kikapcsolása a tesztelés folyamán
call writeiomc ;külső led be/ki kapcs.
call loopbad
setb extled ;külső led kikapcsolása a tesztelés folyamán
call writeiomc ;külső led be/ki kapcs.
call loopbad
clr extled ;külső led kikapcsolása a tesztelés folyamán
call write_io_m_c ;külső led be/ki kapcs.
call loopbad
setb extled ;külső led kikapcsolása a tesztelés folyamán
call write io_m_c ;külső led be/ki kapcs.
call loopbad
test 4on:
clr extled ;külső led kikapcsolása a tesztelés folyamán
call writeiomc ;külső led be/ki kapcs.
HU 219 932 Β call loopbad rét loopbad:
mov r7,#0ffh ;késleltetési idő fanswer beállításához
waitemb:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,wait_emb
mov r7,#Offh
waitemba:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,wait_emb
rét
fitt vagyunk, amikor felemeltük a kézibeszélőt a tárcsázáshoz
first:
call clr_ msg •.korábbi TRU üzenetek törlése
clr exO ;offliook tiltása a tárcsahangig érintkezőpergés hatásának kiküszöbölésére
clr hookswout ;offhook TRU-nak
setb hookswout ;ugyanaz
clr fhook Jelző törlése
dtdelay:
call watchdog ;MEGJEGYZÉS: INTO&TIMERO ebben az időpontban már
mov f_cmds,#4
felfüggesztve - ne használjon olyan TRU specifikus funkciót, amely ezekre a megszakításokra támaszkodik.
call trucmd ;bármilyen TRU specifikus parancs végrehajt.
jb f_start,dt_delay ;500 ms után
clr ieO ;offhook int jelző törlése
testlc:
jnb lc_,alert_check ;500 ms után még offhook
test_lcl:
call hup ;telefon újra onhook < 500 ms
jmp start
alertcheck:
setb exO ;offhook int újra eng. (DT be)
jb inuse,makedt ;nem inuse, tárcsázásra kész
jmp wait ;ha már inuse, valószínűleg bejövő hívásra válasz
;500 ms offbook, tárcsahang generálása
makedt:
setb fdtone ;1= tárcsahang be
call dtone ;tárcsahang eng.
call get ;egy karakter vagy kilépés bontásnál
jb inuse,check_prefix
clr fdtone
HU 219 932 Β
mov ccapml,#0
jmp wait
check_prefix:
jb lock, prefixO ;TRU nincs lezárva
cjne a,#pound,nosend ;Brif lezárva, csak # (unlock) érvényes
prefixO:
cjne a, #zero,prefix_l jBrif nem [0]
jmp storeit jlépj store-ra [0] prefixként
prefixl:
cjne a,#l,no_prefix jBrif nem [1]
jmp storeit jlépj store-ra [1] prefixként
no_prefix:
inc rO jprefix helye változatlan (FFh)
inc r2 jszámjegy számlálás
;Pillanatnyi számjegy tárolása és másik vétele kiküldésükig
storeit:
cjne jmp rO,#7fh,do_store_it checknumber jBrif számjegypuffer még nincs tele ;Brif puffer tele, w/o tárolás
dostoreit:
mov @r0,a jszámjegy tárolása
inc rO ;előre számjegypuffer mutató;
;A bevitt számjegyek vizsgálata és érvényes sorrendjük analizálása
checknumber:
clr fsendtimer jmeggyőződni, hogy kikapcs.
mov a,first_digit jelső számjegy helyére mutat
cjne a, #Offh, check one jBrif első számjegy bevive
jmp checksend jideje elküldeni?
checkone:
cjne a, #pound, check send jBrif nem [#] (lock, unlock stb.)
mov a,second_digit jmásodik számjegyre mutat, ha az első [#]
cjne a,#0ffh,check_two jBrif második számjegy bevive
jmp checksend jideje elküldeni?
checktwo:
cjne a,#pound,check_nam jBrif nem [#][#] (lock vagy unlock)
mov a,third_digit jkét # lock vagy unlock lehet
cjne a,#pound,check_unlock jhárom # zárást jelent
jnb lock,nosend jnem zárni, ha már zárva van
jmp lockit ;[#][#][#] zárást jelent
checknam:
cjne a,#star,check_send jmegszakítani, ha nem [#][*] sorrend
mov a,third_digit jkülönben harmadik számjegy is
cjne a,#Ofíh,check_naml jBrif harmadik számjegy bevive
jmp checksend jideje elküldeni?
checknaml:
mov f_cmds,#2 jbetöltési funkció száma, majd go to
call trucmd jváltakozó NAM-ra kapcsolás
jÉrvénytelen szám (tárcsa) sorozatnál megszakítani
nosend:
clr funlocktimer junlock időzítő # jel kikapcsolás, beállítás
setb fonhook jmintha onhook
setb ieO ;go to ExtlntO service
jmp start joffhook ismét
HU 219 932 Β checkunlock:
cjne a,#Offh,unlocking_it ;## után tárcsázott számjegy jmp checksend ;ideje elküldeni?
unlockingit:
setb fiinlocktimer ;2 s után w/o SND kód küldése annak elkerülésére, hogy az unlock kódot érvényes számként küldjük el jmp getnext ;Ha a bevitt számjegysorrend nem a speciális funkciók (lock, unlock, dual NAM stb.) egyike
checksend:
jb sw_sendtimer,check_intl ;Brif sw7=l, nemzetközi hívások eng.
setb fsendtimer ;elküldés eng. 4 s után, ha sw7=0
jmp getnext ;és vissza a következő számjegynél
check inti:
mov a,prefix ;prefix vizsgálata acc-ben
cjne a,#zero,check_op ;Brif nem [0]
mov a,first_digit ;különben az első valódi számjegy
cjne a,#l,check_op ;Brif nem [1], operátor hívása lehet
setb fsendtimer jnemzetközi hívás! 01-gyel kezdődik
jmp getnext ;még vissza, csak ha az időzítő most ad!
checkop:
mov a,prefix ;prefix számjegy ismét
cjne a,#10,check_service ;Brif prefix nem 0
cjne r2, #O,check_service ;Brif számjegy(ek)et szintén tárcsáztuk
setb fsendtimer ;különben hívás lehet az operátornak
checkservice:
cjne r2, #3,check_distance ;Brif nem 3 számjegy
mov a, second_digit ;ha segélykérés, inform. stb.
cjne a,#l ,check_distance ;Brif második számjegy 1
mov a.thirddigit ;harmadik számjegy
cjne a,# 1 ,check_distance ;Brif harmadik számjegy nem 1
jmp sendit ;segélykérés
checkdistance:
cjne r2,#10,check_local ;tíz számjegyet tárcsáztunk?
jmp sendit tizedikként küldjük, ha nem nemzetközi
check local.
cjne r2,#7,get_next ;hétnél kevesebb számjegyet tárcsáztunk
setb fsendtimer ;4 s-on belüli elküldésre előkészítés
mov a,second digit ;második számjegy
subb a,#l ;ez egy #1?
jz getnext ;körzetkód vagy helyi lehet
mov a,second digit ;második számjegy ismét
subb a,#10 ;ez egy 0?
jz getnext ;körzetkód vagy helyi lehet
clr fsendtimer jmásikat nem, 5 s-mal később elküldeni
jmp sendit
getnext:
inc r2
call get ;új számjegy
jmp storeit ;összes vizsgálat az új számjeggyel
Tárcsázás után a szám kiküldése
HU 219 932 Β ;TRU lezárásának ellenőrzése, és megszakítás, ha nincs bevitt unlock kód
sendit:
jb lock,sendl ;TRU nincs lezárva
locked:
mov a,third_digit jharmadik számjegy
cjne a,#Offh,sendl jbármelyik bevitt számjegy
jmp nosend ;nem kiküldeni, ha nincs bevitt unlock kód
jTárcsázott számjegy kiküldése
sendl:
setb mute ;rx audionémítás
call write_px2
mov @rO,#send számjegyek végén elküldeni
mov a,#clear ;kód törlése
call wrbus jelőször a TRU memóriából törölni a számjegyeket, készülék bevitte
mov r0,#60h jmutató rését tárolóra
moc a,@rO jprefix acc-be
cjne a,#0ffh,out
inc rO jprefix elhagyása, ha az ff
out:
mov a,@rO
call wrbus jbuszra írás
jnb fhang,send_ok
test_lc2:
call hup
jmp start
sendok:
inc rO
cjne a,#send,out ;SND kódig tartani
setb fsend jküldési jelzőt beállítani
clr mute jnincs némítás
call write_px2
jTárcsázás után számjegy feltételes visszajelzése TRU-nak, azután várakozás további lehetséges számjegyekre (kiterjesztés stb.), vagy a végrehajtás átadása a megszakításoknak wait:
call get ;MJ telefonról számjegyek vizsgálata
jnb sw_data,wait jelhagyni, ha snd után az adat tiltva van
call wrbus jadatok TRU-nak
jmp wait jciklusok, amíg mi vagy a másik fél bont
Tárcsahang-generátor ;Ez a rutin a tárcsahangot pillanatnyi státusunknak (roam, holler stb.) megfelelően választja ki és állítja elő dtone:
push jb mov jmp psw lock,serv_check dptr,#table_35O toneout ;350 Hz a lezáráshoz
sérv check:
jb noserv, roamcheck
mov dptr,#table_620 ;620 Hz-es hang no-servhez
jmp toneout
HU 219 932 Β roamcheck:
jb swdialtone, normál jb roam, normál mov dptr, #table_roam jmp toneout normál:
mov dptr,#table_dt toneout:
mov lowpoint,dpl mov highpoint,dph mov ccapml,#01000010b pop psw rét ;ha a választókapcsoló zárva van (=0), másik tárcsahang roam-hoz ;440-620 Hz roam-hoz ;350-440 Hz (normál tárcsahang) ;táblázat kezdetére figyelni ;hang engedélyezése
Számjegy a kézi készülék billentyűzetéről ;Ez a rutin a számjegybemenetet és/vagy folyamatjelzőket dolgozza fel On retum - adatok vissza az acc-be
get: push psw
getl: mov f_cmds,#3 Jelző az alkalmazott funkciókat mutatja
call trucmd ;TRU specifikus parancsok végrehajtása
call watchdog
;Várakozás egy impulzusra. Ha az EXTINTO (OffHookService) nem jelölte meg az impulzust tárcsaimpulzus-bemenetként, DTMF számjegybemenetet keresünk. Ha az egy tárcsaimpulzus-bemenet volt, akkor folytatjuk az impulzusok számlálását, amíg 250 ms eltelik az utolsó impulzus vétele után. Ezen a ponton úgy tekintjük, hogy a számjegy tárcsázása befejeződött, így ezt bemásoljuk az acc-be, és beállítjuk az fdig_ ready jelzőt.
get_pulse:
jnb fdigit,getdtmf
clr fdtone ;tárcsahangjelző törlése
mov ccapml,#0 ;tárcsahang kikapcsolása
mov a,#2 ;ha volt bemenet
clr c ;átvitel törlése kivonáshoz
subb a,time_off2 ;213,3 ms (3 χ 71,1 ms) eltelt?
jnc get dtmf ;ha még nem, a számjegy nem teljes
mov a,#131
clr c játvitel törlése kivonáshoz
subb a,time_offl ;további 36,7 ms (132x277,8 ps) eltelt? (teljes idő 250 ms)
jnc getdtmf ;ha még nem, a számjegy nem teljes
mov a,pulse_digit jszámjegy acc-be
mov pulsedigit, #0 jtörlés következő számjegyhez
setb fdig-ready ;kész számjegy
clr fdigit Jelző törlése
;Ha egy DTNF számjegy kész, bemásoljuk az acc-be. Speciális feltételek (flash, bontás stb.) vizsgálata. Elágazás speciális feltételeknél, vagy további impulzus(ok) és/vagy teljes számjegyek keresése getdtmf:
jnb fdtmfin,hang
clr fdtone ;tárcsahangjelző törlése
mov ccapnl,#0 tárcsahang kikapcsolása
clr fdtmfin ;dtmf bemeneti jelző törlése
mov a,pxl temp ;számjegy acc-be
HU 219 932 Β
anl a,#Ofh ;csak az alsó 4 bitet megtartani
setb fdigready ;kész számjegy
; Bontás vizsgálata (impulzus > 700 ms)
hang:
jnb fhang,gflasn ;ha nincs bontás
ΡθΡ psw
test_lc3:
call hup
dec sp jhelyes veremmutató
dec SP jszubrutin visszatérés nélkül
jnb ffemote_hup,no_remote jnincs távoli bontás
clr ffemotehup
noremote:
jmp start jkilépés, valaki bontott
jFlash vizsgálata (200 < impulzus < 700 ms).
gflash:
jnb fflash, time ;ha nincs flash
clr fflash jflash jelző törlése
mov ccapml,#0 jtárcsahang kikapcsolása
jb fdtonejustflssh ;ha tárcsahang be, utolsó szám újratárcsázása
jb fsend, just flash ;ha küldési jelző beállítva
clr fdtone jtárcsahangjelző törlése
ΡθΡ psw
dec sp jhelyes veremmutató
dec sp jszubrutin visszatérés nélkül
jmp sendit jösszes számjegy ki+elküld.
jCsak a SEND kód átvitele, és nem a számjegyeké, ha vagy a tárcsahang, vagy a SEND jelző magas szintű, just flash:
clr mov fdtone f_cmds,#5 jtárcsahangjelző törlése
call trucmd
mov a,#send jsend kód
call wrbus
setb fsend jsend jelző
pop psw Jelzők visszaállítása
dec sp jhelyes veremmutató
dec sp
jmp wait jvissza számjegy(ek)re, bontás stb.
;Ha még nem tárcsáztunk egy teljes telefonszámot, és 40 s eltelt az utolsó billentyű lenyomása óta, akkor egy 1 perces holler hangot indítunk.
time:
jnb ftime.sendtime ;ha nincs időtúllépés
pop psw
dec sp jveremmutató helyesbítés
dec sp jszubrutin visszatérés nélkül
jmp rohtone jnincs rohtone
;Kiküldés idejének vizsgálata (4 s eltelt az utolsó billentyűhasználat óta) sendtime:
jnb fsendtimer,unlock_time mov r6,time_off2 ;71,1 ms időzítő r6-ban
HU 219 932 Β
cjne clr ró, #56, unlocktime fsendtimer ;4 s vizsgálata (56x71,1 ms=3,
POP psw
dec sp ;helyes veremmutató
dec sp ;szubrutin visszatérés nélkül
jmp sendit jkimenő számjegyek és adás
;Volt unlock kérés?
unlock time:
jnb funlocktimer,locktime
mov r6,time off2 ;71,4 ms időzítő r6-ban
cjne ró, #28, look ;(28 x71,4ms=)2s vizsg.
clr funlocktimer
pop psw
dec sp ;helyes veremmutató
dec sp ;szubrutin visszatérés nélkül
jb lock,no_unlock ;ne oldja, ha már fel van oldva
jmp unlockit
no unlock:
setb fonhook ;mintha onhook
setb ieO ;go to ExtlntO service
jmp start ;offhook ismét
;Flocktimer engedélyezi időtúllépés lezárását négynél kevesebb számjegynél. Golock címke TRU-hoz és flocktimer beállítása (ha szükséges).
lock time:
jnb flocktimer,look ;Brif nincs
mov r6,time_off2 ;71,4 ms időzítő r6-ban
cjne r6,#28,look ;(28x71,4 ms=) 2 s vizsg.
clr flocktimer
pop psw
dec sp ;helyes veremmutató
dec sp
jmp golock
;Teljes számjegy?
look:
jb fdigready, gotadigit jmp getl ;számjegy be?
;Számjegy van (impulzus vagy DTMF), vissza az acc-be. gotadigit:
clr fdig ready ;„számjegy kész” jelző töri.
gotinuse:
mov time_offl,#0 ;időzítők újraindítása minden bejövő számjegynél
mov time_off2,#0
mov time_ofí3, #0
ΡθΡ psw
rét
Számjegy a kézi készülék billentyűzetéről ;Ez a rutin a számjegybemenetet és/vagy folyamatjelzőket dolgozza fel On retum - adatok vissza az acc-be
HU 219 932 Β gettest:
push psw ;Ha egy DTNF számjegy kész, bemásoljuk az acc-be. Speciális feltételek (flash, bontás stb.) vizsgálata. Elágazás speciális feltételeknél, vagy további impulzus(ok) és/vagy teljes számjegyek keresése getdtmftest:
jnb fdtmfin,no dtmf test
clr fdtone jtárcsahangjelző törlése
mov ccapml,#0 tárcsahang kikapcsolása
clr fdtmfin ;dtmf bemeneti jelző törlése
mov a,pxl_temp jszámjegy acc-be
anl a,#Ofh ;csak az alsó 4 bitet megtartani
setb fdigready ;kész számjegy
no dtmf test
clr fdigready ;„számjegy kész” jelző töri.
mov time_offl,#0 ;időzítők újraindítása minden bejövő számjegynél
mov time off2,#0
mov time_off3,#0
pop psw
rét
send dtmf - tárcsahang küldése
senddtmf:
call watchdog clr dtmfout ;a dtmf hang eng.
call writeiomb setb dtmf out ;a dtmf hang eng.
call writeiomb rét clrdtmf - tárcsahang küldése disabledtmf:
clr dtmfout call writeiomb rét delaydtmf:.
clr trl mov time_of£2,#0 mov timeofD, #0 setb trl waituntildtmf:
mov a,time_off2 call watchdog cjne a,#4,wait_until_dtmf rét ;a dtmf hang eng.
;a dtmf hang kési.
;40 ms várakozás a dtmf leállításáig
ROH hanggenerátor ;40 s telt el a kézibeszélő felemelése és valamelyik vagy az utolsó számjegy tárcsázása óta. ROH hangot generálunk (30 ms-os időközökben megszakítva) 1 percen át vagy a kézibeszélő letételéig, amelyik esemény hamarabb következik be.
HU 219 932 Β rohtone:
clr ftime jjelző törlése
clr fdtone jtárcsahangjelző törlése, így az indikátorok változásai nem
mov dptr,#table_400 változtatják meg a roh hangot
mov highpoint, dph jtáblázathelyre figyelni
mov lowpoint,dpl
setb rohboost ;hang erősítése
call write_px2
rohtoneon: mov ccapm 1 ,#01000010b ;hang bekapcsolása
;Ciklusok 1 percen át vagy bontásig checkhangup:
call jnb watchdog fhang,check_timeout jwatchdog frissítése várakozás folyamán ;Brif még offhook
test_lc4:
call hup jbontás
jmp start jújraindítás
check timeout:
jb frohtimeout,roh_timeout ;roh kifutott (1 perc után)
jb roh_on,rohtone_on
mov ccapml,#0 ;hang kikapcsolása
jmp checkhangup ;roh be és ki
rohtimeout:
mov ccapm l,#0 ;hang kikapcsolása
clr rohboost ;hang le
setb loopswitch_ ;hurok nyitása
call write_px2 ;ki a portra
test_lc5:
call hup jbontási rutin
jnb swgndstart,looptest jhurokteszt, ha hurok indul
jmp looptestend jalapindításnál nincs hurokteszt, hurok nyitva csengetésig
;Hurokindítás (loopstart) üzemmódban
looptest: b,#40 ;2 s késleltetés (40 x 50 ms)
mov
looptl:
mov a,time on2 jpillanatnyi onhook idő
add a,#5 ;50 ms hozzáadása a pillanatnyi időhöz
loopt2:
call watchdog jwatchdog frissítése
cjne a,time_on2,loopt2 ;50 ms késleltetés
djnz b,looptl jösszesen 2 s várakozás
clr loopswitch_ jhurok zárása 2 s-onként ellenőrzéshez
call write_px2 ;ha a telefon vissza, volt téve
mov looptest_timer2,#215 ;2,22 ms kési. (8 χ 277,8 ps)
loopt3:
mov looptest_timer,#Ofíh jelegendő idő a SLIC-hez
djnz looptesttimer, $ ;hook státus jelzése
call watchdog jwatchdog frissítése
djnz Iooptest_timer2,loopt3
jb lc_,looptest_end jnincs hurokáram (onhook)
setb loopswich_ jhurokkapcsolót újranyitni
call write_px2
jmp looptest ; várakozás bontásig
HU 219 932 Β looptestend:
clr frohtimeout ;0=bontás vagy GS üzemmód
mov time_onl,#0 jonhook időzítők rését
mov time_on2,#0
jmp start ;új start
Bontási szubrutin
hup:
call watchdog
clr exO jExtlntO tiltása (offhook, LC)
clr fdigit jimpulzusos tárcsázás közbeni bontás esetén
mov pulsedigit, #0 jimpulzus bemenet közbeni bontás esetén
clr fdigready ;impulzus/dtmf bemenet közbeni bontás esetén
clr fdtmfin jdtmf bemenet közbeni bontás esetén
clr flocktimer jlezárás közbeni bontás esetén
clr funlocktimer jelengedés közbeni bontás esetén
jnb sw_gndstart,hup 1 jhurokstart
setb loopswitch ;750 ms-ig nyitott hurokkapcs.
call write_px2 jbontás szimulálása
mov a,time on2 jinc 10 ms-enként
add a,#75 ;750 ms késleltetés
push acc jtárolás későbbre
jmp hup2
hupl: jb frohtimeout,hup2
clr loopswitch_ jha hurokstart
call write_px2
hup2: clr ftime jidőzítő jelzőjének törlése
clr fsendtimer jadási időzítő jelzőjének törlése
mov ccapml,#0 jtárcsahang ki?
clr fdtone jtárcsahangjelző törlése
clr rohboost jnormálhang
call write_px2
jb fremote_hup,no_end_sent jtávoli bontásnál nincs végkód, mivel nem szükséges, és szükségtelenül törli a puffért a Motorolán
mov a,#endcall jvégkód
call wrbus jelőször TRU-nak elküldeni, aztán jelző törlése
noendsent:
clr fsend jszámjegyek elküldve vagy ÁLÉRT megválaszolva
setb hookswout ;TRU-nak onhook
clr hookswout_ jugyanaz
jnb sw_gndstart,hup4 jhurokindításnál ne időzítsen
ΡθΡ acc jkésleltetési idő vissza
clr c játviteli jelző törlése a következőhöz
hup3: call watchdog
cjne a,time_on2, $+3 ;750 ms várakozás, hogy a hurok nyisson, és pbx bontást lásson jugrás a következő utasításra
jnc hup3 jnincs átvitel, amíg time_on2 nagyobb, mint acc (bús write esetén több mint 750 ms
hup4: setb fonhook jonhook jelző beállítása
clr fhang jbontási jelző törlése
clr fonesec jígy az időzítő újraindulhat, ha offhook
clr finuseofftiming jjelző törlése
HU 219 932 Β setb exO jextintO eng. (offhook) rét
TRU státus frissítése ;A rutin 71,4 ms-onként felfrissíti a TRU státusát, és be- és kikapcsolja a csengőt. Ezenkívül 3,9 s-os ellenőrzés csengetés után. updatedisplays:
push acc
push psw
upspecl:
jnb fspec 1 ,continue_update ;spec. jelző vizsgálata
call spéci ;spec. rutin TRU szekcióban
continueupdate:
jb test_enable,go_to_self jteszt indult?
mov a,lamps_temp jértékek tartása későbbi összehasonlításhoz
mov c,roam
cpl c jnincs valódi lámpa a Maxjack-hez
mov roamlamp.c ;roam indikátor (tároláshoz)
mov c,noserv
cpl c
mov noservlamp.c jnoserv indikátor (tároláshoz)
mov c,look
cpl c
mov locklamp,c ;lock indikátor (tároláshoz)
mov c,inuse
cpl c
mov inuselamp.c jinuse indikátor (tároláshoz)
call writeioc ;LED-ek frissítése
jb sw_dialtone,not_maint ;ha választókapcsoló ki (= 1) nem fenntartó modul
test_push:
call read io m a jnyomógomb olvasása
anl a,#00010000b
cjne a,#Oh,not_push
setb testenable jfenntartási teszt inic.
setb fremotehup jtávoli bontás 700 ms-ra
setb loopswitch_ jmásik oldal bontva
call write_px2
not_push:
jnb test_enable,not_maint jteszt indult?
gotoself:
jnb test_end,not_error_yet ;ha hibát találtunk
jnb error_flag,pass-ok
testied:
mov rO,#error_code
mov a,@rO
rl a
rl a
rl a
rl a
mov lamps_temp,a
call writeioc ;LED-ek frissítése
setb extled jkülső LED 1 percre be
jmp write to c
passok:
clr extled jkülső LED 1 percre be
jmp write_to_c
HU 219 932 Β noterroryet:
jb ext_led,clr_led extled write to c ;külső LED tesztelés folyamán be
setb
jmp
clrled:
clr ext_led ;külső LED tesztelés folyamán ki
writetoc:
call writeiomc ;külső LED be/ki
notmaint:
mov jb a,lamps_temp frohtimeout,compare ;értékek tartása későbbi összehasonlításhoz
mov c,ap2 ;ALERT állapot?
anl c,/apl ;(azaz bejövő hívás várakozik)
jnc compare ;nem ÁLÉRT (nincs bejövő hívás)
jnb fonhook,compare joffhook, ne csöngess!
clr call loopswitch_ write_px2 ;hurokkapcsoló zár, ha ÁLÉRT állapot van (bejövő hívás várakozik)
jb fcall,rését ring timer ;csengetés folyamatban
setb fcall ;l=csengetés start (ÁLÉRT detektálva)
mov mov bell_timer,#O bell_timer2,#0 ;időzítők rését
setb fbellsound ;„csengő szól” jelző
mov mov mov dptr,#table_2O lowpoint,dpl highpoint, dph ;20 Hz csengetéshez
setb twenty_hz_pwm ;csatlakozó pwm lehet
mov ccapm2,#01000010b ;pwm engedélyezés
testi:
clr setb ring noring ;csengő be
call write_px2 ;ki a portra
resetringtimer: ;csengetések között időzítő
mov ring_timer,#0 törlése, amíg ÁLÉRT állapotban vagyunk
compare:
xrl a,lamps_temp ;eltérő bitek 1-re
jnb fonesec,dtbits ;offhook után 1 s várakozás szétkapcsolás megakadályozására, ha az offhook közvetlenül bontás után van
mov c,acc.7 ;INUSE státus
anl c,/inuselamp ;l=nem INUSE
jnc timinginuseoff ;időzítő indítása, ha INUSE lámpa éppen kialudt
mov in_use_off_timer,#28 ;időzítő visszaállítása 1,99 s-ra (28x71,1 ms)
setb finuseofftiming ;inuse ki időzítő működik
tkminginuseoff:
jnb inuselamp,cont_in_use_timing ;inuse lámpa még ki?
clr finuseofftiming ;egyébként jelző törlése és időzítés leállítása
continusetiming:
jnb finuseofftiming,dtbits ;időzítés folytatása, ha jelző beállítva
djnz inuseofftimer,dtbits ;ha időzítő elér 1,99 s-ot, szétkapcsolás
clr finuseofftiming jelző törlése
jb fonhook,dtbits ;ha helyi bontás, ne végezzen távoli bontást
;Itt vagyunk, ha a másik fél bontott, és nem tettük vissza a telefont 2 s-on belül.
disconnect:
setb fremotehup jtávoli bontás 700 ms-ra áll.
setb loopswitch_ ;másik oldal bontott
call write_px2
HU 219 932 Β dtbits:
anl a,#01110000b tárcsahangot érintő bitek vizsgálata
jz ringtimeout ;ha semmi sem változott
jnb fdtone,ring_timeout ;vagy ha tárcsahang már nincs
mov ccapml,#0 tárcsahang kikapcsolása
call dtone ;új tárcsahang
ringtimeout:
jnb fcall,updatedone ;nem kell csengőidőzítés, ha nincs bejövő hívás
inc ring timer /71,1 ms-onként
mov a,#53 ;54x71,l ms=3,84 s
clr c /átvitel törlése kivonáshoz
subb a, ringtimer
jnc updatedone ;ha nem legalább 3,84 s csengetés nélkül
jb fbellsound,update_done ;csengetés végére várni
check stop ring ps:
mov a,#3 ;4x25 ms=100 ms
clr c ;kivonásra kész
subb a,bell_timer2
jnc updatedone ;ha átvitel, 100 ms
jb ring_, checkstopnull ;csengő már ki
setb ring /egyébként csengő most ki
call write_px2 ;ki a portra
clr noring
call write_px2 ;ki a portra
check stop null:
mov a,#7 ;8x25 ms=200 ms
clr c /kivonásra kész
subb a,bell_timer2
jnc updatedone ;ha átvitel, 200 ms
mov ccapm2,#0 ;pwm stop
clr twenty_hz_pwm /kimeneti kapcsot alacsony szinten hagyni, pwm 100 ms-mal tovább, mint a csengetés a hullámforma kisimításához
clr fcall ;0=nem ÁLÉRT, nincs cseng.
jnb sw_gndstart,update_done /hurokstart
setb loopswitch_ ;GS nem válaszolt a cseng.
call writejpx2
updatedone:
jb fcall, noreser io
jnb lc_,no_reset_io
jb ffohtimeout,no_reset_io
noresetio:
pop psw
ΡθΡ acc
rét
Watchdog újratöltés szó összehasonlítás watchdog:
push ie
clr ea ;inic. tiltás
mov ccap41,#0 /aktuális lap kezdetére mutat
mov ccap4h,ch /aktuális lap
pop rét ie
HU 219 932 Β időzítő (TLO) onhook megszakítás kiszolgáló rutin
onhooktimer:
push psw
push acc
clr trl ;offhook időzítő stop
clr tfl ;függő inic. törlése offhook időzítővel
mutecheck:
jb mute,on_spec2 ;ha már némítva, ezt kihagyni
setb mute ;rx audionémítása csengetés dtmf-kénti hibás dekódolásának és hangvisszacsatolás kiküszöbölésére
call write_px2 ;ki a portra
onspec2:
jnb fspec2,on_spec2_done ;jelző ellenőrzése
call spec2 ;speciális rutin hívása TRU szekcióban
on_spec2_done
djnz display_dilay,gs_init ;71,1 ms alatt
call updatedisplays ;71,1 ms-onként
gsinit:
jb fcall,cont_service jbejövő hívásnál kimenő GS inic. kihagyása
jnb swgndstart, contservice ;nem GS üzemmódban
jnb fonhook,cont_service ;GS indításához csengetés csak valódi bontás után
jb ring_ground,cont_groundstart
clr loopswitch_ ;alapindítás-kérés
call write_px2
mov gndstarttimer 1 ,#0
mov gndstart_timer2,#0 ;inic. időzítő
contgroundstart:
inc gndstarttimerl
mov a,gndstart_timerl
cjne a,#90,cont_service ;25 ms (90x277,8 ps)
inc gndstart_timer2 ;25 ms-onként
mov gndstarttimer 1 ,#0 ;reset a következő 90-re
mov a,gndstart_timer2
cjne a,#40,cont_service ;1 s (40x25 ms)
setb loopswitch_ ;huroknyitás 1 s-on belül, ha sub nem fejezte be a hurkot
call write_px2
contservice:
jb fcall,ring_control ;ALERT állapot csengetéshez
jmp onhooktimers jegyébként időzítők frissítése
;Csengetünk, ha a TRU ÁLÉRT állapotban van (bejövő hívás várakozik)
ringcontrol:
jb fbellsound,timing_ring ;ha a csengőciklus folyamán nem szól a csengő, csengő föld ellenőrzése válasz indikálásához csengetőimpulzusokra
jb ring ground ,timing ring ;ha nincs föld, a csengő időzítése. Csengő leállásakor az impulzust figyelmen kívül hagyni
mov a,bell_timer2 jinicializálások 25 ms-onként
cjne a,#0,start bellsound ;minden csengő föld érzékelése 25 ms után
mov a,#28 ;29x 277,8 ps=8,l ms
clr c ;kivonásra kész
subb a,bell_timer
jnc timingring ;a csengő beállása után 8,1 ms-ig nincs átvitel. 8,1 ms-ig csengő földet figyelnen kívül hagyni
jmp startbellsound ;ha a csengő föld jelzi, off-hook a szünetidőben, 20 Hz ismét indu
HU 219 932 Β timing ring:
inc belltimer ;277,8 ps-onként
mov a,bell-timer
cjne a,#90,ringer_on ;25 ms (90x277,8 ps)
mov belltimer, #C jreset a következő 90-hez
inc bell_timer2 ;25 ms-onként
ringeron: jnb fbellsound,ringer_off ja csengő most nem szól
jCsengetési idő 1,95 s-ról 1,975 s-ra módosítva, mert a csengő a pozitív csúcsnál leáll, ami folyamatos csengetést ered ményez. Ez a probléma jelentkezett maxjackkel alkalmazott 5 csengőnél, (ssh) checkstopbellsound:
mov a,bell_timer2 jeltelt „csengő be” idő
cjne a,#59,onhook_timers jBrif kevesebb mint 79 χ 25 ms=1,975 s
mov a,bell_timer ;45 χ 277,8 ps=12,5 ms (ossz. 1,987 s)
cjne a, #45,onhook_timers jcsengetés megáll 1,987 s után negatív csúcson, utolsó ciklusban normál cseng.
stopbellsound:
mov ccapm2,#0 jpwm eng.
clr fbellsound ;0=a csengő nem szól
mov dptr,#table_null jnulla hangra mutat (nulla hangnál nincs AC kimenet, i telep)
mov lowpoint,dpi jnulla start
mov highpoint,dph
mov ccapm2 ,#01000010b jpwm eng.
clr ea
clr no-ring
call write_px2
setb ea
call watchdog
jmp resetbelltimers jresetidőzítők
ringeroff:
mov a,bell_timer2
cjne a,#l 20,onhook_timers ;4 s csengetés nélkül (160 χ 25)
startbellsound:
call resetio
call write_pxl
call write_px2
clr ea
setb noring
call write_px2
setb ea
mov ccapm2,#0 ;pwm eng.
mov dptr,#table_20 ;20 Hz
mov lowpoint,dpi ;táblázat kezdete
mov highpoint,dph
mov ccapm2 ,#01000010b ;pwm eng.
test_relayl:
setb fbellsound ;1 = csengő most szól
resetbelltimers.
mov bell_timer,#0
mov bell_timer2,#0
onhook timers:
inc time onl ;277,8 ps-enként amíg onhook
mov a,time_onl
cjne a,#36, onhock_done ;36χ 277,8 ps=10 ms
inc time_on2 ;10 ms-onként amíg onhock:
mov time_onl,#0 jreset a következő 36-hoz
mov a,time_on2
HU 219 932 Β cjne inc not_inc255: jb testfhangl:
a,#0,not_inc255 testmin frohtimeout,onhook done ;10 msx255=.255 s
jb fonhook,onhook_done ;ne legyen újabb bontás, ha egy már van
test_fhang2:
mov a,time on2 jONHOOK STATUS
cjne a, #70,onhook_done ;700 ms bontást jelez
cjne a,#30,onhook_done ;700 ms bontást jelez
test fhang3:
setb fhang jbontási jelző beáll
clr finuseofftiming jidőzítő leállítása lehetséges távoli bontás megelőzésére
onhookdone:
pop acc
pop psw
rét
1. időzítő (THO) offhook megszakítás kiszolgáló rutin
offhook timer
push psw jbeviteli státus mentése
push acc
jnb fspec2,check_strobe ;spec2 nincs eng.
call spec2 jegyébként TRU specifikus tászk végzése
;DTMF számjegy vizsgálata, és kiolvasása az MT8870-ből, ha van elérhető
check strobe:
call read_pxl_strobe
jb strobe,decodedtmf ;egy DTMF számjegy várakozik
clr fdecoderbusy ;reset, ha kapujel megszűnt
jmp ttime ;és offhook időzítő tászk
decode dtmf:
jb fdecoderbusy,ttime ;DTMF számjegy már kiolvasva
call read_pxl ;különben most kiolvasni
setb fdtmfm ;1 =DTMF számjegy megérkezett
setb fdecoderbusy ;1 = DTMF számjegy feldolgozása folyamatban
jEltelt offbook idő vizsgálata, display-k frissítése 71 ms-onként, és start-end ROH hang, ahogy szükséges
ttime:
inc time offl ;offbook időzítő (@ 277.8 ps)
mov a,time offl ;offhook idő
JMP TEST HOOK
cjne a,#O,t one sec ;Brif < 256x277 ps=71,l ms
inc time of£2 jnagyobb időzítő indítása 71,1 ms-onként
call updatedisplays jffissítés 71,1 ms-onként
mov a,time_off2 jnagyobb offhook idő
cjne a,#O,t one sec ;Brif < 256x71,1 ms=18,2 s
inc timeoff? ;teljes offhook időzítő ind. (@ 18,2 s)
t one sec:
mov a,time_off2 jnagyobb offhook idő
cjne a,#14,trohtimer ;Brif < 14x71,1 ms=995 ms eltelt
setb f_ onesec ;az INUSE lámpa ilyen változása nem okoz bontást, ha a tele-
font a bontás után túlságosan gyorsan veszik fel
HU 219 932 Β trohtimer:
jb fsend,tdone jhívás kezdeményezése (nem ROH)
jnb inuse,tdone jINUSE (nem ROH)
incr5 jkisebb ROH start/end időzítő ind.
cjne r5,#36,trohstart jBrif < 35 χ 277,8 ps=10 ms eltelt
inc r7 jkisebb ROH on/off időzítő ind.
mov r5,#0 jreset (10 ms)
cjne r7,#10,trohstart jBrif < 10 χ 10 ms=100 ms eltelt
cpl roh on ;ROH on/off 100 ms-onként
mov r7,#0 jreset másik on/off fázishoz
trohstart:
mov a,time_off3 jteljes eltelt offhook idő
cjne a,#2,trohquit jBrif < 2x18, 2=36,3 s eltelt
mov a,time_off2 jtovábbi főidő is
cjne a,#51, trohquit jBrif < 40 s teljes offhook
setb í ftime ;1 = ROH periódus indult
trohquit:
mov a,time_off3 jteljes offhook idő ismét
cjne a,#5,tdone jBrif <5xl8,2=91s eltelt
mov a,time_off2 jtovábbi főidő is
cjne a,#127,tdone jBrif < 91+(127x71,1 ms)=100 s
setb ffohtimeout ;1 = ROH periódus eltelt
tdone:
jnb fstart,tdoneO ;„első” után nincs 500 ms időz.
mov a,time_off2 jeltelt offhook idő
cjne a,#4,tdonel jBrif < 285 ms eltelt
cjne a,#7,tdonel jBrif < 500 ms eltelt
clr fstart jonhook inic. 500 ms után újra eng.
;Ide akkor jutunk, ha 500 ms eltelt az egyes bontásokat követő első offhook után.
tdoneO:
jnb lc_,tdonel joffhook most
test trO:
clr trl jkülönben offhook időzítő stop
setb tdone 1: tiO ;és onhook időzítő start
ΡθΡ acc jvisszaállítás
pop réti psw
Külső megszakítás 0 kiszolgáló rutin
offhook edge:
jb frohtimeout,offhook retuml
jnb fcall, nőt inc call
jnb no_ring,ok_wait
setb ring jcsengő ki
call write_px2
clr no ring
call write_px2
setb retum ring
clr ieO jfuggő EXO (LC_) megszakítás érvénytelenítése
clr trO jonhook időzítő és jelző ki
clr tfö jonhook időzítő inic.függő
HU 219 932 Β okwait:
mov r7,#0ffh
loop ring:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,loop_ring
jnb lc_,no_set
estaset:
jnb retum_ring,do_not_retum
call resetio
call write_pxl
call write_px2
setb noring
clr ring_ jcsengő ki
call write_px2
clr retum ring
mov r7,#07fh
loopringl:
mov r6,#0ffh
djnz r6,$
call watchdog
djnz r7,loop_ringl
donotretum:
call resetio
call write_pxl
call write_px2
setb trO jonhook időzítő és jelző ki
mov tl0,#0 réti offhookre túrni:
jmp offhookretum
nőset:
nőt inc call:
clr trO jonhook időzítő és jelző ki
clr tfö ;ha onhook időzítő int függő
push psw
push acc
clr ieO jfuggő EXO (LC_) megszakítás érvénytelenítése
setb trl joffhook időzítő start
clr fhang jbontási jelző törlése
mov thO,#O joffhook időzítő rését
mov time_offl,#0 jidőzítők thO megszakításokkal inkrementálva
mov time_ofí2,#0
mov time_off3,#0
clr mute ;rx audio-némítás megszűnt
call write_px2
jnb fonhook,check_flash jnem volt bontás, újra offhook
clr fonhook jjelző törlése, most bontás volt
okoffhook:
jnb fcall,set hook flag jnem ÁLÉRT állapotban
setb fanswer ;1=offhook bejövő hívás folyamán
clr fcall jALERT jelző törlése (hívott válaszol)
setb ring_ jcsengő ki
call write_px2
clr noring
call write_px2
mov ccapm2,#0 jcsengő pwm stop
HU 219 932 Β
clr jmp twenty_hz_pwm offhookdone ;kimeneri csatlakozó alacsony szinten
set hook flag:
setb fhook joffhook jelzés, ha nem ÁLÉRT állapotban
jmp offhookdone
check_flash:
mov a,#19 ;20x 10=200 ms
clr c játvitel törlése kivonáshoz
subb a,time_on2 ;200-700 ms flash
jnc checkdigit
jnb lock,offhook_done ;nincs flash, ha TRU lezárva
setb fflash ;flash jelző beáll
jmp offhookdone
checkdigit:
mov a,#l ;2x 10=20 ms
clr c játvitel törlése kivonáshoz
subb a,time_on2 ;20-200 ms impulzus
jnc offhookdone ;glitch
inc pulsedigit tartalmazza a számot
setb fdigit tehetséges számjegyjelző
offhookdone:
mov time_onl,#0 jonhook időzítők rését, úgyhogy bontásnál újraindíthatok
mov time on2,#0
mov tlO,#O
ΡθΡ acc
pop psw
offhookretum: réti
PCA megszakítás rutin ;PCA megszakításokat modul 0-k (szoftveridőzítés) használatával generálunk; komparálási/egybevetési lehetőség minden alacsony számértéknél=FF match. Ezen a módon mindegyik lap végén megszakítást generálhatunk, 00FF-0100, 01FF-0200 stb., ami megszakítást eredményez minden (256 χ 1,085 ps) 278 ps-ban. Ez a Maxjack implementáció feltételes asszemblert használ módosított PCA kiszolgálórutin létrehozásához különlegesen nagy adatátviteli sebességű TRV-khoz (Audiovox a másik PCA rutint igényli).
$ge pcaservice:
%if(%intmask ne 0) then
push ie jharmadik megszakítás prioritási szint szimulálása
mov ie,#%intmask ;TRU szekcióban definiálva
call masklabel ;reti végrehajtása
push acc
push psw
mov a,ccapml ;hang pwm
orl a,ccapm2 ;csengő pwm
anl a,#00000010b ;pwm bit
jz pcadone jkövetkező részt kihagyni, ha nincs hang vagy csengetési
kimenet
mov a,#0 jmutató inic.
ble:
movc a,@a+dptr jadatok táblázatból
cjne a,#255, write_tone
mov dph,highpoint ;index rését, ez a táblázat vége
mov dpl.lowpoint
HU 219 932 Β
mov a, #0 ;így az index helyes lesz
jmp readtable ;első bevitel olvasása
writetone:
mov ccaplh,a jadatok hang pwm-be
mov ccap2h,a jadatok csengő pwm-be - csak a hang vagy csengő pwm fut bármelyik adott időpontban
inc dptr jkövetkező bevitel a következő időpontban
pcadone:
clr ccfö 0 moduljelző rését
clr ea inic. tiltás
mov ccap01,#0ffh újratöltés és komparátor felfügg.
mov a,ccap0h utolsó lap
inc a jkövetkező lapra mutat
mov ccapOh,a töltés és komparátor újraind.
setb ea inic. újraeng.
ΡθΡ psw
pop acc
Pop ie jeredeti ints visszaáll
rét
masklabel:
réti ) else (
push acc
push psw
mov a,ccapml ;hang pwm
orl a,ccapm2 jcsengő pwm
anl a,#00000010b ;pwm bit
jz pcadone jkövetkező részt kihagyni, ha nincs hang- vagy csengőkimenet
;Ha most tárcsahangot generálunk, akkor a pillanatnyi értéket a kiválasztott hangtáblázatból vesszük, és a PCAl-re küldjük, úgyhogy megfelelő DTMF frekvencia keletkezik CEXl-en (például 4).
do_pca:
mov a,#0 jmutató inic.
readtable:
movc a,@a+dptr jadatok táblázatból
cjne a,#255, writetone
mov dph,highpoint jindex rését, ez a táblázat vége
mov dpl.lowpoint
mov a,#0 ;így az index helyes lesz
jmp readtable ;első bevitel olvasása
writetone:
mov ccaplh,a jadatok hang pwm-be
mov ccap2h,a jadatok csengő pwm-be - csak a hang vagy csengő pwm fut bármelyik adott időpontban
inc dptr jkövetkező bevitel a következő időpontban
pcadone:
clr ccfö ;0 moduljelző rését
clr ea ;inic. tiltás
mov ccap01,#0fíh jújratöltés és komparátor felfügg.
mov a,ccapOh jutolsó lap
inc a jkövetkező lapra mutat
mov ccap0h,a jtöltés és komparátor újraind.
setb ea ;inic. újraeng.
pop psw
Pop acc
réti
)fi
$noge
HU 219 932 Β
1/0 segédrutinok
write_pxl: jadatok pxl_temp-ből pxl-be
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr ioselect
push acc
push 0 jpush rO
setb aO
clr al
mov a,pxl temp
anl a,#l 1110000b
mov b,a
mov a,px2 temp
anl a,#00001111b jbemeneti bitek magas szinten
orl a,b
mov rO,#OOh jalacsony cím I/O chip pxl tárolóhoz
movx @rO,a
setb aO
setb al
ΡθΡ 0 ;r0 visszaállítás
pop acc
pop ie jmegszakítás státus vissza
rét
read_pxl:
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr ioselect
push acc
push 0 jpush rO
setb aO ;A
clr al
mov r0,#0h jalacsony címbájt I/O chip pxl csatlakozókhoz
movx a,@rO
anl a,Tr0001111b jkimeneti bitek maszkolása
anl pxl_temp,#l 1110000b jbemeneti bitek maszkolása pxl_temp-be
orl pxl_temp,a jani bemeneteket és kimeneteket egy bájtba egyesíteni
setb aO
setb al
pop 0 jpoprO
pop acc
pop ie jmegszakítás státus vissza
rét read_pxl_strobe:
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr io_select
push acc
push 0 jpush rO
clr aO ;A
clr al
mov rO,#Oh jalacsony címbájt I/O chip pxl csatlakozókhoz
movx a,@rO
mov io_status,a
setb aO
setb al
HU 219 932 Β
ΡθΡ Pop pop rét 0 acc ie ;pop r0 jmegszakítás státus vissza
write_px2: jadatok px2_temp-ből px2-be
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr ioselect
push acc
push 0 ;push rO
setb aO ;B
clr al
mov a,pxl temp
anl a,#l 1110000b
mov b,a
mov a,px2 temp
anl a,#00001111b jbemeneti bitek magas szinten
orl a,b
mov rO,#OOh jalacsony cím I/O chip pxl tárolóhoz
movx @r0,a
setb aO
setb al
pop 0 ;r0 visszaállítás
pop acc
pop ie jmegszakítás státus vissza
rét
writeioc: jadatok px2_temp-ből px2-be
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr ioselect
push acc
push 0 jpush rO
clr aO
setb al
mov a,lamps temp
anl a,#l 1110000b
rl a
rl a
rl a
rl a
mov rd,#00h jalacsony cím I/O chip pxl tárolóhoz
movx @r0,a
setb aO
setb al
pop 0 ;r0 visszaállítás
Pop acc
pop ie jmegszakítás státus vissza
rét
read_px2:
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
clr ioselect
push acc
push 0 jpush rO
clr aO ;c
setb al
mov rO,#Oh jalacsony cím I/O chip px2 csatlakozókhoz
HU 219 932 Β
movx a,@rO
anl a,#l 1110000b jkimeneti bitek maszkolása
anl px2_temp,#00001111b jbemeneti bitek maszkolása px2_temp-be
orl px2_temp,a jbemenetek/kimenetek egyesítése egy bájtba
setb aO
setb al
ΡθΡ 0 ;pop rO
POP acc
pop ie jmegszakítás státus vissza
rét
readioma: jadatok px2_temp-ből px2-be
push ie jmegszakítás státus mentése
clr ea jnincs megszakítás
setb ioselect
push acc
push 0 ;push rO
clr aO ;B
clr al
mov rO,#OOh jalacsony cím I/O chip pxl tárolóhoz
movx a,@rO
setb aO
setb al
clr io select
POP 0 ;r0 visszaáll.
pop acc
pop ie jmegszakítás státus vissza
rét
writeiomb: jadatok pxl_temp-ből pxl-be
push ie jmegszakítás státus mentése
setb ioselect
clr ea jnincs megszakítás
push acc
push 0 jpush rO
setba 0 ;B
clr al
mov a,io m b
mov rd,#00h jalacsony cím I/O chip pxl tárolóhoz
movx @rO,a
setb aO
setb al
clr io select
pop 0 ;r0 visszaáll,
pop acc
pop ie jmegszakítás státus vissza
rét
writeiomc: jadatok px2_temp-ből px2-be
push ie jmegszakítás státus mentése
setb ioselect
clr ea jnincs megszakítás
push acc
push 0 jpush rO
setb aO ;B
clr al
mov a,io m c
mov rO,#OOh jalacsony cím I/O chip pxl tárolóhoz
movx @rO,a
setb aO
HU 219 932 Β
setb al
clr io select
ΡθΡ 0 ;r0 visszaáll.
pop acc
Pop ie ;megszakítás státus vissza
rét
rését io m:
push ie ;megszakitás státus mentése
clr ea ;nincs megszakítás
setb ioselect
push acc
push 0 ;push rO
setb aO ;kontroll
setb al
mov rO,#Oh jalacsony cím I/O chip px2 csatlakozókhoz
mov a,#10010000b
movx @rO,a
setb aO
setb al
eh io select
pop 0 ;pop rO
pop acc
pop ie ;megszakítás státus vissza
rét
resetio:
push ie ;megszakítás státus mentése
clr ea ;nincs megszakítás
clr ioselect
push acc
push 0 ;push rO
setb aO ;kontroll
setb al
mov rO,#Oh jalacsony cím I/O chip px2 csatlakozókhoz
mov a,#10011000b
movx @rO,a
setb aO
setb al
clr io select
pop 0 ;pop rO
pop acc
POP rét ie ;megszakítás státus vissza
Segédrutinok ;Általános üzenetek a TRU és Celljack között menthetők a hibakereséshez. Ez az üzenetpuffer 90h-tól FFh-ig tart.
clrmsg:
push 1 mov rl,#msgbuf_start mov msg_ptr,rl clr_ msgl:
mov @rl,#55h inc rl cjne rl,#msgbuf_end,clr_msgl ;R1 mentése jüzenetpuffer kezdetére mutat jpuffer start mentése ;55h maszkkal tölteni ;következő helyre mutat ;a puffer végéig
HU 219 932 Β
ΡθΡ 1 rét savemg:
push 1 mov rl,msg_ptr cjne rl,#msgbuf_end,saveml mov rl,#msgbuf_start saveml:
mov @rl,a inc rl mov msg ptr.rl ΡθΡ 1 exit:ret ;R1 visszaállítása ;R1 mentése jpillanatnyi mutató jüzenetpuffer még nincs tele ;újra a startra mutat, ha tele ; msg mentése pufferban jelőre mutat jmentés a következő időre ;R1 visszaállítása ;A kézi készülék LCD kijelzőjének másolása a display puffer RAM-jából.
clrdsp:
push 1 mov rl,#dspbuf_start mov dsp_ptr,rl clrdspl:
mov @rl,#Offh inc rl cjne rl,#dspbuf_end,clr_dspl pop 1 rét ;R1 mentése jüzenetpuffer kezdetére mutat jpuffer start mentés ;FFh maszkkal tölteni jkövetkező helyre mutat ja display puffer végéig jRl visszaállítása jBizonyos TRU-k a kézi készülék LCD kijelzőjének információját egy helyi display pufferba mentik.
savedsp:
push 1 mov rl,dsp_ptr cjne rl,#dspbuf_end,save_dspl mov rl,#dspbuf_start savedspl:
mov @rl,a inc rl mov dsp_ptr,rl pop 1 save_dsp2:
jinclude (SPAIN.asm) rét ;R1 mentése jpillanatnyi mutató jüzenetpuffer még nincs tele jújra a startra mutat, ha tele ; msg pufferba mentése jelőre mutató jmutató a következő időre ;R1 helyreállítása $nolist $include (SPAIN4.asm)
Slist nop nop end;
HU 219 932 Β
TÁVFENNTARTÁSI TÁVJELENTÉS mmakecall - hívás a jelentéshez
mmakecall:
mov rO,#counterl
mov @rO,#O3h
mov R0,#call_back2
mov a,@R0
anl a,#01111111b
mov @R0,a
jhívás befejezetlen bit törlése mrwhoinvoke:
mov R0,#call_back2 mov a,@R0 anl a,#01100000b mov rO,#options cjne a,#00000000b,mr_test_manual jmp mrresetinvoked mrtestmanual:
cjne a,#00100000, mrtestauto jmp mrautoinvoked mrtestauto: cjne jmp mrresetinvoked:
jmp mrwhoinvokeend mr-manual_invoked:
mov a,@rO anl a,#00000010b jnz mr_who_invoke_end jmp mcalltestend mr_auto_invoked:
jb error flag,mr auto invoked cont jmp mcalltestend ;ki kéri a tesztet ;és engedélyezve van-e a teszt erre az opcióra ;X00X XXXX - rését ;X01X XXXX - autó (timer) a,#01100000b,mr manual invokedjXIOX XXXX - manual mr tele invoked ;Χ1 IX XXXX - távfelügyelet jengedélyezve mrautoinvokedcont:
mov a,@rO
anl a,#00000001b
jnz mrwhoinvokeend
jmp mrwhoinvokeend
jmp m_call_test_end
mrteleinvoked:
mov a,@rO
anl a,#00000001b
jnz mr who invoke end
jmp mcalltestend
mrwhoinvokeend: m_check_power:
jnb power,mcheckservc
jmp mcalltestend
jengedélyezve jengedélyezve jengedélyezve jrádió tápfesz ellenőrzése
HU 219 932 Β
mcheckservc
jb noserv,m_calling ;szolg. ellenőrzése
mov R0,#call_back2 ;használata visszahívásnál
mov a,@R0
orl a,#10010000b
mov @R0,a
jmp mcalltestend
mcalling:
;PCR csúsztatásával vizsgálni, hogy a teszt meghiúsult-e
jb testenable, $+6
ljmp mcalltestend
call datos-radio
mov a,#2
call delay2 ;1 s késleltetés
get_TMC_phone_Number:
;PCR csúsztatásával vizsgálni, hogy a teszt meghiúsult-e
jb testenable, $+6
ljmp mcalltestend
mov r2,#
mov rl,#calling_num
mov a,@rl
swap a
anl a,#00001111b
mov rl, a
call checktelnumber
cjne a,#Offh,m_calling_con
;Kiegészítés 94/10/12-én a következő elérhető telefonszám vizsgálatára, ha a távfenntartó központ száma érvénytelen
call mov call ext watchdog a,#l delay2 ;2,5 s késleltetést kivárni
rését retry counters
mov r0,#call_back2
mov a,@rO
anl a,#l 1100000b ;call_back2 számlálók törlése
mov @rO,a
mov rO,#attempt
mov a,@rO
swap a
anl a,#00001111b ;új call_back2 számlálók
mov r0,#call_back2
orl a,@rO
mov @rO,a
mov rO,#calling_num
mov a,@rO
swap a
inc a
swap a
mov @rO,a
HU 219 932 Β
anl a,#Oföh
cjne a,#70h,get_tmc_phone_Number
Utolsó telefonszámot elértük, további keresést nem végzünk, összes jelző vissza normálra, i
mov R0,#call_back2
mov a,@R0
anl a,#Olllllllb
mov @rO,a
call resetclock
clr testjpending
jmp m_pre_onhook jkilépés ebből a rutinból
mcallingcon:
jb apl,m_sending
jmp mcalltestend
msending:
mov a,#send
call wrbus
mov r0,#8
mloopd8s:
;A PCR csúsztatásával ellenőrizni, hogy a teszt meghiúsult-e
jb test_inable,$+6
ljmp m call end2
mov a,#l
call delay2
djnz r0,mloopd8s
mcalled:
mov r0,#count200 jszámláló inic. 200 ms impulzusokhoz
mov @r0,#09
mov r0,#count600 jszámláló inic. 200 ms impulzusokhoz
mov @r0,#03
mov rO,#count eng ;számláló inic. útfoglaláshoz
mov @rO,#5Oh
mov rO,#count tone jcsengetőhang számláló rését
mov @r0,#0
mov Tl_Timer,#0 ;T1 (10 s) időzítő rését
clr mute jhangjel eng.
call writeiob ;****;px2
mov timelO ms,#0 jidőzítők 1 perc várakozásra
mov timerlO ms,#0
mov timel ms,#59
mov time_lm,#l
mov time_lhr,#l jholtidő, hogy a számláló ne fusson ki
mcheckinuse:
jnb inuse,m_t_425_ver ;ha inuse hiányzik
jmp mcallend
m_t_425_ver: ;t_425 hangot detekt.
mov rO,#max_active ;max. idő inic.
mov @r0,#250
mov rO,#filter ;max. idő inic.
mov @r0,#00100001b
mov io_m_a,#00100001b ;maszk jelzéshez
HU 219 932 Β ;Kézzel kapcsolt teszt meghiúsulásának vizsgálata jb testenable, $+6 ljmp m_call_end2 ;T1 időzítő vizsgálata
call checkTITimer jnc contver jmp mcallend jmeghiúsult hívás, TI időzítő lejárt
contver:
;Magas jelszint ideje
call verify_ jelőfizető hívása
;A PCR csúsztatásával ellenőrizni, hogy a teszt meghiúsult-e
jb testenable, $+6
ljmp m_call_end2
clr c
subb a,#12 ;****;14 falla-25db-> 150 ms
jc m_nnt_yet ;ha time on < .150, nem érv.
mov a,b
clr c
subb a,#27 ;****;25 falla -8db -> 250 ms
jc m_check_off_200 ;ha ,150<time on <.250, akkor time off vizsgálata
mov a,b
clr c
subb a,#88 ;****;90;ha .250<time on<9 s, idő nem érvényes
jc mbadtiming
mov a,b
clr c
subb a,#138 ;****;140;ha .900<time on<l,4 s idő nem érvényes
jnc m check ring b jmp mbadtiming m check ring b:
mov clr subb jc a, b c a,#162 m_check_off_3s ;****;170;ha 1,4 sctime on<l,7 s csengetőhang ellenőzése
jmp mbadtiming
m check off_200:
mov rO,#filter ;max. idő inic. vizsgálathoz
mov @rO,#l 1100001b
mov io_m_a,#l 1100001b jmaszk jelzéshez
call verifyoff jhívás előfizetőnek time off ellenőrzéséhez
;PCR csúsztatásával ellenőrizni, hogy a teszt meghiúsult-e
jb testenable, $+6
ljmp m_call_end2
clr c
subb a,#15
jc mbadtiming ;ha time off<. 150, nem érv.
HU 219 932 Β
mov a,b
clr c
subb a,#30
jc m_t_200_ok
mov a,b
clr c
subb a,#50
jc mbadtiming
mov a,b
clr c
subb a,#75
jc m_t_600_ok
mbadtiming:
mov r0,#count200
mov @r0,#9
mov r0,#count600
mov @r0,#3
m_nnt_yet:
call check_dtmf4
jnc m_nnt_yyet
jmp m_path_engaged_detected
m_nnt_yyet:
call read io m a
anl a,#10000000b
cjne a,#10000000b,mtonever
m_nnnt_yet:
call extwatchdog;*;
jmp m_not_yet
m_tone_yer_:
jmp mtonever
m_t_600_ok:
mov r0,#count200
mov a,@rO
clr c
subb a,#6
jnc m_t_600_cad
jmp mbadtiming
m_t_600 cad:
mov @r0,#9
mov r0,#count600
mov a,@rO
dec a
mov @rO,a
jnz m_nnt_yet
jmp mcongestok
m_t_200_ok:
mov r0,#count200
mov a,@rO
dec a
mov @rO,a
.****•25 ;ha ,150<time off<.250 ;ha .250<time off<.500, nem érvényes ;ha .500<time offc.700, nem érvényes ;count 200=6 rését /count 600=3 rését ;400, 800 vagy 1020 hang vizsg. /mtonever egyenlő-e ;count 200=6 ;ha count 200=0, foglaltsági hang ;ha count 200=0, foglaltsági hang
HU 219 932 Β
jnz jmp m_nnt_yet mbusyok
check_off_3s: mov rO,#filter mov @rO,#l 1100001b mov io_m_a,#l 1100001b ;max. idő inic. vizsgálathoz ;maszk jelzéshez
mov mov call r0,#max_active @r0,#250 verifyoff jelőfiz. hívása time off ellenőrzéshez
clr subb c a,#250
jc mbadtiming ;ha time off <2,4 s, 400 hang lehetséges
call verifyoff ;hívás time off ellenőrzésére
;PCR csúsztatásával ellenőrizni, hogy a teszt meghiúsult-e
jb ljmp mov clr subb jc test_enable,$+6 m_call_end2 a,b c a,#36 mbadtiming ;ha timeoff <2,8 s, 400 hang lehetséges
mov a,b
clr c
subb a,#60 ;ha 2,8< time off<2,4+.65=3.5 s csengetés
jc mRingBackToneOK
jmp mbadtiming
m_not_yet:
mov a,time_lm ;még nincs detektálás
jz mtimeout
jmp mcheckinuse
mtimeout:
jmp mcallend
mtonever: ;400, 800 vagy 1029 Hz hang detektálva
mov rO,#max activ ;max. idő inic.
mov @r0,#240 ;max. mintavételi idő 240 x 10 ms=2,4 s
mov rO,#filter
mov @r0,#10000000b
mov io_m_a,#10000000b ;maszk jelzéshez
call verify_ jelófiz. hívása
clr c
;70 ms;
subb a,#06 ;ha hang>800 ms, hang ok
subb a,#05 ;ha hang<50 ms, hang érvénytelen
jc m_not_yet
jmp m_tone_ok
; Érvényes csengetőhangot detektáltunk mRingBackToneOK:
mov a,time_lm jz mtimeout ;T4 időzítő ellenőrzése
HU 219 932 Β
mov rO,#count_tone jcsengetőhang-számláló inkrementálása
inc @r0
mov Tl_Timer,#0 ;T1 időzítő rését
mov rO,#filter jjelmaszk
mov @rO,#l 1100001b
mov rO,#max_active ;max. jeldetektálási idő beáll.
mov @r0,#250 jmp mcheckinuse m_path_engaged_detected:
mcongestok:
nop m_busy_ok_: ;használata visszahívásnál
mov mov orl mov jmp R0,#call_back2 a,@R0 a,#10010000b @R0,a m_call_end2
mtoneok:
;Érvényes 1020 Hz-es hang vétele a távfenntartó központból
;Üzenetcsomag átvitele most indul
call extwatchdog;*;
;300 ms-ről 2 s-re változtatás 94/8/19-én
mov rl,#10
;delay_2s:
mov a, #20
call delayl
call extwatchdog
djnz rl,delay_2s
call reportalarmas
;PCR csúsztatásával megvizsgálni, hogy a tesz meghiúsult-e
jb testenable, S+6
ljmp m_call_end2
mov time_10 ms,#0
mov timerlO ms,#0
mov time_ls,#10
mov time_lm,#3
mm_check_inuse:
jnb inuse,mmtver ;ha inuse hiányzik
jmp mcallend
mmtver:
call read io m a ;400, 800 vagy 1020 hang vizsgálata
anl a,#10000000b
cjne a,#10000000b,mm_tone_ver ;ha egyenlő mtonever
jmp mm_not_yet
mmtonever:
mov r0,#max active ;max. idő inic.
mov @r0,#240 ;max. mintavételezési idő 240 χ 10 ms=
mov rO,#filter
mov @r0,#10000000b
mov iorna,#10000000b ;maszk jelzéshez
call verify_ jelőfiz. hívása
HU 219 932 Β ;PCR csúsztatásával megvizsgálni, hogy a teszt meghiúsult-e
jb testenable, $+6
ljmp m_call_end2
clr c
70 ms;
subb a,#05 ;ha hang <50, hang érvénytelen
jc mm_not_yet ;Üzenet átvitele a távfenntartó központnak sikeresen megtörtént, nyugtázás megérkezett.
clr test_pending
jmp m_call_end2
mm_not_yet:
call extwatchdog
mov a,time_ls
jnz mm_check_inuse
mov rO,#counterl
mov a,@rO
dec a
mov @rO,a
jz transmitionerror
jmp mtoneok; * * * * ;mm_check_inuse
transmitionerror:
mov RO,#mainl_flag_error
mov a,@R0
orl a,#00000010b
mov @R0,a
mov RO, #error_code
mov @RO,#code_xmit_error
mov a,#2
call delay2
callend:
jmp mbusyok
_call_end2:
mov a,#clear
call wrbus
clr connloop
call write io m b
mov a,#l
call delay2
waitinusej off:
clr ffemotehup;****;
call hup
setb fremote hup,****;
mov a,#4
call delay2
setb mute
jmp mcalltestend
;a teszt végét jelzi ;kí lépési rutin ;még nincs detektálás ;****;m_tone ok .****. » >
jinuse hiba beáll késleltetés hibakijelzéshez késleltetés ;nem szükséges késleltetés 4x2,5 s jtörlési kód jbármilyen kód törlése a rádiómemóriában ; onhook és a modul lekapcsolása
HU 219 932 Β _pre_onhook:
calltestend:
rét ;T1 (10 s) időzítő ellenőrzési funkció
A TI időzítő aktív, ha legalább egy csengetőhangot detektálunk. TI idő leteltének jelzése
CheckTITimer:
mov rO,#count_tone mov a,@rO cjne a,#0,tonedet jmp ExitCheckTl tonedet: jkorábban legalább egy hangot detektáltunk mov a,Tl_Timer clr c subb a,#10 jc ExitCheckTl setb c rét
ExitCheckTl:
clr c rét
Timer2/EXT2 megszakítás kiszolgáló rutin ;A rutin kiolvassa az adatokat a TRU-ból, és megfelelő tárolóhelyekre helyezi intlservice:
rdbus:
CLR EA push psw push acc contcheckingwrite:
jb read,cont_read jnb Sdata_tru,check_write setb read checkwrite:
jb inte_enable,cont_write jnb write,checkmessage check_write2:
clr sdatacu setb inteenable sjmp checkmessage contread:
mov a,sdata_in rr a mov c,Sdata_TRU mov acc.7,c mov sdata_in,a djnz bits_left_in,check_write mov bits_leff_in,#8 clr read setb datavalid sjmp checkwrite contwrite:
mov a,sdata_out mov c,acc.O ;írás jelzése ;írást jelző flag jolvasás bit jadatbit acc-be jelőkész. következő bájtra ;8 bites üzenet jelzése ;shift out bit
HU 219 932 Β
mov Sdata_CU,c jugyanaz
rr a ;acc-t balra forgatni
mov Sdata_out,a
djnz bitsleft our,shift_next ;amíg mind a 8 bit ki
setb SdataCU
clr write
mov bits_left_out,#9
clr inteenable jírást jelző flag
shiftnext:
mov a,sdata_in checkmessage:
jbc datavalid,dataOK jmp rdbusdone ;Egy 8 bites üzenetet vettünk. Üzenet dekódolása most.
Egy korábban várt üzenet azonosítása a jelzők vizsgálatával
dataOK:
jbc rssi,SaveRSSI jkorábbi rssi státus?
jbc f_goodid,read_status jkorábbi üzenet kód 50?
jbc f_60,msg_60 jkorábbi tari üzenet 60?
jbc f-61,msg_61 jkorábbi tari üzenet 61?
jbc f_62,msg_62 jkorábbi tari üzenet 62?
jbc f_63,msg_63 jkorábbi tari üzenet 63?
jNincs beállított jelző, új üzenetnek vagy adatnak kell lennie ;Első vizsgálat, hogy bit 7 be van-e állítva
Ha igen, a számok nagyobbak, mint 80 hex
jnb ajmp acc.7,LessThan80hex GreaterThan80hex
SaveRSSI:
jRádiójel-erősség változó mentése
push 0
mov rO, #signal_strength
mov @r0,a
pop 0
ajmp rdbusdone
readstatus:
; Indikátorok üzenetvétele (Roam, NoService, InUse)
A megfelelő bit változók mentése egy bizonytalan, de gyors módszerrel mov c,acc.2 cpl c mov inuse,c mov c,acc.3 cpl c mov roam,c jnb acc.5,sserv clr noserv clr ringenable jcsengetés eng. no service után ajmp rdbusdone sserv:
setb noserv ajmp rdbusdone msg_60:
push 0 mov rd,#data_60 mov @r0,a
HU 219 932 Β
pop 0
setb send_60
ajmp rdbusdone
msg_61:
push 0
mov r0,#data_61
mov @r0,a
ΡθΡ 0
setb send_61
ajmp rdbusdone
msg_62:
push 0
mov rO,#data_62
mov @rO,a
pop 0
setb send_62
ajmp rdbusdone
msg_63:
push 0
mov rO,#data_63
mov @rO,a
pop 0
setb send_63
ajmp rdbusdone
LessThan80Hex
;A vett üzenet kevesebb mint code 80 hex
cjne a,#5 lh,check_low_status
setb rssi
ajmp rdbusdone
check lowstatus:
cjne a,#50h,check_60
setb fgoodid
ajmp rdbus_done
check_60:
jnb fcall,check60b
ajmp rdbusdone
checkóOb:
cjne a,#60h,check 61
setb f_60
ajmp rdbusdone
check_61:
cjne a,#6 lh,check 62
setb f_61
ajmp rdbusdone
check_62:
cjne a,#62h,check 63
setb f_62
ajmp rdbusdone
check_63:
cjne a,#63h,Chk3
setb f_63
ajmp rdbusdone
Chk3:
cjne a,#03h,Chk2d
setb power on
ajmp rdbusdone
;rssi státus beállítása ;tari; ha nem 50, státusvizsg.
;azt jelzi, hogy az üzenet 50 volt ;tari;
;ha bejövő hívás, nem kell tarifát vizsgálni ;ha a vizsgálati státus nem 60, az üzenet volt 60 ;ha a vizsgálati státus nem 61, az üzenet volt 61 ;ha a vizsgálati státus nem 62, az üzenet volt 62 ;ha a vizsgálati státus nem 63, az üzenet volt 63
HU 219 932 Β
Chk2d:
cjne a,#02h,check_71
clr eincoming
clr aincoming
setb ap2
setb lock
ajmp rdbusdone
Check 71:
;Távfelügyeleti (Audit) ellenőrzés
cjne a,#71h,chk_73
ajmp settelesuptest
;Ellenőrzés hangcsatornán
chk_73:
cjne a,#73h,chk_74
ajmp setvchl
chk_74:
cjne a,#74h,check_othersL
ajmp set_vch2
chkothersL:
ajmp rdbusdone
Nagyobb mint 80 Hex :
;Az akkumulátorban levő érték nagyobb mint 80 hex jb acc.6,GreaterThanC0Hex ;A szám (n>=c0h), ha a bit be van áll.
jb acc.4,GreaterThan90Hex ;A szám (n>=90h), ha a bit be van áll.
;Az akkumulátorban levő érték a 80-8F vagy EO-EF tartományban van. cjne a,#085H,Check80to89Hex setb truison
Check80to89Hex: clr c subb a,#8ah jnc GreaterThan89 ;A szám (80h<n<=89h), mentés pufferba távfenntartáshoz. Egy várt memóriatartalom-szám lehet egy memóriaolvasási utasítás után.
mov a,sdata_in ;számjegy ismét, és pufferba mentés call savedsp ajmp rdbusdone
GreaterThan89:
;A szám (8ah< =n=8fh vagy EO-EF): érvénytelen karakterek, nem használjuk. Kilépés most.
GreaterThan90Hex:
cjne a,#095h,Chk91 setb eincoming jnb aincoming, notincominge ;Bejövő hívás vételi sorozat E->A->E (llamada EntrAntE) clr api mov ccapml,#0 clr eincoming clr aincoming notincominge:
ajmp rdbusdone
Chk91:
cjne a,#091h,Chk98 jnb e_incoming,Chk98 setb aincoming ajmp rdbusdone
Chk98:
cjne a,#098h,ChkBA clr lock ajmp rdbusdone
HU 219 932 Β
ChkBA:
cjne a,#0bah,ChkBB
jBejövő hívás (távfenntartás)
jb ringenableChkBB ;mant; Ne csengessen inic.-nál
clr incomingc jmant;
ajmp rdbusdone
ChkBB:
cjne a, #0bbH, ChkOther
jRádió ejtette a hívást, helyi vagy távoli bontás
setb api
clr eincoming
clr aincoming
ajmp rdbusdone
ChkOther:
jNincs további vizsgálat, kilépés most
ajmp rdbusdone
GreaterThanCOHex:
;Ezzel a kóddal (CO-FF) nincs speciális vezérlő üzenet, kilépés most.
ajmp rdbusdone
; Audit (A tesztet a távfenntartó központ aktiválja)
settelesuptest
setb audit code
jb test enable,rdbus done
push 0
mov R0,#call_back ;mant; és utána új teszt
mov a,@rO ;mant;
anl a,#00110000b ;mant; számlálók törlése, befejezetlen hívás
orl a, #00000000b ;mant; korábbi led státus megtartása és
mov @R0,a ;mant; csengetés engedélyezés jelző státus
mov R0,#call_back2 ;mant;
mov a,@R0
anl a,#00000000b ;mant; számlálók törlése, befejezetlen jelentés
orl a,#01100000b jhívás távfenntartástól
mov @R0,a jmant;
setb testenable
setb inittest
setb test_pending
POP 0
sjmp rdbus done
jHangcsatoma, vch bit beállítása setvchl: setb vchl sjmp rdbusdone set_vch2:
setb sjmp vch_2 rdbusdone
rdbus done:
clr datain
clr iel
SETB EA
pop acc
pop psw
réti
COPYRIGHT 1995 - TELULAR INTERNATIONAL, INC.

Claims (25)

  1. SZABADALMI IGÉNYPONTOK
    1. Öndiagnosztizáló berendezés cellás vagy celláshoz hasonló adó-vevő és egy ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatára, ahol egy földi típusú telefonkészülék DTMF vagy impulzus típusú tárcsajeleket digitális formára alakító illesztőegységen keresztül a cellás vagy celláshoz hasonló adó-vevővel van összekötve a földi típusú telefonon tárcsázott számnak a cellás vagy celláshoz hasonló rendszeren keresztül történő hívásához, azzal jellemezve, hogy a cellás vagy celláshoz hasonló adó-vevő és az ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység (14) helyes működésének tesztelését kezdeményező jelet előállító távtesztelés-inicializáló eszközt; és a távtesztelés-inicializáló eszközről kapott jel hatására a tesztelési folyamatot elindító távfenntartó egységet (10) tartalmaz.
  2. 2. Az 1. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a tesztelés eredményeit képviselő adatokat egy távoli távfenntartó központnak a cellás vagy celláshoz hasonló adó-vevő segítségével elküldő távjelentő eszközt tartalmaz.
  3. 3. A 2. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távoli távfenntartó központ a teszteredményeket képviselő adatokat fogadó és feldolgozó eszközzel rendelkezik.
  4. 4. A 3. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó központ a távfenntartó egységtől (10) a teszteredményeket képviselő adatokat kérő jelzőeszközt tartalmaz.
  5. 5. A 4. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó központ a távfenntartó egységnek (10) a teszteredményeket képviselő adatok sikeres vételét jelző eszközt tartalmaz.
  6. 6. Az 5. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy mindegyik jelzőeszköz egy 1020 Hz-es hangot generáló eszközt; a távfenntartó egység (10) pedig az 1020 Hz-es hangot vevő eszközt tartalmaz.
  7. 7. Az 5. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a teszteredményeket képviselő adatok átvitelét újramegkísérlő eszközt tartalmaz; ez az eszköz a teszteredményeket képviselő adatok újraátviteli kísérleteinek számát korlátozó eszközzel van ellátva.
  8. 8. A 2. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a távfenntartó központ telefonszámát a cellás vagy celláshoz hasonló hálózaton át hívó eszközt, valamint sikertelen első kísérlet esetén a hívást újramegkísérlő eszközt tartalmaz.
  9. 9. A 2. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó központ a távfenntartó egységnek (10) a cellás vagy celláshoz hasonló hálózaton keresztül az öndiagnosztizáló teszt végrehajtásához az öndiagnosztizáló berendezés működtetését kiváltó jelet küldő tesztinicializáló eszközt tartalmaz; továbbá a távfenntartó egység (10) a tesztinicializálójelet fogadó jelvevő eszközzel rendelkezik.
  10. 10. A 9. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a távfenntartó központ telefonszámát a cellás vagy celláshoz hasonló hálózaton keresztül hívó eszközt, valamint sikertelen első kísérlet esetén a hívást újramegkísérlő eszközt tartalmaz.
  11. 11. Öndiagnosztizáló berendezés cellás vagy celláshoz hasonló adó-vevő és egy ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatára, ahol egy földi típusú telefonkészülék DTMF vagy impulzus típusú tárcsajeleket digitális formára alakító illesztőegységen keresztül a cellás vagy celláshoz hasonló adó-vevővel van összekötve a földi típusú telefonon tárcsázott számnak a cellás vagy celláshoz hasonló rendszeren keresztül történő hívásához, azzal jellemezve, hogy a cellás vagy celláshoz hasonló adó-vevő és az ehhez csatlakozó cellás vagy celláshoz hasonló illesztőegység (14) helyes működésének tesztelését kezdeményező jelet előállító, távol elhelyezett távtesztelés-inicializáló eszközt;
    a távtesztelés-inicializáló eszközről kapott jel hatására a tesztelési folyamatot elindító távfenntartó egységet (10) tartalmaz, továbbá a távfenntartó egység (10) a tesztelés eredményeit képviselő adatokat egy távoli helyre a cellás vagy celláshoz hasonló hálózat segítségével elküldő távjelentő eszközzel van ellátva.
  12. 12. A 11. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) egy standard földi telefonhoz hasonló készülék funkcióit szimuláló, a cellás vagy celláshoz hasonló illesztőegység (14) helyes működésének vizsgálatához a cellás vagy celláshoz hasonló illesztőegységben (14) válaszokat generáló eszközöket tartalmaz.
  13. 13. A 12. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegység (14) felé off-hook jelzést generáló eszközt tartalmaz.
  14. 14. A 13. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegység (14) által az említett off-hook jelzésre válaszul előállított tárcsahangot érzékelő tárcsahangdetektort (24) tartalmaz.
  15. 15. A 12. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) DTMF jelet előállító, és ezt a jelet a cellás vagy celláshoz hasonló illesztőegység (14) felé küldő MFTD generátort (20) tartalmaz.
  16. 16. A 15. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegységnek (14) az MFTD generátor (20) által előállított jelre válaszul kiadott DTMF jelét detektáló eszközt tartalmaz.
  17. 17. A 12. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegység (14) felé on-hook jelzést generáló eszközt tartalmaz.
    HU 219 932 Β
  18. 18. A 12. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegység (14) csengetőgenerátorának működtetéséhez az adó-vevő számára bejövő telefonhívást szimuláló eszközt, továbbá az így előállított csengetési jelet érzékelő csengetőjel-detektort (22) tartalmaz.
  19. 19. A 11. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló illesztőegység (14) számára - az alatt az idő alatt, amíg a cellás vagy celláshoz hasonló illesztőegység (14) a csengetési jelet generálja - off-hook jelzést előállító eszközt tartalmaz.
  20. 20. A 11. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) a cellás vagy celláshoz hasonló telefonhálózaton keresztül - amikor a cellás vagy celláshoz hasonló illesztőegység (14) egy adó-vevőhöz van kapcsolva - egy kimenő telefonhívást, és vissza az említett cellás vagy celláshoz hasonló adó-vevő felé irányuló hívást generáló eszközt tartalmaz; továbbá a cellás vagy celláshoz hasonló adóvevő által az említett telefonhívásra válaszul generált foglaltsági jelet érzékelő foglaltságijel-detektort (16) tartalmaz.
  21. 21. A 11. igénypont szerinti öndiagnosztizáló berendezés, azzal jellemezve, hogy a távfenntartó egység (10) az illesztőegység (14) helyes működését monitorozó és a távjelentő eszköz segítségével az említett távoli helyrejelentő eszközt tartalmaz.
  22. 22. Eljárás cellás vagy celláshoz hasonló illesztőegység helyes működésének távolról történő vizsgálatára, amely cellás vagy celláshoz hasonló illesztőegység egy földi típusú telefonhoz vagy hasonló készülékhez csatlakoztatható, a cellás vagy celláshoz hasonló illesztőegységgel a hozzá kapcsolt földi típusú telefonkészülék DTMF vagy impulzus típusú tárcsajeleit egy cellás vagy celláshoz hasonló adó-vevőre küldéshez digitális formára alakítjuk, azzal jellemezve, hogy (a) egy távoli helyről tesztinicializáló jelet küldünk egy távfenntartó egységre;
    (b) az (a) lépésre válaszul a távfenntartó egység segítségével végrehajtjuk a cellás vagy celláshoz hasonló illesztőegység tesztelését;
    (c) a teszteredményeket a cellás vagy celláshoz hasonló hálózaton át elküldhető adatokká transzformáljuk; és (d) a teszteredmények adatait a cellás vagy celláshoz hasonló adó-vevő segítségével egy távoli távfenntartó központba küldjük.
  23. 23. A 22. igénypont szerinti eljárás, azzal jellemezve, hogy a (d) lépés előtt a távoli távfenntartó központból a távfenntartó egység számára az adatkapcsolat létrejöttét jelző nyugtázójelet generálunk.
  24. 24. A 23. igénypont szerinti eljárás, azzal jellemezve, hogy a (b) lépésben monitorozzuk az illesztőegység által végrehajtott funkciókat.
  25. 25. A 24. igénypont szerinti eljárás, azzal jellemezve, hogy a cellás vagy celláshoz hasonló illesztőegység helyes működésének vizsgálatához a monitorozás folyamán egy kommunikációs készülék funkcióit szimulálva válaszokat generálunk a cellás vagy celláshoz hasonló illesztőegységben.
HU9601009A 1995-07-24 1996-04-18 Öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez HU219932B (hu)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/505,868 US5859894A (en) 1994-03-02 1995-07-24 Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities

Publications (4)

Publication Number Publication Date
HU9601009D0 HU9601009D0 (en) 1996-06-28
HUP9601009A2 HUP9601009A2 (en) 1997-05-28
HUP9601009A3 HUP9601009A3 (en) 1999-08-30
HU219932B true HU219932B (hu) 2001-09-28

Family

ID=24012209

Family Applications (1)

Application Number Title Priority Date Filing Date
HU9601009A HU219932B (hu) 1995-07-24 1996-04-18 Öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez

Country Status (4)

Country Link
US (1) US5966428A (hu)
HU (1) HU219932B (hu)
PL (1) PL178631B1 (hu)
ZA (1) ZA958218B (hu)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690923B1 (en) * 1994-03-02 2004-02-10 Telular Corp. Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities
US5675629A (en) * 1995-09-08 1997-10-07 At&T Cordless cellular system base station
US5911120A (en) 1995-09-08 1999-06-08 At&T Wireless Services Wireless communication system having mobile stations establish a communication link through the base station without using a landline or regional cellular network and without a call in progress
US7194083B1 (en) 2002-07-15 2007-03-20 Bellsouth Intellectual Property Corporation System and method for interfacing plain old telephone system (POTS) devices with cellular networks
US7149514B1 (en) 1997-07-30 2006-12-12 Bellsouth Intellectual Property Corp. Cellular docking station
US20080207197A1 (en) 1997-07-30 2008-08-28 Steven Tischer Apparatus, method, and computer-readable medium for interfacing devices with communications networks
US6349199B1 (en) * 1998-02-12 2002-02-19 Ericsson Inc. Reliable continuously operating fixed cellular terminal
US6411802B1 (en) 1999-03-15 2002-06-25 Bellsouth Intellectual Property Management Corporation Wireless backup telephone device
US6775562B1 (en) * 2000-04-17 2004-08-10 Sbc Properties, Lp Remote battery replacement notification system and method
US6539338B1 (en) * 2000-06-09 2003-03-25 3Com Corporation Self-diagnostic testing of a network interface adapter
US6694360B1 (en) * 2000-06-09 2004-02-17 3Com Corporation Multi-mode network interface having loadable software images
IT1318284B1 (it) * 2000-07-31 2003-07-28 Cit Alcatel Metodo e dispositivo per la configurazione ed il monitoraggio remotodi elementi di rete di telecomunicazioni.
US20020068529A1 (en) * 2000-12-01 2002-06-06 Knoble John L. System and method for adapting traditional telephony for cellular usage
US6914962B2 (en) * 2000-12-14 2005-07-05 Nortel Networks Limited Call-flow verification method and apparatus
EP1239688A1 (en) * 2001-03-08 2002-09-11 Sony International (Europe) GmbH Mobile telecommunication means comprising means for detecting and reporting errors
US6711520B2 (en) 2001-07-12 2004-03-23 Seagate Technology Llc Remote execution of diagnostic firmware in a block data storage device
US6694281B2 (en) 2001-07-12 2004-02-17 Seagate Technology Llc Real time signal analysis of a remote block data storage device
US7035633B2 (en) * 2001-10-23 2006-04-25 Bellsouth Intellectual Property Corporation Apparatus for providing a gateway between a wired telephone and a wireless telephone network
US7120454B1 (en) 2001-12-26 2006-10-10 Bellsouth Intellectual Property Corp. Auto sensing home base station for mobile telephone with remote answering capabilites
US7565115B2 (en) * 2002-07-09 2009-07-21 Xcelis Communications, Llc Communication system for landline and wireless calls
WO2004006512A1 (en) * 2002-07-09 2004-01-15 Xcelis Communications Communication systems and methods
US20060128376A1 (en) * 2002-07-09 2006-06-15 Alexis Glenroy J Communication systems and methods
US8000682B2 (en) 2002-07-15 2011-08-16 At&T Intellectual Property I, L.P. Apparatus and method for restricting access to data
US8526466B2 (en) 2002-07-15 2013-09-03 At&T Intellectual Property I, L.P. Apparatus and method for prioritizing communications between devices
US8275371B2 (en) 2002-07-15 2012-09-25 At&T Intellectual Property I, L.P. Apparatus and method for providing communications and connection-oriented services to devices
US8543098B2 (en) 2002-07-15 2013-09-24 At&T Intellectual Property I, L.P. Apparatus and method for securely providing communications between devices and networks
US8416804B2 (en) 2002-07-15 2013-04-09 At&T Intellectual Property I, L.P. Apparatus and method for providing a user interface for facilitating communications between devices
US7200424B2 (en) 2002-07-15 2007-04-03 Bellsouth Intelectual Property Corporation Systems and methods for restricting the use and movement of telephony devices
US8554187B2 (en) 2002-07-15 2013-10-08 At&T Intellectual Property I, L.P. Apparatus and method for routing communications between networks and devices
US6999761B2 (en) * 2002-08-26 2006-02-14 Bellsouth International Property Corporation Fixed wireless telephone device
US6836644B2 (en) 2002-08-26 2004-12-28 Bellsouth Intellectual Property Corporation Methods and apparatus for establishing a fixed wireless telephone service
US8284886B2 (en) * 2003-01-17 2012-10-09 Texas Instruments Incorporated Radio frequency built-in self test for quality monitoring of local oscillator and transmitter
US7321766B2 (en) * 2003-01-21 2008-01-22 Agilent Technologies, Inc System and method for testing portable communication devices
TWI235352B (en) * 2003-04-30 2005-07-01 Toshiba Matsushita Display Tec Array substrate for use in display apparatuses, and display apparatus
US20040235518A1 (en) * 2003-05-22 2004-11-25 Beyette Fred R. Hybrid telephone network utilizing wireless link and landline services
US20070060120A1 (en) * 2003-07-30 2007-03-15 Gerdes Reiner J Telemetry system and facsimile machine
US7146191B2 (en) * 2004-01-16 2006-12-05 United States Thermoelectric Consortium Wireless communications apparatus and method
US7162207B2 (en) * 2004-06-21 2007-01-09 Elektrobit Oy System, apparatus, method and computer program for producing signals for testing radio frequency communication devices
US7751855B2 (en) * 2005-05-20 2010-07-06 Alcatel-Lucent Usa Inc. Private routing control numbers
US20070274716A1 (en) * 2006-05-11 2007-11-29 Ying Goangshiuan S Methods and apparatus to provide local warning of a low battery condition from an optical network terminal
JP2008271126A (ja) * 2007-04-19 2008-11-06 Ntt Docomo Inc 移動端末装置、移動端末装置の診断方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295178A (en) * 1990-12-03 1994-03-15 Ericsson Ge Mobile Communications Inc. Digital signal processor for radio base station
US5504800A (en) * 1994-04-04 1996-04-02 Hughes Aircraft Company Cellular automated test set
MY114291A (en) * 1995-01-31 2002-09-30 Qualcomm Inc Concentrated subscriber system for wireless local loop
US5819177A (en) * 1996-03-20 1998-10-06 Dynamic Telecommunications, Inc. Fixed wireless terminals with network management method and apparatus

Also Published As

Publication number Publication date
PL311050A1 (en) 1997-02-03
HUP9601009A2 (en) 1997-05-28
HUP9601009A3 (en) 1999-08-30
US5966428A (en) 1999-10-12
HU9601009D0 (en) 1996-06-28
PL178631B1 (pl) 2000-05-31
ZA958218B (en) 1996-04-24

Similar Documents

Publication Publication Date Title
HU219932B (hu) Öndiagnosztizáló berendezés és eljárás cellás adó-vevő rendszerekhez
US6690923B1 (en) Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities
US5859894A (en) Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities
US5469494A (en) Self-diagnostic system for cellular-transceiver systems
RU98118996A (ru) Фиксированные беспроволочные терминалы в способе управления сетями, и аппаратура
CN1156135C (zh) 用于报告固定无线终端中状态信息的方法及装置
US2410520A (en) Telephone system
HU216556B (hu) Cellás adó-vevő berendezés, vizsgálóberendezés és eljárás illesztőegység vizsgálatára
GB2314484A (en) Testing and maintaining a communication device in a communication system
JPS61295750A (ja) 検針情報伝送装置
KR20060037134A (ko) 이동 단말의 성능 측정 장치 및 방법
JPH07162545A (ja) 端末側網制御装置
JP2001358844A (ja) 架空送電線保守監視システム
KR20010028704A (ko) 무선가입자망에서 가입자단말국의 음성품질 검사 방법
CA2110255A1 (en) Telephone activity monitor
WO2001035682A1 (en) Displaying caller id for call waiting in a fixed wireless terminal

Legal Events

Date Code Title Description
HMM4 Cancellation of final prot. due to non-payment of fee