Главная   Назад  


HP-IB. GPIB. IEEE488. IEC 625. IEC 60488.
Цифровой интерфейс для программируемых приборов.

Автор: Яшкардин Владимир    
www.softelectro.ru    
2012              
Версия: 001 от 07.12.2012
electron18@softelectro.ru

Содержание:
1.Краткое описание интерфейсной системы 488
2. Разработка 488-x стандартов.
2.1 Последовательность 488-x стандартов.
2.2 488 стандарт сегодня.
2.3.Названия закрепившиеся за шиной.
2.4.Фирменные разработки GPIB
3. Стандарт IEEE488.1
3.1 Структура шины 488.1(IEC 60488-1-2004)
3.2 Сигналы шины IEEE488.1
3.3 Режимы работы шины IEEE488.1
3.4 Команды IEEE488.1
3.5 Опрос устройств в IEEE488.1.
3.6 Разъём.
3.7 Интерфейсные функции устройства.
4.Стандарт IEEE488.2 "Коды, форматы, протоколы, и общие команды."
4.1 Минимальные функциональные требования к приборам по стандарту IEEE488.2
4.2 Кодирование данных.
4.3 Форматы данных IEEE488.2.
4.4 Синтаксис IEEE 488.2
4.5 Общие команды.
4.6 Модель ответа о состоянии устройства.(Status Reporting Model IEEE 488.2). Последовательный опрос IEEE 488.2
4.7 Параллельный опрос IEEE 488.2

1.Краткое описание интерфейсной системы 488.

Международная стандартизированная система интерфейса обмена данными с байт-последовательной и бит-параллельной передачей данных в кодах ASCII для программируемых приборов.
Работающая на скоростях до 1Mb/s(стандартная шина) и до 8Mb/s(высокопроизводительная шина).
Поддерживается многими производителями измерительного и генераторного оборудования.
В частности: Hewlett-Packard(первоначальный разработчик), National Instruments(разработчик высокопроизводительной шины), Agilent и др.
Имеет собственную, расширяемую систему команд.
Интерфейс стандартизован многими международными и национальными центрами стандартизации.

2. Разработка 488-x стандартов.

2.1 Последовательность 488-x стандартов.

1965
Hewlett-Packard начало разработку интерфейса, для своих будущих измерительных приборов.
Назвав его HP-IB (Hewlett-Packard Interface Bus).
 
1972
В США сформирован консультативный комитет IEC(International Electrotechnical Commission).
IEC Technical Committee 66, Working Group 3 группа разработчиков которая занялась разработкой проекта стандарта.
 
1974
IEC за основу стандарта выбирает интерфейс от Hewlett-Packard HP-IB.
 
1975
IEEE 488-1975
"Digital Interface for Programmable Instrumentation.”
"Цифровой интерфейс для программируемых приборов."
Institute of Electrical and Electronics Engineers.
ISSN: 2168-3093
Дата: 05.1975
Организации IEEE первая опубликовала свой стандарт на шину HP-IB назвав его IEEE488.
 
1976
ANSI MC1.1
"Digital Interface for Programmable Instrumentation.”
"Цифровой интерфейс для программируемых приборов."
American National Standards Institute(ANSI)
Стандарт выпущенный следом за IEEE американским институтом по стандартизации.
 
1978
IEEE 488-1978
"Digital Interface for Programmable Instrumentation.”
Цифровой интерфейс для программируемых инструментов.
Institute of Electrical and Electronics Engineers.
Новая редакция выпущенная IEEE.
 
1979
IEC 60625-1
"An interface system for programmable measuring instruments (byte serial, bit parallel). Part 1 : Functional specifications, electrical specifications, mechanical specifications, system applications and requirements for the designer and user."
"Интерфейсная система для программируемых измерительных инструментов(байт-последовательная, бит-параллельная).
Часть 1. Функциональные спецификации, электротехнические спецификации, механические спецификации, применение системы и рекомендации для разработчиков и пользователей системы."
Дата: 01.01.1979
223 страницы
Заменен на: IEC 60625-1(1993.10)
IEC параллельно IEEE опубликовал свои стандарт, в котором использовался другой разъём.
 
1980
IEC 60625-2(1980)
"An interface system for programmable measuring instruments (byte serial, bit parallel). Part 2 : Code and format conventions."
"Интерфейсная система для программируемых измерительных инструментов(байт-последовательная, бит-параллельная ). Часть 2. Соглашение по коду и формату."
Дата: 01.01.1980
51 страница
Заменен на: IEC 60625-2(1993.12)
IEC первый стандартизировал команды, коды и форматы для шины 488.
 
1980
ГОСТ 26.003-80
"Система интерфейса для измерительных устройств с байт-последовательным и бит-параллельным обменом информации."
Дата:27.05.1980
ГОССТАНДАРТ СССР выпустил свой аналог IEEE488.
 
1981
BSI BS 6146-1
"An interface system for programmable measuring instruments (byte serial, bit parallel).
Part 1 : Functional specifications, electrical specifications, mechanical specifications, system applications and requirements for the designer and user."
"Интерфейсная система для программируемых измерительных инструментов(байт-последовательная, бит-параллельная).
Часть 1. Функциональные спецификации, электротехнические спецификации, механические спецификации, применение системы и рекомендации для разработчиков и пользователей системы."
Дата: 30.09.1981
Британский институт по стандартизации выпустил аналог стандарта IEC 60625-1
 
1981
BSI BS 6146-2
"An interface system for programmable measuring instruments (byte serial, bit parallel). Part 2 : Code and format conventions."
"Интерфейсная система для программируемых измерительных инструментов(байт-последовательная, бит-параллельная ). Часть 2. Соглашение по коду и формату."
Дата:01.01.1981
Британский институт по стандартизации выпустил аналог стандарта IEC 60625-2
 
1982
IEEE 728-1982
"Recommended Practice for Code and Format Conventions for IEEE Standart 488"
"Рекомендованная практика применения кода и формата соглашения для стандарта 488"
Institute of Electrical and Electronics Engineers.
Попытка стандартизации формата данных применяемый в шине IEEE488.
 
1987
IEEE 488.1-1987
"IEEE Standard Digital Interface for Programmable Instrumentation"
"Цифровой интерфейс для программируемых приборов."
Institute of Electrical and Electronics Engineers
Дата:16.06.1988
56 страниц
ISBN: 155938573
IEEE разделило свои стандарты на две части, аппаратную и информационную.
По аналогии IEC 60625-1, IEC 60625-2
 
1987
IEEE 488.2-1987
"IEEE Standard Codes, Formats, Protocols, and Common Commands for use with ANSI/IEEE Std 488.1-1987 IEEE Standard Digital Interface for Programmable Instrumentation."
"IEEE стандарт коды, форматы, протоколы, и общие команды используемые с ANSY/IEEE Std 488.1-1987 IEEE Standart Digital Interface for Programmable Instrumentation."
Institute of Electrical and Electronics Engineers
Дата:22.04.1988
206 страниц
IEEE разделило свои стандарты на две части, аппаратную и информационную.
По аналогии IEC 60625-1, IEC 60625-2
 
1992
ANSI/IEEE 488.2-1992
"IEEE Standard Codes, Formats, Protocols, and Common Commands"
"IEEE стандарт коды, форматы, протоколы, и общие команды."
Следующая редакция информационной части вышла на год раньше, чем у IEC.
 
1993
IEC 60625-1(1993)
"Programmable measuring instruments; interface system (byte serial, bit parallel); part 1: functional, electrical and mechanical specifications, system applications and requirements for the designer and user."
"Программируемые измерительные инструменты; интерфейсная система(байт-последовательная, бит-параллельная);
Часть 1: функциональная, электрическая и механическая спецификации, применение системы и рекомендации для разработчиков и пользователей."
Заменен на: IEC 60488-1(2004)
Дата: 01.10.1993
275 страниц
 
1993
IEC 60625-2(1993)
"Programmable measuring instruments; interface system (byte serial, bit parallel); part 2: codes, formats, protocols and common commands"
"Программируемые измерительные инструменты; интерфейсная система(байт-последовательная, бит-параллельная); Часть2: коды, форматы, протоколы и общие команды."
Заменен на: IEC 60488-2(2004)
Дата: 01.12.1993
566 страниц
 
2003
IEEE 488.1-2003
"IEEE Standard For Higher Performance Protocol for the Standard Digital Interface for Programmable Instrumentation."
"IEEE стандарт для высокопроизводительного протокола для стандартного цифрового интерфейса программируемых инструментов."
Institute of Electrical and Electronics Engineers
Дата:12.12.2003
140 страниц
ISBN: 0738136921
IEEE первой опубликовало свой стандарт на высокопроизводительную шину, которая была разработана фирмой National Instruments под именем NI-488.[3]
 
