PL174142B1 - Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej - Google Patents

Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej

Info

Publication number
PL174142B1
PL174142B1 PL94321371A PL32137194A PL174142B1 PL 174142 B1 PL174142 B1 PL 174142B1 PL 94321371 A PL94321371 A PL 94321371A PL 32137194 A PL32137194 A PL 32137194A PL 174142 B1 PL174142 B1 PL 174142B1
Authority
PL
Poland
Prior art keywords
mov
test
error
flag
call
Prior art date
Application number
PL94321371A
Other languages
English (en)
Inventor
Luis R. Ortiz
Alexis Torres
Original Assignee
Telular Int Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telular Int Inc filed Critical Telular Int Inc
Publication of PL174142B1 publication Critical patent/PL174142B1/pl

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/14WLL [Wireless Local Loop]; RLL [Radio Local Loop]

Landscapes

  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Monitoring And Testing Of Transmission In General (AREA)
  • Transceivers (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Circuits Of Receivers In General (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

Przedmiotem wynalazku jest radiowe urządzenie nadawczo-odbiorcze 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 samo174 142 dzielnego, 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. 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 inne 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
174 142 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 technologię dla licznych, czasem niekompatybilnych zastosowań, mianowicie bezprzewodowych prywatnych central wewnętrznych, mniejszych i lżejszych 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 bazie 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
174 142 zapewni udoskonalenie sprzętu telekomunikacyjnego, telekomunikacyjnych systemów i konstrukcji.
Istotą radiowego urządzenia nadawczo-odbiorczego w systemie łączności komórkowej, według wynalazku, zawierającego nadajnik-odbiornik radiowy, blok interfejsu i urządzenie telekomunikacyjne dołączone do nadajnika-odbiornika radiowego, przy czym blok interfejsu łączy operacyjnie urządzenie telekomunikacyjne z nadajnikiem-odbiornikiem radiowym dla telefonicznych połączeń wychodzących albo połączeń odbieranych przez nadajnik-odbiornik radiowy, jest to, że zawiera urządzenie testujące dla kontrolowania i określania właściwego działania nadajnika-odbiornika radiowego i bloku interfejsu, przekaźnik do dołączania urządzenia testującego do bloku interfejsu w miejsce urządzenia telekomunikacyjnego, przy czym urządzenie testujące zawiera układy generowania funkcji wykonywanych przez urządzenie telekomunikacyjne do wygenerowania w bloku interfejsu odpowiedzi dla określenia, czy blok interfejsu działa poprawnie.
Korzystne jest, gdy zgodnie z wynalazkiem urządzenie testujące zawiera układy generowania połączenia telefonicznego wychodzącego przez blok interfejsu i radiowy nadajnik-odbiornik:, czyli przez radiowy system telefoniczny, z którym ten radiowy nadajnik-odbiornik jest związany, i na powrót do tego nadajnika-odbiornika, przy czym urządzenie testujące zawiera następnie układ dla wykrywania sygnału zajętości przez nadajnik-odbiornik w odpowiedzi na to połączenie telefoniczne, przy czym układy generowania funkcji, w tym generowania wychodzącego połączenia telefonicznego, wywołują numer aparatu telefonicznego, który został przydzielony temu nadajnikowi-odbiornikowi, do którego jest operacyjnie dołączony.
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, przy czym stosuje 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 do komórkowego urządzenia nadawczo-odbiorczego 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łączone 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ą6
174 142 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 z 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 nadawczo-odbiorcze, 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 na 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 LED 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 zaliczające dla standardowego telefonu domowego lub automatu telefonicznego.
174 142
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.
Przedmiot wynalazku przedstawiono w przykładzie wykonania na rysunku, na którym fig. 1A i IB przedstawiają sieć działań procesu samotestowania, fig. 2 przedstawia sieć działań podprogramu autotestującego odwieszenia słuchawki, fig. 3 - 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ń.
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 IB przedstawiono podprogram wykonania 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
174 142 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 14. 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 wszystkie sygnały 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 Main_Flag_Error. 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 28 następuje testowanie tonu wybierania. Jeżeli ton wybierania jest nieprawidłowy, program przechodzi do kroku 30, gdzie następuje ustawienie flagi Error_Flag, 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
174 142
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 Error_Flag, a flaga MAIN_FLAG_ERROR 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 pętli do kroku 48, aż do rozpoczęcia dzwonienia. Natomiast, jeżeli upłynął 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 pętli do kroku 56, aż do ustania dzwonienia. Nato10
174 142 miast, 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ę podniesienie 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 zawraca 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 dzwonienia zostaje zakończona. Następnie program przechodzi do kroku 50, w którym zostaje ustawiona flaga Error_Flag, a flaga Main_Flag_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 okresach 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 kro174 142 ku 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. 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 komórkowe urządzenie nadawczo-odbiorcze dołączone do bloku interfejsu 14, przez sprawdzenie na początku zasilania, a następnie wygenerowanie połączenia na własny numer telefonii. 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 nadawczo-odbiorczym. W kroku 86 blok interfejsu 14 wykrywa stan pracy urządzenia nadawczo-odbiorczego. 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 Mainl_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
174 142
Hook Slic Error. Jeżeli ta,. to EIROOR_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 67. W kroku 67 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 66 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 67 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 68 na wartość 2, a następnie program powraca do podprogramu głównego. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 66. W kroku 66 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, to kod ERROR_CODE ustawiany jest w kroku 102 na wartość 4, a następnie program powraca do podprogramu ^łonneo.. Natomiast w przypadku wyniku negatywnego, program przechodzi dalej do kroku 103. W kroku 103 odbywa się sprawdzenie, czy Main_Flag_Error jest równe 5, czyli odpowiada błędowi wykrywania dzwonienia. Jeżeli tak, to kod ERROR_CODE 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_Flae_Errgr jest równe 6, czyli odpowiada błędowi odpowiedzi na dzwonienie. Jeżeli tak, to kod ERROR_CODE 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, Mainl_Flag_Error. W kroku 107 odbywa się sprawdzenie, czy Maial_Flag_Err-r jest równe 1, czyli odpowiada błędowi zasilania części radiowej. Jeżeli tak, to kod ERROR_CODE 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 106. W kroku 106 odbywa się sprawdzenie, czy Maial_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 Mainl_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ść 6, 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 Maial_Flag_Error jest równe 4, czyli odpowiada błędowi stanu pracy urządzenia. Jeżeli tak, to kod ERROR_CODE 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 Mainl_Flag_Error jest
174 142 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 programu 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 pętli 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 automatyczne 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 nadawczo-odbiorczego adaptera. Test autodiagnostyczny zaprogramowany jest tak, aby wykrywać sygnał zajętości lub sygnał natłoku na linii, jako wskazanie, że połączenie nie może być dokonywane i że układ tranmisyjny 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,
174 142 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 (MJFTD), test urządzenia nadawczo-odbiorczego, test obwodu odbiorczego, test obwodu nadawczego, 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, blok interfejsu 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.
174 142
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 i wyłączonych 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 L L L L
ED 5 ED 4 ED 3 ED 2
Bez uszkodzenia W W W W
Y Y Y Y
Błąd pętli W w W W
Y_ Y_ Y_
Błąd pętli W w W W
Y_ Y_ Y_
Ton wybierania w w w w
Y_ Y_
Detektor MFTD w w w w
Y_ _
Detektor dzwonienia W
Y_ _
Odpowiedź na wywołanie W
Y_ _
Zasilanie nadajnika W
Y_ _
Nadajnik (połączenie) W _ Y
Odbiornik (zajętość) W
Y
W
Detekcja tonu przy 12 kHz
Y
W
W
W
W υ
W
Y
W
Y
W
W
Y w
w w
Y_ w
f w
w w
w w
174 142
Zasilacz główny
BRAK OBSŁUGI
Obwód nadawania
Nie określony
Nie określony
Y_
W W
Y
WWW
WWW _ _ Y
WWW _ Y_ _
WWW
Y Y
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 pętli. 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ętotliwościowego MFTD. Składa się on z karty autodiagnostycznej generującej pełną sekwencję 16 tonów MFTD, wysyłającej ją do konwencjanolnego 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 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. Ten test wykonuje się przez wykrywanie stałego napięcia +12 V, otrzymanego ze złącza danych urządzenia nadawczo-odbiorczego. 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 nadaw174 142 czo-odbiorczego. Następnie jest generowane połączenie przez sieć komórkową z numerem abonenta. W ten sposób sprawdzane jest działanie urządzenia nadawczo-odbiorczego, 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 ręcznie, 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łączone do linii wyszukiwania i dzwonienia, w celu wykonania tych testów. Kiedy
174 142 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ć odwieszony 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 Zenera Dl 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 znaczy tranzystor Q4 wchodzi w nasycenie, co powoduje zasilanie optoizolatora SSR1, zamknięcie obwodu i realizację 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/O.
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/O.
Część układu w uproszczeniu oznaczona na fig. 11 literą F stanowi zespół układów fonicznych wejściowych/wyjciowych zbudowany z 1 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ł wejściowy DTMF generowany przez urządzenie testujące 10 przekazywany jest na 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 1 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-OlUr, DTMF4-OUT układu U4. Następnie utrzymując tę wartość czterobitową, powoduje się, że
174 142 sygnał zezwalający na zacisku wejściowym oznaczonym D3MF-OUT zmienia poziom z niskiego na wysoki umożliwiając w ten sposób generację sygnału. Częstotliwość akustyczna wyprowadzana jest na wyjście tonowe po wzmocnieniu sygnału przez wzmacniacz Ul. W celu wyłączenia tonu, sygnał na zacisku D3MF-OOT sprowadza się na powrót do stanu niskiego.
Część oznaczona schematycznie na fig. 12 literą H jest układem scalonym U8 portów 1/O. 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. J5 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 2 x 10 wykorzystywana do podawania zasilania, jak również do nadawania i odbioru danych portu I/O. Zawierają one również głowicę 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-w-ltowego nierngul-waneeo 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 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 masę. Kiedy tonowi programowanemu przez obwód rezystora i kondensatora odpowiada ważny ton, to sygnał wyjściowy detektora tonu zmienia się 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 z fig. 13 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.
174 142
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 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 1 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 DTMF1. Po zdekodowaniu sygnału, na końcówki oznaczone DTMF0-IN, DTMF1-IN, DTMF2-IN, DTMF4-IN, wyprowadzana jest wykryta wartość czterobitowa. Następnie linia DSMF-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.
Poniżej zamieszczono wydruk programu źródłowego do realizacji wynalazku.
174 142 $nopi nosb db noge nomo nopr ep $nolist $include(reg252.pdf) $list • * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *k -k -k r ;Maxjack, aut. Alexis V.Torres dla Telular International,
Inc.
; (C) Copyright Telular International, Inc. 1993-1995 ;Interfejs telefoniczny/komórkowy:
/Program główny z tablicą obsługi t
;92.11.29 maint.asm ;
• * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * *r * * * * * * * * * * * * * * * * * * * * * * ★ ★ z
/Uniwersalne kody klawiszy telefonii naziemnej
zero equ 0ah ; 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 e<u 80h /Początek bufora 16B wyświetlacza
LCD
dspbuf end e<qi 90h /Koniec bufora wyświetlacza /LCD
msgbuf start ecu 90h /Początek bufora komunikatów; ;TRU
)
msgbuf end equ 90h /Koniec bufora Oomuwkleóśa RRU
main flag equ Ob0h ;Do sprawdzania flag używaj adresu
174 142
;bezpośredniego
;hook slic 1 ;dial 2 ;dtmf 3 ;ring test 4 ;ans test 5 main flag error eęqu 01bh ;hook slic error 1 ;błąd odwieszenia
;hook ring_error 2 ;błąd odwieszenia
;dial error 3 ;błąd tonu wybierania
;dtmf error 4 ;błąd dtmf
;ring_test_error 5 ;błąd dzwonienia
;ans_test_error 6 ;błąd odpowiedzi na
dzwonienie main1 flag equ 0b1h ;jak wyżej
;power radio 1 ;błąd zasilania-radio
;call test 2 ;błąd połączenia
;call tone 3 ;błąd rozmowy
main1 flag error equ Oblh ;jak wyżej
;power radio_error 1 ;rezerwa
;call test 2 ;rezerwowy błąd połączenia
;call_tone 3 ;rezerwowy błąd rozmowy
;inuse 4 ;błąd pracy
;1000hz 5 Błąd 1000Hz
error code equ 0b4h ;ostateczna sygnalizacja LED
;hook slic error 1 ;odwieszenie
;hook ring_error 2 ;odwieszenie
;dial error 3 ;wybieranie
;dtmf error 4 ; dtmf
;ring test error 5 ;dzwonienie
174 142 /ans_test_error /power_radio_error ;call_test ;call_tone ;inuse /lOOOhz ;odpowiedź na dzwonienie ;zasilanie-radio /połączenie /rozmowa /praca
1000Hz
cero equ OOh
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 o3h
.********************************************************** z
Wewnętrzne definicje zmiennych Ram *********************************************************** / Rejestry zajmują bajty 00h-07h (bank rej. 0)
rO wskaźnik pamięci
kspandera I/O)
rl wskaźnik pamięci
r2 liczba cyfr
r3 pętla opóźnienia
r4 pętla opóźnienia
(również wskaźnik adresowy dla danych z TRU dla bloku czasowego magistrali dla bloku czasowego magistrali
174 142
;r5 wykorzystywany w
r6 wykom zys tywaany w
;r7 wykorzystywany w
bloku czasowym rohtone send_time bloku czasowym rohtone ; Lokacje pamięci zmiennych
rttde offl ddaa 10h /mierzy czas
poniesienia słuchawki
/time off2 ddat lUi /mierzy czas
poniesienia słuchawki
;aCmetOff3 ddat Uh /mierzy czas
poniesienia słuchawki
/tirne on1 ddat 1^3t //^θγζυ czss
odłożenia słuchawki
/time on2 dćłtaći 11h /•mierzy czss
odłożenia słuchawki
puiaitaigia ddat 11h /wartość cyfry
wybiirznie impulsowo
in use off timer data Uh /^prawda,, czy
po uruchomieniu zaczyna działać lampka
ringttimer ddat 11h /hlok czasowa
sprawdza czas między dzwonkami
d^t^ti Uli /blok czasowy
generuje 20 Hz dla dzwonka
bell aimer2 dć^a^^ 11h /blok czasowy dla
dzwonka gndstart_timerl ddta 1ah nie ma połączenia przez 1 s gnóstart—timerk daaa 1bh ;highpoint ddaa 1ch tonowych ;lowpoint dc^a 1dh tonowych /zwalnia linię GS, jeżeli ;jak wyżej /zapisuje dph dla tablic ;zapisjje dpi dla tablic
174 142
highpoint data 35h ;zapisuje dph dla tablic
tonowych
lowpoint data 3 6h /zapisuje dpi dla tablic
tonowych
test min data 1eh
; free data 1fh
t f
;Obszar RAM 20h-29h jest zarezerwowany do wykorzystania przez główny moduł, ;albo jako dane w postaci bajtów, aolbo poszczególnych bitów
flags DATA 20h ;ten bajt zawiera poniższe
flagi adresowalnych fhook bitów bit 00h ;w postaci indywidualnie ;Flaga ustawiana przy zdjęciu
fsend bi t 00 ii słuchawki, kasowany po ;przetworzeniu ;Flaga nadawania
fflash bi t 022l ;Flaga flash”
fhang bb-t o3h ;Flaga zawiesennao rozmowy
ftime bb-i: 00h 'Flaga bloku czasowego 40 s
fdigit bii 05h ;Flaga impulsowggo wejjcia
fonhook b:Lt 06h cyfrowego 'Flaga odwieszenao ustawanno w
fdtmin bli 00h 700 ms po odłożeniu, kasowana 'następnym podniesieniem ;Flaga wejściowa dtmf
inds DATA 21h ;Wskaźniki-ten bajt zawiera
174 142 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 0bh ,'Kasuj wyświetlenie cyfry
horn bit 0ch ;Wskaźnik sygnału dźwiękowego
f init bit 0dh ;Ustawiany wyłącznie przez TRU! (1=inicjalizacja wykonana
f start bit 0eh ;1=przerwanie odłożenia zablokowane na 500 ms
test enable bit 0fh ;autotestowanie po pierwszym zdjęciu słuchawki ze ;względu ;na wibrację styków
indasc data 22h ;Sterowanie włączeniem wskaźników i fonii, ;ten bajt zawiera następujące bity:
inuse bit 10h /Wskaźnik pracy
ap1 bit 11h ;ścieżka fonii
ap2 bit 12h ;ścieżka fonii
test_end bit 13h
;not_error bit 14h ;bez błędu w samotestowaniu
return ring bit 15h
error flag bit 16h ;błąd samotestowania
ring_second bit 17h
io_status DATA 24h ;bity 18h-lfh
strobe bit 1ch
flags2 DATA 24h ;bity 20h-27h
fdig_ready bit 20h ;flaga gotowości cyfry
174 142
fanswer bit 21h /flaga odpowiedzi na dzwonek
fsnndOimnr bit 22h /flaga do nadania po 4 s
f inusngffOimine bit 23h /flaga wskazująca działanie
funlgckOimnr bit 24h bloku czasowego przy /sprawdzaniu wyłączenia lampki przy pracy /flaga do odblokowania po 4 s
idtone bit 25h /flaga wskazująca włączenie DT
idecoder busy bit 26h /flaga wskazująca, że dekoder
dtmf nie jest jeszcse skasowany
ibellsound bit 27h jflaga :L^1^a dzwonka
px1 temp DATA 25h /bufor we/wy dla portu pxl-zawinra
bity: mi0nlq1 bit 28h / z dekodera dtmf
mi0nlq2 bit 26h /z dekodera dtmf
miteląJ bit 2ah / z dekodera dtmf
mi0nlq4 bit 2bh / z dekodera dtmf
power hold bit 2ch /podtrzymuje zasilanie po
awarii zasilania do wyłączenia TRU
sparel bit 2dh /zapasowy pin I/O
spare2 bit 2eh /zapasowy pin I/O
nO-ring bit 2fh /zapasowy pin I/O
px2 temp DATA 26h /bufor I/O dla portu px2 (30h-37h)
lggpswiOch bit 30h /stan niski zamyka pętlę
ring bit 31h /stan niski włącza dzwonek ps
mute bit 32h /wyciszenie odbioru radiowego
roh boost bit 33h /zwiększa wzmocnienie dla tonu
roh sw sendtimer bit 34h /włączenie zwieracza daje
opcjonalne nadawanie ! 4 s
sw dialOgnn bit 35n /zwieracz włączgny=różnicgwy
ton wybierania dla roam /wyłączony oznacza moduł
174 142 obsługowy modułu
sw gndstart podstawowy bit 36h /IN=start pętli, OUT=start
sw data bit 37h /zwieracz włączony uniemożliwia, wyłączony umożliwia /przekazanie danych cyfry do TRU po nadaniu (dla /umożliwienia funkcji celi.switch)
lamps temp DATA 27h /zawiera bity:
free bit 38h /nie dotyczą koniecznie lampek-zapamiętują bieżący stan /wskaźników
free bit 39h r
free bit 3ah r
free bit 3bh r
roamiamp bit 3ch t
noservlamp bit 3dh t
locklamp bit 3eh t
inuselamp bit 3fh t
flags3 DATA 28h /pozostałe flagi - bajt zawiera następujące indywidualnie /adresowalne bity
frohtimeout bit 40h /ustawiony, kiedy rohtone
występował przez 1 minutę
fcall bit 41h /ustawiony przy wchodzącym
połączeniu, skasowany przy jego braku
f one sec bit 42h /ustawiony przy zdjęciu
słuchawki na 1 s tak:, aby nie /powodować zdalnego odwieszenia, jeżeli słuchawka zdjęta /natychmiast po lokalnym odwieszeniu
174 142
roh_on bit 43h ;włącza i wyłącza rohtone
fspec1 bit 44h ;flaga do wykorzystania z danym TRU przetwarzana w ;update_displays co 71,1 ms, wywołuje spec2
fspec2 bit 45h ;flaga do wykorzystania z danym TRU przetwarzana w blokach ;czasowych odwieszenia i zdjęcia słuchawki co 277,8 us, /wywołuje spec2
fremote hup bit 46h ;wskazuje zdalny impuls synchronizujący opóźnienie 700 ms
flocktimer sekundach bit 47h ;flaga zablokowania po 2
.*********************************************************** /Realizowane zadania TRU .*********************************************************** r
f_cmds DATA 29h ;opcjonalne własne numery zadań TRU ;Zadania TRU są wywoływane z programu głównego w module TRU.
f ;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 CTX30
174 142
3100Α i ustawienie w razie potrzeby trybu /cichego alarmowania (patrz tb^!
/ /Zadanie 2:
/ /a) Podwójna komutacja NAM dla NEC 3700 (patrz nae01) /
/Zadanie 3:
^Sprawdzenie braku zasilania dla NEC 37 00 (patrz nae01) /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 CTX3100A 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 Aueovwdox (patrz tae01 i tbe01) /b) Monitorowanie trybu cichego alarmowania w Autovidox CTX3100a i ustawienie w razie potrzeby trybu /cichego alarmowania (patrz tbe01) »9999'9999r999r99999,999r99t999f99999999f99999r99999f99999r999r9'999':999'99 r
/Obszar RAM 2ah do 2dh jest zarezerwowany do wykorzystania przez moduły TRU albo jako bajty DATA albo /poszczególne zmienne BIT.
.***********************************************************
/TRU-bitsl data 2ah //oit5Oh. do 57h
/TRR_bwts2 data 2bh /bit58h do 5fh
/TRU bits3 data 2ch //ob^i^^(^ln do 67h
/TRU_bits4 data 2chi /Łiit68łi do 6fh
/Używane do tablicy obsługi! Sprawdź podprogram tru!
i o m_b data 2 eh
#tdO bit 7 Oh
#tdl bit 71h
#td2 bit 72h
#td3 bit 73h
#dtmf_out bit 74h
#enable_test bit 75h
#enable_tone bit 7 6h
#enable_tone in bit 77h
io m c data 2fh
#ext_led bit 78h
#enable_special bit 79h
#enable_busy bit 7ah
#enable 16h bit 7bh
#conn loop bit 7ch
/bit 78h do 7fh /bit 7Oh do 77h f
/Reszta zmiennych wewnętrznych RAM (adresowałych BAJTOWO) ·***********************************************+*********** looptest_timer data 30h looptest_timer2 data display_delay data 32h dsp_ptr data 33h
LCD mikrotelefonu msg_ptr data 34h
TRU /opóźnia test pętli do 2 ms po /zwarciu loopsw dla umożliwienia 31h /odpowiedzi SLIC /opóźnia aktualizacje wyświetlacza do /kolejnych 71,1 ms /wskaźnik bufora wyświetlacza /wskaźnik bufora komunikatu .*********************************************************** /Następujące bajty są zarezerwowane dla modułów TRU do
174 142 wykorzystania tylko jako /bajty DATA (nie adresowalne BITOWO) .***********************************************************
/TRUthyteO data 38h#
/TRUtbyaei data 3hh#
/TRU^y^ data 3ah#
/TRU—bytea data 3bh#
,· TRUtbyte4 data 3ch#
/TRUtbyte5 data 3dh#
/TRUtbyte6 data 3eh#
/TRU bytel data 3fh#
/Stos daemuei bajty 4hh
5fh f
r /Wybierane cyfry są przechowywane w bajtach od 60h do 7fh w liczbie łącznej 32, /włącznie z kodem SND wykorzystywanym jako terminator .'*'*-k'k'*'k-**'*'k'*'k'k'k*'k'k'*'k'k'*'*'k*·*********************************:*:* t
prefix data 60h :ważne tylko [0] i [1], jeśl
nie, FFh
first aigCa data 61h /Pierwsze trzy lokacje w buforze cyfr
aiconataigCt data 62h / (numery alarmowe, nr kierunkowy,
thirataigca data 63h /początek numeru 7-cyffowego itp)
.***********************************************************
174 142 'Definicje bitów portów, port1 i port2, 8051 (wspólne dla wszystkich bloków)
#tO—aelect bb t p1.2;
#dt pwm bit p1.4 'Pwm wybierania tonowego
#twenty Sz pwm bbt p1.5 'Pwm 20 Hz dla dzwonka
#;power—mltl— bii p1.6 'Wejście, 0=brak zasilania
#1c_ ba.t p3.2 'Sprawdzanie obecności prądu
pętli, (Extlnt0)
#ring_ground_ bbt p3.4 'Wejście: wskazuje ziemię na
przewodzie dzwonienia
#;strobe bk p3.5 'Wejście: gotowość cyfry z
dekodera DTEM
#a0 bbt p1.6
#a1 bbi p3.5
'Punkt wejścia przy włączeniu zasilania i wektory podprogramów przerwań:
org jmp OOOOSo ini t 'Wektor resetu
org OOO3ło 'Wektor obsługi ExtIntO
jmp ofhook_edge 'Pocbiiesienie, lasS wybieranie
impulsowe db OffL,O7;fL,Q7rfL,Ofi, 'Wypełnienie dla Epromu i emulatora org 777bS 'Wektor (tlO^yc bloku Timer0
174 142 jmp onhook_timer /Do śledzenia czasu odwieszenia słuchawki db Offh,Offh,Offh,Offh
org 0013h /Wektor obsługi Eetlnti
jmp intl_service /Zwykle służy do odczytu
danych z TRU
db 0ffh,0ffh,0ffh,0ffh /
org 001bh /Wektor (th0)svc bloku Timer1
jmp offhook timer /Do okresowych przerwań bloku
czasowego db 0ffh,0ffh,0ffh,0ffh /
org 0023h /Wektor svc portu szeregowego
jmp ser port_device /Zwykle służy do odczytu
danych z TRU
db 0ffh,0ffh,0ffh,0ffh /
org 002bh /Wektor svc bloku Timer2/ext2
jmp timer2_device /
db 0ffh,0ffh,0ffh,0ffh /
org 0033h /Wektor obsługi PCA
jmp pca service /Dla modulatorów srerokoici impulsu
db ”(c) Copyright Codecom
db 1992
$include(main.msg) $include(tru.msg)
174 142 init:
%set(intmask,0) /Zwykle dwa poziomy przerwań chyba że intimask w TRU, ;sekcji(TAE01.ASM:Audiovox) ustawiony na wartość różną od zera;
mov clr clr mov mov sp,#3fh/ rs0/ rsl/ a, #0/ r0,#0/ /Stos rozpoczyna się od 40h
/Wybierz bank rejestrów ;Jak wyżej ,•Wypełnienie RAM zerami ;Wskaż pierwszy RAM 0
fill_ram:
mov @r0,a; ;Pojedyiczo lokacje
inc r0/ ;Wskaż następną lokację
cjne r0,#0,fill ram /Koniec wypełniania RAMu (FFh)
clr pl.2/
mov rl,#laii_flag
mov @r1,#0 ;Wczytaj następną flagę
inc r1
mov @r1,#0
inc r1
mov @rl,#0
mov @rl,#0
cali reset_io_m ;resetuj tablicę obsługi
mov io i b,#0 ;zablokuj moduł
cali write io i b
mov io_m_c,#0 ;zablokuj moduł
cali write io m c
portu cali reset_io mov s2,#0f8h ;reset i/o rozszerzony do #13 ;ustaw p2 na sterowanie ekssaiderel
174 142 mov px1_0emp,01111111H /inicjalizuj razem z pgwnr_hgld ca11 write_pxl mov px2_0nmp,#11110011b /inicjalizuj: loopsw otwarty, brak dzwonienia
cali write px2
ca11 read px2 /wczytaj klucze opcji
mov 0mo0,000000011l /TiimerC jest podwójny, 0imer1 może być generatorem /taktującym
mov ip,01001010b /•ustaw priorytety pzrzerwań.
mov ie,#11001011b· /•oe&louuj PCA. Umro, . ExOO, Tmr/Ext2, SnrPort, Extl /przez ίniajρlizaaję TRU
setb i00 /ExtInt0 jest wyzwalany zboczem
setb it1 /Extlntl jest wyzwalany zboczem
mov cmod,#8Oh /wyłącz w itoane luPoow^,
clock/12
mov ch, #0 /•ładj licznik górny
mov cl,#o /ladj dolny
mov ccapOl,#0fff /doO-ny bajt dla kogiopaaooa bloOu
czasowego
mov ccapOh,,0 /górny bajt dla kugiopaaooa Mokk
czasowego
mov ccapmO,#04 9h /PCA0: programowy blok czasowy
mov ^capl! ,0 /PCA1: (Dial Tone) zostaje
wyłączony
mov cacpm2,#0 /PCA2: (pwm 20 Hz) wyłączony
clr t^l /przerwaniowy bolok czasowy zdjęci
słuchawki jeszcze nie uruchomiony
clr trr /blok czasowy zawieszenia jeszcze
174 142 nie działa /Inicjalizacja zmiennych bajtowych mov time_on1,#0 /inicjalizacja przerwaniowych bloków czasowych odwieszenia
mov time_on2,#0
mov time_off1,#0 ;inicjalizacja przerwaniowych bloków czasowych zdjęcia ;; słuchawki
mov time_off2,#0
mov time_off3, #0
mov flags,#0 ; kasuj wszystkie flagi
mov flags2,#0 /kasuj wszystkie flagi
mov flags3,#0 /kasuj wszystkie flagi
mov inds,#0ffh ,-wartości początkowe
mov indasc,Offh ,-wartości początkowe
mov pulse_digit,#0 ;0=nie osiągalna od teraz żadna
cyfra impulsowana
mov f_cmds,#0 ;0=nie zadane żadne zadanie TRU
/Inicjalizacja zmiennych bitowych
clr test_enable
clr test_end
clr error_flag
clr return_ring
setb fonhook /1=zakłada odwieszenie słuchawki przy włączeniu zasilania
clr finit ,,0=jeszcze nie zakończona inicjalizacja TRU
clr fremote_hup
clr fcall ;0=jeszcze nie ma połączenia
wchodzącego (ALERT)
cali clr—dsp
Cali cali clr_msg spiaifia inits
mov caαp41;#0ffh
mov caap4h;#0ffh
mov ccapm4,#48h
or1 cmod,#4Oh
setb setb cr tr0
/kasuj bufor wyświetlacza LCD mikrotelefonu /kasuj łoiufoor komunikatów TRU /dokoaaj iniujalZlaUji typowych dla TRU /dolny bajt dla u!owa kontrolnego /górny bajt dla jło wa kontrolnego /PCA4:odblGu^ komparator i przerwanie /o<blloSuj ^<yy blok czasowy /uruchom licznik PCA /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).
tim^wakeup:
ca11 watchdog mov a;time_ln2 cjne a;#255;eimi_śakeup przebudzenie TRU mov czsw_ęfndsta:rt
1=GS mov ^^switch—,c clr no_ri.ng ca11 śriti_px2 jmp start /podj upływ/ czasu /odczekaj tu 2,55 s na ;sprawdź zwieraćz GS-LS, 0=LS /zapisz tryb startu
174 142 $include(tru.asm)/moduł TRU, zatem przy assemblacji można otrzymać INTMASK .*·*************·****·****·************************************* /Start, i punkt ponownego wejścia po odwieszeniu .*********************************************************** start:
mov r0,#60h /wskaż początek bufora cyfr
mov a,#0ffh /wypełnij nie-cyframi
digbuf:
mov @r0, a /lokacje pojedynczo
inc r0 /wskaż następną lokacje
cjne r0,#80h, ole_digbuf /do 7fh
mov r0,#60h /wskaż początek bufora
mov ^,#0 /inicjalizuj liczbę cyfr
setb f^start /^włącz deglitching klucza
hook _switch
clr t/0 /kasuj przerwanie w danym przypadku
setb ee0 /odblokuj przerwanie zdjęcia
słuchawki, jeżeli zablokowane /Zamknięta pętla aż do wykrycia połączenia wchodzącego, albo podni/sτ/nia słuchawki w celu /wybierania.
hookchk:
ca11 watchdog jb tmsX_mnablm,do_Xest /jeżeli uaktywnione samot/stowanim mov fccmds,#1 /ładuj rozkaz ID
174 142 / cali trucra /wykonaj w razie potrzeby zadanie taskl dla TRU jb fhook]finsai /przerwanie, jeżeli zdjęcie słuchawki jnb fαnswer]hookchk /wróć:, jeżeli nie wykryto wchodzącego dzwonienia
jmp ringtanswer /odpowiedz na dzwonek, zdjęto
słuchawkę podczas trwania / stanu
ALERT (połączenie wchodzące)!
yinsai:
jmp first
dottes^:
mov rl,#raintflagtirron
mov @η,#0 /ustaw błąd tonu jako zajęty
lub 1000 Hz
mov rl,#mainitflagt error
mov @rl,#0 /ustaw błąd tonu jako zajęty
lub 1000 Hz
clr test^^
clr errortflag
clr irrortflag
mov ri]#maintfiag
mov a, @rl /wczytaj pierwszą flagę
ani a,#00000001b /sprawdź czy wykonano hook
caU start hook test /test odwieszenia
test^o©!::
jb error flag, routerror
cali dialt test /test wybierania
tiat_aial :
jb error flag,routerror
ca11 start tdtmf /test dtmf
174 142 test_dtmf:
jb error_flag,rou_error call start^ring-test ;test dzwonienia test_ring:
jb error_flag,rou_error call start_riig_ais_test ;tpst odpowzedzi na dzwonienie test_ring_a:
jb error flag,rou error
call make_call ;test połączenia
jb error_flag,rou error
call until fin tim ;wyjście bez błędów
rou error: call error acc ;ładuj zmienną błędu
; jmp wait_ein uitil_fin_til:
setb test_eid
clr tr0 mov time_on2,#0 ;pzzp odwiellinip op 10 mis
mov ttme_onl,#0 /reetp np następnyhP 36
mov test min,#0 /10 sp p 255=,55P s
setb tr0 wait end: call watchdog j-pozostań w tym miejscu do
upłynięcia 1 minuty mov a,test_lii cjn a,##3,wait end ;,25p x 23p = 60,88
call frn^c^lf /wróp do nonaal
jmp hook ;wróć do normll
i* * * ii iii-i: ki k i k k *(*;·)( k iii·*·* k k i •kk*; ** H k i f
; start Okkk_tlst - początek testu kdwtlezliia słuchawki
.λ******************************************************·
174 142 start-hock-test:
mov rl^main flag 'wczy^aj, flagę iaain
mov a, @r1
orl l,#0777001b
mov @r1,a ;ustaw flagę zdjęcia słuchawki
setb enable test ;ociZa<zz aparat
clr conn loop
cali wr^e^o^^ ;i dołąco moduł
cali reset io_m 'resetjo tablicę obsługi
cali wr^e^o^^
cali write—iO—m_c
clr loopawich_ Odłączono druga stronę
cali write_px2 testJSup:
setb fremote_hup
cali Sup
mov ł^ps^er^, #0
cali write io_c 'zaktualizj, LEDy
mov r6,#10
nose:
push 6
mov γ6,#01 ;mociuł zwłoki
loop_m:
mov r7,#0ffS
djnz r7,$
cali watchdog
djnz r6,loop m
mov γ6,#01 'moduł zwłoki
174 142
loop ma: mov r7,#0ffh r7,$ watchdog r6,loop ma r6,#0ffh
djnz call djnz mov
loop iUb:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loop mb
mov r6,#0ffh
loop_ mc:
mov r7,#0ffh
djnz r7,$
call watchdog
djnz r6,loopimc
pop 6
djnz r6,nose
test_ hup2:
clr fanswer
clr f hook
jnb fhook,not_hook
;moduł zwłoki ;moduł zwłoki
- O.K.
:kasuj flggę det ;niewykrycie zdjęcia słuchawki jmp hook_error not_hook_det:
setb fonhook setb conn_loop cali write_io_m_c mov r6z#0f ff /wykrycie zdjęcia słuchawki - błąd ;test zdjęcia słuchawki ące zdjęcie słuchawki do ; interij su ;i^o<^T^ł zwłoki
174 142 loop_m_off:
mov r7,#0ffh djnz r7,$ cali watchdog djnz r6,loop_m_off mov r6,#0ffh /moduł zwłoki loop_m_off2:
mov r7,#0ffh djnz r7,$ cali watchdog djnz r6,loop_m_off2 mov r6,#0ffh /moduł zwłoki loop_m_off3:
mov r7,#0ffh djnz r7,$ cali watchdog djnz r6,loop_m_off3 mov r6,#0ffh /moduł zwłoki loop_m_off4:
mov r7,#0ffh djnz r7,$ cali watchdog djnz r6,loop_m_off4 mov r6,#0ffh /moduł zwłoki loop_m_off5:
mov r7,#0ffh djnz r7,$ cali watchdog djnz r6,loop_m_off5 test_fhook:
jb fhook,detected_hook /jeżeli wykryto zdjęcie słuchawki - O.K.
/jeżeli nie wykryto zdjęcia - błąd
174 142
OnOnaOed_hook:
clr eeO jzL^l^ZL^;kluj przerwanie odwieszenia do wystąpienia tonu /wybierania dla uniknięcia wybierania zakłóceniami /komutacyjnymi
clr hhoOutout /pokaz TRU zdjęcie słuchawki
seOb hooUtwouO /jak w^/ż^j
clr fhook / kasj flagę
dO delayl:
cali waOahOoe
jnb la_,tOill_off _hook
jmp hooU_nrror /błąd odwieszenia
tti0l_off_hooU:
jb h_tOρrO,Ot_OnlαyO /zostanie ustawiony po nliminpaji
zakłóceń komutacyjnych 500 /ms
clr iie /Upsuj flagę przerwania odwintznnla
dla tego przypadku
seOb ex0
seOb /1=Dial Tone jest: włączony
cali 00onn /oidJ^oij Dial Tone
ret /wyjście z testu odwieszenia
hook error:
mov r1,0main flag error
mov @r1,01 /błąd SLIC odwieszenia
setb nrror_flpe ret sprawdza ton wybierania .kkkk-kkkkkkkkkkkkk-kkkkkkkkkkkkkkkkkkk-kkkkkkkkkkk-kkkkkkkk-k-kkk /
0ial_0nst:
mov r1,0liain_flae /wczytaj flagę main
174 142
mov a, @rl
orl a,#0000010b
mov @rl, a
iriov r6,#0ffh
y_dial:
mov r7,#0ffh
djnz r7,$
cali watchdog
djnz r6,delay_dial
mov r6,#0ffh
y_dia!2:
mov r7,#0ffh
djnz r7,$
cali watchdog
djnz r6,delay_dial2
clr tri
mov time_off1, #0
mov time_off2, #0
setb tri
/ustaw flagę tonu wybierania /opóźnienie zdjęcia słuchawki /opóźnienie zdjęcia słuchawki /odczekaj 711 ms na wykrycie wybierania verify_dial:
cali read_io_m_a ani a,#00000001b cjne a,#00000001b,dial_ok
O.K.
sprawdź ton wybierania /jeżeli 0 to wybieranie cali watchdog mov a,time_off2 /nie wykryto wybierania cjne a,#10,verify_dial /odczekaj 711 ms, jeżeli nie wykryto zajętości - błąd tonu /wybierania mov rl,#main_flag_error mov @rl#3 /błąd wybierania
174 142 ret dial_ok: ret • ★ ★ ★ ★ kdk k k k-k m m i k i m m m k f f i k k k -k i -k i m k k i -k i i i -k i k k k F /start_dtmf - początek dtmf start_dtmf:
clr fdtone
mov ccapml, #0
ani iO m b,#0fOh
orl io_m_b, ttcero /wyślij 0 cali send_dtmf cali delay_dtmf
cali disable_dtmf
cali delay_dtmf
cali get_test
test_cero
cjne a,#0h,dtmf_error_flag /sprawdź 0
ani iO m_b,#OfOh
orl io_m_b,#uno /wyślij 1
cali send_dtmf
cali delay dtmf
cali disable_dtmf
cali delay_dtmf
cali get_test
test_l:
cjne a, #lh,dtmf_error_flag /sprawdź 1
ani iO m_b,#0f0h
orl io_m_b,#dos /wyślij 2
cali send dtmf
cali delay_dtmf cali disable_dtmf
174 142 cali delay_dtmf cali get_test test_2:
cjne a,#2h,dtmf_error_flag ani iO_m_b,#0fOh orl io_m_b,#tres cali send_dtmf cali delay_dtmf cali disable_dtmf cali delay_dtmf cali get_test test_3:
cjne a,#3h,dtmf_error_flag ani i 0_m_b,# 0 f Oh orl io_m_b,#cuatro cali send_dtmf cali delay_dtmf cali disable_dtmf cali delay_dtmf cali get_test test_4:
cjne a,#4h,dtmf_error_flag jmp go_to_5 dtmf_error_f1ag:
;sprawdź 2 /wyślij 3 ;sprawdź 3 'wyślij 4 ;sprawdź 4 'wyślij 5
jmp error_dtmf
go_to_5:
ani iO m b,#0fOh
orl io_m_b,#cinco
cali send dtmf
cali delay_dtmf
cali disable_dtmf
cali delay_dtmf
cali get_test
test_5:
cjne a,#5h,dtmf_error_flag ani i O_m_b,#O f Oh drl io__m_b, #seis cali send_dtmf cali delay_dtmf cali disable_dtmf cali delay_dtmf cali get_test test_6:
cjne a,#6h,dtmf_error_flag ani i 0_m_b,# O f Oh orl io_m_b,#siete cali send_dtmf cali delay_dtmf cali disable_dtxnf cali delay_dtmf cali get_test test_7:
cjne a,#7h,dtmf_error_flag ani iO_m_b,#OfOh orl i o_m_b,#o cho cali send_dtmf cali delay_dtmf cali disable_dtmf cali delay_dtmf cali get_test test_8:
cjne a, #8h, dtmf_error_flag ani iO_m_b,#0fOh orl io_m_b,#nueve cali send_dtmf cali delay_dtmf ;sprawdź 5 /wyślij 6 ;sprawdź 6 /wyślij 7 /sprawdź 7 /wyślij 8 /sprawdź 8 /wyślij 9
174 142
call disable dtmf
call delay dtmf
call get__test
test 9:
cjne a,#9h,dtmf_error flag ;sprawdź 9
ani i0_m__b, #0f Oh
orl io_m_b,#05h /wyślij a
call send_dtmf call delay_dtmf call disable_dtmf call delay_dtmf call get__test test_a:
cjne a,#0ah,dtmf_error_flag /odbierz a
ani i0_m_b,#0f0h
orl io_m_b,#0dh / es b
call send dtmf
call delay dtmf
call disable dtmf
call delay dtmf
call get__test
test_ _b:
cjne az#0bh,dtmf error flagi
jmp go_to c
dtmf error_flagl:
jmp error dtmf
go_to_c:
ani i0_m_b,#0f0h
orl io_m b,#03h / es 3
call send dtmf
call delay_dtmf
174 142 call d^able-b^f call delay_dtnif call get_test test^:
cjne k,#0bh,dtmf_eiior_flagf ani i0_m_b,#0f0h orl io_m_b,#0bh ;es d call send_dtmf call delay_dtmf call diaable_dtmf call delay_dtmf call get_test test_d:
cjne a,#0bh,dtmf_erior_flagl ani 10_m_b ,#0fOh orl io__ii_bi#07h ; ee 7 call sendidtmf call delayidtmf call disableidŁm^f call delayidtmf call get_test test_e:
cjne a, #0bh, dtbf_sii·oi_flagl anl 10_m_b, #0fOh orl io_m_b,#0fh ;;s f call asnd_dtbf call de^y-dŁmi call d1aabls_dtbf call de^yidtof call get-test test_f:
cjne a, #0bh,dtbf_siior_flagi ret bez błęddw
174 142 irnor_dtmf:
mov r1]ftraintyiαgtinror mov @rl,#4 /błąd setb enrortflαg ret f
/ataratningtteat - początek testu dzwonienia ·++★+++++++++++★++++★+★++++++++++++++++++++★++++++++++++++++ aaara_ning_test:
mov n1]#:raCntyiag
mov a, @r1
orl a,#00001000b
mov Sr^a
clr ring second
clr conn loop
call write io m c
setb fnirote hup
call hup
mov r6, #6
loop ring wait:
push 6
mov r6,#0yyh
iooPtmlb:
mov r7,#0ffh
dj^ r7,$
cali watchdog
djaz r6,iooPtmlb
mov r6,#0ffh
^op^cc:
;rcicjuj dzwonienie ;rczdZat flagę main /ustaw flagę testu dzwonienia ,· ssuuhawka odłożona /zwłoka /zwłoka
174 142
mov r7,#0ffS
djnz r7,$
call watcSdog
djnz r6,loop mcc
pop 6
djnz r6,loop ring wait /•połączenie wchodzące
clr apl ;tntdj)dj połączenie wchodzące
jb lc_, loop—ring—Of
jmp ring flag
lccP-ring-O: ;wrac<jj tu dopóki nie rozpocznie się dzwonienie Iub
clr tr0 'upłyną 2 s
mov time on2,#0
mov time onf,#7
setb tr0
wait 2 sec:
call watcSdog
jnb fanswer,not answer
jmp ring flag 'błąd wystąpienia odpowiedzi
not answer:
call write io m a
ani a, #000001003:
cjne l,#77077ł77b,rtng starts 'jeżeli 7-rozpoczynl się dzwonienie
mov a,time on2 'sprawdź, czy upłynęły 2 s
cjne a,#200,wait 2 sec 'czekaj 2 s do zatrz^maania dtmf
jmp ring flag 'upłynęły 2 :3, błąd
rtng_atlrts:
mov r6,#0ffh 'zwłoka loopjmbbc:
174 142
mov djnz τ7,00ϋΗ r7,$
caOO wp0ah0oe
djnz r6,loop mbbc
mov r6, 00ϋή
Ooop iiccO
mov Γ7,00ϋ
djnz r7,$
calO wa0ahOoe
djnz r6,Ooop mccd
ring ^ΟργΟ:
cOr 0r0
mov tirne-O^, 00
mov Oim-OnO, 00
setb 0r0
wpit
caOl wa0ahOoe
jnb hantwnr,no0 answerl
jmp rine_hOρe
/zwłoka no0_αntwerl:
cali rnaO_eo_m_a test-lSO:
ani p,0000001001 ;sprawdza ciągłość dzwonienia w 1,3 s /sprawdda dzwonienie w ciągu 1,3 s /błąd wystąpienia odpowiedzi /powinien być niski podczas 1.3 s cjne a, Ο000001001, rine__expirn jmp rine_hOpe / dzwonienie zanika w 0,3s rine_expire:
mov a,0ime__on2 cjne a,090,wpi0_130mtna /czekaj 130 ms wpi0_250mtea: /dzwonienie powinno ustać po
1,5 s
174 142
cali watchdog
cali read io m a
test 250:
ani a,#00000100b
cjne a,#00000100b
test_stop:
jmp ring stop_
ring_not_expire:
mov a,time_on2 cjne a,#250,wait test_flag:
;ale czekamy 2,5 s na sprawdzenie, czy /ustanie /powinien być niski podczas powyżej 2 s ,ring_not_expire /dzwonienie zanika przed 2,5 s /po 1,5 s powinien być wysoki 250msec /czekaj 250 ms
jmp ring flag /błąd nieustania dzwonienia w 2,5
stop /czekaj 2,55 s
clr trO
mov time _on2, #0
mov time oni,#0
setb trO
wait_2seca:
cali watchdog jnb fanswer,not_answer2 jmp ring_flag /błąd wystąpienia odpowiedzi not_answer2:
mov a,time_on2 cjne a,#255,wait_2_seca /czekaj 2,55 s do zatrzymania drugiej pętli dtmf jb ring_second,ring_stopl /sprawdź dzwonek 2 razy jmp loop_ring__off /rozpocznij jeszcze raz ring_flag:
setb apl /kasuj połączenie wchodzące mov rl,#main_flag mov @rl,#5 ;błąd dzwonienia setb error_flag ring_stopl:
test_timbre:
ret /wyjście bez błędu /start_ring_ans_test - odpowiedź na dzwonienie
Z start_ring_ans_test:
/inicjuj dzwonienie
mov rl,#main_flag /wczytaj flagę main
mov a, @rl
orl a,#00010000b
mov @rl, a /ustaw flagę testu dzwonienia
loop_ring_off2: /wracaj tu dopóki nie rozpocznie się ponownie dzwonienie clr trO mov time_on2,#0 mov time_onl,#0 setb trO wait 2 sec2:
call watchdog
jnb fanswer,not answera /wyjście przy odpowiedzi
jmp ring flag
not answera:
call read_io_m_a
ani a,#00000100b
cjne a,#00000100b,ring starts /jeżeli 0-odbywa się
dzwonienie
mov a,time on2 /sprawdź, czy upłynęły 2 s
cjne a,#200,wait 2 sec2 /czekaj 2 s do zatrzymania
jmp ans flag /upłynęły 2 s
174 142 rńng_ppeeent:
setb conn lup / odpowieH ow ezwanżanćw
cali wenei io m c
mov e7;#0ffh / zcśola alt aste’αlnnnw fannwer
wait ans:
mov #0ffh
djuz ζ6,$
call wleahdlg
djnz ζ7^ζϊ] ans
mov e7;#0ffh
śanepaΩSl
mov e6;#0ffh
djuz $
call watchdog
djnz e7;wantpansa
test ans:
jb flnsśie;lk ring /jeżeli jest lnpleirnź; to O.K.
jmp anspflag nie wystąpił błąd
ans flag:
mov ζΙ,^ζϊπ. flag
mov @ζΙ,#6 /błąd ncelnirniα
setb flag
setb apl
clr fanswer
ret
^.ring: /wyjście bez błędu
timbre:
clr fanswer
setb ap1 /kasuj połączenie wchodzące
ret
174 142 .*********************************************************** /make_call - zestaw połączenie dla sprawdzenia radia •i********************************************************** r
mov rl,#mainl_flag
mov a, @rl
orl a,#00000001b
mov @rl, a
test mute
jnb power_,power is ok
linii powinien być niski (0)
mov rl,#mainl_flag error
mov @rl,#l
setb error_flag
jmp pre onhook
power is ok:
mov a,#func
cali wrbus
mov a, #7
cali wrbus
cali clr dsp
mov a,star
cali wrbus
/wczytaj flagę mainl /ustaw flagę testu połączenia /jeżeli radio jest O.K., stan / ustaw błąd zasilania /funkcja odczytu nr telefonu mov r7,#0ffh /zwłoka na przesłanie numeru do interfej su wa?it_min:
mov r6,#0ffh djnz r6,$ cali watchdog djnz r7,wait_min mov r7,#0ffh
174 142 waia_mCna:
mov r6,#0ffh
r6, $
Call watchdog
aend r7,wait mina
mov a,#9
call wrbus
mov a,#0ah
call wrbus
/generuj połączenie ze swoim nurerir telefonu
mov a^dspbuf start /po^erz aktualny wskaźnik
add a, #3
mov rl, a
mov a, /odczytaj komunikat w
anl a,,ffh
call wrbus
inc rl
mov a, @rl komunikat w
ani
cali wrbus
inc rr
mov a,@rl /^czytaj komunikat w bbfcond
ani a,#ffh
call wrbus
inc n
mov aa ,η /sdahyZaj komunikat w bbfcrnd
ani a^fi
call wrrbs
174 142
inc mov an1 call rl a, a,#ffh wrbus /odcztaaC komuniaaC w buforze
inc t1
mov a, @rr /odcztaaC kkimnikat w buforze
anl a, #ffh
cali wrbus
inc rr
mov a, @γ1 ;odczyaaC kknmnikat w buforze
ani a,#ffh
cali wrbus
inc t1
mov a, @γ1 /odczyajC ^πΐϋΐίkat w buforze
anl a,
cali wrbus
setb fsend /ustaw flagę aadawania
mov a, ,#emd /zestaw połączenie
cali wwIus
setb emnaie special :odbokuuC
cali writm To m c
t/stjnutel:
clr mutm /nie wyciszjj
cali writm pe2
clr XiT /zwłoka na sprawdzenie pracy
mov txme_offi,#0
mov Xime_of f2(#0
174 142 setb tri delay_call:
mov a, time_off2
call watchdog
cjne a,#80,delay call ;czekaj 1 ? s
test_mute2 1 · ;test tonu zajętości
clr tri ;zwłoka na sprawdzenie pracy
mov time_offl,#0 mov time_of f 2, # 0 mov time_off3,#0 setb tri cont_waiting:
jnb inuse,still inuse
mov rl,#main_flag error
mov @rl,#4 ;ustaw błąd pracy
jmp call error /jeżeli znika iube ustaw błąd
still_inuse:
call ani cjne read_io_m a 'sprawdź ton wybierania a,#00000001b
a,#00000001b,busy ok 'jeżeli 0, zajętość O.K.
call read_io_m a ;sprawdź ton wybierania
ani a,#00000001b
cjne a,#00000001b,busy ok 'jeżeli zajętość lOOOkHz-to
O.K.
mov a,time_off3 ;nie wykryto zajętości
call watchdog
cjne a,#lh,cont_waiting 'czekaj : 18,2 s jeżeli nie
wykryto zajętości
174 142 mov rl,#mainl_flag_error
mov @rl,#3 ;ustaw błąd tonu zajętości lub 1000Hz
call_error:
mov a,#endl ;zestaw połączenie
cali wrbus
setb error_flag /jest, i słuchawka odwieszona
jmp pre onhook
tlOOOhz:
busy_ok:
mov a,#endl /zestaw połączenie
cali wrbus pre_onhook:
clr conn loop /jest, i słuchawka odłożona
cali write_io_m_c /i przyłącz moduł
cali hup
ret
.*********************************************************** ;error_acc - ustaw kod błędu .*********************************************************** error_acc:
mov rl,#main_flag_error mov @rl,#4 /błąd cjne a,#1.check_hook_ring mov rl,#error_code ;błąd odwieszenia SLIC mov @rl,#l jmp exit_error
174 142 cOlck_hkkk_riIig:
cjne α,#2.cOlck_niαl_flag
mov ρ1,#ιρρ^ code ;błąd knwllezliiα przy
nlwkileiiu
mov @p1,#2
jmp exit ippop
check dial _flag:
cjne a, #3.οΟιο^^^ flag
mov rl, #error_code ;błąd wybierania
mov @rl,#3 jmp exit_errop cOelk_dttlf_faag:
cjne a,#4.check hook ping
mov rl,perror code /bbłd dtmf
mov @rl,#4
jmp exit esprozp
check ping l_flag:
cjne a,#5,c0lck ping ans flag
mov r 11 #er r orr _ wykrywania dzwonienia
mov @rl,#5 jmp exit_error cOlck_pΊig_ais_flag:
cjne a,#6,c0lck_pkwlP_flag
mov mov jmp p1,#ippop code @rl,#6 exit erszroor ;lołąd odpowiedzi na dzwonienie
check power flag: ;sprawdź flagę połączeń
mov r1,#malil_flag_lppkp
eov a,@rl
cjne α,#1,c0lck call_ test
mov pl, ^pror^^e ;błąd zasilania radia
mov @rl,#7
jmp exit error
174 142 ahrakpaαll_trst:
cjne z^ż^Łeck busy test
mov ρΙ^τ^Ρ-ΜΙτ /błąd xxx
WOV @ρ1,#8
jmp rxit rrror
check busy test:
cjne z^S^^ck inusr test
miv Γΐ,^ΓΓίΓρΟοάθ /Ł>łącl tonu aaeoyanci
mov @e1,#9 jimp rxwtpreelr ahrak_inssr_test:
cjne
miv mov jmp γΙ,ΑΤγγιγ ^Ιτ 0γΙ,#10 rxńtprerir /błązL stanu picwy
check 100C i_trst:
cjne ι^δ^κΐ] reeie
miv e1, ^me^ili /błąd tonu 0000 Hz
miv @γ1,#11
jmp rxi] reeor
rxit.error:
ret • * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /ain_srlf - powrót do noemal • * * * * k * * k * k *k k k * * * * * * * * * * * * * * * * * k * k k * * * k k k k ** k k k * * kr kr k k * * * * * * k k
fin self:
cle cinn liip /jise lneirscrnir słuchawki li
czll erier_nl_m_a / interfejsu
czll hup
142
clr enable test ;dołącj aparat
cali write io mb ;i odłącz moduł
clr test enahle ;iniuja1iuj test main
clr test end ;kończ test
clr error flag ;flaga błędu
jnb siioi_flαg,turn _on led
clr ext led ;wyłącz LED zewnętrzny podczas
testu
cali write io m c z-włącz/wyłącz LED zewnętrzny
cali loop bad
tuin_on_lsd:
setb ext led μ11 write _omc ;wyłącz LED zewnętrzny podczas testu ;włącz/wyłącz LED zewnętrzny
cali Iccp-bad
clr eetlfd ;wyłącz LED zewnętrzny podczas testu
cali wrrie iomc ;rłącz/ryłącz LED zewnętrzny
cali Icap-bad
setb cett-id ;wyłącz LED zewnętrzny podczas testu
cali wadit _o mc ;rłąoz/ryłącz LED zewnętrzny
cali loop-bad
clr est_iιS ;wylącz LED zewnętrzny podczas testu
cali wri1t_COa_ c /włącz/wyłącz LED zewnętrzny
cali loop bad
174 142 setb exttlid cali wnCtitiOtmth cali loop-tbad clr exatlia cali rrCaetCo_rtC cali loop__bad /wyłącz LED zewnętrzny podczas testu /włącz/wyłącz LED zi/męarzny /wyłącz LED zewnętrzny podczas testu /włącz/wyłącz LED zewnętrzny loop_baa:
mov r7]#0CCh zwłoka na fatarCenie fseaansren raCttenl:
mov n6,#0ffh djnz r6,$ call rαachdog denz r7,raCaterl mov r7]#0CCh raCaterl>a:
mov ζ6,#0^1 denz z6, $ call raahhdog denz r7,rαiaterιba ret /wejdź tu po podniesieniu słuchawki w celu wybierania
CCzsZ:
cali hlrJrsg /kasuj poprzednie komunikaty
TRU clr ex0 /zablokuj przerwanie podniesienia słuchawki aż do tonu /wybierania, w
174 142 clr hookswout setb hookswout clr hook celu zapobieżenia wybieraniu zakłóceniami 'komutacyjnymi ppowiadom PTR o podniesieniu ;ja0 wyżjj ;kssj0 flagę dt_delay:
cali mov cali jb clr watchdog _cmda,#4 ;UWAAA : INT0 o TIMERO są w tym miejscu zawieszone - nie 'używać żadnej specjalnej funkcji TRU bazującej na tych 'przerwaniach trucmd 'wykonuje rozkazy specjalne TRU f_atlrt,dt_delly 'zostanie ustawiony po 500 ms eliminacji zakłóceń 'komutacyjnych ieO 'kasj, flagę przerwania ppr^i^^^^^ia słuchawki dla tego 'przypadku jnb lC—,llert—CSeck 'wyskocz, jeżeli słuchawka zdjęta po 500 ms teat_lcł:
cali Sup jmp start 'słuchawka odwieszona na powrót w ciągu 500 ms alert_cSeck:
setb ex0 'ponownie ocióloSd0 przerwanie zdjęcia słuchawki (DT już 'włączony) jb tnuae,mlke—dt 'wyskocz, jeżeli nie INUSE, jesteśmy gotowi do wybierania 'jeżeli już IIUJSE , to jmp wait
174 142 prawdopodobni/ występując/ /podiτmsi/ni/ słuchawki odpowiada na połąoz/ii/ wchodzące /podnosimy słuchawkę na 500 ms w celu gmnmeaojτ tonu ,^ζΙΤ/ιηπϊβ make_dt:
s/tb fdton/ /l=DiaC Tonc włączony
cali dton/ /odblkku( DiaC Tonę
cali g/X /pob/erc znaC luC wjjdć w razie odwieszenia
jb inns/zch/ck pr/fie
clr fdton/
mov ooapml,#0
jmp wait
ch/ck pr/fie:
jb lock^r/fTe 0 /wyskocz, j/ż/li TRU ni/
zablokowane cjn/ a,#pound,nos/id /wyskocz, j/ż/li zablokowany, ważny tylko # (odblokowani/)
pe/fix 0: cjn/ jmp a,#zmel,pe/fie 1 /wskocz,c jeżeli nie[0]
ktn/j-t /skocc do prefiksu zapamiętania [0( jako
pr/fie 1:
cjn/ a,#1,no pr/fie /wskocz,( jeźelć nie[l( aHo
jmp ; stor/ TX /skocc do zapamiętania [10 jako
prefiksu io_prefix:
inc r0 ,-pozostaw prmerziaC preTóksu n/e (FFh)
Tnc i2 ,U^cc zwękSzc lidbc <^^1γ
/Zapamiętaj aktualną cyfrę T następną aż do czasu ich
174 142 wysłania, storę it:
cjne rO,#7fh,do_store_it /wyskocz, jeżeli bufor cyfr jeszcze nie zapełniony jmp check_number /wyskocz, jeżeli bufor pełny, bez zapamiętania do_store_it:
mov @rO,a inc rO /zapamiętaj cyfrę /przesuŃ do przodu wskaźnik bufora cyfr /sprawdź wprowadzone cyfry i przeanalizuj je na ważność sekwencji.
check number:
clr fsendtimer /upewnij się, że wyłączony
mov a,first_digit /wskaż na przedział pierwszej
cyfry
cjne a,#0ffh,check _one /wyskocz, jeżeli wprowadzono
jako pierwszy znak cyfrę
jmp check send /w przeciwnym przypadku
sprawdź, czy czas na wysłanie check_one:
cjne a,#pound,check_send /wyskocz, jeżeli nie [#] (zablokowanie, odblokowanie itp) mov a,second_digit /wskaż na drugą cyfrę, jeżeli pierwszy jest [#] cjne a,#0ffh,check_two /wyskocz, jeżeli wprowadzono jako drugi znak cyfrę jmp check_send /w przeciwnym przypadku sprawdź, czy czas na wysłanie check_two
174 142
cjne a,#SkUin,kOeck_ial /-wyskocz, (jeżeli ,1ι[#][#]
(blokowanie lub odblokowanie)
mov a,,hótp ciicjil ;Dwa ## mogą oznaczać zablokowanie Iub odblokowanie
cjne α,souin,kOlkk unlock # oznaczają zablokowanie
jnb 1ooc,ΐϋ osnd ;nte blokuj/ C^fśZLi zablokowane
Cip lockiC: ; [#] [#][#] oznacza
zablokowanie cOlck_nam:
cjne a,#etap,cOlck_elin ;ekkcl, jeśli nie sekwencja [#][*] cjne jmp ciOek a,WhOtP_digit ;w przeciwnym. przypadku pobiec również trzeci znak cyfrę a,#0ffO,cOlck_ialιl ;wyekkcl, jeżeli wprowadzono jako trzecią cyfrę /w srzeciwi'Izmo prz^adku sprawdź, czy czas na wysłanie check-narnl: mov cali truc^ ;załaduj numer funkcji, następnie skocz ;SPlląąkl na inny NAM /Przerwlj przy niedozwolonych elkwlicCakO cyfr (wybierania). ikelin:
clr funiokkttlϊln ;byZącoenie bloku polaewego odblokowania, znak # go ustawia
setb fokiLOkk jak w przypadku onwieellnia
setb itO ;ekkcz do funkcji obsługi ExtIntO
Cmp sstar jak przy ponownym podniesieniu słuchawki
hhihk_fnlock:
cjne a,#0fCh]UnlohkingtCa /wyskocz, jeżeli jeśli wybrano jakąkolwiek cyfrę po ##
jmp check send /w przeciwnym przypadku sprawdź, czy czas na wysłanie
unlocking it:
setb funlohkairir /rrZśi po 2s bbe kodd SSD
jmp gittnexa /dla uniknięcia wysłania kodu odblokowania jako cyfry ważnej
/Wejdź tu, jeżeli sekwencja cyfr nie kwalifikuje się jako któraś z funkcyjnych opcji specjalnych /(blokowanie, oablokoryrαnCe, podwójne NAM, itp.).
haihk_aena^:
jb artainatimer]hhehktCnal /skocz, jeśli swin,
oabiokorani połączenia wewnętrzne
setb Cainaaimir /odblokowane nadawanie p o 4 s, jeżeli sw7=0
emp giatnext /i na oorrót] po następną cyfrę
hhehk_Cntl:
rov ζ^ζ^ϊχ /testuj prefiks w akumulatorze
cjne a]#0]ChihO op /skocz, jeśli nie [0]
a, f^st dCgit /w przeciwnym przypadku pierwsza cyfra właściwa
cjne a,#1,haih0tOp ^Ιαχ/,, jeśli nie [1], może być wywołanier operatora
setb fainaairin /połączenie międzynarodowe ! rozpoczyna się na 01-..
j/p get next /na powrót pło resztę, teraz nadaje tylko blok czasowy!
check op:
174 142 mov α,pisfit ^obierz cyfrę prefiksu ponownie cjns a,#10,ohsok_asiv1os ;akaoz, jeśli prefiks jest nie 0 cjns i2,#0,ohsok_asiv1oe ;akαoz, jeśli cyfra (cyfry)
setb fasndelbsi wybrana również ;w przeciwnym przypadku może to być przywołanie operatora
check-Service:
cjns i2,#3,ohsok_d1atanos ;akaoz, jeśli nie 3 cyfry
mov a,sscond digit ;w przeciwnm pr^ypadku, . jeśeii alarmowe, informacje itp
cjns a,#1,ćhsok_d1aeanos ;akaoz, jeśli drugą cyfrą jest 1 mov a, ehiid_d1g1t ;pał1siz trzecią cyfrę cjns a,#1,ohsok_diatanos ;akaoz, jeśli., jeżeli trzecią
jmp ssnd it cyfrą nie jest 1 ;prawdopodobnie alab]arwo . wyliij
check distance:
cjns r2,#10,chsok_lαoαl ,Ozy wybrano 10 cyfr?
jmp sendcit ;wyś1Uj lO-t,. jeżelj nie międzynarodowy
check-clocal:
cjns i2,#7gse nett ;skoco. jeśli wybrano moSu,. nij 7 cyfr
setb fasndelbsi ;przyaoSuj wysłanie w ciągu 4 s
mov a,sscond digit ;poltie2rz drugą cyfrę
subb a,#f ,·eoy jt jest #1?
jz gst nett ;eaoαo, jsślt tak, może bćć kierunkowy lub lokalny
mov a,sscond digit ;pobierj ponowoie drugą cffrę
subb i,#10 ^cy tt jest 0?
j z gst_nstt ;eaoao, jsżsli tak, ooS. to być nr
174 142 kierunkowy, może być lokalny
clr fsendtimer /nie pobiorjj więcjj, w^yzś^O^j_j 5 s
później
jmp send it
ge0 next:
inc r2
cali get /Oobinrz nową cyfrę
jmp s0ore_it /dokonjj wszystkich, sprawdzę ń z
nową cyfrą • kkk-kk-kkk-kkkkkkkkkkkkk-kkkkkkk-kk-kkkk-kkkk-kkk-kkkk-kkkkkkkkkkkkk* t
/Wybieranie wykonane, wyślij numer • kkkk-k-k-kkkkkkkkkkkkkkkkkk-k-kkk-k-kkkkkk-kk-kkkk-k-kkkkk-k-kkkkk-kkkkk-k r
/Sprawdź, czy TRU jest zablokowane, i przerwij, jeżeli nie wprowadzono kodu odblokowania ^nd-it:
jb loak,sendl /sOcc,. jeżeii TRU nńe jeot zalloUowann
|gaUnd:
jb, Ohird digiO j·pobnece trzecią cfltę
cjne p, 00ffh,sencH j·sOack . jeśii wprrowodoono
cyfrę
jmp ^^πΟ /•nńe wseia^ . jeżeii nie
wprowadzono kodu odblokowania /Wyślij wybraną cyfrę.
^π01 :
setb mute /wycisz odbiór rx fonii
177 1 42 call write_px2 mov @r0,#aend mov a,#clear cali wrbus ;wstaw wysanneo no końuu cfr ; kod kasown^a ;wstaw njjpierw kod kasowana, w celu skasowania wszelkich cyfr z pamięci TRU w przypadku wprowadzenia z mikrotelefonu jako pierwszego
mov r0,#60S 'reseuj0 wslainik nmmęcii
mov a, @r0 wwstaw pr^miis, do ak'^msuitOoaa
cjne a, #fJs, out
inc rO ; zrzuó pe^isE, jeSfió FF
out: mov a^rO
cali wrbus ;wpsso no manSetlfgę
dab fSaag—a end^ k
test_ _lc2:
cali Sup ;zakońco podarniO,o jeSfii
odwieszenie
jmp start
sond _ok:
inc r0
cjne a,#sed^ out ;prγetsγmldO do kodu SND
setb fsend 'wymo flagę nadawnnia
clr mute 'odlloUd0 fonio rx
call write px2
'Wybieranie zakończone, cyfra warunkowego ecSa do TRU, potem czekaj na następne ewentualne cyfry ;(wewnętrzne itp.) lub zezwól na przejęcie sterowania przez przerwania.
wait:
call get 'sprawdź cyfr z aparatu MJ
174 142
jnb sw data,wait /ζϋ^ΐά^ό daną po zablokowaniu snd
call webus /w przeciwnym przypadku wyśljj daną
do TRU
jmp wzit /pozostań w pętli do czasu
podniesienia słuchawki przez nas /słuchawki lub drugą stronę
/Generator Dial Tonr .*********************************************************** /Trn podprogram wybiera i generuje odpowiedni ton wybierania, zależnie od naszego bieżącego stanu / (roam psahlmy; hoHie - wywołujący itp) lelnr: push psw jb tlak;srpv_ahrak mov npee;#eαblr_35C /350 Ho dla blokowania jmp elne_lse srev_ahrak:
jb nlsepV;Plαm_ahrak mov npeP;#eαblrp620 jmp elnrplue eozm check:
jb se_nnalelnr;nlpmal /ton 620 Hz dla sygnału nnrlbsługneαnnα /jeżeli opcjonalny sw jest zamknięty (=0) wytwarzaj ton /póżnnalew wybierania dla eozm jb putm, noema mov ^te^tib^ roam /440-620 Hz dla roam
174 142 jmp tlnm_lkX nurnal: mov dpXe,#tabbm_dt /350 - 440 Hz (normalne
DT) tonę out:
mov llwplτnt,dpl /zapamitaaj c gdzie e:Q'//locz\ia^ί
mov hTghp!TnX,dph kię tablica
mov ccapml,#01000010b /o<bllokuj ton
pop psw
r/t
/Pllimer cyfrę z klawiatury mTkelX/leelik • '*^^('k'k^'k'k'k^c'k’k^i(^e‘k'kki4'k'k^^4'k'k^^4'k'k^('i('*^^(-k'k-k^^('k'k-ki(^(-*'kk!'k'kk^e'k'k^k'k'k'kk:
/Podprogram przetwarza wchodzące cyfry i/lub flagi przetwarzania /Przy powrocT/, zwraca daną w akumulatorze
g/t: push psw
g/tl:
mov f omdkj#3 /flaga wskazuje stosowaną funkcję
call trucmd /wykonuje któreś z poleceń
call watchdog specjalnych TRU
/Cr/kaj na impuls, j/ż/lT impuls ni/ został oznaczony przez EXTINT0(0ee_Hllk_S/eviom) flagą jako /impuls wejściowy wzbimeailia, sprawdzamy jako cyfrę wejściową DTMF. j/ż/li stanowi sygnał wejściowy λ^ζΙ^ι,^, impulklwmgl, odbywa kię
174142 77 w dalszym ciągu zliczanie ilsulerw, aż do upłynięcia 250 ms po ;knlbpaiiu ostatniego impulsu. W tym lilCeku uważamy za zakkńklkin lnetawlαiln cyfry wybilPailC ;ilsuleowk, tak że kopiujemy ją do akumulatora i ustawiamy flagę fnig_Plany.
get_pulse:
jnb fdigitIgnh dtmf
clr fdtom ;kasuj flagę tonu wybLieirania.
mov ccapml,#0 ;wyłącz ton wybierania
mov a, #2 ;jeżeli występuje sygnał wejściowy
clr c ;kasuj przeniesienie przed knljlkwanill
subb a, himl_kff3 ;eprawdW] czy upłynęło 213,3 ms (3x71,1 ms)
jnc get_dtmf ^ιΙ-ιΙ! jeszcze ni, p tp cyfra nie jest pełna
mov a,#131
clr c ;kasuj przeniesienie przed kneClkwαiill
subb a,tlml_kffl ,·sprawdW] czy upłynęło dodatkowych 36,7 ms (132x277,8 us - ;łdkliil 250 ms)
jnc get dtmf ; jiżil-L Cnszcze ni, p to cyfra nie jest pełna
mov a,pulse_digit ;wprowadź cyfrę do akimuolatorao
mov pulse_digit, #0 ;kascC dla następnej cyfry
setb fdig ready ;w ciIu wekazania] że cyfra jest gotowa
clr fdigit ;kasuj flagę
;Jiżi1i wybierana cyfra DTMF jest gotowa, skopiuj ją do akumulatora. Sprawdź na warunki esekCali.lI ;flaeO^’W knwllelliil itp. Wykonaj skok warunkowy w przypadku warunków
174 142 specjalnych lub kontynuuj /apnaradenie dla dalszych impulsów C/lub pełnych cyfr?.
git_darf:
jnb clr fcaafin, hang fcatne
mov cccpmi,#0
clr fdamffn
mov a^Pl-temp
ani a^CCh
setb fóig ready
/kasuj flagę tonu wybierania /wyłącz ton wybierania /kasuj flagę wejścia DTMF ;·rφrowadź cyfrę do akumulatora /zatrzymuj tylko dolne cztery bity /w celu wskazania gotowości ο/ζ^χυ /Sprawdź oariiazinii (impuls 700 ms).
hang: jnb faαng]Clαsh /jeżeli nie odwieszenie
pop
test lc3:
call hhu
óec ss /skoryguj wskaźnik stosu
dec ss /oouadczając podprogram bez instrukcji ret
jnb fneroai_ thuO]nOtnimoai /skocz, jeśli wystąpił sygnał no nemote
clr fnemoai
no nemote:
jmp sstar /wyjdź,ktoś odwiesił słuchawkę
/Sprawdź w przypadku flash (200 < impuls < 700ms). gClash: jnb fflaah]aCmi /jeżeli nie flash cln fflash mov ccaomi,#0 jb fatoni,euaa flash /kasuj flafl ”flacl /wyłącz ton wybierania /U^ż^^ł^i włączany ton wybierania, wyślij tylko ponownie
174142 77 'ostatnio wybierany numer jb fsend,dsat—laaS 'jeżeli flaga wysyłania jsst ustawiona, nis wprowadzaj cyfr,
clr dtons 'tylko wyślij 'kasjj flagę tonu wybierania
pop psw
dsc sp 'skorygjj wskaźnik stosu
dsc sp 'opuszczając podprogram bez
jmp send^it. instrukcji rst 'wyggrowadź ws zyst ki e cyfry +
'Nadaj tylko kod SEND, als bsz cyfr, jeżeli albo Dial Tone, albo laga Sond ma stan wysoki.
dsae_laaS:
clr dtons 'kasuj flagę tonu wybierania
mov crnds^S
cali trucmd
mov a,#send 'wyślij kod
cali wrbus
sst fsend 'wyślij flagę
pop psw
dsc sp 'skorygdd wskaźnik stosu
dsc sp 'opuszczając podprogram bsz 'instrukcji rst
jmp wait 'wróć po cyfrę, ocPw±esie]s0e itp
'Jeśli jeszcze nis wybraliśmy pełnego numeru telefonu, i upłynęło 40 s od ostatniego wciśnięcia 'klawisza, rozpoczyna się łe;mtautoaγ ton Sollsra.
time:
dab fti ims.s sad_e ims pop psw 'jeżeli nis upłynął czas
174 142
dsc sp ;skoryguj wskaźnik stosu
dsc sp /•opuszczając podprogram bsz
instrukcji rst
jmp ,'wtedy bsz rojone
;Sprawdź, czy nadszedł czas nadawania (upłynęły 4 s od
wciśnięcia ostatniego klawisza).
asnd_t1bs:
jnb fasndelbsi,snlaok tims
mov re^ims off2 ;w r6 czas 71,1 ms
cjns r6,#56,unlock tirne /'sprawdź dla 4 s (56 t 71,1 ms
= 3,98 s)
clr yasndelbsi
pop psw
dsc sp ;akaibguj wskaźnik stosu
dsc sp ,•opuszczając podprogram bsz
instrukcji rst
jmp ssnd it ,•wyprowadź cyfry i wyślij
;Sprawdź, czy żądano odblokowania.
unlaok_tibs:
jnb yunlaoktibsi,laok_tibs
mov r6, elbs_ayy2 ;w r6 czas 71,4 ms
cjns i6,#28,laak c /sprawdź na (28 t 71,4 ms =) 2
clr yunlaokt1bsi o
pop psw
dsc sp ;akaibguj wskaźnik stosu
dsc sp /•opuszczając podprogram bez
instrukcji rst
jb lockono unlock ;nis odblokowuj, jsśli już
odblokowany
174 142
jmp unlock it
no unlock:
setb fonhook /jak przy odwieszeniu
setb ieO /skocz do funkcji obsługowej
ExtIntO
jmp start /jak przy ponownym podniesieniu
słuchawki
/Dodanie wartości flocktimer w celu umożliwienia
zablokowania upływu czasu przy mniej, niż 4 cyfrach.
;Do TRU trzeba dodać etykietę go_lock jak również (w razie konieczności) ustawić flocktimer.
lock_time:
jnb flocktimer, look /skocz, jeśli nie
mov r6,time off2 /w r6 czas 71,4 ms
cjne r6,#28,look /sprawdź na (28 x 71,4 ms s)
clr flocktimer
POP psw
dec sp /skoryguj SP
dec sp
jmp go lock
/Sprawdź, czy mamy (całą) cyfrę
look: jb fdig_ready,got_a _digit
jmp getl /sprawdź ponownie, czy nie
wprowadzono cyfry /Marny cyfrę (impulsową lub DTMF), zwracamy ją w akumulatorze.
got_a_digit:
clr fdig_ready /kasuj flagę gotowości cyfry got_inuse:
mov time_offl,#0 /uruchomienie bloków czasowych przy każdym wprowadzeniu /cyfry
Π<4 142
mov time #0
mov timr _laa3;#0
pop psw
ert
;*********************************************************** /Pobirez cyfrę z klawiatury miSrlerlralnu *·*********************************************************** /Podprogram przetwarza wchodzące cyfry i/lub flagi przetwarzania /Pezy plwrlair; zwezci daną w aks:mslaelecr grtptrst:
push psw /Jrżrli wybierani cyfra DTMF jest gotowa, skopiuj ją do akumulatora. Sprawdź na warunki specjalne, /^1^.1½ lnwirszinii itp. Wykonaj skok warunkowy w przypadku warunków specjalnych lub kontynuuj /sprawdzenie dla dalszych impulsów i/lub pełnych cyfr.
git dtmf:
jnb fd.tmfin,no dtff test
cle fatone /k/suj u1ι|ι toto u/wybierln
mov «upral, #0 /wyłącz /wywcz0elnaśw
clr anemann /kasu/ l^j^i^ge taję owr ΙΧΜ1
mov u,pxt temp /wyprowadź off^e do akumulatora
ani 1,#01111 /icαeζcwιa1 ŁiWIo adOtn /czter bity
srtb fnng_eelnw /w celu wskazania gotowości
cyfry
174 142
no dtmf test:
clr mov fdig r/ady
tim/_
mov time _lee2j#o
mov tim/ #0
pop psw
r/t
/kasuj flagę gotowości cyfry /ueuchlili/iie bloków czasowych przy każdym wprowadzeniu /cyfry » kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk /
f /kmid_dtme - wyślij ton wybi/rania •kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk /
k/nd dtmf:
call watchdog
clr dtmf out /odblokuj ton dfemf
call wiTX€^_3^o_ m b
k/tb dtmf-Out /odblokuj ton dtmf
cali writ/ To m b
r/t
• k k kk k kkk k kk k kkk k kk k k kk k kk k kk k kk k kk k kk k k kk k kk k kk k k kk k kk k k kk k ,ό1ι_!ΧμΙ - wyślij ton wzbi/rania •kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk t
disable^dtmf:
clr dt:ie_lut /odblokuj ton dtmf call weiXm_il_m_l r/t
174 142
delay dtmf /opóźnienie tonu DTMF
clr tri /zwłoka na sprawdzenie pracy
mov time off2,#0
mov time_off1,#0
setb tri
wait _until dtmf:
mov a,time_off2
call watchdog
cjne a,#4,wait until dtmf /odczekaj 40 ms na
zatrzymanie dtmf ret .*********************************************************** t
t ; Generator tonu ROH /
************************************************************ t
;40 s po podniesieniu mikrotelefonu, bez wybrania żadnej cyfry, lub od wybrania ostatniej cyfry. Generujemy ton ROH (przerywany w odstępach 80 ms) w ciągu 1 minuty, lub do podniesienia mikrotelefonu - hang_up, zależnie od tego, która sytuacja wystąpi wcześniej.
rohtone:
clr ftime /kasuj flagę clr fdtone /kasuj flagę tonu wybierania tak, aby zmiany wskaźników nie /powodowały zmiany tonu ROH mov dptr,#table_400 mov highpoint,dph /zapamiętaj lokację tablicy mov lowpoint,dpl setb roh_boost /zwiększ poziom fonii
174 142 cali wri0n_ox2 roh0onn_on:
mov aaPOIi1,001000010b /włącz ton
/Pocot0pń w pętli przez (odwieszenia). 1 minutę albo do hang up
check hang-iup:
cpll wpOchdog /odśwież v^p^0^c^^^^g oczekując tym miejscu
jnb hhpne,ahnak 0emnou0 /skocz, jeśli nadal zdjęcie słuchawki
0nt0lc4:
call hup wwuOnPj i 2^41/0^1 oWintcnaiek , jjee słuchawka na powrót /oOwintzona
jmp start wwpooaod1 nowę staot
check Oimeout:
jb faoh0imnout,aoh_0emnou0 /tkoac, jeśli upłynął czas roh (po 1 ienuain^;
jb roh gn,aoh0onn _on
mov aaρom0,00 wwilczz ton
jmp check hpngup /te poOPe ne zmianę włącza i wyłącza aoh
roh Oimeout:
mov aaαomO,00 vwołace ton
clr roh IoosO /wyłące zwiększenee poziomu fhgai
setb loootwe0ah_ /Uornwije pollę
cali wre0n_px2 vwpaooaddz de portu
test lc5:
cali hup /podpoogaam odwiezec^a
174 142 jnb
Ump /Wejdź tu looptest:
mov loopai:
mov aód loopt?:
call cjne djnz clr call mov looptS:
mov aenz call denz jb sWtgndatant]loopteat /wykonaj test pętli, jeśli start pętli ioopteaatena /nie wykonuj testu, jeżeli start oó uziemienia, tylko /pozostaw pętlę otwartą do udiirCenCα dzwonka jesteśmy w trybie Loopstar^.
b, #40 /ustaw zwłokę , s (40 x 5, ms) a,timetdn2 /pobierz aktualny czas odwieszenia a,#5 /dodei 5, m, do czasu obecnego loooarCach wncte px2 watchdog /odświe, watcła<dog
α]tCmetOnS,loooa2 /mniejsza zwłoka wynosi 50 ms ^^op^ /czekuj ogółem , s /Zimykej pętlę co 2 , w celu aprαraziniα _ /czy mikrotelefon odłożono na powrót na widełki lood0aiaatacιre2,,# 115 /ładu, zwłokę 2,2, ms (8 x 277,8 us) looPest__timer,#0ffC. /w celu zapewnienia dostatecznej ilości czasu dla układu /SLIC looptiat_aimir]$ , /w celu wskazania stanu odriiazinik watchdog ;odświej watchdog loooaiatttCmenS]looot3 lCt,ldOoaisatind , /sdcds, jelC, bra, prddu
174 142 pętli (ponowne odwieszenie) setb looiaatecS 'rozewrzyj ioaoaais wyłącznik pętli
clr looiaatecS 'zamykaj pętlę co 2 s wcelu
sprawdzenia
call writs px2
jmp fooiesae 'czeka.; do odwieszenia
looiesat— snd:
clr 'froStimeout ;0 = wystąpiło odwisszeniso Idę
praca w trybie GS
mov timis onl-ztO 'rosot bloków czasowych
odwieszenia
mov ttmιS—Oa2. #0
jmp start 'start na nowo
• *-kieie'kieie'kieie'*'łeie*'kieie'kieie'*ie^-kieie'kieie’kie’kieie-kieie'kieie-*ieie'kieie'*ieie'kieie'*ieie'k-kieie r
r ' Podprogram, dla odwieszenia
r • * * *· * * * * ·* ** ** ** ** ** ** ** ** ie ** ** * ie ie ie ie * * * * * * * ii ** ie ie ie ie ie ie ie * ie ie i* ie * * * * * * * * * * * * * * r
Sup:
call watchdog
clr ex0 'zablokdj 0X^:0 (zdjęcieo LC_)
clr digit ;w przypadku podniesienia podczas
wybierania impulsowego
mov pulse digit, #0 ;w przypadku taktu podczas
impulsowego wprowadzania cyfry
clr f dig__ready ;w przypadku taktu podczas
wprowadzania impulsowego/dLm
clr dtmfin 'w przypadku taktu podczas
wprowadzania dtm
174 142
clr ylaokt1bsi ;w przypadku taktu podczas blokowania
clr yunlaokeibsi ;w przypadku taktu podczas odblokowywania
jnb sw gndaeait, hupl ;akaoy, jsśli start pętli
sstb laopsrleoh ^rzy starcie od uziemienia otwarcie laapar na 750 ms
call riits pt2 ;dla symulacji taktu
a,eibs on2 ;zriększany co 10 ms
add a, #75 ;zrłaka 750 ms
push acc ;zaoharaj na później
jmp hup2 hupl hup2 jb yiαhtibsαue,hup2
clr laapswleoh_ ;jsósli start pętli
call wróts pt2
clr fUms ;kaauj flagę bloku czasowego
clr yssndelbsi ;kaauj flagę nadawania bloku czasowego
mov c^pml, #0 ;upsmij się żs dtons jsst wyłączony
clr fdtons ;kaauj flagę tonu wybierania
clr roh boost ;fαniα normalna
call riits pt2
jb fiebats_hs^^,na_snd_asnt ;nis wysyłaj końcowego jsżsli takt zdalny, ponieważ nis ma ;eak1sj potrzeby, i nis są niezbędne kasowania bufora ;Motoroli mov a^endkall ;wpiaradź kod końca call ^bus ;najpisir wyślij do TRU, następnie kasuj flagę
174 142 ik_iid_sent:
clr ;w przypadku wysłania cyfr Iub odpowiedzi na alarm
setb Okkkswkut ;so]<aż do TRU odwieś zenie
clr Okkkewkut jak wyżej
Cnb sw_ginetapt, hook4 ;ιιίθ przy ssarcie p^tli
pop acc ;pobierz na powrót opóźniony/ czas
clr c ;kasuj flagę przeniesienia przed
następną instrukcją hup3:
cali watchdog αIhilli_ki3, $+3 ;OnklikaC 750 ms dla umożliwienia otwarcia pętli i pbx w ;kilu espawnliiia, że jest wyłączony. Skocz do iaetęsi·iC ;lietPukkCi bezwarunkowo
Cnc hup3 ;πϊι przenośp dopóki hili_on2 jest większe od akumulatora ;(w przypadku jeżeli zapis na magistralę zajął wlęc^C niż 750 ms) hup4:
setb fonhook ;uehaw flagę odwiefoania
clr fhang ;kasuj flagę podniosienSo
clr f one sec ;czyli blok czcuowy lαeknż es
wystartować skikwiii po zdjęciu ;słuchawki clr f_liueioffhiliig ;kaeuC flagę setb ex0 /-odblokuj ixhlntk (zdjęcie słuchawki) .****************************************************** r
/
Aktualizacja stanu TRU
174 142
/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: push acc push psw upspecl:
jnb fspecl,continue_update /sprawdź flagę specjalną
cali specl /podprogram specjalny w sekcji TRU
continue update:
jb test_enable, go_ _to_self /sprawdź, czy test się rozpoczął
mov a,lampSptemp /zatrzymaj wartości do późniejszej komparacj i
mov c,roam
cpl c /w rzeczywistości nie ma lampek dla Maxjacka!
κιον roamlamp,c /wskaźnik roam (tylko do zapamiętania)
mov c,noserv
cpl c
mov noservlamp,c /wskaźnik braku obsługi (tylko do zapamiętania)
mov c,lock
cpl c
mov locklamp,c /wskaźnik zablokowania (tylko do
zapamiętania)
174 142
mov c, muse
cpl c
mov inuselamp,c /wskaźnik pracy (tylko do zapamiętania)
cali write io c /aktualizacja LEDów
jb sw_dialtone,not_maint /jeżeli opcja sw wyłączona (=1) /bez modułu obsługowego test_push:
cali read io m a /sczytaj przycisk
ani a,#00010000b
cjne a,#0h,not push
setb test_enable /inicjuj test obsługi
setb fremote hup /ustaw takt zdalny na 700 ms
setb loopswitch /odłączono drugą stronę
cali write px2
not_push:
jnb test enable,not maint /sprawdź rozpoczęcie
testu go_to_self:
jnb test end,not error yet /jeżeli nie stwierdzono
błędu
jnb error flag,pass ok
test led:
mov rO,#error_code
mov a, @r0
rl a
rl a
rl a
rl a
mov lamps_temp, a
cali write io c /aktualizacja LEDów
setb ext led /włącz led zewnętrzny na 1
174 142 minutę
jmp weitr to c
pis ok:
clr ext led /wice o led zewnętrzny no 1
minutę
jmp wpierpeOpa
not_ reroe _yet:
jb rxt lr!,cle lid
srtb rxt trd /wice o led zewnętrzny podc^s
testowaniu jmp weiei_elpa ΑΡρΙη^:
cle ext led ;wyłaco led zewnętrzny podczas testowaniu
wpite to c:
cull not miit: writr iOpc ,· waccśWwwacoz DOz śntepcnwny
mov a,lamps temp /!^:zzecł^<^i^^je wartośio do późnnraazea Slmplelaan
jb frohtimelse; oompare
mov c,ap2 /sprawdś, czy jesteśmy w aelniz ALERT
ant c,/apl /(tzn.o oczekiwanie na połączenie wchodzące)
jnc compare /skaz,o jeśli nie ALERT (nie połączenie eahldcwaz)
jnb falnIoolkCompa:re /stoc, o j^śli słuchawka znatea, nir uruchamiaj dzwonka!
cle loooswitch_ /^«^ι^Ι^ηύO wyłącznik pęliś, ύ^1ή stan ALER.T,
cull eeier px2 /(oczekiwanie połączenia
wahlncwaigo)
174 142 jb foallje/s/t_eiig_Ximme /skocz, j/śli trwa już drwlnτ/nτ/ k/tb fcall /1 = ploząt/k άΜΜί/πί, (wykryto
ALERT) mov bell_timer,#0 mov bell_timer2,#0 k/tb f łbell soianci mov dptr,#table_20 mov loowpoint, dpl clr ring_ k/tb n^riną call welt/_pe2 r/s/t^rn n_t ime r:
mov ring_timer,,0 olmpare:
erl a,lamps_temp /skasuj blDki czasowe /flaga działania dzwonka /przy drwlii/ilu wskaż na tablicę 20 Hz /zapamiętaj plorąX/k tablicy dzwlii/iia mov highpoint,dph k/tb tw/ntz^h^pwm mov ooapm2j#010000101
X/sX1:
/taC wicc pin może być pwm /odblokuj pwm /wlczc pc dzwonienia /wyprowddc do portu / ka^j między dzwonkami bloJe czasowi, dopóki /jesteśmy w stanie ALERT /bity różniące się powinny być
1 jb f_one_sec,dtbits /odczekiwanie C s po zdjęciu słuchawki prz/d sprawdz/ni/m / /lampki pracy, riplbi/gi rozłączeniu j/ż/li /zdjęci/ /słuchawki nastąpiło już po sygnał/ taktu mov o,ioo.7 /pobierc status IIUJSE anl o,2iπkk/limp ;C = nie IIUJSE jnc timing_in_use_off /uruchom blok czasozy c jeżeli
174 142 lkrokk inuse już wyłączona mov intUaitOff_aCmin,#S8 ;nfaaw ponownie blok czasowy nz 1,99 s (28 x 71,1 ms) Setb f_inusidCfairing //«kaź że blok chdaawy wyłączenia z pracy działa aCmCng_in_use_off:
jnb infselkmO] hont_CntUSitaCmCng /czy lkroOk pracy nadal wyłączona clr. ftiming /jeżeli ni, , kasu, flegę ę zatrzymaj odmCerdknci czasu cont^n-u s ^tt imi ng:
jnb f_inusiofftCring,aabCts /jeżeli flaga jest fsakrionk kontynuuj oarCirzknie czasu denz intUSitOffttimin]dtbCaa /rozłącz, kiedy blok czasowy dojdzie do 1,99 s clr ft_tnuseoffaCming /kasj Clage jb Conhook,dtbits /jeżeli odwieszenie lokale,, nie dokonuj synchronizacji z /zirnkardnyr taktem /Wchodzimy tu, jeżeli druga strona dokonuje odłożenia słuchawki C nie odkładamy słuchawki z /powrotem na widełki w ciągu 2 s.
dCacdnnect:
setb fnimotitafo setb ldoparCahat czll rnCtitOxS dt^s:
anC k]#01110000l /ustaw takt zdalny na 70, ms ,·druga strona odłączona /sprawd, tylko bity dotyczące tonu wybierania jz ringtaCmidut /jeżeli nie ma zmian jb ydeαns,i1ng_tibsαst ; lub jsżsli DT nis jsst włączony mov ccepimlz #0 ;bytoyj ieżący. DT
Call dtons ;ybisń na nowy ton wybierania i1og_timeout:
jnb fcall,updats done ;nis odmierzaj czasu
inc ring dzwonienia jsśli nis ma połączenia ;rchadząosgo ; co 71, j ms
a, #53 ;5j x 711 isj = 3,4j s
clr c /·kasuj przeniesienśe przed
odejmowaniem
subb a,ring tiimer
jnc update_done ;jeżeli przykujmnSuj 3,84 s
bsz dzwonienia
jb fbellsound,upatSc done ;^^^k^j również do
zaniknięcia dzwonienia ohsok_atop_ring_ps:
mov a, #3 ;j x 25 j iso = 10 j ms
clr c ; gotów do c^(^^;^i^t^wnnia
subb a ,0>θ 1 l_t imer2
jnc update_done ;jeślj prsenSaieeoSo,
jb ring_,check_stop_null ^Ιωοο, dzwonek ps
już wyłączony
sstb ring ;w przeciwnym przypadku wyłącz
teraz dzwonek ps
call wrrte_px2 ;wyorowadź do potuu
clr no dg
cali px2 ;wy?rowadź dj pr-tuu
chsck_stop_null:
mov a,0# ; j x 2 j is j = 20 j ms
clr c ;gotowe do wykonani odujIaownnia
subb a,bsll t^erl
174 142
jnc upOate done /jeżeli oaznnentinnin, 200 ms
mov aaαpm2,#0 /zatrzymaj pwm
cla Owenty hz pwm /pocot0po wyjściowy pin w stanie niskim, pwm działało 10 ms /dłużej od ps dzwon/p, Ola wygładzenia oadnlineu
cla haρll /0 = nie ALERT, cpononep ninOcoonennin
jnb sw gn0t0ρa0,uo0ρtn_donn /tkoac, jeśli start pętli
setb looOtoe0ah /GS nie odpowiada np dzwonek
cpll waite px2
up0α0n_0one:
jb fcall,ng_antn0 io
jnb lc_,no_antn0 io
jb haoh0imngu0,no antn0_io
no_aetnt_io:
pop psw
pop acc
aet
f r
/ Przeładuj t0ooo ooaóonaoccn kontroli op0ah0oe /
.****************************************************** r
op0ahdog:
push ie
cla ea /zablou^ przerwanPa
mov ccap41#0 /-ws/paż na początek biiżącej s^aon
mov ccap4h,ch /bieżąca strona
pop ie
ae0
174 142 ·************ Of kkkkkkkkkkeekkk-ki^^kkkkkkkkkkkkkkiekkkkkkkk ; Podprogram obsługi przerwania odłożenia słuchawki TimsrO(TLO) • 'kk'k'k'k'k'k'kkkkkkk*kkkkk-k-kkk-kkkk'kkkkkkkk**kkkkkkkkkkkkkkkk t
onSook timer:
pusS psw
pusS acc
clr tri 'zatzYyadO bloO dasowo zdęcias
słuchawki
clr tl 'sasudO zwislano pssrawanlo bloku
czasowego zdjęcia 'słuchawki
mueS—CSeck:db mute,oa—Siec2 'jeżeli już wyciszony, zrzuć sstb muts ;wycSslnnSo fonio rx w celu zapobieżenia 'aSasγwsmu 'dekodowaniu dzwonienia fonicznego jako dtm. zapobiega 'również fonicznemu sprzężeniu ‘zwrotnemu cali arteS—ix2 wwprrowddó do portu oa_apec2:
jnb fspsc2,oa—Sisc2—doae 'sprawdź flagę call aisc2 'wywołaj podprogram specjalny w sekcji TRU oa—Spsc2_done:
djnz dtaifaγ_delaγ,gs_init ;wo ciągu 71,1 ms call uidleS—diailaγa ' co 71.1 ms gs_init:
174 142 jb fcal 1 ,cont_serrvice ;przy nadejściu połądenia zrzuć wychodzącą lilkCsllzαcji GS jnb sw_ginstaphI kknh_eipviki ;eWocz, jeśli nle tryb GS jnb fonOokWICknt_eiPvlki ^Ιι cziWsC na uziemienie dzwonka dla uruchomienia GS do ;pliklywishigo odłożenia ełucOawkl jb rlng_gpound_I cknh_gpkunnehαpt clp loopswitch_ ;żądanie obsługi startu przy uziemieniu call write_px2 mov gndstart_ti]lerlI p0 mov gndnehsr_etmlir,,0 ;inieCalizcj blok czasowy kknt_gpkundstart:
lnc gnnshspt_tllipl ;sbknint zwolnił dzwonka iov αIgndetspt_tlmiPl a, #90, kont_sipviki ;25 ms (90 x .277,8 ps) lnc gnnetapt_tlmip;3ck 25 ms mov gnnetspt_tlmiPlI #0 ;reset dla następnego odliczania 90 mov a,gnnehapt_timip3 aI#40Ikonh_siPvίki ;1 s (40 x 25 ms) setb lkksewitcO_ ;otwórz pętlę po sekundzie, jeżeli abonent nie zamknął ;;^1ϊ call wpihi_px2 kknh_eirvike::
jb fks0l,plng_konhPk0 /skocW] jeżeli stan ALERT dla generacji dzwonienia jms knOkkW_hllipe ;w sPlikiwnzm przypadku tylko zaktualizuj bloki clsekwi ;UpukOsmiαmy nlWknik,Ciżi0ί TRU Cest w stanie ALERT (połączenie wchodzące czeka na odebranie).
174 142 eing.aontrol:
jb abr11alunl;en]mnnjpring /Scdzwonek nie dzwoni w cyklu dzwonienia, sprawdź /zirmię dzwonninia, w celu sygnalizacji odpowiedzi na impulsy /dzwonienia jb Ρnngpgelsnnp;enmnngpeinj /jeżeli nir ma ziemi dzwonku, odmierz czas dzwonienia, /następnie ignoruj impuls na ziemi dzwonienia, po ustaniu /dzwonienia mov a^bZl-Piwie^ /impulsy co 25 ms cjni a;#C;jeareabrlljlunn /skontroluj ziemię dzwonki po 25 ms mov u,#28 /29 x 277,8 us = 8,1 ms cle c /gotowość do odrjmowinna subb α;brllpenmre jnc teminn_PΡnn /brak przeniesienia do 8,1 ras po ustaniu dzwonienia /zignoruj jedynie zirmię dzwonienia po 8,1 ms jmp saeue_PbZ1tal^d /jeżeli zirmiz lzwlnirnna wskazuje zlatańr słuchawki w /czasie anszw, uruchom 20 Hz ponownie w crlu wymuszenia /ciągu dzwonienia timńngp~ring:
inc br1lpenmre mov u,brllpenmre cjne a,#90,PWngrPpOn mov brl1peimre; #0 inc br1lpenmre2 eWngzPpOn:
jnb abrllslsnlS emnger /co 277,o O as /2O ms (90 x 277,8 ps) /TestujO na i^ć^st^ne 99 / co 255 ms off /skocz, arżrli w trj
100
17^ 142 chwili dzwonek nie dzwoni /Czas włączenia dzwonk zmodyfikowany z 1,95 s nz 1,975 s, Odnierkż azronik zatrzymuje się przy /impulsie dodatnim, który 'ooroafji adronCinCi ciągłe. Ten promm wyniknął przy skrzynce z pięcioma ;ddrdnkarl·c, atdsorkneU z MaxUack. (ssh) checOtatoPtlellaound:
mov k,lelltaCminS /oobierz upływ czasu włączeni dzwonka cjne k]#59]OnhooktaCmera /socz, , jeesC, :ιlCieS , niż x 25 ms = 1, 975 s mov k,billtaimir /4, x 27,, , μ, = 12,, ms (łącznie 1,987 s) cjne k]#45]OnhooktaCrers /dzwonek priesaeie działać po 1,987 przy impulsie ujemnym, /wycina ostatnią ćwiartkę cyklu w celu skorygowania ciągu /dzwonienCk aaoPtbillaound:
mov cckomS]#0 clr elillsouna mov dotr]#aklli mov lorooCna,dol ;odblofuj pm /, = dzwonek nie dzwoni null /wsktaż tablicę tonu zerowego (ton zerowy powoduje, że ;azroneO ma zerową wyjściową składową zmienną, wyłącznie /napięcie batenCC /zapamięke, początek tablicy de2orej mov highodCnt,doa mov cckomS,#01000010b /ο^ΐο^, pm cln ea cln notrcng cali wnitipPxS
174 142
101 setb ea call watchdog jmp reset_bell_timers ringer_off:
mov a,bell_timer cjne a,#120,onhook_timers x 25) start_bellsound:
call reset_io call write_pxl call write_px2 clr ea setb no_ring call write_px2 setb ea mov ccapm2,#0 mov dptr,#table_20 mov lowpoint,dpl mov highpoint,dph mov ccapm2,#01000010b test_relayl:
setb fbellsound reset bell_timers:
mov bell_timer,#0 mov bell_timer2, #0 onhook_timers:
inc time_onl /zresetuj bloki czasowe / 4 s bez dzwonienia (160 ;odblokuj pwm ;wskaż tablicę dla 20 Hz /zapamiętaj początek tablicy /odblokuj pwm /1 = dzwonek właśnie dzwoni /co 277,8 ps, kiedy szenie mov a,time_onl cjne a,#36,onhook_done /36 x 277,8 ps - 10 ms
102
174 142 iac time on2 '•co IO m, o kiedy odwiezsenSe mov etys_oal,#0 'restu;O no następnych 36 mnv a,tiye—Oa2 cjnea,#0,aot—iac255 inc tese—min ;1O iso o 25O = ,25O s ale—tac255:
jp tlStimeout,oa]sloO—dlas 'zrzuć informacje dotyczące odwieszenia aż do pozytywnego 'wyniku tostu tsae_hangl:
jb foaSooO,onSloO—dlao 'nio dokonuj nowego odwieszenia, jeżeli jodno zostało ;dokonano toae_hang2:
nv a,etye—Oa2 .
; ;STATUS ON-HOOK ; cjaea.#70,laSll0—doao ;700 ms wskazuje na odwieszenie cjaoa,#36,oaSolO—dlao ;700 iss wskazdje na odwieszenie toat_hang3:
sotb Sang ;ustaw flagę odwieszenia clr f—iausoofeiyiag 'zatrzymdO hlok czasowy w cofu sailbteżoaia ewentualnemu 'eaOelaaats zdalnemu laSooO_done: po acc pop psw reti .******************************************************
174 142
103
Z ; Podprogram obsługi przerwania - zdjęcia słuchawki z widełek Timerl (THO) .*********************************************************** offhook_timer:
push psw /zachowaj stan wyjściowy push acc jnb fspec2,check_strobe /skocz, jeżeli spec 2 nie odblokowany call spec2 /w przeciwnym przypadku wykonaj specjalne zadanie TRU /Sprawdzenie obecności cyfry DTMF, i odczytanie jej z MT8870, jeżeli jest tam dostępna.
check_strobe:
call read_pxl_strobe jb strobe,decode_dtmf /skocz, jeżeli oczekuje cyfra DTMF clr fdecoder_busy /resetuj, jeżeli nadszedł strob jmp ttime /i po prostu wykonuj zadanie odmierzania czasu zdjęcia /słuchawki decode_dtmf:
jb fdecoder__busy, ttime /skocz, jeżeli odczytano już cyfrę DTMF /w przeciwnym przypadku call read_pxl
104
174 142 odczytaj ją teraz setb fntlfin ;d b anoPcyiP pyfrę DTMF!
setb fnecknip_busy /1 = cyfrf DTMF w
SPletwαPlαniu ;Ssrawnlenie upływu czasu zdjęcia z widełek, uaktualnianie wyświetlaczy co 70 ms, i polskczicie-/zskońkzenli w razie potrzeby tonu ROH ttime:
lnc hlle_oiil ;iIspueo młodszego bloku czasoweoo zdjęcia słuchawki (@277,8 us) mov s,timi_oiil ;pobipl0 młodszy czap zUjęcśa słuchawki ;JMP TEST_HOOK s, #0, h_kni_eik ;skclw p jeżoli < 256 x 277 p s = 71,1 ms lnc hile_kii3 ;impueo młodszego bloku czasoweoo (co 71,1 ms) cali usnαhi_nieslsys /•uaktualniać co 71,1 ms mov SItlmi_kii3 /ρ^νικ główny czas odwieszenia s,#0,t_kni_eik ;skolw p jeżelp < 256 x 71,1 ms = 18,2 s inc hime_kii3 ;impplo płodn p boou p Olsekeig podniesienia słuchawki (@18,2 s) h_oni_sec:
mov SItili_kii3 ;pobierp główmy czas
Sknniesiinis a,#14, tr^tlmi ;skclw p jeżeli minęło < 14 x
71,1 ms - 995 ms setb i_onn_enk ;tak że zmiana blaispkp INUSE nie może spowodować odwieszenia, ^ι^ιΟι słuchawka zdjęta z widełek
174 142
105
zbyt późno po odwieszeniu
taohtimer:
jb hsnnO,0Oonn /skocz, jenoee ocopaczyaimy aocmool (bez ROH)
jab inutn/0Oonn ;^!^(-ac, jenoii jtteeimę w sOpiie INUSE (również bez RRO)
inc a5 /impuls młoOtcneo zegara t0ρa0u/końap RRO
cjne a5,036,0aoht0aa0 ;skocz, jenoii minęło < 3ż x
277,8 s = 10 ms
inc a7 /ilopote o-dtcnggę OOuku
mov a5,00 acptooneo ołąaznnep/oyłąccnnip RRO /re set iPo następnego jrzeiś cia (10 ms)
cjne a7,#10.0aoht0pa0 //kocz, jeżeli minęło <10 x 10
ms = 10ims
cpl aoh on i naprzemeanee ołąazpnin/oyłąazpnin RRO co 100 ms
mov a7,00 /reset doriast ępn ej fapn
Oaohstart: włączania/wyłączania
mov P/Oim-e ohf3 /PoPuż ogólny upłw czasu zdjęcia z wideOek
cjne a,02,0aohqke0 /•sOcc e minoło < e x 18,2 = 36,3 s
mov p,0emn ohf2 /•pobiere równiee dodatkowy czas główny
cjne p,051,0aohqkeo /•sOcc e jeżeli łącznie < 4ż ms
setb fOime zdjęcia z wideOek = acozpocząe się okres ROH
taohquit:
106
174 142 mov a,time_off3 cjne ,#5,tdone mov a,time_off2 cjne a,#127,tdone setb frohtimeout tdone:
jnb f_start,tdoneO mov a,time_off2 cjne a,#4,tdonel cjne a,#7,tdonel /pobierz znowu ogólny upływ czasu zdjęcia z widełek /skocz, jeżeli minęło < 5 x 18,2 = 91 s /pobierz również dodatkowy czas główny /skocz, jeżeli < 91+(127 x 71,1 ms) = lOOs /1 = upłynął okres ROH /skocz, jeżeli brak taktowania 500 ms po pierwszym /pobierz upływ czasu zdjęcia z widełek /skocz, jeżeli upłynęło < 285 ms /skocz, jeżeli upłynęło < 500 ms clr f start /odblokowywalne po 500 ms przerwanie odłożenia /Wejdź tu dopiero po upływie 500 ms przy pierwszym zdjęciu z widełek po każdym odwieszeniu. tdoneO:
jnb lc_,tdonel /skocz, jeżeli występuje obecnie stan zdjęcia z widełek test_tr0:
clr tri setb trO tdonel:
pop acc pop psw /w przeciwnym przypadku zatrzymaj blok czasowy zdjęcia z widełek /i uruchom blok czasowy odwieszenia /odtwórz
174 142
107 reti .★λ·**************************·************************** ; Podprogram obsługi przerwania zewnętrznego External Interrupt 0 offhook_edge:
jb frohtimeout,offhook_returnl jnb fcall,not__inc_call jnb no_ring,ok_wait setb ring_ /wyłącz dzwonek cali write_px2 clr no_ring cali write_px2 setb return_ring
clr ieO /zrzuć przerwanie związane ΕΧ0(LC_)
clr trO /wyłącz onhook timer i flagę
clr tfO /w przypadku związanego
przerwania bloku onhook_timer ok_wait: mov r7,#0ffh loop_ring:
mov r 6,# 0 f fh djnz r6,$ cali watchdog djnz r7,no set
108
17-4 142 saek_aet:
jnb istuio_i1og,do_oαt_istuio cali rsast_ia call wltS-ptl call ri1ts_ut2 sstb no-ring clr ring- ;rbłącz dzwonek call ri1ts_ut2 clr return-ring mov i7,#0fyh lop-ringl:
mov i6,#0fyh djnz r6,$ call rαtchdαg djnz i7,laou_iiogl call isase_ia call riits_utl call ri1ts_ut2 sstb ttr mov tt_O,0^O rsti ayyhoak_iseuio1:
jmp oOyyhok_return oa_ast:
oae_ioo_oall: clr trr clr tfO ;wyłącz blok onhaak_timsi i flagę ;wylącz blok oohaak_tibsi i flagę ;w przypadu, Siyjp zerwanisie aohaak_t1bsi jest zawieszone
174 142
109
push psw
push acc
clr ieO ;zrzuć zawieszone przerwanie ΕΧ0 (LC_)
setb tri /uruchom blok czasowy zdjęcia słuchawki
clr fhang /kasuj flagę odwieszenia dla bezpieczeństwau
mov th0,#0 zresetuj blok czasowy zdjęcia słuchawki
mov time offl,#0 /bloki czasowe inkrementowane przez przerwania thO
mov time_of f2, #0
mov time_off 3, #0
clr mute /usuń ściszenie fonii rx
call write px2
jnb fonhook, check_flash /skocz, jeśli nie na powrót było odwieszenia po zdjęciu
clr fonhook /kasuj flagę, bało odwieszenie
teraz ok_offhook:
jnb fcall,set_hook_flag /skocz, jeśli nie w stanie
setb fanswer ALERT /1 =zdjęcie z widełek podczas
clr fcall połączenia /nadchodzącego /kasuj flagę ALERT (odpowiedzi
setb ring_ na połączenie) /wyłącz dzwonek
call write px2
clr no_ring
call write_px2
mov ccapm2,#0 /przerwij dzwonienie pwm
elear twenty hz pwm /pozostaw pin wyjściowy w
110
174 142
jmp kffSkkk dono
sot Suk flag:
sotb Suk
jmp kffSokk dono
cSock lasS:
mov a,#19
clr c
subb time_on2
jnc check_digit
jnb lock.kfSkkk dono
sotb lash
jmp ofhook_done
chock digit:
a,#i
clr c
subb eimS—ka2
jnc ofhook_done
inc pulse_digit
sotb digit
kfSkkk done:
iot t ime_on1,# 0
md timeon2,#0
md tio,#0
pop acc
pop psw
stanie aisOty 'sygnalizuj zdjęcie z widełek, jeśli nie stan ALERT ;2 O o IO = 20O iss 'Isu;O psseneateaneo oo odejmowania '^0--00O iso stnnan0 liash 'boz flasS, jeżoli TRU zablokowano ;ustaw flago flash
2O x IO = 2O iss 'ksudO przenieseanSo do odejmowania ;2O-20O mso stanowo impuss ;tylko zakłócenie ;zawiera nuser ; ustaw flag<o ewenSlfinej cyfry ;reseO biloków czasowych odwieszenia, tak aby mogły 'ono być ;uruchomione przy odwiesoenSu
174 142
111 offhooktriaunn: zetC ·,+ + + ** + + + *★ + + + + + + + ** + ** + + + + + + + * + + * + * + + + + + * + + + + + + * + + + + + +
Podprogram przerwań PCA ·++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;Pndinrknck PCA gininorkni są z rykondyaaaniem opcji koIπoarkcyjnychSaooaaorująhych modułu ;zinorigo (programowego bloku czaaorigo) przy każdej zgodności dolnej części liczby z FF. W ten sposób /możemy generować onzenrknie na końcu każdej aanony] 00^-0100,0^^0200 i^., co daje nam OndirranCi /co (256*1,085 us) 278 us.
/ Niniejsza Cmpleminakcjk Maxjahk do ryardrzinik dmoayfCkdranigd programu obsługowego PCA dl /bloków TRU o bardzo dużych prędkościach orzikkzz,rknCa danych wykorzystuje kaairllacUk warunkową /(Audiovox wymaga dmCilioligo podprogramu PCA).
$ge ocatainvice:
%Cf%Cnamkak ne 0) then
push Ce
mov Ce,#%Cnamkak
czll mkaOlalel
push zcc
push psw
mov z,cczp^l
( ppdiejhci7 do s;rfuaceji trzeciego poziomu /priorytetów przerwań /oZreślony w sekej, TRU ww celu wykonania reCi /•^uoZu , pm tonoweoo
112
174 142
orl s,ccapm2
ant s,#01000010b
Cz pca done
do_pca:
mov a, #0
pesd table : :
;szukcp pwip dzwonienia /wysluSej tylko bit pm ;zrzuć następną ozęśip jeżeli na wyjściu nie ma /tonu ani dzwonienia ;L_n^:Lcc:ialiucj wskaźnik
moye s,@s+dptr ;pobierz daną z tablicy
cCne αI#355IWpihi tone
mov cSO, OleOskint ;pesetuj wskaźniWp to jest
koniec tablicy
mov dsl,Okwsklnt
mov s,#0 ;tak więc wskaźnik będzie
SPswinąkwy
Cmp reed^-table siirwela pozycję
wpite tonę:
mov CksslOw s ;wstaw daną w tonowe p^wmi
mov ccss30w s ;w^^t^^w daną w swm dzwonienia tylko pw! tonowe Iub ;pwm dzwonienia działają w każdym zadanym czssii
lnc Skα_none: dptr ;wsksż następną pozycję tablicy z następnym czasem
clp ccfO ;pieetuC flagę modułu 0
clp ea ;zablokuj sPliPwania
mov ccappO 1, ;lsąaduC sonkwnii dolną część porównywaną i zawieś ;komparator
mov a,ccapOh ·SPlejdź na ostatnią stronę
lnc a ;w^^k^^ż następną stronę
174 142
113
mov ccapOh,a /załaduj górną część danej do porównania i ponownie /uruchom komparator
setb ea /odblokuj na nowo przerwania
pop psw
POP acc
POP ie /odtwórz przerwania
ret masklabel:
reti
)else(
push acc
push psw
mov accapml /szukaj pwm tonowego
orl a, ccapm2 /szukaj pwm dzwonienia
anl a,#00000010b /wyszukaj tylko bit pwm
jz pca_done /zrzuć następną część, ;
na wyjściu nie ma ;tonu ani dzwonienia /Jeżeli w danym momencie generujemy ton wybierania - Dial Tonę, to należy pobrać wartość bieżącą z /'tablicy wybranego tonu i przesłać ją do PCA1, tak aby w CEX1 (pl.4) była generowana właściwa /częstotliwość DTMF.
do_pca:
mov a,#0 read_table:
movc a,@a+dptr cjne a, #255,write_tone mov dph,highpoint mov dpl,lowpoint mo v a, # 0 /inicjalizuj wskaźnik /pobierz daną z tablicy /resetuj wskaźnik, to jest koniec tablicy /tak więc wskaźnik będzie
114
174 142 jmp read_table ore0n_tone:
mov aaρolh,p mov aaρo2h,p inc dptr pca^one:
cla ccfO clr ea mov ccappOl ,#00:0]:, mov a,ccapOh inc a mov ccapOh,a setb ea pop psw pop acc reti )Oi $noen prawidłowy /·oczytaj e pneowczę pozcj^ ; wstaw daną ca to no wej™ w^tawe Pan ą e wie Cownenanp a tylko pw, 0onoon lub /pwm dzooninnip działają w każdym zadanym czasie
VwuaeZ następne pczaule tablicy z nps0lonzm czasem /reet^ e flan ]odkokę 0 ; zabO/j e pcneopnipa /zaiO'©e ponownee dolne dęść Ogróonyopnn i zawieś /kompprpOor /pcnjjdZ ne ostatnie stornę /•w/Pże następne stron ;załoku1 górną (zz^će dme do porównania i ogngonie /uruchom komparator /odtO/uje ne nowe powpada .*********************************************************** f
Podprogramy ogmganiacn I/R .******************************************************
174 142
115
wenti pxl: /Dana z pxl temp do pxl
push iz /zapamiętaj stan przerwań
cle ez /brak przerwań
cle in peiect
push mcc
push 0 /pusto rO
setb al /B
cle al
mov a,pxl temp
un1 a,#11110000b
mov b, a
mov a,px2 temp
un1 a, #0000111113 /ZaPryymaO wysszo bity
oel a, b wejściowe
mov r0,#00h /dolny adreo do zatrzasku
movx @Ρ0,1 scalonego układu I/O
srtb u0
srtb ul
pop 0 /odtwóro rO
pop acc
pop ie /odtwóro stan przerwań
ert
erud pxl:
push ie /zapamietaO stan przerwań
cle ea /łrrak przerwań
cle io select
push mcc
116
174 142
push 0 ;push u0
clr aO /A
clr al
mov r0,#0h /dolny adrec do zatrzasku peł koillπ/gl układu I/O
move ,,@ι0
ani a,#00001111b /makuu c bity wyjόζύ^θ
ani pxl temp, #1 IŁ 110000b /maskuj bity womakOolo w pel temp
orl pxl temp,a /połązc funkają ani dane o/akoτlo/ i wyjściow/ w j/0/π bajt
k/tb i0
setb
pop 0 /pop rO
pop acc
pop ie /odtwórc stan przerwań
ret r/a^pKl-Strobe:
puah i/ / zapamiętaj atan prz/rwań
clr ea /brak przerwań
clr io_select
puah acc
puah 0 /push rO
clr aO ;A
clr al
mov r0,#0h /dolny adres do zatrzasku pxl
koillπ/gl układu I/O
move ,,@ι0
mov iostatus,a
a/tb aO
a/tb
pop 0 /pop rO
174 142
117
pop acc
pop is rst ;odtróiz stan przerwań
wróts pt2: ;Dana z pt:2 temp do px2
push ie stan przerwań
clr es ;brak przerwań
clr io
push acc
push 0 ;push rrO
sstb aa /B
clr a1
mov a,ux1_esbu
ani a,#11110000b
mov b, i
mov a,ut2_esbu
ani 0000001111 ;eaαeiyjbłl Ołee orsuci.owe
orf aob
mov r0,#00h ;ialob adres do zatrzasku ptl
moYt @r0/ a scalonego układu I/O
sstb k0
sstb ll
pop 0 ;oiewóiy r0
pop acc
pop is ;oiewórz stan urysirań
rst riles_1OcC: ;Dana z pt2 temp do doj
push is ;yauamiętaj stan pp^z^^^eiii
clr sa ,Ίι: przerwań
clr io
push acc
118
174 142
push 0 /push rO
clr aO /B
setb al
mov a,lamps temp
ani a,#11110000b
rl a
rl a
rl a
rl a
mov r0,#00h /dolny adres do zatrzasku pxl
movx @r0, a scalonego układu I/O
setb aO
setb al
pop 0 /odtwórz rO
pop acc
pop ie /odtwórz stan przerwań
ret
read px2:
push ie /zapamiętaj stan przerwań
clr ea /brak przerwań
clr io_select
push acc
push 0 /push rO
clr aO /C
setb al
mov r0,#0h /dolny adres do zatrzasku pxl
movx a, @r0 scalonego układu I/O
ani a,#11110000b /maskuj bity wyjściowe
ani px2 temp,#00001111b /maskuj bity wejściowe w
174 142
119 sx1_tels
orl px2 temp,a ;po±ącz funkcja ani dane wiCścIowi
setb a0 i wyjściowe w jeden bajt
setb al
sos 0 ^pop rO
pop acc
sos ie ··odtwóro stan przerwań
pet pead io m _a: ;dana z px2 temp do do p
push ie ;zapamiętuj stan prspzwaw
clp ea ;brak przerwań
setb lk_eilict
; usop scc
push 0 ;push r0
clp s0 ;b
clr ćil
mov ρ0,#00 ;nklny sdres do zatrzasku pxl
movx a, @p0 scalonego układu I/O
setb s0
setb sl
clp io eilech
sos 0 ;onhwrpz p0
; pop scc
sos ie ;ontwrrz stan przerwań
pet wpite io i b: ;^^n^a z pxl temp do do p
push te ;lssamiitaC stan prsprnpń
setb io eeOekh
clr es ;bpsk s^r^z^^r^w^^ń
120
174 142
pusS acc
push 0
sotb a0
clr al
mov a,tk mb
mov r0,#00S
Ι^Χ @t0.l
sotb a0
setb al
clr io soloct
pop 0
pop acc
pop io
rot
; puish rO ;B 'dolny adres do zatrzasku pxi scalonego układu I'O ;odtwóro rO ; oft^^i^t^izo stan przerwań atpeo_ik_y_c: pusS io setb tk_aoloce clr oa pusS acc pusS 0 clr a0 sotb al mov a, to_y_c iot t0,#0OS movx (^0,ι sotb a0 sotb al clr io solsct 'Dana o px2_temp do px2 ;zapamietdO stan przerwań 'brak przerwań ;push rO 'B 'dolny adres do zatrzasku pxl scalonego układu IO
174 142
121 pop 0 pop acc pop ie ret reset_io_m: push ie /odtwórz rO /odtwórz stan przerwań /zapamiętaj stan przerwań
clr ea /brak przer
setb io_select
push acc
push 0 /push rO
setb aO /sterowanie
setb al
mov rO,#0h
mov a,#10010000b
movx @r0, a
setb aO
setb al
clr io_select
pop 0
pop acc
pop ie
ret
reset io:
;pop rO /dolny adres do zatrzasku px2 scalonego układu 1/0 /odtwórz stan przerwań push ie clr ea setb push acc push 0 setb aO io select /zapamiętaj stan przerwań /brak przerwań /push rO /sterowanie
122
174 142 setb p1
mov rO,#0h /dolne alese Oe zzpoia saplonneo układu I/R
mov a, #10011000b
movx @r0, p
setb a0
setb al
clr ioselect
pop 0 /pop rO
pop acc
pop ie /od0wócz stan przerwań
ret
.*********************************************************** r
/ PoOorgerpmz ogiιoaniczn f
• · kkkkkkkkkkkk-kkkkkkkkkkkkkkkkkk-kkkkkkkkkkkkkkkkkkkkkkkkkkkk r r /Dla pomocy przy uruchamianiu programu można zapisać ogólne komunikaty oymenniρnn miedzy TRU i /Cnljpak. Bufor tych komunikatów zajmuje lokacje od 90h Oo FFh.
cla_mse:
push 1 /zapamiętaj R1
mov rl,0mtiuf start /wskaźnik na początek bufora
komunikp0óo
mov msg ptr,r1 /zappmiętjj początek bufora
alr_msg1:
mov @rl,055h /wypełńjj maską o wartościach
55h inc r1 /wskaż npt0lonn lokację
174 142
123 cjne rl, #msgbuf_end, clr_msgl ; do końca bufora
pop 1 /odtwórz Rl
ret
savemg:
push 1 /zapamiętaj Rl
mov rl,msg ptr /pobierz bieżący wskaźnik
cjne rl, #msgbuf_end,saveml /skocz, jeśli bufor komunikatów nie jest jeszcze zapełniony mov rl,#msgbuf start /przestaw początek, jeżeli
zapełniony
saveml: mov @rl,a /zapamiętaj komunikat w buforze
inc rl /przesuń wskaźnik do przodu
mov msg ptr,rl /zapamiętaj przesunięty do
pop 1 następnego wykorzystania /odtwórz Rl
exit: ret
/Kasuj kopię wskaźnika LCD mikrotelefonu w buforze RAM wyświetlacza.
clr_dsp:
push 1 /zapamiętaj Rl mov rl,#dspbuf start /wskaźnik na początek bufora
komunikatów
mov dsp ptr,rl /zapamiętaj początek bufora
clr msgl:
mov @rl,#0ffh /wypełnij maską o wartościach
FFh inc rl /wskaż następną lokację
124
174 142 cjne rl,#dspbuf_end,clr_dspl /do końca buforą pop 1 /odtwórz Rl ret /Niektóre bloki TRU muszą przechowywać informacje wyświetlacza LCD mikrotelefonu w lokalnym buforze wyświetlacza.
save_dsp:
push 1 /zapamiętaj Rl mov rl,dsp_ptr /pobierz bieżący wskaźnik cjne rl,#dspbuf_end,save_dspl /skocz, jeśli bufor komunikatów nie jest jeszcze zapełniony mov rl,#dspbuf_start /przestaw początek, jeżeli zapełniony savedspl:
mov @rl,a /zapamiętaj komunikat w buforze inc rl /przesuń wskaźnik do przodu mov dsp_ptr,rl /uaktualnij wskaźnik do następnego wykorzystania pop 1 /odtwórz Rl save_dsp2:
/include(SPAIN.asm) ret $nolist
Śinclude(SPAIN4.asm) $list nop nop end/
174 142
174 142
FIG.1A
174 142
FIG.1B
174 142
KROK 25
KROK 16
KROK 17
KROK 18
KROK 19
KROK 20
KROK 21
KROK 22
KROK 23
KROK 24 NIE
USTAW ERROR_FLAG MAIN FLAG ERR0R = 1
INICJUJ ZMIENNE ' i.....Z
KASUJ „LEO-y’ STANU
OOŁACZ SŁUCHAWKĘ ABONENTA
OOŁACZ MODUŁ OBSŁUGOWY
ZWŁOKA
MOOUŁ OBSŁUGOWY ZDJĘCIA SŁUCHAWKI
ZWŁOKA
INTERFEJS WYKRYWAJĄCY ODWIESZENIE . CZY , SŁUCHAWKA ZDJĘTA ?
KROK 26 {γΑΚ
ODBLOKUJ TON WYBIERANIA
RETURNJ
FIG. 2
174 142
FIG. 3
174 142
FIG. 4
174 142
FIG. 5A
174 142
FIG. 5B
174 142
KROK 67
USTAW RING.SECONO
Ε
KROK 63
KROK 64
PĘTLA! ZOJECIE SŁUCHAWKI PRZEO UPŁYWEM 2S JEST NIEDOZWOLONE
KROK 65 NIE
KROK 66
WYKRYTO BŁAO ZDJĘCIA SŁUCHAWKI
KASUJ POŁĄCZENIE WCHODZĄCE
USTAW ERROR.FLAG MAIN ERR0R FLAG = 5
KROK 49
KROK 50
RETURN
FIG.5C
174 142
FIG .6
174 142
FIG.7A
174 142
FIG.7B
174 142
KROK 95
KROK 97
KROK 99
KROK 103
KROK 105
FIG. 8A
BtAO OOWIESZENIA
J KROK 96 ERR0R C0DE=1
BtAO OOWJESZENIA PRŻY DZWONIENIU
J KROK 98 ERR0R C00E=2
KROK 101
BtAO TONU WYBIERANIA
J KROK 100 ERR0R C00E=3
BtĄD TONÓW DTMF } KROK 102
ERR0R_C00E=4
BtAO WYKRYWANIA DZWONIENIA ł KR0K-104 ERROR COOE=5
BtAO OOPOWIEDZl NA OZWONIENIE
ERR0R C0DE=6
174 142
KROK 111
KROK 107
KROK 109
KROK 113
KROK 115
ERR0R C00E=7
BŁAO POŁĄCZENIA
J KROK 110 ERR0R C0DE=8
BLAO TONU ZAJĘTOŚCI } KROK 112 ERR0R C00E=9
BLAO STANU DZIAŁANIA | KROK 114 ERR0R C00E=10
BŁAO 1000Hz
I KROK 116 ERROR COOE 11
BŁĄD ZASILANIA-RA0I0
KROK 108
NIE
RETURN
FIG. 8B
174 142
KROK 117
KROK 118
KROK 119
KROK 120
KROK 121
KROK 122
KROK 123
KROK 124
FIG. 9
174 142
FiG.10
174 142
FiG .11
174 142
FIG.12
174 142
-IN
FIG.13
174 142
FIG .14
Departament Wydawnictw UP RP. Nakład 90 egz. Cena 6,00 zł

