_WELCOMETO Radioland

Главная Схемы Документация Студентам Программы Поиск Top50  
Поиск по сайту



Навигация
Главная
Схемы
Автоэлектроника
Акустика
Аудио
Измерения
Компьютеры
Питание
Прог. устройства
Радио
Радиошпионаж
Телевидение
Телефония
Цифр. электроника
Другие
Добавить
Документация
Микросхемы
Транзисторы
Прочее
Файлы
Утилиты
Радиолюб. расчеты
Программирование
Другое
Студентам
Рефераты
Курсовые
Дипломы
Информация
Поиск по сайту
Самое популярное
Карта сайта
Обратная связь

Студентам


Студентам > Дипломные работы > Компьютерная Томография

Компьютерная Томография

Страница: 7/10

 

 

Табл. 4.4.

 Предельно допустимые значения параметров и режимов К140УД25А.

 

Параметр

не менее

не более

Напряжение питания, В

±13,5

±16,5

Сопротивление нагрузки, кОм

2

-

Синфазное входное напряжение, В

-

±10

Температура окружающей среды, °С

-10

+70

 

 

4.4 Защита АЦП

     Использование микросхемы АЦП имеет некоторые особенности. Так сигналы на ее входы рекомендуется подавать в следующей последовательности: напряжения питания, сигналы на управляющие входы, входной аналоговый сигнал. Можно подавать вышеуказанные сигналы одновременно. [6] Т.к.  во входной цепи используются ОУ, через которые проходит входной аналоговый сигнал, то проблема уже частично решена. Т.е. входной сигнал на АЦП поступит лишь после появления питания, т.к. для питания АЦП и ОУ используются одни и те же источники питания. Однако, необходимо еще защитить АЦП по входу "Гашение и преобразование". Для этого можно конечно использовать выключатель питания, с дополнительной группой контактов для разрыва этой линии цифрового входа управления. Но это не решает проблему, т.к. возможен выход АЦП из строя при отключении питающих напряжений, т.к. подача на его вход  управляющего цифрового сигнала при этом не прекращается. Такая ситуация может возникнуть, например, если при работающем устройстве, происходит отключение питания симулятора, а на цифровой вход АЦП "Гашение и преобразование" поступает сигнал с ПК. Проблема решается подачей сигнала с ПК на вход АЦП "Гашение и преобразование" через логический вентиль НЕ (микросхема К1533ЛН1). [10] Выбор данной серии обусловлен ее пониженным энергопотреблением, что является существенным, т.к. при больших токах потребления на стабилизаторе напряжения К142ЕН5А будет выделяться большая мощность. Благодаря тому, что микросхема К1533ЛН1 питается от того же источника что и АЦП, при отключении этого источника произойдет и прекращение подачи цифрового сигнала на вход АЦП.

     В результате, можно производить включение и выключение разработанного устройства независимо от включения симулятора и ПК.

 

 

