ЛАБОРАТОРНА РОБОТА №1
Тема: “Дослідження алгоритму прийому сигналів виклику Scaner()”.
Мета роботи: Засвоєння роботи першого етапу обслуговування абонентів – сканування станів КТ абонентських комплектів.
Теоретичні відомості.
Сигнали виклику від абонентів визначаються за допомогою абонентських комплектів (АК), які виділяються окремо для кожного з них. Стани АК зчитуються спеціальним периферійним пристроєм – абонентським опитувачем (АО), який містить схему зчитування станів групи із восьми АК. В імітаційній моделі керуючої системи, як і в реальних системах, існує алгоритм, який відповідає за сканування станів всіх АК використовуючи вищезгаданий АО – алгоритм називається Scaner(). Для визначення сигналів виклику, групи АК скануються з фіксованим періодом часу 100 мс.
Алгоритм Scaner() виконує наступні дії:
1. формує індекс групи АК k за допомогою якої дістає слово стану АК R1[k], цієї групи від АО;
2. з масиву попередніх станів АК в ОЗП R2[k] дістає інформацію про попередній стан тієї ж групи АК;
3. зрівнює ці дві інформації (попередню та текучу) і аналізує результат;
4. при наявності виклику:
а) визначає координати АК з якого надійшов сигнал виклику,
б) перевіряє на наявність вільного РВ,
в) формує заявку на прийом номера, для цього записує лінійну адресу АК в чергу на обслуговування прийому набору номера qi[],
г) включає сигнал «Відповідь станції»,
д) при відсутності РВ - включає сигнал «Зайнято»,
е) формує заявку на очікування відбою абонента, для цього записує лінійну адресу АК в чергу на відбій qo[];
5. після перевірки групи з восьми АК записує новий стан цих комплектів в масив попередніх станів АК в ОЗП – R2[k]=R1[k].
Ці дії виконуються до тих пір, поки не будуть опитані всі (16) групи АК.
Хід роботи.
1. Ознайомитись з теоретичними відомостями;
2. Запустити програму main.exe;
3. Відкрити для виконання файл 1_1;
4. Натискаючи клавішу F4 слідкувати за зміною значень в чергах;
5. Після проходження експеременту перемалювати графік черг qi[] та qo[] (клавіша F3);
6. Запустити ще раз програму main.exe;
7. Відкрити для виконання файл 1_2;
8. Натискаючи клавішу F4 слідкувати за зміною значень в чергах;
9. Пояснити, що відбувається з абонентами коли в комутаційній системі не достатньо регістрів виклику;
10. Запустити ще раз програму main.exe;
11. Відкрити для виконання файл 1_3;
12. Пояснити даний експеремент.
Рис. 2.1. Блок-схема алгоритму прийому сигналів виклику.
На рис. 2.2 зображено вікно виклику функції Scaner(), де:
FreeReg – кількість вільних регістрів;
iptr – вказівник на останній елемент у вхідній черзі;
optr – вказівник на останній елемент у вихідній черзі;
Rbusy – масив занятих абонентів;
qi[] – вхідна черга;
qo[] – вихідна черга.
Рис. 2.2. Вікно виклику функції Scaner()
Контрольні запитання.
1. Які особливості етапу прийому сигналів виклику від абонентів?
2. Як поведеться система при збільшенні інтенсивності навантаження на неї?
3. Як відбувається формування координат АК?
4. В яких випадках алгоритм посилає абонентам сигнал “Занято”?
5. Що таке регістр виклику, та для чого він призначений?
6. Для чого використовуються черги?