Плата интерфейса ЛИР-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