4.5. Проектирование источника питания и устройства индикации

     Согласно техническому заданию, питание проектируемого устройства необходимо осуществлять от источников питания симулятора напряжением ±15 В. Для микросхем АЦП К1113ПВ1 и К1533ЛН1 требуется источник питания напряжением +5 В. Получение данного напряжения будет производится из напряжения +15 В. Для этого используется микросхема стабилизатора напряжения КР142ЕН5А, обеспечивающая выходное напряжение +5±0,1 В. Максимальное входное напряжение микросхемы составляет 15 В, максимальный выходной ток равен 2 А. [11]

     На стабилизаторе напряжения КР142ЕН5А будет падать значительное напряжение равное 10 В. Поэтому необходимо проверить, не превышает ли рассеиваемая данной микросхемой мощность допустимую. Зная, что суммарный ток потребления АЦП и инвертора равен 10+4=14 мА, определим рассеиваемую мощность:

    

      Вт;

 

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

     Для индикации включения питания в устройстве предусмотрен индикатор на светодиоде. В качестве светодиода используется прибор зеленого свечения АЛ336В. Определим номинал токозадающего резистора для светодиода. Можно было бы питать индикатор от +5В, но при этом возрастет рассеиваемая мощность на стабилизаторе напряжения. Поэтому питаться индикатор будет непосредственно от -15 В (выбор положительного источника обусловлен стремлением обеспечить равенство потребления тока от обоих источников питания.  Т.к. падение напряжения на используемом светодиоде составляет 2,8 В, а номинальный ток потребления равен 10 мА, номинал резистора определяется как:

    

      Ом;

 

     Выберем ближайшее значение равное 1200 Ом.

     Мощность, выделяющаяся на данном резисторе определяется как:

 

      Вт.

 

Таким образом мощность резистора должна быть не менее 0,125 Вт. Однако, для обеспечения большей надежности, будет применяться резистор с рассеиваемой мощностью 0,25 Вт.

        Окончательная электрическая принципиальная схема разработанного устройства сопряжения приведена на рис. 4.8.  Перечень элементов к принципиальной схеме приведен в приложении 2.

     Схема электрическая принципиальная представлена согласно

ВЛГУ. 466400.001.Э3.

 

 

Рис. 4.8. Принципиальная схема устройства сопряжения.

5. Разработка программного обеспечения

 

     После преобразования аналогового сигнала в цифровую форму с помощью

АЦП возникает необходимость в программной обработке полученного цифрового сигнала.

     Разрабатываемая программа служит для запуска и остановки программы захвата видеопоследовательности, которую та в свою очередь получает из изображения полученного симулятором. Далее, полученные видеоданные могут быть преобразованы в сведения о внутренней структуре сканируемого объекта (тела человека) с возможностью реконструкции в различных сечениях. Для получения этой возможности необходимо запустить и остановить программу захвата видеопоследовательности при достижении вращающейся гантрией симулятора определенных углов поворота. Это и должна осуществить разрабатываемая программа.

     Исходя из этого можно сформулировать требования к программе. Программное обеспечение должно решать несколько задач:

1. Через определенные моменты времени производить считывание данных, выдаваемых аналого-цифровым преобразователем.

2. Преобразовывать эти данные (10 - разрядное двоичное число) в значение угла поворота гантрии симулятора.

4. В зависимости от угла поворота запускать, а затем останавливать программу, отвечающую за захват видеопоследовательности.

5. Допускать изменение углов начала и конца захвата.

6. Иметь возможность настройки под АЦП.

7. Допускать возможность начальной настройки схемы для полного использования динамического диапазона АЦП.

     Обобщенная схема алгоритма программы представлена в приложении 1.

     Главным требованием к программе является возможность работы в операционной системе Windows, т.к. именно под ней работает программа захвата видеопоследовательности. Кроме того, как будет показано ниже, только с помощью возможностей этой операционной системы  можно достаточно просто осуществить запуск вышеуказанной программы.

     Средой программирования была выбрана система Delphi3. Эта среда

использует язык Object Pascal. Достоинствами Delphi3, повлиявшими на выбор ее как среды программирования являются: тесная интеграция с программированием в среде Windows 95, подход, ориентированный на формы и объекты, сверхбыстрый компилятор и, собственно, сам язык программирования Object Pascal. [12]

 

 

                                5.1 Обмен данными с АЦП

     Программа должна считывать данные, выработанные АЦП через определенные промежутки времени. Приемлемым способом обеспечения этого является опрос АЦП по таймеру. Взаимодействие с АЦП реализуется следующим образом. После приема программой сообщения от таймера, производится проверка готовности данных, получаемых от АЦП, путем проверки его сигнала "Готовность". Он поступает на пятый бит регистра состояния. Поэтому после считывания его значения происходит дальнейшая работа с АЦП лишь при равенстве этого бита единице. Необходимо отметить, что время преобразования АЦП намного меньше частоты его опроса, поэтому, при корректной работе АЦП, когда приходит сообщение от таймера, цикл преобразования АЦП должен быть закончен в любом случае. Поэтому, при обнаружении неготовности данных АЦП, выдается соответствующее диагностическое сообщение сигнализирующее о неисправности. При наличии готовности АЦП, программа производит считывание 8-ми старших разрядов кода из регистра данных и двух младших разрядов из регистра состояния параллельного порта.

     Далее необходимо запустить АЦП на следующий цикл преобразования. Для этого программа устанавливает на втором бите регистра управления (он подключен ко входу АЦП "Гашение и преобразование") значение логической единицы путем записи во второй бит регистра управления нуля (т.к. этот бит является инверсным). Это действие вызывает гашение информации, содержащейся в регистре последовательного приближения АЦП, т.е. он становится готовым к приему и обработке данных. После необходимой задержки программа устанавливает этот бит в единицу, что приводит к появлению на линии "Гашение и преобразование" нуля, - АЦП начинает новый цикл преобразования. 

     Рассчитаем интервал опроса АЦП необходимый для обеспечения заданной точности. Так как гантри совершает полный оборот (360) градусов за 40 секунд, то время t необходимое для прохода 0,5 градуса вычисляется по формуле:

 

     .

 

Из этого следует вывод о необходимости опроса АЦП через каждые 0,05с т.е. интервал таймера устанавливается равным 50 мс. Вообще, как было показано выше, выбранный 10-разрядный АЦП допускает точность до 0,35 градуса. Но,  программно этой, и более высокой точности (при установленной скорости вращения гантрии) добиться не удастся, в связи с системным ограничением минимального интервала таймера, а также из-за задержек прибытия сообщений от таймера. 

 

 

                             5.2 Преобразование  полученных данных

   После обмена данными с АЦП происходит преобразование считанных данных в одно целое число, характеризующее уровень сигнала на входе АЦП. Т.к. АЦП имеет 10 разрядов это число принимает значения от 0 до 1023. Вычисление его происходит по формуле:

 

    

 

где N - искомое число; data - двоичное 8-ми разрядное значение, полученное путем считывания 8-ми старших разрядов кода; data9 - значение девятого разряда кода; data10 - значение десятого разряда кода.

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

 

     .

 

Фактически, в данном случае, инверсия подаваемого сигнала как бы компенсируется операцией инверсии выходного кода, а все остальное в программе работает так же, как если бы входной сигнал не инвертировался.

     Затем необходимо преобразовать полученное число в значение угла поворота гантрии . Этот угол преобразуется в угол , удобный для сравнения с углами запуска и остановки программы захвата видеопоследовательности, которые также после их ввода преобразуются в удобный формат. Это действия осуществляются по следующим формулам.

1. Если :

 

    

   

   

 

2. Если   :

 

    

 

   

   

где:  - определенное при настройке программы значение выходного кода, вырабатываемого АЦП, когда гантрия симулятора находится в положении 0 градусов;   - количество градусов в одном отсчете АЦП (этот параметр также определяется при настройке программы).

5.3 Запуск и остановка управляемой программы

     Полученное по вышеприведенным формулам значение угла  сравнивается с заданными величинами запуска и остановки. Программа обеспечивает запуск сканирования при проходе установленного значения запуска в направлении установленного значения остановки. Например, если угол запуска равен 270 градусам, а угол остановки - 90 градусам, то стартовое сообщение управляемая программа примет при проходе гантрией угла 270 градусов в направлении 260 градусов; а сообщение об остановке будет сгенерировано при проходе угла 90 градусов в направлении к 80 градусам. В других случаях (другое направление вращения гантрии) ничего не произойдет. Для осуществления этих действий необходимо применение эффективного алгоритма, позволяющего производить все необходимые действия за кратчайшее время. Это нужно для сведения к минимуму времени захвата системных ресурсов разрабатываемой программой, с целью минимальных помех программе захватывающей видеопоследовательность.

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

    Программа захвата видеопоследовательности для запуска и остановки захвата выводит окно (см. рис. 5.1).

 

 

   Рис.5.1. Диалоговое окно программы видеобластера.

 

 

     В окне присутствуют две кнопки: "Ok" и "Cancel". При щелчке мышью на кнопке "Ok"  происходит начало захвата видеопоследовательности, остановка захвата происходит при щелчке на кнопке "Cancel". Кроме того щелчок по кнопке "Ok" эквивалентен нажатию клавиши "Enter", а результат щелчка по кнопке "Cancel" соответствует результату при нажатии клавиши "Escape". Из этого следует вывод о единственно возможном решении поставленной задачи: необходимо каким-либо программным способом сэмулировать нажатие кнопок в окне или клавиш на клавиатуре. Кнопки в диалоговом окне возможно нажать лишь путем посылки им сообщений с помощью функции API Windows SendMessage. Эта функция имеет несколько следующие параметры: hWnd - дескриптор окна которому посылается сообщение; Msg - вид посылаемого сообщения, в данном случае он равен wm_KeyDown. [13] Однако применение этой функции представляет затруднения: необходимо определять дескриптор окна, которому посылается сообщение. Более простым и эффективным способом является эмуляция нажатия клавиш на клавиатуре. Единственным способом это сделать является использование слабо документированной функции Windows - keybd_event. Функция имеет четыре параметра: bVk - виртуальный код клавиши, bscan - скан код клавиши, dwFlags - значения, определяющие варианты использования функции, dwExtraInfo - дополнительные данные, ассоциированные с функцией. Эта функция непосредственно вызывается клавиатурным драйвером после нажатия на клавишу, при этом, а также при попытке применить данную функцию без параметров, она считывает необходимые ей данные из стека. При использовании функции в разрабатываемой программе ей передается единственный параметр - виртуальный код клавиши, а остальные параметры обнуляются. Виртуальный код клавиши устанавливается в значение vk_Return, при эмуляции нажатия на Enter, и vk_Escape, при эмуляции нажатия на Escape.

 

    

4.5 Настройка программы.

     Известно, что любые элементы имеют разброс параметров. Поэтому, использование динамического диапазона АЦП может быть неполным или наоборот, может возникнуть перегрузка его аналогового входа. Для регулировки использования динамического диапазона АЦП служит резистор R6 (см. рис. 4.7). Меняя его сопротивление, можно менять максимальное напряжение на входе АЦП, и тем самым изменять коэффициент использования динамического диапазона преобразователя. Необходимость этого возникает при настройке изготовленной схемы. Обычным решением является установка гантрии симулятора в крайнее положение, (соответствующее максимально возможному входному аналоговому сигналу) и достижение напряжения полной шкалы на входе АЦП, путем изменения сопротивления регулировочного резистора с одновременным замером напряжения на входе АЦП. Однако зачем измерять напряжение, когда АЦП по сути уже сам его измерил. Поэтому настройка используемого динамического диапазона АЦП осуществляется анализом его выходного кода. Для этого запустив программу на выполнение необходимо выбрать в странице "Настройки"  пункт "Диапазон АЦП" (см. рис. 5.2) и нажать кнопку настроить.

 

 

     Рис. 5.2 Страница "Настройка" диалогового окна программы.

 

 

 После этого гантри устанавливается в положение 190 градусов (действительно, нет никакой необходимости устанавливать ее в крайнее положение). На экране в это время отобразится коэффициент использования динамического диапазона АЦП в процентах AcpUsed, вычисление которого производится по формуле:

 

 

 Далее, уменьшая сопротивление регулировочного резистора (изначально он должен находится в положении максимального сопротивления) надо добиться использования примерно 99 %  диапазона АЦП. При уменьшении коэффициента использования возможностей АЦП, будет возрастать погрешность определения угла поворота гантрии. Однако, этот коэффициент, хоть он и запоминается программой (исключительно для информации), на процесс определения угла поворота гантрии не влияет, т.к. после настройки использования динамического диапазона, проводится настройка программы.

     Для правильного функционирования программы необходимо настроить ее. Настройка осуществляется путем установки гантрии симулятора последовательно в два заданных положения, с считыванием и запоминанием кода, выдаваемого АЦП в этих положениях. Необходимость данной настройки определяется наличием напряжений сдвига у элементов схемы (операционных усилителей и аналого-цифрового преобразователя). Для уменьшения погрешностей, в качестве положений гантрии выбраны два угла: 170 и 190 градусов, хотя, в принципе это могли быть любые углы. Напрашивающиеся крайние положения в 180 градусов (при повороте гантрии в одну и затем в другую сторону) небыли выбраны исключительно для удобства настройки и исключения неоднозначности, которая могла бы привести к неправильной настройке. Настройка осуществляется следующим образом. Запустив программу, надо выбрать страницу блокнота "Настройки", затем  опцию "170 градусов", и нажать кнопку "Настроить" (рис. 5.2). В это время программа начинает опрос АЦП по таймеру и постоянно отображает на экране код, вырабатываемый АЦП. Теперь необходимо установить гантрию симулятора в положение 170 градусов и нажать кнопку "Готово". Перед тем как сохранить настройку, программа попросит пользователя подтвердить выбор настройки. Выход из процесса настройки без сохранения настроек возможен и при нажатии на кнопку "Отмена". После подтверждения осуществленной настройки, программа сохраняет ее, в виде глобальной переменной. Аналогичным образом происходит процесс настройки в положении гантрии в 190 градусах.

     Как было сказано, произведенные настройки сохраняются, в переменных программы. Собственно в переменных сохраняются значения кода, вырабатываемого АЦП, при углах поворота гантрии 170 и 190 градусов. Эти значения используются для вычисления действительного положения гантрии, выраженного непосредственно в градусах. Выше был показан способ определения положения гантрии, и в формулах фигурировали переменные  и . Их значения определяются исходя из настроек следующим образом:    

 

    

 

    

 

где:  - значение выходного кода, вырабатываемого АЦП, когда гантрия симулятора находится в положении 0 градусов;   - количество градусов в одном отсчете АЦП;  -  код, выработанный АЦП, при положении гантрии 190 градусов.  -  код, выработанный АЦП, при положении гантрии 170 градусов.

     На странице "Дополнительно" окна программы, есть возможность дополнительных настроек (см. рис.5.3). Так программа допускает изменение интервала таймера и выбор адреса используемого параллельного порта. Возможность изменения интервала таймера позволяет, при необходимости, производить корректировку частоты опроса АЦП, для обеспечения нормального совместного функционирования данной программы и программного обеспечения видеобластера. Изменение адреса используемого параллельного порта позволяет подключать аппаратную часть устройства к любому параллельному порту (если на компьютере их несколько).