Содержание.
Введение
1. Обоснование разработки
2. Анализ технического задания и разработка структурной схемы
3. Выбор способа ввода цифрового сигнала в компьютер
3.1 Особенности параллельного порта
3.2 Программирование порта
4. Разработка принципиальной схемы устройства
4.1. Выбор аналого-цифрового преобразователя
4.2 Ограничение уровня входного аналогового сигнала
4.3 Преобразование аналогового сигнала
4.4 Защита АЦП
4.5 Обеспечение источника питания и устройства индикации
5. Разработка программного обеспечения
5.1 Обмен данными с АЦП
5.2 Преобразование полученных данных
5.3 Запуск и остановка управляемой программы
5.5 Настройка программы
5.6 Использование программы
6. Конструкторский раздел
6.1. Расчет надежности
6.2. Разработка конструкции
7. Рекомендации по организации рабочего места врача топометриста.
8. Экономика.
Заключение.
Приложения.
Литература.
Введение
В настоящее время в медицинских исследованиях широко используются
компьютерные томографы. С их помощью можно получить поперечное компьютерно-
томографическое изображение. Это изображение имеет целый ряд преимуществ,
включая возможность его реконструкции в нужной проекции, а также высокую
способность к передаче низкоконтрастных объектов, которая у компьютерных
томографов значительно выше , чем у других методов построения
рентгеновского изображения. Недостатком компьютерных томографов является их
дороговизна. Однако, существует возможность получения реконструируемого
изображения аналогичного компьютерно-томографическому с помощью
рентгеновского симулятора для планирования лучевой терапии, который имеет
некоторые сходства с томографом (вращающиеся вокруг тела пациента источник
и приемник рентгеновского излучения). Рентгеновские симуляторы находят
применение в лечебных учреждениях, занимающихся лечением онкозаболеваний.
Для использования симулятора как томографа необходимо при вращении
излучателя и приемника (находящихся на противоположных сторонах гантри)
вокруг объекта, непрерывно записывать получаемое изображение память ЭВМ.
Далее с ее помощью, путем применения специальных алгоритмов можно получить
изображение аналогичное тому, которое получают с помощью компьютерных
томографов. Здесь встает задача запуска и остановки программного
обеспечения, захватывающего видеопоследовательность при достижении гантри
симулятора определенных углов поворота. Решение этой задачи и является
целью данной работы.
1. Обоснование разработки
Рентгеновский симулятор - это аппарат для определения величины и положения (ориентации и удаления от излучателя) области облучения, а также маркирования этой области на теле пациента при планировании лучевой терапии, проводимой далее на мощных аппаратах с использованием радиоизотопов и ускорителей частиц. Симулятор также средство контроля изменений очага заболевания в результате облучений. На основании данных этого контроля врач принимает решение об изменении параметров облучения при дальнейшем лечении.
Важность создания и применения симуляторов обусловлена большой мощностью излучения при лучевой терапии и необходимостью весьма точно направлять его поток на очаг заболевания для достижения максимального лечебного эффекта при минимальном воздействии на здоровые ткани и органы.
Симулятор по своим электрическим и радиационным параметрам аналогичен диагностическим аппаратам. Однако по конструкции и параметрам своих штативных устройств он в соответствии с назначением имеет большое сходство с установками для лучевой терапии.
Все симуляторы построены по одной схеме. Мощный рентгеновский
излучатель и усилитель рентгеновского изображения закреплены на
противоположных концах П-образной дуги, которая может совершать круговое
движение относительно горизонтальной оси, закрепленной в напольной станине.
[1]
Напротив штатива излучателя и устройства регистрации изображения (УРИ) установлен стол с плавающей декой которая располагается в промежутке между излучателем и УРИ. Благодаря повороту дуги, поступательным движениям деки стола и поворотам станины стола пучок излучения может быть направлен под произвольным углом в любую точку тела пациента, лежащего на столе.
Каретки, несущие на себе излучатель и УРИ, могут совершать независимые поступательные движения в плоскости дуги перпендикулярно оси вращения последней. При подобном поперечном перемещении излучателя изменяется фокусное расстояние. Это перемещение позволяет согласовывать установки симулятора с геометрическими параметрами различных терапевтических аппаратов. В свою очередь, перемещение УРИ приводит к изменению формата изображения рентгеноскопии. Используя это движение УРИ при повороте П- образного плеча, можно поддерживать одно и то же расстояние от УРИ до стола. При совместном движении излучателя и УРИ меняется масштаб изображения.
Излучатель снабжен глубинной диафрагмой, маркером поля облучения и
световым дальномером. В состав маркера входят световой проектор и
молибденовые нити, образующие координатную сетку, видимую в рентгеновском
излучении и проецируемую световым проектором на тело пациента.
Рентгеновское и световое изображения сетки совпадают в пространстве.
Перемещая шторки диафрагмы при помощи электродвигателей, можно
устанавливать величину поля облучения тела пациента по размерам
рентгеновского изображения очага заболевания. Угловое положение поля в
зависимости от ориентации очага задают поворотом глубинной диафрагмы и
маркера относительно центрального луча.
Прямые и обратные повороты несущей дуги и глубинной диафрагмы с
маркером, прямые и обратные перемещения излучателя, УРИ и шторок глубинной
диафрагмы задаются нажатием соответствующих клавиш на пульте управления.
Выбранное движение прекращается при освобождении нажатой клавиши. После
прекращения движения на шкалах, расположенных на пульте управления, а также
на П-образном плече, корпусе диафрагмы и опоре стола можно прочитать
числовые значения угловых и линейных координат, определяющих величину,
положение поля облучения и ее удаленность от излучателя.
В составе симуляторов используют мощные автономные рентгеновские питающие устройства. Выбор оптимального положения пациента относительно излучателя, ориентации и размеров области облучения для последующего лечения осуществляют во время рентгеноскопии с использованием УРИ и телевизионного экрана. Соответствующее этим условиям изображение с координатной сеткой фиксируют на крупноформатной рентгеновской пленке, находящейся в автоматической кассете под столом пациента. После выключения рентгеновского излучения включают световой маркер и обводят карандашом спроецированные на тело пациента линии координатной сетки.
Полученные при помощи симулятора числовые данные, рентгенограммы и маркировка на теле пациента служат основой для точного планирования лучевой терапии.
Симулятор SLS фирмы Philips позволяет точно определять место локализации опухоли в теле пациента. Этот симулятор предназначен для проведения радиографии, рентгеноскопии, телетерапии. Симулятор включает в себя: стол для пациента, гантри - П-образную дугу с закрепленными на ее противоположных концах рентгеновском излучателе и приемнике изображения, пульт управления, мониторы для наблюдения за исследованиями. Обобщенная схема основных узлов симулятора SLS показана на рис 1.1. В качестве приемника рентгеновского изображения в симуляторе используется рентгеновский электронно-оптический преобразователь (РЭОП). Он представляет из себя электровакуумный прибор, внутри которого входной экран преобразует рентгеновское изображение в видимое с дальнейшим усилением его яркости электронно-оптической системой. В РЭОПе рентгеновский экран находится в оптическом контакте с фотокатодом внутри вакуумной колбы. В нем происходит тройное преобразование изображения:
Рис. 1.1. Симулятор SLS-9 фирмы PHILIPS Владимирского областного онкодиспансера.
1. рентгеновское изображение преобразуется в световое входным
люминесцентным экраном, размещенным в вакуумной колбе;
2. световое изображение через тонкую прозрачную перегородку переносится на
фотокатод, где оно преобразуется в электронное;
3. после ускорения в электрическом поле и электростатической фокусировки
электродами 5 электроны образуют сфокусированное уменьшенное изображение в
плоскости катодолюминесцентного экрана, где вновь возникает световое
изображение. Далее изображение фиксируется видеокамерой и выдается на
монитор.
Как известно, с помощью компьютерной томографии (КТ) можно вычленить
плоское сечение тела; при этом рентгеновское излучение проходит сквозь это
сечение лишь в тех направлениях, которые лежат внутри него и параллельны
этому сечению. Никакая часть тела, расположенная вне данного сечения, не
взаимодействует с рентгеновским пучком, и тем самым снимается проблема,
характерная для обычной рентгенографии, проблема наложения паразитных
изображений от различных глубин. [2]
Рентгеновское изображение, получаемое с помощью компьютерной томографии, представляет собой изображение некоторого среза (толщиной обычно в несколько миллиметров).
Компьютерные томографы создают цифровое изображение путем измерения интенсивности рентгеновских лучей, прошедших через тело во время вращения рентгеновской трубки вокруг пациента. Коэффициент поглощения веерного пучка рентгеновских лучей в объекте измеряется с помощью набора из нескольких сот до нескольких тысяч рентгеновских детекторов (обычно твердокристаллических). Детекторы собирают информацию в каждой из проекций, которая затем оцифровывается и анализируется компьютером. На основе полученных данных компьютер реконструирует поперечное компьютерно- томографическое изображение. Это изображение имеет целый ряд преимуществ, включая возможность его реконструкции в нужной проекции, а также высокую способность к передаче низкоконтрастных объектов, которая у компьютерных томографов значительно выше , чем у других методов построения рентгеновского изображения.
Полученные с помощью компьютерной томографии снимки отображают анатомическую структуру объекта в данном сечении с пространственным разрешением около 1 мм и разрешением по плотности лучше 1%.
Задача отыскания распределения физической величины (например,
коэффициента линейного ослабления) g(x) была в общем виде решена И. Радоном
в 1917 г.
Рис. 1.2 К определению смысла переменных, используемых в формулах (1.1) и
(1.2). Пояснения в тексте.
Рис. 1.2 поясняет результаты инверсии Радона в двумерном случае. Пусть
L — луч, пересекающий объект, s — измеряемое вдоль него расстояние, О —
начало системы координат, ( — угол между базисной линией ОМ, лежащей в
выбранной плоскости, и перпендикуляром, опущенным из О на L, р — кратчайшее
расстояние от О до L, n — орт, определяемый тем же углом (. В этих
обозначениях можно записать
(1.1) где двумерный вектор r, повернутый относительно ОМ на угол (, характеризует положение на плоскости той точки, в которой отыскивается распределение g по проекциям f(p,n). Как показано Радоном ,
(1.2)
В настоящее время разработано большое количество эффективных алгоритмов, позволяющих на быстродействующих компьютерах получать томограммы по проекциям f(p,n) и реализованных на коммерческих компьютерных томографах.
Известны системы томографии четырех конструктивных разновидностей,
поколений. Они отличаются друг от друга характером движения устройства
«излучатель — детекторы» при сканировании, видом пучка излучения, типом и
числом детекторов. Основная цель совершенствования сканирующих систем —
уменьшение времени исследования и увеличение информационных параметров.
Принципы сканирования в системах четырех поколений показаны на рис. 1.3.
В системах первого поколения (рис. 1.3 а) осуществляется быстрое поступательное движение устройства «излучатель — детекторы» относительно объекта и затем — шаговое вращательное движение на 180° с шагом 1°. Объект сканируется одиночным коллимированным лучом. Полный цикл сканирования двух смежных слоев составляет 3 — 5 мин. Томографы данной разновидности в настоящее время не выпускают.
В системах второго поколения (рис. 1.3 б) устройство «излучатекь —
детекторы» совершает те же движения. Однако для ускорения исследования
сканирование осуществляется расходящимся пучком, состоящим в среднем из
пятнадцати коллимированных лучей. Вращательное движение осуществляется на
180° с шагом 10—15°. Цикл сканирования составляет 20 — 40 с. На этом
принципе построено большинство нейродиагностических томографов.
Рис. 1.3. Принципы сканирования в томографических системах четырех
поколений
Недостатки систем первых двух поколений: 1) значительная длительность сканирования, которая служит причиной возникновения динамических искажений при исследовании движущихся органов тела; 2) наличие погрешностей, связанных с двумя видами движения сканирующего устройства и возрастающих при эксплуатации аппаратуры.
В системах третьего поколения (рис. 1.3 в) сканирование объекта
осуществляется пучком веерообразной формы, полностью перекрывающим объект,
в результате исключается поперечное поступательное движение устройства
«излучатель — детекторы», которое совершает только непрерывное вращение
вокруг объекта на 180°. Излучатель работает в импульсном режиме, а
излучение за объектом измеряется большим числом (250—500) малоинерционных
детекторов. Длительность импульсов 1 — 5 мс, цикл сканирования одного слоя
не превышает 5 с.
Системы четвертого поколения (рис. 1.3 г) отличаются от систем третьего использованием еще большего числа (500—1000) неподвижных детекторов, расставленных по окружности, и непрерывного излучения, также полностью охватывающего объект. Длительность цикла сканирования уменьшается до 2,5 с.
В системах первых двух поколений большое время сканирования стремятся использовать для машинной обработки информации. С этой целью применяются методы восстановления изображений, позволяющие начинать вычисления сразу же после поступления массива чисел, относящихся к данному положению сканирующего устройства.
В системах третьего и четвертого поколений, имеющих малое время сканирования, на восстановление изображения затрачивается дополнительное время (от нескольких секунд до 1,5— 2 мин).
К основным недостатком компьютерных томографов можно отнести их дороговизну. Однако, существует возможность получения реконструируемого изображения, аналогичного компьютерной томограмме, с помощью рентгеновского симулятора SLS-9, предназначенного для планирования лучевой терапии, который имеет некоторые сходства с томографом (вращающиеся на общем маятнике - гантри вокруг тела пациента источник и приемник рентгеновского излучения). Т.е. в принципе существует возможность использовать например более дешевый и распространенный симулятор в качестве томографа. Необходимо только запомнить ряд изображений, получаемых при сканировании объекта вращающимися вокруг него источником и приемником рентгеновского изображения. Такая возможность действительно существует. Рентгеновское изображение, прошедшее через пациента, преобразуется в видеосигнал и непрерывно отображается на мониторе. Затем с помощью персонального компьютера и установленной на нем видео плате видеосигнал захватывается, и с определенными параметрами (такими как частота кадров) записывается в память.
Рентгеновские симуляторы находят применение в лечебных учреждениях онкологического профиля. Для использования симулятора как томографа необходимо при вращении излучателя и приемника (усилителя рентгеновского изображения) вокруг объекта, непрерывно записывать получаемый видеоряд изображений в ТВ- формате в память ЭВМ. Далее, путем применения специальных алгоритмов можно получить томограммы, аналогичные тем, которое получают с помощью обычных компьютерных томографов.
К недостаткам подобного метода можно отнести следующие:
- низкая скорость движения гантри (время прохода 180( составляет 20 с);
- малая угловая апертура рентгеновского пучка (около 20(), что требует
применения специально разработанной методики многоцентровой съемки или
ограничения области применения патологиями головы и шеи;
- отсутствие программно - аппаратных средств управления запуском и
остановкой съемки с помощью платы видеоввода.
Как видно из приведенных данных, реализация режима компьютерной томографии на симуляторе позволяет получить аппарат, аналогичный томографам второго поколения.
Если первые две проблемы невозможно решить простыми средствами, то третью - синхронизацию съемки - можно. Решение этой задачи и является целью данной работы.
Рентгеновский симулятор - это аппарат для определения величины и положения (ориентации и удаления от излучателя) области патологии, а также маркирования этой области на теле пациента при планировании лучевой терапии, проводимой далее на мощных аппаратах с использованием радиоизотопов и ускорителей частиц. Симулятор также является средством контроля изменений очага заболевания в результате облучений. На основании данных этого контроля врач принимает решение об изменении параметров облучения при дальнейшем лечении.
Рентгеновское излучение, прошедшее через пациента, преобразуется с помощью усилителя рентгеновского изображения в видеосигнал и непрерывно отображается на мониторе. Затем с помощью персонального компьютера и установленной на нем платы видеобластера видеосигнал захватывается, и с определенными параметрами (такими как частота и формат кадров) записывается в память. После этого записанное изображение преобразуется по специальным алгоритмам для получения томограмм.
Однако, в этой системе имеется существует недостаток. Симулятор изначально не предназначен для работы в режиме компьютерным томографом, а программное обеспечение видеобластера не предназначено для взаимодействия с симулятором. По этой причине оператору приходится вручную активизировать и останавливать программу захвата видеопоследовательности, когда гантри симулятора достигает определенного угла. Это приводит к заметной погрешности отработки стартового и стопового угла (порядка 10 – 15 (), что негативно сказывается на качестве получаемых томограмм.
Задачей данного дипломного проекта является разработка программно- аппаратного комплекса для отслеживания положения гантри симулятора и активизации и остановки программы, захватывающей видеопоследовательность, при достижении определенных углов. Причем необходимо предусмотреть возможность изменения углов начала и конца захвата видеопоследовательности.
2. Анализ технического задания и разработка структурной схемы.
Существует несколько вариантов реализации требуемого устройства.
Например можно задачу отслеживания положения гантрии возложить на
аппаратное обеспечение. Но при таком варианте становится затруднительным
построение достаточно гибкой системы, допускающей вариации параметров
начала и конца записи видеосигнала и других параметров, кроме того эта
схема получится слишком сложной и дорогой. Другой путь состоит в возложении
обязанностей обработки сигнала на компьютер, а аппаратное обеспечение
должно лишь преобразовать сигнал в форму, удобную для использования ЭВМ,
т.е. в цифровую форму. Не использовать возможности компьютера в данной
ситуации для обработки информации о положении гантри симулятора было бы
большой ошибкой. Во-первых компьютер уже используется для захвата
видеосигнала, т.е. нет необходимости его покупать. Во-вторых осуществить
цифровую обработку с помощью ЭВМ гораздо проще и дешевле (при условии, что
ЭВМ есть) чем при использовании схемных решений. В-третьих в любом случае
придется производить сопряжение с компьютером т.к. по другому
активизировать программу для захвата видеопоследовательности не
представляется возможным.
Преобразование аналогового сигнала с датчика положения гантри
(переменного резистора) в цифровой будет осуществляться с помощью аналого-
цифрового преобразователя (АЦП). Для этого сигнал, поступающий от датчика,
сначала необходимо преобразовать в вид пригодный для использования аналого-
цифровым преобразователем. После оцифровки сигнала с помощью АЦП, сигнал
вводится в компьютер, где происходит его обработка. Управление аналого-
цифровым преобразователем осуществляется сигналами от компьютера.
Необходимыми узлами разрабатываемой схемы должны являться
преобразователь аналогового сигнала для подгонки его уровня под требования
АЦП, а также ограничитель уровня для предотвращения превышения допустимого
уровня сигнала на входе АЦП.
Кроме этого необходимо предусмотреть схемы защиты АЦП (как правило микросхемы АЦП требуют определенного порядка подачи сигналов на входы).
Как сказано в техническом задании, питание устройства необходимо
осуществлять от источника питания симулятора, используя напряжения (15 В.
Как будет показано ниже, не все компоненты могут работать от такого
источника, поэтому необходимо получить требуемые питающие напряжения из
существующих.
Исходя из вышеизложенного следует следующая структурная схема аппаратной части разрабатываемого устройства, представленная на рис 2.1.
Рис. 2.1 Структурная схема аппаратной части разрабатываемого устройства.
3. Выбор способа ввода цифрового сигнала в компьютер.
Существует несколько способов передачи цифрового сигнала от внешнего устройства в компьютер: через последовательный порт, через параллельный порт, через слот на материнской плате (ISA или PCI интерфейс), через GAME - порт. [3]
Последовательный порт предназначен для последовательной передачи в
компьютер - в каждый момент последовательный порт может принимать один
бит информации. Максимальная скорость передачи информации составляет 115
кБод. Доступ к последовательному порту COM1 осуществляется через порты 3F8-
3FF. Назначение портов следующее:
3F8 - регистр данных, также управляет скоростью передачи данных.
3F9 - старший байт командного регистра, управляет разрешением аппаратных
прерываний
3FA - старший байт командного регистра, управляет аппаратными
прерываниями, формируемыми последовательным портом.
3FB - регистр управления линией.
3FC - регистр управления модемом.
3FD - регистр статуса линии.
3FE - регистр статуса модема.
3FF - регистр доступа к "Stretch Pad"
Недостатками последовательного порта являются: необходимость инициализации
порта перед его использованием, установка обработчиков аппаратных
прерываний для синхронной работы с внешним устройством, сложность
организации интерфейса с внешним устройством, связанное с последовательной
передачей данных с определенной скоростью.
Ввод данных через слот на материнской плате является наиболее быстрым.
Однако применение этого способа целесообразно лишь для устройств
предъявляющих повышенные требования к скорости передачи информации.
Создание устройства, вставляемого в слот весьма затруднительно, т.к.
требует полной поддержки этим устройством интерфейсов ISA и PCI. Кроме
того, несмотря на повышенные возможности, возрастает и сложность
программного обеспечения.
Работа с портом джойстика является наиболее простым способом, но,
естественно обладает и меньшими возможностями. Обмен данными с
GAME - портом осуществляется через порт с адресом 201. Через младшие 4
бита данного порта осуществляется чтение данных с внешнего устройства, 4
старших бита представляют собой триггеры, которые могут быть в одном из
двух состояний - "включен/выключен". Видно, что возможностей этого
интерфейса явно не хватает для решения поставленной задачи.
Наиболее приемлемым представляется организация обмена данными через параллельный порт (интерфейс Centronics). Этот способ благодаря простоте сопряжения и удобству программирования широко используется для подключения к компьютеру нестандартных внешних устройств. Особенности параллельного порта описаны ниже.
3.1. Особенности параллельного порта.
Основным достоинством интерфейса Centronics является его стандартность
- он есть на каждом компьютере и на всех компьютерах работает одинакового
(правда с разной скоростью). Для подключения внешнего устройства к
параллельному порту не требуется открывать системный блок компьютера, что
для многих пользователей может стать проблемой. Надо только подсоединить
кабель к разъему на его задней стенке.
Можно также отметить такое достоинство параллельного порта, как простота его программирования на любом уровне. В большинстве языков программирования имеются процедуры взаимодействия в принтером, которые легко использовать и для программирования нестандартного устройства. А так как с точки зрения программирования параллельный порт представляет собой три программно доступных регистра, не вызывает затруднений и написание программ нижнего уровня. Итак данный интерфейс можно рекомендовать в первую очередь для сопряжения с компьютером относительно несложных устройств без предъявления жестких требований по скорости информационного обмена и длине линии связи.
Однако выбор разработчиком именно этого интерфейса для связи своего устройства с компьютером должен быть осознанным и учитывать ряд ограничений.
Во-первых, возможности реализации различных протоколов информационного
обмена с устройством через параллельный порт невелики. Действительно
небольшое количество сигнальный линий интерфейса и возможности его
программирования не позволяют реализовать обмен по прерываниям или прямой
доступ к памяти. Практически приходится ограничиваться программно-
управляемым обменом. Кроме того, так как интерфейс параллельного порта
является программно-управляемым, скорость информационного обмена не может
быть особенно велика и оказывается напрямую связанной с быстродействием
компьютера. Поэтому не имеет смысла сопряжение через параллельный порт
устройств, требующих обработки или передачи информации в реальном масштабе
времени, таких как устройства ввода изображения, звуковые системы и т.д.
Кроме того, зависимость скорости информационного обмена от быстродействия
компьютера делает практически нереализуемыми без специальных ухищрений
быстродействующие протоколы связи. Еще одной особенностью интерфейса
является отсутствие на его разъеме шин питания (есть только "земля"). Это
означает, что сопрягаемое устройство должно использовать внешний источник
питания. Вообще говоря на взгляд авторов, в ряде случаев это не только не
является недостатком интерфейса но скорее его достоинством. Нет искушения
использовать питание от компьютера, что может привести к выходу его из
строя.
В 99% компьютеров имеется только один параллельный порт к которому
должен подключаться принтер. Но и это ограничение часто не является
существенным. Во-первых, многие компьютеры, ориентированные на работу с
внешней аппаратурой прекрасно обходятся без принтера. Во-вторых, имеется
масса простых и дешевых устройств (коммутаторов) для подключения к одному
параллельному порту двух устройств.
Интерфейс и, соответственно, параллельный порт персонального компьютера
ориентированы на подключение принтера. Подтверждением этому является и
название сигналов интерфейса - AUTO FD - автоматический перевод бумаги,
PE - конец бумаги и т.д. Однако при разработке нестандартных устройств
для подключения к параллельному порту его сигналы могут быть использованы
произвольно. Все сигналы интерфейса можно разделить на четыре группы:
1 - восьмиразрядная шина данных для чтения и записи (сигналы
D0...D7);
2 - четырехразрядная шина управления для записи из компьютера
(сигналы -STROBE, -AUTO FD, -INIT, и SLCT IN);
3 - пятиразрядная шина состояния для чтения в компьютер (сигналы -ASC,
BUSY, PE, SLCT и -ERROR);
4 - шина "земли".
Все сигналы программно доступны, что позволяет реализовать произвольные протоколы информационного обмена в рамках имеющегося их набора и быстродействия компьютера.
Ранее, на компьютерах моделей до Pentium мог быть установлен
однонаправленный параллельный интерфейс. Т.е. шина данных являлась
однонаправленной, что позволяло использовать ее только на вывод, для ввода
данных необходимо было использовать сигналы из пятиразрядной шины
состояния. В этом случае разрядность информационного обмена по чтению
ограничена пятью линиями. В современных компьютерах устанавливается
универсальный параллельный интерфейс, т.е. в начальных установках системы
имеется опция позволяющая использовать параллельный порт как в
однонаправленном (режим совместимости), так и в двунаправленном
(расширенном) режиме. Это существенно увеличивает возможности параллельного
порта. [4]
Параллельный порт имеет три адреса в пространстве устройств ввода-
вывода компьютера: BASE - регистр данных BASE+1 - регистр состояния
BASE+2 - регистр управления Здесь "BASE"- первый адрес порта. В
компьютере может быть до трех параллельных портов - LPT1...LPT3. Таблица
базовых адресов портов находится в области данных BIOS, начиная с ячейки
408h: LPT1 - 0:408, LPT2 - 0:40A, LPT3 - 0:40C. Если порт не установлен, то
в соответствующей ячейке записан 0.
BIOS поддерживает до 3-х параллельных портов, которые определяются на этапе
начального тестирования компьютера программой POST
(Power-ON-Self-Test). Номера портов и шестнадцатеричные адреса регистров
приведены в таблице 3.1.
Табл. 3.1.
Адресация регистров параллельных портов.
| Параллельный | Регистр | Регистр | Регистр |
| |данных |состояния |управления |
|порт | | | |
| 1 | 3BCh | 3BDh | 3BEh |
| 2 | 378h | 379h | 37Ah |
| 3 | 278h | 279h | 27Ah |
При обнаружении соответствующего порта BIOS записывает адрес его регистра данных, начиная с адреса 0:408h, и присваивает ему имя LPTn (n может принимать значения от 1 до 3).
Вообще говоря, BIOS понимает также и имя LPT4, т.е. может работать с 4- мя параллельными портами, однако, для этого программист должен сам позаботиться о том, чтобы соответствующий адрес регистра данных был записан в определенную для LPT4 область - по адресу 0:410h.
Рассмотрим подробнее регистры параллельного порта.
Как было сказано выше, параллельный порт состоит из трех регистров: регистр данных, регистр состояния и регистр управления.
Регистр данных параллельного порта представляет собой 8-ми разрядный регистр, доступный по чтению и записи и предназначен для записи и чтения данных длиной в байт. В режиме совместимости запись данных приводит к их немедленной передаче в линию. Передача данных в двунаправленном режиме несколько сложнее и управляется путем записи бита направления в регистр управления. Только при выполнении записи (бит направления равен 0) байт передается в линию, в противном случае запись значения в регистр производится, но в линию байт не передается. Операция чтения регистра данных приводит к чтению последнего записанного значения в режиме совместимости и при передаче в двунаправленном режиме. При выполнении чтения при приеме (бит направления равен 1) в двунаправленном режиме из регистра считывается значение линии, т. е. принимаемого байта. Формат регистра приведен на рис 3.1.
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Рис. 3.1 Формат регистра данных параллельного порта.
Биты D7-D0 определяют значения передаваемого или считываемого байта информации. Битам регистра назначены соответственно разъемы от 9 до 2 в стандартном 25-ти штырьковом разъеме.
Данный регистр используется как в режиме совместимости, так и в расширенном режиме.
В режиме совместимости запись в регистр некоторого значения приводит к его немедленной передаче в линию. Операция считывания из регистра приводит к считыванию самого последнего записанного значения.
Для двунаправленного параллельного порта в расширенном режиме операция
записи в регистр приводит к передаче значения в линию только, если в
регистре управления бит DB=0, т.е. установлен режим записи. В противном
случае происходит только сохранение записанного байта. Чтение из регистра
данных также управляется значением бита DB в регистре управления. Если DB=0
(установлен режим записи), то считывается последнее записанное значение.
Если DB=1 (режим чтения),
то считывается значение из линии.
Регистр состояния параллельного порта представляет собой 8-ти разрядный регистр, доступный только по чтению. Он служит для получения информации о работе устройства. Считываемое из регистра значение позволяет определить уровень сигнала на некоторых линиях, управляемых подключенным устройством. На рис.3.2 приведен формат регистра. Состояния и описаны значения битов регистра описаны ниже.
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BUSY | ASC | PE | SEL | ERR | IRQS | резерв |
Рис. 3.2 Формат регистра состояния параллельного порта.
BUSY определяет инвертированное состояние линии занято: 0 - устройство
занято; 1 - устройство свободно;
Сигнал "занято" может формироваться из-за ошибки, а также в том случае,
когда принтер отключен или отсутствует.
ASC показывает инвертированное состояние готовности к приему очередного байта: 0 - устройство готово к приему; 1 - устройство не готово к приему;
PE показывает текущий сигнал от принтера о состоянии бумаги. Бит
устанавливается в 1, когда принтер вырабатывает сигнал конец бумаги (Paper
End).
SEL указывает текущее состояние сигнала выборка (Select) и устанавливается в 1, когда устройство было выбрана.
ERR задает инвертированное состояние ошибки в устройстве. Бит устанавливается в 0 при выработке принтером сигнала ошибки(Error).
IQRS принимает значение 0, когда устройство подтвердило прием
предыдущего байта информации сигналом подтверждения (ASCnowlege). Значение
данного бита имеет смысл только для двунаправленного параллельного порта.
Режим подтверждения устройством приема символа и выработки прерывания
управляется битом IRQE управляющего порта. Обычно, прерывание от устройства
LPT1 поступает на IRQ5, а от LPT2 - на IRQ7.
Регистр управления параллельного порта представляет собой 8-ми
разрядный регистр, доступный по чтению и записи и используется для задания
режимов работы контроллера параллельного порта, а также для передачи в
линию ряда управляющих сигналов для устройства Контроллер может
вырабатывать прерывание для процессора при получении от устройства
подтверждения о приеме символа. Такая возможность управляется 4 битом
регистра управления. Более подробно регистры контроллера описаны далее
Формат регистра управления описывается ниже (рис. 3.3).
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| резерв | DIR | IRQE | SELIN | INIT | AFD | STRB |
Рис. 3.3 Формат регистра управления параллельного порта.
DIR используется для задания типа операции при работе в расширенном режиме (или направления передачи данных): 0 - операция записи; 1 - операция чтения. Этот бит имеет смысл только для двунаправленного параллельного порта.
RQE управляет прерыванием. Когда бит равен 1, параллельный порт посылает прерывание при выработке сигнала ASC со стороны устройства.
SELIN управляет состоянием сигнала выборки устройства (Select In).
Когда бит установлен в 1, устройство считается выбранным. Данной линии
соответствует разъем 17.
INIT управляет инвертированным состоянием сигнала инициализации устройства (Init). При этом установка нулевого значения бита означает инициализацию принтера.
AFD управляет состоянием сигнала автоматический прогон строки(Automatic Feed XT). Когда бит установлен в 1, принтер после печати каждой строки будет автоматически переходить на новую строку.
STRB управляет синхронной передачей данных в устройство. Когда он принимает значение 1, передаваемые данные могут считываться с линий данных.
3.2 Программирование параллельного порта.
Программирование подключенной к параллельному порту аппаратуры заключается в установке определенных битов в регистрах данных и управления и чтении определенных битов из регистра состояния. При этом если с регистром данных проблем не возникает (это обычный байтовый регистр), то два других регистра имеют некоторые особенности Во-первых, некоторые биты являются инверсными. При записи в регистр управления нуля в этих битах устанавливаются единицы, а если на входах регистра состояния установлены нули, то их этих битов считываются единицы