PL178631B1 - Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej - Google Patents
Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowejInfo
- Publication number
- PL178631B1 PL178631B1 PL95311050A PL31105095A PL178631B1 PL 178631 B1 PL178631 B1 PL 178631B1 PL 95311050 A PL95311050 A PL 95311050A PL 31105095 A PL31105095 A PL 31105095A PL 178631 B1 PL178631 B1 PL 178631B1
- Authority
- PL
- Poland
- Prior art keywords
- call
- mov
- test
- error
- block
- Prior art date
Links
- 230000010267 cellular communication Effects 0.000 title claims description 4
- 230000001413 cellular effect Effects 0.000 claims abstract description 50
- 230000006870 function Effects 0.000 claims abstract description 21
- 238000012360 testing method Methods 0.000 claims description 237
- 238000000034 method Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 14
- 238000001514 detection method Methods 0.000 description 26
- 238000012423 maintenance Methods 0.000 description 12
- 238000004092 self-diagnosis Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 101100365384 Mus musculus Eefsec gene Proteins 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 229940028444 muse Drugs 0.000 description 6
- GMVPRGQOIOIIMI-DWKJAMRDSA-N prostaglandin E1 Chemical compound CCCCC[C@H](O)\C=C\[C@H]1[C@H](O)CC(=O)[C@@H]1CCCCCCC(O)=O GMVPRGQOIOIIMI-DWKJAMRDSA-N 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 244000060234 Gmelina philippensis Species 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000002405 diagnostic procedure Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 101150093819 hup2 gene Proteins 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- XHCNINMOALIGKM-UHFFFAOYSA-N 5,5,7,12,12,14-hexamethyl-1,4,8,11-tetrazacyclotetradecane Chemical compound CC1CC(C)(C)NCCNC(C)CC(C)(C)NCCN1 XHCNINMOALIGKM-UHFFFAOYSA-N 0.000 description 2
- 101000812677 Homo sapiens Nucleotide pyrophosphatase Proteins 0.000 description 2
- 101000629937 Homo sapiens Translocon-associated protein subunit alpha Proteins 0.000 description 2
- 102100039306 Nucleotide pyrophosphatase Human genes 0.000 description 2
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 description 2
- 102100026231 Translocon-associated protein subunit alpha Human genes 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000011324 bead Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000000881 depressing effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000003381 stabilizer Substances 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- RWSYPPRKMNWNII-JECWBDJGSA-N 19a86zw520 Chemical compound C([C@@]12[C@@H](C)[C@@H]([C@@H]3[C@H]([C@H]([C@H](C)[C@H]4O[C@H]5C[C@@H](C)C[C@H]6O[C@@]7(C)[C@H](O)C[C@H]8O[C@H]9C=C[C@H]%10O[C@H]%11C[C@@H]%12[C@H]([C@@H]([C@H]%13O[C@H](C=CC[C@@H]%13O%12)\C=C\[C@H](O)CO)O)O[C@@H]%11C=C[C@@H]%10O[C@@H]9C\C=C/C[C@@H]8O[C@@H]7C[C@@H]6O[C@@H]5C[C@@H]4O3)O)O2)C)CCO1 RWSYPPRKMNWNII-JECWBDJGSA-N 0.000 description 1
- 241001182632 Akko Species 0.000 description 1
- 241000195940 Bryophyta Species 0.000 description 1
- 101150088727 CEX1 gene Proteins 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 101150056334 Ccne1 gene Proteins 0.000 description 1
- 241000282994 Cervidae Species 0.000 description 1
- 241000905957 Channa melasoma Species 0.000 description 1
- 244000157795 Cordia myxa Species 0.000 description 1
- 235000004257 Cordia myxa Nutrition 0.000 description 1
- 244000304337 Cuminum cyminum Species 0.000 description 1
- 101710190437 Cytotoxin 3 Proteins 0.000 description 1
- 206010013647 Drowning Diseases 0.000 description 1
- 241000283086 Equidae Species 0.000 description 1
- 241001331845 Equus asinus x caballus Species 0.000 description 1
- 241000207447 Estrella Species 0.000 description 1
- 241000901143 Etia Species 0.000 description 1
- 241001530812 Goupia glabra Species 0.000 description 1
- 241000408529 Libra Species 0.000 description 1
- 241001446467 Mama Species 0.000 description 1
- 101100063504 Mus musculus Dlx2 gene Proteins 0.000 description 1
- 240000005125 Myrtus communis Species 0.000 description 1
- 235000013418 Myrtus communis Nutrition 0.000 description 1
- 241000215040 Neso Species 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
- 101150025129 POP1 gene Proteins 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 241000220317 Rosa Species 0.000 description 1
- 101000767160 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) Intracellular protein transport protein USO1 Proteins 0.000 description 1
- 241000405961 Scomberomorus regalis Species 0.000 description 1
- 101150047304 TMOD1 gene Proteins 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- QVZZPLDJERFENQ-NKTUOASPSA-N bassianolide Chemical compound CC(C)C[C@@H]1N(C)C(=O)[C@@H](C(C)C)OC(=O)[C@H](CC(C)C)N(C)C(=O)[C@@H](C(C)C)OC(=O)[C@H](CC(C)C)N(C)C(=O)[C@@H](C(C)C)OC(=O)[C@H](CC(C)C)N(C)C(=O)[C@@H](C(C)C)OC1=O QVZZPLDJERFENQ-NKTUOASPSA-N 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 210000003746 feather Anatomy 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 101150089658 get1 gene Proteins 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004571 lime Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 235000011929 mousse Nutrition 0.000 description 1
- NCAIGTHBQTXTLR-UHFFFAOYSA-N phentermine hydrochloride Chemical compound [Cl-].CC(C)([NH3+])CC1=CC=CC=C1 NCAIGTHBQTXTLR-UHFFFAOYSA-N 0.000 description 1
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical compound CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 1
- 229910052705 radium Inorganic materials 0.000 description 1
- HCWPIIXVSYCSAN-UHFFFAOYSA-N radium atom Chemical compound [Ra] HCWPIIXVSYCSAN-UHFFFAOYSA-N 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- MEFOUWRMVYJCQC-UHFFFAOYSA-N rimsulfuron Chemical compound CCS(=O)(=O)C1=CC=CN=C1S(=O)(=O)NC(=O)NC1=NC(OC)=CC(OC)=N1 MEFOUWRMVYJCQC-UHFFFAOYSA-N 0.000 description 1
- 229940101201 ringl Drugs 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000009331 sowing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 210000005070 sphincter Anatomy 0.000 description 1
- 201000009032 substance abuse Diseases 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 210000001550 testis Anatomy 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000011800 void material Substances 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)
Abstract
1. Sposób zdalnego testowania bloku interfejsu i urzadzenia nadawczo-odbiorczego w systemie lacz- nosci komórkowej, w którym blok interfejsu przylacza sie do stacjonarnego urzadzenia telefonicznego i przetwarza sie sygnaly wybierania DTMF lub typu impulsowego z dolaczonego do niego stacjonarnego urzadzenia telefonicznego na format cyfrowy oraz wysyla sie te sygnaly do komórkowego urzadzenia nadawczo-odbiorczego, znamienny tym, ze nadaje sie sygnal inicjacji testu spoza miejsca zainstalowania do bloku diagnostycznego, wykonuje sie, w odpowiedzi na nadanie sygnalu inicjacji, testowanie komórkowego bloku interfejsu w urzadzeniu do zdalnego testowania, przetwarza sie wyniki testowania na dane przydatne do wyslania za posrednictwem sieci komórkowej oraz wysyla sie dane wynikowe testu do znajdujacego sie poza miejscem zainstalowania bloku monitorujacego za pomoca komórkowego urzadzenia nadawczo- odbiorczego. FIG . 10 PL
Description
Przedmiotem wynalazku jest sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej.
Znane są z opisów patentowych USA nr nr 4 658 096 i 4 737 975, systemy interfejsu komórkowego, w których blok interfejsu łączy standardowy zestaw telefoniczny, aparat faksymilowy, modem lub inne urządzenia telekomunikacyjne, z urządzeniem komórkowym nadawczo-odbiorczym, przy czym blok interfejsu umożliwia normalną pracę urządzenia telekomunikacyjnego przez radiowe urządzenie nadawczo-odbiorcze. Blok interfejsu może również przetwarzać sygnały wybierania DTMF lub typu impulsowego na format cyfrowy, przekazywany do radiowego urządzenia nadawczo-odbiorczego, tak aby wybrany numer mógł być wykorzystany do wywołania numeru przez system radiowy za pośrednictwem urządzenia nadawczo-odbiorczego.
Znane jest również stosowanie sprzętu diagnostyczno-testującego dla całych systemów komórkowych. Znane jest także stosowanie bloku samodzielnego, samodzielnie się testującego. Ten ostatni opisano w opisie patentowym USA nr 5 016 269, w którym opisano alarmową skrzynkę telefonu komórkowego. W tym patencie opisano autodiagnostykę realizowaną przez samą skrzynkę połączeniową. Skrzynka połączeniowa zapewnia autodiagnostykę i periodycznie melduje stan sprawdzanej pozycji do stacji centralnej przez sieć komórkową. W tym opisie patentowym przedstawiono aparat komórkowy i urządzenie nadawczo-odbiorcze oraz przyporządkowany mu system autodiagnostyczny do sprawdzania systemu i przesyłania zwrotnie raportów do stacji centralnej.
178 631
Jednakże ten opis patentowy nie obejmuje monitorowania i funkcji autodiagnostyki przetwornika DTMF, na przykład stosowanego we wspomnianych powyżej opisach patentowych USA nr nr 4 658 096 i 4 737 975.
Te znane rozwiązania odnoszą się ogólnie biorąc do systemów telekomunikacyjnych bezprzewodowej łączności osobistej, z wieloma inteligentnymi stacjami bazowymi i inteligentnymi przenośnymi terminalami mikrotelefonicznymi, z których każdy ma określony z góry obszar pokrycia komórki radiowej, a zwłaszcza odnoszą się do osobistych cyfrowych telekomunikacyjnych systemów komórkowych (PCS) z pełnym interfejsem ISDN, umożliwiając bezpośrednie połączenie i komutację ruchu połączeniowego PCS przez interfejs ISDN i publiczną komutowaną sieć telefoniczną lub dowolną inną sieć komutowaną, przy czym system telekomunikacji osobistej ma możliwości telefoniczne, dacyjne, wizyjne (lub dowolną ich kombinację) i zestawiania dwukierunkowych w pełni dupleksowych połączeń wchodzących i wychodzących, i przy tym jest całkowicie dyspozycyjny pod względem operacyjnym i w pełni kompatybilny z dowolnym wybranym rodzajem modulacji. Ponadto międzykomórkowy protokół przejmowania realizuje logika rozproszona, wprowadzona w postaci oprogramowania w inteligentnych przenośnych terminalach mikrotelefonicznych, inteligentnych stacjach bazowych i publicznej komutowanej sieci telefonicznej lub dowolnej sieci komutowanej wyposażonej w sterującą bazę danych usług PCS.
Wzrastająca dostępność telekomunikacji ruchomej i przenośnej uwalnia abonentów profesjonalnych i mieszkaniowych od ograniczeń fizycznych w pełni przewodowej sieci telekomunikacyjnej. W szczególności, komórkowe systemy telekomunikacyjne wraz z powiadamianiem i innymi usługami uzupełniającymi, zapewniają pełną mobilność usług telekomunikacyjnych. Znaczny postęp techniczny w zakresie sprzętu ruchomego i przenośnego, jak również nowych metod, jak na przykład transmisja cyfrowa w telekomunikacji bezprzewodowej, istotnie rozszerzyły liczbę i typy bezprzewodowych usług telekomunikacyjnych z wykorzystaniem widma radiowego, dostępnych dla użytkownika. Te usługi perspektywiczne obejmują choć nie wyłącznie, rozszerzone formy usług telefonii komórkowej, rozszerzone usługi bezprzewodowej telefonii cyfrowej, obsługę przenośnych urządzeń faksowych oraz bezprzewodową obsługę sieci lokalnych i mogą być wykorzystywane przez istniejącą publiczną sieć komutowaną lub przez alternatywne przewodowe sieci lokalne, na przykład systemy telewizji kablowej. Jako takie, cyfrowe osobiste systemy telekomunikacyjne mogą istnieć niezależnie lub przy współpracy z lokalnymi sieciami przewodowymi, wypełniając luki w istniejących obecnie systemach telekomunikacyjnych stwarzając również nowe rynki, z których wiele będzie dopiero kształtowanych. Pojawienie się PCS będzie miało duży wpływ na przyszłe opracowania i konfigurację wszystkich systemów telekomunikacyjnych przez znaczną poprawę ich elastyczności i funkcjonalności. Odpowiednio do tego, realizatorzy usług PCS będą mieli możliwości wzbogacenia i obsłużenia istniejących i nowych rynków krajowych w sposób ekonomiczny i odpowiedzialny.
Wymagania w stosunku do systemów telekomunikacji osobistej gwałtownie zmieniają się w miarę wzrostu zapotrzebowania na telekomunikację błyskawiczną w wyniku zwiększonej mobilności abonentów. Jedną z zalet PCS jest to, że do wzbogacenia możliwości dotarcia do każdej osoby, w każdym czasie, w każdym miejscu, może wykorzystywać pojedyncze urządzenie telekomunikacyjne. PCS daje użytkownikowi możliwość zwiększenia mobilności i elastyczności, ponieważ takie podejście rozwiązuje podstawowy problem pozostawania w ciągłej łączności z abonentem. PCS drogą radiową zapewni abonentom łączność bez utraty ważnego połączenia, jak również zmniejszenie czasu i wydatku na rozmowy zwrotne. PCS łączą funkcjonalność techniki i infrastruktury urządzeń radiowych i publicznej komutowanej sieci telefonicznej (Public Switched Telephone PSTN - Network) i umożliwiają dopasowanie możliwości podtrzymywania w pełni dupleksowych połączeń (dwukierunkowych połączeń wchodzących i wychodzących) oraz przejmowania między komórkami radiowymi (umożliwiając użytkownikom swobodne przemieszczanie się z jednej komórki radiowej do drugiej, bez przerywania rozmowy). Istotne jest zatem, aby pamiętać, że istnieje stale wzrastające zapotrzebowanie na usługi PCS i technologie dla licznych, czasem niekompatybilnych zastosowań, mianowicie bezprzewodowych prywatnych central wewnętrznych, mniejszych i lżej4
178 631 szych przenośnych telefonów komórkowych, przenośnych aparatów faksowych, wielokanałowych telefonów bezprzewodowych i dodatkowych usług, których celem jest umożliwienie kontaktowania się danych poszczególnych użytkowników (a nie danych stacji).
Obecnie stosowany sprzęt radiowy i związane z nim oferowane obecnie usługi (to znaczy telefony bezprzewodowe, powiadamianie radiowe i łączność radiokomórkowa) nie są w stanie całkowicie zaspokoić zapotrzebowania na te nowe typy usług PCS. Na przykład telefony bezprzewodowe są wykorzystywane wewnątrz i wokół domu lub biura, pracują na bardzo niewielkiej liczbie kanałów (na przykład dziesięciu) i w zagęszczeniu, a ich wykorzystanie ogranicza się do bezpośredniej bliskości przyporządkowanej stacji bazowej. Usługi powiadamiania radiowego są tylko jednokierunkowe i mają ograniczone możliwości. Komórkowe i specjalizowane usługi radiokomunikacji ruchomej nie są w stanie zaspokoić pełnego zakresu spodziewanego zapotrzebowania na PCS. Z czasem PCS będą dysponowały standaryzowanym sprzętem ze wspólnymi modułami zapewniającym większą niezawodność współpracującego sprzętu, który będzie również mniej wrażliwy na przejściowe zakłócenia od źródeł zewnętrznych, będzie wyposażony w możliwości automatycznej rejestracji połączeń, automatycznego przekazywania połączeń, pocztę głosową, możliwość odbioru faksowego, możliwości zmiany miejsca zainstalowania, zdalne przekazywanie danych, zwiększony zakres ochrony prywatności/identyfikacji rozmówcy/usług kwalifikowanych, zwiększenie żywotności akumulatorów i wspólne protokoły. W celu możliwie najlepszego spełnienia tego zadania, stosowanie cyfrowych PCS staje się koniecznością. Bezprzewodowe PCS mogą wyeliminować konieczność dysponowania budynkami okablowanymi dla telekomunikacji. Mówiąc ogólnie, PCS pozwoli zaopatrzyć sprzęt telekomunikacyjny w dodatkowe możliwości. Cyfrowy PCS zapewni udoskonalenie sprzętu telekomunikacyjnego, telekomunikacyjnych systemów i konstrukcji.
Istotą sposobu zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej, według wynalazku, w którym blok interfejsu przyłącza się do stacjonarnego urządzenia telefonicznego i przetwarza się sygnały wybierania DTMF lub typu impulsowego z dołączonego do niego stacjonarnego urządzenia telefonicznego na format cyfrowy oraz wysyła się te sygnały do komórkowego urządzenia nadawczo-odbiorczego, jest to, że nadaje się sygnał inicjacji testu spoza miejsca zainstalowania do bloku diagnostycznego, wykonuje się, w odpowiedzi na nadanie sygnału inicjacji, testowanie komórkowego bloku interfejsu w urządzeniu do zdalnego testowania, przetwarza się wyniki testowania na dane przydatne do wysłania za pośrednictwem sieci komórkowej oraz wysyła się dane wynikowe testu do znajdującego się poza miejscem zainstalowania bloku monitorującego za pomocą komórkowego urządzenia nadawczo-odbiorczego.
Korzystnie przed wysłaniem danych wynikowych testu generuje się sygnał potwierdzenia ze znajdującego się poza miejscem zainstalowania bloku monitorującego do bloku diagnostycznego, wskazującego nawiązanie połączenia dacyjnego.
Korzystnie w trakcie testowania bloku interfejsu monitoruje się funkcje wykonywane przez blok interfejsu.
Korzystnie w trakcie monitorowania symuluje się funkcje wykonywane przez urządzenie telekomunikacyjne, dla generowania w bloku interfejsu odpowiednich odpowiedzi tego bloku oraz określa się, czy blok interfejsu działa poprawnie.
Zaletą rozwiązania według niniejszego wynalazku jest to, że może być wykorzystywany w dowolnym systemie typu komórkowego, na przykład w systemie komórkowym lub w systemach podobnych do komórkowych, na przykład ISDN lub innych osobistych systemach telekomunikacyjnych. Wykorzystuje się blok adaptera lub interfejs, podobny do komórkowego, służący do przetwarzania sygnałów wybierania DTMF lub wybierania impulsowego na format cyfrowy w celu podania do podobnego komórkowego urządzenia nadawczoodbiorczego przyłączonego do systemu podobnego do komórkowego.
Rozwiązanie według wynalazku przeznaczone do wykorzystania w komórkowych blokach interfejsowych i systemach znanych ze stanu techniki, może być wykorzystywane z innymi radiowymi systemami nadawczo-odbiorczymi, na przykład IMTS, gdzie stosuje się bezprzewodowe łącze między stacją bazową i stacjami głównymi, których nadajniki połączo178 631 ne są z blokami interfejsowymi, które umożliwiają łączenie i normalne funkcjonowanie urządzenia typu telekomunikacyjnego, na przykład telefonu lądowego, aparatu faksymilowego, modemu itp., z radiowym urządzeniem nadawczo-odbiorczym. Blok interfejsu realizuje pewną liczbę funkcji, zależnie od jego docelowego wykorzystania. Na przykład w specjalizowanych systemach alarmowych, gdzie radiowe urządzenie nadawczo-odbiorcze realizuje tylko połączenia wychodzące, blok interfejsu nie musi realizować generacji dzwonienia, generacji sygnału zajętości itp., przekazywanych do urządzenia telekomunikacyjnego. W odróżnieniu od tego, w takich systemach, w których wymaga się realizacji tylko połączeń wchodzących, blok interfejsu nie musi przetwarzać sygnałów wybierania DTMF lub typu impulsowego na format cyfrowy. Według niniejszego rozwiązania stosuje się oprogramowanie, które ma dostęp do mikroprocesora bloku interfejsu komórkowego lub bloku interfejsu radiowego systemu nadawczo-odbiorczego, przy czym oprogramowanie może być uruchamiane albo ręcznie albo automatycznie w celu uaktywnienia urządzenia testującego. Oprogramowanie diagnozuje prawidłowość funkcjonowania wszystkich systemów programowych i sprzętowych. Istnieje możliwość sprawdzenia każdej z poszczególnych pozycji. Na przykład w bloku interfejsu może być sprawdzany konwerter DTMF, interfejs z czterech przewodów na łącze dwuprzewodowe, może być sprawdzane oprogramowanie tonu zajętości, jak również inne cechy charakteryzujące działanie interfejsu. Poza tym, sprawdzane może być urządzenie nadawczoodbiorcze, akumulator, a nawet dowolny inny parametr interfejsu. System konserwacyjny ma możliwość realizowania połączenia przez sieć komórkową do zadanego numeru telefonicznego stacji bazowej, przy czym stacja centralna następnie może albo wysyłać ton zwrotny, albo wybierać aktualny numer systemu interfejsowego, w celu pobrania sygnału zajętości. Można to uważać za pewien test. Można dokonywać również wysłania przez system komórkowy innego numeru telefonicznego w celu wywołania tej samej lub innej stacji centralnej, tak że może być wysłany precyzyjny ton wsteczny (1000 Hz), a oprogramowanie może porównać ten ton 100 Hz z własną konfiguracją w celu określenia, czy ma miejsce połączenie liniowe i czy system komórkowy działa poprawnie. Rozwiązanie jest szczególnie użyteczne, ponieważ pozwala abonentowi końcowemu uaktywnienie telefonu w przypadku, kiedy abonent jest przekonany, że ma kłopoty z tym telefonem. Test ten powoduje powiadomienie przedsiębiorstwa telefonicznego o wystąpieniu, bądź nie wystąpieniu nieprawidłowości w centrali systemu komórkowego lub o wystąpieniu problemu w jednostce bazowej abonenta końcowego.
W rozwiązaniu stosuje się dwa różne obwody. Pierwszy stanowi obwód telekonserwacyjny, a drugi - obwód zaliczający. Obwód telekonserwacyjny generuje test wielokrotny, który obejmuje realizację połączenia telefonicznego pod określony numer. Układ melduje wyniki testu pod tym konkretnym numerem. Układ może łączyć się przy wybieraniu własnego numeru, w celu upewnienia się, przez odebranie sygnału zajętości, że prawidłowo funkcjonuje odbiór i transmisja bloku. Te zespoły testów mogą być inicjowane przez abonenta, przez wciśnięcie przycisku znajdującego się w bloku. Po naciśnięciu przycisku, dioda LED, znajdująca się w pobliżu przycisku zaczyna migać ustawicznie, identyfikując wykonywany test. Jeżeli na końcu testu dioda LFD pozostaje włączona, to wskazuje to, że występuje problem związany z tym blokiem. Ten test łącznie zajmuje nie więcej niż 40 s. Z drugiej strony, jeżeli dioda LED przestaje migać i zostaje wyłączona, to wskazuje to, że test wypadł pomyślnie i że blok jest w porządku w odniesieniu do pozycji sprawdzanej w teście. W dodatkowej opcji zapewniona jest możliwość prowadzenia testu z numeru zewnętrznego, w której urządzenie nadawczo-odbiorcze pracuje poprawnie odbierając numer telefonu.
Działanie drugiego obwodu polega na tym, że wykorzystuje sygnał zaliczający z systemu komórkowego i generuje odpowiednie impulsy zliczające dla standardowego telefonu domowego lub automatu telefonicznego. Urządzenie interpretuje sygnał nadchodzący z systemu komórkowego i nie wymaga taryfowania lokalnego. Pracuje ono w sposób podobny, jak przy generacji drugich tonów. Może ono być wykorzystywane w dowolnym komórkowym systemie mającym możliwość wysyłania sygnałów zaliczających.
Sposób według wynalazku objaśniono w oparciu o przykład wykonania przedstawiony na rysunku, na którym fig. 1A i 1B przedstawiają sieć działań procesu samotestowania, fig. 2 przedstawia sieć działań podprogramu autotestującego odwieszenia słuchawki, fig. 3 6
178 631 sieć działań podprogramu autotestującego generacji tonu wybierania, fig. 4 - sieć działań podprogramu autotestującego generacji sygnału DTMF, fig. 5A, 5B i 5C przedstawiają sieć działań podprogramu autotestującego generacji dzwonienia, fig. 6 przedstawia sieć działań podprogramu autotestującego procesu odpowiedzi na dzwonienie, fig. 7A i 7B przedstawiają sieć działań podprogramu testu wywoływania, który sprawdza prawidłowość detekcji wywoływania i odpowiedzi na połączenie wchodzące, fig. 8A i 8B - sieć działań podprogramu generacji kodu błędu, fig. 9 przedstawia sieć działań podprogramu resetu, fig. 10 - schemat blokowy urządzenia testującego, zaś fig. 11, 12, 13 i 14 przedstawiają schematy układów do realizacji symulacji testowanych zdarzeń, fig. 15, 16 i 17 - sieci działań podprogramu wywołania ośrodka telekonserwacyjnego, fig. 18 przedstawia sieć działań podprogramu odbioru komunikatu inicjacji z ośrodka telekonserwacyjnego, zaś fig. 19 - sieć działań procedury weryfikacji stanu pętli głównej.
Wywołanie sekwencji testów operacyjnych jest dokonywane przez wciśnięcie przycisku autodiagnostyki i wtedy sterowanie bloku interfejsu 14 zostaje przekazane do głównego podprogramu autodiagnostycznego urządzenia testującego 10 w celu wykonania autotestowania.
Na figurach 1A i 1B przedstawiono podprogram wykonywania testu, czyli główny podprogram autodiagnostyczny. Wykonywana jest pewna liczba połączeń z różnymi procedurami testowymi. Po wykonaniu każdego podprogramu sprawdza się flagi błędów. W przypadku wystąpienia jakiejś nieprawidłowości sekwencja testowa zostaje zatrzymana. Następnie koduje się stan, a wynik przedstawiany jest użytkownikowi za pośrednictwem czterech diod LED, jak to opisano poniżej.
Jak to przedstawiono na fig. 1A, w kroku 1, sekwencja testu operacyjnego rozpoczyna się od inicjalizacji zmiennych i flag. W kroku 2 program wywołuje podprogram testu odwieszenia. W podprogramie testu odwieszenia telefon użytkownika zostaje odłączony od linii wyszukiwania i dzwonienia, w to miejsce do bloku interfejsu, dołączane jest urządzenie testujące, opisane poniżej szczegółowo. W kroku 3 dokonuje się sprawdzenia, czy w podprogramie testu odwieszenia wykrywa się jakiś błąd. Jeżeli wykryto błąd, sekwencja testu zostaje zawieszona, a program przechodzi do kroku 14 na fig. 1B. Jeżeli natomiast nie wykryto błędu, to program wywołuje podprogram testu tonu wybierania w kroku 4. W kroku 5 następuje sprawdzenie wystąpienia błędu tonu wybierania. Jeżeli wykrywa się błąd, sekwencja testu zostaje zawieszona, a program przechodzi do kroku 14 przedstawionego na fig. 1B. Jeżeli natomiast nie wykrywa się błędu, to program wywołuje następny test - podprogram testu DTMF w kroku 6. Program jest kontynuowany w przedstawionym na fig. 1B kroku 7, gdzie sprawdza się wynik podprogramu DTMF. W razie stwierdzenia błędu, sekwencja testu zostaje zawieszona, a program przechodzi do kroku 14. Jeżeli natomiast nie wykrywa się błędu, to program wywołuje następny test, podprogram testu dzwonienia w kroku 8. W kroku 9 dokonuje się sprawdzenia na wystąpienie błędu dzwonienia. Jeżeli wykrywa się błąd, to sekwencja testu zostaje zatrzymana, a program przechodzi do kroku 14. Jeżeli natomiast nie wykrywa się błędu, to program wywołuje następny test, podprogram testu odpowiedzi na dzwonienie w kroku 10. W kroku 11 dokonuje się sprawdzenia na wystąpienie błędu odpowiedzi na dzwonienie. Jeżeli wykrywa się błąd, to sekwencja testu zostaje zatrzymana, a program przechodzi do kroku 1c. Jeżeli natomiast nie wykrywa się błędu, to program przechodzi do podprogramu testu zestawienia połączenia w kroku 12. W kroku 13 dokonuje się sprawdzenia na wystąpienie błędu wywoływania. Jeżeli wykrywa się błąd, to sekwencja testu zostaje zatrzymana, a program przechodzi do kroku 14. Jeżeli natomiast nie wykrywa się błędu, to program przechodzi do podprogramu testu Fin Self w kroku 15. Jeżeli podczas wykonywania podprogramu wykrywa się błąd, to program przechodzi do kroku 14. W kroku 14 program wywołuje podprogram błąd połączenia. Ostatecznie sekwencja kończy się po skasowaniu w kroku 15 wszystkich zmiennych i flag, zwracając sterowanie na powrót do urządzenia telefonicznego i realizując normalne działanie bloku interfejsu 14.
Poniżej objaśniono na podstawie fig. 2 do fig. 9 i opisano szczegółowo poszczególne wspomniane powyżej programy testowe.
Przedstawiony na fig. 2 podprogram testu odwieszenia (krok 2 z fig. 1A) rozpoczyna się od inicjalizacji zmiennych i flag w kroku 16. W kroku 17, program kasuje wszelkie sygnały
178 631 wejściowe diod LED. W kroku 18, telefon użytkownika zostaje odłączony od linii wyszukiwania i dzwonienia bloku interfejsu 14, natomiast w kroku 19 na miejsce telefonu zostaje włączone urządzenie testujące 10. Krok 20 wnosi opóźnienie czasowe zapewniające dostatecznie długi czas reakcji, wystarczający do tego dołączenia. W kroku 21, urządzenie testujące symuluje i generuje odwieszenie. Krok 22 zapewnia opóźnienie czasowe dostateczne dla dokonania zdjęcia słuchawki z widełek. W kroku 23 program sprawdza stan widełek bloku interfejsu 14, który jest teraz dołączony do urządzenia testującego 10. W kroku 24 następuje sprawdzenie odwieszenia. Jeżeli nie wykryte zostanie odwieszenie, program przechodzi do kroku 25, gdzie zostaje ustawiona flaga Error_Flag i następuje ustawienie na „1” flag MainFlagError. Jeżeli jednak nie nastąpi wykrycie błędu, to program trwa do kroku 23, gdzie następuje odblokowanie tonu wybierania, jak to przedstawiono na fig. 3. Na koniec, podprogram kończy się, a program wraca do głównego podprogramu z fig. 1A i 1B.
Przedstawiony na fig. 3 podprogram testu wybierania rozpoczyna się inicjalizacją zmiennych i flag w kroku 27. Krok 28 zapewnia opóźnienie czasowe potrzebne do prawidłowego wybierania tonowego. W kroku 29 następuje testowanie tonu wybierania. Jeżeli ton wybierania jest nieprawidłowy, program przechodzi do kroku 30, gdzie następuje ustawienie flagi ErrorFlag, a flaga MAIN_FLAG_ERROR jest ustawiana na wartość 3. Jeżeli jednak nie nastąpi wykrycie błędu, to program przechodzi do kroku 31, skąd program zawraca na powrót do kroku 29, testując ton wybierania w ciągu przynajmniej 711 ms. Jeżeli nie wystąpił błąd i upłynęło 711 ms, to podprogram zostaje zakończony, a program wraca do podprogramu głównego z fig. 1A i 1B.
Przedstawiony na fig. 4 podprogram testu DTMF, który sprawdza prawidłowość konwersji na dane cyfrowe za pomocą bloku interfejsu 14, rozpoczyna się w kroku 32 zablokowanie tonu wybierania z poprzedniego podprogramu testowego. Krok 33 powoduje ustawienie pierwszego tonu DTMF na 0. W kroku 34, urządzenie testujące 10 wysyła ton DTMF odpowiadający tej wartości. Krok 35 realizuje opóźnienie czasowe zapewniające ilość czasu dostateczną do realizacji włączenia. W kroku 36 następuje zablokowanie tonu DTMF. Krok 37 realizuje opóźnienie czasowe umożliwiające interfejsowi wykrywanie impulsów tonowych DTMF. W kroku 38 blok interfejsu 14 odczytuje ton. W kroku 39 następuje sprawdzenie odebranego tonu DTMF. Jeżeli ton DTMF nie jest taki sam, jak odebrany ton DTMF, lub jeżeli ton DTMF nie zostanie odebrany, to program przechodzi do kroku 40, w którym następuje ustawienie flagi Enror Flag, a flaga MAINFLAGERROR zostaje ustawiona na wartość 4. Natomiast, jeżeli tony DTMF sąjednakowe, to program przechodzi do kroku 41 i następuje wybranie kolejnej cyfry DTMF. W kroku 42 program sprawdza, czy zostały przetestowane wszystkie tony DTMF. W przeciwnym przypadku program zawraca do testowania następnej cyfry. Na koniec, po przetestowaniu wszystkich tonów DTMF, podprogram się kończy i wraca do głównego podprogramu według fig. 1A i 1B.
Na figurach 5A i 5B przedstawiono podprogram testu dzwonienia. Ten podprogram testuje taktowanie dwóch impulsów dzwonienia generowanych przez układy dzwonienia bloku interfejsu 14. Jak to widać na fig. 5A, podprogram rozpoczyna się od inicjalizacji zmiennych i flag w kroku 43. W kroku 44 urządzenie testujące 10 generuje odłożenie słuchawki na widełki. Krok 45 stanowi opóźnienie czasowe umożliwiające blokowi interfejsu 14 wykrycie odłożenia słuchawki. W kroku 46 blok interfejsu 14 jest ustawiany dla upewnienia się, że odbywa się realizacja połączenia wchodzącego. Zatem blok interfejsu 14 generuje swoją sekwencję dzwonienia. Celem kroków 47 do 53 jest weryfikacja rozpoczęcia dzwonienia w ciągu następnych 2 s oraz braku wykrycia zdjęcia słuchawki z widełek. W kroku 47 następuje skasowanie bloku czasowego. Krok 48 sprawdza zdjęcie słuchawki i w razie wykrycia zdjęcia słuchawki następuje zatrzymanie testu, a program przechodzi do kroku 49 na fig. 5C w celu wskazania błędu. Natomiast przy wykryciu odłożenia słuchawki program przechodzi do kroku 51, w którym urządzenie testujące 10 sprawdza aktywność dzwonka. W kroku 52 sprawdza się rozpoczęcie dzwonienia. Jeżeli dzwonienie się rozpoczęło, to program przechodzi do kroku 54, przedstawionego na fig. 5B. Natomiast, jeżeli dzwonek jeszcze nie dzwonił, to program sprawdza blok czasowy w kroku 53. Jeżeli ten czas wynosi mniej niż 2 s, to program zawraca w puli do kroku 48, aż do rozpoczęcia dzwonienia. Natomiast, jeżeli upłynął
178 631 czas 2 s, to test zostaje przerwany i program przechodzi do kroku 49 według fig. 5C, w celu sygnalizacji błędu, jak to przedstawiono na fig. 5B. Krok 54 wnosi opóźnienie czasowe. Celem kroków 55 do 59 jest sprawdzenie, że dzwonek dzwoni w ciągu przynajmniej jednego okresu 1,3 s i że nie wykrywa się podniesienia słuchawki. W kroku 55 następuje skasowanie bloku czasowego. W kroku 56 sprawdza się odwieszenie. Jeżeli wykrywa się podniesienie słuchawki, to test zostaje zatrzymany, a program przechodzi do kroku 49 z fig. 5C, w celu sygnalizacji błędu. Natomiast, jeżeli wykrywa się odwieszenie, program przechodzi do kroku 57, w którym urządzenie testujące 10 sprawdza aktywność dzwonka. W kroku 58 sprawdza się, czy dzwonienie zostało zatrzymane. Jeżeli dzwonienie zostało zatrzymane, to program sprawdza blok czasowy, w kroku 59. Jeżeli blok czasowy działa mniej niż 1,3 s, to program zawraca w puli do kroku 56, aż do ustania dzwonienia. Natomiast, jeżeli czas upłynął, test zostaje zatrzymany, a program przechodzi do kroku 49 z fig. 5C. Celem kroków 60 do 62 jest sprawdzenie, że dzwonek dzwoni nie dłużej niż 2,5 s.
W kroku 60 urządzenie testujące 10 sprawdza aktywność dzwonka. W kroku 61 sprawdza się czy ustało dzwonienie. Jeżeli tak, to program przechodzi do kroku 63 z fig. 5C. Jeżeli jednak dzwonienie nie ustało, program sprawdza blok czasowy, w kroku 62. Jeżeli blok czasowy wykazuje upływ poniżej 2,5 s, to program zawraca w pętli do kroku 60, aż do ustania dzwonienia. Natomiast, jeżeli czas upłynął, test zostaje zatrzymany, a program skacze do kroku 49 z fig. 5C.
Celem kroków 63 do 65 przedstawionych na fig. 5C jest sprawdzenie, że w okresie 2 s nie wykrywa się podniesienia słuchawki. W kroku 63 następuje skasowanie bloku czasowego. W kroku 64 sprawdza się odwieszenie słuchawki. Jeżeli wykrywa się odwieszenie słuchawki, to test zostaje zatrzymany, a program przechodzi do kroku 49, w celu sygnalizacji błędu. Jeżeli nie wykrywa się podniesienia słuchawki, to program sprawdza blok czasowy, w kroku 65. Jeżeli blok czasowy wykazuje upływ czasu poniżej 2 s, to program zawraca do kroku 64, aż do rozpoczęcia dzwonienia. Natomiast, jeżeli czas upłynął, program przechodzi do kroku 66, w którym sprawdza, w ilu cyklach tego podprogramu sprawdzano dzwonienie. Jeżeli dzwonienie było sprawdzane tylko raz, program przechodzi do kroku 67, w którym zostaje ustawiona flaga Ring Second. Następnie program zawraca do kroku 47 w celu sprawdzenia dzwonienia po raz drugi. Natomiast jeżeli dzwonienie było sprawdzane dwukrotnie, to test zostaje zatrzymany, a program powraca do podprogramu głównego. Jeżeli podczas dowolnej części podprogramu testu odczytu został wykryty błąd, program przechodzi do kroku 49. W kroku 49 następuje skasowanie stanu połączenia wchodzącego i sekwencja zostaje zakończona. Następnie program przechodzi do kroku 50, w którym ustawiana jest flaga ErrorJFlag, a flaga MainFlag Error ustawiana jest na wartość 5. Następnie podprogram zostaje zakończony, a program powraca do podprogramu głównego.
Na figurze 6 przedstawiono podprogram testu odpowiedzi na dzwonienie. Ten podprogram sprawdza odpowiedź bloku interfejsu 14, kiedy do niej zgłoszono podniesienie słuchawki w cyklu dzwonienia, podczas odpowiedzi aparatu telefonicznego na połączenie wchodzące. Celem kroków 68 i 69 jest sprawdzenie, że w okresie następnych 2 s rozpocznie się dzwonienie i że nie wykrywa się podniesienia słuchawki. W kroku 68 następuje skasowanie bloku czasowego. W kroku 69 sprawdza się odwieszenie słuchawki. Jeżeli wykrywa się odwieszenie słuchawki, to test zostaje zatrzymany, a program przechodzi do kroku 73. Natomiast, jeżeli wykrywa się odwieszenie, program przechodzi dalej z aktywnym dzwonkiem. W kroku 71 sprawdza się rozpoczęcie dzwonienia. Jeżeli dzwonienie się rozpoczęło, to program przechodzi do kroku 74. Natomiast, jeżeli dzwonek jeszcze nie zadzwonił, to w kroku 72 program sprawdza blok czasowy. Jeżeli blok czasowy wykazuje upływ czasu poniżej 2 s, to program powraca w pętli do kroku 65, oczekując na rozpoczęcie się dzwonienia. Natomiast, jeżeli upłynął czas powyżej 2 s, test zostaje zatrzymany, a program przechodzi do kroku 73. W kroku 74 urządzenie testujące 10 generuje sygnał podniesienia słuchawki. Krok 75 stanowi opóźnienie czasowe umożliwiające blokowi interfejsu 14 wykrycie podniesienia słuchawki. W kroku 76 blok interfejsu 14 sprawdza stan widełek. Jeżeli nie wykrywa się podniesienia słuchawki w kroku 77, następuje zatrzymanie testu i program przechodzi do kroku 73.
178 631
Natomiast, jeżeli blok interfejsu 14 wykrywa podniesienie, program przechodzi do kroku 78. Jeżeli podczas dowolnej części podprogramu testu odpowiedzi na dzwonienie został wykryty błąd, program skacze do kroku 73, w którym następuje ustawienie flagi Error_Flag, a flaga Main_Flag_Error ustawiana jest na wartość 6. Następnie program przechodzi do kroku 78. W kroku 78 następuje skasowanie stanu połączenia wchodzącego i blok interfejsu 14 wstrzymuje sekwencję dzwonienia. Następnie podprogram się kończy i program przechodzi do podprogramu głównego.
Na figurach 7A i 7B przedstawiono podprogram testu dzwonienia. Ten podprogram sprawdza urządzenie komórkowe lub nadawczo-odbiorcze dołączone do bloku interfejsu 14, przez sprawdzenie na początku zasilania, a następnie wygenerowanie połączenia na własny numer telefonu. Na fig. 7A krok 79 dokonuje sprawdzenia, czy zasilanie urządzenia nadawczo-odbiorczego jest włączone. Jeżeli nie, flaga Mainl_Flag_Error w kroku 81 ustawiana jest na wartość 1, a następnie program przechodzi do kroku 93 na fig. 7B. Natomiast, jeżeli zasilanie jest włączone, to program przechodzi dalej do kroku 92, w którym blok interfejsu 14 żąda od urządzenia nadawczo-odbiorczego numeru telefonu i pobiera go. Krok 83 wnosi opóźnienie czasowe umożliwiające reakcję urządzenia nadawczo-odbiorczego. W kroku 84 blok interfejsu 14 generuje połączenie na własny numer telefonu. Krok 85 stanowi opóźnienie czasowe umożliwiające połączenie między siecią komórkową a urządzeniem nadawczoodbiorczym. W kroku 86 blok interfejsu 14 wykrywa stan pracy urządzenia nadawczoodbiorczego. W kroku 87 odbywa się stan połączenia. Jeżeli nie jest to stan pracy to flaga Mainl_Flag_Error w kroku 88 ustawiana jest na wartość 4, a następnie program przechodzi do kroku 93 na fig. 7B. Natomiast, jeżeli urządzenie nadawczo-odbiorcze znajduje się w stanie pracy, to program przechodzi dalej do kroku 99 z fig. 7B. Jak to przedstawiono na fig. 7B, urządzenie testujące 10 w kroku 89 sprawdza ton zajętości. Jeżeli w kroku 90 wykrywa się ton zajętości, to program przechodzi do kroku 93 w celu wskazania, że wszystko pracuje poprawnie. Natomiast, jeżeli ton zajętości nie zostanie wykryty, program przechodzi dalej, do kroku 91, w którym następuje sprawdzenie bloku czasowego. Jeżeli blok czasowy wykazuje upływ czasu poniżej 18,2 s, to program powraca do kroku 86. Zapewnia to większą ilość czasu dla sieci komórkowej na wysłanie zwrotne odpowiedzi na zajętość. Natomiast jeżeli czas już upłynął, program przechodzi dalej, do kroku 93, w którym flaga Main_Flag_Error ustawiana jest na wartość 3. W kroku 93, blok interfejsu 14 wysyła sygnał końca połączenia do urządzenia nadawczo-odbiorczego. Następnie urządzenie testujące 10 sygnalizuje odwieszenie słuchawki do bloku interfejsu 14, w kroku 94. Program kończy się i wraca do podprogramu głównego.
Zadaniem części podprogramu z fig. 8A i 8B jest generowanie kodu ERROR_CODE na podstawie uprzednio opisanych flag błędów, w taki sposób, że wyniki następnie mogą być wyprowadzone za pośrednictwem diod LED. Jak to przedstawiono na fig. 8A, podprogram rozpoczyna sprawdzanie wartości jednej z dwóch flag błędów, flagi Main_Flag_Error. W kroku 95 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 1, czyli odpowiada Hook Slic Error. Jeżeli tak, to ERRORCODE ustawiany jest w kroku 96 na wartość 1, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 97. W kroku 97 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 2, czyli odpowiada błędowi dzwonienia przy odwieszeniu. Jeżeli tak, to ERROR_CODE ustawiany jest w kroku 96 na wartość 1, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 97. W kroku 97 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 2, czyli odpowiada błędowi dzwonienia-odwieszenia. Jeżeli tak, to ERROR_CODE ustawiany jest w kroku 98 na wartość 2, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 99. W kroku 99 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 3, czyli odpowiada błędowi wybierania. Jeżeli tak, to ERROR_CODE ustawiany jest w kroku 100 na wartość 3, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 101. W kroku 101 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 4, czyli odpowiada błędowi tonu DTMF. Jeżeli tak,
178 631 to ERROR_CODE ustawiany jest w kroku 102 na wartość 4, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 103. W kroku 103 odbywa się sprawdzenie, czy Main_Flag_Error jest równe S, czyli odpowiada błędowi wykrywania dzwonienia. Jeżeli tak, to kod ERRORCODE ustawiany jest w kroku 104 na wartość 5, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 105. W kroku 105 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 6, czyli odpowiada błędowi odpowiedzi na dzwonienie. Jeżeli tak, to kod ERRORCODE ustawiany jest w kroku 106 na wartość 6, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi do kroku 107 według fig. 8B. Na fig. 8B, podprogram rozpoczyna sprawdzanie wartości drugiej flagi błędu, Main1_Flag_EnOr. W kroku 107 odbywa się sprawdzenie, czy Main1_Flag_Error jest równe 1, czyli odpowiada błędowi zasilania części radiowej. Jeżeli tak, to kod ERRORCODE ustawiany jest w kroku 108 na wartość 7, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 109. W kroku 109 odbywa się sprawdzenie, czy Main1_Flag_Error jest równe 2, czyli odpowiada błędowi wywoływania. Jeżeli tak, to kod ERROR_CODE ustawiany jest w kroku 110 na wartość 8, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 111. W kroku 111 odbywa się sprawdzenie, czy Mai^1_Flag_Error jest równe 3, czyli odpowiada błędowi tonu zajętości. Jeżeli tak, to kod ERROR_CODE ustawiany jest w kroku 112 na wartość 9, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 113. W kroku 113 odbywa się sprawdzenie, czy Main1_Flag_Error jest równe 4, czyli odpowiada błędowi stanu pracy urządzenia. Jeżeli tak, to kod ERRORCODE ustawiany jest w kroku 114 na wartość 10, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 115. W kroku 115 odbywa się sprawdzenie, czy Main1_Flag_Error jest równe 5, czyli odpowiada błędowi 1000 Hz. Jeżeli tak, to kod ERROR_CODE ustawiany jest w kroku 116 na wartość 11 i wraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, następuje powrót do podprogramu głównego.
Na figurze 9 przedstawiono podprogram testu FIN_SELF, którego celem jest resetowanie bloku interfejsu 14 dla zapewnienia jego normalnego funkcjonowania i wskazanie końca testu czterokrotnym zapaleniem diod LED. Podprogram rozpoczyna się krokiem 117, w którym urządzenie testujące 10 generuje sygnał odłożenia słuchawki. W kroku 118 odbywa się kasowanie wszystkich zmiennych i flag błędów. W kroku 119 następuje wyłączenie wszystkich diod LED. Krok 120 wnosi opóźnienie czasowe. W kroku 121 włączone zostają wszystkie diody LED. Krok 122 wnosi opóźnienie czasowe. Krok 123 umożliwia zamknięcie puli do kroku 119, tak że włączenie diod LED odbywa się cztery razy. Na koniec, w kroku 124 odbywa się wyłączenie wszystkich diod LED, a następnie program powraca do podprogramu głównego z fig. 1A i 1B.
Poniżej opisano rozwiązanie według wynalazku, z odniesieniem do następnych figur rysunku, opisu poszczególnych obwodów wykorzystywanych do wykonywania opisanego powyżej autotestowania oraz dokumentacji programu do wykonywania wyszczególnionych w opisie operacji.
Na figurze 10 przedstawiono schemat blokowy urządzenia testującego 10. Urządzenie testujące 10 zainstalowane jest w układzie adaptera komórkowego i przeznaczone jest do inicjalizacji procesu automatycznego testowania funkcji aparatu telefonicznego przy uruchomieniu przez abonenta telefonicznego przycisku lub przy testowaniu automatycznym w odstępach około 12 godzin, zgodnie z sieciami działań z fig. 1A 9, jak to opisano szczegółowo powyżej. Końcowy wynik tego autotestowania zostanie przekazany użytkownikowi za pośrednictwem wskaźnika w postaci diod LED, zainstalowanego na prawej ściance adaptera komórkowego, bądź podobnego do komórkowego. Urządzenie 10 ma możliwość meldowania wyników testu do wolnego ośrodka obsługowego. Ten meldunek może być realizowany przez au178 631 tomatyczne połączenie z wyznaczonym z góry numerem centrum obsługowego. Ta funkcja wymaga, aby ośrodek obsługowy był wyposażony w elementy układowe i programowe niezbędne do nawiązania łączności i do interpretacji odebranych meldunków. Test autodiagnostyczny sprawdza poprawność działania adaptera komórkowego, włącznie z jego takimi elementami, jak: podstawowe układy bloku interfejsowego, kable między częścią radiową a interfejsem, linia transmisyjna, antena, urządzenie nadawczo-odbiorcze komórkowe, układ rozliczeniowy i źródło zasilania. Urządzenie testujące 10 jest skonfigurowane tak, aby przy wykonywaniu testu wywoływać ten sam numer, przydzielony do urządzenia nadawczoodbiorczego adaptera. Test autodiagnostyczny zaprogramowany jest tak, aby wykrywać sygnał zajętości lub sygnał natłoku linii, jako wskazanie, że połączenie nie może być dokonywane i że układ transmisyjny działa poprawnie.
Urządzenie testujące 10 jest przeznaczone do wykorzystania w komórkowym bloku adaptera, w celu sprawdzenia, że ten ostatni pracuje poprawnie, bez konieczności wysyłania personelu technicznego na miejsce zainstalowania sprzętu. Urządzenie testujące 10 układu telekonserwacyjnego zasilane jest bezpośrednio z bloku interfejsu komórkowego 14. Urządzenie testujące 10 nie jest układem autonomicznym. Jego działanie zależy od sygnałów sterujących, które odbiera z układu nadzorującego, zlokalizowanego w bloku interfejsu komórkowego 14. Układ nadzorujący porównuje wyniki testów z parametrami systemu operacyjnego. Układ autodiagnostyczny urządzenia testującego 10 przeprowadza następujące testy: błędy odpowiedzi (nieprawidłowy numer) - test wykonywany dwoma różnymi sposobami, napięcie dzwonienia - generuje wywołanie i wykrywa obecność napięcia dzwonienia wytwarzanego przez blok interfejsu 14, odpowiedź na wywołanie - sprawdza, że dzwonienie ustaje po udzieleniu na nie odpowiedzi, ton wybieranie - sprawdza występowanie tonu wybierania, działanie MFTD - sprawdza, czy blok interfejsu 14 prawidłowo wykrywa tony odbierane przez wieloczęstotliwościowy detektor tonu (MFTD), test urządzenia nadawczo-odbiorczego, test układu zaliczającego - sprawdza charakterystyki częstotliwościowe impulsów generowanych przy 12 kHz, zasilacz urządzenia nadawczo-odbiorczego, sprawność układu zasilania. Testy te zostały wyszczególnione powyżej, w opisie sieci działań z fig. 1A-9.
Urządzenie testujące 10 połączone jest z konwencjonalną kartą bloku interfejsu komórkowego 14 za pośrednictwem 20-kołkowego gniazda wtykowego. Podprogram testujący jest inicjowany za pośrednictwem wyłącznika ręcznego zainstalowanego po prawej stronie skrzynki adaptera. Po stwierdzeniu jakiejś nienormalności w działaniu aparatu telefonicznego, jak na przykład braku słyszalności sygnału wybierania po podniesieniu słuchawki odbiornika, abonent podchodzi do skrzynki adapterowej i naciska odpowiednio oznaczony przycisk testowania. Urządzenie testujące 10 dokonuje przerwania połączenia aparatu abonenta z blokiem interfejsu komórkowego 14 i realizuje sekwencję testów autodiagnostycznych, opisaną powyżej. Urządzenie testujące 10 zaprogramowane jest przy tym tak, że inicjuje samoczynnie program testujący w odstępach około 12 godzin od momentu włączenia bloku interfejsu komórkowego 14. Przy automatycznej inicjalizacji testu nie jest generowana sekwencja wychodzącego połączenia testowego. Po dodatkowym opracowaniu można zapewnić inicjowanie funkcji automatycznego generowania testu z ośrodka zdalnego. Ta funkcja telekonserwacyjna wiąże się z modyfikacją oprogramowania operacyjnego bloku interfejsu 14 i wymaga dodatkowo opracowania nowych układów i oprogramowania urządzenia testującego 10. Po zainicjowaniu programu autotestowania pomarańczowy wskaźnik świetlny (dioda LED) błyska, wskazując abonentowi, że odbywa się testowanie. Między kolejnymi testami występują przerwy w błyskającej sygnalizacji trwające około 1 s. Pełny test trwa w przybliżeniu 40 s. Po zakończeniu testu, jego wynik jest przedstawiany za pomocą pozostającego włączonego wskaźnika świetlnego. W tym przypadku występujący problem może się odnosić do odpowiedniego połączenia przewodowego lub zastosowania aparatu telefonicznego dołączonego do bloku interfejsu komórkowego 14. Kiedy wskaźnik świeci w sposób ciągły, blok interfejsu komórkowego 14 wraca do swoich warunków roboczych. W przypadku uszkodzenia bloku interfejsu komórkowego 14 stwierdza się to na podstawie testów, a wskaźnik świetlny przy tym pozostaje w sposób wyraźny wygaszony. Wskazuje to użytkownikowi, że uszkodzenie wystąpiło w adapterze komórkowym. Po zakończeniu procedury testującej, bloku interfejsu
178 631 komórkowego 14 wraca do swoich normalnych warunków pracy, niezależnie od tego, czy zostało wykryte uszkodzenie. Użytkownik może kontynuować wykorzystywanie adaptera nawet przy występowaniu ograniczeń, w wyniku wykrytego uszkodzenia. Wskaźnik świetlny diody (LED) w bloku interfejsu komórkowego 14 może być wykorzystywany do identyfikacji wykrytego uszkodzenia. Zobrazowanie takie stanowi pomoc dla technika serwisu, który ma dostęp do wnętrza skrzynki w celu sprawdzenia prawdopodobnej przyczyny uszkodzenia. Kombinacja włączonych (ON) i wyłączonych (OFF) diod LED może identyfikować pierwotnie wykryte w teście uszkodzenia. Ta kombinacja pozostaje zapalona podczas 60 s po zakończeniu testu. Listę kodów możliwych uszkodzeń wskazywanych przez diody LED bloku interfejsu komórkowego 14 zamieszczono poniżej.
Jeżeli w wyniku wykonania testu wykrywa się uszkodzenie, to może być inicjalizowane połączenie z ośrodkiem telekonserwacyjnym. Po nawiązaniu łączności meldowane jest stwierdzone uszkodzenie. Ta funkcja telekonserwacyjna umożliwia prowadzenie bazy danych dla każdego z bloków. Jeżeli test został uruchomiony ręcznie, za pomocą przycisku, to pełny wynik zakończonego testu, niezależnie od wykrytych uszkodzeń, będzie meldowany do ośrodka telekonserwacyjnego.
Poniżej zamieszczono listę kodów wyświetlanych na tablicy diod LED:
4.10 KOD BŁĘDU
Typ błędu | LED 5 | LED 4 | LED 3 | LED 2 |
Bez uszkodzenia | OFF | OFF | OFF | OFF |
Błąd pętli | OFF | OFF | OFF | ON |
Błąd pętli | OFF | OFF | ON | OFF |
Ton wybierania | OFF | OFF | ON | ON |
Detektor MFTD | OFF | ON | OFF | OFF |
Detektor dzwonienia | OFF | ON | ON | ON |
Odpowiedź na wywołanie | OFF | ON | ON | OFF |
Zasilanie nadajnika | OFF | ON | ON | ON |
Nadajnik (połączenie) | ON | OFF | OFF | ON |
Odbiornik (zajętość) | ON | OFF | OFF | OFF |
Detekcja tonu przy 12 kHz | ON | OFF | ON | ON |
Zasilacz główny | ON | OFF | ON | OFF |
„BRAK OBSŁUGI” | ON | ON | ON | ON |
Obwód nadawania | ON | ON | ON | OFF |
Nie określony | ON | ON | OFF | ON |
Nie określony | ON | ON | OFF | OFF |
Sekwencja autotestowania jest następująca. Pierwszym działaniem realizowanym przez urządzenie testujące 10 jest odłączenie instalacji abonenta.
Następnie symuluje się warunki „odpowiedzi na telefon abonenta”. W tych warunkach przez generację tonu wybierania sprawdza się poprawność wykrywania zamknięcia puli. Następnie sprawdza się poprawność generacji tonu wybierania w minimalnym zakresie częstotliwości i poziomów. Następnie rozpoczyna się test detektora tonu wieloczęstotliwościowego MFTD. Składa się on z karty autodiagnostycznej generującej pełną sekwencję 16 tonów MFTD, wysyłającej ją do konwencjonalnej bloku interfejsu komórkowego 14 w adapterze komórkowym i sprawdzenia poprawności odbioru tych tonów. Następnie wykonuje się test służący do sprawdzania poprawności funkcjonowania generatora dzwonienia. Generuje się prąd dzwonienia, przy sprawdzaniu jego częstotliwości i poziomu, w określonym zakresie minimalnym. Następnie na nowo symuluje się warunki odpowiedzi telefonu, czyli odpowiedzi na połączenie, w celu sprawdzenia działania układu dzwonienia, który powinien być zdezaktywowany przed odpowiedzią telefonu. W następnym teście wykrywa się zdolność układu zaliczania do generacji impulsów o częstotliwości 12 kHz, w minimalnym zakresie
178 631 częstotliwości i poziomu, dla przypadku adapterów telefonicznych komórkowych. Impulsy generowane przez kartę układu zaliczania są wykrywane przez precyzyjny detektor impulsów w urządzeniu testującym 10 w znany sposób. W przypadku adapterów systemowych komórkowych, które nie mają modułów zaliczania, w takim przypadku ustawia się w położeniu rozwarcia łącznik J1.3 karty bloku interfejsu komórkowego 14. W tych blokach, które mają zainstalowany moduł zaliczania, należy stosować mostek zwierający.
Następne testy sprawdzają działanie komórkowego urządzenia nadawczo-odbiorczego. Po pierwsze sprawdzane jest zasilanie urządzenia nadawczo-odbiorczego. Po pierwsze sprawdzane jest zasilanie urządzenia nadawczo-odbiorczego. Ten test wykonuje się przez wykrywanie stałego napięcia + 12 V, otrzymanego ze złącza danych urządzenia nadawczoodbiorczego. Następnie jest sprawdzane urządzenie nadawczo-odbiorcze, to znaczy w warunkach usług dostępu komórkowego charakteryzującego się brakiem sygnału „NO SERVICE”. Obecność sygnału „NO SERVICE” zostanie rozpoznana jako uszkodzenie. Takie warunki mogą być spowodowane wadliwą detekcją, a nie po prostu uszkodzeniem komórkowego urządzenia nadawczo-odbiorczego. Następnie jest generowane połączenie przez sieć komórkową z numerem abonenta. W ten sposób sprawdzane jest działanie urządzenia nadawczoodbiorczego, przez wykrywanie sygnału zajętości z systemu, ponieważ odbywa się wywoływanie samego siebie. W przypadku natrafienia na natłok w sieci nastąpi poinformowanie urządzenia nadawczo-odbiorczego o warunkach „PATH ENGAGED” („TRASA ZAJĘTA”). Urządzenie nadawczo-odbiorcze wtedy generuje ton NATŁOKU (zajętości). Obecność tego tonu jest interpretowana jako poprawność działania bloku nadawczo-odbiorczego, podobnie jak sygnał zajętości. Ten ton interpretowany jest jako wynik poprawnego działania urządzenia nadawczo-odbiorczego, tak samo jak sygnał zajętości. Test ten może być realizowany tylko wtedy, kiedy podprogram inicjowany jest rocznie, na przykład za pomocą przycisku. Test nie będzie realizowany w blokach, które inicjują proces automatycznie. Następnie sprawdzane jest napięcie zasilającego układu mocy. Jeżeli napięcie stałe jest mniejsze od 14,5 V, zostanie wykryte uszkodzenie źródła zasilania.
Na figurze 10, urządzenie testujące 10 jest przyłączone do standardowego komórkowego adaptera, bądź bloku interfejsu 14. Urządzenie testujące 10 jest zbudowane z układów diagnostycznych wykorzystywanych do realizacji testów autodiagnostycznych opisanych powyżej. Tymi układami są: detektor 16 sygnału zajętości, wykorzystywany podczas testu prawidłowości odbioru wywołania, wykonywanego przez urządzenie testujące 10 podczas opisanego powyżej autotestowania, z wywołaniem zwrotnym, przedstawionym na fig. 7A, układ 18 detektora 12000 Hz wykorzystywany do testowania zaliczania, który sprawdza parametry częstotliwościowe impulsów generowanych przy 12 kHz. Układ 20 generatora MFTD, który generuje sygnały DTMF przetwarzane przez komórkowy blok interfejsu 14, jak to opisano powyżej w odniesieniu do fig. 4, układ 22 detektora sygnału dzwonienia, wykorzystywanego do wykrywania sygnału dzwonienia generowanego przez blok interfejsu 14 komórkowego, podczas podprogramu testu dzwonienia i odpowiedzi na dzwonienie, opisanych powyżej w odniesieniu do fig. 5A i 6, układ 24 detektora tonu wybierania, który sprawdza prawidłowość generacji tonu wybierania przez blok interfejsu 14 komórkowego, bądź podobnego do komórkowego, jak to opisano powyżej w odniesieniu do fig. 3, układ 28 detektora napięcia do sprawdzania zasilania urządzenia nadawczo-odbiorczego i całego urządzenia oraz telekonserwacyjny blok sterujący 30, który jest blokiem sterującym i który jest również wykorzystywany do nawiązywania połączeń i meldowania, do centralnej stacji meldowania, wyników autotestu. Rzeczywista konfiguracja każdego ze wspomnianych powyżej na figurach 11, 12, 13 i 14 układów jest poniżej opisana bardziej szczegółowo.
Na figurach 11, 12, 13 i 14 przedstawiono schematy układów do realizacji symulacji opisanych powyżej testów w ciągu całego procesu samotestowania. Na fig. 11 przedstawiono urządzenie testujące 10. Część oznaczona schematycznie na fig. 11 literą „A”, stanowi miejsce, w którym następuje przyłączenie urządzenia testującego 10 do linii wyszukiwania i dzwonienia konwencjonalnego bloku interfejsu 14 komórkowego. Przekaźnik RELY1 wykorzystywany jest do odłączenia telefonu użytkownika od bloku interfejsu 14 komórkowego podczas konserwacyjnego testu działania. Zamiast tego, urządzenie testujące 10 jest przyłą14
178 631 czone do linii wyszukiwania i dzwonienia, w celu wykonania tych testów. Kiedy sygnał odblokowania testu ma stan wysoki, tranzystor Q3 wchodzi w nasycenie i następnie zasila przekaźnik RELY1 dołączając układ telekonserwacyjny do linii wyszukiwania i dzwonienia. Część układu w uproszczeniu oznaczona na fig. 11 literą „B” stanowi przełącznik widełkowy telefonu abonenta, przy czym mikrotelefon abonenta może być odwieszany na płycie na dwa możliwe sposoby, J1 jest łącznikiem dwuzaciskowym normalnego gniazda telefonicznego P1.
Część układu w uproszczeniu oznaczona na fig. 11 literą „C” stanowi układ interfejsu fonicznego, wykorzystywanego jako interfejs między linią wyszukiwania i dzwonienia a linią foniczną. Tl oznacza telefoniczny transformator dopasowujący. Jego zadaniem jest utrzymywanie podobnych parametrów prądu przemiennego i stałego dla telefonu przy realizacji odbioru i nadawania sygnałów fonicznych. Diody Zenem D1 i D2 służą do eliminacji wszelkich sygnałów o napięciach większych od ± 4,5 V. Zainstalowany jest również optoizolator SSR1, który w połączeniu z tranzystorem Q4 zapewnia zwieranie linii wyszukiwania i dzwonienia.
Kiedy sygnał przyłączania pętli jest ustawiony w stan wysoki, to tranzystor Q4 wchodzi w nasycenie, co powoduje zasilanie optoizolatora SSR1, zamknięcie obwodu i realizacji funkcji zdjęcia słuchawki.
Część układu w uproszczeniu oznaczona na fig. 11 literą „D” stanowi układ wykrywania dzwonienia, zawierający dwa układy scalone: układ U2 wykrywania dzwonienia i U9 optoizolatora zapewniający właściwy poziom CMOS sygnału wyjściowego. Do układu U2 wykrywania dzwonienia doprowadzany jest sygnał wejściowy, kiedy na linii wyszukiwania i dzwonienia występuje napięcie dzwonienia. Sygnał ten jest transformowany przez układ U9 optoizolatora, który następnie generuje aktywny sygnał niski na linii I/0.
Część układu w uproszczeniu oznaczona na fig. 11 literą „E” stanowi układ wykrywania pętli prądowej, zawierający kolejny optoizolator U17 zapewniający wykrywanie prądu pętli. Kiedy ten test jest wykonywany (sygnał odblokowania testu w części A ma stan wysoki) i realizowane jest podniesienie słuchawki (sygnał przyłączania pętli w części C jest w stanie wysokim), linie wyszukiwania i dzwonienia zostają zwarte zapewniając prąd podniesienia słuchawki. Prąd ten jest transformowany przez optoizolator U17 na aktywny poziom niski na linii I/0.
Część układu w uproszczeniu oznaczona na fig. 11 literą „F” stanowi zespół układów fonicznych wejściowych/wyjściowych zbudowany z 14 scalonego wzmacniacza operacyjnego Ul. Głównym zadaniem tego obwodu jest izolowanie i wzmacnianie wejściowych sygnałów fonicznych. Wyjście tego układu jest wejściem fonicznym. Również i w tym przypadku sygnał wyjściowy DTMF generowany przez urządzenie testujące 10 przekazywany jest na linię wyszukiwania i dzwonienia. Ten sygnał DTMF pojawia się na wyjściu tonowym.
Część oznaczona schematycznie na fig. 12 literą „G” jest generatorem sygnału DTMF, który zbudowany jest z układu U4, generowania sygnału DTMF oraz z 14 scalonego wzmacniacza wyjściowego Ul. W celu generowania sygnału DTMF, podaje się najpierw czterobitową wartość kodową na zaciski wejściowe oznaczone DTMF1-OUT, DTMF2-OUT, DTMF3-OUT, DTMF4-OUT układu U4. Następnie utrzymując tę wartość czterobitową, powoduje się, że sygnał zezwalający na zacisku wejściowym oznaczonym DTMF-OUT zmienia poziom z niskiego na wysoki umożliwiając w ten sposób generację sygnału. Częstotliwość akustyczna wyprowadzona jest na wyjście tonowe po wzmocnieniu sygnału przez wzmacniacz U1. W celu wyłączenia tonu, sygnał zacisku DTMF-OUT sprowadza się na powrót do stanu niskiego.
Część oznaczona schematycznie na fig. 12 literą „H” jest układem scalonym U8 portów I/0. Ten układ scalony z portami wejściowymi i wyjściowymi jest wykorzystywany przez mikrokontroler bloku interfejsu 14 komórkowego do odczytu danych wejściowych i do sterowania wszystkich sygnałów wyjściowych urządzenia testującego 10. Łącznik J4 stanowi przełącznik dla automatycznego testu periodycznego zapewniający wybór 12 lub 24 godzin. JS wykorzystywany jest dla umożliwienia „automatycznej odpowiedzi” na wywołanie.
Części oznaczone schematycznie na fig. 12 literą „I.1” i „I.2” są złączami zasilającymi, złączami przesyłania danych i złączami sterującymi. W ich skład wchodzi głowica wtykowa J2 z kołkami stykowymi 2x10 wykorzystywana do podawania zasilania, jak również do
178 631 nadawania i odbioru danych portu I/ 0. Zawierają one również głowice J3 z czterema kołkami stykowymi wykorzystywanymi do sygnalizacji stanu testowania oraz do zewnętrznego przycisku służącego do ręcznej aktywacji testu.
Część oznaczona schematycznie na fig. 12 literą „J” jest stabilizatorem zasilania i zawiera układ U7, 5-woltowego nieregulowanego stabilizatora napięcia dodatniego, dostarczający napięcie niezbędne dla układów cyfrowych.
Urządzenie testujące 10 zawiera sześć pojedynczych detektorów tonu, wykorzystywanych do testowania toru fonicznego, częstotliwości i taktowania czasu trwania tonów ROH, wybierania, zajętości i natłoku. Każdy z detektorów tonu składa się ze wzmacniacza operacyjnego i oddzielnego detektora tonu. Wejście wzmacniacza 10 operacyjnego jest dołączone do linii wejścia fonicznego. Częstotliwość detekcji ustawiana jest za pomocą rezystora i kondensatora, które są włączane między kołki stykowe oraz masy. Kiedy tonowi programowanemu przez obwód rezystora i kondensatora odpowiada ważny ton, to sygnał wyjściowy detektora tonu zmienia stan z niskiego na wysoki.
Część „K” na fig. 12 stanowi układ detektora sygnału wybierania. Kiedy na wejściu układu U3 wykrywania sygnału wybierania występuje ważny sygnał wybierania, linia wykrycia wybierania jest ustawiana w stan niski.
Część „L” stanowi układ detektora sygnału zajętości. Kiedy na wejściu układu U6 wykrywania sygnału zajętości występuje ważny sygnał zajętości, linia wykrycia zajętości jest ustawiana w stan niski.
Część „M” z fig. 13 stanowi układ detektora tonu 400 Hz. Kiedy na wejściu układu scalonego U14 występuje ważny ton 400 Hz, linia wykrycia tonu 400 Hz jest ustawiana w stan niski.
Część „N” z fig. 14 stanowi układ detektora tonu 800 Hz. Kiedy na wejściu układu scalonego U13 występuje ważny ton 800 Hz, linia wykrycia tonu 800 Hz jest ustawiana w stan niski.
Część „O” stanowi układ detektora tonu 1020 Hz. Kiedy na wejściu układu scalonego U16 występuje ważny ton 1020 Hz, linia wykrycia tonu 1020 Hz jest ustawiana w stan niski.
Część „P” stanowi układ detektora tonu 12 kHz. Kiedy na wejściu układu scalonego U12 występuje ważny ton 12 kHz, linia wykrycia tonu 12 kHz jest ustawiana w stan niski.
Część „Q” z fig. 13 stanowi układ detektora sygnału DTMF, złożony z układu U13 wykrywania sygnału DTMF oraz 14 scalonego wzmacniacza wejściowego U1. Kiedy na wejściowej końcówce występuje ważny sygnał DTMF, linia DTMF-STROBE jest ustawiana w stan niski, a układ U13 dokonuje wykrywanie sygnału DTMF. Po zdekodowaniu sygnału, na końcówki oznaczone DTMF0-IN, DTMF1-IN, DTMF2-IN, DTMF4-IN, wprowadzana jest wykryta wartość czterobitowa. Następnie linia DTMF-STROBE jest ustawiana na powrót w stan wysoki.
Część „R” stanowi monitor składowej zmiennej, zawierający układ U10, detekcji obniżenia się napięcia poniżej 4,5 V. Rezystory R17 i R33 stanowią dzielnik napięcia, który powiększa napięcie detekcji układu U10 z 4,5 V do 13 V. Układ pracuje przy założeniu, że kiedy dochodzi napięcie zasilające z zasilacza, na wejściu urządzenia testującego 10 występuje 13 V. W przypadku zaniku zasilania prądem przemiennym, napięcie spada do poziomu podtrzymywania baterii, który nie przewyższa 13 V. Układ ten wykrywa zanik i ustawia linię wykrycia sygnału zmiennego w stan niski.
Na figurach 15, 16 i 17 przedstawiono sieci działań podprogramu wywołania ośrodka telekonserwacyjnego wykorzystywanych przy meldowaniu wyników testów autodiagnostycznych do zdalnego ośrodka telekonserwacyjnego.
Na figurze 15 począwszy od góry (blok 200) znajduje się punkt wejściowy procedury wywołania ośrodka telekonserwacyjnego. W etapie 1 (blok 201) zmienna zliczająca próby transmisji jest ustawiana na wartość 3. Liczba ta określa, ile razy został nadany przekaz do ośrodka telekonserwacyjnego przed przerwaniem połączenia. W etapie 2 (blok 204) kasowany jest bit niezakończenia połączenia. Następuje skasowanie wszelkich dotychczas występujących połączeń i przy założeniu, że poprzednie połączenie trwa i nie zostało zakończone, następuje ustawienie flagi wywołania zwrotnego. W etapie 3 (blok 206) przed wywołaniem
178 631 ośrodka telekonserwacyjnego, sprawdzana jest systemowa flaga obsługi. Jeżeli występują warunki braku obsługi, to połączenie zostaje przerwane i następuje ustawienie flagi CALL_BACK. W etapie 4 (blok 208), z bloku pamięci urządzenia nadawczo-odbiorczego zostaje wywołany numer telefoniczny ośrodka telekonserwacyjnego. W etapie 5 (blok 210) program wydaje polecenie nawiązania połączenia radiowego. Na figurze 16, w etapie 8 (blok 212), licznik/blok czasowy jest ustawiany na czas maksymalny (upływ czasu) oczekiwania programu przed zrzuceniem połączenia przy wystąpieniu błędu nadawania/odbioru w ośrodku telekonserwacyjnym. W etapie 10 (blok 216) sprawdzane są flagi BRAK-OBSŁUGI i PRACA, w celu sprawdzenia, czy połączenie zostało zrzucone. Jeżeli połączenie zostało zrzucone, to program przekazuje wykonanie do etapu 6 (blok 211) z fig. 15. W etapie 11 (blok 218) i po odebraniu jakiegokolwiek sygnału z odbiorczego kanału fonicznego, odebrany sygnał sprawdzany jest na konkretne kombinacje tonów, na przykład zajęty i wtedy połączenie zostaje zerwane, a wykonanie przechodzi do etapu 7, do procedury wyjścia (patrz fig. 15). W etapie 12 (blok 220) i po odebraniu jakiegokolwiek sygnału w odbiorczym kanale fonicznym, odebrany sygnał sprawdzany jest na występowanie kombinacji sygnału RING/BACK. Jeżeli wykryto sygnał RING/BACK, to program przekazuje wykonanie na powrót do etapu 9 (blok 214) w celu sprawdzenia, czy upłynął okres 1 minuty, przed wejściem w procedurze wyjścia. W etapie 13 (blok 222) sygnał jest sprawdzany na występowanie tonu 1020 Hz. Jeżeli ton wystąpi w ciągu przynajmniej 100 ms, to program przekazuje wykonanie do etapu 14 na fig. 17, w celu uruchomienia podprogramu wysłania komunikatu. W etapie 14 (blok 224, fig. 18) zliczana wstecz zmienna powtórzeń transmisji jest ustawiana na wartość 3. Licznik określa maksymalną liczbę retransmisji do ośrodka telekonserwacyjnego. W etapie 15 (blok 226), program przekazuje komunikat do ośrodka telekonserwacyjnego. W etapie 16 (blok 228), licznik upływu czasu 10 ms jest ustawiany na zero. Licznik ten wyznacza oczekiwanie programu w okresie 10 s, na ton potwierdzenia (1020 Hz) z ośrodka telekonserwacyjnego. Jeżeli ten ton nie zostanie odebrany wciągu 10 s (etap 16, blok 232), to program przechodzi do etapu 19. W etapie 19 (blok 234), zostaje zmniejszona o 1 wartość licznika powtórzeń transmisji (wstępnie ustawiona na wartość 3). W etapie 20 (blok 236), zawartość tego licznika jest porównywana z zerem. Jeżeli wartość licznika wynosi zero, to ustawiana jest flaga CALLBACK i następnie program przekazuje sterowanie do etapu 7 w celu wykonania procedury. W etapie 17 (blok dacyjny 230) jeżeli po nadaniu komunikatu odebrano ton 1020 Hz z ośrodka telekonserwacyjnego oznaczający potwierdzenie odebrania komunikatu, kasuje się flagę CALL_BACK, kończąc połączenie z wynikiem pomyślnym.
Na figurze 18 przedstawiono sieć działań podprogramu odbioru komunikatu inicjacji z ośrodka telekonserwacyjnego przy inicjalizacji testowania autodiagnostycznego przez zdalny ośrodek telekonserwacyjny. Celem etapu 23 (blok 240) jest zaznaczenie, że procedura radiowej obsługi przerwania wykonuje zadania inne, niż zadanie opisane poniżej. Zadania te związane są z podstawowymi funkcjami interfejsowymi. W etapie 24 (blok dacyzyjny 242) sprawdzany jest blok kompletności komunikatu. Jeżeli komunikat nie został odebrany, to program przekazuje wykonanie do etapu 29 (blok 244), w którym wykonywana jest procedura obsługi przerwania. W etapie 25 (blok 246) wchodzący w części radiowej bajt danych porównywany jest z kodem aktywacji zdalnego testu telekontrolnego, przesyłanym przez ośrodek telekonserwacyjny w systemie. Jeżeli z ośrodka telekonserwacyjnego został odebrany kod aktywacji testu telekontrolnego, to program wykonuje etap 26 (blok 248), w którym flaga jest ustawiana na zmienną CALLBACK w celu wskazania, że przez ośrodek telekonserwacyjny został zainicjowany test. W etapie 27 (blok 250), ustawiana jest flaga TEST ENABLE w celu odblokowania procesu testowania. W etapie 28 (blok 252) zmienne skojarzone z wynikami testowania przed rozpoczęciem testu autodiagnostycznego są wstępnie ustawiane w stan początkowy.
Na figurze 19 przedstawiono sieć działań procedury weryfikacji stanu pętli głównej z podprogramem kontroli odwieszenia. Celem etapu 30 (blok 260) jest kasowanie bloku czasowego WATCH DOG, w celu zapobieżenia kasowaniu jednostki centralnej. W etapie 31 (blok 262), testowana jest flaga TEST ENABLE. Jeżeli flaga TEST ENABLE jest ustawiona na 1, oznaczając, że test został odblokowany (ustawienie następuje ręcznie, automatycznie
178 631 z bloku czasowego lub w trybie telekontrolnym) to program odgałęzia się do etapu 34 (blok 262 wykonaj proces testu). Po wykonaniu tego procesu, program wraca do pętli kontroli odwieszenia. W etapie 32 (blok 226), testowana jest flaga „słuchawka zajęta”. Jeżeli ta flaga jest ustawiona na 1, oznaczając, że telefon został zdjęty z widełek, program odgałęzienia się do procesu słuchawka zdjęta (etap 36, blok 272). Po wyjściu z tego procesu program wraca do pętli kontroli odwieszenia. W etapie 33 (blok 270) testowana jest flaga „słuchawka zdjęta przy połączeniu wchodzącym”. Jeżeli ta flaga jest ustawiona oznaczając, że odebrano połączenie wchodzące oraz że telefon został zdjęty z widełek, program odgałęzia się do podprogramu odpowiedzi na wywołanie (etap 36, blok 272). Po wyjściu z tego podprogramu program wraca do pętli kontroli odwieszenia.
Poniżej zamieszczono wydruk programu źródłowego realizacji wynalazku.
$nopi nosb db noge nomo nopr ep
Snolist
Sinclude (reg252.pdf)
Slist ;Maxjack, aut. Alexis V.Torres dla Telular International, Inc. ;(C) Copyright Telular International, Inc. 1993-1995 ;Interfejs telefoniczny/komórko wy:
;Program główny z tablicą obsługi ;92.11.29 maint.asm ;Uniwersalne kody klawiszy telefonii naziemnej zero equ Oah ;kod klawisza [0] star equ Obh ;kod klawisza [*] pound equ Och ;kod klawisza [#] ;Wskaźniki dla wyświetlaczy HS i komunikatów TRU
dspbuf_start | equ | 80h | ;Początek bufora 16B wyświetlacza LCD |
dspbuf_end | equ | 90h | ;Koniec bufora wyświetlacza LCD |
msgbuf_start | equ | 90h | ;Początek bufora komunikatów TRU (itp.) |
msgbuf end | equ | Oh | ;Koniec bufora komunikatów TRU |
main_flay | equ | 0b0h | ;Do sprawdzania flag używaj adresu ;bezpośredniego |
;hook_slic | 1 | ||
;dial | 2 | ||
;dtmf | 3 | ||
;ring_test | 4 | ||
;ans_test | 5 | ||
mainflagerror | eou | 0b1h | |
;hook_slic_error | w | ;błąd odwieszenia | |
;hook_ring_error | w | ;błąd odwieszenia |
;dial error ;błąd tonu wybierania
178 631
;dtmf_error | 4 | ;błąd dtmf | ||
;ringjtestjerror | 5 | ;błqd dzwomema | ||
;ans_testjerror | 6 | ;błąd odpowieclxi na dzwonienie | ||
main1jflag | equ | 0b2h | jjak wy^j | |
;power_radio | 1 | ;błąd ^silEnia-radio | ||
;calljtest | 2 | ;błąd poląezema | ||
;calljtone | 3 | ;błqd rozmowy | ||
main1jflagjCrror | equ | 0b3h | jpk. vy/żej | |
;power_radiojerror | 1 | rezerwa | ||
;calljtest | 2 | rezerwowy bkąd | ||
;calltone | 3 | rezerwowy btad rozmowy | ||
;inuse | 4 | ;Mąd pracy | ||
;1000hz | 5 | Błąd 1000Hz | ||
error_code | equ | 0b4h | ;ostatec:ma sygnaiizacai LED) | |
;hookjslicjerror | 1 | odwieszenie | ||
;hookjring_error | 2 | odwieszenie | ||
;dial_error | 3 | ;wybierame | ||
;dtmf_error | 4 | ;dtmf | ||
;ringjtest_error | 5 | ;dzwomeme | ||
;ansjtest_error | 6 | odpowiedź na d;womeme | ||
;powerjradio_error | 7 | ;zasilame-radio | ||
;calljtest | 8 | ;połączeme | ||
;calljtone | 9 | rozmowa | ||
;inuse | 10 | ;praca | ||
;1000hz | 11 | 1000Hz | ||
cero | equ | 00h | ||
uno | equ | 08h | ||
dos | equ | 04h | ||
tres | 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 |
;Wewnętrzne definicje zmiennych Ram ; Rejestry zajmująbajty 00h-07h (bank rej. 0) ;r0 wskaźnik pamięci (również wskaźnik adresowy dla ekspandera I/O) ;rl wskaźnik pamięci danych z TRU ;r2 liczba cyfr ;r3 pętla opóźnienia dla bloku czasowego magistrali ;r4 pętla opóźnienia dla bloku czasowego magistrali
178 631 ;r5 wykorzystywany w bloku czasowym rrhtone r6 wykorzystywany w acmdtimc ;r7 wykorzystywany w bloku czasowym rchnonc ; Lokacje pamięci zmiennych
;time_off1 | daai | 10h | ;mierzy czas podniesienia słuchawki |
;time_off:2 | ratki | 11h | milerzy czas podniesienia słuchawki |
;time_off3 | data | 11h | ;mier;y czas podniesienia słuchawki |
;time_onl | data | 13h | ;mierzy czas odłożenia s^^Lctb^r^w^kii |
;times0e2 | chiUi | 14h | mtierzy czas odłożenia słuchawki |
pulse_digio | rhoai | 15h | ;wartość cyfry w-wybieranej impulsowo |
in use off timer | data | 16h | ;sprawdza, czy w 2 s po uruchomieniu zaczyna działać lampka |
rieg_timer | dala | 17h | ;blok czasowy sprawdza czas międty dzwonkami |
bell_timer | data | 18h | ;blok czasowy generuje 20 Hz dla dzwonka |
bell_timer2 | data | 19h | ;blok czasowy dla dzwonka |
gndstart_timer1 | daLa | lah | izwalnia linię GS, jeżeli nie ma połączenia przez 1 s |
gedstarts0imer2 | i^ata | lbh | jjak yvyżej |
^igEpoinO | daaa | l1h | ;zapisuje dph dla lablic 1ι^ηοη^^<3ΐη |
;lowpomt | rhidi | IcHh | ;zapisuje ddl dta taMic tonenysh |
highpomt | daia | 35h | ;zapisuje dph dla labie lonorw^ch |
lowpoinO | data | 36h | ;zapisuje ddp di taMic tonowys·Il |
test_min | data | 11h | |
;free | <^ata | Uh |
.*********************************************************** ;Obszar RAM 20h-29h jest zarezerwowany do wykorzystania przez główny moduł, ;albo jako dane w postaci bajtów, albo poszczególnych bitów .***********************************************************
9 flags | DATA 20h | ;ten bajt zawiera poniższe flagi w postaci indywidualnie adresowalnych bitów | |
fhook | bit | OOh | ;Flaga ustawiana przy zdjęciu słuchawki, kasowany po przetworzeniu |
fsend | bit | Olh | ;Flaga nadawania |
fflash | bit | 02h | ;Flaga flash |
fhang | bit | 03h | ;Flaga zawieszenia rozmowy |
ftime | bit | 04h | ;Flaga bloku czasowego 40 s |
fdigit | bit | 05h | ;Flaga impulsowego wejścia cyfrowego |
fonhook | bit | 06h | ;Flaga odwieszenia ustawiana w 700 ms po odłożeniu, kasowana następnym podniesieniem |
fdtmin | bit | 07h | ;Flaga wejściowa dtmf |
inds | DATA 21 h | ;Wskaźniki-ten bajt zawiera następujące bity : | |
roam | bit | 08h | ;wskaźnik przemieszczania się roam |
noserv | bit | 09h | ;Wskaźnik braku obsługi |
lock | bit | Oah | ;Wskaźnik zablokowania |
rdis | bit | Obh | ;Kasuj wyświetlenie cyfry |
horn | bit | Och | ;Wskaźnik sygnału dźwiękowego |
f_init | bit | Odh | ;Ustawiany wyłącznie przez TRU! (l=inicjalizacja wykonana) |
178 631
tystart | btO | 0ee |
test_enable | lito | Ofh |
indasc | daaa | 22h |
inuse | bito | 10h |
ap1 | lito | 11h |
ap2 | lito | 12h |
test end | bito | 13h |
;not_error | bito | 14h |
retum_ring | bto | 15h |
erns flag | bto | 16h |
ring | bito | 17h |
io status | DATA 24h | |
strobe | bitt | 1 ch |
ftζgs2 | DATA 24h | |
fdig_ready | bito | 20h |
fanswer | bito | 21h |
fsąndrimer | bito | 22h |
fjnuseofftiming | bjto | 233i |
funtoaktimąr | b)to | 24h |
fdtone | bito | 2^5h |
fdąaoder_busy | bito | 2^h |
fbąllsound | bito | 27h |
pxl_temp | DATA 25h | |
mitelq1 | bto | 28h |
mitelq2 | bito | 29h |
mitelq3 | bito | 2ah |
mitelq4 | bito | 2bh |
powerhold | bito | 2ch |
spare1 | bito | 2dh |
spa^ | bito | 2eh |
no_ring | bito | 2ff |
dx2_rąmd | DATA 26h | |
toopswitah | bto | 30h |
ring_ | bto | 31h |
mute | bitt | 32h |
roh_boost | btt | 33h |
sw sendtimer | bt3 | 34h |
sw dialKme | btt | 35h |
sw gndstart | btt | 36h |
sw_data | bit | 37h |
lampstemp | DATA 77h | |
free | bit | 38h |
;1-przerwanie odłożenia zablokowane na 500 ms ;autotestowanie po pierwszym zdjęciu słuchawki ze względu na wibrację styków ; Sterowanie włączeniem wskaźników i fonii, ten bajt zawiera następujące bity:
; Wskaźnik praicy ;ścieżka fonii ;ścieżka fonii ;bez błędu w samojestowantu ;biąd sa^motestowζlnijl ;bity 18h-1fh ;bity 20h-27h ;flaga gotowość; cyfry ;flaga odpowiedzi na dzwonek ;flaga do nadania po 4 s ;flaga wskazująca działanie bloku czasowego przy sprawdzaniu wyłączenia lampki przy pracy ;flaga do odblokowania po 4 s ;flaga wskazująca! włączenie DT ;flaga wskazująca; że dekoder dtmf nie jest jeszcze skasowany ;flaga dz.iaianiai dzwonka ;bufor we-w,}; dla portu px1- ζ^ηνίοηι iiiy/:
z dekodera dtmf ;z dekodera dtmf ;z dekodera dtmf ;z dekodera! dtmf podtrzymuje zasilmńe po awarii zasilenia do wyłączenia TRU ;zapasowy pin I/O ;zap<sowy pin I/O ;zapasowy pin I/O ;bufor I/O dla portu px2 (30h-37h) ;stan mski zamyka pętlę ;stan niski włącza dzwonek ps ;wyciszeme odbiou radiowego ;zwiększa χνζιποαύεηία daa tonu roh włączcner zazZerζczr dajo opcjonalne nadawanie 4 s ;zwieracz włączoryv=różnicowy km evybiejania dla roam wyłączony oznacza moduł obsługowy modułu ;IN=start pęlii, OUł-skrri podsaawowy zwieracz w^czony umemożiiwaaevyłączony umożliwia przekazanie danych cyfry do TRU po nadaniu (dla umożliwienia funkcji cątl.switah) Zaweera btty:
;me dotyczą, koniecame a;mpek-zapamiętują bieżący stan wskaźników
178 631
free | bit | 39h ; | |
free | bit | 3ati | 3 |
free | bit | 3bh | 3 |
roamlamp | bit | 3ch | 3 |
noservlamp | bit | 3dh | 3 |
locklamp | bit | 3 eh | 3 |
inuselamp | bit | 33f | 3 |
flags3 | DATA 28h | ;pozostałe flagi - bajt zawiera następujące indywidualnie adresowalne bity | |
frohtimeout | bit | 40h | kiedy robione wyssępowal prxex 1 minutę |
fcall | t»it | 41h | ;ustawiony przy wchodzącym polączenśu, skasowany przy jego braku |
f_one_sec | bit | 42h | ustawiony przy zdjęciu sSlIelaov^^i na 1 s tak. aby nie powodować zdalnego odwieszenia, jeżeli słuchawka zdjęta natychmiast po lokalnym odwieszeniu |
roh_on | bit | 43h | ;wdącza i wyłącza robione |
fspec1 | bit | 44h | ;flaga do wykorzystania z danymi TRU przetwarzana w update_displays co 71,1 ms, wywołuje spec2 |
fspec2 | tiit | 4^1i | flaga do wykorzystania z danym TRU przetwarzana w blokach czasowych odwieszenia i zdjęcia słuchawki co 277,8 ps, wywołuje spec2 |
fremote_hup | bit | 4<^1i | woskaznje zdalny impuls SYnchronizujący opóźnienie 700 ms |
flocktimer | tiit | 47h | fflaga zablokowania po 2 sekundach |
;Realizowane zadania TRU f_cmds DATA 29h ;opcjonalne własne numery zadań TRU ;Zadania TRU są wywoływane z programu głównego w module TRU.
;Zadanie 1:
;a) Sprawdzenie braku zasilania dla NEC 3700 (patrz nae01) ;b) Przesłanie zmiany stanu przełącznika odłożenia słuchawki do OKI i wysłanie wstępnego CLR do Motoroli (patrz oee02 i mae04) ;c) Wywołanie podprogramu rdbus w celu odczytania stanu wskaźnika w blokach TRU Autovidox (patrz tae01 i tbe01) ;d) Monitorowanie trybu cichego alarmowania w Autovidox CTX-3100A i ustawienie w razie potrzeby trybu cichego alarmowania (patrz tbe01) ;Zadanie 2:
;a) Podwójna komutacja NAM dla NEC 3700 (patrz nae01) t ;Zadanie 3:
;a) Sprawdzenie braku zasilania dla NEC 3700 (patrz nae01)
178 631 ;b) Przesłanie zmiany stanu przełącznika odłożenia słuchawki do OKI i Motoroli (patrz mae04 i oee02) ;c) Wywołanie podprogramu rdbus w celu odczytania stanu wskaźnika w blokach TRU Autovidox (patrz tae01 ;i tbe01) ;d) Monitorowanie trybu cichego alarmowania w Autovidox CTX-3100A i ustawienie w razie potrzeby trybu cichego alarmowania (patrz tbe01) ;Zadanie 4:
;a) Wywołanie podprogramu rdbus w celu odczytania stanu wskaźników w blokach TRU Autovidox (patrz tae01 i tbe01) ;b) Monitorowanie trybu cichego alarmowania w Autovidox CTX-3 100a i ustawienie w razie potrzeby trybu cichego alarmowania (patrz tbe01) ;Obszar RAM 2ah do 2dh jest zarezerwowany do wykorzystania przez moduły TRU albo jako bajty DATA albo poszczególne zmienne BIT.
.***********************************************************
;TRU_bits1 data | 2ah | ;bit 50h do 57h | |
;TRU_bits2 dt^ata | 2bh | ;bit 58h do 5fti | |
;TRU_bits3 duat | 2ch | ;bit 60h do 67h | |
;TRU_bits4 dnau | 2dh | ;bit 68h do 66h | |
9 ;Używane do tablicy obsługi. | Sprawdź podprogram | ||
9 10 m b | data | 2eh | ;bit 70h do 777i |
#td0 | bit | 70h | |
#td1 | bit | 71h | |
#td2 | bit | 72h | |
#td3 | bit | 73h | |
#dtmf_out | bit | 74h | |
#enable_test | bit | 75h | |
#enable_tone | bit | 76h | |
#enable_tone_in | bit | 77h | |
io m_c | data | 2fh | ;bit 77h dd 7fh |
#ext_led | bit | 78h | |
#enable_special | bit | 79h | |
#enable_busy | bit | 7ah | |
#enable_ 16h | t»it | 7bh | |
#conn_loop | bit | 7ch |
;Reszta zmiennych wewnętrznych RAM (adresowalnych BAJTOWO) .*********************************************************** 5 looptest_timer looptest_timer2 display_delay dsp_ptr msg_ptr
data | 30h |
data | 31h |
data | 32h |
data | 33h |
daaa | 34h |
;opóźnia test pętli do 2 ms po zwarciu loopsw ; zamyka dla umożliwienia odpowiedzi SLIC ;opóźnia aktualizację wy świetlacza do kolejnych 71,1 ms ;wskaźnik bufora wyświetlacza LCD mikrotelefonu wwskaźnik bufora komunikatu TRU
178 631
;Następujące bajty są zarezerwowane dla modułów TRU do wykorzystania tylko jako bajty DATA (nie adresowalne BITOWO)
;TRU byte0 | data | 38h# |
;TRU bytel | data | 39h# |
;TRU byte2 | data | |
;TRU byte3 | data | 3bh# |
;TRU byte4 | data | 3ch# |
;TRU byte5 | data | 3dh# |
;TRU byte6 | data | 3eh# |
;TRU byte7 | data | 3fli# |
;Stos zajmuje bajty 49h - 5fh ;Wybierane cyfry są przechowywane w bajtach od 60h do 7fh w liczbie łącznej 32, włącznie z kodem SND wykorzystywanym jako terminator
prefix | data | 60h | :ważne tylko [0] i 11] jjelii nie , FFh |
first_digit | data | 61h | ;Pienvsze trzy lokacje w buforze cyfr |
second_digit | data | 62h | ; (numery ^l^i^oe^e, rek kierunoowy. |
third digit | data | 63h | ;poezątek mimem y-cybOwego itp) |
;Definicje bitów portów, port1 i port2, 8051 (wspólne dla wszystkich bloków)
#io_szlect | bit | pl.2; | |
#dt_pwm | bit | p1.4 | ;Pwm ^bi^^a^nk tonowego |
#twenty_hz_pwm | bit | pl .5 | ;Pm 20 Hz dk dzwonka |
#;power_fail_ | bit | p1.6 | , 0=brak zaillania |
#1c_ | bit | p3.2 | ;Splawdzl(nie obccnocc i prądu w p^flii, ESirtlirtO) |
#ring gromad- | bit | p3.4 | ;ν^οίβ : woska/uje zżemię na ρι·ζο\νΌ0ζίο dzwonienia |
#;steobz | bit | p3.5 | ;Wueacie : gotowość z dekodera DTFM |
#a0 | bit | p1.6 | |
#a1 | bit | p3.5 |
;Punkt wejścia przy włączeniu zasilania i wektory podprogramów przerwań:
org 0000h jmp init ;Wektor resetu
178 631
org jmp db | 0003h nihiook edge ofaf^faf; | Wektor obsługi ExtInt0 Podniesienie, flas^ wybieranie impulsowe Wypełnienie dla Epromu i emulatora |
org jmp db | OOObh οιΛοο]< timer 333ι,0Αϊι,03Ι^,03& | Wektor bloku Timeri') ;Do śledzenia czasu odwieszenia słuchawki |
org jmp db | 0)013h int1 sewice 0fh),0f:h),3ff),33ho | ;Wektor obsługi Hxt Iu11 ;Zwykle służy do odczytu danych z TRU 5 |
org jmp db | OOlbh offirooktimer 03h),0fh),03.f),03ho | Wektor (th0)svc bloku Timeri ;Do okresowych przerwań bloku czasowego 9 |
org jmp db | .serporrl devćce OfflgOffhfflgOffls | Wiktor svc portu szeregowego ;Zwykle służy do odczyto danych z TRU 9 |
org jmp db | OO^l^h timer2 devćce O3fl),O3fll,33hr,33flo | Wektor svc bloku Timer2/ext2 9 |
org jmp | 0033h ; pcase^ićce | Wektor obsługi PCA ;Dla modulatorów szerokość; impulsu |
db db | c); CopyrighO Codecom 1992 |
$include(main.msg) $include(tru.msg) init:
%set(intmask,0) mov sp,#3fh;
clr ssO ;
clr rs1;
mov a,#0 ;
mov r0,#0 ;
fill_ram:
mov inc ri) ;
cjne ri)#^O,fill_ram clr pl.2;
;Zwykle dwa poziomy przerwań chyba że intmask w TRU, sekcji(TAE01.ASM:Audiovox) ustawiony na wartość różną od zera;
;Stos roxpocxyna się od 40h ;Wybierz baiks rejestrów 0 Jak wyżej ;Wypehdeme RAM zerami ;Wskaż ρΐεπν^ RAMI ;Ρ(ηοάγηοζ.ο tokaje e ;Wkkaż r^^sb^jmą lokaję ę ;Komco wypetoianaa iALMu (FFh) mov r 1 ,#ra^i__:a ag mov @^,,#0 iW/zzytej nasęępnąltogę inc rl mov @γ,,#0 inc rl
178 631
mov | @r1,#0 | |
mov | @r1,#0 | |
call | reset itgm | ;resetj1 tabićcę obłługi |
mov | i()jm_b,#0 | nooduł |
call | write_io_m_b | |
mov | io_m_c,#0 | moduł |
call | writJ_i__m_j | |
call | resetio | rresel io> ro/.s/.erzony do #13 |
mov | p2,#0f8h | ;ustow p2 na sterowante ekspand<trem portu |
mov | px 1_temp,# 11111111b | r<szem zpower hold |
call | write_px1 | |
mov | px2_temp,# 11110011 b | imjejalrzuj : k)opsw otwarty, brak dzΆvonienia |
call | writej)x2 | |
call | read_px2 | iwcyj klucze opcii |
mov | tmod,#0000001 1b | ίΤΐοηβΟ^ 1 j^o<^v^<jjr^^ : i ii mor 1 może być generatorem taktującym |
mov | ip,010C^1(^^0b | ;ustaw ρΩοη-Ιοί}-' pi-zcrwani |
mov | ie,#110^1(^^lb | odb^jl PCA\ : Timer1 , TimerO , 10x0!, Tmi/bxt2 SerPort, Ext1 przez inlcealizację TRU |
setb | it0 | ;Εχύη0θ eetl wwzwakiny zboczem |
setb | it1 | ;Extłnt1 ^1 :z;^o^^^m |
mov | cmod,#80h | wyłbccz Hctniik w st^rnieta(ovyymi coock/l2 |
mov | ch,#0 | dudal górny |
mov | cl,#o | dadnj ikmiki dokiy |
mov | ccap01,#0fhi | jdokiy bajj 1 dki komparatora Noku czasowego |
mov | ccap0h,#0 | ;gómy bjj 1 db komparatora bloku czaoowego |
mov | ccapm 0#0')49h ; | ;PCA0: programowym btok czasowy |
mov | ccapml,#0 | ;PCA1 1 (1%! Tone1 t^os^^^e wyłączony |
mov | ccapm2,#0 | ;PCA2: ipwm 20 Hz1 wyłączony |
clr | tri | ;ρΓζαΛνηηκηνν book c^z^aow^y zdjęła jeszcze nie uruchomiony |
clr | to | ;Mok czasowy zawieszenbreszcze nb dżuda |
;Iricjaiizacja zmiennych bajtowych
mov | iime_onl,#0 | inicjjaiz^cja {rrt^irw^^no^wy^i^h Moków czasowych odwieszenia |
mov | iime_o n2,#0 | |
mov | iimeofn ,#0 | inikjj aib^iK^.p1 przcrw'an(owych Moków czasowych zdjęcia słuchawki |
mov | time_off2,#0 | |
mov | time_ofB,#0 | |
mov | fbgs,#0 | ;kate1 w/SLy^^dite flagi |
mov | flags2,#0 | ;katul wszystkśe flagi |
mov | Α^;^ϊ^3,^0 | ;kate.1 v^a^L^^\;sd<e1 flagi |
mov | inds,#0ffti | początkowe |
mov | irdiasc.>Ofh: | ;wafrojn i ροοζρ1%ουό |
mov | Ρ^ι^Ι^ϊ^Ο | ;0=me os^aba od teraz żadna cffra impulsowana |
mov | _ miods^O | ;0=ηΐε z^^d^i^e żadne zadanśe 'RUJ |
178 631 ;Iniceaiizacja zmieeenhh bitowych
clr | test_enable | |
clr | test_end | |
clr | eiror_flag | |
clr | returnring | |
setb | fonhook | t^iakdada odwiezzenie słuchawki przy włączeniu zasilania |
clr | finit | Ojezzczc me imi^jahant^ja TRU |
clr | fremotehup | |
clr | fcall | ;O=jezzcze me ma połączenia wchodzącego (A.i.,IRTI ) |
call | clr dsp | bufor ysyywielracza LCD mikrotelifonu |
call | clrmsg | k^is^iuj bffor komunikatów TRU |
call | specificinits | ;dh>konaj inicjał izacj i typowych dla 'TRU |
mov | ccap41,#0ffo | d^ob^y bal l dta słowa kontrolnego |
mov | ccapi-h,#;)®! | ; górny bąil dta słowa kontrolnego |
mov | ccapm4,#48h | ;PCA4: odblokuj komparator i przerwanie |
orl | cmod,#40h | ;odblokuj kontrolujący blok czasowy |
setb | cr | ;uruchom licznik PCA |
selb | trO | ;uruchom blok czasowy odwieszenia słuchawki |
;Odczekaj 2,55 s na przebudzenie się TRU. Skasuj lokację wybranych cyfr, następnie wskaż R0 na początek bufora (60h), i skasuj R2 (liczbę wybranych cyfr).
time_wakeup: | ||
call | yγaIchdn.)g | |
mnv | aiiimc_on2 | ;podaj upływ czasu |
cpe | a,#25 5 itimc.wakc up | ;odczekej tu 2,55 s na przebudlzenie TRU |
mov | c,sw_gndstarl | ;sprawdiz zwieracz C^LSi 1=(jS |
mov | taopswhch_,c | ;zapisz tryb startu |
clr | noring | |
call | write_jpx2 | |
jmp | staot |
$include(tru.asm);moduł TRU, zatem przy assemblacji można otrzymać INTMASK .*********************************************************** ;SOart i punkt ponownego wejścia po odwieszeniu .*********************************************************** start:
mov | c0,#60h | ;wskaż poczaich bufom ^sit'r |
mov | ,,#(ϋΑι | ηϊε^βηηη |
mov | @;0,a | lłokajje pjj edynczo |
inc | ;0 | ;wskaż następną fokajję |
cpe | dighta· | ;do ffli |
mnv | c0,#60h | ;wskaż ρbfOora |
mov | γ,,00 | ;mieraiiząl iiazba cyfr |
selb | _ tarot | ;1-wvlącz '’degiitthing' ' klucza hook_ywitth |
clr | ecO | :kasj.y pazrwvema w danym pzzppadku |
178 631 setb ex0 ;odblokuj przerwanie zdjęcia słuchawkij jeżeii zablokowane ;Zamknięta pętla aż do wykrycia połączenia wchodzącego, albo podniesienia słuchawki w celu ;wybierania.
hookchk:
call watchdog
jb | test_enable,do_test | ;jeżeii uaktywnione samυteslow'anje |
mov | ł^cmid^^,,^1 | ;ładuj rozkaz ID |
; cali | trucmd | ;wykonaj w razie potrzeby zadanie task1 dla TRU |
jb | fliook,first1 | ;prze]warnte j eeżeii zdjecne słuchawki |
jnb | fmswer,hookchk | ;wróć , jeżeii nie wykryto wchodzącego dzwonienia |
jmp | ring_answer | todpoweedz na dzwonek, zdjętoi słbc^ław^k^ę podczas trwania stanu ALERT (połączenie wchodzące)! |
first1: | ||
jmp | first | |
do_test: | ||
mov | r 1 ,#main_flag_error | |
mov | @r1,#0 | ;ustaw b^ądi tonu jako zajęty lub 1000 Hz |
mov | r 1 ,#main 1 flagen-or | |
mov | @r1, #0 | ;ustaw błąd tonu jako zajęty hrb 1000 Hz |
clr | test_end | |
clr | errorflag | |
clr | error tlag | |
mov | rł,#main_flag | |
mov | a,@r1 | ^οζζ^, pierwszą flagę |
anl | a,#0000000 lb | sspjrawitó cy wykonano book |
call | start hook test | ttcsi odweeszenia |
test_hook: | ||
jb | erroiyJEig.rouerror | |
call | dial_test | ;test wybeerama |
test_dial: | ||
jb | errorJlag.rmgerror | |
call | start dtmf | ttest dtmf |
test_dtmf: | ||
jb | errorllag.rouerror | |
call | stat_ ringi _tesi | desi dbwrmtcnal |
test_ring: | ||
jb | erroiyfl agynui_error | |
call | startjćngyins tesi | desi odpona dzwonienie |
test_ringa: | ||
jb | errop tlag.rouerror | |
call | makecalt | desi po^czema |
jb | error_Jlag.roueriOr | |
call | nnti_Jiniinj | wyjjśck bez błędów |
rouerror: | ||
call | ^rror_^t^c | ł^^dui mierną Wędu |
; jmp | wait_end |
178 631
until fin tim: | ||
setb | test_end | |
clr | trO | |
mov | time_on2,#0 | przy odweeszeniu co 10 ms |
mov | time_on1,#0 | ;resei na następnych 36 |
mov | mm,#0 | 110 mt x s |
setb | ΠΌ | |
wait end: | ||
call | w tym miejjsc^u do uplyniecna 1 minuty | |
mov | 34ε8__ππη | |
cjn | ;255 x236 = 60J8 | |
call | nnseft' | ;wróć do normal |
jmp | hookchk | ;wróć do normal |
; starthook_test - początek testu odwieszenia słuchawki start_hook_test:
mov | ^cydaj flagą mam | |
mov | a,@r1 | |
orl | a,#0000001b | |
mov | @rl,a | ąssa^w flagę ζφςοϊα skichawbi |
setb | enabth_test | ;odłącz apafat |
clr | coim loop | |
call | write_io_m_b | i i dokcez moduł |
call | teset_io_m | ;tetaiuj aalliccę obługgi |
call | wrtte tp m b | |
call | ||
clr | loopswiclt | ;odąączono drugą tfronę |
call | write_px2 | |
test hup: | ||
setb | fremotehup | |
call | Kup | |
mov | Lamptten^pJ() | |
call | wπte_lo c | zzaktoalizuj lED)y |
mov | r6,#10 | |
nose: | ||
push | 6 | |
mov | 60,#00Αι | ;moduł wł^łkki |
loop_m: | ||
mov | 77,#Ο0Αι | |
djnz | f7,$ | |
call | wat^ceboog | |
djnz | r6Joop_m | |
mov | rófi | wytoki |
loop_ma: | ||
mov | 77,#00Αι |
178 631
djnz call djnz mov | r7,$ wacchdog I6]l0ot_ ma r6,#0fhi | ;modui zwłoki |
loopmb: | ||
mov | ^^#^0)fhi | |
djnz | r7,$ | |
call | watchdog | |
djnz | r6,loop_mb | |
mov | r6,#0fh | ;moduł zwłok i |
loopmc: | ||
mov | r7,#0Ufh | |
djnz | r7,$ | |
call | watchdog | |
djnz | ródoopmc | |
pop | 6 | |
djnz | r6,nose | |
tzst_hup2: | ||
clr | fanswer | |
clr | thook | ;kasuj flagę |
jnb | Ihook.not hook det | ;mzwyneyaie zdjęcia słuchawki - O.K., wykrycie |
jmp | hookerror | zdjęcia słuchawki - błąd |
noi_hook_dzi: | ;test zdjęcia słuchawki | |
setb | fonhook | |
setb | conn_loop | ;wyseępuJące zdjęcie słuchawki do |
call | wriie io m c | ;intzrUzjsu |
mov | r6.#0fh | ;moduł zwłoki |
loff_m_oUf: | ||
mov | r7#i0lfh | |
djnz | r7,$ | |
call | watchdog | |
djnz | r6,loop m off | |
mov | r6,#0ffh | ;moduł zwłoki |
loop_m_ofU2: | ||
mov | r7,#0ffti | |
djnz | r7,$ | |
call | watchdog | |
djnz | r6,loop m oU2 | |
mov | r6,#0ffh | ;moduł zwłoki |
loop m_off3: | ||
mov | £77#Κ)1^4Τι | |
djnz | r7,$ | |
call | watchdog | |
djnz | rólloop m offi | |
mov | r6,#00fb | ;moduł zwłok i |
loop_m_off4: | ||
mov | r7,#0ffh | |
djnz | r7,$ | |
call | watchdog | |
djnz | rójoop m off4 | |
mov | r6,#00fh | ;moduł zwłoki |
178 631 tood_m_ofh5:
mov ^iTOffh djnz r7,$ call watehdog djnz r6,toop_m_oth5 testyfhook:
jb htook,dejecjed_hook detecarą_hook: clr ex0 clr hookswout setb hookswout_ clr fhook dt_deb_1:
call watchdog jnb 1a_,stitl_ohh_hook jmp hook_ąrror still^offtyhook: jb fĘstarkdtydelayi clr ią0 setb ex0 setb fdroną call dtone ret hook_ąrror:
mov r1,#mζin_ftag_error mov @r1,#1 setb en-or-flag ret
4:4(4:4:4:^4(4=433^3^3^3^3^3^3^3^3^3^3^3^3^3^3^3^3^3}33^3^3^3^3^3^3)133^ ?
;diat_tąst sprawdza ton wybierania ?
,*********************************** jjeżeló wykryto zdjęcie o O.K,5 ϊοζεϋ nie wykryto zdjęcia - błąd ;zζ^biokuj ρΐ'Ζϋηνϋηίο odwieszenia do eysądiienia tonu wybierania dla uniknięcia wybierania zakłóceniami komutacyjnymi pokaż TRU z^dj^cto słuchawki jak wyżej ;kasuj flagę ;bąąd dzosjanie usbwtony po elimmaeji zakłóceń komutacyjnych 500 ms jkaujo flagę przerwanźa ο<1ϋΪ683!ω3 db tego przypadku o 1=Diao Tonę jesi włączony pdbtokuo Dżao Tonę y_jjs<ib z ^^sto odwieszenb fc*********************** ^czytaj flagę main ;ustaw flagę tonu uybteląnb ;odóźalienie zdjęcia opóźnienie zdCeęb słuchawki dial_test:
mov | r1 ,#main_flag |
mov | a, @r1 |
orl | a,#0000010b |
mov | @r1,a |
mov | r6,#0fhi |
delay_dial: | |
mov | r7,#0fhi |
djnz | r7,$ |
call | watchdog |
djnz | r6,deby dżal |
mov | rófh |
deb__dbl2: | |
mov |
178 631
djnz | r7,$ | |
call | wsafhdog | |
djnz | r6,deiay_diar2 | |
clr | frl | ^dozkl^; 711 msaa wykracie azybirrania |
mov | time_ofn,#0 | |
mov | iime 3322,#O | |
setb | ri | |
veri3z_dtal: | ||
call | mad iom a | tan γzγbierai^ia |
anl | a,#00000001b | |
cjne | a,#00000001b,dial_ok | Jeżeli 0 to wybieranie O.K. |
call | wacchdog | |
mov | οΛπηεοΙΏ | nie wykryło ννγΗοηιΜι |
cjne | a,#l Ο^^^^Ζ__<^Ϊ3·; | ίί^οζβ]^; 711 ms j^że! i ηϊ; wzyRy-U) aąisroac i |
błąd tonu wybierania | ||
mov | r),#maIn_fla__error | |
mov | @rl#0 | błł^d νγγ^ο™©! |
ret | ||
diia_k: | ||
ret | ||
9 | ||
9 ;start dtmf' - | początek dtmf | |
9 9 | ||
staił _tmf: | ||
clr | fdtone | |
mov | ccapml,#0 | |
anl | r0_m_b,#3r0h | |
orl | o3_m_b^^cen:; | ^wyślij 0 |
call | senddtmf | |
call | delaydtmf | |
call | disable_dtm f | |
call | delaydtmf | |
call | j^ef_^^st | |
te^tcero: | ||
cjne | ad/Oh.dtmf erna Hag | lsraawdź 0 |
anl | ||
orl | io_m_b,/'uno | ;wyślij 1 |
call | senddtmf | |
call | delaydtmf | |
call | disabledtmf | |
call | deanY-dlml' | |
call | ||
test_1: | ||
cjne | a,# lh.dtmf rma Hag | lsprawdź 1 |
anl | ϊΟ_ι__Β,#30Ό1ι | |
orl | to_m_b,#dof | ;wyślij 2 |
call | senddtmf | |
call | delaydtmf | |
call | dtrabie_dtn3f | |
call | dclaydtmf | |
call | gel-test | |
1π1_2: | ||
cjne | a,#2h,dtmfrrrrofffigg | sprawdź 2 |
178 631
ani orl | i0_m_b,#0fDh io_m_b,#tres | ;wyślij 3 |
call | send_dtmf | |
call | delaydtmf | |
call | disabledtmf | |
call | delay_dtmf | |
call | get_test | |
test3: | ||
cjne | a,#3 h,dtmf_error flag | ; sprawdź 3 |
ani | i0_m_b,#0fDh | |
orl | io_m_b,#cuatro | ; wy ślij 4 |
call | send dtmf | |
call | delaydtmf | |
call | disabledtmf | |
call | delaydtmf | |
call | gettest | |
test_4: | ||
cjne | a,#4h,dtmf_errorflag | ; sprawdź 4 |
jmp go_to_5 dtmf_error_flag:
jmp | errordtmf | ||
go_to_ | 5: | ||
ani | i0_m_b,#0f0h | ||
orl | io_m_b,#cinco | ; wy ślij 5 | |
call | senddtmf | ||
call | delay_dtmf | ||
call | disabledtmf | ||
call | delaydtmf | ||
call | get_test | ||
test5: | |||
cjne | a,#5h,dtmf_error flag | ; sprawdź 5 | |
ani | iO m_b,#0fl)h | ||
orl | io m_b,#seis | ;wyślij 6 | |
call | senddtmf | ||
call | delaydtmf | ||
call | disabledtmf | ||
call | delay_dtmf | ||
call | get_test | ||
test__6: | |||
cjne | a,#6h,dtmf_error_flag | ;sprawdź 6 | |
ani | i0_m_b,#0f0h | ||
orl | io_m_b,#siete | ;wyślij 7 | |
call | send_dtmf | ||
cali | delay_dtmf | ||
call | disabledtmf | ||
call | delay_dtmf | ||
call | get_test | ||
test_7: | |||
cjne | a,#7h,dtmf_error_flag | ; sprawdź 7 | |
ani | i0_m_b,#0f0h | ||
orl | io_m_b,#ocho | ;wyślij 8 | |
call | send dtmf | ||
call | delaydtmf | ||
call | disabledtmf |
178 631
call call | delay_dtmh gei lesl | ||
Oest_8: | |||
cjne | a#;8hdltm_.ern)_ Oeg | Sprawdź 8 | |
anl | ;0_m_b,#J0Dh | ||
orl | io_m_b,#nuevo | ;wySlie 9 | |
call | senddtmf' | ||
call | delas_dtmf | ||
call | diaιllie_dtf ff | ||
call | deaay_dtaif | ||
call | ;^<ι__16οΙ | ||
Oesi_9: | |||
hene | ιι#9Ε,,ι1ιι]Α'ιτιτο_1Ε^ | ;sprawdź 9 | |
anl | ;0_m_b#0h00h | ||
orl | io_m_b,#05h | wyyśjij a | |
call | senddtmf | ||
call | delaydtmf | ||
call | disabledtmf | ||
call | lkikyΛdltfil' | ||
call | ^e__e^st | ||
iesi_a: | |||
cjne | a,#0ah,dtmf error flag | ;odbierz a | |
anl | ΐ0_π__ΐ##0ίϋΗ | ||
orl | io_m_b,#0dh | ;cs b |
call senddtmf call ddayjitmf call disabledtmf call delaydtmf call ge_Jest testb:
cjne a,#0bh,dlmf_error_flag1
.JW | go_h__c | ||
dlmf_ | error | flag1: | |
error_dtmf | |||
go„t_. | c: | ||
anl | 0)_η_!ΐ^.0ΐΗυΗ | ||
orl | ło_m_b#003h | ;es 3 |
call senddtmf call delaydtmf call dtsable_dtmf call dteiassdtml' call ραΐ^ο!
Oest_c:
cjne a,#0bh.dtim' error ila; 1
anl orl | ;ο_π__ι>#^ο[Μι io_m_b#d)bh | ;es d |
call | send_dtmf | |
call | ddayjlmff | |
call | ||
call | delaydtmf | |
call | ^e__teot |
178 631 eesehd:
cjne | le#0bh,dtmf_eieoe_01ae 1 | |
anl | i 0_m_b,# 0))0)11 | |
orl | io_m_b,#07h | ;es 7 |
call | szKddtaiU | |
call | delaydtmf | |
call | disablz_dtmU | |
call | delay_dtmf | |
call | getiest | |
test e: | ||
cJuz aaί()bh.dtmfh'zeorl]agl | ||
anl | i0_m_b,#0fl)h | |
orl | io mi b,#0ihi | ;zs f |
call | sznd dtmf | |
call | dzlaydtmU | |
call | disabledtmU | |
call | delaydtmf | |
call | ||
tes^U: | ||
cjne | a,#0bh,dtmfheπΌr_flae 1 | |
ret | jwyujście bzz błędów | |
error dtmU: | ||
mov r^mam flag ζπό£ | ||
mov | @r1,#4 | ibłąd dtmf |
sztb ζπό£_0^ | ||
ret | ||
;startheine_tesi - początek testu dzwonienia
9 9 | ||
start_ring_tzst: | ;micjuj dzwoniznie | |
mov | r 1 ^mamUag | ;wczqduj flagę main |
mov | a,@r1 | |
orl | a,#00001000b | |
mov | @r1,a | ;ustaw tzstu dzwonienia |
clr | rmg_second | |
clr | οοΜ_1οορ | słuchawka οο11<ι>^^θΓ^ίΐ |
call write_iz_m__u setb fremotehup call hup mov r6,#6 loop_ring_waie:
push 6 | ||
mov | ^^#^0^:Ufl] | zwloką |
loopmbb: | ||
mov | r7,#00fli | |
djnz | r7,$ | |
call | wacchdog | |
djnz | r6ltoop_mbb | |
mov | r6,#0ffl] | zwłoka |
178 631 bo^mcc:
mov | r7,#0ffh | |
djnz | r7,$ | |
call | wacchdog | |
djnz | Γ64οορ mcc | |
pop | 6 | |
djnz | r6,Ioop_rmg_watt | ^Dołączenie' wchodzące |
clr | ap1 | Jnicjuj połączenie wchodzące |
jb | Sc_lłoop fmgjfff | |
jmp | ring_fflg | |
lpopringopf0: | wracaj m dojna niero>_p)cznie się dzwOnienie 1ł0d | |
clr | rrO | ;u_łyną2 s |
mov | iimcyondwO | |
mov | tinte οηΙ,Κ) | |
setb | UD | |
waiah2hSec: | ||
call | wacehdog | |
jnb | ||
jmp | γπο2_Π;ο | ;błąd wystąpienia odpowiedzi |
not_answer: | ||
call | wrdc ioma | |
anl | a,#00000100b | |
cjne | a,#OOOOO1OOb,ring_atafSt | jjeżeii O-rozpoczyna się d;wvomeme |
mov | atiime_on2 | sprawdź, czy upłynęły 2 s |
cjne | 3,#200,\ν3ΰ__2_5εε | ^<^1] 2 s do zatrzymania dtmf |
jmp | ring_flag | ;upłynęfy 2 s, błąd |
ringhStatas: | ||
mov | r6,#000t | ;zwłoka |
loopmbbc: | ||
mov | r7,#00flt | |
djnz | r7,$ | |
call | wacehdog | |
djnz | rójoop mbbc | |
mov | r6,#0fflt | ;zwłoka |
loop mccd: | ||
mov | r7,#0fflt | |
djnz | r7,$ | |
call | wacehdog | |
djnz | r6|loop_πsccd | |
ring start: | yprawilza ciągłość dzwonienia w 1,3 s | |
clr | rrO | |
mov | iimc_on22iO | |
mov | ΐϊιη_ on7,#0 | |
setb | rrO | |
wait 130msec: | sprawdza dzwonienie w ciągu 1,3 s | |
call | ||
jnb | aanswer,no__answer 1 | |
jmp | ;błąd wystąpienia odpowiedzi | |
not_hnswer1: | ||
call | read_io_m_a | |
test_130: | ||
ani | ć7#^(^(^(^(^0K^(^b | powinien być niski podczas 1,3 s |
cjne | a,#00000 0 00trrmg.expii'c |
178 631
jmp | iCng_flag | ; ddwetaen;e oznia w o 13 |
ring_exdire: | ||
mov | aąimeomd | |
cjne | 3 Οηϋϋ | ;czekaj tdąme |
wζit_250msąa | bwOmeme ρϋήηηο utiać po 1,5 s | |
call | watchdog | ζpjo czekamy 2^ o na spzawdzeme, ety |
call | r^adąo_m_a | ;ustanie |
test_250: | ||
aal | 3,20000100(^ | powitaem by o nodz popowy pj wyżej 2 s |
cjne | a,#000001 OOtymgnot- | cmpiee |
tesi_stod: | ||
rang ^ορ . | ldewonianie aninZa rzedd s |
ring_not_ąχdire:
mov cjne | aąimeon2 a,#250,watt_250mąco | ;po U s powaman byó e_ytoki ;czekaj cz^Oze s |
tąst_ftag: | ||
jmp | abaJlag | jbłkąd n^^utZ^aib dwOrnenia w 2^ s |
ring stop : | ;czekaj 2^5 s | |
clr | k0 | |
mov | dime_oti2,#0 | |
mov | iime onl,#0 | |
setb | k0 | |
wait_2seca: | ||
call | wacchdog | |
jnb | ianswel.not_anewer2 | |
UW | ringjlag | ;błąd wystąpienia odpowiedzi |
aot_anbwąr2: | ||
mov | a,timej)n2 | |
ajae | a,#25 5 ,wait_2_seaa | pzekaj 2,55 s do zatrzymania drugiej pętli dtmf |
jb | ring są·cond,riag.srod 1 | ;sprawdź dzwonek 2 razy |
jmp | lood’iiag.otf' | ;iΌZdocznjj jeszcze raz |
ring_flag: | ||
setb | ap1 | basuj połączenie wchodzące |
mov | r 1,#main_fl ag | |
mov | @r1,#5 | ;błąd dzwonienia |
setb | error flag | |
ring_stop1: | ||
tcss kmbre: | ||
ret | ;wyjścią bez błędu |
;stζrt_ring_aas_resr - odpowiedź na dzwonienie ;*********ψ************************************************* start_ring_ans_test:
mov i1 ,#main_flag mov au@r1 orl a,#00010000b mov @r1,a tood_riag_off2:
;inicjuj dzwonienie ;wcd_ijej flagę main ;ustaw flagę testu dzwonienia ;wracej tu dopóko nie rozpoczane się ponowme dzwonienie
178 631
clr | ro | |
mov | iime_on2,#0 | |
mov | time on1,#0 | |
setb | ro | |
wait 2 sec2: | ||
call | watehdog | |
jnb | fanswer.noran.twero | ;vyejjnio pi'zy odpowśedzi |
jmp | ringfflag | |
noo nnswera: | ||
call | read oom a | |
anl | ||
cjne | a,#000001 Ι^Ι 1 | jjeżeii 0-odbywa iię dwvonrrnie |
mov | a,tlmr_kr2 | ^prawdy czy upłynęły 2 s |
cjne | a,#200,wntr_2_rcc2 | ;^^^1ι31 2 1 do zatoy/mama |
jmp | aną-flag | ;upfyn.łły 2 s |
ring present: | ||
setb | connjoop | 1 odpowśedź na dwomeme |
call | write oom c | |
mov | r'7#^0fft1 | 1 włoka db ustawicnia fanswer |
wait ans: | ||
mov | γ6,#ΟΟΟι | |
djnz | r6,$ | |
caH | watehdog | |
djnz | r7,vrajr ans | |
mov | ¢#0001 | |
wa.it _nsa: | ||
mov | tr6,#0ffli | |
djnz | ró,$ | |
call | watehdog | |
djnz | ^wafl-ansa | |
test ans: | ||
jb | fanswer,ok_ring | jjeżei 1 ^^s1 odpowśedŹ1 to O.K. |
jmp | anSfflag | ;me vytsłίpn;l błąd odpowśedzi |
mov | t1 Jim ani _flag_error | |
mov | @rl,#6 | bł^^d dzwoniema |
setb | ατοΜΐ^ | |
setb | ap1 | |
clr | fanswer | |
ret | ||
ok_rine: | ;wyeście bez błędu | |
timbre: | ||
clr | ianswer | |
setb | ap1 | po^czento wchodzące |
ret |
? φ ^ιΙ.^ιΙΙ - zestaw połączenie dla sprawdzenia radia ?4:*>ίϊ4:^:^:4:ψ$5ί:^:ψψ4:$ψ^:4:φ^:5ί:4:ψ3(:4:$ψ^:ψ*+’ί:Η::ί::ίί5Ιι:*:ί::Ι:*$:ί:$*:ϊ:5ί:’ίι:ίί::ϊ:5ί::1':Ι::1«*^*$*4ί ?
mov rl,#mainrofiag 0^x4;^ flagę main1 mov a,@rl orl a,#00000001 b
178 631 mov @ri,a ΙπΙ^^ζ:
jnb powe__,powef_is_ok ;rstow lagę testu połączema jjeżei; radio jes; O.K, , san Hni; powiner! być niski (0) mov ri ,#marn 1 _flag_error mov @r1,# 1
setb jmp | βΠΌΓ_Α^ preonbook | |
powżr_it_ok: | ||
mov | ąffirnc | |
call | wrirus | |
mov | a,#7 | |
call | wrirus | |
call | clr_dsp | |
mov | a,star | |
call | wrrbus | |
mov | tffh | |
wait_ | min: | |
mov | ι^6),#0^331ι | |
djnz | r6,$ | |
call | wttehdog | |
djnz | r7,wait min | |
mov | γ7,#031 | |
wai | mina: | |
mov | r6,#0ffh | |
djnz | ró,$ | |
call | watchdog | |
djnz | r7,waipmma | |
mov | a,#9 | |
call | wrbus | |
mov | a,#0ah | |
call | wrrbus | |
mov | a.ddspbuf start | |
add | a,#3 | |
mov | ri,a | |
mov | a,@r1 | |
anl | a,#fhi | |
call | wrbus | |
inc | ri | |
mov | a,@r1 | |
anl | a, fik | |
call | wrbus | |
inc | ri | |
mov | a,@rl | |
anl | afh | |
call | wrbus |
; ustaw Mąd zaKUjnia f funkcja odczynu rn ζιζ^Όικι zwłoka ia; pr;ritsialtie numeru do mteffejsu generuj połączenie ze swoim numerem telefonu ^obierz aktualny wskaźnik ;odczzSae komunikat w buforze ;odczzSae komunikat w buforze ;odazzSae komunikat w buforze
178 631
inc mov anl call | rl a,@rl a,fffh wbbus | DdczYkij Ι^ι^π^τ^^ΡΙυϊ wi bfooree |
inc | rl | |
mov | a,@rl | o^iczzt^aj komunikat w bοrórse |
anl | a,fffti | |
call | wrbus | |
inc | rl | |
mov | a,@rl | iodzzyiaj w bοforse |
anl | a,#ffli | |
call | wrbs.ls | |
inc | r1 | |
mov | a,@rl | ;odzzatat komunikai w |
anl | a,fffh | |
call | wrrbus | |
inc | rl | |
mov | a,@r1 | ;odzzγiaj komunikai w bοforse |
anl | a,fffh | |
call | wrbus | |
setb | fsend | ;usaaw flagę nadawama |
mov | a,#send | |
call | wrbus | |
setb | j^^lab^ht. spicial | rcdUkuji Q4 |
call | γτηορορΏί: | |
tess mutc1: | ||
clr | mirtę | ;nie wyciszaj |
call | wirtepx2 | |
clr | rri | ;zwłoka na sprawdzenie pracy |
mov | iimeofn ,#0 | |
mov | time off2,#0 | |
setb | ||
delaycall: | ||
mov | atiimejofG | |
call | watchdog | |
cjne | a,#80,deiay_calt | czekaj 1 ? s |
test_mute2: | fest tonu zajętości | |
clr | rr1 | ;zwł_ka na sprawdzenie pracy |
mov | im^^_o^ ,#0 | |
mov | ώκ^__ο2ί,^,#0 | |
mov | time ο®,#0 | |
setb | tri | |
cont_waiting: | ||
jnb | muse,ttill_rnfse |
mov r1,#main_flag_error
178 631 mov @r1,#4 jmp ttillslnuse:
call readsio_m_a anl a,#00000001 b cjne a,#00000001 b,busy_ok call readsio_msa anl ceee a,#00000001b,busy_ok mov aitim__ofTl call ντοΡίκΙορ cjne a,#lhICon__waiting mov r1,#main1_hlae_error mov @r1,#3 callseπΌr:
mov a,#endl call wrbus selb error Jla; jmp ρι6_οιΕοο<^ t1000hz:
busy__k:
mov a^endl call wHus pre_pnhook:
clr connloop call writesiOsΠl_c call hup rei ;error_ach - ustaw kod błędu eπΌr_ach:
mov r1,#mainsflagserror mov @r1,#4 cjne a,#a.hhehk_hook_ring mov r1,#eirOi'_^c^dle mov @r1 ,# 1 emp exit_error chehkshffksring:
cjne a#;;2.check_d^ia_il'iag mov r 1 ,#error_hnde mov @rl,#2 jmp exit. error hhecksdialsflag:
cjne a,#3.check_dtm_jflag mov r 1,#οποι'_οοι1ο mov @rł,#3 jmp exl__ercor ;ustaw bk! paicy jjeż.tiii znika uboe ustaw bądl z^pn^awdźź, łon yyώier;etia jjeżeH 0 o znijęlość O.K.
;sprawdź ton wybierania jjeżeii zajętość 10001ΗΖζ-Ιο O.K.
;nie wykyito zajętości ;czekąl 18,2 s jeżeii nie wykryto zajętości ;ustaw hniu zajjęlości lub i 1)00kH ;zesaw ρο^οτοπΐα jeest, l tłUh^^a^y^t^a οοΙυίοιζοικι zestaw połączenie jjesti i słuchawka odłożonż il przydać z moduł ;bląd ;bląd SLIC ;bląd odwieazenia pzyy ίΖ/.ν.Όηκ'ηηι ;bląd wybtrrenra
178 631
3ιζ^5.1ΐηιί'_ΙΊ ag:
cjne ring mov rl,#erfoi·_fode mov @r1,#4 jmp zxit_zeeoe chzck £Ϊ^_Ο38:
cjne ai#5,ahzckhring_ans_flag mov r 1 τΖζπ'ορζο de mov @r1,#5 jmp ΖΧΪ1_Ζ£ΤΌ£ cJuz a]#6,chzck_power_flae mov rl^eroW-Code mov @r1,#6 jmp ΖΧΪ1_Ζ£Π£
Λζ^__ο wer_flag:
;Mąd dtmf dłhid wy/krywarna dwoniema ;Mąd odpowiądzi na dzwonimie ;sprawdź flag] pohiezcń
mov r1,#main1 flag error | ||
mov | a,@r1 | |
cjnz | a,#, ,eZakhrah_iest | |
mov | rl ,#erfOh_code | ;Wąd zasiamu radu |
mov | @r1,#7 | |
jmp | ζχϊ1_ζπό£ | |
check call test: | ||
cjne | a]#2]Chzck_busy_tese | |
mov | Γΐ,#Ζζητο__ϋ(^ζ | ;Wąd xxxx |
mov | @r1,#8 | |
jmp | e.\ii. in’or | |
check_busy_ | test: | |
cjnz | a,#3 ,aheck_inusz_iesi | |
mov | rl ^errorjoode | ;Mąd tonu zajętoćci |
mov | @rl,#9 | |
jmp | cxi( ΖΠΌΓ | |
ahecn_inuse | IzsI: | |
cjne | ai#4]Checkh1000_test | |
mov | γ1#^_ oode | ;Wąd stanu pracy |
mov | ||
jmp | εχϊ__εηθΓ | |
Λζζ'η_1000_ | tzst: | |
cjnz | 3,#5ζεχΐ__εηοΓ | |
mov | r^zrror codz | ;Mąd tonu 1000 Hz |
mov | @rl,#11 | |
jmp | zxit. ΖΠΌΓ |
exie_eeeor:
ret ;fm_selU - powrót do normal
0in_self:
clr conn_loop jjeti odwieszume su^^ł^^vsli] do call wriee_io_m_c interfejsu call hup
178 631
clr | enablą_tąst | jdobccz apazat |
call | wnte'_iom_b | i o odtycz moduł |
clr | ΙπΟηκιΜο | i;ntejaii;ueO _ο80 mam |
clr | ίϋί_ρηύ | ; kończ test |
clr | ąrroi·_f.ljlg | ffiaga Hędu |
jnb | error_flag,tuni_on_led | |
clr | ext _e'd | wtłąccz LED zewnętznty podczao ^^ste |
call | wrir__lo_m__ | ;włącz//wyąccz Lido zcwncEzzny |
call | loop_bad | |
turn_on_led: | ||
setb | ext led | ;w_Eącz IED) zeenlętdnly podczas teąbrt |
call | wrld^ąlo_m__ | ;włącz/w_Eącz IEDO zcenl^tzzny |
call | loopbad | |
clr | wyłąccz IEDo zewnętdnty podczas teste | |
call | writ.e_jomc | ^οζ^μεζ IED) zeevnęidzny |
call | ioopjaad | |
setb | _χϊ_1_1 | wyłŁcę2 LED zewnętdnty podczas Insto |
call | write_io_m_c | ^1ηζΛ·\_Εζ5ζ IEDo ζηΛ-νη^-ζην |
call | loop__bad | |
clr | ext_led | jwydącz IED) zewnętd:nty p^dEzzas teste |
call | wnte'_io_m_c | ;włącz'/w_4ącz IEDo zewnęrzrny |
czll | loopbad | |
setb | ext led | wyEacz IE/D zewnęrzzny podczao lessu |
czll | eiίtą_io m^ c | ^εζ^μεζ IED) zewnęrznty |
call | lood__bad | |
tess on: | ||
clr | ext led | ;w_Dącz IED) zewnętzzny podczao tesiu |
call | write__o m _ | Ο^εζ^μοζ LED zewnęrzzny |
call | loopbad | |
loop_bad: | ||
mov | zzwvtoka na πϋζϋίεηίε sseZanswer | |
wait_emb: | ||
mov | γ6,#0ϊΉι | |
dacz | r6,$ | |
czll | watchdog | |
djnz | emb | |
mov | r7,#0fhi | |
wait_emba·. | ||
mov | ró^Ofhl | |
dacz | r6,$ | |
caU | watehdog | |
djnz | r7,wat__emba | |
ret |
gweedź tu po podniesieniu słuchawki w celu wybierania
178 631 first:
call | clr_msg | kasj poprzednie komunikaty TRU |
clr | ex0 | ρηΜου! pfzcrwatiie podniesienia δΒ-ίοΤιαννΤΤ aż do tonu wybierania, w celu zapobieżenia wybieraniu zakłóceniami komutacyjnymi |
clr | hookswout | powiadom PTR o podniesiemu |
setb | hookswout_ | jak wyżej |
clr | fliook | flagę |
dt_dnlay: | ||
call | watchdog | |
nov | :_cnids„#4 | ;UWAGA:NJTO & TIMERO są w tym miejscu zawieszone - nie używać żadnej specjalnej funkcji TRU bazującej na tych przerwaniach |
call | trucmal | ;wykonuje rozkazy specjalnne TRU |
jb | f start,dt_delay | ;zostanie ustawiony po 5Hi ms elimrnauii t^kłóceń komutacyjnych |
clr | ieO | ;kasnj lagę pr zer wanna poniesiema suicha wki aha t cggo przypadku |
test lc: | ||
jnb | k_ ,alert_check | ;wyskocZj teżeii słuchawka zdjęta po 500 ms |
test 1c1: | ||
call | hup | ;słuchawka odwieszona na powrót w ciągu 500 ms |
jmp | start | |
alert chick: | ||
setb | exO | ponownie odWoką) ρινηηνηηίη ^dj^tim stochawki (DT już włączony) |
jb | muse,make_dt | ;wyskocZt ic'zeij nie INUJSE iletteśmy gotowi do wybierania |
jmp | wati | jj^^^ii uuz, INUSE t ot ptawdopodobme wysp pty ące podniesienie słuchawki odpowiada na połączenie wchodzące podnosimy słuchawkę na 500 ms w celu generacji tonu wybierania |
makk _t: | ||
setb | adtone | ;1=Ι)Ϊ3ΐ Tonę włączony |
call | dtone | jcdNakni Lbai Tonę |
call | get | pobiera znak bib -wyjdź w odwłeszema |
jb musepheckjrreity clr adtone mov ccapml,#0 jmp watt cheskh_tηhix:
jb | tockpreityO a,#pound,no tend | ;vyskoeZjteiei I TRU na zabtokowane ;wyskocz.i ice.eiI złbtokowatyi wanty tylko # (odblokowanie) |
^ΟΊχ./): | ||
cjne | a,#zero,prefix_l | ;vyakor7jIeηai i nte[0] |
jmp | ttorett | ;skocz do 0)i akko pηefikru |
cjnn | a,#l,no_prefix ; | yykkocz jteżet i nie[1i albo |
jmp storehtt | ^kocz do zapamiętania [1 ) jako prefiksu |
178 631 no_prefix:
inc | rO | pozostaw ρΓζε<1ζΪΗ; prefiksu me muernony (FFh) |
inc | 2 | ;lecz zwiększ hczbę cyfr |
Opamiętaj aktualną cyfrę i następną aż do czasu ich wysłania, | ||
storrit: | ||
cjne | rO,'//7tfΊ,clost.ore_it | ; wy skocz; ΐεζεΗ bufor eyfr jeszcze me ζπρΝηίοηγ |
jmp | check_numbei' | wvyskocz,; jeżei; bufor ^^ϊ.-Ιαζ,; bez ζοροζηίί^ιηίη |
do_ttorr_it: | ||
mov | @rO,a | νηρίΐΩΒ^ίρ cyfrę |
inc | rO | ;j9iz^^^r^r; do przodu wskaźnik bułora cyfr |
;sprawdź wprowadzone cyfry i przeanalizuj je na ważność sekwencji.
checkknumber:
clr | fsendiimer | ;upeanief sęę; że ayłłączony |
mov | afti^l-digi; | ;wskaż na p^dzaa; pieIaγrzef cyfry |
cjae | aWffhgcheck—One | ;wyskocZ; ^zei; wprowadzono aSko pieawrzy znak cyfrę |
jmp | checksend | w przeciwnym pzypadku sprawdź, czy czas na wysłanie |
check oae: | ||
cjne | a.;pKnind.checkyend | ;wyskocZ; reżei; me [#; (zaWoko warne, odblokowanie itp) |
mov | a^ccnd^^^: | ;wskaż na cyfrę; ^zei; ρΐ6ην5ζ ees; [#] |
cjne | a,#3fh),check_Wro | iwyskocZ; re:Ż3^i ; wprowadzono a ako dmgż znak cyfrę |
jmp | check_send | W Jir^^ttavi^^m pzy padku sprawdź; czy czas na wysłanie |
check two: | ||
cjne | a,#pound,check_n<mn | iw^y/skocZ; jjeżei i me##]##; lub odblokowanie) |
mov | ;dwa ## mogą tz^^ra'a^zaWokowaine lub odblokowanie | |
cjne | a,pound,check_unrock | trzy # oznaczają ζαΜο^χγοηΐε |
eab | ;me bloku) Jęli ; :rabtokowίaee | |
jmp | ;[# ][#][#; macza zabtokowanie | |
check nam: | ||
cjne | a,#srar,check_send | ρ^ην!,j^li ż me l^<o]<a^ι^;aeja [#][*] |
mov | a1fhird_digit | ;w pzzecwnym pzzypadku poWere ó^\^^^ż trzeci znak cyfrę |
cjne | aJfffh.c hec knam 1 | ;wyskozZj ζοζοΙ ż wprowadzono psko hzec^ -^rffrę |
jmp | fhcck_rand | wv pzzecwzny m pzz.y padku sprawdź, czy zass na wysłanie |
check nami: | ||
mov | f_cmds,22 | ;aaiadej numer fvaSaei i, ^^γριη; skozz |
call | rrucmd | ρινγ^ο; na miry NAM |
;Przerwij przy niedozwolonych sekwencjach cyfr (wybierania), no,send:
178 631 clr 0uniocktimrr setb setb jmp chsck unlock:
forώook ic0 start wyłączenie bloku czatkwreo odblokowania, znak # go ustawia ;jak w przypadku odwicszcnai ;skocz do JUrkjej1 obsług1 ExtIntO jjak przy ponownym podniesieniu .sUtelr^wlli cjne a,#0ffh,unlockine_le jmp chs'ck__send unlocking_ie:
setb Iunlocktimer jmp getnswt.
;wytkocz, jeżeli jeśli wybrano jakąkolwiek cyfrę po ## ;w przeciwnym przypadku rprawi1Ź1 czy czas na wysłanie ;wyśle po 2 s bez kodu SND ;dla uniknięcia wysłanai kodu odblokowania jako cyfy ważnej ;Wejdź tu, jeżeli sekwencja cyfr nie kwalifikuje się jako któraś z funkcyjnych opcji specjalnych ;(blokowanie, odblokowywanie, podwójne NAM, itp.).
checksend:
setb jmp | sw ssndtimer,check_int1 fsendtimer get_next | okocy jeśli swr=/l odblokowane połączenia wewnętrzne odblokowane nadawanie po 4 s 1 jeżei1 sw7==0 i na powróte po następną j^yotr^ |
chsc^ | intl: | |
mov | a,prefix | ;te:sUij prefiks w akumuiakrrze |
φ. | a,#0,check_op | ;skocz1 seśió no (0] |
mrv | a,first_digit | ;w przeciwnym przy padku pierwsza cyfra w-a-n^ewm |
cjne | f,#1,checkJop | ;skocz1 jeśió nie [1, może być wywołaniem operaom |
setb | fssndtimer | połączenie międzynarodowo 1 rozpoczyna sęę na a 1;„ |
jmp | eet_next. | ;na powró1 puo resztę 1 teraz nadaje tylko Mok czslrorvy |
chrckJop.·
mov cjne cjne setb | a.prefix a,# 10, che ck_service r2,#0,check_service isendlimer | cyfrę prefiksu Jkrk)wuie ;skocZl reśió proik'ts jes1 nie 0 ;skocz1 seśi1 cyfra (pyry) wybrana również ;w przeciwnyni Jn'zyJfldku może to być przzy w-danie operatora |
check | seryics: | |
cjne | r2,#3 ,chrck_di stance 1 | skocz1 jeśH nie 3 cyfry |
mov | a,second_digit | ;w pz'zeciwnym przypadku, 1 reżei 1 tn0otmfces itp |
cjne | a,#1 ,check_distarjce | skocz! reśi 1 duigą- cyfrąres1 1 |
mov | a,third__digit | ; pDołii^^z rrzecią cyfrę |
cjne | a,#1 odrę ck_dist£ince | sskoCZ1 SelU 1 leżeH rrzecią cyfrą nie res1 1 |
jmp | ΝΐΠ._ρ1 | ;nrawkooodobme 1 |
checty | distancr: | |
cjnr | r2,# 10,checkloca1 | ;czy ννγΒ^ηο 1(1 cyfr? |
jmp | send_i1 | ;wyśii1 10-¾ reżei 1 nie międ:tynarodowy |
clicck | local: | |
cjnr | ^^#^^;g(^r_n^?et | ^^1—^^^1 seli 1 wybrano mniel 1 niż 7 cyfr |
setb | fsendtimer | przy^I^c^^j wydanie w cng^u 4 s |
mov | a.secorlcldigj1 | ;pobiesz drugą cyfrę |
178 631
subb | a,#1 | ;cy rotest #1? |
jz | gs'terre'xt | ^Ιιοοζ, jest t aaki może być kteIsuk_wyt uiub fokafoy |
mov | a^scond digit | ippoberz p o_o_ore drnuą ą yi'rę |
subb | a,#10 | ;cy to jest 0? |
jz | ;skocz, teżeti aak, może to być rn ktennkowy, może być lokalny | |
clr | fsendtim^r | ;nte pobteraj wiń^c^ijj, wyślij 5 s późn^jj |
jmp tendeis geinert: inc r2 call get jmp storę it ;ρο^βΓζ nową cyfrę ;dokphqt weswystSięh s_\alγdzeń z nową cyfrą .*********************************************************** ;Wzbietanis wykonane, wyślij numer ;
;Sprawdź, czy TRU jest zablokowane, i przerwij, jeżeli nie wprowadzono kodu odblokowania send_it:
jb locksd' | l_ck,tsnd1 | ;skocz, jeżeii TRU ust jest zablokowane |
A | thirddigit. a,#00fh,tend1 | ;pobierz trzecią cyfrę |
cjns | ;skocz, jeśti wprowadzono cyfrę | |
jmp | nossnd | nie oysyiajt jeżeit nie wprowadzono kodu odbtokowanai |
;Wyślij wybraną cyfrę.
ssndt: | ||
setb | mute | wy^cssz l^<^łcó3r r fonii |
call | writep.\2 | |
mov | yirO.ksend | ; wstaw wy sarnie ici końen cyfr |
mov | a,#clear | ;kod kasowanća |
call | wrbus | ;wsfaw η:.ιίpierw kod ^^tr^ioα^nat w <^^ht skasowanta ws/elkćeh cyfr z pamięci TRU w przypadku wprowadzenia z mikroSslsOonu jako pierwszego |
mov | r0,#60h | wskaźnik pmttyci |
mov | a,@r0 | ;wsfaw prefiks do aksιmuk;tora |
cjns | a.bbfiaout | |
inc | r0 | ;ztuić psffiks , teżeit FF |
out: | mov a,@r0 | |
call | wrbus | na magisrraty |
jnb fiaing_send_ok tssS_lc2·.
call jmp | hop saart | ;;akrończ podawanie, Seiei t odwlezzenle |
send | _k: | |
inc | ||
cjns | ajsediyont | do kodu SND |
sstb | isend | wyśllij lOgg, nadawama |
clr | mule | iodbloUaj fonty rx |
call | wctte__px2 |
178 631 ;Wybieranie zakończone, cyfra warunkowego echa do TRU, polem czekaj na następne eweniualne cyfry ;(wewnętrzne ilp.) lub zezwól na przejęcie sterowania przez przerwania.
wail: | call gel |
jnb | sw_dara,walr |
call | wbbur |
jmp | waill |
;sprawdź cyir z aparatu MJ ;zlikwidue daną po zablokowaniu snd ;w przeciwnym przypadku wyśljj daną do TRU ;pozostań w pęt.ii do czasu podniesienia zluchawki przez nas słuchawki lub drugą slronę ;Generator Dial Tone ;Ten podprogram wybiera i generuje odpowiedni ton wybierania, zależnie od naszego bieżącego sianu ;(roam - ruchomy, holler - wywołujący ilp)
dtone: puzh psw | ||
jb | fockiServ_check | |
mov | dpra,#rabt__35O | ;350 Hz dta blokowana |
jmp | toneout | |
zerv | check: | |
jb | noseΓVIfoam_check | |
mov | dpta,#rabte_620 | iłon 620 Hz dta sygnata meobstagiwema |
.^p | fone_out | |
roam | check: | |
jb | sWsdialtnne,normal | jjeżei i opejoIraiisy sweeil :am'lietięty (=0)) wytwarzaj ton różnicowy wybierania dla roam |
jb | foima,nomra | |
mov | dpra,#rabte_roam | ;440-620 Hz dta roam |
.^p | toneout | |
normal: mov dptr,#tarle_dt | 3350 o 440 Hz rnomautae DT) | |
lonc. | _ul: | |
mov | Οοχγροπή^ρΐ | ;;npamięat , gdzee rozpoczynaa się abiica |
mov | h;ghpoint,dpl·ι | |
mov | ccapm 1 ,#0 0 0000 0 Ob | Ιΐ^(^1;^θ^^αί łon |
pop psw rei ;Pobierz cyfrę z klawiatury mikrotelefonu ;Podprogram przelwarza wchodzące cyfry i/lub hlagi przetwarzania ;Przy powrocie, zwraca daną w akumulatorze get:
push pww geU:
mov 0ίπ1ζ,#3 ;flaea wskazuje zlosowaną funkcję
178 631 call bnccmd (wykonuje któreś z poleceń specjalnych TRU call watchdog ;CzekaJ na impuls. Jzżeli impuls nie został oznaczony przez EXTINTO(O00_Hook_Szrvicz) flagą jako impuls wejściowy wybierania, sprawdzamy jako cyfrę wejściową DTMF. Jeżeli stanowi sygnał wejściowy wybierania impulsowego, odbywa się w dalszym ciągu siiasrniz impulsów, aż do upłynięcia 250 ms po odebraniu ostatniego impulsu. W tym miejscu uważamy za zakończone zestawianie cyfry wybieranej impulsowo, tak żz kopiujemy ją do akumulatora i ustawiamy flagę fąig_ezrdy.
gethPnisz:
jnb | ΐυ'^ίί..υϋυόΐπ) 1' | |
clr | ądco(te | (kasuj Hagę tonu wybieralna |
mov | ccapml,#0 | (wy^cz ton wybieralna |
mov | a,#2 | (jeżeli występuje sygnał wejściowy |
clr | c | (kasaj przruiie'sienie przed odejmowaniem |
subb | ι,ιΙΙ^^-ΟΟΕ] | (sprawdź] cy upłynęło 2133 ms (3x71,1 ms) |
jnc | ge_ dtoif | (jeżeli jeszcze nie] to cyfra nie jest pełna |
mov | a#1131 | |
clr | c | (kasaj f^i^>^^t^niesz^riic przed ojlejmowr(niem |
subb | a1Sime_of31 | (sprawdź] cy uplynęoi dodatkowych 36,7 ms (132x277,8 ps - łącznie 250 ms) |
jnc | 5^Ο_311ιΓ | (jeżeli jeszcze niej to cyfra niejest pe(na |
mov | a,pu;se_digi] | ;wprrowadź cyfrę do akumuiatorao |
mov | pu;se_digi],#0 | (kasaj dila następnej cyfy |
setb | ;w celu wskazaina] że cyfra jest gotowa | |
clr | fdigit | (kasaj flagę |
Jeżeli wybierana cyfra DTMF jest gotowa, skopiuj ją do akumulatora. Sprawdź na warunki specjalnt, flash, odwieszenie bp. Wykonaj skok warunkowy w przypadku warunków specjalnych lub kontynuuj sprawdzenie dla dalszych impulsów i/lub pełnych cyfr.
gzt dtmU: | |
jnb | fdtmfm,hang |
clr | fdtonz |
mov | acrpm1,#0 |
clr | fdtmfin |
mov | a,px1 temp |
anl | a,#OUfh |
setb | fdig_ready |
;kasaj flagę tonu wybierania Wyłącz ton wy biemma (kasaj flagę wejśda DTMF (wprowadź cyrrę do akumuaatora ;zarrymej tylko dobę eziet'y tuty W celu wskazaina gotowości corty (Sprawdź odwieszenie (impuls 700 ms).
hang: jnb Uhang,Ulash pop psw test_1c3: call hup dec sp dzc sp jnb f·zmote_hupino_ezmoie clr iiemiotejiup nojemote: jmp saari jjeżeii nb odwieszenie ssloo^gaj wskaźnik stonu (op^zcza) tce podpoogamn bez i ret ;skosej teśii oyyer¾iłj sygnai no remote
Wyjdź, koo] odwieiłi słuchawkę
178 631 ;Sprawdź w przypadku Azs! (200 < impuls < 700ϋ).
gflash: jnb flash time | jjeżlli nte 'ΊΖϋΗ |
dr fpjb7h | Z^uj flag) l^ah |
mov ccapml,#S | ZwYrdacz ten wytaczania |
jb fdtonejturthljb7h | jząel i w^anty ton eytatjntaa,wyśjij tyKo onomnme: |
ostatnio wybierany numer | |
jb bąandjturthfib7h | jjeżd i flaga eysyjanaajbrO π^ιχνζοηΐ; nte eprtowadaej |
cyfr, tylko wyślij | |
clr Cctiol_s | iksaj flago tonu wytaczania |
pop pwv | |
dec pp | ;akorgguj waaźnnik stouu |
dec sp | Opuszczając podprogram bez instrukcji ret |
jmp t | Zwyprowadź cyry + wyślUj |
;Nadaę tylko kod SEND, ale bez cyfr, jeżeli albo Dial Tone, albo flaga Send ma stan wysoki. | |
just _ash: | |
clr | ;kauuj flagę tonu wytaczania |
mov f_cmds,#5 | |
call trucmd | |
mov a,#send | zw^^ijjj kod |
call wrbus | |
set fsend | ZwylUj flagę |
pop psw | |
dec sp | ^koryguj wskaźniki) stouu |
dec sp | 0)pudzczejąc podprogiam bez o ηΠ |
Ump wait | Zwróć po Ο'-ι,, odwtezzente ttp. |
Jeśli jeszcze nie wybraliśmy pełnego numeru telefonu i upłynęło 40 s od ostatniego wciśnię- | |
cia klawisza, rozpoczyna się 1-minutow_ ton hollera. | |
time: | |
jnb fiime,send_iime | jee^lii nte uptynąl cass |
pop psw | |
dec sp | ;ako:^guj wkkźźmk stouu |
dec sp | Zopuzzcająo podprogzam bez zc_ |
jmp rohtone | Zweedy bez n^hk^^e |
;Sprawdź, czy nadszedł czas nadawania (upłynęły 4 s od wciśnięcia ostatniego klawisza).
jnb mov cjne clr | fsendiimeiontockjime rótiimeoffl r6,#56,untock_iime fsendtimer | ;w r6 czas ΊΊ ms Sprawdź dla 4 s (56 x 71,1 ms = 4,99 ss |
pop | psw | |
dec | sp | χΑ-ηου) waka:ndik stouu |
dec | sp | (opudaczejąo podprogram bzz ste |
jmp | sendtl | ;w_prowadź cyfry i wyśiej |
Sprawdź, czy żądano odblokowania.
udock time: | ||
jnb ygnlocktimer,toak time | ||
mov | r6iiime_o22 | ;wró zass 7l ,4 ms |
cjne | ró^SJook | sprawdź na (28 x 71,4 ms |
178 631
clr | fUnlocklimer |
pfp | psw |
dec | sp |
dec | sp |
jb | lock,no_unlock |
W | unlock_il |
no imlnck: | |
zelb | fonhook |
selb | ΐεΟ |
jap | start |
l^iro^;^ur wskaźnik słosu jopuazc^jąc podprogram bez i ret ;me odblokowuj . eelii iuż odblokowany jjak pozy odwteszenłu tskocz dhi ^11^1 obshigowcl ΗχΙΙιιΟ) ;jak pozy ponownym podntesienłu sUuchawki ;Dodanie wartości flocktimer w celu umożliwienia zablokowania upływu czasu przy mniej, niż 4 cyfrach.
;Do TRU irzeba dodać etykietę g^lock jak również (w razie konieczności) ustawić flocktimer.
lock_lime:
flocktimer,look | tskocZj eeli 1 nee | |
mov | ^^itim^ ii02 | wr r6 izasr 71,4 ms |
cjne | r6,#28.,look | isprawdź na 228 x 71.,4 ms = 2 s) |
clr | flockflmer | |
pop | psw | |
dec | sp | ^^1^os^;^u1 sp |
dec sp jmp go_lock ;Sprawdź, czy mamy (całą) cyfrę look: jb Odle_reads,eol_asdtgil
jmp | get1 | ^^pra^v^dź ponowiie. cy nee wYpi-owadiono cjIty |
;Mamy cyfrę (impulsową lub DTMF), zwracamy ją w akumulatorze. | ||
;ο0___1ϊ;ϊ1: clr | ddigready | k^a^^i flagę gołowohci coIS-y |
gol_inust: mov | time_off1 ,#0 | ;ηι·ηο1ιοιηίγηίγ' bloków czatsowych pzyy każdym |
mov mov pop rei | iimeoU2#d) ϋϋβ_ο0Β,#0 psw | wprowadzeniu cyfry |
;Pobierz cyfrę z klawiatury mikrotelefonu .*********************************************************** ;Podproeram przelwarza wchodzące cyfry i/lub hlagi przetwarzania ;Pray powrocie, zwraca daną w akumulatorze gel_lesi:
puzh pww
178 631
Jeżeli wybierana cyfra DTMF jest gotowa, skopiuj ją do akumulatora. Sprawdź na warunki specjalni, 0lash, odwieszenie itp. Wykonaj skok warunkowy w przypadku warunków specjalnych lub kontynuuj sprawdzenie dla dalszych impulsów i/lub pełnych cyfr.
gethdamf:
jnb | fdtmfin,no dtmh_test | |
clr | fdtone | jkami flagę tonu vy^linra^n^a |
mov | ccaf>m1,#0 | ;wydącz ton wybierania |
clr | fdtmfin | ;kasui flagę wejścia DTMF |
mov | a,px1_temp | ;wprowadź cyfrę do akumulatora |
anl | a,#00hi | ;zafrzymąi tykai do^e cztery bity |
setb | fdig_ready | w ceto wskazania gotowość i οίγ· |
nOhdtmehtηsa: | ||
clr | fdigready | ;kasut flagę i^oło^l3^(tl cyfy |
mov | time_offl ,#0 | ;uruchomienie Hoków cmsowych pry |
wprowadzeniu cyfry mov time_off2,#0 mov time_off5,#0 pop psw
ret | ||
. *********************************************************** 9 | ||
9 ;snnd_dtme - | wyślij ton wybierania | |
9 9 | ||
send dtmf: | ||
call | wacchdog | |
clr | ciπnhp’ut | ^Μο^ ton dtmf |
call | write_io_mb | |
setb | atmfout | odWoku ton dtmf |
call ret | write_io_m_b |
;clr_dtmf - wyślij ton wybierania .****************************************************:!:******
disabln dtmf: | ||
clr damfhPzt | ;pdblo;ujj ton dtmf | |
call | ν,τΐίορίΟ-ΠηΗ | |
rnt | ||
aelay_atmf | ;opóńiienie tonu DTMF | |
clr | tri | ;zwłoka na sprawdzenie pracy |
mov | time_ofi2,#0 | |
mov | tim__0ff7,#O | |
setb | tr1 | |
wait_ | until dtmf | |
mov | ιΡίπηροΙΏ | |
call | watchdog | |
cjne | a,#4,wart until_dt.mf | ;odczekaj 40 ms na zafrymanie dim!' |
178 631 rst .*********************************************************** ;Generator tonu ROH .*********************************************************** ;40 s po podatssisaiu mtktoSelsfoas, bez wybrania żadnej cyfry, lub od wybrania ostatniej cyfry. Gsaerujsmz ton ROH (przerywany w odstępach 80 ms) w ciągu 1 minuty, lub do podniesienia mikrotelefonu - hangup, zależnie od tego, która sytuacja wystąpi wcześniej.
roifone:
clr | ftime | ika^cj flagę |
clr | fctonne | k^issuj flagę tonu wyblerama aak, aby zmimy wskaźników nie powodowały zmiany tonu ROH |
mov | ||
mov | hlghpolaS,dph | ^ρ^ι^Ιη' fokację |
mov | lowpornt,dpl | |
ssSb | tOhbooti | ^tyksz poztom fonii |
call | wctSejrx2 | |
mov | ccapm 1 ,#0 00000 0 Ob | ;wąącz ton |
^zostań w pętli przez 1 minutę albo do hang_up (odwieszenia), phecPlhaaąsp:
call watchdog jnb Olaaą,pheck_tlmeout testlc-l:
call hop jmp start chsck_Stmeout:
jb frohtimeout,roh_timeout jb roh_on.n)htone_on mov pcapm1,#0 jmp phepk_hanąup toh_ttmsost:
mov ccapm1,#0 clr rohboost tsSb loopswitch_ call wnte.px2
SssS_1c5:
call hup jnb sw_gr_dstart,loopSesj jmp OoptS^sls^nd ;odśwież wacchdog oczekuj cc w tym mtajpcu ^Ι^οο,, jślit nadat zdjęcie suachawki w-pykoncj zwykle odwlezzenle, Seżeti shichawka na powrót odwieszona ;wprowadź nowy start ;skocz, jeśli upłynął czas roh (po 1 mmudci ;wyłącz ton fa pęfla nę mamę wiccza i wybccza roli ;wyłącz ton ;wyłącz zwiększenie poziomu fonii ;rozeiwij pętlę ;wyprowadź do portu podprogram odwieszenia ;wykoncj test pętli, jeśtt start pętii mis' wykonaj tesuu, jeżeli start od uziemlema, tylko pozostaw pętlę otwartą do uzismisnia dzwonka
178 631 ;Wejdź tu jesteśmy w trybie LoopttarS. looptζtt.·
mov | b,#40 | ;ustaw zwłokę 2 s (40 x 50 ms) |
loopti: | ||
mov | a1iime_0Ir2 | pobiera aktuanny czas odwieszema |
add | a,#5 | ^odj; 50 ms do czasu obecnego |
loosi2: | ||
call | waCchdog | ;odśwież watehdog |
cjne | atiime ol22|toopr2 | zwłoka wynos; 50 ms |
deaz | bjooptl | ;czekjj ogółem 2 s |
clr | loopswiich | ;zamy]aj pęUę co 2 s w celu sprawdzema |
call | wrritejaKd | ;cy mikroteiefon odłożono na powrót; na wtdeiki |
mov | toopres__sticζer2,#215 | ;ładuj zwłłokę 2,22 ms (8 x 2778 lis) |
loosi3: | ||
mov | toopres__timer,#3fhf | w celu zapewnienia dostatecznej ϋοέοΐ czasu alb układu sLiC |
deaz | ioopres_ dmer^ | ;w celu wskazania stanu odwieszema |
call | watehdog | ;odśwież watehdog |
deaz | ioopres__tmrrr2lioopt3 | |
jb | ^όοορΖειΙε^ | skocz; ześi; brak prądu pęliż (ponowne odwieszenie) |
setb | ioopswiich_ | pozewry; ponownie wyłącznik pętli |
clr | ioopsw1icll_ | jzmiyką; pędę co 2 s w celu sprawaZzenla |
call | widic.__px2 | |
jmp | kopies; | ;czeka; do odwieszenia |
loopSsrt end: | ||
clr | frohtimeouf | ;0 = wystąpito odwieszenie lub praca w ty bie GS |
mov | time_oal,#0 | ;reset bloków czasowych odwieszema |
mov | ύίηί._οη2,[0) | |
jmp | start | ;start na now;o |
;Podsrogram dla odwieszenia
hup: | ||
call | watehdog | |
clr | ex0 | ;rabIokąj extint0 (zdjęcie,LC__) |
clr | .digi; | ;w jarzypadkt; podniesienia podczas wybierana impulsowego |
mov | putse_digίź,#0 | ;w przypadku taktu poaCczas impasowego wprowadzania cyfry |
clr | adg__ready | ;w Jarr^^r^s^^dS^t; taktu podczas wprowadzana impultowego/dtm3 |
clr | adtmfin | ;w przypadiu; taktu podczas wprowadzana; alimf |
clr | flockdmer | ;w przypadku taktu podczas blokowama |
clr | fiinlockdmef | ;w pz^zypadkt; taktu podczas odMokowy wania |
jnb | sw_gndstart,hup 1 | skocZ; reśh start pęlii |
seto | loopsw1ich | ;przy starcie od uziemiema otwarcie loopsw na 750 ms |
call | write_px2 | ;dla symulacji; taktu |
mov | asdme_on2 | ;ζ\ν^χζηην co 10 ms |
178 631
add | a,#75 |
push | acc |
jmp | hup2 |
hupl: jb | frohtimeout,hup2 |
clr | loopswitch_ |
call | write_px2 |
hup2: | |
cb | ftime |
clr | fsendtimer |
mov | ccapml,#0 |
clr | fdtone |
clr | roh_boost |
call | write_px2 |
jb | fremote_hup,no_end_sent |
mov | a,#endcall |
call | wrbus |
no end sent: | |
clr | fsend |
setb | hookswout |
clr | hookswout_ |
jnb | sw_gndstart,hook4 |
POP | acc |
clr | c |
hup3: | |
call | watchdog |
cjne | a,timeon2,$+3 |
;zwłoka 750 ms (zachowaj na później (jeżeli start pętli (kasuj flagę bloku czasowego (kasuj flagę nadawania bloku czasowego (upewnij się że dtone jest wyłączony (kasuj flagę tonu wybierania (fonia normalna
jnc | hup3 |
hup4: setb clr clr | fonhook fhang f_one_sec |
clr f_inuseofftiming setb ex0 |
;nie wysyłaj końcowego jeżeli takt zdalny, ponieważ nie ma takiej potrzeby i nie są niezbędne kasowania bufora Motoroli (wprowadź kod końca (najpierw wyślij do TRU, następnie kasuj flagę (w przypadku wysłania cyfr lub odpowiedzi na alarm ;pokaż do TRU odwieszenie (jak wyżej ;nie taktuj przy starcie pętli (pobierz na powrót opóźniony czas (kasuj flagę przeniesienia przed następną instrukcją (Odczekaj 750 ms dla umożliwienia otwarcia pętli i pbx w celu sprawdzenia, żejest wyłączony. Skocz do następnej instrukcji bezwarunkowo ;nie przenoś, dopóki time_on2 jest większe od akumulatora (w przypadku jeżeli zapis na magistralę zajął więcej niż 750 ms) (ustaw flagę odwieszenia (kasuj flagę podniesienia (czyli blok czasowy powinien wystartować ponownie po zdjęciu słuchawki (kasuj flagę (odblokuj extint0 (zdjęcie słuchawki) (Aktualizacja stanu TRU .*********************************************************** (Podprogram uaktualnia stan TRU co 71,4 ms oraz włącza i wyłącza dzwonek. Sprawdza również występowanie przerwy 3,9 s po dzwonieniu update_displays:
178 631 push acc push psw uptpec/:
jnb f specd .contmueuipdate call spse1 continue_update:
jb Sest_enabSe,go_to_self mov aJamJtstemp mov CriOam cpl c mov roamfmΊp.c mov c,noserv cpl c mov noservtamp,c mov Cl-ock cpl c mov (ocktamp,c mov Ctinuse cpl c mov rnusetamp,c call write_io_c jb swdiaj-o;ten^or_maini tese_puth:
call rsαd_rk_m_J anl a,#00010000b cjne a,(#Oh.,r(or_ptttsl·ι setb eete_snαbls setb fremote_hup sstb loopswjt.ch call writej>x2 not_push:
jnb Sest_enabte,nor_mam1 go_eo_sel0:
jnb tesrendn-o_crrogye1 jnb error_flag,pass_ok eest_lsd:
mov rO,#error_code mov a,@cO rl a rl a rl a rl a mov iamps_temp.a call wnte_lo__c sstb exr_ted jmp wrtSe_to_c clr οχ_)οι1 ;sprawdź flagę specjaHią podprogram specjalny w sekcj 1 TRU ;sprawdx.1 czy tes1 sm rozpoczął ;zatrzymaj wartości do późniejszej komparacji ;w rzeczy wts-ośc1 no ma lampek dla Maxjacka!
zwskaźnik roam (tylko do zapamiętania) ;wskaźnik braku (bmsUeii (tylko do zapamiętania) ;wskaźnik zablokowama (tylko do zapamiętania) ;wskaź.nik pracy (tylko do zapamiętania) aktualizacja LliDów jjeżei1 opcja sw wyłączona (=1) bsz modułu obsługowego ;sczyta1 przyctsk μη^ΐ^ test obsługi ;ustaw takt zdalny na 000 ms ;odłączono drugą stronę sprawdź rozpoczęcie StsUu nie stwierdzono błędu ;aktuaizzacja LEDów ;włącz ted zewnęrr;my na 1 nimitk:
;włącz ied ζεΛνηρΕζην na 1 mmudę
178 631 jm! wrąC-loc nol_effofsyet:
jb | ex__ted,ctr_led οχ_1οι1 wrbe h_ c | ;wlącz led zewnętrzny pidiczas tesłowama |
zelb | ||
clr led: | ||
clr | ext_eed | ;wyłącz icdi zewnętrzny podczas tesnw^mai |
wrile lo c: | ||
call | wτitc_o)_c | zwlitcz/wy-ąicz. UD) zewnętrzny' |
noł mail: | ||
mov | a.iaηepstemp | ;lt^^^i^tloyηjje wartości do pózmtejszej k;)ηlparaei |
jb | frohtimeout,compate | |
mov | c,ap2 | Sprawdź. c^zy j^seeśmy w stanśe ALERT |
anl | c,/ap1 | ;(tzni: a oczekiwame na połączeme wchod^ce) |
jnc | compaee | skocz. jeśii nie ALERT (me polączenże wchodzące) |
ΪιΙ | Γοι-τοοΙ,,compare | Skocz. jeśii SłłLh^law^tra zdjęta . nie łIruchaηliej dzwonka! |
clr | loopswhch . | zzamknjj wyłącznik pętU. jeśii stan ALEART, |
call | writeJpx2 | (oczckiwanże połączenia wchodzącego) |
jb | kalltIrescSrieet_tmtca | tskocz. jeśii rwa już dzwomeme |
zelb | ball 1 | 1l (i początek dzwonienia (wykyło ALERT) |
mov | 1ι6ΙΗ:ϊπι6,,#0 | skasz. klOki i czasowe |
mov | bcb ύΓηε22,#0 | |
selb fbellzound | jflaga działarna dZzwornka | |
mnv | dpta,#rabte_20 | ;pry d^zw^r^nż^nbi wskaż na υιΒΖίοο 20 Hz |
mnv | lowpombdpi | początek dzwomema |
mnv | highpombdph | |
selb lweelSsCZsPwm | ;tak więc pm może być pwm | |
mov | ccapm2.,#0100010 Ob | ;odbloką1 pwm |
testl: | ||
0 | clr fines | ;włącz ps dzwonienia |
zelb | noring | |
call | writeJpx2 | ;wyprowadź do portu |
rcscg ring iimer: | kraski mń^cZy dzwonkami blok czasowa. dopólk | |
mov | ring-tirne,,; | jj ^st^^ηny w χύιηίο ALERT |
compare: | ||
xrl | akampSotemp | ;bby różniące sęę powiresy być = 1 |
jb | __(^ne_^^^dOrbitr | ;odczekiwanże 1 s po zjj ędu sSuchawki pozed sprawdzeniem lampki pracy zapobiega rozłączeniu, jeżeli zdjęcie słuchawki nastąpiło już po sygnale taktu |
mov | aihcc.0 | ;pobżerz saoUtr NUJSE |
anl | ;1=nie N1USE | |
jnc | ύηιϊ^ΐη^εοΟΟ | tumchom blok czasowy . żżźei i tampka muse już wyłączona |
mov | n_ ue_ οΓ__ΐίηκ“,'.#20 | justow ponowne blok cza/owy na 1,99 s (28 x 71,1 ms) |
zetb | _ ΐη^οο©™^ | ;wskaż że blok cza/owy yvył;hcxeital z pracy |
działa timing_in_uze_ohO:
jnb inzseiηmp,con_in_ιιs_if ubieg ;czy lampka pracy nadal wyłączona
178 631
clr | __ΐηη8ΰ00ϋΪΓη^ | ;jeżeii nie i kasui flagę i ζηΟ/λππΙ odmierzanie czasu |
conr_in_hse_ | timing: | |
jnb | fhinzsnofeiiming,dtbtas | jeżeli flaga jest ustawiona kontynuuj odmierzanie czasu |
djnz | in_useοΙϊiimer,abbits | rozłącz, kiedy Mok czasowy dojdzie do 1,99 s |
clr | f muse(f0ftimmg | kasej flagę |
jb | porlłook,dibtts | ;jeżeii odwieszenie lokake i nie dokonuj |
synchronizacji z zewnętrznym taktem ;Wchodzimy tu, jeżeli druga strona dokonuje odłożenia słuchawki i nin odkładamy słuchawki z powrotem na widełki w ciągu 2 s.
dtskonnekt: setb | rremote_hup | ;ustaw takt zdatoy na 700 ms |
setb | loopswtSch_ | ;dmga strona odłączona |
call | wriic_px2 | |
dtbits: | ||
anl | a,#01110000b | ;sprawdź tylko btty dotyczące tonu wybierania |
jz | ringiinteoui | nie ma mian |
jb | adłonetring_timeout | ;lubjeżeirDT niejest włączony |
mov | ccapm1 ,#0 | ;wyłącz bieżący DT |
call | dtone | ;rnień na nowy ton wybierania |
rmo_timeout: | ||
jnb | kcall,update_done | ;nie odmierząi czasu dzwonienia jeśii nie ma połączenia wchodzącego |
inc | ring timer | ;co 71J ms |
mov | 17,^^3 | ;54 x 71,1 ms = 3,h4 s |
clr | c | ;kasuj przeniesienie odejmowaniem |
subb | arringtimer | |
jnc | ηρΟοΙορΙοηο | ijnżeli przynajmniej 3,84 s bez dzwonienia |
jb | flteltsoirnd,update_dorIe | ;czekaj również aio zamknięcia dzwonienia |
chnkk_stop_ring__s:
mov | L7#^3 | ;4 x 25 rns - 100 ms |
clr | c | gotów do odejmowania |
subb | a,bel_ iimei'2 | |
jnc | upOat done | jeśli przeniesienicy 100 ms |
jb | rmg_,check_stop_nul i | ;skocZi jeśii dzwonek ps już wyłączony |
setb | ring_ | ;w przeciwnym przypadku wyłącz teraz dzwonek ps |
call | wrttejtó | wyprowadź do portu |
clr noring call wrtte__x2 ;wyprowadź do portu sheckhSaoPhnull:
mov | a,#77 | h x 25 ms = 200 ms |
clr | c | gotowe do wykonania odejmowani i a |
subb | a.bell iimead | |
jnc | upłatetknie | jeżeli przemiesieniei 200 ms |
mov | ccapn22,#0 | zatrzymaj pani |
clr | twentyhhZh_wm | gozostaw wyjściowy pin w stanin niskim, pwm działało 10 ms dłużej od ps dzwonka, dla wygładzenia przebiegu |
clr | fcali | ;0 = nie ALERTi zapewnia niedzwonienie |
jnb | sw_gndstart,updaIe_done | sskocZi teli i sitatt pęlii |
setb | łoopswtSch_ | ;GS nie odpowiada na dzwonek |
178 631
call | wnee-PYZ |
gpdare done: | |
jb | kcall,no_jeset_io |
jnb | tc_,no_ąeset_io |
jb | ftohlimeouLno__'eąet jo |
no_reset_io: | |
pww | |
acc | |
ret |
.4:*****43****3*******:*:*:*3!3*****3*3*3*******’**43***434343*343******43 ^-^Ιζ^μ słowo porównawcze kontroli watchdog ?4:4:4c4:4:4:4:4c4:4:4:4:4:4:4:4:4:4:4:4(4:4(4:4(4:4:4:4:4:4:4:4:4(4:4(4:4(4:4:4:4:4c4:4:4:4:$4:4c4:4:4:4:4:
watehdog:
push clr mov mov pop ret | te ea ccαd41#0 kcap4h,c7 te | ;zzblokuę przerwania ;wskaż nz początek strony bieżąca strona |
4(4:4:4:4:4:4:4:4:4:4(4:4:4:4(4:4:4:4:4:4:4(4:4(4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4:4(4:4:4:4:4:4(4: |
;Podprogram obsługi przerwania odłożenia słuchawki Timer0(TI,O)
?4:4(4:4:4:4:4:4:4:4:4:4:4:4:4:4c4c4:4:4:4:4:4:4:4:4:4:4:4:4:4e4e4:4:4:4e4c4:4:4c4c4:4:4e4e4:4:4e4c4(4(4c4:4c 9 | ||
on7ook_rlmąr | ||
push | psw | |
push | acc | |
clr | tri | ;zatrzymaj blok czasowy zdjc'aia słuchawki |
clr | fl | ;skasuj związane przerwainia bloku czasowego zdeckia słuchawki |
mure_c7eck:jb mure,on_bdec2 | jjeżeli już wyciszony, zrzuć | |
setb | mute | ;w_vaiszanίe fonii rx w celu zapobieżenia fałszywemu dekodowaniu dzwonienia yonicdnągo jako dtmf, zapobiega również yonlcznąmu sprzężeniu zwrotnemu |
call | wdtjeJpx2 | ;w_prowadź do portu |
on_sdąc2: | ||
jnb | bd;je^^ ,on_dpec2__done | ;sprawdź flagę |
call | dpcc2 | ; wy wolej podprogram specjalny w sekcji TRU |
on_spec2_done:
Hucz | didpaay_deaay,gt_;ntj | ;w ciągu 711 ms |
call | updaje_didparys | ; co 71,1 ms |
gsimt: jb | kcalllCont_ąrrdko | ;prz_ nadejściu połączenia zrzute wychodzącą |
jnb | w_ gndrjrrt,tont_ąrrvteo | inlcjatldaaUc GS ^^zz j eel^l i nte tryb GS |
j'nb | Oonhookltcnt_ąrrvteo | ;nie czekaj na uziemienie dzwonka dla |
uruchomienia GS do rzączywittągo odłożenia słuchawki
178 631 jb sing etonuąi ,οοηί Łtonuą;srtet clr ioopewiech_ (zadlnniz obsługi startu przy uzizmizniu
call wniejx\2 mov gndstart_timer1,#0 mov gndsearehtimze2,#0 aont_groundeeart: inc gndsta]r:_ti^ei'1 mov rigndstart_timer1 cjne r,#90,cone_serviae inc gndserrt_tlmzr;2co 25 ms mov gnąstrrt_timzr1i#0 mov rigndstrethtimer2 cjne r,#40,cone szeviae sztb ioopewiiah_ | ;;ηιϊ(8ΐΐ;η( blok czasowy (abonent zwolnił zizmię dzwonka ;25 ms (90 x 277,8 μs) (reszt dla następnego odliczania 90 ;1 s (40 x 25 ms) (otwórz pętlę po sekundzie, jeżeli abonent niz zamknął pętli |
call wriee_px2 aon(_szevlcz:: jb faaiiiring_aonteol | (skocz, jeżeli stan ALERT dla generacji dzwonienia |
jmp onhookhtimers | (w przeciwnym przypadku tylko πι1<Π.ηϊη^^ΐ(| bloki czasowe |
(Uruchamiamy dzwonek, jeżzli TRU jest w sianiz ALERT (połączenie wchodzące asekr na
odebranie). ringcontrol: jb fbzlieound]timing_rine | (kiedy dzwonek nie dzwoni w cyklu dzwonienir] sprawdź zizmię dzwonienia, w czlu sygnalizacji odpowlzdzi na impulsy dzwonienia |
jb ring_ground_,timinghring | ((zżeli nie ma ziemi dzwonka, odmierz czas dzwonienia, następnie ignoruj impuls na ziemi dzwonienia, po ustaniu dzwonienia |
mov r,beii_iimze2 cjne a]#0,seaei_beilsound mov a,#28 clr c subb r,bellhiimze jnc timing_ring | (impulsy co 25 ms (skontroluj ziemię jisovonna po 25 ms (29 x 277,8 ps = 8,1 ms gotowość do odejmowania (brak przeniesienia do 8,1 mis po ustaniu dzwonienia zignoruj jedyniz zizmię dzwonienia po 8,1 ms |
jmp seari_bellsoπnd | (jeżeli ziemia dzwonienia wskazuje zdjęcie słuchawki w czasie ciszy, uruchom 20 Hz ponowniz w czlu wymuszenia ciągu dzwonienia |
timing ring: inc ΙζΗ^^^ mov a,bzll_timzr cjnz a,#90,ringzr_on mov (ζΙΠ^^^ inc bzll_timzr2 ringer-On: jnb lbzllsoπnd,einger_of? | (co 277,8 ps ;25 ms (90 x 277,8 pis) ^ε8€Π(ϊ na następne 90 ;co 25 ms ;skocZi jeżeli w tej chwili dzwonek nie dzwoni |
178 631 ;Czas włączenia dzwonka zmodyfikowany z 1,95 s na 1,975 s, ponieważ dzwonek zatrzymuje się przy impulsie dodatnim, który powoduje dzwonienie ciągłe. Ten problem wyniknął przy skrzynce z pięcioma dzwonkami, stosowanej z Mariack. (ssh) chspk_stop_bslltouad:
mov αibele_Simst2 cjne a,#5d,onho_k_timets mov a,bell_Simżf #0^^ upfyw czasu wlączenia dzwonka ;skoczj iżż(^li mniej, niz 79 x 25 mit := 19775 s ;45 x 277,8 μa = 12,5 ms Οροζηϊο 1,987 s) cCns a,#45,oahook_timsts stop_bslltound:
mov cpapm2i#0 clt Obellsound mov dptr,#Sablż_nule mov lowpointedpl mov highpoiat,dph mov ccapm2,#01000010b clr sa clt no_rmg call wtitżePx2 tżSb sa call watchdog Cmp fżtżt_bsll_Stmżft tingesifO':
mov ajbsle_Simżr ;d:wonek ΟζάΤιό po 1,987 pmy impulsie ujemnym, wycina ostatnią ćwiartkę cyklu w celu skorygowania ciągu dzwonienia
O_<rle0^iS^t pwm ;0 = dwonek nie dzwoni ;wskaż iabttęę tonu zerowego Stoli zerowy powoduje, że dzwonek ma zerową wyjściową składową zmienną, wyłącznie napięcie baterii ;zapnrmaicj początek ΙηΟΠρυ zero\żej lodblokuj pwm btok i czas o we pjaż a,# 120,onho_k_Simers ttart_bellsouad:
call teset_io call wtite_px1 call wtiSż_px2 clr sa setb no_ring call wfltż_pxf setb ea mov cpapm2,#0 mov dptf,#Sαblż_f0 mov lowpotnt,dpl mov highpoinS,dph mov cpapm2,#01000010b testtelaγ1:
setb Obellsound tiset bell_timers:
mov bell timet,#0 mov bell_Stmżr2,#0 oahookettmers:
inc Stmż_on1 ;4 s bzz dwomema 1160 x 2)) odblokuj pwm ;wska£ tablicę dla 270 Hz ^parniiętej początek tablccy odMoko, pwm ; 1 = dzwonek właśnie dzwoni ;co 27778, Ps , kiedy odwieszenie
178 631 mov a,tlme_on1 cins a,#36,—nho—k_done inc tims_on2 mov ttms_on1,#0 mov f,tlme_on2 cenea,#0,not_lnc255 inc test min not_inc255:
jp frohtlmsout,—nhook_dons ;36 x 22^^81 ps = 10 ms ;co 10 ms 1 kiedy odwieszenie pesej na rf_sd^f^;yje!l 36 ;10 ms x 255 = 255 s eest_fhfng1:
jb fonhook,onhook_done eeseJfhfng2:
mov flelme_kn2 ; ;STATUS ON-HOOK ; cjnea,#r0lOnhook_eone cjnea,#3rlOnhook_done eestJfhang3:
setb fhang clr f_inuseo0f^tmtng ;zrzuć informacje dotyczące odwieszenia aż do pozytywnego wyniku testu ;rtie ι^<^1<ο;^ιι1 nowego odwieszenia1teżeli jedno zostało dokonane ;700 mt wskazuje na odwieszenie ;700 ms wskazuje na odwieszenie ;ustaw flagę -.uW,κ_^z^^^^na^ ;zatrrymą1 blok czasowy w ceUu zapobieżenia ewentualnemu taktowaniu zdalnemu onhook_done: po acc pop psw reti ? .
;Podptkgtfm obsługi przerwania - zdjęcia słuchawki z widełek Tlmer1 (TH0) ?
offhork_tlmer:
puth ptw sam wyjściowy push acc jn; ftpec2,checkJSttobe .kocą Seżei 1 spec 2 nie odblokowany call tpec2 w Jtz'zeciwnym przypadku wykonuj specjalne zadanie TRU
Sprawdzenie obecności cyfry DTMF, i odczytanie jej z MT8870, jeżeli jest tam dostępna.
ζΗοζ1_ strobe:
call tead_px/_tetobe jb sttobe,decode_dtm0 clr fdecoder_busy jmp ttime decodeJdtm0:
jb fdecodet_buty,ttime ;skocz, jrzel i ocznkujs tyesa DTMF ;resetuj, jeżelr naduzedł strob ;i po prostu wykonu- zudanik odmierzania czasu zdjęcia słuchawki ;skocz, jeżeli odczytano 1uż cyfrę DTMF
178 631
call rzadjpx1 | (w przeciwnym przypacilni odczytaj ją teraz |
sztb fdem0ln sztb Udzcoder_busy | i 1 = odebrano cyfrę DTMF! i 1 = cyira DTMF w przetwarzaniu |
(Sprawdzenie upływu czasu zdjęcia z wldełzk, uaktualnianie wyświetlaczy co 70 ms i rozpo częciz-zakończeniz w razie potrzeby ionn ROH
ttime: inc timz_oU01 | (impuls młodszego bloku czasowego zdjęcia słuchawki (@277,8 μ s) |
mov a,timz ofU1 (JMP TEST_HOOK cjne r,#0,t_onz_sea inc eimz_oUU2 | (pobierz młodszy czas zdjęcia słuchawki (skocZj jeżeli < 256 x 277 μs = 711 ms (impuls młodszego bloku czasowego (co 71,1 ms) |
caU update_dleplrys | (ualeΠlalnlaj co 711 ms |
mov a,tlme_off2 cjnz a,#0,t_onz_sea inc eime_ofl3 | (pobierz główmy czas odwieszenia (skocZj jjeżeli < 256x 711 ms = 18,2 s (impuls łączny bloku czasowego podniesienia słuchawki (@18,2 s) |
t_one_sea: mov a,ilme_off2 cjne a]#14,trohtimee | (pobierz główny czas podniesienia (skocZj jeżeli minęło < 14 x 711 ms = 995 ms |
setb U_one_sec | ;tak że zmiana olampki INUSE nie może spowodować odwizszznia, jeżeli słuchawka zdjęta z widełek zbyt późno po odwieszeniu |
irohtimzr: (b Usend,idone | (skocZj jeżeli rozpoczynamy rozmowę (bzz ROH) |
jnb Ιη^ζ^ηζ | (skocz, jeżeli jesteśmy w stanie INUJSE (równlzŻ bez ROH) |
inc r5 | (impuls młodszego zegara ;^taI'Πl/l^0Irt^a ROH |
cjuz e5,#36,eeohsiaei inc r7 | (skocz, jeżeli minęło < 35 x s = 10 ms (impuls młodszego bloku czasowego włączznla/wyłąazenia ROH |
mov r5,#0 cjne e7,#10.ieoheiaei cplroh_on | ;reset do następnego przejśda (10 ms) (skocZj jeżeli minęło <10 x 10 ms=100ms (naprzemienne \vl gezami e/0vyhcczanie rOh co 100 ms |
mov r7,#0 | resct do ηίΚ8υ^{ηζ<^^ϊ iazy włączanlr/wyłączrnlr |
trohstart: mov a,time_o0U3 | ;podej ogólny upływ czasu zdjęcia z widełek |
cjnz a,#2,erohquie mov ritime_off2 cjne a,#51 ieeohquie | skocZj jeżeli minęto < 2 x 18,2 = 36,3 s (pobierz również c0ąain^ooey czas główny sskocZj jeżeli ąączniie < 40 ms zdjęda z wldełzk |
sztb Uiime ieohquii: | i 1 =] rozpoczął sęę o krre s ROH |
178 631
Ι.ϋζ:
mov a,sime_off3 | ;pobierz znowu ogólny upfyw czasu zdjęcia z widełzk |
aeaz ,#5ltdoaz | ;skocZ; jeżdż mmęto < 5 x 18,2 = 9; s |
mov a,iime off2 | ;pobierz również dodatkowy czas główny |
cjne a,#127ltaoae | lskocZireżei; < 91+1127 x 711 ms; = 10)0 s |
setb frohtimeout | ; 1 = upłynął okres ROH |
jnb 3_siarS,tdoae0 | ;skocZ; reżeb brak taktowania 500 ms po pierwszym |
mov a,sime_o332 | ;pobicrz upfyw czasu zdjęcia z wtdeżek |
cjne ι^^^ζΙ | ;skocZ; jeżeb ιφΙνηςΊο < 285 ms |
ccne 8,#7,Μοηε1 | ;skocZ; jeżeb uplynęio < 500 ms |
clr ^starS | ;odblokoaywaine po 500 ms ρΓζεΐϋηΰε odłożenia |
;Wzjdź tu dopiero po upływie 500 ms przy pierwszym zdjęciu z widełek po każdym odwieszeniu. laonzC):
JiI lc_lSdone1 lesklO:
clr tri setb tr0 tdonzl:
pop acc pop psw reti ;skocZ; jeżeiź występuje obecnie stan zdjęcia z widzłek ;w przeciwnym prz-zypadkt; zaiz'zymei blok czasowy zdjęcia z widełek i; uruchom 14<] czasowy oaiw'ieszenla ;odiwvóz
Podprogram obsługi przerwania zewnętrznego Extemal Interrupt 0 offhookedge:
jb frohtimeout,offhookreturnl jnb fcall,not_inc_call jnb no_ring,ok_wait setb ring_ call write_px2 clr no_ring call write_px2 setb retum_ring clr ieO clr trO clr tfO ;wyłącz dzwonek ;zrzuć przerwanie związane EX0(LC ) ;wylącz onhook_timer i flagę ;w przypadku związanego przerwania bloku onhook_timer ok_wait: mov r7,#0ffh loop_ring:
mov r6,#0ffh
178 631
djnz | r6,$ |
call | watchdog |
ι;ιζ | r7.no eit |
esla set: | |
jnl | seSuηt_ring,do_not_seηtm |
call | ^^s^__1o |
call | write_p)x1 |
call | wihe_px2 |
zelb | norneg |
clr | ring_ |
call | |
clr | nimm ηκτ |
mov | U^Offli |
looprineł: | |
mov | 66,#00Ώι |
ι;;ζ | r6,$ |
call | waichdog |
djnz | Ukoop-ringl |
crll | ^^ϊ<ι__1ο |
call | wriSe_J)xl |
crll | wriSe_px2 |
zelb | rrt) |
mov | t;o,#o |
reli | |
οΟΟ-οοΕ felure1: | |
jmP | oOd^<^<^l__^^^^ni |
no_zel: | |
nof inc call: | |
clr | roO |
clr | jor |
push | pww |
push | acc |
clr | ϊε0 |
zelb | rrl |
clr | ibang |
mov | Λ0,#0 |
mov | ύιηεοΓΠ #00 |
mov | time_oU2,#0 |
mov | time-OfOj/OO |
clr | ι-πιΑ |
call | wrEe-p^d |
U1 | Γonlon>taC^^eckofazsC |
clr | ιrorClook |
ok_nffhook: | |
P1 | fcansetjiookoflag |
zelb | fanswer |
;wyłącz dzwonek ;wyłącz blok /^ι-^οοΙΊ^ϊπιζ^γ i ilagę wyłącz blok onbooktimer i flagę ;w przypadku. kiedy przerwanie onCookslimef jesl oawiszonns ;zrzuić zawieszone przerwanie EX0(LC_) turmchom blok czatsowy zdjęcia słuchawki ;kasuj flagę odwieszenia dla bezpieczeństwa blok czatsowy zdjęcia słuchawki ;bloki czasowe inkrementowane p^i^zrcz przerwania lh0 ;usuń śetszeme fonii x ;skocz. jeśii me na powrót było odwieszenia po zdjęciu kasni iLigę. byio odwieszenie Ιππο.
skocz. nee w stanśe ALERT ;1 (zdjęcie z widełek podczas połączenia
178 631 nadchodzącego
clr | fcall | ;kauuj flag) AIEdTI' todpow_cddi na |
setb | ring_ | dołączenie) wyłącz dwoonek |
czll | write_p.x2 | |
clr | no_ring | |
czll | W'τite_dx2 | |
mov | ccadm2,#0 | ZdzzeiwYj; dzwΌnienie pwm |
klear_twent__hz_pwm | pozostaw pin wyjściowy w sranią niskim | |
.W | off7ook_done | |
set_hooa_flzg | ||
ϋΛ | fhiook | ;sygnalżguO z widejekj jepii me |
W | offliookdone | stan ALERT |
ΕκΑ flash: | ||
mov | a,# 19 | ;20 x10 = 200 ms |
clr | c | ;kauuj pdzen_ed_en_e do odejmowania |
subb | time_on2 | ΙΟΟΥΟΟ ms Sianowi t^^hh |
jnc | checkdigit | |
jnb | loaa,oyfhooa_done | bez l^^ili . jząpi i TRU z^^tιka^iw^^ajc |
setb | ;usiaw liagę tZaih | |
t)tf7oc^a done | ||
checa_diglt: | ||
mov | a,#1 | ;2x 10 = 20ms |
clr | c | ;kauuj pdzen_es_en_e do odeimowzniia |
subb | time_on2 | ;20-200 ms Sianowi impuks |
jnc | offhook_done | tyłko zJdóceme |
inc | pułsecligit | zzaw_era numer |
ϋΛ | fdigit | ;usiaw Hagę ewenUzannej ieyfiyΛ |
off7ook_doną: | ||
mov | time_on1,#0 | -reseO taoków czasowych odw_eszenZa, |
mov | time on2,#0 | tak aby mogły one być uruchomione przy odwieszeniu |
mov | t10,#0 | |
p^ | acc | |
p^ | psw |
oyfhook_retgrn:
reti ^Podprogram przerwań PCA ’444444444444444444444444444444444444444444444444444444 ;Przerwania PCA generowane są z wykorzystaniem opcji komparakyjnyk7/dodasowująkyk7 modułu zerowego (programowego bloku czasowego) przy każdej zgodności dolnej części liczby z FF. W ten sposób możemy generować przerwanie na końcu każdej strony, 00Γ-0100,01-0200 itp., co daje nam przerwanie co (256*1,085 ps) 278 μ s.
;Niniejsza imdlemąntakja Masjac-k do wytworzenia zmodyfikowanego programu obsługowego PCA dla bloków TRU o bardzo dużych prędkościach przekazywania danych wykorzystuje ζ^^^ζ. warunkową (Audiovox wymaga zmienionego podprogramu PCA).
$ge dca_sątvlce:
178 631 %i0%intmask ne 0) thnn ( push in ;pznejście do 5γπιιύΗΐϊ i poziomu _rtptyantów przerwań
mov | in,#%intmask | ;oitreślony w sekeji TRU |
call | masklabel | w t^eht wykonania neii |
push | acc | |
push | psw | |
mov | a,csa_π1 | sszukaj pwn tonowego |
orl | sszukaj pwnn d^oniema | |
anl | a,#00000010b | ;vyyrzukeJ tylko Μι pm |
jz | pca donn | izzzlć nasjępnączęśe, jeżei i na wyjścm nin ma tonu ani dzwoninnia |
dOh_ca: | ||
nov | a,#0 | ;rmetatiuuj waka:źiik |
readtaWe: | ||
movn | a.@a+dptr | gobiera daną z ^^licy |
cjni | a,#255 ,wri teptone | |
nov | dphdiighpoint | Τΐε^ο wkkaźrnk, ojteti koniec tabUcc |
nov | dpljowpoint | |
mov | a,#0 | jak więc wakaźnik będzie pra\vidło\cy |
jmp | reaal (abln | ;odczytaJ pierwsza, poyeję |
wrianhapne: | ||
nov | nap H^a | ;wstaw daną w tonowi' pwnn |
mov | cca_2h,,a | ;wstaw daną w pwrn dzwonienia - tylko pwm tonowe lub pwm dzwoninnia działają w każdym zadanym czasie |
inc | alpt^r | ;wskaż następną pozycję' tablicy z następnym czasim |
pca donn: | ||
clr | cd | ^ηβΐ) flogę moduto 0 |
clr | ea | ibobloUuj przrπbźnia |
mov | ccapp0I,#0fhi | zładuj ponownie dolną część porównywaną i zawieś komparator |
nov | a,ccap0h | ;przejdź na ostatnią stronę' |
inc | a | ;wakżę neajępną tt^^nę |
mov | ccap0h,a | iautaUuj górną ηγηΐ dniea oip porównama i ponownin uruchom komparator |
sntb | ea | ;c^albll o^tli na now-Ό przerwania |
pop | psw | |
acc | ||
pop | ni | lodtwórz rrnrr\aźnia |
ret | ||
maskla0nl: | ||
reti | ||
)nlse( | ||
push | acc | |
push | psw | ;rzkbaj ρνπη topowooo |
mov | accapmi | |
orl | alCc_pm2 | trzkbaj [wim dρwźmźnta |
anl | a,#0000001 Ob | ;werukbaj Λνϋο bit wnn |
jz | pca_done | irzzuć besj_źnąrneśćjtżnei n aa wejścm |
nie ma tonu ani dzwonienia
178 631 ;Jeżżlt w danym momencie generujemy ton wybierania - Dtal Tone, to należy pobrać wartość bieżącą z tablicy wybranego tonu i przesłać ją do PCA1, tak aby w CEX1 (p1.4) była generowana właściwa częstotliwość DTMF.
do_pca:
mov | a,#0 | ;inicCatr;sjj wskaźnik |
readtabls: | ||
movs | a,@a+dptr | ipobisrz, daną z tablicy |
cjne | a,#255,wriie_tone | |
mov | dph5icighpoint | ;rsseUcj wskaźnik, to jest koniec tablicy |
mov | dpńo-wpomt | |
mov | a,#0 | ;tak więc wskaźnik będzie prawidłowy |
jmp | πί__ table | ;_dprytaj pierwszą pozycję |
write_tons: | ||
mov | ccapih,a | ;wstaw daną w tonowe pwm |
mov | ccap2h,a | ;wstaw daną w pwm dzwonienia - tylko pwm Sonowi lub pwm dzwonienia działają w każdym zadanym czasie |
inc | dptr | ;wskaż następną pozycję tabUcy z następnym czasem |
pca Dons: | ||
clr | ccfij | rsseijj flagę, modułu 0 |
clt | ea | zablokuj przerwania |
mov | ccappOl,#OOfli | ;załaduj ponownie dolną część porównywaną i zawieś komparator |
mov | a,ccapOh | ;przejdź na ostatnią stronę |
inc | a | ;wskaż następną stronę |
mov | ccnpOhat | zładuj górną część d^ntej do porównania i ponownie uruchom komparator |
setb | ea | ;odbloku' na nowo przerwania |
pop | psw | |
pop | acc | |
teti | ||
)Oi | ||
$nogż | ||
.*********************************************************** |
;Podproątamz pomocnicze I/O
3 3 | ||
wriSżepx1: | ;Dana z px1_temp do pxl | |
push | te | ;zt^paniętaj stan przerwań |
clt | ea | ;brak przerwań |
clr | ÓG-Sclect | |
push | acc | |
push | 0 | jpush r0 |
setb | aO | B |
clt | a1 | |
mov | a,px1 temp | |
anl | a,#11110000b | |
mov | b,n |
178 631
mrv | temp | |
anl | a,#00001111b | ;Zat.rzymaj wyższe bity wejściowe |
orl | a,b | |
mov | r0,#00h | ^ο^γ adrses do zatrzasku px1 |
mrvx | @rO,a | układu IiO |
setb | aO | |
setł | a1 | |
p—p | (1 | ;odtwórz r0 |
pop | ^cc | |
pop | ie | ;odtwórz stan przerwań |
rst | ||
;όκ1_ρχ1: | ||
puth | te | ;zapamidtaj stan przerwań |
clr | ea | lb;rik przerwań |
clr | (osetect | |
puth | ^cc | |
puth | (1 | push r0 |
clr | aO | ;A |
clr | al | |
mov | r0,#0h | ;dolny ndras do zatrzasku px1 scalonego |
movx | a,@rO | układu IiO |
anl | a,#00001111b | ;mfskuj bity wyjściowe |
anl | px/_Senpr,# 11 HOOOOb | ;mnskuj bity wejściowa w px1 temp |
orl | pxl_Semp,a | połącz funkżeą anl dane watśeiżwa |
tetb | aO | i wyjściowe w jeden bajt |
setb | al | |
non | 0 | pop r0 |
pop | acc | |
pop | 11 | ;odtwórz stan przerwań |
rst tdadJnxl strobd:
puth | t1 | ;zanamidtaj stan przerwań |
clr | ta | ;brak przerwań |
żlr | (o_sśtcet | |
push | ccc | |
push | 0 | mush r0 |
clr | a0 | ;A |
clr | al | |
mov | (0,#0h | ;dolny adres do zatrzasku px 1 scalonego układu IiO |
movx | ||
mov | (o_etet_s,a | |
setb | (0 | |
tetb | al | |
pop | 0 | pop r0 |
pop | ccc | |
non | ie | odtwórz stan przerwań |
178 631
ret | ||
wrire_dx2: | ;Dana z dx2_temp do px2 | |
push | ie | ^pamięiej stan przerwań |
clr | ea | brak przerwań |
clr | żo | |
push | acc | |
push | 0 | ;push -0) |
setb | aO | ;B |
clr | a1 | |
mov | a,px1 temp | |
ant | a,#11110000b | |
mov | b,a | |
mov | a,px2 eemp | |
ant | a,#0000111 lb | Zatrzymaj wyższe bity wejściowe |
orl | ab | |
mov | rO,#OOh | ;dolny ικήο s do zzUt/zasku pxl scalonego układu I/O |
movx | @rO,a | |
setb | aO | |
setb | a1 | |
pop | 0 | ;odtwórz -0) |
pop | acc | |
pop | te | odtwórz stan przerwań |
ret | ||
wtltą_lo_k: | ;Dzniz z px2_temp do px2 | |
push | te | ;zzpamiętuj sinn r^ret^w^zziń |
clr | ea | ; brak przerwań |
clr | te-Setect | |
push | acc | |
push | 0 | ;push r0 |
clr | aO | ;B |
«tb | a1 | |
mov | apiamps eemp | |
ant | a#11 11 lOOOOb | |
rl | a | |
rt | a | |
rl | a | |
tl | a | |
mov | rO,#OOh | dolny adres do zatrzasku px 1 scalonego układu I/O |
movx | @00,a | |
setb | aO | |
setb | a1 | |
pop | 0 | odtwórz r0 |
pop | acc | |
pop | te | odtwórz stan przeiwzzί |
ret | ||
-0711^2: | ||
push | _z | zapamiętaj stan przerzzziri |
178 631
clr clr | ea io_seiect | broi pz'zira\var] |
push | acc | |
push | 0 | ;push rO |
clr | a0 | C |
setb | al | |
mov | r0,#0h | ;dolny adres do zatrzasku ρχΐ scatonego |
movx | a,@r0 | układu I/O |
anl | a,#11110000b | ;maskąf bity wyjcdowie |
anl | px2_temp,#0000111 lb | ;maskąf bily w^^^^cK^w^e w px 1 żemp |
orl | px2_temp,a | ;ροΕρζ funkcja an ; ;Ηζζ wcjjśaowc |
seib | aO | i wzjeaiowz w jedza baji |
szib | al | |
pop | 0 | ;pop rO |
pop | acc | |
pop | ie | ^ίχνό^ ϊΙοι; pzzenvań |
rzi read_io_m_a: | ;dana z px2_żemp do px2 | |
push | ie | ;zr.lpamięta; ρ^οΐΆ-νοτι |
clr | ea | ;brak przea\vań |
szib | toseiect | |
; push | acc | |
push | 0 | ;push rO |
clr | aO | ;b. |
clr | al | |
mov | rO,#Oh | ;doiny adres .o; zafrzasku p.x 1 χο^οηορο |
movx | a, @ΐ'Ο | układu I/O |
szib | aO | |
szib | al | |
clr | ίο seiect | |
0 | oaSwórz '0 | |
; pop | acc | |
PoP | to | ;odwóz; saan pzzerwaii |
rzi writz_io_m_b | ;Dana z pxl_żemp do px1 | |
push | to | zrapamiętąf san pzzeiwaii |
szib | ||
clr | ea | ;brak pzziri-wati |
push | acc | |
push | 0 | ;push '0 |
seib | aO | 3 |
clr | al | |
mov | ago c_ b | |
mov | r0,#00h | d^ol^y adrdf do zsfrzasku px1 scalonego |
movx | @'0,a | układu I/O |
szII | aO | |
szII | al | |
clr | to nicst |
178 631
POP POP pop ret | 0 cccc to | Odtwórz rO Odlwóz skin przerwań | |
wrile | _iOsm_h: | ;Dana z px2temp do [x;^2 | |
push | ie | ;zapamięrej stan ;x^z^t^^w^rπί | |
selb | K__s^^^ct | ||
clr | ea | brak przerwań | |
push | acc | ||
push | 0 | ;push i'O | |
clr | aO | B | |
zelb | a1 | ||
mov | a,lo m c | ||
mov | rO#^(^0^h | ; dOJny adses dhi zatrzasku px1 scalonego układu I/O | |
movx | @O0,a | ||
zelb | aO | ||
zelb | a1 | ||
clr | lo sieS^ict | ||
POP | oa | odtwórz rO | |
Pop | acc | ||
pop | to | ;odtwórz stan przerwań | |
rei | |||
resela | io_m: | ||
push | to | ;zapamiętąt stnn przewwań | |
clr | ea | ; brak przerwań | |
zelb | lo Si^t^iCt | ||
push | acc | ||
puzh | 0 | ;push rO | |
zelb | aO | Sterowanie | |
selb | al | ||
mov | rOhOh | ;dolny adres dhi zatrzasku px2 scalonego układu I/O | |
mov | aklOOlOOOOb | ||
movx | @oO,a | ||
zelb | aO | ||
zelb | a1 | ||
clr | lo seiect | ||
POP | 0 | ;pop rO | |
Pop | acc | ||
POP | to | Odtwórz sani pazerwan | |
ret | |||
rezel_ | io: | ||
puzh | ie | ;zapami<lrea stan przerwań | |
clr | ea | ;brak przewvań | |
zelb | lo_suitot | ||
puzh | tcc | ||
push | 0 | ;push rO |
178 631
szib seib | aO a1 | ^Ιεκ^ίηπε |
mov | r0,#0h | (doby adres do zarrzasku px2 scaontego układu I/O |
mov | ay# 100 llOOOb | |
movx | @Γθ! | |
seib | a0 | |
setb | a1 | |
clr | io select | |
pop | 0 | ;pop r0 |
pop | acc | |
pop | ie | (odtwórz stan przerwań |
rzt |
(Podprogramy pomocnicze (Dla pomocy przy uruchamianiu programu można zapisać ogólne komunikaty wymieniane między TRU i CzUicS. Bufor tych komunikatów zajmuje lokacje od 90h do FFh.
alr_mee:
pnsh 1 mov r1i#msbuf_seaei mov mseJptr]t1 dlmsg1 mov @r1,#55h luc r1 cjne e1,#msgbu0_end,de_meg3 pop 1 rei savzmg:
push 1 mov r1 imseJptr cjne e1i#megbuf_end.(savem3 mov r1i#meebu0_seart savem1: mov @γ1,ι inc r1 mov msgptr.r1 pop 1 exii: rzi ;ζηρίΐπιίςΡ(ί Rl (wskaźnik na początek buftraa komunikatów ;zrIpanlielaj początleS] bobra (wypelny ulleskąo wart ości ach 55h W^^lc^ż nastypną ookaeję ;do końca buoora ;οόΐ\νόΐ'ζ R1 (ζηραιηίςηιί R1 (pobiera bieżący v^a^l^aź^^nk<
sskoczj, jeśii bufor komunikatów rUi j ess jeszcze zapełniony pr^^^sk^w począęiekj jżżel i zapermony ;zapamięlaj komunika] w t^ufir^^e (pzzesuń wskaźnik do praodu ;zapami^lai pszesunięty do naeiępnego wykorzystania ;odWvóra R1 (Kasuj kopię wskaźnika LCD mikrotelefonu w buforze RAM wyświetlacza.
de_dep:
push 1
Izapamierej Rl
178 631 mov r1 ,#dspbuf_ttαrt mov dsp_ptr,r1 clefmsg1:
mov @r1,#0Ofh inc t1 cjni r1j#dspbuf_ead,clredsp1 pop 1 tst ;Ntektóre bloki TRU muszą przechowywać w lokalnym buforze wyświs+lacza.
savs_dtp:
push 1 mov fl.dspptf cjni r1,#dspbuf_żnd,save_dsp1 mov t1,#dspbuf_start savsdsp1:
mov @f1,a iap f1 mov dsp_ptr,r1 pop 1 savs_dsp2:
;tncluds(SPAIN.atmS ret $nolltt $includż(SPAIN4.asm) $lisS nop nop end;
wskaźnik na początek bufora komunikatów zupami ρΙο, początek bufora ;wyφernjj maską o wartościach FFh ;wsiaż następną tokaję ;do końca bufora odtwórz R1 informacji wyświetlacza LCD mikrotelefonu :zapamiętcj R1 ;r^otiisr^z. bieżący wskaźnik ;skocz, jeśti bufor komunikatów nie jest jeszcze zapełniony przestaw początek , j eżeli zapełmony ;rztl·p^amł^aij komunikat w ;przs'suń wskaźnik do przodu ;ζι1:Ιιιι1ιρ wskaźnik do łα.fsłgr^ne^o wykorzystania ;odlwórz R1
ZDALNE MELDOWANIE TELEKONSERWACYJNE m_make_pall: zestaw połączenie do meldowania m make call:
mov r0,#posatet1 mov @R0#03h mov @r0,#03h mov a,@R0 an1 a,#01111111b mov @R0,a incKjj^i^^^cja hczncika ;na 3 ;kasaj bctj nlezakończema poho pzenta mi who tavoke:
mov R0,#call_back2
a.RO mov ;sptawdzentż, kto wywołuje test sprawdzenie, czy iesj jest οήΜοkowany dla tej opcji
178 631 anl a,#01100000b mov r1),#pptions cjnn tlJK)000001)1)bnnr_test_marutal jmp mr_rnsnt_iźvokna mrhtesahmanub:
cjnn 110')0000,,n1 il t<^tίhbU.ito jmp mrauto-imoked mrhaesahauto:
cjne a,#01100000b.mrmtłnut^lynwOknai jmp mr_teleinvoked mr tesetrirrvoaed:
jmp mr_who_invoke_nnd mr manuał invoknd:
;reset X00X XXXX ;auto (blok czasowy) X01X XXXX ręczn^W XXXX Telekontrola - X11X XXXX
mov | a,@rO |
anl | a,#0000001 Ob |
jnz | πrhWhOhiźvokeheźd |
jmp | m_call__test_end |
jnp | mr_who_mvoke_end |
;ołdbakołρmy mr auto iźvpked:
jb error flagi mrautojnyokedcont jmp msbllltesterld mr auto invoked cont:
nov | a,@r0 | |
anl | a,#000000lb | |
jnz | mr_who_invoke_end | ;oddiakowany |
jnp | nr_who_invoke_end | ;odblokołwanY |
jmp | m_cal__test_end | |
jmp | mov_who_envoke_end |
mrhtelnhinvoked:
nov | a,@rt) | |
anl | a,#00000001b | |
jnz | mr_who_rnvoke_inad | ;odbiokowabry |
jmp | m-Caltylestyend |
mrhWhOhinvoke_end: mhkhnsah_owet:
178 631
w | powdrJmJżheck_serv'c m_call_test_end | ltprfwesdnid sasilaczf części radiowej |
m chsck servc: | ||
jb | noserv,m żalling | Sprawdzenie obsługi |
mov | R0,#call_back2 | Ożywany w opcji połączenia zwrotnego |
mov | a,@R0 | |
orl | a,# 10010 OOOb | |
mov | @R01 a | |
jmP | m_call_test_end | |
m żHine: | Strawdzzmn, ccy test prneswany przez przesunięcie PCR | |
jb | tdst_dnable, $+6 | |
ljmP | ||
call | datos radio | |
mov | a,#2 | |
call | delay2 | Opóźnienie 1 t |
get TMCphone_Numbdr: | S_nrwduznre, czy test 1»ο_.1 przerwany przdz przdtuniężie PCR | |
jb | test_dnable1 $+6 | |
W | m call test end | |
mov | r2,#0 | |
mov | rl,#calirng_num | |
mov | a,@rl | |
swap | a | |
anl | a, #0000111 lb | |
mov | t1, a | |
żall | żhsck_tel_number | |
cjne | ιι.#00Ωο m_calling_com | ;dodano dn. 94.10.12 w żelu sprawdzenia nfttdpnsgo dostępnego nmetu esldfoniżzndeo, po sewisrezdnlu nieważności numeru ośrodka telskontswacyj nago |
call | watżhdog | |
mov | a,#1 | —późnienie 2,5 s |
call | delay2 |
Liczniki ponfwlfnlf pierwszego rdsetu mov r0.żallback2 mov a@r0) anl ^,//11100(^(^(^,1 oczyść lienniilifall_bae22 mov r(),#attempt mov a,@rO swap a anl a,#00001111 b pobierz nowe wartośc1 liczników can badcZ mov rO,# caliingnum mov a.@i'O
178 631
zwap | a |
inc | a |
swap | a |
mov | @rO,a |
ani | a,#OfOh |
cjne | ι,#70Ε, gelsTMCspConesNumbef |
Osiągnięto ostatni numer lelefoeu, nie będzie więcej realtznwaeyhh pozycji Uzlaw wzayzlkie flagi na powrót w stanie normalnym i wyjdź
mov | R0,#taii_back2 | |
mov | a,@R0 | |
anl | η,#01Π 111 lb | |
mov | @]d,a | |
call | reset_clock | |
tir | test_pending | |
W | m_prs’onhook | W^jj^^^ z podprogramu |
msCalltne_hom:
jb jmP | apl,m_sending mcalltestend | |
m_sending: | ||
mov | a,#send | |
call | wTbus | |
mov | ||
mloopd8s: | ;sprawdzenie, tzy lezl zoslał przerwany przez | |
ίΐ | ts'st_enabie, $·+6 | przesunięcie PCR |
bmp | m call test end | |
mov | a,#1 | |
tall | ||
djnz | r0,mloopd8s | |
m_talled: | ||
mov | r0).>#coslnt200 | iIniejaiżzaeja iicznika dta impulsów 200 ms |
mov | @r0,#09 | |
mov | Γθ,#^οιιηΐ60(1 | lIniejaiZzaeja iicmika dta impulsów 200 ms |
mov | @r0,#03 | ;z resztą 600 ms |
mov | rO,#coun__eng | ;inicjalizacja licznika dla zajęcia trasy |
mov | @rO,#coun__fone | ;resel licznika tonu RingBatk |
mov | @ο,#οο | |
mov | Τ11_Τϊπζε,,#0 | ;resel bloku czasowego T1 (1 Os) |
tir | mute | odblokowanie sygnału fonii |
call | write_lo_b | ;**** ,px2 |
mov | time_10ma,#0 | ;uslawienie liczników na oczekiwanie 1 min. |
mov | Οιηο_ 10πζ,,#0 | |
mov | iime ls,#59 |
178 631
mov | ima^_lm#^l | |
mov | iime_lhr,#l | ;czas skuteczny db zapobeeżenia wyłączenia bloku czasowego |
mcheckinuse: | ||
jnb | i n 1.^0.0^-425 veo | jjeżeii ne dziaiame , to |
m_to_425_ver: | wvykrvoo ton __425 | |
mov | eO,#max cciicc | iiniejuj do sprawdzenia czas maksymanty |
mov | ||
mov | eO,yiitjes | iinKujiuj do sprawdzenia czas maksymanty |
mov | @0θ,#00100001 b | |
mov | io_sn_n,#00 0 OOOOb | ;ustaw maskę db sygnato ; Sprawdzenie przerwania zz pomocą przełącznika ręcznego |
Ub | jert_enab_r,$+6 | |
|jmp | mcannndd | Sprawdzenie bloku czasowego T1 |
call | Check_T __ΤΪΓη-Γ | |
jnc | con__ver | |
jmp | mcaflend | ;PrzenvUj oobdzenie. diok csasoww Tl zakończył |
;Sprawdź górny czas sygnału |
czll verif__ ;w_woiame podprogramu sprawdzającego wyłączenie czasu sprawdzenie, czy test został przerwany przez drzebunięklą PCR
jb | ||
W | m_calt_and2 | |
clr | c | |
subb | ^#122 | **** 14 spadek 224 db - > 150 ms |
Uc | 1-0111^301 | ;niewiżmy; jeżeH zzsos w4ccąania <0,100 |
mov | a,b | |
clr | c | |
subb | a,#27 | **** S) spadek-O db-> 250 ms |
jc | ο__ι^1_&^]__(__^^(^0 | jjeżeii 0,150 <o czcts włączenia <o 0,2550 sprawdź czas wyłączenia |
mov | a,b | |
clr | c | |
subb | a,#B8 | ;**** j40 ;czas rnewżżny eżepii 0,900 < czas |
włączenia < 1,4 s jc mcheoknng b jmp iimmg m_cheak_ring_b:
mov | r,b | |
clr | c | |
subb | a,#6 62 | **** ;17O jeżeelilł |
jc | m_7hcak_yf__3 s | ssprawdź aa dew(iniani e wrrtnee |
jmp | m_bad_timmg |
178 631 m_check_off_200:
mov | rO,#filter | (inicjalizacja do sprawdzenia czasu maksymalnego |
mov | @r0,#11100001b | |
mov | io_m_a,# 11100001 b | ;ustaw maskę sygnału |
call | verify_off | (wywołanie podprogramu weryfikacji wyłączenia czasu (sprawdzenie, czy test został przerwany przez przesunięcie PCR |
jb | test_enable,$+6 | |
ljmp | m_call_end2 | |
clr | c | |
subb | a,# 15 | |
jc | m_bad_timing | (nieważny, jeżeli czas włączenia <0,150 |
mov | a,b | |
clr | c | |
subb | a,#30 | ·**** .95 9 9·^»^ |
jc | m_t_200_ok | (jeżeli 0,150 < czas włączenia < 0,250 |
mov | a,b | |
clr | c | |
subb | a,#50 | |
jc | m_bad_timing | (nieważny, jeżeli 0,250<czas wyłączenia<0,500 |
mov | a,b | |
clr | c | |
subb | a,#75 | |
jmp | m_bad_timing | (nieważny, jeżeli 0,500<czas wyłączenia<0,700 |
jc | m_check_off_3 s | (sprawdź na dzwonienie zwrotne |
mbadtiming:
mov | r0,#count200 | (ustawienie na powrót count200=6 |
mov | @r0,#9 | |
mov | r0,#count200 | (ustawienie na powrót count600=3 |
m_nnt_yyet: | ||
call | check_dtmf4 | |
jnc | m_nnt_yet | |
jmp | m_patch_engaged_detected | |
m_rmt_yyet: | ||
cali | read io m a | (sprawdzenie tonu 400, 800 lub 1020 |
anl | a,#10000000b | |
cjne | a,#10000000b, m_tone_ver | (jeżeli równe m_tone_ver |
m_nnnt_yet:
call ext_watchdog jmp m_not_yet m tonę ver:
178 631 m_tone_ver m_S_6rr_ok:
mov mov clr subb jac jmp | r0#/corint200 a,@r0 c a,#6 m_t_600 cad ιτι_1π;1 timing | ;rese; count200=6 |
m_S_6r0_cad: | ||
mov | @an#/9 | |
mov | r0,#count600 | ;ton ζ^ίοέεϊ; jeżeb count200=0 |
mov | a,@r0 | |
dzc | a | |
mov | @r0,a | |
jaz | m_ant_yet | |
jmp | m_fonaest_fk | |
m_i_200_cad: | ||
mov | r0.#count200 | ;ton rreętości; jeżeli cotait200-O |
mov a,@r0 dzc a mov @r0,a jnz m_iiai zet jmp mbusyfok m_ahzck_o3f_3 s:
mov | rO,#filtzr | do sprawdzenia czasu maksymalnego |
mov | @r0,11100001b | |
mov | io m a,# 11100001 b | |
mov | iofma^l 1100001b | ;ustaw maskę dlla sygnalu |
mov | r0,#max active | |
mov | @r0,#250 | zzapętlenie do wartości max active sekund |
call | vzrifyof'f | ;wywołanie podprogramu weryfikacji wyłączenia czasu |
clr | c | |
subb | a,250 | |
Jc | m_raa_timina | jeżei; wyłączenie czasu <2,4 S; możiiwy ton 400 |
call | yzrifyfoff | ;wy wołanie podprogramu weryiikacj i wyłączenia czasu sprawdzenie, czy tzsS został przerwany przez przesuaięciz PCR |
jb | tzst_enable,$+6 | |
ljmp | m_callend2 | |
mov | a,b |
178 631
clr subb | c a,#36 | |
jc | mbadiimmg | ;nieważny, jeżeli time__off<2.8 s możliwy ton 400 |
mov | a,b | |
clr | c | |
subb | a,#60 | dzwonienie, jeżeli 2,8<czas wyłączenia |
Ń | mRmgB ackToneOK | <2,4+0,65=3,5 s |
jmp | m-badiming | |
m_noSeZeS: | ||
mov | afimełm | jeszcze nie następuje _ic*te^t^ja |
jmp | m_check_muse | |
m_timż_out: | ||
jmp | m_call_end | |
m_timż_vsr: | ;Wzkryto ton 400, 800 lub 1029 hz | |
mov | rO,#max_aciive | ;intajaj maksy many czas sprawdzania |
mov | @fr0,#240 | ;maksymalny czas próbkowania 10 ms=2,4 s |
mov | rO#ffit^^r | |
mov | @iO,#10000000b | |
mov | wi_m_a^/f 0 0000000b | ;ustaw maskę dkt sygnauu |
call | verify_ | ;wy wołanie podprogramu weyll kuj ącego |
cli | c | |
subb | ;70 ms a,#06 | jj eżeit ton > 800 ms , to ;_rrao^;ty |
subb | a,#05 | jjeżett ton >50 ms , nieważny |
jc m_noD_yet jmp nesO.ns^_łk ; Wykryto ważny ton RingBαpk m_RtnąBapkTonżOK:
mov jz | a,cime_ms m_iime_out | sprawdź bod czasowy T4 |
mov | r0,#count_tone | imkiemenSjj Hcznik tonu RmgBack |
inc | @r | |
mov | btok czasowy T1 | |
mov | o,ofitses | ;usaaw maskę sygnauu |
mov | rfkffities | ;usaaw maskę sy gnaum |
mov | ^#1100(^ b | |
mov | 0,#^max cYtrię | ;usaww maksymatoy czss wy^łfzy^ck sygnahi |
mov | @00,#250 | |
jmp | m_chckk_muse | |
mepath_engagżd_detecSżd | ||
mJrath_żnąaged_dżtżctżd |
m_pαtheżngaążd_deteptżd:
m_pongżft_ok:
nop
178 631 mhbusChOk:
mov | R0,#kbllhback2 |
mov | a,@RO |
orl | 3,/0000000000 |
mov | @R0aa |
jmp | m_calt_źnd2 |
;wckorzcstywany w opcji połączenia zwrotnego mhtonehOk:
;----Z ośrodka Ιε^ο^κΕ i oatebtatlo ważny ton 1020 Hz ;— Teraz start transmisji pakietów
call mov | extwaSchdog rl,#10 | . * . 9 9 ;dn. 94.0h.19 zmieniono z 300 ms na 2 s |
;delayh2e: | ||
mov | a,#20 | |
call | ddayi | |
call | ex__waSchdog | |
djnz | rLalday Y s | |
call | report, aiamtas | |
Sprawdzenie, czy test został przerwane | ||
przez _tzΙSZźtęcie PCR | ||
jb | tes__enabte,$+6 | |
W | m_cal__end2 | |
mov | 1Π^<__Η^Π13#^Ο | |
mov | iime__10m7##0 | |
mov | iime_1 s#110 | |
mov | iime_im,#3 | |
mm_chnck | _inuse: | |
jnb | ϊηη5<7,ππ_ _ vet | ;jeżeli to błąd pracy to |
jmp | mcaltyend | |
mmhthVer: | ||
call | read tom a | sprawdzenie tonu 400i 800 lhb 0 020 |
anl | a,#10000000b | |
cjne | a,#10000000bi minUnic vet | jeżeli równe |
jmp | mm_no_cyet | |
mov | t0,#mbx active | juncjcj maksymainy czas sprawdzania |
mov | @07,#240 | ;maksymalny czas próbkowania |
240*10 ms = 2,4 s | ||
r0, #0iltnr | ||
mov | @07,#lOOOOOOOb | |
mov | to_m_a,# 000000000 | |
call | wenty | ρvyρvl)blnie poa^^rogrannu wee0iikującego |
;Sprawdzenin, czy test został przerwane przez przesunięcie PCR
178 631
ΐΐ | Ζεο__ηηι1ιΐ6,$+6 | |
ljmP | πι_ι:η11_ζηΖ2 | |
clr | c | |
70ms | 9 | |
subb | Ϊ/ζοΙϊ <50. ton nieważny | |
— | Komuekal poprawnie przekazany do Ośrodka Telekoeserwatyjeeeo | |
— | i odrbrana powiScdZ/enie | |
clr | 1βο__ρηηάη^ | ;wskaauje zakończenie t/ztu |
jmP | m_cun_end2 | podprogram wyjścia |
mm_nolsSel: | ||
call | wotehdog | |
mov | ^ΐπ^Ν | jjeszcze nie następuje' detekcja |
W | mmstC/ckstnηse | ; ;**** ;m_tone_ok |
mov | oO,#counterl | ;adrts do rO. |
mov | ,.@;ό | Zawartość spod adresu do akumulatora |
det | a | ;dekrem/ntaiea akumulatora |
mov | @;0,a | Zawartość po d^ek^t/ϊms^r^t^ncj i do pamięć,. |
jz | frnnfmitlon_rrror | skok. jeż/ili. akumulator zerowy. |
W | mtone_ok | ;**** οιπριΗ/ιΙ iriuse |
fransmitioOnenOr:
mov | R0,#main1 _flagerror | .**** . 9 9 |
mov | a,@R0 | |
or1 | a,00000010b | ;ustaw błąd p^i^ae^y |
mov | @R0,a | |
mov | RO,#code_ xmit error | |
mov | a,#2 | |
call | /ι^χΌ | Opóźnienie włączenia lampek błędu |
Ίι^/ιΙ: | ||
W | m_buzy_ok | |
_call_end2: | ||
mov | a,#clear | ;Kłod kasowana |
call | wrbus | k^^uj wsy stkże kody w pamięci części radiowej |
clr | th^im_kh^p | oraz dokoiaja odwieszema |
tall | wriSe_lo_m_b | i i rozłącz moduł |
mov | a,#1 | |
tall | Opórnienie | |
wail_inuzet | off: | |
clr | fremotehup | ;***' nu/ koniecznie |
178 631
żall | luup | |
setb | fremotd hup | .**** . ? ? |
mov | a,#4 | |
call | delay2 | lopóźnidnld 4*2,5 s |
setb | mute | |
W | m_call_test_end |
preoihook:
call_tettJend:
ret ;----J^u^rl^cja do sprawdzania bloku czasowego T1 110 s) ;---Blok czasowy Tl ^os^^^e uaktywniony rżżel1 wcykryto ρ'ζνηηίπιηίο1 1 -on RlngBack ;----F^r^rk^cja zwraca flagę przeniesienia po upływie czasu Tl.
Cheżk T1 Timor:
mov ζΌ,#ζ-ηιηΐ_ΐοηε mov a,@;0 cjne a,#0, tonddet emp Ε^.^οζΙΒ .οτοΙο.: ;Uprzednio wykryto przynajmniej 1 ton mov a,T1_Timdr żlr ż tubb a,# 10 jc ExitCheżkT1 setb c ret
ExitCheckT1:
żlr c ret
Timer2iEXT2 Procedura obsługi przerwania ;Prożddurf powodujs odczyanie danych z TRU i wprowadza do odpowieUniżh lokacji pamięci intlJtdrviże:
rdbut:
CLR | EA |
puth | psw |
push | acc |
178 631 cone_ahzaking_write:
jb | iz.'nd,c^or^^__ie.'ad | |
jnb | Sdata_tru cheek_wnie | |
setb | read | |
check_wehe: | ||
jb | inte_znablz cont write | |
jnb | o,τito'chzck_message | |
aheck_welte2: | ||
clr | sdatazu | (wskazanie na flagę zupstu |
setb | inte_enable | ;w celu, wskazana] na zapis |
sCmp | checkmessage | |
aont_τzrd: | ||
mov | asdata_in | tread bb |
rr | a | |
mov | c,Sdata_TRU | |
mov | (Wprowadź trij danych do akumulatυia | |
mov | sCata-toja | |
djuz | bits. lef't_ńncheck_w;rbe | |
mov | bits_left_m,#8 | |
cle | rond | ;PsygoCowunie do nattępnego batiu |
setb | datawaląi | (wnazzuie komunikat z t bbów |
sjmp | check write | |
coniwrite: | ||
mov | a.sdalaout | |
mov | c,acc.O | ;Wymiń bb |
mov | SdataiCU.e | jak ovyZej |
tt | a | tootuj akumukitor w lewo) |
mov | Sdata_out,a | |
Cjnz | bits left outj shift next | ;Pszyrrzymaj do tγypIΌtvadzenia t bbów |
sotb | Sdata_CU | |
cle | write | |
mov | bits_left_out,#9 | |
cle | inteenabie | iflaga wskanjąąca zapśs |
shift_nzxe:
mov a.data_in cheak_messree:
(----OdOdrana konoumikal a-bitowy. Następie dedokowiwie komunikalu.
(----Sprawdź na curoednio ooaukiwouy Uomun(kaiI ppzaz sprawoioenie Hag dalaOK:
178 631
jbc | rssi.SaveR.SSI |
jbc | f_goodidlrerd_sSaSus |
jbc | f;_60misg_60 |
jbc | f_61 ,msg_61 |
ąbc | f_62,msg_62 |
jbc | f_63,ntsg_63 |
Jest to poprzedni stan r ssi ;ąesS io poprzedni kod komunikatu 50
Jest to poprzedni kod tari 60
Jess to poprzedni kod tari 61
J^^si to poprzedni kod Sari 62
Jest to poprzedni kod tari 63 ;----Nie jest ustawiona żadna z flag ; mus; to być nowy komunikat lub dnze ;----Najpierw sprawdź; cTy rs-skw^ńmy bit 7.
;----jeżeli ustawiony; liczby są większe od 80 hex
Crb arc.7,LessThaa80hex ajmp Gre'atzrT'hzn80hzx
SaveRSSI:
;Zasamiętraiz darzą o natężeniu sygnału radiowego push 0 mov r0.#signa!strza^aSh mov @r0,a pop 0 ajmp rdbusdone jOdzbraao komunikat o wskaźnikach (Roam, NoService, IaUsz) ;ZasamiętaC odpowizdaiz zmizaaz bitowe przzz zasiotowaaiz sposobu skomplikowanego lzcz szybkiego mov c,acc.2 cpl c mov inuse,c mov a,acc.3 cpl c mov roam.c jnb acc.d.seerY clr noserv clr riagfZaable ;maat ;odblokowaaie dzwonienia po braku obsługi ajmp rdbus_done sserv:
szSb noseiy aCmp rdbusdone msg_60:
push 0 mov r0#/daa__60
178 631
mov | @r0,a | |
ΡθΡ | 0 | |
setb | send_60 | |
ajmp | rdbus_done | |
msg_61: | ||
push | 0 | |
mov | r0,#data_61 | |
mov | @r0,a | |
ΡθΡ | 0 | |
setb | send 61 | |
ajmp | rdbusdone | |
msg_62: | ||
push | 0 | |
mov | r0,#data_62 | |
mov | @r0,a | |
pop | 0 | |
setb | send_62 | |
ajmp | rdbus_done | |
msg_63: | ||
push | 0 | |
mov | r0,#data_63 | |
mov | @r0,a | |
pop | 0 | |
setb | send63 | |
ajmp | rdbusdone | |
LessThen80hex: | ||
;----Kod odebranego komunikatu mniejszy od 80 Hex | ||
cjne | a, #5 lh,check_low_status | |
setb | rssi | ;ustaw stan rssi |
ąjmp rdbus_done checkjo w_status:
cjne | a,#50h,check_60 | ;tari jeżeli nie 50 sprawdź stan |
setb | fgoodid | ;wskaż, że komunikatem było 50 |
ajmp | rdbus_done | ;tari ;vwwwvwvwwvww |
check_60: | ||
jnb | fcall,check_60b | |
ajmp | rdbus_done | jeżeli połączenie wchodzące, nie sprawdzaj taryfy |
check_60b: | ||
cjne | a,#60h, check_61 | jeżeli nie 60, sprawdź stan |
178 631 setb almp check61:
cjnn setb ajmp check62:
cjne sntb ajmp check63:
cjne sntb bjm_
Chk3:
cjne sntb
Chk2d:
cjnn clr clr snt0 sitO ajmp
Chnck_71:
cjne ajmp chk_73:
cjne ajmp khkh74:
cjnn ajmp chk_othersL:
t_60 ;wskaż, że aomunikbaΙm było 60 rabiiu a,#61h, check_61 ί_61 rdbus done
b.,#621l,checih_62 t_62 rdbus done a,#63h,check_63 t_63 rdbus done a,#03h,Chk2d powΙr_oź rdbus aione jeżeli nie 61, sprawdź stan ;wskaż, ie Pnmnnibatem Cyto 11 jeżeli nie 62, sprawdź stan ;wskaż. ie Pnrunikbatπm Cyto 22 jeżeli nie 63, sprawdź stan ;wskaż. ie Pnmnnibatπm ΛνΕοόη a,#02dh,checkh71 e_inkomnιg n_inconiing ap2 lock rd0us_done
Sprawdzenie telekontroli (nadzór)
a.#71h.chk73 set telesup. test
Sprawdzenie zbjętΙgp kanału głosowego a,#73 Ii, c^1^_^4 setvch1 a,#74h,check_othersL set vch2 ajmp rdbus_done
178 631
GrdftdrThan80hdx:
;-----Wimość w a^ulmuta-oszeS_e1 wtyks^ ηϊζ 80 hex jb acc.6,GreaterThanCOHex jjeżei 1 bi1 ustawiony. tc1 liczba jest (n>=c0h) jb acc.4,GreaterThan90Hex ιΙ^^^Ιϊ bt1 ustawiony 1 to liczba jsst (n>=c0h) ;-----w akumutatosze wi zakresie 80-8F Uub EO-EF cjne a,#085H,Cheżk80to89Hex sstb truis_on
Check80eo89Hex:
żlr c tubb a,#8ah jnc Gre'aterThanS9 ;Liżzbf wynoti (80h<n<=89h), zfpamlęefe w buforze do eelekonsdrwacei. Może stanowić oczekiwaną liczbę s pamięci po tozkasld odczylu pamięci mov a,sdata_in ;Pobierz cytrę ponoanlte call save_dsp i i ^]ρ^ηη^^^1 w ł^ukozse ajmp rdbusdone
GrdaeerThan89:
;Liżzbr wynoti (8ah<=n=8fh lub E0-EF) ;Znakt nidwfżnd, nid używane. Teraz wyjdź.
GrdaterThan90Hex:
cjnc a^ODSŁaCWd sstb emcoming jnb a_mcoming,not_mcoming_e ;-----Odebrana sekwemja pobeczenia wechodzącego E->A->E S etykieta EnfrAntE)
clt | ap1 |
mov | ccapm 1 ,#0 |
clr | e_mcoming |
żlr | a_incoming |
noe_incoming_ | _c: |
fjmP | η^1^υ__(^<^η6 |
Chk91:
żjne ^#09ηι,α±88 jnb e_incoming,Chk98
178 631 sitb α_tapominą ajmp idlbu eons
Ciik98:
cjni 2##098Η,ΟιΒ3Α clr tókk ajmp tdbus_done
ChkBA:
pjae a,#0bah,ChIB3B ;----Ρο^ζει^ε wchodzące tietekonseIweιcja)---jb rmg enabte ClkBBB ;manS ;nte dzwoń przy inicjowaniu cli ^αΓη^ι^ ajmp rdbusdone
ChkBB:
cjni ątfObblĘChkOihfr ;-----Polpriame ηπ^Με pzszz zzśść radową, mose być odwtfrianlnm aUro łokałznm, albo zdalnym----
teta | apl |
clr | ejnominig |
clr | a_inroming |
ajmp | ddbuS-done |
;-----Nto będzie dass^ch sprawdzań, śuż wyjdź ajmp adbus_done
GriαtirTCαa_OHex:
;-----Nie ma komunikatów spccjantych o tym kodzis (CO-FI),j jżż wyddź ajmp ddbus_done ;Nadzót (Aktywacja testu przez ośrodek telekontrolny) set_teletetup_tist:
setb audit ηχίε jb ifsS_anaetó, ;'dbss_0ele push 0 mov RO,#aall_bpkk 'π^οΖ ;i nwstępnie woWonąl nowy test mov a,@00 ;mant
178 631
anl | a,#00110000b | ;kasuj liczniki, połączenie niz zrkoaczoae | |
orl | a,#00000000b | miaia;. | Stan gao; cbowonienia |
mov | R0,#call_back2 | ;man; | 9 |
mov | a,@R0 | ||
anl | mam;. | ikasuj liczniki, meldunek nie zakończony | |
orl | ;ustawżenże ay;iwotane pracz ϊeiekoIttroię | ||
mov | @R0,a | ;man; | 9 |
szII | Zeslenabie | ||
seib | inil_Zest | ||
setb | Zesljzending | ||
pop | 0 | ||
sjmp | .db^-done |
,-----Kana; gtoroazf zajęty , ustaw bi; vch szt_vch1:
seib | vch_l |
sjmp | adbul done |
szWch- | _2 |
scmp | adbuldone |
rabuslto;-: | |
clr | data_in |
clr | Zll |
SETB | EA |
pop | ccc |
pop | pww |
reti |
PRAWA AUTORSKIE ZASTRZEŻONE - TELULAR INTERNATIONAL, INC.
178 631
FIG.1A
178 631
FIG.1B
178 631
KROK 16
KROK 17
KROK 18
KROK 19
KROK 20
KROK 21
KROK 22
KROK 23
KROK 25
USTAW ERROR _FLAG MAIN FLAG ERR0R=1 ζ START ) ł
INICJUJ ZMIENNE ł
KASUJ „LED-y STANU ί
ODEACZ SLUCHAWKE ABONENTA
OOŁACZ MODUŁ OBSŁUGOWY
ZWLOKĄ .....
MODUŁ OBSŁUGOWY ZDJĘCIA SŁUCHAWKI
ZWŁOKA .TUZ
INTERFEJS WYKRYWAJĄCY ODWIESZENIE
OOBLOKUJ TON WYBIERANIA ζ RETURN
FIG. 2
178 631
FIG. 3
178 631
FIG-4
178 631
FIG. 5A
178 631
FIG. 5B
178 631
KROK 63
KROK 66 NIE
KROK 67 , | - |
USTAW RING SECOND |
KROK 64
KASUJ BLOK CZASOWY
PĘTLA! ZDJECfE SŁUCHAWKI PRZED UPŁYWEM 2S JEST NIEDOZWOLONE
KROK 65 NIE
WYKRYTO BŁĄD ZDJĘCIA SŁUCHAWKI
KASUJ POŁĄCZENIE WCHODZĄCE
USTAW ERR0R-FLA6 MAIN ERR0R FLAG = 5
KROK 49
KROK 50 (return)
FIG. 5C
178 631
FIG .6
178 631
FIG.7A
178 631
FIG.7B
178 631
KROK 95
KROK 97
KROK 99
KROK 101
KROK 103
KROK 105 ζ START )
FIG. 8A
BEAD ODWIESZENIA | KROK 96 ERROR-C0DE=1
BEAD ODWIESZENIA PRZY OZWONIENIU | KROK 98 ERROR C00E=2
BEAD TONU WYBIERANIA | KROK 100 ERR0R_C0DE=3
I __________
BEAD TONÓW DTMF | KROK102 ERR0R C0DE=4
BEAD WYKRYWANIA DZWONIENIA | KROK 104 ERR0R C0DE=5
BEAD ODPOWIEDZI NA DZWONIENIE | KROK 106 ERR0R C0DE=6
178 631
KROK 109
KROK 111
KROK 113
TAK
TAK
BŁAO ZASILANIA-RADIO
KR0K1°7 ^Ą,N1_FLAG_ERR0R
KROK 108
ERR0R C0DE=7
BŁĄD POŁĄCZENIA
KROK 110
ERR0R C0DE=8
BŁĄD TONU ZAJĘTOŚCI
I KROK 112
ERR0R C0DE=9
BŁĄD STANU DZIAŁANIA | KROK 114
ERR0R C0DE=10
BŁĄD 1000Hz
KROK 115 .....L£I
I KROK
116
ERROR-CODE 11 (return }
FIG.8B
178 631
KROK 117
KROK 118
KROK 119
KROK120
KROK 121
KROK 122
KROK 123
KROK 124
FIG.9
178 631
Ο □
FIG.10
178 631
FI G . 11
178 631
WEJŚCIE _w,_ +8VD
FONICZNE __T
FIG.12
178 631
FIG.13
178 631
(3
LL
178 631
FIG.15
178 631
-212
START BLOKU _ ODMIERZANIA CZASU
MINUTĘ
FIG.16
178 631
ETAP 22
KASUJ
FLAGĘ
CALL BACK
TAP 7
ETAP Η
224
USTAW LICZNIK PONOWIEŃ NA 3
TAK
234 ^PONOWIEN' TAK4 ETAP 21
FIG. 17
178 631
FIG.18
178 631 f PĘTLA KONTROLI ODWIESZE\ NIA y
WERYFIKACJA STANU PĘTLI GŁÓWNEJ
FIG.19
Departament Wydawnictw UP RP. Nakład 70 egz.
Cena 6.00 zł.
Claims (4)
- Zastrzeżenia patentowe1. Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej, w którym blok interfejsu przyłącza się do stacjonarnego urządzenia telefonicznego i przetwarza się sygnały wybierania DTMF lub typu impulsowego z dołączonego do niego stacjonarnego urządzenia telefonicznego na format cyfrowy oraz wysyła się te sygnały do komórkowego urządzenia nadawczo-odbiorczego, znamienny tym, że nadaje się sygnał inicjacji testu spoza miejsca zainstalowania do bloku diagnostycznego, wykonuje się, w odpowiedzi na nadanie sygnału inicjacji, testowanie komórkowego bloku interfejsu w urządzeniu do zdalnego testowania, przetwarza się wyniki testowania na dane przydatne do wysłania za pośrednictwem sieci komórkowej oraz wysyła się dane wynikowe testu do znajdującego się poza miejscem zainstalowania bloku monitorującego za pomocą komórkowego urządzenia nadawczo-odbiorczego.
- 2. Sposób według zastrz. 1, znamienny tym, że przed wysłaniem danych wynikowych testu generuje się sygnał potwierdzenia ze znajdującego się poza miejscem zainstalowania bloku monitorującego do bloku diagnostycznego, wskazującego nawiązanie połączenia dacyjnego.
- 3. Sposób według zastrz. 1, znamienny tym, że w trakcie testowania bloku interfejsu monitoruje się funkcje wykonywane przez blok interfejsu.
- 4. Sposób według zastrz.3, znamienny tym, że w trakcie monitorowania symuluje się funkcje wykonywane przez urządzenie telekomunikacyjne, dla generowania w bloku interfejsu odpowiednich odpowiedzi tego bloku oraz określa się, czy blok interfejsu działa poprawnie.
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 (2)
Publication Number | Publication Date |
---|---|
PL311050A1 PL311050A1 (en) | 1997-02-03 |
PL178631B1 true PL178631B1 (pl) | 2000-05-31 |
Family
ID=24012209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PL95311050A PL178631B1 (pl) | 1995-07-24 | 1995-10-20 | Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej |
Country Status (4)
Country | Link |
---|---|
US (1) | US5966428A (pl) |
HU (1) | HU219932B (pl) |
PL (1) | PL178631B1 (pl) |
ZA (1) | ZA958218B (pl) |
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 |
US20080207197A1 (en) | 1997-07-30 | 2008-08-28 | Steven Tischer | Apparatus, method, and computer-readable medium for interfacing devices with communications networks |
US7149514B1 (en) | 1997-07-30 | 2006-12-12 | Bellsouth Intellectual Property Corp. | Cellular docking station |
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 |
US6694360B1 (en) * | 2000-06-09 | 2004-02-17 | 3Com Corporation | Multi-mode network interface having loadable software images |
US6539338B1 (en) * | 2000-06-09 | 2003-03-25 | 3Com Corporation | Self-diagnostic testing of a network interface adapter |
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 |
US8526466B2 (en) | 2002-07-15 | 2013-09-03 | At&T Intellectual Property I, L.P. | Apparatus and method for prioritizing communications between devices |
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 |
US8000682B2 (en) | 2002-07-15 | 2011-08-16 | At&T Intellectual Property I, L.P. | Apparatus and method for restricting access to data |
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 |
US7200424B2 (en) | 2002-07-15 | 2007-04-03 | Bellsouth Intelectual Property Corporation | Systems and methods for restricting the use and movement of telephony 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 |
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 |
US6836644B2 (en) | 2002-08-26 | 2004-12-28 | Bellsouth Intellectual Property Corporation | Methods and apparatus for establishing a fixed wireless telephone service |
US6999761B2 (en) * | 2002-08-26 | 2006-02-14 | Bellsouth International Property Corporation | Fixed wireless telephone device |
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 |
JPWO2004097787A1 (ja) * | 2003-04-30 | 2006-07-13 | 東芝松下ディスプレイテクノロジー株式会社 | 表示装置用アレイ基板及び表示装置 |
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 |
WO2005076640A1 (en) * | 2004-01-16 | 2005-08-18 | U.S. 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 |
---|---|
HUP9601009A2 (en) | 1997-05-28 |
ZA958218B (en) | 1996-04-24 |
HU9601009D0 (en) | 1996-06-28 |
US5966428A (en) | 1999-10-12 |
PL311050A1 (en) | 1997-02-03 |
HU219932B (hu) | 2001-09-28 |
HUP9601009A3 (en) | 1999-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PL178631B1 (pl) | Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej | |
US6690923B1 (en) | Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities | |
US5469494A (en) | Self-diagnostic system for cellular-transceiver systems | |
US5859894A (en) | Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities | |
JP4149131B2 (ja) | 固定ワイヤレス端末においてステータス情報を報告するための方法および装置 | |
JP3828932B2 (ja) | 移動装置における方法と装置 | |
AU5755598A (en) | Communications system and method for testing of a communications apparatus | |
US20050119014A1 (en) | Home cellular phone system | |
JP2009159267A (ja) | 通信装置、通信装置の親機及び子機 | |
AU674406B2 (en) | Self-diagnostic system for cellular-transceiver systems | |
JP2009159547A (ja) | 通信装置 | |
JP2010178154A (ja) | 通信装置 | |
JP2010026545A (ja) | 災害情報受信装置 | |
KR20070062694A (ko) | 회선 점검 장치와 그 회선 점검 방법 | |
CN101867662A (zh) | 用户通话的高阻监听装置和方法 | |
JP2007201944A (ja) | 無線通信システム、無線通信端末および通信制御方法 | |
JP2007049630A (ja) | 通信システム、ネットワーク管理装置、及び通信品質情報取得方法 | |
JP3661088B2 (ja) | コードレス電話システム | |
JP4785826B2 (ja) | 通信装置 | |
JPS6326946B2 (pl) | ||
JP2011147082A (ja) | 無線通信システム | |
JP2000049973A (ja) | 無線固定加入者装置及びその保守モード設定方法 | |
JP2006128952A (ja) | 無線公衆電話システム及び該無線公衆電話システムの加入者装置 | |
JPH10327470A (ja) | 無線固定端末装置 | |
JPH0388545A (ja) | 親子式電話装置 |