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 PDFInfo
- 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
Links
- 230000001413 cellular effect Effects 0.000 title claims abstract description 256
- 238000000034 method Methods 0.000 title claims description 29
- 230000006870 function Effects 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 238000012360 testing method Methods 0.000 claims description 297
- 238000012423 maintenance Methods 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 18
- 238000004092 self-diagnosis Methods 0.000 claims description 17
- 230000011664 signaling Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 2
- 230000015556 catabolic process Effects 0.000 description 14
- 238000001514 detection method Methods 0.000 description 10
- 238000002405 diagnostic procedure Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 239000004020 conductor Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 101150093819 hup2 gene Proteins 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- POJAQDYLPYBBPG-UHFFFAOYSA-N 2-(2,4,7-trinitrofluoren-9-ylidene)propanedinitrile Chemical compound [O-][N+](=O)C1=CC([N+]([O-])=O)=C2C3=CC=C([N+](=O)[O-])C=C3C(=C(C#N)C#N)C2=C1 POJAQDYLPYBBPG-UHFFFAOYSA-N 0.000 description 2
- 101100220616 Caenorhabditis elegans chk-2 gene Proteins 0.000 description 2
- 101000629937 Homo sapiens Translocon-associated protein subunit alpha Proteins 0.000 description 2
- 101150025129 POP1 gene Proteins 0.000 description 2
- 241000405961 Scomberomorus regalis Species 0.000 description 2
- 102100026231 Translocon-associated protein subunit alpha Human genes 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 235000019988 mead Nutrition 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 125000006850 spacer group Chemical group 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 235000013618 yogurt Nutrition 0.000 description 2
- UNSRRHDPHVZAHH-YOILPLPUSA-N (5Z,8Z,11Z)-icosatrienoic acid Chemical compound CCCCCCCC\C=C/C\C=C/C\C=C/CCCC(O)=O UNSRRHDPHVZAHH-YOILPLPUSA-N 0.000 description 1
- 101710179738 6,7-dimethyl-8-ribityllumazine synthase 1 Proteins 0.000 description 1
- UNSRRHDPHVZAHH-UHFFFAOYSA-N 6beta,11alpha-Dihydroxy-3alpha,5alpha-cyclopregnan-20-on Natural products CCCCCCCCC=CCC=CCC=CCCCC(O)=O UNSRRHDPHVZAHH-UHFFFAOYSA-N 0.000 description 1
- 101150088727 CEX1 gene Proteins 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 101100334010 Drosophila melanogaster sotv gene Proteins 0.000 description 1
- 241000207447 Estrella Species 0.000 description 1
- 102100029074 Exostosin-2 Human genes 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 101000918275 Homo sapiens Exostosin-2 Proteins 0.000 description 1
- 101000812677 Homo sapiens Nucleotide pyrophosphatase Proteins 0.000 description 1
- 241000408529 Libra Species 0.000 description 1
- 101710186608 Lipoyl synthase 1 Proteins 0.000 description 1
- 101710137584 Lipoyl synthase 1, chloroplastic Proteins 0.000 description 1
- 101710090391 Lipoyl synthase 1, mitochondrial Proteins 0.000 description 1
- 101100353526 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) pca-2 gene Proteins 0.000 description 1
- 102000010410 Nogo Proteins Human genes 0.000 description 1
- 108010077641 Nogo Proteins Proteins 0.000 description 1
- 102100039306 Nucleotide pyrophosphatase Human genes 0.000 description 1
- 101150047304 TMOD1 gene Proteins 0.000 description 1
- 241000723573 Tobacco rattle virus Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003556 assay Methods 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 244000144992 flock Species 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000010615 ring circuit Methods 0.000 description 1
- 229940101201 ringl Drugs 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/24—Arrangements for testing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/725—Cordless telephones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/14—WLL [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)
- SZABADALMI IGÉNYPONTOK1. Ö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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Ö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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
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)
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)
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 |
-
1995
- 1995-09-29 ZA ZA958218A patent/ZA958218B/xx unknown
- 1995-10-20 PL PL95311050A patent/PL178631B1/pl unknown
-
1996
- 1996-04-18 HU HU9601009A patent/HU219932B/hu not_active IP Right Cessation
-
1998
- 1998-09-25 US US09/160,995 patent/US5966428A/en not_active Expired - Lifetime
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 |