2004
IEC 60488-1(2004)
"Higher performance protocol for the standard digital interface for programmable instrumentation - Part 1: General."
Высокопроизводительный протокол для стандартного цифрового интерфейса программируемых инструментов. Часть 1. Общие положения.
Дата: 29.07.2004
156 страниц
IEC и IEEE пришли к согласию, выпустив международный стандарт на высокопроизводительную шину, в который вошёл текст IEEE 488.1-2003 на правах торговой марки.
 
2004
IEC 60488-2(2004)
"Standard digital interface for programmable instrumentation - Part 2: Codes, formats, protocols and common commands."
Стандартный цифровой интерфейс для программируемых инструментов. Часть 2. Коды, форматы, протоколы и общие команды.
Дата: 07.05.2004
260 страниц
IEC и IEEE пришли к согласию, выпустив международный стандарт на высокопроизводительную шину, в который вошёл текст IEEE 488.2-2003 на правах торговой марки.

2.2 488 стандарт сегодня.

На сегодняшний день основу интерфейса 488 составляют международные стандарты:
-IEC 60488-1(2004) "Higher performance protocol for the standard digital interface for programmable instrumentation - Part 1: General."
-IEC 60488-2(2004) "Standard digital interface for programmable instrumentation - Part 2: Codes, formats, protocols and common commands."
Изданные Международной Электротехнической Комиссией(IEC- Internationale Electrotechnique Commission).
 
Аналогично сегодня можно использовать публикации IEEE:
-IEEE 488.2-1987"IEEE Standard Codes, Formats, Protocols, and Common Commands for use with ANSI/IEEE Std 488.1-1987 IEEE Standard Digital Interface for Programmable Instrumentation."
-IEEE 488.1-1987" IEEE Standard Digital Interface for Programmable Instrumentation"
-IEEE 488.1-2003"IEEE Standard For Higher Performance Protocol for the Standard Digital Interface for Programmable Instrumentation."

2.3 Названия закрепившиеся за шиной.

HP-IB(Hewlett-Packard Interface Bus) - интерфейсная шина Hewlett-Packard[1]
GPIB(General Purpose Interface Bus)- интерфейсная шина общего назначения[3]
КОП(Канал общего пользования) [2]
IEEE-BUS -шина IEEE[1]
IEEE 488-BUS -шина IEEE 488[4]
ASCII-BUS -шина ASCII[1]
PLUS-BUS -шина плюс[1]

2.4 Фирменные разработки GPIB

National Instruments. [4] Занимается с 1975 года.
Инновации:
1984. NI-488
1987. Turbo488/1Mbyte/s
1990. NAT 4882& NI-488.2(Win3.1)
1993. TNT4882High-Speed GPIB
1996. NI-488.2Ver.1.0/PCI GPIB
2000. NI-Device/GPIB-ENET/100
2002. NI-488.2Ver.2.0/TNT5004
2003. IEEE488.1-2003/HS488
2004. PCIe-GPIB/GPIB-USB-HS
2008. NI-488.2 64bit

3. Стандарт IEEE488.1. "Цифровой интерфейс для программируемых приборов"

3.1 Структура шины 488.1(IEC 60488-1-2004)

Рис.1 Структурная схема системы интерфейса HP-IB(IEEE488).   [1]
Bus IEEE488.1

Типы шин:
-Data Bus(Шина данных) -
для передачи адресных, программных, управляющих, основных данных и состояний. Тип данных передаваемых по шине данных определяет сигнал ATN, достоверность данных определяет сигнал DAV.
-Handshake Lines(Шина синхронизации) -
используется для синхронизации каждого передаваемого байта между источником и приёмником, по "трёх сигнальной схеме" запатентованной Hewlett-Packard.
-General Bus Management(Шина управления) -
используется для передачи сигналов и команд управления между контроллером и всеми другими устройствами шины.

Типы устройств:
-Controller(Контроллер)-
устройство включающее в себя функции приёмника и источника для передачи информации по шине. Обычно это ПК. В каждый момент времени на шине может быть только один активный контроллер, который называется System Master(ведущий).
-Talker(Источник)-
это устройство может посылать информации в шину, когда оно адресовано контроллером. В каждый момент времени в шине может быть не более одного активного источника.
-Listener(Приёмник)-
это устройство может принимать информацию с шины, когда оно адресовано.В каждый момент времени в шине может быть не более 14 приёмников.

Параметры шины шины:
Топология сети: линейная/звезда
Максимальная длина сети: не более 20 м.
Длина одного сегмента сети: не более 4 м.
Количество устройств не более: 15 шт.
Количество стандартных адресов (1 байт): 31
Количество расширенных адресов(2 байта): 961
Максимальная скорость: 250/500/1000 kb/s
-до 250kb/s до 20м с нагрузкой через каждые 2м, при использовании возбудителя с открытым коллектором с втекающим током не менее 48мА.
-до 500kb/s до 20м с нагрузкой через каждые 2м, при использовании возбудителя на три состояния с втекающим током не менее 48мА.
-до 1000kb/s до 15м с нагрузкой через каждые 1м, при использовании возбудителя на три состояния с втекающим током не менее 48мА.

3.2 Сигналы шины IEEE488.1

Шина IEEE488.1 имеет негативную логику. То есть сигнал логической единицы передается меньшим напряжением, чем сигнал логического нуля.
Уровни сигналов:
Лог. 0(False) U>+2.0V(High)
Лог. 1(True) U<+0.8V(Low)
Тип выхода:
SRQ, NRFD, NDAC -только открытый коллектор
ATN,IFC,REN,EOI,DAV,DIO -открытый коллектор или выход с тремя состояниями
Спецификация передатчика:
Vol<+0.5V @ 48 mA
Voh>+2.4V @ 5.2mA
Спецификация приёмника
Для приёмников с триггером Шмитта:
Vil=Vtneg<+0.8V
Vih=Vtpos>+2.0V ,dd>Vtpos-Vtneg>+0.4V
Для остальных приёмником(без триггера Шмитта):
Vil<+0.8V
Vih>+2.0V
Шина данных:
DIO1..DIO8 -восемь двунаправленных линии используемые для передачи данных: адресных, программных, управляющих, основных данных и данных о состоянии.
Период времени, в течении которого информация на линиях шины данных действительна, определяется сигналом DAV=1(low).
Тип данных определяет сигнал ATN:
-ATN=1(low) передаются команды управления или адреса (командный режим),
-ATN=0(high) передаются данные(режим данных).
Передача данных происходит от источника к приемникам с использованием трёх сигнальной схемы подтверждения с выполнением следующих условий:
1.Данные по шине передаются асинхронно.
2.Скорость передачи автоматически подстраивается под самое медленное устройство.
3.Устройства не участвующие в обмене данными не влияют на синхронизацию.
4.Принимать данные могут сразу несколько приёмников.
5.Каждый передаваемый байт синхронизируется по трёх сигнальной схеме.
Линии синхронизации:
Используются для синхронизации источника и приёмника при обмене последовательными байтами.
-DAV(Data Valid) -
Данные действительны. Источник выдает сигнал DAV=1(low)(данные выставлены на шину данных и действительны.)проверив, что приёмники держат сигнал NRFD=0(low)(готовность принять данные). По этому сигналу происходит чтение данных приемниками.
-NRFD(Not Ready For Data) -
Не готовность данных. NRFD=1(low) выставляется приёмником и говорит о том, что приёмник не готов принять данных. Сигнал не станет NRFD=0(high) пока все приемники на шине не выставят готовность принимать данные(NRFD=0),так как это сигнал всегда подключается по схеме с общим коллектором (монтажное ИЛИ).
-NDAC(Not Data Accepted) -
Данные не приняты. NDAC=1(low) выставляется приёмником и говорит о том, что приёмник ещё не принял данные с шины. Сигнал не станет NDAC=0(high) пока все приёмники на шине не выставят сигнал NDAC=0(high)(монтажное ИЛИ).
Эти сигналы реализуют так называемую "Трёх сигнальную систему квитирования" запатентованную фирмой Hewlett-Packard:

Рис.2 Схема трёх сигнального квитирования от Hewlett-Packard[1]

Схема трёх сигнального квитирования от Hewlett-Packard

t-1-все приёмники шины "готовы принимать данные" NRFD=high;
t0-получив сигнал, что все приёмники "готовы принимать данные"источник занимает шину данных и выставляет сигнал, что "данные действительны" DAV=low;
t1-получив сигнал от источника, что "данные действительны", приёмники начинаю считывать данные и выставляют сигнал "не готовности к приёму" NRFD=low;
t2-после того как все приёмники приняли данные они выставляют сигнал "данные приняты" NDAC=high;
t3-получив сигнал , что всеми приёмниками "данные приняты" источник выставляет "данные недействительны" DAV=high, и освобождает шину данных;
t4-получив сигнал от источника, что "данные не действительны", приёмники выставляют сигнал "данные не приняты" NDAC=low;
t5-получив сигнал DAV=high, приёмники выставляю "готовность приёма " NRFD=high;
t6-начало следующего цикла чтения байта с шины данных