Claims (2)

  1. Zastrzeżenia patentowe
    1. Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej zawierające nadajnik-odbiornik radiowy, blok interfejsu i urządzenie telekomunikacyjne dołączone do nadajnika-odbiornika radiowego, przy czym blok interfejsu łączy operacyjnie urządzenie telekomunikacyjne z nadajnikiem-odbiornikiem radiowym dla telefonicznych połączeń wychodzących albo połączeń odbieranych przez nadajnik-odbiornik radiowy, znamienne tym, że zawiera urządzenie testujące (10) dla kontrolowania i określania właściwego działania nadajnika-odbiornika radiowego i bloku interfejsu (14), przekaźnik (RELYl) do dołączania urządzenia testującego (10) do bloku interfejsu (14) w miejsce urządzenia telekomunikacyjnego, przy czym urządzenie testujące (10) zawiera układy (SSR1, Q4, U4) generowania funkcji wykonywanych przez urządzenie telekomunikacyjne do wygenerowania w bloku interfejsu (14) odpowiedzi dla określenia, czy blok interfejsu (14) działa poprawnie.
  2. 2. Urządzenie według zastrz. 1, znamienne tym, że urządzenie testujące (10) zawiera układy generowania połączenia telefonicznego wychodzącego przez blok interfejsu (14) i radiowy nadajnik-odbiornik, czyli przez radiowy system telefoniczny, z którym ten radiowy nadajnik-odbiornik jest związany, i na powrót do tego nadajnika-odbiornika, przy czym urządzenie testujące (10) zawiera następnie układ (U6) dla wykrywania sygnału zajętości przez nadajnik-odbiornik w odpowiedzi na to połączenie telefoniczne, przy czym układy (SSR1, Q4, U4) generowania funkcji, w tym generowania wychodzącego połączenia telefonicznego, wywołują numer aparatu telefonicznego, który został przydzielony temu nadajnikowi-odbiornikowi, do którego jest operacyjnie dołączony.
