Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Кафедра ІВТ
Курсовий проект
курсу «Основи термометрії»
на тему:
«РОЗРОБКА СХЕМИ ПРИЛАДНОГО ІНТЕРФЕЙСУ»
Львів, 2011
Завдання 1: Розробити електричну принципову схему мікропроцесорного вимірювального приладу, пристосованого для роботи з GPIB, з послідовним введенням/виведенням інформації. Записати формат приладного інтерфейсного повідомлення (формат команди керування для цифрово-аналогових перетворювачів). Написати програму ініціалізації інтерфейсної частини приладу. Описати і пояснити послідовність роботи мікропроцесора у вимірювальному приладі при виконанні завдання, у межах заданого варіанту.
Дано:
Кількість приладів 5
Спосіб адресації 2
Тип мережі переривання
Спосіб під’єднання паралельне опитування
Скид
Ініціалізація годинника
Функція: Запит на обслуговування
Робота Прийом
В ІВК використовується операційна система призначена для керування роботою комплексу і для взаємодії користувача з апаратною частиною і прикладними програмами.
Розподілені вимірювальні системи- це системи розміщені на відстані більш, ніж 1000м.
Рис.1 мікропроцесорно керований пристрій обробки інформації
Для з’єднання мікропроцесорних вимірювальних приладів з GPIB доцільно використовувати мікропроцесорний керований пристрій КР580ВК91А. Сама мікросхема має вигляд, поданий нижче.
Рис.2 МІКРОСХЕМА КР580ВК91А
Ця мікросхема здійснює зв’язок між GPIB (general purpose interface bus) і пристроями керування мікропроцесором. До її функцій входить передавання даних, виконання протоколу синхронізації обміну даних, процедури адресування приймачів або передавачів, початкове встановлення та запуск пристроїв, запуск обслуговування, послідовне та паралельне опитування, а також всі решта інтерфейсних функцій, за винятком функції контролера.
У інформаційно-вимірювальному комплексі дана мікросхема (КР580ВК91А) вважається мікропроцесорним управляючим пристроєм, призначеним з’єднувати мікропроцесор на однокристальній мікро ЕОМ через лінію колективного використання з вимірювальними приладами
Мікросхема виконує зв’язок між вимірювальною системою і приладами, що під’єднані до мікропроцесора. В її функції входить передача даних, протокол синхронізації обміну, процедури адресації приймача/передавача, очищення і запуск приладів, запуск обслуговування, послідовні і паралельні опитування, а також всі решта функції інтерфейсу, за винятком функції контролера.
КР580ВК91А складається із буферної схеми шини даних мікропроцесора; логічної схеми читання/запису, переривання, вісім регістрів запису; вісім регістрів читання; схеми формування затримок; дешифратор повідомлень; логічні схеми, що реалізують інтерфейсні функції; буферні схеми шини даних; внутрішня шина даних.
Табл. 1Призначення виводів
Вивід
Позначення
Тип виводу
Функціональне призначення виводів
12-19
D0-D7
Входи/виходи
Шина даних мікропроцесора
21-23
RS0-RS2
Входи
Адреса регістра
8
CS
Вхід
Вибір мікросхеми
9
RD
Вхід
Читання
10
WR
Вхід
Запис
11
INT
Вихід
Запит переривання
6
DREQ
Вихід
Запит ПІП
7
DACK
Вхід
Підтвердження ПІП
5
TRIG
Вихід
Запуск
3
CLOCK
Вхід
Синхросигнал
4
RESET
Вхід
Скид
28-35
DIO1-DIO8
Виходи/входи
Шина даних
39
EOI
Вхід/вихід
Кінець передачі/ідентифікація
36
DAV
Вхід/вихід
Супроводження даних
37
NRFD
Вхід/вихід
Не готовий для прийому даних
38
NDAC
Вхід/вихід
Дані не прийняті
26
ATN
Вхід
Керування
24
IFC
Вхід
Очищення інтерфейсу
27
SRQ
Запит на обслуговування
25
REN
Вхід
Дозвіл дистанційного управління
1, 2
T/R1, T/R2
Виходи
Керування прийомо-збуджувальною схемою
40
Ucc
-
Напруга живлення +5В
20
GND
-
Спільний
Мультиплексор К155КП7
Ця мікросхема являє собою мультиплексор USB 2.0 - мікросхему, що забезпечує простий і дуже гнучкий спосіб підключення портативних пристроїв з інтерфейсом USB і без нього.
Вона має велику гнучкість має здатність перемикатися між джерелами даних, що мають різні швидкості передачі і рівні сигналів, і виводити їх на загальний роз'єм, має вхід дозволу роботи ,та комплементарні виходи.
Струм споживання К155КП7 не перевищує 48мА. Дозволяє комутувати сигнали до 8-и входів.
Рис.3 мультиплексор К155КП7
Таблиця істинності мультиплексора:
A2
A1
A0
E
Y
X
X
X
0
-
0
0
0
1
S0
0
0
1
1
S1
0
1
0
1
S2
0
1
1
1
S3
1
0
0
1
S4
1
0
1
1
S5
1
1
0
1
S6
1
1
1
1
S7
Intel 8255A Програмований контролер паралельного введення/виведення інформації
Intel 8255 (або i8255) - мікросхема контролера програмованого паралельного інтерфейсу. Спочатку розроблена для мікропроцесора Intel 8085. Використовувалася в різних моделях комп'ютерів, спільно з Intel 8086, Z-80 і іншими процесорами.
Має три 8-розрядних канали введення-виведення, 8-розрядний канал для підключення до шини даних, два адресні входи. Третій канал введення-виведення може бути розділений на два по 4 біти. Випускалася в корпусах DIP 40 і PLCC 44.
Вітчизняний аналог - КР580ВВ55.
Адреси приладів: 1 – 0001; 2 – 0010; 3 – 0011; 4 – 0100; 5 – 0101
Прилад 1
регістр зчитування
регістр записування
Вхідні дані(0R)
RS2
RS1
RS0
Вихідні дані(0W)
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
Стан переривання(1R)
RS2
RS1
RS0
Дозвіл переривання(1W)
CPT
APT
GET
END
DEC
ERR
B0
B1
0
0
1
CPT
APT
GET
END
DEC
ERR
B0
B1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
Стан переривання(2R)
RS2
RS1
RS0
Дозвіл переривання(2W)
INT
SPAS
DMA0
DMA1
SPC
LLOC
REMC
ADSC
0
1
0
0
0
DMA0
DMA1
SPC
LLOC
REMC
ADSC
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
Статус послідовного опитування(3R)
RS2
RS1
RS0
Статус послідовного опитування(3W)
S8
SRQS
S6
S5
S4
S3
S2
S1
0
1
1
S8
rsv
S6
S5
S4
S3
S2
S1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Стан адресування(4R)
RS2
RS1
RS0
Спосіб адресування(4W)
ton
lon
EOI
LPAS
TPAS
LA
TA
MJMN
1
0
0
T0
L0
0
0
0
0
ADM1
ADM0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
Адреса0(6R)
RS2
RS1
RS0
Адреса0/1(6W)
INT
DT0
DL0
AD5
AD4
AD3
AD2
AD1
1
1
0
ARS
DT
DL
AD5
AD4
AD3
AD2
AD1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
Адреса1(7R)
RS2
RS1
RS0
EOS(7W)
X
DT1
DL1
AD5
AD4
AD3
AD2
AD1
1
1
1
EC7
EC6
EC5
EC4
EC3
EC2
EC1
EC0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
Прилад 2
регістр зчитування
регістр записування
Вхідні дані(0R)
RS2
RS1
RS0
Вихідні дані(0W)
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
Стан переривання(1R)
RS2
RS1
RS0
Дозвіл переривання(1W)
CPT
APT
GET
END
DEC
ERR
B0
B1
0
0
1
CPT
APT
GET
END
DEC
ERR
B0
B1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
Стан переривання(2R)
RS2
RS1
RS0
Дозвіл переривання(2W)
INT
SPAS
DMA0
DMA1
SPC
LLOC
REMC
ADSC
0
1
0
0
0
DMA0
DMA1
SPC
LLOC
REMC
ADSC
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
Статус послідовного опитування(3R)
RS2
RS1
RS0
Статус послідовного опитування(3W)
S8
SRQS
S6
S5
S4
S3
S2
S1
0
1
1
S8
rsv
S6
S5
S4
S3
S2
S1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Стан адресування(4R)
RS2
RS1
RS0
Спосіб адресування(4W)
ton
lon
EOI
LPAS
TPAS
LA
TA
MJMN
1
0
0
T0
L0
0
0
0
0
ADM1
ADM0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
Адреса0(6R)
RS2
RS1
RS0
Адреса0/1(6W)
INT
DT0
DL0
AD5
AD4
AD3
AD2
AD1
1
1
0
ARS
DT
DL
AD5
AD4
AD3
AD2
AD1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
Адреса1(7R)
RS2
RS1
RS0
EOS(7W)
X
DT1
DL1
AD5
AD4
AD3
AD2
AD1
1
1
1
EC7
EC6
EC5
EC4
EC3
EC2
EC1
EC0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
Прилад 3
регістр зчитування
регістр записування
Вхідні дані(0R)
RS2
RS1
RS0
Вихідні дані(0W)
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
Стан переривання(1R)
RS2
RS1
RS0
Дозвіл переривання(1W)
CPT
APT
GET
END
DEC
ERR
B0
B1
0
0
1
CPT
APT
GET
END
DEC
ERR
B0
B1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
Стан переривання(2R)
RS2
RS1
RS0
Дозвіл переривання(2W)
INT
SPAS
DMA0
DMA1
SPC
LLOC
REMC
ADSC
0
1
0
0
0
DMA0
DMA1
SPC
LLOC
REMC
ADSC
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
Статус послідовного опитування(3R)
RS2
RS1
RS0
Статус послідовного опитування(3W)
S8
SRQS
S6
S5
S4
S3
S2
S1
0
1
1
S8
rsv
S6
S5
S4
S3
S2
S1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Стан адресування(4R)
RS2
RS1
RS0
Спосіб адресування(4W)
ton
lon
EOI
LPAS
TPAS
LA
TA
MJMN
1
0
0
T0
L0
0
0
0
0
ADM1
ADM0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
Адреса0(6R)
RS2
RS1
RS0
Адреса0/1(6W)
INT
DT0
DL0
AD5
AD4
AD3
AD2
AD1
1
1
0
ARS
DT
DL
AD5
AD4
AD3
AD2
AD1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
Адреса1(7R)
RS2
RS1
RS0
EOS(7W)
X
DT1
DL1
AD5
AD4
AD3
AD2
AD1
1
1
1
EC7
EC6
EC5
EC4
EC3
EC2
EC1
EC0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
Прилад 4
регістр зчитування
регістр записування
Вхідні дані(0R)
RS2
RS1
RS0
Вихідні дані(0W)
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
Стан переривання(1R)
RS2
RS1
RS0
Дозвіл переривання(1W)
CPT
APT
GET
END
DEC
ERR
B0
B1
0
0
1
CPT
APT
GET
END
DEC
ERR
B0
B1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
Стан переривання(2R)
RS2
RS1
RS0
Дозвіл переривання(2W)
INT
SPAS
DMA0
DMA1
SPC
LLOC
REMC
ADSC
0
1
0
0
0
DMA0
DMA1
SPC
LLOC
REMC
ADSC
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
Статус послідовного опитування(3R)
RS2
RS1
RS0
Статус послідовного опитування(3W)
S8
SRQS
S6
S5
S4
S3
S2
S1
0
1
1
S8
rsv
S6
S5
S4
S3
S2
S1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Стан адресування(4R)
RS2
RS1
RS0
Спосіб адресування(4W)
ton
lon
EOI
LPAS
TPAS
LA
TA
MJMN
1
0
0
T0
L0
0
0
0
0
ADM1
ADM0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
Адреса0(6R)
RS2
RS1
RS0
Адреса0/1(6W)
INT
DT0
DL0
AD5
AD4
AD3
AD2
AD1
1
1
0
ARS
DT
DL
AD5
AD4
AD3
AD2
AD1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
Адреса1(7R)
RS2
RS1
RS0
EOS(7W)
X
DT1
DL1
AD5
AD4
AD3
AD2
AD1
1
1
1
EC7
EC6
EC5
EC4
EC3
EC2
EC1
EC0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
Прилад 5
регістр зчитування
регістр записування
Вхідні дані(0R)
RS2
RS1
RS0
Вихідні дані(0W)
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
D17
D16
D15
D14
D13
D12
D11
D10
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
Стан переривання(1R)
RS2
RS1
RS0
Дозвіл переривання(1W)
CPT
APT
GET
END
DEC
ERR
B0
B1
0
0
1
CPT
APT
GET
END
DEC
ERR
B0
B1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
Стан переривання(2R)
RS2
RS1
RS0
Дозвіл переривання(2W)
INT
SPAS
DMA0
DMA1
SPC
LLOC
REMC
ADSC
0
1
0
0
0
DMA0
DMA1
SPC
LLOC
REMC
ADSC
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
Статус послідовного опитування(3R)
RS2
RS1
RS0
Статус послідовного опитування(3W)
S8
SRQS
S6
S5
S4
S3
S2
S1
0
1
1
S8
rsv
S6
S5
S4
S3
S2
S1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Стан адресування(4R)
RS2
RS1
RS0
Спосіб адресування(4W)
ton
lon
EOI
LPAS
TPAS
LA
TA
MJMN
1
0
0
T0
L0
0
0
0
0
ADM1
ADM0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
Адреса0(6R)
RS2
RS1
RS0
Адреса0/1(6W)
INT
DT0
DL0
AD5
AD4
AD3
AD2
AD1
1
1
0
ARS
DT
DL
AD5
AD4
AD3
AD2
AD1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
Адреса1(7R)
RS2
RS1
RS0
EOS(7W)
X
DT1
DL1
AD5
AD4
AD3
AD2
AD1
1
1
1
EC7
EC6
EC5
EC4
EC3
EC2
EC1
EC0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
Ініціалізація годинника:
регістр зчитування
RS2
RS1
RS0
Регістр записування
Додатковий режим (5R)
Додатковий режим (5W)
CNT2
CNT1
CNT0
СOM4
COM3
COM2
COM1
COM0
1
0
1
CNT2
CNT1
CNT0
COM4
COM3
COM2
COM1
COM0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
Ініціалізація допоміжного регістра А:
Додатковий режим (5R)
Додатковий режим (5W)
CNT2
CNT1
CNT0
СOM4
COM3
COM2
COM1
COM0
1
0
1
CNT2
CNT1
CNT0
COM4
COM3
COM2
COM1
COM0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
Ініціалізація допоміжного регістра B:
1
0
1
0
1
1
1
1
Додатковий режим (5R)
Додатковий режим (5W)
CNT2
CNT1
CNT0
СOM4
COM3
COM2
COM1
COM0
1
0
1
CNT2
CNT1
CNT0
COM4
COM3
COM2
COM1
COM0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
Негайне виконання pon:
Додатковий режим (5R)
Додатковий режим (5W)
CNT2
CNT1
CNT0
СOM4
COM3
COM2
COM1
COM0
1
0
1
CNT2
CNT1
CNT0
COM4
COM3
COM2
COM1
COM0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5.Список використаної літератури
Поліщук Є.С., Дорожовець М.М., Яцук В.О. та ін. Метрологія та вимірювальна техніка: Підручник. / За ред. Є.С.Поліщука. Львів.: Видавництво “Бескид Біт”, 2003. – 544с.
М.Дорожовець, В.Мотало, Б.Стадник та ін. Основи метрології та вимірювальної техніки: Підручник у 2-х т. Т.1. Основи метрології. Львів : Видавництво НУ “Львівська політехніка”, 2005. – 532 с.
М.Дорожовець, В.Мотало, Б.Стадник та ін. Основи метрології та вимірювальної техніки: Підручник у 2-х т. Т.2. Вимірювальна техніка. Львів : Видавництво НУ “Львівська політехніка”, 2005. – 632 с.
Поліщук Є.С., Дорожовець М.М., Стадник Б.І. та ін. Засоби та методи вимірювань неелектричних величин: Підручник. /За ред. Є.С.Поліщука. Львів.: Видавництво “Бескид Біт”, 2008. –618 с.
Мейзда Ф. Электронные измерительные приборы и методы измерений / Пер. с англ. – Москва : Мир, 1990. – 535 с.
Атамалян Э.Г. Приборы и методы измерения электрических величин.- Москва : Высшая школа, 1989.
Інформація з Веб-сайту фірми «Інтел» щодо будови та основних технічних характеристик мікропроцесорів серії 8000 (прикладається).
Коршунов А.М. Микропроцессорные системы ЭФУ. Иллюстрации к курсу лекций. Москва : МИФИ. – 2008. – 39 с. (прикладається).
Мультиплексор USB 2.0 уменьшает количество разъемов
Драйвер до USB мультиплексора
#pragma language=extended
#include <io8515.h>
#include <ina90.h>
#include <def9602.h>
#include <defusb.h>
#include <dsc_cd.h>
#define SETBIT(ADDR,BIT) (ADDR |=(1<<BIT))
#define CLRBIT(ADDR,BIT) (ADDR &=~(1<<BIT))
#define SetBitR(Byte,Bit) (Byte |=(Bit))
#define ClrBitR(Byte,Bit) (Byte &=~(Bit))
#define ChkBitR(Byte,Bit) (Byte & (Bit))
unsigned char usb_buf[8]; /*Буфер Endpoint 0*/
unsigned char usb_cfg=0; /*Номер используемой CONFIGURATION*/
unsigned char address=0; /*Адрес назначеный ХОСТом*/
unsigned char Prt_Typ=0;
unsigned char Rpt_ID=0;
unsigned char Rpt_typ=0;
unsigned char Rpt_Cnt=0;
unsigned char DataPID=0; /*Массив DATA PIDs для IN Endpoints, '1'-Data1PID, '0'-Data0PID */
#define TGL0PID 1
#define TGL1PID 2
#define TGL2PID 4
#define TGL3PID 8
unsigned char status=0; /*Байт состояния, если в соответствующем бите '1'- состояние установлено, '0' - сброшено*/
#define GETDESC 1 /*Находимся в режиме выдачи дескриптора */
#define MULTIPAK 2 /*Находимся в состоянии выдачи Multipacket-a */
#define OutPack 16
unsigned char stalld=0; /*Байт указывающий находится ли Endpoint в состоянии HALT(выдачи STALL) '1'- STALL, '0' - Normal Operation*/
#define BIT0 1 /*Endpoint 0*/
#define BIT1 2 /*Endpoint 1*/
#define BIT2 4 /*Endpoint 2*/
#define BIT3 8 /*Endpoint 3*/
#define BIT4 16 /*Endpoint 4*/
#define BIT5 32 /*Endpoint 5*/
#define BIT6 64 /*Endpoint 6*/
unsigned char des_sze; /*Размер дескриптора в байтах*/
unsigned char des_idx; /*Индекс в таблице дескриптора*/
unsigned char des_typ; /*Тип выдаваемого дескриптора*/
unsigned char usb_idl;
unsigned char rptCD[2]; /*Буфер используемый для выдачи REPORT по клавишам */
flash char RX0[]="RO";
flash char NAK0[]="NO";
flash char TX0[]="TO";
flash char NAK3[]="N3";
flash char ALTI[]="AL";
flash char TX3[]="T3";
flash char KS[]="KS Labs HID";
flash char EV[]="-=GamePad=-";
flash char Key[]="Keys:";
flash char Ev[]="Event:";
#define ALE 4
#define RD 5
#define WR 6
#define CS 7
/*Процедура записи байта в USBN9604. Адрес регистра в который записывается*/
/*байт находится в U_ADDR. Cам записываемый байт находится в U_DATA. */
void USB_WR(char U_ADDR,char U_DATA)
{
DDRA=0xFF; /*Настраиваем PORTA на выход для выдачи адреса*/
SETBIT(PORTC,ALE); /*Устанавливаем ALE в 1 */
CLRBIT(PORTC,CS); /*Устанавливаем CS в 1 Выбираем USBN9604*/
PORTA=U_ADDR; /*Выдаем адрес регистра*/
CLRBIT(PORTC,ALE); /*Сбрасываем ALE в '0', защелкивая адрес*/
CLRBIT(PORTC,WR); /*Сбрасываем WR в '0', инициируя запись*/
PORTA=U_DATA; /*Выставляем на шину данные*/
SETBIT(PORTC,WR); /* Защелкиваем данные '1' на WR*/
SETBIT(PORTC,CS); /* Устанавливаем CS в '1' - отключаем микросхему*/
}
/*Процедура чтения байта из USBN9604. Адрес регистра в который записывается*/
/*байт находится в U_ADDR. Cам считанный байт находится в U_DATA*/
unsigned char USB_RD(char U_ADDR)
{
char U_