Poznańskie Warsztaty Telekomunikacyjne PWT2004
Transkrypt
Poznańskie Warsztaty Telekomunikacyjne PWT2004
www.pwt.et.put.poznan.pl Wojciech Więcławek, Tomasz Zakrzewski Wydział Automatyki Elektroniki i Informatyki Instytut Elektroniki, Politechnika Śląska 44 – 100 Gliwice ul. Akademicka 16 [email protected] [email protected] 2004 Poznańskie Warsztaty Telekomunikacyjne Poznań 9 - 10 grudnia 2004 INTEREFEJS BUFORUJĄCY CENTRAL PABX JAKO ANALIZATOR RUCHU TELEFONICZNEGO Streszczenie: Niniejszy artykuł dotyczy problematyki taryfikacji rozmów telefonicznych abonentów central PABX. Związana jest ona z koniecznością zaprojektowania zewnętrznego bufora do tych central telefonicznych. Jego zadaniem jest odbiór raportów wysyłanych przez centralę telefoniczną (transmisja po łączu szeregowym – RS232, V.24) oraz ich zapamiętywanie w wewnętrznej pamięci danych (z kompresją lub bez niej), a następnie przekazywanie zgromadzonych danych do komputera za pomocą połączenia kablowego lub modemowego. 1. kolekcji zgromadzonych w wewnętrznej pamięci danych rekordów. Poglądowo sytuację tą przedstawia rysunek 1. Urządzenie buforujące Rys. 1. Schemat poglądowy systemu WSTĘP Prywatna centrala abonencka PABX jest powszechnym rozwiązaniem dostępu do publicznej sieci telekomunikacyjnej wielu numerów wewnętrznych firmy czy najemców lokali dużego budynku. Praktycznie każda nowoczesna centrala PABX ma możliwość rejestracji danych opisujących zrealizowane przez tę centralę połączenia. Informacje te są wykorzystywane głównie do obliczania kosztów połączeń czyli do przeprowadzenia taryfikacji rozmów, na ich podstawie można również analizować ruch telekomunikacyjny przechodzący przez centralę, co daje możliwość określenia czy ilość linii miejskich jest wystarczająca. Ponadto kontrola i rozliczanie ruchu telefonicznego pozwala na ograniczanie kosztów i lepsze wykorzystanie systemu telekomunikacyjnego w firmie. Z reguły rekord taryfikacyjny CDR (ang. Call Data Record), jest generowany przez centralę po zakończeniu każdego połączenia i bezpośrednio wysyłany portem szeregowym do systemu obliczającego koszty bądź urządzenia umożliwiającego wydruk tej informacji. W takim prostym rozwiązaniu system odbierający rekordy taryfikacyjne i obliczający koszty, zwykle w postaci komputera z odpowiednim oprogramowaniem, musiałby nieprzerwanie odbierać i analizować wysyłane za pośrednictwem portu szeregowego rekordy. Lepszym i zarazem bardziej niezawodnym rozwiązaniem jest zainstalowanie w bezpośrednim sąsiedztwie centrali urządzenia buforującego, zbierającego dane z centrali. W urządzeniu tym są one przechowywane, a na żądanie systemu taryfikacyjnego przesyłane w formie pełnej PWT 2004, Poznań 9 - 10 grudnia 2004 PABX Niniejsze opracowanie jest projektem takiego urządzenia. 2. 1. 2. 3. 4. 5. ZAŁOŻENIA Przyjęto następujące założenia projektowe: Rekord generowany przez centralę jest ciągiem znaków ASCII, zakończonym znakiem LF lub CR, albo LFCR. Jeśli nie ma zakończenia ww. znakami to początek rekordu jest wyróżniony znakiem specjalnym (np. $), albo ma znaną długość. Dane nie powinny być pobierane częściej niż raz na dzień. Przy średniej długości rekordu 80 znaków (czyli 80 bajtów) oraz założeniu, że w ciągu doby przez 8 godz. jest generowany ruch o intensywności jednego połączenia na 10 minut dla każdej z pięciuset wewnętrznych linii to minimalna wielkość pamięci danych powinna wynosić: 8*(60/10)*500*80 ≈ 2MB. Pamięć danych musi być nieulotna – EEPROM. Niezbędne jest podtrzymanie zasilania. Zastosowano dodatkowe bateryjne źródło zasilania. Konieczny jest system alarmów, sygnalizujący krytyczne stany pracy jak: przekroczenie ustalonego progu zapełnienia pamięci, zanik zasilania, brak nadchodzących rekordów z centrali przez ustalony czas (uszkodzenie kabla łączącego urządzenie z centralą). Odbiór danych z urządzenia powinien być niezawodny, dopiero po odebraniu porcji danych 1 www.pwt.et.put.poznan.pl 6. 7. 8. przez system dokonujący rozliczania (komputer PC) i sprawdzeniu sumy kontrolnej dane w buforze mogą być uznane jako nieważne i usunięte z pamięci. Musi istnieć możliwość pełnej konfiguracji funkcjonalnej urządzenia. Ustalenia parametrów transmisji styku PABX – bufor, styku komputer – bufor (po resetowaniu styk komputer – bufor ma domyślne parametry transmisji), ustawienia progów alarmów, ustawienia znacznika końca bądź początku, lub długości rekordu. W przypadku gdy rekord taryfikacyjny nie zawiera daty i/lub czasu wykonania połączenia (informacja ta jest potrzebna do poprawnej taryfikacji) to oryginalny rekord odebrany z centrali jest uzupełniany o potrzebną informację pobraną z lokalnego zegara urządzenia Konieczna jest separacja galwaniczna urządzenia zarówno na styku PC – bufor (co zapewnia transformator użyty w zasilaczu), jak i na styku PABX – bufor (wykorzystano optoizolację). 3. 3. 4. SCHEMAT BLOKOWY Na rysunku 2 przedstawiono schemat blokowy urządzenia. 5. 6. 7. 8. 9. Rys. 2. Schemat blokowy urządzenia Funkcje poszczególnych bloków opisano poniżej: 1. Interfejs RS-232 (MAX232) Blok mający za zadanie konwersję poziomów napięć sygnałów na standard łącza szeregowego RS-232 i odwrotnie. Istnieją dwa tego typu bloki: jeden do transmisji pomiędzy centralą, a urządzeniem; drugi do transmisji komputer – bufor. 2. Optoizolacja (transoptory) Blok zapewniający separację galwaniczną między centralą i urządzeniem, konieczny ze względu na fakt, iż potencjał masy centrali (przewodu neutralnego) może być inny niż potencjał masy PWT 2004, Poznań 9 - 10 grudnia 2004 urządzenia. Mogłoby to spowodować przepływ prądu w łączącym przewodzie masy i zniszczyć interfejsy. Zegar czasu rzeczywistego (PCF8583) Blok niezbędny przy uzupełnieniu rekordów taryfikacyjnych o bieżący czas i/lub bieżącą datę, jeśli oczywiście zachodzi taka potrzeba. Ma to miejsce wówczas gdy w oryginalnym rekordzie wysyłanym przez centralę brakuje tej informacji. Pamięć RAM Pamięć danych, do której w pierwszej kolejności są zapisywane rekordy odbierane z centrali. Zastosowanie wstępnego zapisu danych do pamięci RAM podyktowane jest tym, że przy nadchodzących szybko rekordach z centrali mikrokontroler mógłby nie nadążyć z wpisywaniem bezpośrednio do pamięci EEPROM odebranego bajtu rekordu (ze względu na stosunkowo długi czas zapisu do tego typu pamięci) przed odebraniem następnego bajtu. Z tego też względu dane są zapisywane wstępnie do pamięci RAM, a przy braku konieczności obsługi przerwań przez mikrokontroler kopiowane są do nieulotnej pamięci EEPROM. Pamięć EEPROM Nieulotna docelowa pamięć danych, przechowująca odebrane rekordy taryfikacyjne. Mikrokontroler (PIC18F8720) Element sterujący pracą całego urządzenia, nadzorujący proces odbioru i transmisji danych, uzupełniania rekordów o datę i/lub czas, kontrolujący zapis i odczyt do/z obu rodzajów pamięci, czuwający nad transmisją szeregową wraz z generacją sum kontrolnych wysyłanych do komputera PC rekordów, konfigurujący wszystkie wymagające tego elementy urządzenia na podstawie odebranych w rozkazach z PC-ta informacji, generujący sygnały alarmowe. Generator Układ generowania sygnałów zegarowych potrzebnych do sterowania pracą urządzenia. Sygnalizacja (diody elektroluminescencyjne, buzer, wyświetlacz LCD) Blok sygnalizujący użytkownikowi stan urządzenia, w szczególności stany alarmowe. Zasilacz i bateria Blok zasilania wraz z automatycznym przełączaniem na zasilanie bateryjne, tak by zapewnić nieprzerwaną pracę urządzenia. 4. OPIS DZIAŁANIA Uproszczony algorytm działania urządzenia przedstawiono na rysunku 3. Algorytm (program) składa się z 3 głównych modułów (podprogramów): programu głównego oraz podprogramów obsługujących przerwania zgłaszane przez porty szeregowe, obsługujące transmisję na styku centrala – bufor oraz komputer – bufor. 2 www.pwt.et.put.poznan.pl Program główny START Czuwanie nad flagami alarmów - sygnalizacja Przepisywanie rekordów danych z pamięci RAM do pamięci EEPROM Podprogram obsługi przerwania z portu szeregowego na styku z PABX Podprogram obsługi przerwania z portu szeregowego na styku z PC Inicjalizacja Odbiór rekordów danych taryfikacyjnych z centralki PABX Pobierz status Czy są jeszcze rekordy do transmisji? N T Umieszczanie odebranych danych w pamięci RAM; ustawianie flag alarmów Generowanie CRC Koniec programu obsługi przerwania Transmisja pojedynczego rekordu danych taryfikacyjnych do komputera PC Czy otrzymano potwierdzenie odbioru? N T Inkrementacja indeksu rekordu Koniec programu obsługi przerwania Rys. 3. Uproszczony algorytm działania urządzenia Program główny składa się z pętli, w której cyklicznie są realizowane dwa zadania: przenoszenie danych z pamięci RAM do pamięci EEPROM oraz czuwanie nad stanem urządzenia, czyli analizowaniem flag alarmów i sygnalizowaniem określonych stanów. W momencie gdy centrala wysyła do urządzenia rekord (ma to miejsce po każdym zakończonym połączeniu telefonicznym) po odebraniu każdego pełnego bajtu danych należących do rekordu, zgłaszane jest wewnętrzne przerwanie informujące o zapełnieniu rejestru danych obsługującego port szeregowy mikrokontrolera. Program główny jest przerywany i następuje wywołanie podprogramu obsługi przerwania. Ma ono najwyższy priorytet, gdyż PWT 2004, Poznań 9 - 10 grudnia 2004 najważniejszą rzeczą jest ciągły odbiór danych z centrali, tak aby nie utracić informacji o żadnym ze zrealizowanych połączeń telefonicznych. Dane są bajt po bajcie odczytywane z portu i zapisywane w pamięci RAM. Rysunek 3 przedstawia uproszczony algorytm działania tego podprogramu, aby był on bardziej czytelny, przyjmując rekord jako niepodzielną porcję danych. W rzeczywistości natomiast dane są odbierane bajt po bajcie, a przerwanie jest zgłaszane po odbiorze każdego bajtu. W celu pobrania danych z urządzenia do systemu taryfikacyjnego (komputera), bądź w celu zmiany konfiguracji urządzenia, konieczne jest zainicjowanie transmisji przez komputer. Inicjalizacja polega na 3 www.pwt.et.put.poznan.pl wysłaniu komendy, którą analizuje mikrokontroler i na jej podstawie podejmowane są odpowiednie działania. Dla odbioru danych z bufora pierwszą komendą wysłaną przez komputer jest „wyślij status” w wyniku czego uzyskujemy informację o stanie urządzenia. Najważniejszą z nich jest informacja o ilości rekordów w buforze. Znając ją dane odbierane są przez komputer rekord po rekordzie, przy czym odbiór pojedynczego rekordu polega na cyklicznym pobieraniu bajtów wchodzących w jego skład. Koniec rekordu jest wykrywany w zależności od konfiguracji albo na podstawie sekwencji LRCF, lub na podstawie stałej i jednoznacznie określonej długość rekordu, bądź też z uwagi na pojawienie się określonego znaku rozpoczynającego rekord. Na bieżąco jest liczona suma kontrolna (CRC) z poszczególnych bajtów rekordu i jako ostatni (dodatkowy) bajt jest przesyłana do komputera. Na podstawie porównania odebranej sumy kontrolnej z obliczoną przez komputer stwierdzany jest fakt wystąpienia ewentualnego błędu transmisji. Jeśli miał on miejsce to wysyłane jest polecenie powtórzenia odbioru bieżącego rekordu, gdy natomiast transmisja była poprawna – rozkaz „pobierz rekord” powoduje wysłanie przez bufor następnego rekordu. Aby zapewnić poprawne działanie algorytmu w przypadku awarii łącza PC – bufor czas przeznaczony na odpowiedź jest limitowany (ustawiany w trakcie konfiguracji). Po przekroczeniu limitu czasowego algorytm wraca do stanu początkowego. Jeśli transmisja PC – bufor ma za zadanie ustawienie konfiguracji urządzenia to po wysłaniu rozkazu „ustaw parametry” wysyłane są kolejne wartości tych parametrów. Są one zapisywane w obszarze pamięci danych mikrokontrolera, która jest typu EEPROM. Poprawna współpraca komputer – urządzenie jest od strony programowej obsługi zapewniona przez stworzony interfejs w postaci biblioteki dll, pozwalający na wywoływanie funkcji sterujących pracą bufora bez ingerencji w implementację użytego na tym łączu protokołu transmisji niskiego poziomu. 5. do pobierania danych zdalnie przy użyciu modemu przez połączenie telefoniczne. Nawiązanie komunikacji z buforem jest wówczas zabezpieczone przed niepowołanym dostępem hasłem. Modułów spełniających tę funkcjonalność ze względu na ograniczoną objętość artykułu nie zawarto w opisie. Przewiduje się rozbudowę urządzenia tak aby możliwe było pobieranie danych przez sieć komputerową opartą o stos protokołow TCT/IP, gdzie warstwa fizyczna jest standardu Ethernet (tzw. wyniesiony przez sieć port szeregowy). SPIS LITERATURY [1] [2] [3] [4] [5] [5] Instrukcje serwisowe central Siemens Instrukcje serwisowe central. Panasonic www.microchip.com www.semiconductors.philips.com www.maxking.com www.atmel.com PODSUMOWANIE Chcąc umożliwić użytkownikom central PABX samodzielne przeprowadzanie taryfikacji rozmów telefonicznych prowadzonych w zasięgu tychże central nieodzowne jest posiadanie urządzeń do tego przystosowanych. Jedno z rozwiązań zostało zaproponowane w niniejszym artykule. Założenia tego projektu oraz oferowane przez to urządzenie funkcje dobrano w miarę optymalny sposób, korzystając z wcześniej zdobytych doświadczeń. W przypadku gdy zadaniem systemu taryfikacyjnego ma być obsługa wielu central umieszczonych w różnych oddziałach danego przedsiębiorstwa zastosowanie urządzeń opisanych w tym artykule jest nieodzowne. Muszą one współistnieć przy każdej z central i być połączone do tego samego komputera PC tworząc w ten sposób centralny system taryfikacji. W zależności od konkretnego zastosowania istnieje również możliwość wykorzystania urządzenia PWT 2004, Poznań 9 - 10 grudnia 2004 4