PL94321371A 1993-03-25 1994-03-02 Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej PL174142B1 (pl)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3762793A 1993-03-25 1993-03-25
PCT/US1994/002281 WO1994022255A1 (en) 1993-03-25 1994-03-02 Self-diagnostic system for cellular-transceiver systems

Publications (1)

Publication Number Publication Date
PL174142B1 true PL174142B1 (pl) 1998-06-30

Family

ID=21895376

Family Applications (2)

Application Number Title Priority Date Filing Date
PL94310775A PL173533B1 (pl) 1993-03-25 1994-03-02 Sposób i urządzenie do testowania bloku interfejsu nadawczo-odbiorczego w systemie łączności komórkowej
PL94321371A PL174142B1 (pl) 1993-03-25 1994-03-02 Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PL94310775A PL173533B1 (pl) 1993-03-25 1994-03-02 Sposób i urządzenie do testowania bloku interfejsu nadawczo-odbiorczego w systemie łączności komórkowej

Country Status (34)

Country Link
EP (1) EP0691058B1 (pl)
JP (1) JPH08510872A (pl)
CN (1) CN1064808C (pl)
AT (1) ATE162036T1 (pl)
AU (1) AU674406B2 (pl)
BG (1) BG100027A (pl)
BR (1) BR9405970A (pl)
CA (1) CA2154789C (pl)
CZ (1) CZ287151B6 (pl)
DE (1) DE69407773T2 (pl)
DK (1) DK0691058T3 (pl)
EC (1) ECSP941059A (pl)
EE (1) EE9400437A (pl)
ES (1) ES2080708T3 (pl)
FI (1) FI954509A0 (pl)
GR (1) GR3026552T3 (pl)
HK (1) HK1002642A1 (pl)
HU (1) HU216556B (pl)
IL (1) IL108809A (pl)
LT (1) LT3323B (pl)
LV (1) LV11510A (pl)
MD (1) MD940289A (pl)
MY (1) MY110488A (pl)
NO (1) NO953791D0 (pl)
NZ (1) NZ263661A (pl)
OA (1) OA10229A (pl)
PE (1) PE12695A1 (pl)
PL (2) PL173533B1 (pl)
SI (1) SI9420026A (pl)
SK (1) SK118995A3 (pl)
TR (1) TR28486A (pl)
UY (1) UY23744A1 (pl)
WO (1) WO1994022255A1 (pl)
ZA (1) ZA941880B (pl)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI102124B1 (fi) 1996-03-07 1998-10-15 Nokia Telecommunications Oy Tilaajaliittymän kaukotestaus johdottoman tilaajaliittymän toteutettavassa radiojärjestelmässä
US6349199B1 (en) 1998-02-12 2002-02-19 Ericsson Inc. Reliable continuously operating fixed cellular terminal
DE19953640A1 (de) * 1999-11-09 2001-05-10 Deutsche Telekom Ag Verfahren zum telekommunikationsgestützten Schutz und Auffinden von Lebewesen
CN100407839C (zh) * 2004-12-17 2008-07-30 中兴通讯股份有限公司 移动电话通讯的自动测试方法及移动电话自动呼叫器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5989043A (ja) * 1982-11-12 1984-05-23 Hitachi Ltd 移動電話装置保守診断方式
US4658096A (en) * 1984-09-18 1987-04-14 Metrofone, Inc. System for interfacing a standard telephone set with a radio transceiver
US4737975A (en) 1984-09-18 1988-04-12 Metrofone, Inc. Programmable system for interfacing a standard telephone set with a radio transceiver
US4788711A (en) * 1985-11-25 1988-11-29 Cellular Communications Corporation Apparatus and method for a cellular freeway emergency telephone service
US5020135A (en) * 1987-03-27 1991-05-28 Teletec Corporation Computerized multistandard, field-convertible, multiregional/multiservice, remote controllable, remote programmable mobile two-way radio system with digital serial bus link, built-in programmer and autodiagnostics
GB8823408D0 (en) * 1988-10-05 1988-11-09 Smith Myer Electronic test equipment
US5095500A (en) * 1989-12-07 1992-03-10 Motorola, Inc. Cellular radiotelephone diagnostic system
US5073919A (en) * 1990-10-10 1991-12-17 Teradyne, Inc. Automatically testing telephone lines

