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

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

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) завершує прохід завдання, відновлює регістри і передає управління отримала програмі.


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
46.1кб. | скачати


Схожі роботи:
Система автоматизації ресторану на прикладі системи Компас
Розробка системи автоматизації управління фермою СГВК Алмати
Розробка системи автоматизації технологічного процесу на прикладі установки ЕЛОУ-АВТ
Проектування інформаційної системи збору даних землевпорядкування для автоматизації процесу оцінки
Аналіз та розробка системи автоматизації документообігу для підприємства ТОВ Елсі-Медіа
Розробка багатокористувацької інформаційної системи для автоматизації роботи книжкового інтернет-магазину
Контролер промислового призначення
Контролер пов`язують об`єктів
Контролер прямого доступу до пам`яті
© Усі права захищені
написати до нас