ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

Инициализация параллельного порта в среде MATLAB

 

Малеев Андрей Владимирович,

старший преподаватель Политехнического института Сибирского федерального университета,

Михайленко Ярослав Витальевич,

аспирант Сибирского федерального университета,

директор по развитию ООО «НэтТелеКом», г. Красноярск.

 

Среда визуального моделирования MATLAB хорошо зарекомендовала себя благодаря высокой эффективности вычислений и визуализации результатов. Для MATLAB и пакетов расширений доступны тысячи технических изданий и методических пособий, однако большинство литературы описывает систему команд и не указывает применение пакета в конкретных технических задачах. Почти невозможно найти описание сопряжения MATLAB и периферийных портов компьютера, посредством которых возможно управление внешними устройствами.

В рамках данной статьи рассмотрено применение MATLAB для управления внешними устройствами посредством параллельного порта. Параллельный порт (LPT) изначально предназначен для сопряжения с печатающими устройствами, но, тем не менее, может быть использован для управления и контроля за сравнительно простыми механизмами или устройствами (шаговые двигатели, световые табло, дискретное коммутирование внешней нагрузки и т.п.). Появление современных высокоскоростных портов ввода-вывода, например USB, незаслуженно отодвинуло параллельный порт на последние позиции. Тем не менее, возможностей LPT порта, в рамках прикладных задач, вполне достаточно, а подключение внешних устройств через простые «буферные» элементы практически напрямую к порту значительно снижает стоимостные показатели системы управления. Востребованность LPT порта подтверждается также наличием последнего даже в некоторых моделях ультрасовременных материнских плат.

Для инициализация параллельного порта в среде MATLAB, изначально в системе ввода-вывода BIOS, необходимо задать двунаправленный режим работы ввода-вывода LPT порта. Необходима также установка оригинальных драйверов материнской платы. После этого необходимо в «диспетчере устройств» убедиться в наличии паралельного порта (рисунок 1) и в «параметрах порта» назначить исполнение любых прерываний портом (рисунок 2). После этого потребуется перезагрузка компьютера. Если эти условия выполнены, возможно управление паралельным портом из MATLAB в любой операционной системе. Следует отметить, что с помощью MATLAB возможно управление только «оригинальным» LPT портом, внешние LPT порты подключаемые через USB инициализированы не будут.

 

Рис. 1. Наличие LPT порта в диспетчере устройств.

 

Рис. 2. Назначение прерываний для параллельного порта.

 

Для управления паралельным портом в MATLAB достаточно нескольких простых последовательно записанных команд, описанных далее:

daqhwinfo('parallel') - возвращает структурную составляющюю адаптера, указанного в кавычках, в данном случае паралельного порта;

dio = digitalio('parallel', 'lpt1') – инициирует переменную dio с устройством ввода-вывода паралельного порта, после ввода этой команды будет указанно количество подпортов паралельного порта и их статус;

addline(dio, 0:7, 'out') – указывает число линий вывода (в данном случае - вывод, если необходимо вводить информацию через порт обозначаем ввод данных через 'in', если необходимо вводить и выводить информацию, можно перечислить несколько вводных и выводных линий порта, например аddline(dio,0:7,{'in','in','in','in','out','out','out','out'});

bvdata = logical([1 1 1 0 1 0 0 1]) – с помощью переменной bvdata обозначим двоичное слово для паралельного порта;

putvalue(dio,bvdata) – после выполнения данного оператора, на параллельном порте инициализируется двоичное слово определенное переменной bvdata;

portval = getvalue(dio) – оператор getvalue позволяет считать содержимое LPT порта и записать его в переменную portval.

После выполнения указанных выше операторов в рабочей области MATLAB появится следующая информация:

 
AdaptorDllName:'C:\Program Files\MATLAB1\R2006a\toolbox\daq\daq\private\mwparallel.dll'
            AdaptorDllVersion: '2.8.1 (R2006a)'
            AdaptorName: 'parallel'
            BoardNames: {'PC Parallel Port Hardware'}
            InstalledBoardIds: {'LPT1'}
            ObjectConstructorName: {'' '' 'digitalio('parallel','LPT1')'}
Display Summary of DigitalIO (DIO) Object Using 'PC Parallel Port Hardware'.
 
            Port Parameters: Port 0 is port configurable for reading and writing.
Port 1 is port configurable for reading.
Port 2 is port configurable for reading and writing.
            Engine status: Engine not required.
 
DIO object contains no lines.
Index: LineName: HwLine: Port: Direction: 
1 'Pin2' 0 0 'Out' 
2 'Pin3' 1 0 'Out' 
3 'Pin4' 2 0 'Out' 
4 'Pin5' 3 0 'Out' 
5 'Pin6' 4 0 'Out' 
6 'Pin7' 5 0 'Out' 
7 'Pin8' 6 0 'Out' 
8 'Pin9' 7 0 'Out' 
 
bvdata = 1 1 1 0 1 0 0 1
portval = 1 1 1 0 1 0 0 1

 

Для выдачи на паралельный порт новой коомбинации, достаточно только изменить значение переменной bvdata и отпавить значение последней с помощью оператора putvalue. При использовании современного компьютера (Pentium IV или более мощный) возможно организовать до нескольких десятков тысячь обращений к паралельному порту в секунду.

 

Вывод

 

При необходимости организации управления внешними, сравнительно простыми, устройствами возможно применение параллельного порта персонального компьютера. Параллельный порт может быть легко инициализирован с помощью среды MATLAB в любой операционной системе. Скорость опроса параллельного порта достаточно высока, что позволяет управлять внешними объектами практически в реальном времени.

 

Поступила в редакцию 14.02.2011 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.