Also Published As

Publication number Publication date
LV11510A (lv) 1996-08-20
FI954509A (fi) 1995-09-22
HU216556B (hu) 1999-07-28
CA2154789C (en) 1999-04-20
AU6443194A (en) 1994-10-11
EE9400437A (et) 1996-06-17
MY110488A (en) 1998-06-30
ZA941880B (en) 1994-11-01
PL310775A1 (en) 1996-01-08
NO953791L (no) 1995-09-25
PL173533B1 (pl) 1998-03-31
IL108809A (en) 1997-02-18
SK118995A3 (en) 1998-05-06
MD940289A (ro) 1995-09-30
HU9502752D0 (en) 1995-11-28
EP0691058B1 (en) 1998-01-07
CN1064808C (zh) 2001-04-18
TR28486A (tr) 1996-09-02
DE69407773D1 (de) 1998-02-12
JPH08510872A (ja) 1996-11-12
NZ263661A (en) 1996-07-26
FI954509A0 (fi) 1995-09-22
BG100027A (en) 1996-09-30
ES2080708T3 (es) 1998-05-01
CZ287151B6 (en) 2000-09-13
ES2080708T1 (es) 1996-02-16
AU674406B2 (en) 1996-12-19
EP0691058A4 (en) 1996-07-03
LT3323B (en) 1995-06-26
GR3026552T3 (en) 1998-07-31
NO953791D0 (no) 1995-09-25
DE69407773T2 (de) 1998-06-18
HK1002642A1 (en) 1998-09-04
IL108809A0 (en) 1994-06-24
ATE162036T1 (de) 1998-01-15
LTIP1901A (en) 1995-01-31
UY23744A1 (es) 1994-08-17
WO1994022255A1 (en) 1994-09-29
PE12695A1 (es) 1995-05-31
CA2154789A1 (en) 1994-09-29
DK0691058T3 (da) 1998-09-07
CN1119898A (zh) 1996-04-03
SI9420026A (en) 1996-06-30
HUT73125A (en) 1996-06-28
OA10229A (en) 1997-10-07
CZ240895A3 (en) 1997-06-11
BR9405970A (pt) 1995-12-12
ECSP941059A (es) 1994-11-16
EP0691058A1 (en) 1996-01-10

