Порты, регистры, адреса, распайка, функции драйвера

advertisement
Плата интерфейса ЛИР-940P
Введение
Плата интерфейса ЛИР-940P является платой расширения компьютерной шины PCI.
Совместно с персональным компьютером, плата может применяется в системах сбора и
обработки информации о перемещении или положении объекта (следящих системах).
Источником информации должны служить растровые преобразователи перемещения («датчики
перемещения»), имеющие прямоугольные импульсные сигналы TTL уровня (см. описание
выходных сигналов для преобразователей ЛИР, тип ПИ www.skbis.ru). Назначение платы –
прием и обработка сигналов, поступающих от преобразователей перемещения, в результате
которой накапливается информация о положении и перемещении контролируемого объекта, а
так же передача накопленной информации в память компьютера. Последующее хранение,
обработку и анализ информации осуществляет компьютерная программа. Платы интерфейса
могут применяться в измерительных системах, системах управления, построенных на базе
компьютера, и других областях техники.
Функциональные возможности
1. Прием и обработка сигналов от одного до четырех инкрементных преобразователей
перемещения. Накопление информации о перемещении объекта и передача ее в память
компьютера.
2. Обработка четырех импульсных сигналов, поступающих от внешних устройств на
дополнительный разъем платы.
3. Запоминание текущего перемещения (положения) объекта и дальнейшее хранение этой
информации с целью последующей загрузки ее в память компьютера. Запоминание
происходит по следующим событиям:
a. по сигналу референтной (опорной) метки преобразователя.
b. по сигналу, поступающему на дополнительный разъем платы от внешних
устройств (см. п. 2).
c. по сигналам дополнительных (специальных) модулей.
4. Контроль временных параметров входных сигналов, поступающих от преобразователей
(см. параметр Тmin, описание выходных сигналов для преобразователей ЛИР, тип ПИ
www.skbis.ru). В случае нарушения временных параметров, возникает угроза неверной
дешифрации поступающей информации, и электроника вырабатывает предостерегающее
сообщение в виде контрольного бита – флага ошибки.
5. При инсталляции платы в компьютер, ее идентификация и настройка происходит
автоматически, в соответствии с технологией Plug And Play.
Технические характеристики ЛИР-940P
Таблица 1 ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ ЛИР-940P
№
Наименование
1 Число подключаемых растровых преобразователей перемещения
2 Разрядность аппаратного счетчика приращений каждого канала
3 Уровни сигналов преобразователя ( A, A.B, B, Ri , Ri )
4 Максимальная входная частота сигналов преобразователя ( A, A.B, B, Ri , Ri )
Временное сближение фронтов сигналов преобразователя (Tmin, см. описание
5 выходных сигналов для преобразователей ЛИР, тип ПИ www.skbis.ru), при
котором возникает предостерегающее сообщение
Количество дополнительных входов для импульсных сигналов (концевые и
6
аварийные выключатели, датчики касания, внешний таймер и т.д.)
Значение
от 1 до 4
24
ТТЛ
12 МГц
≤ 20 нс.
4
№
7
8
9
10
11
Наименование
Уровень импульсных сигналов, подаваемых на дополнительный вход платы.
(без дополнительных резисторов)
Минимальная длительность импульсного сигнала, подаваемого на
дополнительный вход платы.
Задержка срабатывания импульсного сигнала, подаваемого на дополнительный
вход платы
Частота работы шины PCI
Разрядность шины данных
12 Пропускная способность канала плата - компьютер
Значение
ТТЛ
40 нс.
не более
100 нс.
33 МГц
32 бит
4,5
Мбит/сек
Комплектность поставки
С платой интерфейса поставляется компакт-диск, на котором записаны: драйвер платы под
операционные системы семейства Windows, библиотека для облегчения создания новых
программ, и демонстрационная программа, отображающая текущее положение объекта на
экране с возможностью сохранения данных на жесткий диск по выбранным событиям. Кабель
связи преобразователя с платой в стандартный комплект поставки не входит, его следует
заказывать отдельно.
Описание
LIR 940P - Organization
Channel W
Channel Z
A,B,RI
Channel Y
Ext
A,B,RI
External
signals
TTL
to increment
encoders
Channel X
A,B,RI
Processing Unit X
A,B,RI
Bus Controller Unit
PCI
Платы интерфейса поддерживают четыре независимых канала X,Y,Z,W (см. рисунок).
Каналы функционируют одинаково. Каждый канал может обрабатывать сигналы одного
растрового преобразователя перемещения ( A, A.B, B, Ri , Ri ) и дополнительный импульсный
сигнал Ext. Назначение канала – сбор информации о перемещении и положении объекта с
возможностью запоминания текущего положения. При помощи драйвера, с платы можно
считывать информацию как о текущем положении (перемещении) объекта, так и
зафиксированное значение положения в определенный момент времени в прошлом.
Данная информация хранится в буферных регистрах и передается в память компьютера
по запросу программы. В платах стандартной модификации запоминание текущего
перемещения (положения) объекта происходит в следующих случаях: при выработке
преобразователем импульса референтной (опорной) метки RI, а так же по нарастающиму
фронту импульсного сигнала, поступившего на дополнительный разъем платы.
Дополнительный соединитель (разъем) внешних сигналов (External Signals)
предусмотрен для подключения до четырех независимых импульсных сигналов Ext TTL
уровня, поступающих от внешних устройств. Источниками внешних сигналов могут быть:
концевые и аварийные выключатели, датчики касания, внешний таймер и т.д. Входы внешних
сигналов гальванически развязаны, для развязки применяются быстродействующие оптроны.
Входные цепи этих сигналов рассчитаны на подключение источника цифрового сигнала ТТЛ
уровня.
Во время функционирования интерфейса непрерывно производится контроль временных
параметров входных сигналов, поступающих по линии связи от преобразователя перемещений
(Tmin, см. описание выходных сигналов для преобразователей ЛИР, тип ПИ www.skbis.ru). При
нарушении параметров, которое может привести к накоплению ложной информации, возникает
сообщение об ошибке. Нарушение временных параметров может возникать из-за нарушения
допустимых режимов работы системы, неисправностей преобразователя и входных цепей
платы, или неверного выбора линии связи.
Чтение информации с платы ЛИР-940P осуществляется при помощи драйвера, через 32
разрядные порты ввода/вывода, при этом пропускная способность канала плата-компьютер
составляет 4,5 Мбит/сек. Плата поддерживает технологию Plug And Play, и не требует
настройки при ее инсталляции в компьютер.
Для однократного считывания достоверных данных о положении и перемещении
объекта, программа должна выполнять ряд действий, последовательность которых составляет
протокол чтения. Протокол чтения описан ниже.
Для облегчения создания собственного программного обеспечения, вместе с драйверами
поставляется библиотека, в которую включены основные функции и процедуры работы с
платой.
Для эксплуатации плат интерфейса ЛИР-940P не требуется специального обучения.
Наши платы готовы к работе сразу после их установки в процессорный блок компьютера и
инсталляции драйверов.
Структурная схема и принцип работы канала.
Как упоминалось ранее, плата интерфейса поддерживает от одного до четырех
независимых каналов. Каналы функционируют одинаково. Назначение канала – сбор
информации о перемещении и положении объекта с возможностью запоминания этих величин
по определенному событию.
Катко поясним принцип работы канала.
B
QD
+/-
24 bit
8
Overwriting
PCI [24..31]
Ext1
RI
In1
In2
Flag [1..3] Error [1..3]
Driver
Data [24..0]
PCI [0..23]
A
Register 24 bit
Counter 24 bit
Processing unit
Q
In3
Start
transaction
Поступая с инкрементного преобразователя перемещения, сигналы A и B
преобразуются квадратурным детектором (QD) в сигналы, пригодные для счета 24 разрядным
реверсивным счетчиком (Counter). Назначение счетчика – накопление информации о
перемещении контролируемого объекта. Перемещение пропорционально изменению значения
счетчика. Расчет перемещения за произвольный промежуток времени выполняют умножением
значения, сосчитанного счетчиком за это время, на коэффициент (дискретность
преобразователя). Счетчик работает в непрерывном режиме.
Данные со счетчика записываются в 24 разрядный буферный регистр данных (Register),
назначение которого – временное хранение информации для дальнейшей загрузки ее в память
компьютера. Регистр может хранить либо текущее перемещение объекта, либо положение
объекта в определенный момент времени в прошлом. В первом случае данные в регистре
обновляются непосредственно пред очередным циклом чтения, а во втором - при
возникновении определенного события. В ЛИР-940P сохранение положения происходит
одновременно с выработкой преобразователем импульса референтной (опорной) метки RI и с
нарастающим фронтом сигнала, поступившего от внешнего устройства.
Следует отметить, что буферный регистр не может запомнить и хранить более одного
значения одновременно. Следовательно, если несколько событий возникает через меньший
промежуток времени, чем требуется для загрузки данных в компьютер, то в регистре данных
сохраниться только одно значение положения, а остальные не вызовут сохранения (далее в
тексте - критическое возникновение событий). Такие события считаются пропущенными.
Обновлением содержимого буферного регистра данных управляет формирователь
сигнала записи регистра данных (Driver). Входы формирователя Driver не равнозначны, а
сигналы, поступающие на них, имеют разный приоритет при их логической обработке. Самый
низкий приоритет имеет сигнал начала цикла чтения «Start transaction», самый высокий –
сигнал, поступающий от внешних устройств (Ext). Сигнал референтной метки «Ri» имеет
средний приоритет. Приоритет определяет, какому из событий, в случае их критического
возникновения, будет соответствовать положение объекта, зафиксированное регистром данных.
Формирователь Driver содержит 8 – разрядный регистр флагов Flag, содержимое
которого отражает факт возникновения событий, факт пропуска событий, и сообщение об
ошибке входных сигналов. С помощью регистра флагов осуществляется контроль данных,
получаемых с канала. Содержимое этих регистров доступно для компьютерной программы.
Назначение бит регистров описано ниже:
0 бит – факт прихода сигнала от внешнего устройства (в регистре данных - положение
объекта в тот момент)
1 бит – потеря данных (положение объекта в момент прихода внешнего сигнала не было
считано программой)
2 бит – факт прихода сигнала референтной (опорной) метки преобразователя RI (в
регистре данных - положение объекта в тот момент)
3 бит - потеря данных (положение объекта в момент прихода сигнала RI не было считано
программой)
4 бит – зарезервирован
5 бит – зарезервирован
6 бит – Ошибка входных сигналов с преобразователя. Недопустимое временное
сближение фронтов сигналов преобразователя (Tmin, см. описание выходных
сигналов для преобразователей ЛИР, тип ПИ www.skbis.ru),
7 бит – зарезервирован
Флаги могут быть сброшены программно. Для этого в регистр записывают значение, в
котором соответствующие биты равны «0». Остальные биты должны быть
равны «1».
Инсталляция в системный блок компьютера и установка
драйверов
При инсталляции платы в компьютер, ее идентификация и настройка происходит
автоматически, в соответствии с технологией Plug And Play. Перед началом работы
необходимо:
Выключить питание компьютера.
Снять крышку с процессорного блока и вставить ЛИР-940P в разъем на материнской
плате.
Включить питание и дождаться, когда система обнаружит новое устройство и выдаст
приглашение на поиск драйверов.
Выбрать опции «поиск наиболее подходящего драйвера», «размещение будет указано».
Указать размещение драйверов для ЛИР-940P, и следовать дальнейшим рекомендациям
системы.
После перезагрузки плата готова к работе.
Чтение данных с платы
Для облегчения доступа к драйверу создана dll библиотека lir940P.dll, предоставляющая
подпрограммы доступа к регистрам платы ЛИР 940P. При желании программист может
подключить ее к любой программе, созданной в среде, поддерживающей использование dll
библиотек. Например, в Delphi 6.0 библиотечная функция Open подключается следующим
образом:
function Open:Boolean;stdcall; external 'lir940P.dll';
в разделе interface.
Ниже приведено описание процедур и функций, входящих в библиотеку lir940P.dll:
function Update_Data(Number:Byte;var Ident:Byte;var StateByte:Byte):DWORD;stdcall;
external 'lir940P.dll'
{
Функция возвращает текущее положение преобразователя
Number - номер канала ( 1-4);
Ident - идентификатор принятых данных
0 - текущее положение
1 - положение в момент прихода события 1 (Внешнего сигнала)
2 - положение в момент прихода события 2 (Референтной метки)
StateByte - возвращает байт содержащий регистр флагов канала
}
function Open:Boolean;stdcall; external 'lir940P.dll';
{
Функция возвращает TRUE если получен доступ к драйверу, в противном случае - FALSE
}
procedure Close;stdcall; external 'lir940P.dll'
{ Процедура закрывает доступ к драйверу
}
procedure ClearError(Number:Byte;ErrNum:Byte);stdcall;
external 'lir940P.dll'
{
Процедура сброса флага ошибки события ErrNum канала Number
ErrNum :
1 - Флаг пропуска внешнего сигнала
2 - Флаг пропуска референтной метки
3- Флаг ошибки входных сигналов (сближения фронтов сигналов А и В).
}
function CheckError(Number:Byte;ErrNum:Byte):Boolean;stdcall;
external 'lir940P.dll'
{ Функция проверки на ошибку события ErrNum канала Number. В случае
ошибки результат - TRUE, в противном случае - FALSE
ErrNum :
1 - Флаг пропуска внешнего сигнала
2 - Флаг пропуска референтной метки
3- Флаг ошибки входных сигналов (сближения фронтов сигналов А и В).
}
Чтение данных происходит 32 разрядными значениями, у которых биты [0..23] отражают
содержимое регистра данных канала [0..23], а биты [24…31] – регистра флагов канала [0…7],
соответственно. Младшие разряды считываемого значения совпадают с младшими разрядами
регистров платы.
Программный алгоритм цикла чтения
При чтении данных с платы существует ряд особенностей, на которые следует обратить
внимание.
С целью уменьшения динамической составляющей ошибки при чтении текущего
положения, фиксация данных в регистрах всех каналов происходит одновременно, в начальный
момент цикла чтения канала X (на протяжении первых 40 нс). При этом дальнейшая перезапись
регистров каналов Y и Z блокируется. Для удобства изложения, обозначим этот момент
времени как t1. В дальнейшем однократный цикл чтения каналов Y и Z не повлечет обновления
данных в регистрах этих каналов. Другими словами, начиная чтение данных с канала X,
пользователь получит информацию о положении и перемещении объекта, которая была
зафиксирована одновременно во всех каналах в момент времени t1.
С другой стороны, не всегда удобно считывать данные подряд со всех каналов. Поэтому,
при повторных циклах чтения каналов Y и Z, блокировка будет сброшена, а обновление
регистров будет происходить автоматически, в начальный момент цикла чтения
соответствующего канала.
Рекомендуемый алгоритм цикла чтения показан на схеме ниже:
Начало цикла чтения канала X
Да
Нет
Проверка
флага
ошибки
сигналов А и Б
(бит 6)
Обработка ошибки,
сброс всех флагов
Чтение данных канала
Да
Обработка пропуска
Нет
Проверка
флага
пропуска
сигнала Ext
(бит 1)
Да
Нет
Обработка пропуска
Проверка
флага
пропуска
сигнала RI
(бит 3)
Да
Нет
Проверка
флага
выработки
сигнала Ext
(бит 0)
Проверка
флага
выработки
сигнала RI
(бит 2)
Нет
Да
Сброс флагов, обработка
координаты референтной метки
Принятые данные - текущее
положение. Обработка данных.
Конец цикла чтения канала X
Сброс флагов, обработка
координаты сигнала от внешних
устройств
Дополнительные возможности
Вместо стандартных каналов, описанных выше, или помимо них, интерфейс ЛИР-940P
может содержать дополнительные модули. Такие интерфейсы считаются интерфейсами
специального исполнения. Приведем краткое описание наиболее распространенных
дополнительных модулей:
а.
Модуль 16 разрядного счетчика
коэффициентом счета
с
программно
изменяющимся
Данный модуль представляет собой 16 разрядный реверсивный счетчик, который
функционирует аналогично счетчику серийного канала. Основная особенность данного модуля
заключается в том, что сигнал при переполнении счетчика является событием, по которому
запоминается значение перемещения (положения) объекта в остальных каналах. При этом
пользователь имеет возможность программно изменять коэффициент (модуль) счета, т.е.
программировать количество счетных импульсов, после которого возникает переполнение.
Подобный блок может быть использован, на пример, в платах специального назначения,
осуществляющих сравнение величины перемещения объекта с перемещением эталона.
б.
Модуль 16 разрядного таймера
коэффициентом счета
с
программно
изменяющимся
Данный модуль функционирует подобно предыдущему, отличаясь от него только тем,
что в качестве входных импульсов счета в модуль поступают сформированные тактовые
импульсы задающего генератора. Модуль выполняет функцию таймера, который может быть
запрограммирован на определенное количество временных интервалов (от 1 до 65536), а
вырабатываемый им сигнал переполнения так же является событием, по которому
запоминается значение перемещения (положения) объекта в остальных каналах.
Специалисты СКБИС
техническому заданию.
могут
разработать
дополнительный
модуль
по
вашему
Распайка соединителей платы
CH1 A
CH1 A
CH1 B
CH1 B
CASE
+
+
-
CH2 RI +
CH2 RI +5v
GND
CH3 A
CH3 A
CH3 B
CH3 B
CASE
+
+
-
CH4 RI +
CH4 RI +5v
GND
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CH1 A+
CH1 ACH1 B+
CH1 BCASE
CH1 RI+
CH1 RI+5v
GND
CH2 RI+
CH2 RI+5v
GND
CH2 A+
CH2 ACH2 B+
CH2 BCASE
CH3 A+
CH3 ACH3 B+
CH3 BCASE
CH3 RI+
CH3 RI+5v
GND
CH4 RI+
CH4 RI+5v
GND
GND
CH4 A+
CH4 ACH4 B+
CH4 BCASE
20
21
22
23
CH1 RI +
CH1 RI +5v
GND
24
25
26
27
28
CH2 A
CH2 A
CH2 B
CH2 B
CASE
29
30
31
32
CH3 RI +
CH3 RI +5v
GND
33
34
35
36
37
CH4 A
CH4 A
CH4 B
CH4 B
CASE
DB37
.
NC
Ext4
Ext3
Ext2
Ext1
-
10
8
6
4
2
EXT5
EXT4
EXT3
EXT2
EXT1
-
BH10
EXT5
EXT4
EXT3
EXT2
EXT1
+
+
+
+
+
9
7
5
3
1
NC
Ext4
Ext3
Ext2
Ext1
+
+
+
+
+
+
-
+
+
-
Принципиальные схемы входных цепей платы
+5В
4,7 к
A,B,Ri,Fault
26LS32
0,01
120
A,B,Ri,Fault
4,7 к
Zap +
100
6N137
300
Zap -
GND
100
КД 551
Download