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