Similar Documents

Publication Publication Date Title
US5469494A (en) Self-diagnostic system for cellular-transceiver systems
US6690923B1 (en) Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities
PL178631B1 (pl) Sposób zdalnego testowania bloku interfejsu i urządzenia nadawczo-odbiorczego w systemie łączności komórkowej
US7089034B1 (en) Concurrent wireless/landline interface
US5946616A (en) Concurrent wireless/landline interface apparatus and method
US5859894A (en) Self-diagnostic system for cellular-transceiver systems with remote-reporting capabilities
US7212816B2 (en) Fixed wireless telephone device
CA2571691A1 (en) Remotely programmed telecommunications rf link module and method therefor
PL174142B1 (pl) Radiowe urządzenie nadawczo-odbiorcze w systemie łączności komórkowej
KR100797702B1 (ko) 사설 교환기에서 발신자 정보 송수신 장치
EP0792057B1 (en) Telephone ringback test device and method
CN101867662A (zh) 用户通话的高阻监听装置和方法
JPS6320071B2 (pl)
CN102056213B (zh) 一种终端贴片卡检测方法及系统
JPS61206355A (ja) 選択着信方式
CN101640731B (zh) 一种彩铃服务器及彩铃实现方法和彩铃辨识装置和方法
JPS59161168A (ja) 網制御装置
KR20060037134A (ko) 이동 단말의 성능 측정 장치 및 방법
CN109587321A (zh) 收发滤除方法、允许收发号码库的设置方法及系统
WO2004019623A2 (en) Call handling for a fixed wireless device
JPS6326945B2 (pl)
JPH02235472A (ja) 公衆電話網による非電話系端末のデータ転送方法とその端末付加装置