Системна магістраль ISA | Інтерфейс | Інтерфейс | |
Швидкість обміну | Висока (до 5 Мбайт/с і вище) | до 100 Кбайт/с | 115200 Кбiт/с |
Довжина і тип лінії зв'язку з комп'ютером | Вбудовані ПС (лінія зв'язку відсутня) | До 2 м, багатопровідний кабель | До 15м, одиночний провід |
Складність вузлів сполучення з ПК | Від малої до середньої | Від малої до середньої | Від середньої до високої |
Додатковий конструктив | Не потрібний | Потрібний | Потрібний |
Зовнішнє джерело живлення | Не потрібне | Потрібне | Потрібне |
Формат і розрядність даних | Паралельний, | Паралельний, | Послідовний |
Необхідність наявності драйвера | + | + | - |
Кількість ПС, що підключаються до ПК | До 6 | 1 | 1 |
З погляду розроблювального ВВК найбільш привабливим виглядає інтерфейс RS-232.
У розроблювальному ВВК зв'язок пристрою з ПК буде здійснюватися за допомогою COM порту (інтерфейс RS-232). Даний вид зв'язку дозволяє забезпечити достатню для роботи ВВК швидкість і при цьому є найбільш зручним з погляду ПО, тому що не вимагає спеціального драйвера. Розглянемо цей інтерфейс більш докладно.
Рис. 1 Блок схема стенду EV8031
Вся логіка стенду реалізована на програмуємій логічній мікросхемі EPM7128STC100. Системний контроллер керує режимами роботи, виробу керуючих сигналів на ОЗП, регістри защіпки, динамічним світлодіодним індикатором, клавіатурою.
Системний контроллер зв’язаний з мікроконтроллером за допомогою шини данних AD0..7 та старших 4-х біт адресу A12..15. Коли мікроконтроллер виконує операцію читання/запису данних у зовнішню пам’ять спочатку на лінії AD0..7(мультиплексується із A0..7 на момент синхроімпульсу лінії ALE) та лінії A8..15 виводиться адрес комірки, молодші 8 біт та старші – відповідно. Після закінчення синхроімпульсу ALE на лініях AD0..7 з’являється 8 біт данних. Коли старший біт адресу дорівнює 1, системний контроллер залишає лінію nRCS у високому стані, і старші 4 біта адресу, разом із молодшим байтом адресу, який надійшов по лініям AD0..7 у період синхроімпульсу, тепер керують адресою пристрою котрому надсилається керуючий байт. Перелік адрес за якими розташовані керуючі слова пристроїв наданий у таблиці 2.1.
Таблиця 2.1.
Адрес | Тип цикла | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | Имя | |||||||||
Порты периферийных устройств | |||||||||||||||||||
8xx0 | Запись | [Порт A] | PA_REG | ||||||||||||||||
8xx1 | Запись | [Порт B] | PB_REG | ||||||||||||||||
8xx2 | Запись | [Порт C] | PC_REG | ||||||||||||||||
8xx3 | Запись | x | x | x | x | x | TRISC | x | x | TRIS | |||||||||
ЖКИ | |||||||||||||||||||
8xx4 | Запись | Регистр команд ЖК индикатора | LCD_CMD | ||||||||||||||||
8xx5 | Запись | Регистр данных ЖК индикатора | LCD_DATA | ||||||||||||||||
Последовательный порт | |||||||||||||||||||
9xxx | Чтение | CTS | DSR | DCD | RI | KL3 | KL2 | KL1 | KL0 | US_REG | |||||||||
Cxx0 | Запись | x | x | X | x | DTR | RTS | CFG1 | CFG0 | UC_REG | |||||||||
Индикатор и светодиоды | |||||||||||||||||||
Axx0 | Запись | [Регистр индикатора 0] | DISPLAY[0] | ||||||||||||||||
Axx1 | Запись | [Регистр индикатора 1] | DISPLAY[1] | ||||||||||||||||
Axx2 | Запись | <зарезервировано> | DISPLAY[2] | ||||||||||||||||
Axx3 | Запись | <зарезервировано> | DISPLAY[3] | ||||||||||||||||
Axx4 | Запись | DP3 | DP2 | DP1 | DP0 | BL3 | BL2 | BL1 | BL0 | DC_REG | |||||||||
Axx5 | Запись | <зарезервировано> | EDC_REG | ||||||||||||||||
Axx6 | Запись | LED7 | LED6 | LED5 | LED4 | LED3 | LED2 | LED1 | LED0 | LED_REG | |||||||||
Управление работой | |||||||||||||||||||
Axx7 | Запись | x | x | X | x | x | x | x | RUN | SYS_CTL | |||||||||
Совместимые регистры | |||||||||||||||||||
Bxx0 | Запись | [Регистр индикатора 1] | DISPLAYB |
Коли старший 15 біт адресу дорівнює 0 системний контроллер встановлює лінію вибору кристаллу ОЗП – nRCS у низький логічний рівень, а лінії nRRD та nRWR повторюють стани ліній nRD та nWR відповідно. Лінія RA14 повторює лінію A14 тільки у тому випадку якщо вибраний режим роботи стенда із мікроконтроллером AVR. У випадку роботи із мікроконтроллером 80C51 лінією буде керувати системний контроллер перші 16кбайт – коди інструкцій программи, другі 16кбайт – данні.
Стенд має три 8-ми бітних портів вводу/виводу PORTA(лінії PA0..7), PORTB(лінії PB0..7), PORTC(лінії PC0..7). Порти PORTA та PORTB виконані на регістрах защіпках і працюють тільки на виход, а PORTC – у системному контроллері і може працювати як на вход так і на виход. Коли мікроконтроллер записує байт по адресу 8xx0(x – не впливають і можуть бути будь якими), системний контроллер встановлює лінію PACLK у високий стан. Регістр защіпка запам’ятовує лінії AD0..7 та повторює іх стан на своїх вихідних лініях – PA0..7. Аналогічно отримується доступ до портів PORTB та PORTC але доступ виконується за адресами 8xx1 та 8хх2 відповідно. За адресою 8хх3 знаходиться байт керування режимом роботи на вхід або на вихід, за відповідає біт 2. Якщо він дорівнює 0 порт працює на вхід, якщо 1 на вихід.
Модуль послідовного зв’язку створений на мікросхемі приймача 1489, передавача 74НС04, мултиплексора каналу передачі (усередині системного контроллеру). Вибор каналу послідовної передачі забеспечується сигналами CFG1,CFG0 за адресою 9001h(см. таблицу 1). Програмне встановлення сигналів CFG0 у ‘1’, а CFG1 у ’0’ формує вибір додаткового каналу послідовної передачі данних, гніздо X12. Додатковий послідовний канал має повний набір сигналів інтерфейсу RS-232C. Сам пристрій який реалізує послідовну прийом/передачу знаходиться у мікроконтроллері і називається UART або USART, його лінії RxD, TxD зв’язані із системним контроллером, а він в свою чергу може комутувати їх на 3 напрямки:COM1, COM2, RS485.
Стенд підтримує 2 типи мікроконтроллерів: мікроконтроллер AT89C51 із ядром і8031, та ATMega8515 із AVR ядром який і розглядається у данному документі. Для перемиканням між режимами підтримки першого або другого мікроконтроллеру, системний контроллер має лінію Х9(0 – AVR, 1 - i8031).
КМОП мікроконтроллер АТ8515 реалізований за AVR RISC архітектурою (Гарвардська архітектура із роздільною пам’яттю та роздільними шинами для пам’яті програм та даних) та сумісний за похідним кодом і тактуванню із 8-ми розрядними мікроконтролерами родини FVR. Виконуючи команди за один тактовий цикл, він забезпечує могутню систему команд із 32-ма 8-розрядними регістрами загального призначення та конвеєрне звернення до пам’яті програм. Шість із 32 регістрів можуть використовуватись як три 16-розрядних регістра-вказіника при косвенній адресації простору пам’яті. Виконання відносних переходів та команд виклику реалізується із прямою адресацією усіх 4К адресного простору. Адреса периферійних функцій міститься у просторі пам’яті вводу/виводу. Архітектура ефективно підтримує як мови високого рівня, так і програми на мовах асемблеру.