Рис.3 Алгоритм трёх сигнального квитирования [1]

Алгоритм трёх сигнального квитирования GPIB

Линии управления общей шиной:
-ATN(Attention)-
Внимание. Все устройства должны контролировать сигнал ATN постояно и отвечать на него в течении 200ns.
При ATN=low на шину данных выставляется команды или адреса (коммандный режим).
При ATN=high по шине данных идет передача данных (режим данных).
-IFC(Interface Clear) -
Очистка интерфейса. Линия IFC используется только системным контроллером, чтобы остановить текущую операцию на шине данных(т.е. без адреса остановить все источники и приёмники на шине и отключить последовательный опрос). Все устройства должны контролировать сигнал IFC=low постоянно и откликаться на него в течении 100мкс.
-REN(Remote Enable) -
Удалённый доступ разрешен. Линия REN используется только системным контроллером для переключения устройства в режим удаленного программирования.
При REN=low все приёмники переходят в режим удаленного доступа.
При REN=high все устройства переходят в локальный режим с выводом информации на лицевую панель. Все устройства должны постоянно контролировать сигнал REN=low и откликаться на него в течении 100мкс.
-SRQ(Service Request) -
Запрос сервиса. Линия SRQ=low используется одним или несколькими устройствами, для привлечения внимания к себе и может быть использована для прерывания текущей последовательности событий. Обычно SRQ=low указывает на наличие данных для передачи, ошибки, переполнения и др. Контроллер производит последовательный опрос всех устройств, чтобы определить источник запроса и сбросить состояние SRQ=low. Линия использует выхода с открытым коллектором и поэтому реализует функцию "Монтажное ИЛИ"
-EOI(End or Identify) -
Конец или идентификация.
Если ATN=low линия EOI используется контроллером для параллельного опроса.
Если ATN=high, линия EOI используется активным источником для указания последнего байта в переданном сообщении.

3.3 Режимы работы шины IEEE488.1

Шина может находится в одном из двух режимов, который определяется сигналом ATN.

ATN=low Командный или адресный режим:
В этом режиме происходит управление шиной и адресация устройств.
Основные действия контроллера:
-Подача универсальных команд, которые одновременно выполняются всеми устройствами сети;
-Выбор(адресация) устройства с которым контроллер будет общаться в дальнейшем по шине данных в режиме обмена данными;
-Подача адресных команд, которые выполняются ранее выбранными(адресованными) устройствами;
-Отработка запросов не выбранных(не адресованных) устройств анализом сигнала SRQ;
-Управление последовательным и параллельным опросом.
Порядок работы шины в режиме адресации:
Выдача сигнала ATN осуществляется только системным контроллером.
Когда контроллер выдаст сигнал ATN=low, все остальные устройства должны перейти в режим ожидания, и только контроллер может начать передавать информацию, но не ранее чем через 200ns после подачи ATN=low.
В этом состоянии(ATN=low) контроллер выдает на шину данных адрес и тип устройства, к которому он хочет обратиться.
После принятия байта адреса всеми устройствами сети по трёх сигнальной схеме, контроллер выставляет сигнал ATN=high и переводит шину в режим обмена.
В режиме обмена данными(ATN=high) по шине данных последовательно передаются байты информации между выбранным ранее устройством и контроллером, каждый байт при этом синхронизируется по трёх сигнальной схеме.
При этом в обмен данными может быть включено только одно устройство(источник) и любое количество устройств приёмников.
Источник при передаче последнего байта данных выставляет сигнал EOI=low(конец данных).
Любое устройство становится источником, когда контроллер выставил его адрес как адрес источника(DIO7=low) в режиме адресации(ATN=high).
Это устройство будет оставаться источником до тех пор, пока контроллер не выдаст адрес нового источника, или подаст команду "не передавай", или включит сигнал IFC=low (очистить интерфейс).
Любое устройство может обратиться к контроллеру, подав сигнал SRQ=low(запрос на обслуживание), по получению которого, контроллер должен последовательно опросить все устройства сети, чтобы обнаружить устройство вызвавшее запрос и адресовать его.
Контролер может перевести в холостой ход работу всех устройств, и сбросить все адреса, выдав сигнал IFC=low(очистить шину), который должен быть отработан всеми устройствами сети за 100мкс.
Адресация устройств:
Каждое IEEE488.1 устройство имеет по крайней мере, хотя бы один адрес источника или приёмника.
Адреса задаются выставлением уровней сигналов на шине данных в командном режиме:
Линии DIO5..DIO1 задают адрес от 0 до 30.
Линии DIO7..DIO6 определяют тип адреса:
00-универсальная команда;
01-адрес приёмника;
10-адрес источника;
11-расширение адреса до двух байт;
Линия DIO8 не используется при адресации.
Байт адреса представляется в виде символа полученного по кодировке ASCII.
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SP !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7  8  9  : ; <  =  }  ?    LISTEN
@  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _    TALK
Адрес 21 обычно зарезервирован для компьютерного интерфейса и его не рекомендуют использовать.
Адрес 31 используется в командах UNT и UNL (деадресация устройств).
Расширенная адресация использует второй байт (вторичную команду), которая расширяет пространство адресов до 961.
Мультиплексированные адреса - приборы, имеющие несколько адресов одновременно.
ATN=high Режим обмена данными:
В этом режиме происходит последовательный обмен байтами данных через шину данных между контроллером и выбранным ранее устройством сети.
Не адресованные ранее приёмники также способны принимать данные передаваемые по сети.
Не адресованные ранее источники могут запросить контроллер на своё обслуживание(т.е. адресацию) выдав сигнал SRQ=low.


3.4 Команды IEEE488.1

Универсальные однолинейные команды:
Выполняются всеми устройствами одновременно при появлении сигналов на шине управления.
Таблица 1. Команда ATN(Внимание).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
ATN1xxxxxxxxxxxxxx
Attention(Внимание) - по этой команде шина переводится в командный режим, все устройства сети должны быть готовы к работе в этом режиме не более чем через 200ns.

Таблица 2. Команда IFC(Очистить шину).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
IFC11xxxxxxxxxxxxx
Interface Clear(очистить шину)- по этой команде удаляются все активные адреса сети и все устройства сети должны перейти в холостой режим за время не более чем 100мкс.

Таблица 3. Команда REN(Разрешить удалённый доступ).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
REN1x1xxxxxxxxxxxx
Remote Enable(Разрешить удаленный доступ)- по этой команде все устройства сети должны перейти к управлению через контроллер, отключив управление с лицевой панели прибора.

Таблица 4. Команда IDY(Идентификация).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
IDY1xxx1xxxxxxxxxx
Identify(Идентификация) - Устройства настроенные для параллельного опроса должны среагировать на параллельный опрос(ATN=1 и EOI=1) в пределах 200ns. Контроллер может читать результат опроса через 2мкс после конфигурации.


Универсальные многолинейные команды:
Эти команды выполняются всеми устройствами сети одновременно. Код исполняемой команды выставляется на шину данных DIO1..DIO8 в командном режиме(ATN=1), считывается приборами по трёх сигнальной схеме и выполняется.
Таблица 5. Команда LLO(Блокировка локального управления).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
LLO1xxxxx0010001DC111
Local Lockout(Блокировка локального управления)-команда запрещает всем устройствам возвращаться к местному управлению (с лицевой панели прибора).

Таблица 6. Команда DCL(Очистка устройства).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
DCL1xxxxx01A5A4A3A2A1xx
Device Clear(Очистка устройства)- Универсальная команда "Очистить устройство" исполняют все устройства поддерживающие эту функцию, она возвращает устройство в начальное предустановленное состояние.
Руководство по устройству определяет "состояние очистки" для каждого устройства способного выполнить эту команду.
IEEE488.2 определяет дополнительно некоторые действия, которые устройство может делать в ответ на эту команду.

Таблица 7. Команда PPU(Деконфигурация параллельного опроса).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
PPU1xxxxx0010101NAK15
Parallel Poll Unconfigure( Декофигурация параллельного опроса)- Команда "Деконфигурация параллельного опроса" сбрасывает все устройства участвующие в параллельном опросе в исходное состояние (устройства перестают отвечать на параллельный опрос)

Таблица 8. Команда SPE(Разрешить последовательный опрос).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
SPE1xxxxx0011000CAN18
Serial Poll Enable(Разрешить последовательный опрос)- Команда "Разрешения последовательного опроса" устанавливает режим последовательного опроса для всех источников сети.
Каждое отвечающее устройство должно вернуть один из восьми статусных битов. Устройства которые признают эту команду должны иметь возможность быть источником, чтобы сообщить байт состояния.

