ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Контроллер системи автоматизації
         

     

    Інформатика, програмування
    Контролер системи автоматизації

    1 Технічне завдання на розробку проекту

    Вихідні дані для проектування

    Призначення пристрої

    Пристрій, розробка якої проводиться в даній роботі, - контролер системи автоматизації. У якість реалізованих на його основі функцій можна назвати наступні: отримання даних від датчиків стану об'єкта управління, формування керуючих впливів згідно розв'язуваним завданням, обмін інформацією з іншими контролерами і центральної ЕОМ. Також до цього списку можна включити і такі внутрішні сервісні функції як самодіагностика і контроль ходу виконання програми - виявлення ситуацій "зависання".

    У проекті не розглядаються процеси безпосереднього управління об'єктом. Тому основним завданням контролера буде отримання даних від зовнішнього джерела, перетворення їх у потрібний формат і передача далі по ланцюжку. Тобто контролер можна розглядати як певний "інформаційний" ретранслятор, забезпечений функціями контролю і самодіагностики.

    Контроллер приймає дані у вигляді пакетів у відповідності з протоколом X-Modem, що забезпечує перевірку виникнення помилок передачі і повторний запит пакету у разі їх виникнення. Реалізована інтерфейс прийому - ІРПР-М.

    Інформація буферизує і передається далі по одному байту без контролю помилок також з використанням інтерфейсу ІРПР-М. Додатково за допомогою програмованого таймера контролер проводить перевірку стану ПЗУ (підрахунок контрольної суми) і аналіз ходу виконання програми. У разі неспівпадіння контрольної суми або зависання одним із завдань вимикається індикатор нормальної роботи, і процес зупиняється до втручання оператора.

    1.1.2 Характеристики інтерфейсу ІРПР-М

    Інтерфейс ІРПР-М є уніфікованою системою зв'язків і сигналів і забезпечує єдині способи обміну інформацією при з'єднанні кореспондентів за допомогою кабелю. Інтерфейс ІРПР-М може бути використаний при побудові зосереджених модульних систем обробки даних. За класифікаційними ознаками інтерфейс ІРПР-М є міжблочний, асинхронним, паралельним, односпрямованим, радіальним інтерфейсом. Одиницею обміну даними для інтерфейсу є байт або слово. Максимальне видалення двох взаємодіючих компонент - 15 метрів. Максимальне число ліній зв'язку - 40. Мінімальний набір ліній зв'язку наведено в таблиці 1.1

    Таблиця 1.1 - Сигнали інтерфейсу ІРПР-М

    Сигнал

    Активний

    Рівень

    Ініціатор

    сигналу

    Коментар

    -ACKNLG

    Низький

    Приймач

    Запит чергового байта даних

    BUSY

    Високий

    Приймач

    Високий рівень на лінії сигналізує про неготовність приймача до обміну

    -STROBE

    Низький

    Передавач

    Строб даних

    DATA

    --

    Передавач

    Вісім (шістнадцять) ліній даних

    Тимчасові діаграми, що пояснюють обмін інформацією по лініях інтерфейсу, представлені на малюнку 1.1.

    Рисунок 1.1 - Часові діаграми інтерфейсу ІРПР-М

    1.1.3 Структура повідомлень

    Отримання даних здійснюється відповідно до протоколу X-Modem. Пакет інформації є послідовністю 132 байт. Структура пакета:

    Заголовок пакета. У як заголовок виступає код 01h (SOH).

    Два байти - номер пакету. Перший байт - власне номер, а другий його доповнення (для контролю помилок).

    Тіло пакета - 128 байт.

    Байт контрольної суми. Контрольна сума охоплює номер пакету і тіло пакета.

    Для супроводу обміну використовуються службові символи, представлені в таблиці 1.2.

    Таблиця 1.2 - Службові символи протоколу X-Modem

    Символ

    шістнадцяткові код

    Призначення

    SOH

    01h

    Символ початку пакету

    ACK

    06h

    Підтвердження прийому

    NAK

    15h

    Заперечення прийому

    EOT

    04h

    Завершення обміну

    CAN

    18h

    Аварійне завершення обміну

    Процес обміну здійснюється наступним чином: Приймач посилає передавача поспіль два сигнали NAK. У відповідь передавач починає посилку пакетів. Після прийому кожного пакета приймач аналізує правильність передачі і посилає передавача символ ACK - підтвердження прийому. Якщо при підрахунку контрольної суми виявлена помилка, то замість сигналу ACK передається NAK - запит на повторну передачу пакета. Послідовність пакетів передавач завершує символів EOT, який приймач підтверджує сигналом ACK. Якщо при встановленні зв'язку передавач не відповів на запит інформації (два сигнали NAK), то приймач продовжує надсилати запит NAK з інтервалом 10 секунд. Може бути надіслано до десяти запитів NAK.

    Передача інформації проводиться посимвольний. Причому дані посилаються блоками по 256 байт. На початку кожного блоку розташовується чотири байти, що несуть інформацію про поточний часу контролера. Дані блоки формуються в окремій ділянці пам'яті - буфері передавача і надсилаються п міру готовності. За формуванням інформаційних блоків стежить спеціальна задача.

    Структура та алгоритм функціонування контролера.

    1.2.1 Структурна схема контролера

    Структурна схема контролера представлена на малюнку 1.2.

    Елементи, що входять в схему:

    СГ - системний генератор.

    ЦП - центральний процесор.

    ПЗП - постійний запам'ятовуючий пристрій.

    ОЗП - оперативний запам'ятовуючий пристрій.

    ПКП - програмований контролер переривань.

    пт - програмований таймер.

    ІГ - індикатор готовності.

    ПВВ - порт вводу-виводу.

    Малюнок 1.2 - Структурна схема контролера

    Системна шина контролера складається з трьох складових: шини адреси (AB), шини даних (DB), шини управління (CB).

    Індикатор готовності інформує про нормальну роботу пристрою - у разі виникнення помилок індикатор гаситься.

    Діаграми станів основних процесів

    Діаграма станів процесу прийому, показана на малюнку 1.3, наочно ілюструє роботу контролера при прийомі даних від зовнішнього пристрою.

    Так як прийом інформації здійснюється пакетами, то в основі схеми лежить діаграма станів при використанні протоколу X-Modem.

    Рисунок 1.3 - Діаграма станів процесу отримання даних

    Більш докладно складу блоку "Переслати символ" представлений на малюнку 1.4.

    Малюнок 1.4 - Склад блоку "Прийняти символ"

    Зміст блоку "Переслати символ" розкрито на малюнку 1.5.

    Малюнок 1.5 - Склад блоку "Переслати символ".

    На малюнку 1.6 показана діаграма процесу передачі інформації. Передача ведеться по одному байту без контролю помилок.

    На малюнку подія "Минуло 500 нс" означає витримку необхідної паузи для формування сигналу. Включення передавача відбувається при наявності прапора готовності буфера передачі. Тому перевірка буфера включає в себе і перевірку стану прапора.

    Рисунок 1.6 - Діаграма станів процесу передачі даних.

    Діаграма станів процесу самодіагностики показана на рисунку 1.7.

    Підрахунок контрольної суми ПЗУ (КС) ведеться у циклі. У разі неспівпадання розрахованого значення з контрольними даними відбувається зупинка процесора. Блок "Підрахунок КС" позначає циклічний процес з підсумовування за модулем 256 вмісту осередків ПЗУ.

    Рисунок 1.7 - Діаграма станів процесу самодіагностики

    Діаграма станів процесу "служби часу" представлена на малюнку 1.8.

    Служба часу вирішує два завдання. Це контроль зависання завдань і формування змінної, що містить поточний час від початку роботи контролера. Конторль зависання здійснюється в такий спосіб. Перед початком кожного циклу проходу підпрограм диспетчер запускає таймер, що працює в ролі одновібратора. Час спрацьовування таймера свідомо більше часу одного циклу роботи диспетчера. Тому, якщо всі завдання відпрацювали успішно, таймер не встигне спрацювати до наступного перезапуску. Якщо таймер спрацює і викличе переривання, то це сигналізує про "зависанні" одним із завдань. У даній ситуації потрібно негайно зупинити роботу процесора. При підрахунку часу таймер генерує імпульси певної частоти, за якими контролер переривань формує запити на переривання для процесора. Оброблювач цих переривань щоразу нарощує на одиницю змінну-лічильник часу.

    Рисунок 1.8 - Діаграма станів процесу "служби часу"

    Розробка апаратної частини контролера

    Обгрунтування вибору мікропроцесора

    Шестнадцатіразрядний мікропроцесор КР1810ВМ86 забезпечує можливість ефективної роботи з мовами високого рівня, має гнучку і потужну систему команд. Може бути використаний як 16-ти так і 8-ми розрядний процесор. ВМ86 виконує операції над бітами, байтами, багатобайтових словами, дії знаковою і беззнакові двійковій або десяткової арифметики, у тому числі множення і ділення, має гнучку структуру апаратурних і програмних переривань (до 256 типів).

    До найбільш важливих апаратурним особливостям К1810ВМ86 відносяться: розвинена регістрова структура, суттєво зменшує кількість звернень до пам'яті; конвеєрний принцип виконання команд з попередньою вибіркою, що забезпечує максимальну пропускну здатність системної магістралі; розподілене мікропрограмного пристрій управління; мультиплексованих шина адреси-даних; багатофункціональне використання висновків, що дозволяє адаптувати МП до рівня складності розробляється системи; здатність координувати взаємодію декількох процесорів.

    Розподіл адресного простору

    Мікропроцесор К1810ВМ86 дозволяє адресувати до 1Мбайт пам'яті. Оскільки основним завданням розробляється контролера є прийом інформації, перетворення в інший формат і передача її наступний кореспонденту, то розподіл пам'ять стає важливим завданням. Особливості процесора змушують обирати таку структуру пам'яті, при якій молодші адреси займає ОЗУ, а старші - ПЗУ. Поставлене завдання не вимагає реалізації повного обсягу можливої пам'яті, тому використовується наступна структура пам'яті:

    адреси 0000 - 3FFFh відповідають ОЗУ;

    адреси 4000 - 7FFFh відповідають ПЗУ.

    Порти введення-виведення, регістри управління таймера і програмованого контролера переривання також мають фіксовані адреса:

    адреси 0000-0006 відповідають порту вводу-виводу, призначеному для отримання даних;

    адреси 0008-000Еh відповідають порту вводу-виводу, призначеної для передачі даних;

    адреси 0010-0016h відповідають керуючим регістрів програмованого таймера;

    адреси 0018-001Ah відповідають керуючим регістрів програмованого контролера переривань.

    Функціональна схема контролера

    Функціональна схема контролера приведена у додатку.

    Паралельний порт вводу-виводу PPI (DD15) призначений для забезпечення прийому інформації згідно з протоколом X-Modem. Тому необхідна двонаправлена зв'язок. Фактично на мікросхемі реалізовано два інтерфейси ІРПР-М. Один з них, для прийому байтів інформації, має наступну організацію:

    сигнали DIN 0 - DIN 7 - висновки РА0 - РА7;

    сигнал STROBEIN - висновок РС4;

    сигнали BUSYIN і ACKNLGIN - висновки РС0 і РС1 відповідно.

    При прийомі байти, він вступає на лінії порту А (сигнали DIN 0 - DIN 7). Для передачі керуючих символів використовується порт В. При цьому службові сигнали підключаються до наступних лініях:

    сигнал STROBEOUT - висновок РС2;

    сигнали BUSYOUT і ACKNLGOUT - висновки РС5 і РС6 відповідно.

    Для передачі інформації використовується паралельний порт вводу-виводу PPI (DD16) На ньому також реалізований інтерфейс ІРПР-М. Дані видаються через порт А. Сигнал STROBE поступає в лінію зв'язку через нульовий розряд порту В. Сигнали готовності приймача BUSY і ACKNLG надходять в порт С (розряди 1 та 0 відповідно). Так як імпульс ACKNLG має тривалість близько 5 мкс, то його програмна фіксація в режимі паралельної обробки декількох завдань утруднена. Передбачена апаратна засувка цього сигналу за допомогою тригера. Після отримання сигналу ACKNLG тригер скидається програмно. Аналогічна схема присутня і в блоці отримання даних.

    Індикатор готовності виконаний на дешифратор DD28. Його адресні входи приєднані до ліній 4, 5, 6 порту З мікросхеми DD16. Регістр в нормальному робочому режимі керує індикатором готовності системи, а у випадку конфліктної ситуації відображає номер "завислий" завдання.

    Програмований таймер використовується для відліку інтервалів часу для контролю виконання завдань і виклику переривань для самоперевірки контролера - підрахунку контрольної суми ПЗУ. Як лічильних імпульсів до таймеру підведений сигнал з виходу PCLK системного генератора, який має частоту, в два рази меншу, ніж тактова частота процесора. При частоті процесора 5 МГц таймер відраховує імпульси з частотою 2,5 МГц. При цьому максимальна затримка, що забезпечується таймером дорівнює 26 мс.

    Програмований контролер переривань служить для впорядкування запитів на переривання за пріоритетом і в часі. У даній схемі обслуговується два переривання: контроль проходження контрольної точки завданнями і самодиагностика. Запити на переривання надходять від таймера і подаються на входи IRQ0, IRQ1 і IRQ2.

    Для вибору потрібної мікросхеми при виконанні операцій вводу-виводу використовується дешифратор DD29, що перетворює два розряди адресної шини AB2 і AB3 в сигнали вибору CS. Сигнали вибору кристалу CS формуються тільки якщо один із сигналів IOR і IOW знаходиться в активному стані. Необхідною умовою вибору зовнішніх по відношенню до процесора пристроїв є рівність нулю молодшого адресного розряду AB0. Для зберігання адреси протягом усього циклу шини використовуються регістри-засувки DD11 і DD12, керовані сигналів ALE процесора. Шина даних умощняется за рахунок підключення шинних формувачів.

    Пам'ять контролера організована на чотирьох мікросхемах; дві з них утворюють ПЗУ (DD2 і DD3) і дві інші - ОЗП (DD7 і DD8). Пам'ять виконана у вигляді двох банків з метою передачі як багатобайтових слів, так і окремих байтів. Для вибору відповідного банку використовуються сигнал BHE (дозвіл старшого банку) і молодший розряд адресної шини AB0. Розряд шини адреси AB14 служить для вибору ПЗУ або ОЗУ. Також як керуючих сигналів, які задають напрямок передачі застосовуються MEMR і MEMW.

    Шина управління складається з чотирьох сигналів MEMR, MEMW, IOR, IOW, які формуються на основі сигналів процесора RD, WR, M/IO.

    У таблиці 2.1 показано відповідність основних елементів структурної схеми контролера використовуваних мікросхем.

    Таблиця 2.1 - Використані мікросхеми.

    Позначення на схемі

    Мікросхема

    DD1

    К1810 ГФ84

    DD2, DD3

    К556 РТ16

    DD6

    К1810 ВМ86

    DD7, DD8

    К537 РУ17

    DD11, DD12

    К1810 ІР82

    DD13, DD14

    К1810 ВА86

    DD15, DD16

    К580 ВВ55

    DD17

    К1810 ВІ54

    DD18

    К1810 ВН59А

    DD27

    К155 ТМ2

    DD28

    К155 ІР1

    DD29

    К155 ІД3

    РОЗРОБКА РОБОЧОЇ ПРОГРАМИ КОНТРОЛЕР

    Структура даних

    У даному проекті фоновим процесом є передача даних. У зв'язку з цим опишемо використовувані змінні та структури.

    До основної структурі можна віднести два масиви. Один з них служить буфером приймача і займає в пам'яті осередку з 0000 по 2FFFh. Покажчиком в цьому масиві служить мінлива RecCount. Другий масив SendBuf є буфером передавача. За його заповненням стежить окрема задача, не розглянута в даному проекті. При заповненні цього буфера даними прапор BufReady встановлюється в одиничний стан. Буфер SendBuf має розмір 255 байт і розташовується з адреси 3000h по адресу 30FFh. Покажчиком на черговий елемент буфера служить мінлива SendCount. У таблиці 3.1 описані використовувані змінні.

    Таблиця 3.1 - Опис використовуваних змінних

    Змінна

    Розмір

    Розташування

    Опис

    TimeVar

    3 байти

    3100h

    Змінна зберігає час в секундах з початку роботи контролера

    BufReady

    1 байт

    3104h

    Прапор готовності буфера передавача

    RecCount

    2 байти

    3106h

    Покажчик буфера приймача

    SendCount

    2 байти

    3108h

    Покажчик буфера передавача

    Sentry

    1 байт

    310Ah

    Змінна - точка входу в процедуру передавача

    FS

    1 байт

    310Ch

    Прапор роботи процедури передавача (аналізується "службою часу")

    Змінна TimeVar обслуговується лічильником часу. Її значення періодично використовується для процедурою формування чергового повідомлення.

    Змінна Sentry необхідна для роботи однопрохідної форми завдання. У ній зберігається позначка входу в процедуру.

    Змінна FS є сигналізатором того, що процес передачі в даний момент активний. У випадку "зависання" по цих прапорів служба часу визначає конфліктну завдання і відображає її номер на індикаторі.

    Лічильник байтів SendCount в процесі передачі повідомлення змінює своє значення від 0 до FF.

    Схеми алгоритмів процесів в автономній формі

    Схема алгоритму процесу самодіагностики в автономній формі показано на малюнку 3.1.

    Малюнок 3.1 - Автономна форма алгоритму процесу самодіагностики.

    Процес самодіагностики ініціюється по перериваннях від таймера. Полягає в підрахунку контрольної суми ПЗУ і порівнянні її з відомим значенням. При розбіжності індикатор готовності гаситься і процесор зупиняється (вводиться в нескінченний цикл)

    Схема алгоритму процесу прийому в автономній формі показано на малюнку 3.2.

    Рисунок 3.2 - Автономна форма алгоритму процесу прийому.

    На малюнках 3.3, 3.4 більш детально розкрито складу блоків "прийом символу" і "передача символу".

    Малюнок 3.3 - Склад блоку "прийом символу".

    Малюнок 3.4 - Склад блоку "передача символу".

    Алгоритм прийому інформації реалізує прийом пакетів у форматі X-Modem.

    Контроль отримуваних повідомлень реалізується за допомогою підрахунку контрольної суми.

    На малюнку 3.5 показана схема алгоритму передачі інформації. Передавач починає працювати, якщо буфер даних заповнений символами. Про це сигналізує прапор BufReady. Після закінчення передачі програма повинна зняти цей прапор - це є запитом на процедури підготовки даних.

    Малюнок 3.5 - Автономна форма алгоритму процесу передачі.

    Передача здійснюється порціями по 256 байт. Перші три байти - поточний час в секундах від початку роботи контролера.

    Задача "служби часу" розбита на дві частини: Одна з них стежить за поточним часом і формує змінну, що містить значення часу з моменту включення контролера, а інша частина контролює відсутність "зависання" виконуваних завдань.

    На малюнку 3.6 показані схеми алгоритмів для обох частин завдання.

    Малюнок 3.6 - Автономна форма алгоритмів процесів "служби часу".

    Схеми алгоритмів робочої програми. Шпалери процес

    У графічній частині представлена схема алгоритму процесу передачі в однопрохідної формі. Після розмикання циклів завдання вийшло дві гілки. Перша - очікування заповнення буфера даних. Друга - власне посилка буфера. За один прохід завдання посилається один символ. Вибір гілки здійснюється за допомогою змінної Sentry. Обмін інформацією йде за стандартом інтерфейсу ІРПР-М. При посилці байти для дотримання необхідних тимчасових інтервалів формуються паузи не менше 0,5 мкс. При перевірці готовності приймача відбувається логічне додавання сигналів BUSY і ACKNLG, і якщо результат дорівнює нулю, виконується відправлення одного байта. Після закінчення передачі всього повідомлення прапор готовності буфера скидається.

    3.4 Схеми алгоритмів робочої програми. Підпрограма обробки переривань

    Підпрограма самодіагностики запускається по переривання від таймера. У однопрохідному варіанті присутні три гілки. Перша гілка порожня. Вона виконується диспетчером, якщо не виникало переривання від таймера. Друга гілка служить для ініціалізації лічильника контрольної суми. Обнуляється змінна - вказівник і мінлива, що запам'ятовує поточне значення КС. У третьої гілки виконуються дії по підсумовування вмісту ПЗУ. При досягненні кінцевого адреси відбувається порівняння отриманого значення контрольної суми з перевірочним. При збігу процедура встановлює точку входу на першу гілку, включає індикатор готовності і закінчує роботу. При помилку КС індикатор готовності гаситься і процесор зациклюється.

    Текст фрагмента робочої програми

    Фрагмент програми, представлений в додатку повністю відповідає описаній вище схемі алгоритму. Програма виконана у вигляді самостійного модуля. Трансляція проводилася за допомогою асемблера TASM 5.0. Результати роботи транслятора показані на малюнку 3.7.

    Рисунок 3.7 - Результати роботи транслятора

    Програма складається з чотирьох основних частин. У першій частині відбувається збереження використовуваних регістрів і опитування змінної, що зберігає точку входу в основне тіло програми. При цьому відбувається вибір однієї з гілок проходу завдання. Друга частина реалізує першу гілку алгоритму і починається Кмітливості Е0. Тут здійснюється перевірка готовності буфера і, при необхідності, зміна точки входу. Третя частина програми реалізує другу гілку алгоритму. Якщо приймач готовий, то виконується посилка одного байта і зміна лічильника символів. І, нарешті, четверта частина програми (мітка EXLABEL) завершує прохід завдання, відновлює регістри і передає управління викликала програмі.

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status