Таблица 9. Команда SPD(Запретить последовательный опрос).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
SPD1xxxxx0011001EM19
Serial Poll Disable(Запретить последовательный опрос)- Команда "Запретить последовательный опрос" завершает режим последовательного опроса для всех устройств, возвращая источники к нормальному состоянию, когда они передают данные, а не информацию о своём состоянии.

Таблица 10. Команда ADL(Адресация приёмника).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
ADL1xxxxx01A5A4A3A2A1xx
Адресация приёмника. A5..A1-адрес приёмника от 1 до 30. После чтения этой команды указанный приёмник становиться активным.

Таблица 11. Команда UNL(Деадресация приёмника).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
UNL1xxxxx0111111?3F
Unlisten(Деприёмник, адрес 31)Команда "Деприёмник" деадресует всех текущих приёмников на шине.
Одиночный приёмник не может быть деадресован без остальных приёмников.
Это необходимо, чтобы эту команду гарантированно услышал выбранный приёмник.

Таблица 12. Команда ADT(Адресация передатчика).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
ADT1xxxxx10A5A4A3A2A1xx
Адресация источника. A5..A1-адрес источника от 1 до 30. После чтения этой команды указанный источник становиться активным.

Таблица 13. Команда UNT(Деадресация передатчика).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
UNT1xxxxx1011111_5F
Untalk(Деисточник, адрес 31)-Команда "Деисточник" делает безадресным текущий источник.
Отправка запроса на несуществующий адрес будет делать тоже самое.
Эта команда представлена для удобства адресации одного источника без отмены текущей адресации остальных.

Таблица 14. Команда ADE(Расширенная адресация).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
ADE1xxxxx11A10A9A8A7A6xx
Расширенная адресация. A10..A6-старшая часть адреса.
Младшая часть адреса A5..A1 передается вторичной командой.
Этот режим называется двух байтовой адресацией.
Тип Listener/Talker задается во втором байте битами DIO7,DIO6. В данном режиме можно адресовать до 961 приборов.


Универсальные адресные команды:
Эти команды выполняются только текущим адресованным устройством.
Код команды выставляется на шину данных DIO1..DIO8 в командном режиме(ATN=1).
Все устройства считывают код команды с шины данных по трёх сигнальной схеме. После чего, текущее адресованное устройство выполняет команду.

Таблица 15. Команда GTL(Переход в локальный режим).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
GTL1xxxxx0000001SOH1
Go To Local(Идти в местный)- Эта команда заставляет текущий адресованный приёмник вернуться в режим местного управления(выйдя из удалённого доступа).
Устройство может вернуться к удалённому доступа если оно снова будет адресовано как приёмник и установиться сигнал REN=1.

Таблица 16. Команда SDC(Очистка выбранного устройства).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
SDC1xxxxx0000100EOT4
Selected Device Clear(Очистка выбранного устройства)- Универсальная команда "Очистить выбранное устройство" возвращает текущее адресованное устройство в начальное предустановленное состояние.
Руководство по устройству определяет "состояние очистки" для каждого устройства способного выполнить эту команду. IEEE488.2 определяет дополнительно некоторые действия, которые устройство может делать в ответ на эту команду.

Таблица 17. Команда PPC(Конфигурация параллельного опроса).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
PPC1xxxxx0000101ENQ5
Parallel Poll Configure(Конфигурация параллельного опроса)- Эта команда позволяет адресованным приёмникам быть сконфигурированными для параллельного опроса, разрешенными вторичными командами.

Таблица 18. Команда GET(Одновременный запуск группы).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
GET1xxxxx0001000BS8
Group Excute Trigger(Одновременный запуск группы) -GET команда обеспечивает средства для одновременного запуска устройств.
Некоторые устройства могут передавать символы или строки для этих функций (но, требуют включения режима обмена данными).
Эта команда заставляет все устройства, которые имеют возможность исполнения GET функции и адресованны в настоящее время как приёмники одновременно инициировать запрограммированные действия(например, запуск, установить размах и т.д. )

Таблица 19. Команда TCT(Сделать контроллером).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
TCT1xxxxx0001001HT9
Take Control(Сделать контроллером)-адресуемое устройство берёт на себя функцию контроллера шины.


Вторичные команды:
Вторичные команды выставляются контроллером после определённых универсальных команд, которым разрешено использовать второй байт.
Они используются для расширения адресного пространства приёмников и источников и для вторичного параллельного опроса источников.

Таблица 20. Команда PPE(Разрешить параллельный опрос).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
PPE1xxxxx110S4S3S2S1'..o60..6F
Parallel Poll Enable(Разрешить параллельный опрос)- Вторичная команда "Разрешить параллельный опрос" разрешает устройствам сконфигурированным командой PPC для параллельного опроса изменять уровень заданной линии DIO1..DIO4 статусным битом своего состояния.
Некоторые устройства могут быть сконфигурированы для параллельного опроса с помощью перемычек на приборе.

Таблица 21. Команда PPD(Запретить параллельный опрос).
КомандаШина управленияШина данныхКод
ИмяATNIFCRENSRQEOIDLO8DIO7DIO6DIO5DIO4DIO3DIO2DIO1ASCIIHEX
PPD1xxxxx1110000p70
Parallel Poll Disable(Запретить параллельный опрос)-запрещает устройствам сконфигурированным для параллельного опроса отвечать битом статуса.


3.5 Опрос устройств в IEEE488.1

Возможны две процедуры опроса устройств на шине.
Параллельный опрос:
Параллельный опрос инициируется контроллером для получения информации от нескольких устройств одновременно.
Когда контроллер инициирует параллельный опрос(IDY), каждое сконфигурированное устройство возвращает статусный бит через одну из линий DIO4..DIO1 шины данных.
Задание бита DIO устройства производится с помощью переключателей, джамперов, или контроллером используя команду PPC(конфигурация параллельного опроса) с вторичной командой PPE в которой задаются используемые биты DIO.
Каждое устройство отвечает на отдельную линию DIO, или коллективно на одну линию DIO, или в любой комбинации.
Когда ответ коллективный, результат складывается по AND(Истина- высокий) или по OR(истина- низкий)из группы битов состояния.
Конфигурируемые устройства должны реагировать на параллельный опрос IDY(ATN=1 и EOI=1) в пределах 200ns.
Контроллер может читать результат опроса через 2мкс после конфигурации.
Параллельный опрос часто используют компьютеры для контроля состояния устройств, т.е. какие периферийные устройства готовы передаче и приёму данных.

Последовательный опрос:
Последовательный опрос представляет собой последовательность действий контроллера, которая позволяет узнать состояние опрашиваемых устройств.
Используя последовательный опрос, контроллер может определить, устройство или группу устройств запросивших сервисного обслуживания.
Устройства, которые могут быть последовательно опрошены, возвращают статусный байт контроллеру.
Контроллер последовательно выставляет команду SPE и адресует нужный источник, после чего получает статусный байт от выбранного источника.
Таким образом, эта процедура может занимать длительное время. Тем не менее, она обеспечивает выявление источника запрашивающего обмена данными с контроллером.
Контроллер должен(хотя это не обязательно) опросить каждое устройство, чтобы убедится, что все запросы от всех устройств были выполнены.
Контроллер должен отправить команду SPD и UNT для правильного завершения процедуры последовательного опроса.
Каждое устройство имеет регистр состояний SBR(Status Bit Register), который состоит из 7 бит.
Бит 6 этого регистра RQS=1 когда устройство генерирует запрос на обслуживания, остальные бит программируются по усмотрению разработчиков приборов.
При последовательном опросе контроллер считывает байт регистра состояния и по биту RQS=1 определяет прибор, который вызвал запрос на сервисное обслуживание.


3.6 Разъём.

По стандарту ANSI/IEEE 488

Рис.4 Разъём интерфейса 488
Connector IEEE488.1

Тип коннектора:
MICRORIBBON CONNECTOR TYPE 57   [1]
Другие названия:
Amphenol 24, Telco, Delta Ribbon, Champ(AMP), Cinch 57[1][3]   [1]   [3]
Параметры коннектора: [1]   [1]
Мах. напряжение: 200 Vdc
Мах. ток.: 5А
Кол-во итераций:
>1000
Температурные характеристики:
MIL STD 202E

По стандарту IEC 60625-1
Тип коннектора:
25-pin соединитель типа MIL-C-24308[1]
Параметры коннектора:
Мах. напряжение: 60 Vdc
Мах. ток.: 5А
Кол-во итераций:
>1000
Температурные характеристики:
IEC Publication 68 for climatic category 25/070/21
По стандарту ГОСТ 26.003-80
Тип коннектора:
24-конт. соединитель типа РПМ7-24Г-ПБ
Требование к соединителю:
Номинальное напряжение: 150 В
Номинальный ток: 1 А
Сопротивление контактов: не более 0,02 Ом
Сопротивление изоляции: более 1 ГОм
Износоустойчивость: 500 сочленений
Сечение провода: 0,2 мм2
Гнездо (устанавливается на прибор):РПМ7-24Г-ПБ-В

Рис.5 Разъём устанавливаемый на прибор.
Connector IEEE488.1

Кабель и вилка:

Рис.6 Разъём устанавливаемый на кабель по ГОСТ 26.003-80.
Connector IEEE488.1

Требования к кабелю по ГОСТ 26.003-80:
-Кабель должен иметь на обоих концах розетку и вилку, чтобы один разъем мог быть включен в верхнюю часть другого.
-Допускается длина отдельного кабеля до 4м.
-Сопротивление 1 м провода сигнал/обратного/экрана: 0,14/0,085/0,0085 Ом
-Мах. ёмкость (1 кГц) на 1 м: 150 пФ
-Сигнальные провода, имеющие обратный провод должны быть витыми парами.
-Плотность оплётки экрана: не менее 85%

3.7 Интерфейсные функции устройства.

Каждое устройство, разрабатываемое для работы с шиной IEEE488.1 может выполнять различные интерфейсные функции.
Коды этих функции рекомендовано наносить на панель прибора возле разъёма.
Стандарт предлагает набор предопределенных интерфейсных функции устройства:

-T,TE(Talker or Extended Talker) -возможность запросить устройство как источник или как расширенный источник.
Таблица 22. Коды функции T,TE.
КодBasic TalkerSerial PollTalk Only ModeUnaddress if MLA
0NONONONO
1YESYESYESNO
2YESYESNONO
3YESNOYESNO
4YESNONONO
5YESYESYESYES
6YESYESNOYES
7YESNOYESYES
8YESNONOYES


-L,LE(Listener or Extended Listener) -возможность запросить устройство как приёмник или как расширенный приёмник.
Таблица 23. Коды функции L,LE.
КодBasic ListenerListener Only ModeUnaddress if MLA
0NONONO
1YESYESNO
2YESNONO
3YESYESYES
4YESNOYES


-SH(Source Handshake) -устройство имеет возможность для правильной передачи многострочных сообщений.
        SH0-нет;
        SH1-полная возможность


-AH(Acceptor Handshake)-устройство имеет возможность для гарантированного правильного приёма многострочных сообщений.
        AH0-нет;
        AH1-полная возможность


-RL(Remote/Local)-устройство имеет возможность выбора между двумя источниками информации. Локальным(Local), когда информация отображается на панель прибора или удаленную(Remote), когда информация передается в шину и на панели не отображается.
         RL0-нет;
         RL1-укомплектован
         RL2-нет блокировки локаута


-SR(Service Request) -устройству разрешено получать асинхронный запрос на обслуживание от контроллера.
        SR0-нет;
        SR1-полная возможность


-PP(Parallel Poll)- Устройству представляется возможность однозначно идентифицировать себя, запросом на обслуживания во время когда контроллер запрашивает ответ от устройства. Эта функция отличается от запроса на обслуживание тем, что она требует от контроллера обязательного проведения параллельного опроса.
         PP0-нет;
         PP1-удаленноё конфигурирование
         PP2-местное конфигурирование


-DC(Device Clear)-эта функция допускает инициализацию устройства с очисткой его состояния. Эффект от этой функции зависит от устройства.
         DC0-нет;
         DC1-полная возможность;
         DC2-селективная очистка.


-DT(Device Trigger) -эта функция разрешает устройству оперативную инициализацию через шину.Результат этой функции зависит от устройства.
        DT0-нет возможности;
        DT1-полная возможность


-C(Controller)-эта функция разрешает устройству адресно посылать универсальные и адресные команды к устройствам подключенным к шине(т.е. выполнять функции контроллера).0..29
         C0-нет возможности;
         С1-системный контроллер;
         С2- посылать IFC и делать изменения;
         С3-посылать REN;
         C4- отвечать на SRQ;
         C5-посылать интерфейсные сообщения.


-E(Drivers) -Этот код описывает выходы сигналов используемых в устройстве.
        E1-открытый коллектор;
        E2-выход с тремя состояниями.

4. Стандарт IEEE488.2 "Коды, форматы, протоколы, и общие команды."

Первые попытки стандартизировать форматы данных в протоколе GPIB были предприняты в стандарте IEEE 728-1982 "Recommended Practice for Code and Format Conventions for IEEE Standart 488".
В 1987 был выпущен стандарт IEEE488.2 который стал основой для стандартизации форматов передаваемых данных и команд, которые используются совместно с шиной 488.1

Организация обмена данными в стандарте IEEE488.2 описана 4 логическими слоями, для того , чтобы показать место стандарта IEEE488.2 в системе обмена данными.

Рис.7 Логические уровни интерфейса определённые в 488.2[1]

Level IEEE488.1

Слой A: представляет интерфейсные функции (физическая шина IEEE488.1)
Слой B: приставляет коммуникационные функции(структура данных IEEE488.2)
Слой C: представляет общие системные функции (структура команд и запросов IEEE488.2)
Слой D: представляет фикции устройства(структура сообщений конкретного прибора)

4.1 Минимальные функциональные требования к приборам по стандарту IEEE488.2

Таблица 24. Любой прибор поддерживающий спецификацию IEEE488.2 должен иметь функции IEEE488.1:
КодФункцияПримечание
SH1Source Handshake (синхронизация источника)полный
AH1Acceptor Handshake(синхронизация приёмника)полный
T(TE)5
T(TE)6
Talker(Источник)базовый источник с посл. опросом
парал. опрос, деадресация в MLA
L(LE)3
L(LE)4
Listener(Приёмник)базовый приёмник
деадресация в MLA
SR1Service Request(запрос на обслуживание)полный
DC1Device Clear(Очистка прибора)полный
SH1Source Handshake (синхронизация источника)полный
RL0
RL1
Remote Local(Удалённый доступ)нет
полный
PP0
PP1
Parallel Poll(параллельный опрос)нет
полный
DT0
DT1
Device Trigger(запуск прибора по шине)нет
полный
C0
C4,8,11
Controller(Контроллер)нет
SRQ,IF Mssg,receive control
E1
E2
Electrical Interface(элктр. интерфейс)открытый коллектор
трёх уровневый выход

4.2 Кодирование данных.

Оригинальный стандарт IEEE488 не определял кодирование данных, он просто предлагал использовать любые аналого-цифровые форматы, бинарный, BCD и др.

IEEE488.2 определяет три типа кодирования данных:
-алфавитно-цифровой
Сигналы на шине данных DIO7..DIO1 трактуются как 7-битный код символа, который соответствует 7-битной кодовой таблице ANSI X3.4-1977 (ASCII), сигнал DIO8 в кодировании не участвует
Таблица 25. Кодовая таблица ANSI X3.4-1977 (ASCII)[5]
Сигналы управленияСимволы/ЧислаВерхний регистрНижний регистр
000001010011100101110111
0000NUL
00dec 00hex
DLE
16dec 10hex
SP
32dec 20hex
0
48dec 30hex
@
64dec 40hex
P
80dec 50hex
`
96dec 60hex
p
112dec 70hex
0001SOH
01dec 01hex
DC1
17dec 11hex
!
33dec 21hex
1
49dec 31hex
A
65dec 41hex
Q
81dec 51hex
a
97dec 61hex
q
113dec 71hex
0010STX
02dec 02hex
DC2
18dec 12hex
"
34dec 22hex
2
50dec 32hex
B
66dec 42hex
R
82dec 52hex
b
98dec 62hex
r
114dec 72hex
0011ETX
03dec 03hex
DC3
19dec 13hex
#
35dec 23hex
3
51dec 33hex
C
67dec 43hex
S
83dec 53hex
c
99dec 63hex
s
115dec 73hex
0100EOT
04dec 04hex
DC4
20dec 14hex
$
36dec 24hex
4
52dec 34hex
D
68dec 44hex
T
84dec 54hex
d
100dec 64hex
t
116dec 74hex
0101ENQ
05dec 05hex
NAK
21dec 15hex
%
37dec 25hex
5
53dec 35hex
E
69dec 45hex
U
85dec 55hex
e
101dec 65hex
u
117dec 75hex
0110ACK
06dec 06hex
SYN
22dec 16hex
&
38dec 26hex
6
54dec 36hex
F
70dec 46hex
V
86dec 56hex
f
102dec 66hex
v
118dec 76hex
0111BEL
07dec 07hex
ETB
23dec 17hex
'
39dec 27hex
7
55dec 37hex
G
71dec 47hex
W
87dec 57hex
g
103dec 67hex
w
119dec 77hex
1000BS
08dec 08hex
CAN
24dec 18hex
(
40dec 28hex
8
56dec 38hex
H
72dec 48hex
X
88dec 58hex
h
104dec 68hex
x
120dec 78hex
1001HT
09dec 09hex
EM
25dec 19hex
)
41dec 29hex
9
57dec 39hex
I
73dec 49hex
Y
89dec 59hex
i
105dec 69hex
y
121dec 79hex
1010LF
10dec 0Ahex
SUB
26dec 1Ahex
*
42dec 2Ahex
:
58dec 3Ahex
J
74dec 4Ahex
Z
90dec 5Ahex
j
106dec 6Ahex
z
122dec 7Ahex
1011VT
11dec 0Bhex
ESC
27dec 1Bhex
+
43dec 2Bhex
;
59dec 3Bhex
K
75dec 4Bhex
[
91dec 5Bhex
k
107dec 6Bhex
{
123dec 7Bhex
1100FF
12dec 0Chex
FS
28dec 1Chex
,
44dec 2Chex
<
60dec 3Chex
L
76dec 4Chex
\
92dec 5Chex
l
108dec 6Chex
|
124dec 7Chex
1101CR
13dec 0Dhex
GS
29dec 1Dhex
-
45dec 2Dhex
=
61dec 3Dhex
M
77dec 4Dhex
]
93dec 5Dhex
m
109dec 6Dhex
}
125dec 7Dhex
1110SO
14dec 0Ehex
RS
30dec 1Ehex
.
46dec 2Ehex
>
62dec 3Ehex
N
78dec 4Ehex
^
94dec 5Ehex
n
110dec 6Ehex
~
126dec 7Ehex
1111SI
15dec 0Fhex
US
31dec 1Fhex
/
47dec 2Fhex
?
63dec 3Fhex
O
79dec 4Fhex
_
95dec 5Fhex
o
111dec 6Fhex

127dec 7Fhex
Например: выставление сигналов на шине данных DIO8=x;DIO7=1;DIO6=0;DIO5=1;DIO4=1;DIO3=0;DIO2=1;DIO1=0 трактуется как 5Ahex=Z(ASCII)
При использование национальных шрифтов кодировка ведется по таблицам ISO.
В СССР для кодировки использовалась таблица КОИ7 введенная в действие ГОСТ 27463-87.

-двоичные целые числа в 8-битном коде:
Целое число от 0 до 255 может быть представлено одним байтом выставленным на шине данных.
Например: DIO8=1;DIO7=0;DIO6=1;DIO5=1;DIO4=0;DIO3=0;DIO2=1;DIO1=1; трактуется как B3hex = 179(целое десятичное)

-двоичные числа с плавающей запятой в кодировке IEEE754-1985:
Числа с плавающей запятой одинарной точности кодируются четырёх байтовой последовательностью
Напрмер 4 байта переданные по шине данных 431BA000hex трактуются как 155.625(десятичное)


4.3 Форматы данных IEEE488.2

Форматы данных определяют как записывать различные данные в кодах ASCII.
Форматы данных для источников и приёмников отличаются, объясняется это тем, что приёмники должны иметь большую свободу в интерпретации данных для совместимости со старыми приборами IEEE488.
Например, приёмник не должен различать верхний и нижний регистр букв, а источник различает.

Форматы данных для приёмников:
Приёмник не должен различать буквы верхнего и нижнего регистра.

-Decimal Numeric Program Data
(числовые десятичные программные данные),
обязательный формат определяет представление десятичного числа для приёмника.
(+,-)[0..9](.)[0..9][SP](E,e)(+,-)[0..9]
где
()-один символ
[]-любое количество символов
Примеры: 21; +21; -21; 21.15; -21.15; -21.15 E+5; -21.15 e-5; .25 E+8, +.25; -.25 E-158;
Если число выходит за пределы точности, приёмник округляет его.

Допускается использование числа с суффиксами:
(число)[SP](/)[/,.](Multipliers)(-)(Suffix)(-)[0..9]
Примеры: 25.7KOHM; 155.7e+6 MHZ
IEEE488.2 использует для обозначения множетелей величин сочетание букв указанных в таблице 26.
Таблица 26. Множитель
МножительКодИмя
1e+18EXEXA
1e+15PEPETA
1e+12TTERA
1e+9GGIGA
1e+6MA*MEGA
1e+3KKILO
1e-3M*MILLI
1e-6UMICRO
1e-9NNANO
1e-12PPICO
1e-15FFEMTO
1e-18AATTO
*- за исключением MHZ и MOHM

IEEE488.2 использует для обозначения типа величин сочетание букв указанных в таблице 27.
Таблица 27. Суффиксы(Величины)
КлассосновнойдопустимыйНазвание
ТокAАмпер
НапряжениеVВольт
МощностьWВатт
МощностьDBMДецибел милливатт
НапряжениеVВольт
СопротивлениеOHMОм
СопротивлениеMOHMМегаом
ПроводимостьSIEСименс
ЁмкостьFФарада
Магнитная индукцияTТесла
ИндуктивностьHГенри
Магнитный потокWBВебер
ЧастотаHZГерц
ЧастотаMHZМегагерц
ЗарядCКулон
Сила светаCDКандела
Световой потокLMЛюмен
ОсвещённостьLXЛюкс
МассаGГрамм
ВремяSСекунда
СилаNНьютон
ДавлениеPALПаскаль
ДавлениеATMАтмосфера
ДавлениеTOORТор
ДавлениеINHGДюймов ртути
ЭнергияJДжоуль
ТемператураKГрадус Кельвина
ТемператураCELГрадус Цельсия
ТемператураFARГрадус Фаренгейта
ОбъёмLЛитр
ДлинаMМетр
ДлинаFTФут
ДлинаINДюйм
УголRADРадиан
УголDEGГрадус
УголMNTМинута
УголSECСекунда
СоотношениеPCTПроцент
СоотношениеDBДецибел

-Non-Decimal Numeric Program Data
(не десятичные программные данные)
опциональный формат представление шестнадцатеричных, восьмеричных, двоичных чисел
(#)(H,h)[0..9,a..f,A..F] -шестнадцатеричное число, #HA34; #hff
(#)(Q,q)[0..7] -восьмеричное число, #Q125; #q5098
(#)(B,b)[0,1] -двоичное число, #B10101; #b111

-String Program Data
(Строковые программные данные)
Опциональный формат представления символьных сток, кодов управления, не печатных символов.
(')[ASCII](') - например, 'Hello WorlD!'; 'sdfg''aaa';
(")[ASCII](") - например, "Hello WorlD!"; "sdfg""aaa";

-Arbitrary Block Program Data
(Произвольный блок программных данных)
Опциональный формат для передачи блоков данных в виде байтов с указанием длины блока или маркера конца блока.
(#)(1..9)[0..9][byte] -блок указанной длины байтов, #3
(#)(0)[byte](LF)(EOI) -блок без указания длины, #010 EOI=1
где LF=10(ASCII), EOI=1 -сигнал шины управления
Маркером конца безразмерного блока данных является выставление на шину данных кода 0A с одновременной подачей сигнала управления EOI=1.

-Expression Programm Data
(выражение)
Опцианальный формат данных для описания выражений скалярных, матричных и строковых величин.
(()[SP,!,$,%,&,*,+,-,.,/,0..9,A..Z,a..z,{,},~,]()) -выражения могут использовать коды ASCII 32-126 за исклчением 34("), 35(#), 39('), 40((), 41()).
Например: (a+b-c)


Форматы данных для источников:

-NR1 Numeric Response Data -Integers
(NR1 числовой формат ответа -Целые)
Обязательный формат представления целых десятичных чисел со знаком.
(+,-)[0..9] -целые числа, +12; 45; -458

-NR2 Numeric Response Data -Fixed point
(NR2 числовой формат ответа- фиксированная точка)
Опциональный формат представления десятичных чисел с фиксированной десятичной точкой
(+,-)[0..9](.)[0..9] -числа с фиксированной точкой, 12.5; +45.78; -78.4

-NR3 Numeric Response Data -Floating point
(десятичные числа с плавающей точкой)
Опциональный формат представление десятичных чисел с плавающей точкой.
(+,-)[0..9](.)[0..9](E)(+,-)[0..9] -числа с плавающей точкой, 1.25E+7; -12.45E-2

-Hexadecimal, Octal, Binary Numeric Response Data
(Шестнадцатеричные числа ответных данных)
В отличии от приёмников здесь не допускается применение нижнего регистра.
(#)(H)[0..9,A..F] -шестнадцатеричное число, #HA34; #HFF
(#)(Q)[0..7] -восьмеричное число, #Q123; #Q4568
(#)(B)[0,1] -двоичное число, #B1011; #B111

-Character Response Data
(Символьные ответные данные)
Опциональных формат посылки текстовых команд с мнемоническими параметрами
[A..Z][A..Z,_,0..9] -например, START R2_D2;

-String Response Data
(Строковые ответные данные)
Опциональный формат посылки строковых и символьных данных.
(")[ASCII](") -например, "Hello World!";

-Define Length Arbitrary Block Response Data
(Ответные данные блока определённой длины )
Опциональный формат для передачи блока байтов заданной длины, длина блока данных в байтах задаётся вначале блока.
(#)(1..9)[0..9][bytes 00..FF] -передача блока данных, #3

-Indefinite Length Arbitrary Block Response
(Ответные данные блока неопределённой длины)
Опциональный формат для передачи блока байтов неопределённой длины, конец блока данных обозначается маркером.
(#)(0)[byte](LF)(EOI) -блок без указания длины, #010 EOI=1
где LF=10(ASCII), EOI=1 -сигнал шины управления
Маркером конца блока неопределённой длины данных является выставление на шину данных кода 0Ahex с одновременной подачей сигнала управления EOI=1.

-Arbitrary ASCII Response Data
(Произвольный ASCII ответ данных)
Опциональный формат для передачи произвольных данных в ASCII коде, конец передачи данных маркируется
[ASCII](LF)(EOI) -блок данных из произвольных ASCII символов, 10 EOI=1


4.4 Синтаксис IEEE 488.2

Синтаксис описывает как совместно применять указанные выше форматы данных.

Синтаксис приёмников:
-Program Massage Terminator
(Окончание программных сообщений)
Синтаксис описывает возможные варианты окончания принятых сообщений.
[Message](LF) -сообщение заканчивается кодом 10(ASCII)
[Message](LF)(EOI) - сообщение заканчивается кодом 10(ASCII) и выставлением сигнала EOI=1
[Message](EOI)-сообщение заканчивается выставлением сигнала EOI=1

-Program Data Separators
(разделение программных данных)
Синтаксис описывает разделение сообщений и элементов внутри сообщения.
(Element1)(,)(Element2)(,)(Element3) -элементы разделяются символом 44(ASCII)
(Message1)(;)(Message2) -сообщения разделяются символом 59(ASCII)

-Command Program Header
(Заголовок программных команд)
Синтаксис описывает написание одиночных, соединенных и общих команд.
Максимальная длина команды 12 символов, рекомендовано сокращение до 4 символов.
(SP)(Command) -одиночная команда
(SP)(:)(Command1)(:)(Command2) -соединение команд производится с помощью символа 58(ASCII)
(SP)(*)(Command) -общие команды обозначаются префиксом 42(ASCII)
где формат команды (Command) :
(A..Z,a..z)[_,0..9,A..Z,a..z]
Например:ABORt;INITiate:SEND:FUNC "PER 1"

-Queries
(Запросы)
Синтаксис описывает принимаемый запрос на который приёмник должен ответить. Признаком запроса является суффикс (?)
(SP)(Command)(?) -одиночный запрос
(SP)(:)(Command1)(:)(Command2)(?) -соединение запросов с помощью символа 58(ASCII)
(SP)(*)(Command)(?) -общие запросы обозначаются префиксом 42(ASCII)
Например: MEAS:ARRay:FREQ?

Синтаксис источников:
-Program Massage Terminator
(Окончание программных сообщений)
Синтаксис описывает окончания отправленных сообщений.
[Message](LF)(EOI) - сообщение заканчивается кодом 10(ASCII) и выставлением сигнала EOI=1

-Separators
(разделители)
Синтаксис описывает разделение сообщений, данных и заголовков.
(Message1)(;)(Message2) -сообщения разделяются символом 59(ASCII)
(Data1)(,)(Data2) -данные разделяются символом 44(ASCII)
(Header1)(SP)(Header2) -заголовки разделяются символом 95(ASCII)


4.5 Общие команды.

Общие команды исполняются в режиме данных ATN=0, поэтому их не надо путать с командами шины которые были описаны в стандарте IEEE 488.1(они исполнялись в командном режиме ATN=1).
Общие команды должны исполняться любым устройством, которое поддерживает стандарт IEEE 488.2
Таблица 28. Общие команнды IEE488.2
КомандаОписание
Команды автоматической конфигурации устройства
*AADAssign Address(Назначить адрес)-опционально
*DLFDisable Listener Function(Запретить функции приёмника)-опционально
Команды системных данных
*IDN?Identification Query(Идентификационный запрос) -обязательно
*OPT?Option Identification Query(Опциональный идентификационный запрос) -опционально
*PUDProtected User Data(Защита пользовательских данных)-опционально
*PUD?Protected User Data Query(Запрос защиты пользовательских данных)-опционально
*RDTResource Description Transfer(Передача описания ресурсов)-опционально
*RDT?Resource Description Transfer Query(Запрос передачи описания ресурсов)-опционально
Встроенные операционные команды
*CAL?Calibration Query(запрос калибровки -опционально)
*LRN?Learn Device Setup Query(запрос ознакомительной установки устройства)- опционально
*RSTReset(сброс)-обязательно
*TST?Self-Test Query(Запрос на последовательный тест)- обязательно
Команды синхронизации
*OPCOperation Complete(скомплектовать операцию)-обязательно
*OPC?Operation Complete Query(запрос скомплектовать операцию)-обязательно
*WAIWait to Complete(ждать комплектации)-обязательно
Макрокоманды
*DMCDefine Macro(определить макрос) -опционально
*EMCEnable Macro(разрешить макрос)-опционально
*EMC?Enable Macro Query(запрос разрешить макрос)-опционально
*GMC?Get Macro Contents Query(запрос получить содержание макроса)-опционально
*LMCLearn Macro Query(запрос обучения макроса)-опционально
*PMCPurge Macros(очистить макросы)опционально
Команды параллельного опроса
*IST?individual Status Query(запрос индивидуального статуса)-обязательно
*PREParallel Poll Enable Register Enable(разрешение регистра разрешающего параллельный опрос)-обязательно
*PRE?Parallel Poll Enable Register Enable Query(запрос разрешение регистра разрешающего параллельный опрос)-обязательно
Команды статуса и событий
*CLSClear Status(очистить статус)-обязательно
*ESEEvent Status Enable(разрешить события статуса)-обязательно
*ESE?Event Status Enable Query(запрос разрешить события статуса)-обязательно
*ESR?Event Status Register Query(запрос статусного регистра событий)-обязательно
*PSCPower on Status Clear(включить очистку статуса)-опционально
*PSC?Power on Status Clear Query(запрос включить очистку статуса)-опционально
*SREService Request Enable(разрешить сервисный запрос)-обязательно
*SRE?Service Request Enable Query(запрос разрешить сервисный запрос)-обязательно
*STB?Read Status Byte Query(запрос байта чтения статуса)-обязательно
команды запуска устройств
*DDTDefine Device Trigger(определить триггер)-опционально
*TRGTrigger(триггер)-обязательно
colspan="2">Команды контроллера
*PCBPass Control Back(вернуть управление)-обязательно
colspan="2">Команды сохранения установок
*RCLRecall Instrument State(состояние перекалибровки прибора)-опционально
*SAVSave Instrument State(состояние записи прибора)-опционально


4.6 Модель ответа о состоянии устройства.(Status Reporting Model IEEE 488.2). Последовательный опрос IEEE 488.2

Стандарт IEEE 488.2 расширил модель состояния устройства, которой устройство отвечает контроллеру при последовательном опросе.
Общая схема этой модели выглядит так:

Рис.8 Стандартная модель статуса[1]

Standard Status Model IEEE488.2

Эта модель строится на расширенной спецификации оригинального стандарта 488. Это обеспечивает метод передачи статусного байта к контроллеру с использованием последовательного опроса IEEE488.1 или определенного IEEE488.2 общего запроса. В дополнение 488.2 определяет больше общих команд и запросов к получению дополнительной информации.

Ниже покажем, как расширяется структура статусного сообщения в формате IEEE4888.2.

Рис.9 Расширение статусного сообщения в IEEE488.2[1]

Extended Status Model IEEE488.2

Здесь показаны операции с статусным байтом, формирование запроса, стандартные структуры данных и параллельный опрос.

Регистр статусного байта SBR (Status Byte Register).
Оригинальный IEEE488 определял байт статуса SBR и предусматривал последовательный опрос для его чтения контроллером. Тем не менее, кроме RQS бита, не определялось, установлены или очищены другие биты SBR регистра. Определение этих незаполненных битов допускалось разработчиком приборов. Контроллер, получив от устройствF запрос на обслуживание читал байт статуса и сбрасывал бит RQS(6 бит), тем самым сообщая устройству, что запрос обслужен. IEEE488.2 стал использовать кроме 6 бита(RQS) биты 4(MAV) и 5(ESB) регистра SBR. Кроме того, 488.2 определяет несколько команд(*STB?;*SRE;*SRE?;*ESR?;*ESE?;*ESE; *IST?;*OPC;*CLS), которые позволяют пользователю получить доступ к байту статуса устройства и связанных с ним структур данных. Важно отметить, что последовательный опрос не очищает байта состояния, хотя очищает бит RQS.

Рис.10 Чтение и сброс регистра статусного байта[1]

Status Byte Register IEEE488.2

Байт состояния очищается при очистке связанных с ними структур статуса. IEEE 488.2 имеет команду очистки (*CLS), которая очищает все структуры данных состояния, то есть все события регистров и запросов. Это приводит к тому биты в байте состояния будут очищены.

Рассмотрим биты MSSB(6 бит), ESB(5 бит), MAV(4 бит) регистра SBR:

MSSB(Master Summary Status Bit) Главный суммирующий бит регистра SBR (6 bit).
Это 6 бит статусного регистра SBR, который в IEE488.1 назывался RQS(запрос на сервисное обслуживание). В модели 488.2 это бит MSSB. Главный суммирующий бит (MSSB) показывает, имеется ли на устройстве хотя бы один из сервисных запросов. Включение сервисного запроса на обслуживание происходит теперь так: Пользователь может установить биты в регистре разрешения запроса (SRER). Эти биты соответствуют битам статусного байта. Когда бит, установлен в SRER это разрешит этому биту в статусном байте установить запрос на обслуживание RQS. Например, установка бита 4 в SRER заставит устройство послать сервисный запрос, когда устройство имеет данные в очереди на передачу.

Рис.11 Формирование сервисного запроса.[1]

Service Request Enabling IEEE488.2

ESB(Event Status Bit) Статусный бит события регистра SBR (5 bit).
IEEE 488.2 определят статусный бит события (ESB), как 5 бит статусного байта SBR. Этот бит показывает, были или небыли стандартные события в приборе. ESB формируется из битов регистров событий SESR. Регистры событий SESR захватывают изменения, которые происходят в пределах устройства. Каждый бит в регистре событий соответствует определённому состоянию устройства. Эти биты становятся TRUE, когда происходят предопределенные события в устройстве. Эти изменения иногда называют переходами. Регистрация этих событий гарантирует, что пользователь не может пропустить это изменение, потому эти биты иногда называют "sticky" (липкие),так как они могут быть очищены только пользователем.
Есть два способа очистки регистра событий SESR:
1.Прочитать регистр (*SRE?) очистив его.
2.Очистить регистр с помощью команды (*CLS).

IEEE 488.2 определяет три критерия перехода для установки битов события в состояние TRUE:
1.Положительные переходы. Состояние меняется от FALSE к TRUE.
2.Отрицательные переходы. Когда события меняются от TRUE к FALSE.
3.Положительные или отрицательные переходы. Когда события совершают цепочки изменений FALSE/TRUE.

Устройства могут иметь более одного регистра событий.
Таким образом, если устройство имеет больше событий, устройство будет предоставлять другие устройство-зависимые команды для их чтения.

SESR(Standard Event Status Register) стандартный статусный регистр событий.
Все 488.2 устройства имеют SESR регистр

Рис.12 Операции для стандартного регистра событий (SESR).[1]

Standard Event Status Register IEEE488.2

IEEE 488.2 спецификация определяет значение каждого бита в SESR:

Бит 7 - Питание включено (PON)
Этот бит указывает, что питание устройства было выключено, а затем включено с момента последнего чтения этого регистра.

Бит 6 - Запрос пользователя (URQ)
Этот бит указывает, что пользователь активировал некоторые устройства контроля.
Этот бит будет установлен, независимо от удаленных или локального состояния устройства.
Это предоставляет пользователю средство привлечь внимание контроллера.

Бит 5 - Ошибка команды (CME)
Этот бит показывает, что это устройство обнаружило командную ошибку.
Следующие события вызывают командные ошибки:
1.Синтаксические ошибки IEEE 488.2
Это означает, что устройство получило сообщение, которое не следуют синтаксису стандарта 488.2
Например, оно получило данные не соответствующее формату слушателя.
2.Семантические ошибки. Например, устройство получило некорректное название команды.
Другим примером может быть то, что устройство получило дополнительно 488.2 команду, которую оно не реализует.
3. Устройство получило команду группового триггера в программном сообщении.

Бит 4 - Ошибка выполнения (EXE)
Этот бит указывает, что устройство обнаружило ошибку при попытке выполнить команду:
1. элемент полученный в команде был вне правового диапазона устройства, или несовместим с работой устройства.
2.Устройство не может выполнить правильную команду из-за некоторых состояний устройства.

Бит 3 - аппаратно-зависимые ошибки(DDE)
Аппаратно-зависимые ошибки любой операции устройства, которые не выполнились должным образом из-за некоторых внутренних условий. Например, таких как перегрузка:
Этот бит указывает, что ошибка была не в команде, запросе или ошибке выполнения.

Бит 2 - Ошибка очереди (QYE)
Этот бит показывает:
1.Попытка прочитать данные из очереди на передачу, когда данные не были представлены.
2.Что данные в очереди были потеряны.Примером этого может быть переполнения очереди.

Бит 1 - Запрос на контроль шины (RQC)
Этот бит указывает контроллеру, что устройство хочет стать активным контроллером.

Бит 0 - Операция в комплекте (OPC)
Этот бит указывает, что устройство завершило все отложенные операции и готово к приему новых команд.
Этот бит генерируется только в ответ на команду (*OPC).

SESR может быть очищен:
1.Командой очистки (*CLS)
2.Прочтением стандартного статусного регистра событий (*ESR?)
3.Включение устройства (на усмотрение дизайнера устройства). Отметим, что в
этом случае, устройство очистит регистр, а затем записывать любые переходы, которые будут
происходить, в том числе установка Power On (PON) бит.

Также устройство может иметь регистры разрешения событий SESESR(Standard Event Status Enable Register).
Регистр разрешения событий SESESR записывается командой (*ESE) и читается командой(* ESE?)
Он разрешает или запрещает установку конкретных битов событий в регистр SESR.

MAV(Message Available Bit) бит наличия сообщений в очереди на передачу регистра SBR (4 bit).
IEEE 488.2 определяет 4 бит статусного байта, как бит доступности сообщения (MAV). Этот бит указывает на наличие в очереди на вывод из прибора сообщений, которые нужно прочитать контроллеру. Каждый раз когда устройство имеет данные для передачи в контроллер, бит MAV устанавливается в TRUE. Очередь на передачу организована в устройстве по принципу первым пришёл- первым вышел (FIFO). Она хранит выходные сообщения, пока она читается с устройства. Контроллер для чтения очереди сообщений должен сделать устройство активным Talker(источник) и принять с него данные с использованием трёхсигнальной системы квитирования. Команда *CLS не очищает очередь. Очередь может быть очищена прочтением или от команды перезагрузки устройства SDC (488.1), либо включением питания. Таким образом, у вас меньше шансов потери данных



4.7 Параллельный опрос IEEE 488.2

В IEEE 488.1 Параллельный опрос определен как быстрый способ получения статуса нескольких устройств на шине.
Когда контроллер инициировал параллельный опрос (см.п.3.5) устройства выставляли заранее запрограммируемте биты на сигналы шины DIO1..DIO4.
Анализ этих сигналов давал возможность контроллеру как то оценить состояние устройств.
В 488.2 бит посылаемый устройством в ответ на параллельный опрос формируется по схеме:

Рис.13 Формирование индивидуального статуса устройства при параллельном опросе.[1]

Parallel Poll Response Handling Data Structure IEEE488.2

Вы можете видеть, что эта структура такая же, как у регистра событий о котором говорилось выше. Однако, вместо того, суммировать бит в байт состояния, суммируемый бит посылается в ответ на параллельный опрос(в один из сигналов DIO1..DIO4). Этот бит суммируют по ИЛИ в индивидуальном локальном статусном сообщении и контроллер может теперь прочитать его командой (*IST?) Как и в регистре событий, здесь есть регистр разрешения PPER(Parallel Poll Enable Register), чтобы определить, какие события представлены в сумме. IEEE 488.2 определяет дополнительную команду(*PRE) для записи регистра разрешения. Также в 488.2 определена команда(*PRE?) чтения индивидуального статуса, что позволяет читать состояние устройства без процедуры параллельного опроса.

Источники информации:
1."Tutorial Description of the Hewlett-Packard Interface Bus.Designed for HP-IB System".Hewllet-Packard
2.ГОСТ 26.003.80(СТ СЭВ 2740-80) "Система интерфейса для измерительных устройств с байт-последовательным, бит-параллельным обменом информации. Требования к совместимости." редакция от 04.1985. Издательство стандартов. Москва.1985г.
3. http://ru.wikipedia.org/wiki/IEEE-488
4."History of GPIB". Tutorial. National Instruments. 14.08.2012
5. USA Standard Code for Information Interchange, ANSI X3.4-1977, American National Standards Institute, 1430 Broadway, New York, NY 10018

Назад   Главная