close

Вход

Забыли?

вход по аккаунту

?

Daleckiy Pokrovskiy

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
А. А. Далецкий, Ю. П. Покровский
СИСТЕМЫ
С БИОЛОГИЧЕСКОЙ ОБРАТНОЙ СВЯЗЬЮ
Учебное пособие
Санкт-Петербург
2014
УДК 615.47(075.8)
ББК 32.818я73
Д15
Рецензенты:
кандидат технических наук Б. В. Злобин;
кандидат технических наук А. С. Василевский
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Далецкий, А. А.
Д15 Системы с биологической обратной связью: учеб. пособие /
А. А. Далецкий, Ю. П. Покровский. – СПб.: ГУАП, 2014. – 43 с.
ISBN 978-5-8088-0990-1
Содержатся основные сведения о построении систем с биологической обратной связью. Рассмотрены конкретные схемы и программы.
Издание предназначено для студентов, изучающих дисциплину
«Биотехнические системы медицинского назначения» по направлению 201000.62Ф – «Биотехнические системы и технологии».
УДК 615.47(075.8)
ББК 32.818я73
ISBN 978-5-8088-0990-1
© Далецкий А. А., Покровский Ю. П., 2014
  © Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2014
ВВЕДЕНИЕ
Здравоохранение является важнейшим социальным институтом во всем мире, во многом определяющим уровень жизни населения, и мерой развития общества в целом.
Сохранение здоровья – очень сложная комплексная задача, которую решают большое количество социальных институтов, работающих в политической, экономической, правовой, медицинской
и научных сферах. Важнейшей научной задачей в этой области
является создание новых и развитие известных способов выявления, предупреждения и лечения заболеваний человека. Большую
помощь в ее решении оказывают технические средства, отображающие в той или иной степени различные физиологические процессы, протекающие в организме человека, путем регистрации и обработки параметров сигналов его физиологической активности.
Одновременная регистрация сигналов от разных систем организма
и их совместный анализ позволяют получить комплексную оценку
состояния организма человека, выявить существующие нарушения, скрытые закономерности и т. п.
Сегодня одним из перспективных направлений развития медицины является метод биологической обратной связи (БОС). Биологическая обратная связь – методика, позволяющая людям наблюдать и контролировать параметры своего тела с помощью систем
их объективной регистрации. Пациенту посредством внешней
цепи обратной связи, организованной преимущественно с помощью микропроцессорной или компьютерной техники, предъявляется информация о состоянии и изменении тех или иных собственных физиологических процессов. Метод биологической обратной
связи – это передача человеку дополнительной, не предусмотренной природой информации о состоянии его органов и систем в доступной и наглядной форме. На основе этой информации человек
способен включать механизмы саморегуляции и целенаправленно
использовать огромные функциональные возможности организма
с целью совершенствования его функций.
Метод биологической обратной связи широко используется
в пульмонологии, геронтологии, педиатрии, кардиологии и т. д.
Данное пособие посвящено методам использования биологической обратной связи. В частности приводится подробное описание
аппаратно-программного комплекса системы стабилизации частоты
сердечных сокращений с биологической обратной связью, реализованной при помощи подключения к процессу регулирования зрения.
3
1. ОБЩАЯ ИНФОРМАЦИЯ О МЕТОДЕ БОС
1.1. История метода БОС
Метод биологической обратной связи как самостоятельное направление в медицине возник в 60–70-е годы ХХ века. Это стало
возможным на основании работ в области физиологии, которые
проводились как в России (СССР), так и в других странах.
Принцип биологической обратной связи возник на основании
исследований механизмов регуляции физиологических процессов,
механизмов развитии патологических процессов, а также на основании изучения адаптивных систем человеческого мозга [1].
В данной сфере стоит отметить вклад русских физиологов
И. П. Павлова и И. М. Сеченова с их исследованием условных рефлексов и регулирующей роли коры головного мозга, что позволило
зародиться понятию биологической обратной связи (БОС). Это научное направление появилось в самом начале XX века в Институте
экспериментальной медицины (Санкт-Петербург).
В середине ХХ века идейными продолжателями исследований
И. М. Сеченова и И. П. Павлова стали К. М. Быков (теория кортико-висцеральных связей), П. К. Анохин (теория функциональных систем), Н. П. Бехтерева (теория устойчивых патологических
­состояний).
Норберт Винер определил биологическую обратную связь как
способ регулирования на основе непрерывного поступления новой
информации о функционировании системы.
В основе метода биологической обратной связи лежит следующий ряд идей и научных открытий, таких как:
работы Н. Миллера по выработке у животных висцеральных
­условных рефлексов оперантного типа;
данные о повышении порогов судорожной готовности после
­условно рефлекторного усиления сенсомоторного ритма в центральной извилине коры головного мозга как животных, так и человека;
открытие Дж. Камия о способности испытуемых произвольно
изменять параметры своей электроэнцефалограммы (ЭЭГ) при наличии обратной связи об их текущих значениях.
В числе предпосылок развития БОС-технологий специалисты
рассматривают следующие факторы.
Во-первых, развитие научно-технических средств, позволяющих производить регистрацию, обработку и математический ана4
лиз физиологических сигналов в режиме реального времени с небольшими задержками.
Во-вторых, настороженное отношение медицинских работников к применению фармакологических препаратов. В случаях,
когда симптомы не поддаются фармакологическому контролю или
побочные действия применяемых лекарств неприемлемы по жизненным показаниям, тогда такие неинвазивные, немедикаментозные и безопасные методы, какими являются БОС-процедуры, становятся здоровой альтернативой.
В-третьих, это рост цен на фармацевтическую продукцию,
и к тому же относительно невысокая эффективность применения лекарственных препаратов при лечении многих заболеваний.
Главной целью терапии с использованием метода биологической
обратной связи является восстановление нормальной деятельности регуляторных систем организма, что приводит к устранению
патологических симптомов и улучшению качества жизни [2].
На сегодняшний день метод биологической обратной связи уже
активно используется в таких областях медицины, как:
кардиология;
пульмонология;
геронтология;
педиатрия;
коррекция психоэмоционального состояния пациента;
офтальмологии.
В настоящее время выпуском приборов с БОС занимаются как
зарубежные, так и отечественные фирмы. Распространение в России метода БОС, интерес врачей, социальных работников, педагогов из различных регионов к этой методике стали причиной создания в 1996 году Российской ассоциации биологической обратной
связи. Ассоциация издает научную и научно-популярную литературу, посвященную методу БОС, проводит общероссийские форумы «Здоровье России и биологическая обратная связь».
Масштабность применения технологии БОС в России, интерес
специалистов в области здравоохранения, образования и социальной работы, поток положительных отзывов выдвигают биологическую обратную связь в ранг национальной идеи сохранения
и укрепления здоровья России [1].
1.2. Существующие системы, работающие по методу БОС
В настоящее время уже созданы и успешно эксплуатируются
следующие системы с биологической обратной связью.
5
Комплексная система БОС «Кинезис»
«Кинезис» – это современная система психофизиологического тренинга и коррекции разнообразных функциональных расстройств при широком спектре заболеваний нервной, опорно-двигательной и сердечно-сосудистой систем организма, а также при
психоэмоциональных расстройствах.
Комплекс БОС позволяет провести:
1) психоэмоциональную коррекцию на основе регистрации и анализа биопотенциалов мозга;
2) тренинг опорно-двигательного аппарата и мышечной активности на основе регистрации и анализа электромиограммы;
3) коррекцию психовегетативного состояния на основе статистического расчета параметров частоты сердечных сокращений (ЧСС).
Данный метод коррекции, лечения и тренировки наиболее эффективен и целесообразен при различных паралитических состояниях вследствие поражений центральной нервной системы, последствиях инсультов, тяжелых черепно-мозговых травмах, при
реабилитации последствий травм и поражений периферических
нервных стволов. Имеет большое значение в комплексной коррекции нарушений осанки и заболеваний мышц спины и позвоночника. БОС-тренинг в ЭЭГ и ЭКГ-модальностях является наиболее
точным физиологически отражением психовегетативных нарушений и применяется в лечении проблем, связанных с вегето-сосудистой дистонией. Особая роль отводится методу БОС в коррекции
психоэмоциональных расстройств вследствие неврозов и последствий стрессовых аффективных состояний. Внешний вид системы
«Кинезис» показан на рис. 1.1 [3].
Рис. 1.1. Система «Кинезис»
6
Реабилитационная система «Tutor»
Концепция лечения, предложенная компанией MediTouch (Израиль), реализована в реабилитационной системе «Tutor», где помимо обратной биологической связи предусматриваются активные
повторяющиеся упражнения.
Реабилитационная система состоит из четырех эргономичных
аппаратов HandTutor – специально разработанная перчатка с датчиками положения и скорости, в точности регистрирующими движения пальцев и запястья, которая позволяет активно вовлечь пациента в процесс реабилитации. Внешний вид HandTutor показан
на рис. 1.2.
ArmTutor – фиксатор для локтя с датчиками положения
и скорости, которые в точности регистрируют пространственные
3D-движения плеча – локтя. На рис. 1.3 показан внешний вид
ArmTutor.
LegTutor – фиксатор для колена с датчиками положения
и скорости, которые в точности регистрируют пространственные
3D-движения бедра – колена. LegTutor дает возможность дифференцировать опору на различные зоны стопы (пятку, носок), улучшая биомеханику шага.
3D-Tutor можно устанавливать на отдельных суставах, голове,
корпусе, верхних и нижних конечностях. При тренировке равновесия можно задавать угол отклонения корпуса в отличие от тренировок на стабилоплатформе, что дает возможность дозирования нагрузки. С помощью 3D-Tutor возможна тренировка позвоночника.
Рис. 1.2. Внешний вид
HandTutor
Рис. 1.3. Внешний вид ArmTutor
7
Функциональные возможности:
1) компактность тренажеров позволяет их легко перемещать,
а беспроводная связь через bluetooth тренажера 3D с компьютером
не ограничивает движение пациента;
2) упражнения могут выполняться из различных исходных положений и во всех возможных направлениях движений в суставе;
3) тренажеры помогают проанализировать состояние пациента
и подобрать эффективный комплекс упражнений, направленных
на восстановление утраченных функций верхних и нижних конечностей;
4) тренажеры позволяют выполнять движение в заданном направлении; таким образом, при тренировке нагружаются определенные группы мышц [4].
Реабилитационный комплекс «Амблиотрон»
Общий вид аппаратного комплекса «Амблиотрон» показан на
рис. 1.4.
Технология, реализуемая прибором «Амблиотрон», называется
когнитивной модуляцией остроты зрения или, как ее часто называют, видео-компьютерный аутотренинг.
При использовании VIACOM-технологии реализуется классическая схема выработки
инструментального
условного
рефлекса. В качестве условного компонента выступают естественные (спонтанные)
колебания уровня возбудимости нейронов
зрительной коры мозга, которые выявляются с помощью математического анализа
электроэнцефалограммы (ЭЭГ) пациента.
Эти колебания возбудимости не являются
ни осознаваемыми, ни значимыми для организма и представляют собой проявление
эндогенных процессов функционирования
нейронов зрительной коры мозга в виде
непериодических медленных волн с постоянной времени 10–20 секунд. На рис. 1.5
показан типичный пример регистрации
Рис. 1.4. Внешний вид
ЭЭГ в затылочном отведении у пациента
реабилитационного
с амблиопией (верхний график). В нижней
комплекса «Амблиочасти рисунка показаны колебания возбутрон»
8
Рис. 1.5. Типичный пример регистрации
ЭЭГ в затылочном отведении у пациента
димости нейронов зрительной коры, выявленные с помощью математического анализа ЭЭГ.
Задача метода VIACOM при лечении пациентов с амблиопией
состоит в том, чтобы увеличить уровень возбуждения нейронов
зрительной коры. Это достигается тем, что ранее незначимый эндогенный физиологический процесс, а именно колебания уровня
возбуждения в зрительной коре, сделать «актуальным». Для этого
производится ассоциации нейтрального физиологического процесса
с безусловным мотивирующим стимулом. Здесь безусловным мотивационным стимулом является возможность просмотра интересного
видеофильма или запрет просмотра. С помощью данной технологии
осуществляется ассоциация между условным компонентом – фазой
повышенной возбудимости нейронов и безусловным положительно
мотивирующим стимулом – возможностью просмотра видеофильма.
В ходе тренинга производятся многочисленные повторения
этих ассоциированных стимулов (сотни – в каждом сеансе и тысячи – за курс лечения). В результате такой условно-рефлекторной
процедуры, ранее нейтральные проявления деятельности нейронов зрительной коры мозга, становятся связанными с мотивационным (значимым) стимулом. Следствием этого является инициация
процессов формирования новой системы рефлекторных связей,
главным свойством которой является более высокий уровень активности нейронов [5].
Биоуправляемая аэроионотерапия
Аэроионотерапия (АИТ) – лечебное применение аэроионов воздушной среды – легких отрицательно заряженных молекул газов
9
воздуха. Одним из основных механизмов действия АИТ является
активация антиоксидантной системы, осуществляемая опосредованно через первоначальную индукцию свободнорадикальных
процессов. Это обусловливает дозовую зависимость лечебного эффекта и приоритетную значимость дозы АИТ, воспринятой больным за время процедуры. С получением новых знаний о механизмах действия АИТ и появлением технических возможностей
параметры АИТ опираются на определение индивидуальной дозы
АИТ, поглощенных тканями пациента. Поглощенная доза определяется ­путем измерения токов, которые протекают через тело
человека при взаимодействии его с полем объемного заряда ионов воздуха. Учет поглощенной дозы АИТ является основой для
дозированной биоуправляемой АИТ, являющейся современным
стандартом АИТ. Современные требования к методу АИТ были заложены в основу разработки нового устройства для ионотерапии –
аппарата «АИДт-Аэровион», с помощью которого можно задавать
направленный поток АИТ (за счет полевого взаимодействия пациента с ионизатором) определенной плотности и контролировать
назначенную дозу АИТ (поглощенную дозу). Полученные технические возможности позволили применять АИТ с заданными и контролируемыми параметрами действующего фактора и реализовать
­способ дозированной биоуправляемой АИТ.
Блок управления аппарата управляет процессом генерации
­аэроионов в блоке пациента и подсчитывает полученную им дозу.
Аппарат автоматически прекращает лечебный сеанс по достижении заданной дозы [6].
10
2. АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ СТАБИЛИЗАЦИЯ ЧСС ПРИ ИСПОЛЬЗОВАНИИ БОС
Пульс человека – это толчкообразные колебания стенок сосудов, вызванные движением крови, выбрасываемой сердцем. Ритмично выбрасываемая в аорту левым желудочком кровь создает
колебания внутри артериального русла и приводит к эластичному
растяжению и спаданию стенок сосудов. Свойства пульса определяются его частотой, напряжением, наполнением и ритмом.
Частота пульса в норме колеблется от 60 до 80 ударов в минуту, но
может варьировать в широких пределах в зависимости от возраста,
пола, температуры тела и окружающей среды, а также физического напряжения. В возрасте от 25 до 50 лет пульс остается стабильным. У женщин он чаще, чем у мужчин. Чем интенсивнее мышечная работа, тем чаще пульс.
Напряжение пульса определяется силой, которую нужно применить при надавливании на стенки артерий, чтобы прекратить
пульсацию. По степени напряжения пульса можно приблизительно судить о величине максимального давления: оно тем выше, чем
напряженнее пульс.
Наполнение пульса определяется количеством крови, образующей пульсовую волну, и зависит от систолического объема сердца.
При хорошем наполнении пульса можно нащупать пальцами высокую пульсовую волну, а при плохом, слабом пульсе, когда пульсовые волны малы, они плохо различимы. Едва ощутимый пульс
называется нитевидным.
Понятие ритма пульса (частоты сердечных сокращений) тесно
связано с понятием пульсовой волны. Пульсовая волна (волна давления) распространяется в артериях со скоростью 500–1000 см/с и возникает в аорте в момент выталкивания крови из левого желудочка.
В норме пульсовые волны следуют друг за другом через равные промежутки времени. У здорового человека пульс ритмичный. Ритм
определяется деятельностью сердца. У лиц с заболеваниями сердца правильный ритм нарушается, и это называется аритмией [7].
За последние десятилетия представления о роли и значимости
частоты сердечных сокращений в клинической практике существенно изменились. Известные данные о линейной зависимости
между ЧСС и уровнем потребления кислорода миокардом, изменении минутного объема крови в зависимости от ЧСС и т. п. стремительно дополняются новой ­информацией о влиянии частоты
сердечного ритма на продолжительность жизни, увеличение риска
атеросклероза, инфаркта миокарда, артериальной гипертензии,
11
Длительность RR-интервалов, мс
1200
1000
800
600
400
200
начальный нагруз- восстановление
период
ЧСС
ка
Рис. 2.1. Типичный вид интервалограммы
сердечно-сосудистых заболеваний и смертности. Регулируя частоту сердечных сокращений, сердце контролирует энергетические
потребности всего тела через систему кровообращения [8].
Таким образом, изучение параметров частоты сердечных сокращений представляется важной задачей для современной медицины. Одной из характеристик, отражающих параметры работы
сердечной мышцы, является интервалограмма. Интервалограмма – это зависимость времени между соседними ударами сердца от
формального номера этого удара. Типичный вид интервалограммы
изображен на рис. 2.1.
Как известно, анализ интервалограммы человека позволяет получить важную информацию о состоянии его здоровья [9]. Кроме
того, использование интервалограммы ЧСС при построении медицинской системы с БОС является актуальной и перспективной областью науки.
Аппаратно-программный комплекс для системы стабилизации
частоты сердечных сокращений с биологической обратной связью
должен соответствовать следующим требованиям:
1) система должна производить регистрацию ударов сердца, замер временного интервала между этими ударами;
2) измеренные интервалы должны быть переданы на ПЭВМ для
дальнейшей компьютерной обработки;
3) задача компьютерной обработки состоит в вычисление статистических характеристик полученных данных;
4) измеряемый процесс должен отображаться в режиме реального времени на мониторе ПЭВМ для возможности применния БОС.
Система стабилизации частоты сердечных сокращений с биологической обратной связью состоит из нескольких основных бло12
Пациент
ПЭВМ
ОД
ИП
УС
MATLAB
Интервалограмма
Рис. 2.2. Структурная схема системы
Ф1
Ф1
1
2
Ф2
1
ОД
Рис. 2.3. Принцип работы
оптического датчика
ков: оптический датчик, устройство сопряжения, интерфейсная
плата и ПЭВМ. Структурная схема системы показана на рис. 2.2.
Оптический датчик
Оптический датчик состоит из одного фотодиода и трех светодиодов и крепится на палец пациенту. Во время удара сердца происходит расширение стенок сосудов, что приводит к модуляции
оптического сигнала, проходящего через них, по амплитуде, что
регистрируется фотодиодом. Рис. 2.3 поясняет работу датчика.
На рисунке: 1 – светодиоды; 2 – фотодиод; Ф1 – световой поток от
светодиода; Ф2 – отраженный от пальца световой поток.
Устройство сопряжения
После оптического датчика сигнал попадает на устройство сопряжения. Устройство сопряжения выполняет функцию согласования сигнала с выхода оптического датчика с входом интерфейсной платы и является необходимым связующим звеном системы.
Его принципиальная электрическая схема изображена на рис. 2.4.
13
14
R2
VD2
R1
VD1
C1
R4
R3
R5
R6
R7
4
DA1
C2
R9
C3
C4
R11
R10
2 8
3 7
4
DA2
R12
R13
C6
C5
R15
R14
2 8
3 7
4
DA3
R16
1
C7
Рис. 2.4. Электрическая схема устройства сопряжения
2 8
3 7
R8
7
DD1
14
2
1
2
3
R17
8
DD2
16
4
13
14
C8
15
0
Q
Q
R18
На рисунке: VD1, VD2 – свето- и фотодиоды. DA1, DA2, DA3 –
операционный усилитель КР140УД1208; DD1 – триггер Шмидта
К155ТЛ2; DD2 – одновибратор К155АГ3.
Cигнал с оптического датчика подается на устройство сопряжения, где усиливается каскадами операционных усилителей. Далее
через триггер Шмидта сигнал поступает на одновибратор для формирования импульса. В результате на каждый удар сердца устройство сопряжение откликается нормализованным импульсом заданной амплитуды и длительности.
Рассмотрим подробнее элементы устройства сопряжения.
Операционный усилитель КР140УД1208
В качестве операционных усилителей в системе используются микросхемы КР140УД1208. Полупроводниковая интегральная микросхема КР(КФ)140УД1208 представляет собой микромощный операционный усилитель с регулируемым потреблением
мощности и предназначена для построения активных фильтров,
интеграторов и других типов решающих усилителей. Данная микросхема доступна в двух корпусах DIP8 и SO8. В данной системе
используются микросхемы в корпусе DIP8. Внешний вид микросхемы показан на рис. 2.5. Описание выводов – в табл. 2.1 [12].
0
8
5
1
4
5
10 мм
Рис. 2.5. Внешний вид микросхемы
КР140УД1208
15
Таблица 2.1
Таблица назначения выводов
Вывод
Назначение
1
2
3
4
5
6
7
8
Балансировка
Вход инвертирующий
Вход неинвертирующий
Напряжение питания минус Ucc
Балансировка
Выход
Напряжение питания Ucc
Задающий вход
Триггер Шмидта К155ТЛ2
Триггер Шмидта выполнен на базе микросхемы К155ТЛ2.
Микросхема К155ТЛ2 (7414) представляет собой шесть триггеров Шмидта с инверсией выходного сигнала. Корпус микросхемы К155ТЛ2 типа 201.14-1. У каждого инвертора микросхемы
К155ТЛ2, переключательная характеристика идентична показанной на рис. 2.6. Для микросхемы К155ТЛ2 быстродействие переключения логических констант не превышает 22 нс [13].
Одновибратор К155АГ3
Одновибратор в схеме выполнен на базе микросхемы К155АГ3.
Микросхемы К155АГ3, КМ155АГ3 (74123) – два ждущих мультивибратора с возможностью перезапуска. Каждый мультивибратор
Uвых , В
А
2
UГ = 800 мВ
1
0
Б
Е
3
Д
0,4
Uотл
1,2
Uсрб
Г
В
2,0
Uвх, В
Рис. 2.6. Переключательная характеристика К155ТЛ2
16
–, вход сброса R (активный уровень – низкий)
имеет выходы Q и Q
и два входа запуска В – прямой с активным высоким уровнем и А –
инверсный с активным низким уровнем. Электрические параметры К155АГ3 указаны в табл. 2.2 [14].
Цифровая интерфейсная плата
Интерфейсная плата выполняет функцию измерения временного интервала между ударами сердца, то есть между импульсами, вырабатываемыми устройством сопряжения и осуществляет
Таблица 2.2
Электрические параметры К155Г3
Наименование параметра
Номинальное напряжение питания
Значение
5В±5%
Выходное напряжение низкого уровня
≤ 0,4 В
Выходное напряжение высокого уровня
≥ 2,4 В
Входной ток низкого уровня:
по информационным входам 1, 2, 9, 10
по входам установки нуля 3, 11
≤ –1,6 мА
≤ 3,2 мА
Входной ток высокого уровня:
по информационным входам 1, 2, 9, 10
по входам установки нуля 3, 11
≤ 0,04 мА
≤ 0,08 мА
Входной пробивной ток
Ток короткого замыкания
Ток потребления
Потребляемая мощность
≤ 1 мА
–10…–40 мА
≤ 66 мА
≤ 346,5 мВт
Время задержки распространения при включении:
по входам 1, 9
по входам 2, 10
по входам 3, 11
≤ 40 нс
≤ 36 нс
≤ 27 нс
Время задержки распространения при выключении:
по входам 1, 9
по входам 2, 10
по входам 3, 11
≤ 33 нс
≤ 28 нс
≤ 40 нс
Максимальная длительность импульса на выходе
Cвн = 0
Максимальная длительность импульса на выходе
Cвн = 1000 пФ
Емкость нагрузки
≤ 65 нс
2,76…3,37 мкс
≤ 200 пФ
17
ОД
УС
СС1010
INT
RS232
FT232RL
USB
ПОРТ
Рис. 2.7. Структурная схема интерфейсной платы
передачу полученных данных на ПЭВМ. Структурная схема интерфейсной платы показана на рис. 2.7.
Интерфейсная плата состоит из двух основных блоков, а также периферийных элементов, обеспечивающих работоспособность
интерфейсной платы в целом. Основными блоками интерфейсной
платы являются микропроцессор CC1010 фирмы Chipcon и микросхема FT232RL производства компании FTDI. Рассмотрим подробнее эти элементы.
Микроконтроллер Chipcon CC1010
CC1010 – ультрамаломощный однокристальный FSK-трансивер
с низким напряжением питания, производительным 8051-ядром
микроконтроллера и широким набором периферии. В основном
ориентированный для применения в ISM и SRD стандартных частотных диапазонах 315, 433, 868 и 915 МГц трансивер может
быть легко перестроен для работы на любой частоте в широком диапазоне частот 300–1000 МГц.
CC1010 базируется на CMOS-технологии SmartRF02 с нормами
0,35 мкм. Совместно с несколькими внешними пассивными компонентами образует мощную и экономичную встраиваемую систему с возможностями беспроводной передачи данных [10].
Используемый микроконтроллер является 8051-совместимым
со следующими особенностями:
в 2,5 раза производительнее стандартного 8051-микроконтроллера;
32 КБ Flash-памяти (20 000 циклов записи/стирания), 2048 +
+ 128 байт SRAM-памяти;
3-канальный 10-разрядный ADC (23 тыс. выборок/с),четыре
таймера /два ШИМ-контроллера, два UART, часы реального вре18
мени (RTC), сторожевой таймер (WDT), SPI-интерфейс, DESшифрование, двадцать шесть I/O-выводов общего назначения;
экономичные режимы ожидания и «сна».
Общие характеристики:
диапазон напряжения питания 2,7–3,6 В;
температурный диапазон –40– +85 °C;
корпус TQFP-64.
Микросхема FT232RL FTDI
Микросхема FTDI FT232R (FT232RL и FT232RQ) является высокоинтегрированным переходником USB – RS232, позволяющая,
используя минимум внешних компонентов (разъем и пассивные
компоненты), организовать последовательный обмен данными
между внешним устройством на микроконтроллере и компьютером через шину USB. По сравнению с предыдущими версиями
­микросхемы у FT232R на кристалл интегрированы тактовый генератор, энергонезависимая память EEPROM, часть внешних пассивных компонентов. Микросхема может работать в режиме последовательного обмена и в режиме bit-bang [11].
Характеристики и особенности микросхемы FT232RL:
одночиповый переходник из USB в асинхронный последовательный интерфейс передачи данных (UART);
протокол USB полностью реализован в микросхеме;
интерфейс UART поддерживает режимы передачи 7 и 8 бит данных, 1 и 2 стоповых бита, различные режимы контроля четности;
поддержка управления потоком данных программного X-On /
X-Off и аппаратного;
скорости передачи от 300 бод до 3 мегабод для RS422 / RS485 /
TTL и от 300 бод до 1 мегабод для RS-232;
бесплатные VCP (виртуальный COM-порт) и D2XX (DLL) драйвера для разработчиков;
буферы FIFO на прием и передачу для высокоскоростной передачи данных;
встроенная энергонезависимая память EEPROM объемом
1024 байт;
поддержка режимов питания от шины, от шины с большим потреблением и от внешнего источника;
встроенный стабилизатор на 3,3 В с нагрузочной способностью
до 50 мА;
совместимость с USB 2.0 Full Speed;
19
исполнение RoHS-совместимое в корпусах 28 SSOP и QFN-32.
Микросхемы поставляются с запрограммированной EEPROM. Общее описание работы интерфейсной платы
Нормализованные импульсы с устройства сопряжения подаются на вход прерываний микроконтроллера CC1010, тем самым запуская встроенный в микроконтроллер счетчик. Вход прерываний
срабатывает по переднему фронту импульсов. Таким образом осуществляется измерение временных интервалов между последовательными входными импульсами. Далее полученная информация
(измеренный временной интервал) передается через порт RS232
на интерфейсную микросхему FT232RL, которая играет роль преобразователя интерфейсов между CC1010 и USB-портом ПЭВМ.
Дальнейшая обработка сигнала производится программным образом в ПЭВМ.
Подробное описание программной части устройства приведено
в разд. 3.
20
3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ УСТРОЙСТВА
3.1. Выбор среды программирования
На современном этапе развития цифровой техники разработка
программного обеспечения для микроконтроллеров производится
на языках высокого уровня. В данной сфере широкое распространение получил язык программирования С. Существующие ныне
компиляторы обладают широкими функциональными возможностями и высокой эффективностью, вследствие чего машинный
код, написанный на языках высокого уровня зачастую не уступает
созданным на ассемблере, более того создание программного обеспечения на языках высокого уровня требует меньше времени от
разработчика для достижения одного и того же результата.
Вследствие того, что ядром микроконтроллера является чип,
построенный по архитектуре 8051, то для разработки программного обеспечения целесообразно выбрать среду проектирования
Keil uVision 4. Данная среда поддерживает работу со многими
контроллерами выбранной серии, удобным интерфейсом, а также
большим количеством полезных возможностей, упрощающих процесс отладки написанной программы (например, эмулятор, мастер
сценариев, поиск критических мест и т. д.) [15].
3.2. Диаграмма состояний микроконтроллера
В процессе работы микроконтроллер выполняет ряд следующих
типовых задач.
1. Измерение интервалов времени между внешними прерываниями.
Основная задача, которую выполняет микроконтроллер в данной системе, – это измерение интервалов между импульсами,
приходящими от устройства сопряжения, то есть между ударами
сердца. Для этой цели удобно использовать внешние прерывания
микроконтроллера, таким образом измерение интервалов между
ударами сердца сводится к измерению интервалов между внешними прерываниями микроконтроллера.
2. Обработка прерываний таймера.
Для измерения интервалов времени используется встроенный
в микроконтроллер таймер. Таймер работает в 16-битном режиме,
то есть он в состоянии досчитать до 65 536. Так как микроконтроллер работает на частоте 14,7456 МГц, а таймер считает с частотой,
21
меньшей в 12 раз, то переполнение таймера произойдет за 0,05 с.
Однако для корректной работы системы необходима возможность
измерения более длительных интервалов времени. При переполнении таймера происходит прерывание обрабатывания, которое помогает существенно расширить диапазон измеряемых интервалов
времени.
3. Передача данных по последовательному порту.
Вследствие того, что основная обработка данных производится
на ПЭВМ, необходимо передавать данные об измеренных интервалах времени через последовательный порт.
Выполняемые микроконтроллером задачи могут быть сведены
в диаграмму (рис. 3.1). Описания условий перехода е1–е6 сведены
в табл. 3.1.
e4
Прерывание
таймера
e3
e2
«Холостой цикл»
Прерывание
внешнего
порта
e1
e5
Прерывание
последовательного
порта
e6
Рис. 3.1. Граф состояний микроконтроллера
Таблица 3.1
Условия переходов микроконтроллера
Обозначение
условия
22
Описание условия
e1
Прерывание внешнего порта
e2
Конец программы обработки внешнего прерывания
e3
Прерывание таймера
e4
Конец программы обработки прерывания таймера
e5
Прерывание последовательного порта
e6
Конец программы обработки прерывания
последовательного порта
3.3. Инициализация микроконтроллера
Настройка последовательных портов
Передача сообщений через последовательный порт осуществляется в следующем режиме:
скорость передачи данных 4800 бит/с;
один старт-бит;
один стоп-бит;
проверка на четность отсутствует.
В микроконтроллере Chipcon CC1010 доступны два последовательных порта (UART0 и UART1). В данной системе используется
только последовательный порт UART0. За настройку последовательного порта UART0 отвечает регистр SCON0. Назначение битов
регистра SCON0 приведено в табл. 3.2.
Таблица 3.2
Назначение битов регистра SCON0
Номер Название
бита
бита
Описание
7
SM0_0 Настройка режима работы порта
6
SM1_0 SM0 SM1 Режим
0
0
0
Синхронный полудуплекс
0
1
1
Асинхронный полный дуплекс
(старт-бит, стоп-бит, 8 битов данных)
0
1
1
Асинхронный полный дуплекс
(старт-бит, стоп-бит, 9 битов данных)
0
1
1
Асинхронный полный дуплекс
(старт-бит, стоп-бит, проверочный бит,
8 битов данных)
5
SM2_0 Включение мультипроцессорной связи
4
REN_0 Разрешение приема
3
TB8_0 Состояние проверочного бита переданного байта
2
RB8_0 Состояние проверочного бита принятого байта
1
TI_0
Флаг прерывания по передаче. Устанавливается
в единицу, когда передаваемое слово полностью передано
в линию
0
RI_0
Флаг прерывания по приему. Устанавливается
в единицу, когда принимаемое слово полностью
поступило во входной буфер
23
Тогда содержимое регистров SCON0 и SCON1 должно быть равно 0×40:
SCON0
SM0_0 SM1_0 SM2_0 REN_0 TB8_0 RB8_0
0
1
0
1
0
0
TI_0
0
RI_0
0
Скорость обмена информацией рассчитывается по формуле (3.1)
и выражается в битах в секунду (бит/с).
Ñêîðîñòü =
fsystem
2SMODx
.
×
32
(12 - 8T1M )(256 - TH1)
(3.1)
В данной формуле SMODx – это бит SMOD0, который располагается в регистре PCON. T1M – бит в регистре CKCON (по умолчанию
равен 0). TH1 – старшие 8 бит регистра таймера. fsystem – частота
кварцевого генератора, от которого тактируется микроконтроллер. Таким образом, учитывая, что fsystem = 14,7456, PCON = 0×B0:
PCON =
SMOD0
1
–
0
–
1
–
1
GF1
0
GF0
0
STOP
0
IDLE
0
Настройка режимов прерываний
Для корректного использования прерываний микроконтроллера необходимо провести их настройку. За настройку прерываний отвечает регистр IE. Назначение битов регистра IE приведено
в табл. 3.3.
В данной системе используются прерывания последовательного
порта 0, внешнего порта 0 и таймера 0. Таким образом, IE = 0×93:
IE =
EA
1
ES1
0
–
0
ES0
1
ET1
0
EX1
0
ET0
1
EX0
1
Настройка таймера
Микроконтроллер Chipcon CC1010 поддерживает три режима
работы таймеров, а также возможность его отключения:
13-битный таймер;
16-битный таймер;
8-битный таймер с автоперезагрузкой;
таймер недоступен.
24
Таблица 3.3
Назначение битов регистра IE
Номер Название
бита
бита
Описание
7
EA
Общее разрешение/запрет прерываний
0 : Все прерывания запрещены, за исключением
прерываний Flash/Debug.
1 : Все прерывания доступны согласно собственным
разрешениям
6
ES1
Разрешение/запрет прерываний последовательного
порта 1
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
5
–
4
ES0
Разрешение/запрет прерываний последовательного
порта 0
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
3
ET1
Разрешение/запрет прерываний таймера 1
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
2
EX1
Разрешение/запрет внешних прерываний порта 1
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
1
ET0
Разрешение/запрет прерываний таймера 0
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
0
EX0
Разрешение/запрет внешних прерываний порта 0
0 : прерывания запрещены
1 : прерывания разрешены, если EA равен 1
Зарезервированный бит
За настройку режимов работы таймера отвечает регистр TMOD.
Назначение битов регистра TMOD приведено в табл. 3.4.
Так как используется 16-битный таймер, на частоте, меньшей в 12 раз fsystem, то значение регистра TMOD должно быть
равно 0×21:
TMOD =
GATE1
0
C/T1
0
M1.1
1
M1.0
0
GATE0
0
C/T0
0
M0.1
0
M0.0
1
25
Таблица 3.4
Назначение битов регистра TMOD
Номер Название
бита
бита
7
Описание
GATE1 0 : Таймер 1 доступен, если TCON.TR1 равен 1
1 : Таймер 1 доступен, если TCON.TR1 равен 1 и на входе
INT1 единица
6
C/T1
Настройка частоты таймера 1
0: Таймер 1 работает на частоте, меньшей в 4 или 12 раз
fsystem, в зависимости от бита CKCON.T1M
1: Таймер 1 работает на частоте входа T1
5
M1.1
4
M1.0
Выбор режима работы Таймера 1
00: 13-битный таймер
01: 16-битный таймер
10: 8 битный таймер с автоперезагрузкой
11: таймер выключен
3
GATE 0 0 – Таймер 0 доступен, если TCON.TR1 равен 1
1 – Таймер 0 доступен, если TCON.TR1 равен 1
и на входе INT1 единица
2
C/T0
Настройка частоты таймера 0
0: Таймер 0 работает на частоте, меньшей в 4
или 12 раз fsystem, в зависимости от бита CKCON.T1M
1: Таймер 0 работает на частоте входа T0
1
M0.1
0
M0.0
Выбор режима работы Таймера 0
00: 13-битный таймер
01: 16-битный таймер
10: 8 битный таймер с автоперезагрузкой
11: таймер выключен
3.4. Описание функциональных модулей
Измерение интервалов времени
между прерываниями
Измерение интервалов времени производится при помощи таймера. Таймер запускается из подпрограммы обработки прерываний. На рис. 3.1 изображена диаграмма, поясняющая работу микроконтроллера.
26
НАЧАЛО
Остановить
счетчик
Записать
показания
счетчика и
количество
переполнений
в массив
Обнуление
показаний
счетчика и
переполнений
Задача индекса
массива пакета
данных и запуск
счетчика
КОНЕЦ
Рис. 3.2. Алгоритм
обработки прерываний последовательного порта
Алгоритм обработки прерываний внешнего порта приведен на
рис. 3.2.
При поднятии флага внешних прерываний микропроцессора
начинается обработка подпрограммы прерываний. Изначально
микропроцессор останавливает счетчик, потом записывает показания счетчика и количество его переполнений в массив данных,
тем самым подготавливая его к отправке по последовательному
порту. Дальше задается индекс массива отправки, поднимается
флаг прерываний последовательного порта и счетчик запускается
снова. После чего микропроцессор возвращается в основную программу.
27
Ниже приведен фрагмент кода, в котором показана процедура
обработки внешних прерываний:
//char data *ptr_mas_uart=&mas_send_uart[0];
// void irp_ext() interrupt INUM_EXTERNAL0 using 2
{
TR0 = 0;
*ptr_mas_uart = 0xA5;
*(ptr_mas_uart +1)= 0xA5;
*(ptr_mas_uart +2)= TL0;
*(ptr_mas_uart +3)= TH0
*(ptr_mas_uart +4)= num_overflows}
Здесь:
«void irp_ext() interrupt» – стандартное объявление ПРОП
с именем irp_ext();
«INUM_EXTERNAL0» – адрес вектора прерывания, по которому
находится команда – переход на данную ПРОП;
«using 2» – объявление того, что данная ПРОП использует банк
регистров 2;
«TR0 = 0» – обнуление бита TR0 – то есть остановку таймера 0;
«*ptr_mas_uart = 0×A5» – запись первого контрольного байта
A516 в переменную по адресу, который хранится в ptr_mas_uart;
«*(ptr_mas_uart +1) = 0×A5» – запись второго контрольного
байта A516 в переменную по адресу, который на единицу больше
хранящегося в ptr_mas_uart;
«*(ptr_mas_uart+2) = TL0» – запись байта TL0 (младшие
8 бит таймера) в переменную, адрес которой на два больше хранящегося в ptr_mas_uart;
«*(ptr_mas_uart +3) = TH0» – запись байта TH0 (старшие
8 бит таймера) в переменную адрес, который на три больше хранящегося в ptr_mas_uart;
«*(ptr_mas_uart +4) = num_overflows» запись байта num_
overflows (количество переполнений таймера) в переменную, адрес
которой на четыре больше хранящегося в ptr_mas_uart.
Перед использованием косвенной пересылки данных с использованием переменной-указателя необходимо записать адрес байта в переменную, на которую программа будет ссылаться далее. Это делается в основной программе «холостой цикл», следующим образом.
{char data *ptr_mas_uart=&mas_send_uart[0];}
Здесь:
«char data» – стандартное объявление переменной типа char;
«*ptr_mas_uart» – объявление переменной указателя, по
адресу которой будет записывать указатель.
«&mas_send_uart[0]» – ссылка на адрес нулевого элемента
массива mas_send_uart.
28
Передача сообщений по последовательному порту
Передача данных по последовательному порту осуществляется
пакетом данных, состоящим из 5 байт – 2 контрольных байта, равных A516, и далее 3 информативных байта, по которым на ПЭВМ
будет строиться интервалограмма. Вследствие того, что флаг прерываний последовательного порта поднимается «искусственно»
в программе обработки прерываний внешнего порта, задача отправки данных по последовательному порту сводится к задаче обработки прерываний последовательного порта. Алгоритм работы
подпрограммы обработки приведен далее (рис. 3.3).
НАЧАЛО
да
Флаг приема
поднят
нет
Флаг отправки
поднят
да
Не менее 4
переполнений
таймера
нет
да
Отправить
элемент
массива
Инкремент
индекса
массива
КОНЕЦ
Рис. 3.3. Алгоритм работы подпрограммы обработки прерываний последовательного порта
29
Так как флаг прерываний последовательного порта поднимается как в случае отправки сообщения, так и в случае приема сообщения, то подпрограмма обработки изначально производит проверку,
какой ситуацией вызвано прерывание. Если флаг прерывания поднят («искусственно») по отправке сообщения, то далее производится проверка одной из переменных массива отправки, а в частности
количества переполнений таймера. Если таймер переполнился не
менее 4 раз (0,2 с), то данные отправляются. Иначе микроконтроллер возвращается в состояние «холостой цикл».
Ниже приведен фрагмент кода, в котором показана процедура
обработки прерываний последовательного порта:
if (INT_GETFLAG(INUM_UART0_TX) == INT_SET)
{
INT_SETFLAG(INUM_UART0_TX, INT_CLR);
if (i<=4)
{UART0_SEND (mas_send_uart[i]);
i = i + 1;
}
Здесь:
«if (INT_GETFLAG(INUM_UART0_TX) == INT_SET)» – проверка на то, что поднят флаг отправки последовательного порта;
«INT_SETFLAG(INUM_UART0_TX, INT_CLR)» – очистка флага
отправки последовательного порта;
«UART0_SEND» – оператор отправки сообщения через последовательный порт 0;
«mas_send_uart[i]» – указатель на то, что надо отправить i-й
элемент массива mas_send_uart;
«i = i + 1» – инкремент индекса массива отправки.
Первый раз флаг отправки поднимается в программе обработки
прерываний (ПРОП) внешних прерываний «искусственно», таким
образом отсылается первый байт. А далее, когда передача сообщения закончена, флаг поднимается автоматически, тем самым вызывая ПРОП последовательного порта снова и отправляя следующий байт.
3.5. Описание программной части ПЭВМ
Интерфейсная среда системы реализована на ПЭВМ при помощи программы MATLAB (приложения 1, 2).
Графический интерфейс системы изображен на рис. 3.4.
30
Рис. 3.4. Графический интерфейс системы
e2
Прием байта из
порта
e1
Прием байта из
порта
e3
e4
e5
Прием
3 байтов
из порта и запись
Рис. 3.5. Граф состояний программы приема данных от ИП
По нажатию кнопки Start программа начинает обращаться
к USB-порту и принимать данные, посылаемые с интерфейсной
платы (ИП). Граф состояний программы приема данных от ИП изображен на рис. 3.5.
Ниже приведены фрагменты кода, поясняющие работу программы приема из USB-порта на ПЭВМ.
while (stop_flag == 0); [current_byte, count] =
fread(idser,num_bytes_to_receive,’uint8’); [next_state, num_bytes_to_receive, var_out] =
the_state(current_byte); the_state = next_state;
end; Здесь:
«while (stop_flag == 0)» – оператор цикла на языке MATLAB.
Цикл будет выполнятся до тех пор, пока переменная stop_flag = 0.
31
stop_flag устанавливается равной 1 при нажатии пользователем
кнопки «Stop» в интерфейсном окне;
«[current_byte] = fread(idser,num_bytes_to_receive,
’uint8’)» – обращение к стандартному оператору MATLAB
«fread», который считывает данные из USB-порта (виртуального
COM-порта). Входными аргументами являются «idser» – указатель на файл работы с портом, «num_bytes_to_receive» – количество переменных, требуемых считать с порта, ‘uint8’ – указатель
типа кодировки (8-битное беззнаковое число). Выходным аргументов функции является перменная «current_byte», в которую записывается принятый из порта байт;
[next_state, num _bytes_to_receive, var_out] = the_
state (current_byte) – оператор the_state является указателем
на функцию обработки перехода при принятом байте. Входным аргументом функции является переменная «current_byte», в которой
хранится последний принятый байт из порта. Выходными аргументами функции являются переменные «next_state» – следующее
состояние указателя на функцию, «num_bytes_to_receive» – количество принятых байт, «var_out» – идентификатор приема нужной последовательности. Функции обработки перехода приведены
в приложении 2.
Перед запуском программы необходимо задать окно сглаживания, то есть задать число отсчетов, которые будут отображаться на
экране при построении интервалограммы. Рекомендуемое значение 50–200.
Во время работы программы интервалограмма строится в режиме реального времени по мере поступления новых отсчетов. Синхронно с этим происходит подсчет статистических характеристик:
математического ожидания и СКО. Статистические характеристики подсчитываются только для тех отсчетов, которые находятся
в скользящем окне.
По нажатии кнопки Stop программа перестает работать с USBпортом, закрывает его. И после этого выводит на экран общую интервалограмму за все время исследования.
Граф переходов состояний программы графического интерфейса изображен на рис. 3.6.
На рис. 3.7 показан пример построения интервалограммы
в скользящем окне.
На рис. 3.8 показан пример конечного вида интервалограммы
после проведения исследования.
32
Режим ожидания
e4
e1
e2
e3
Считывание
скользящего окна
Рис. 3.6. Граф состояний переходов
программы графического интерфейса
Получение данных
из порта. Построение
интервалограммы в
скользящем окне.
Определение
статистических
характеристик
e5
Закрытие порта.
Вывод
интервалограммы за
все время
исследования
e6
Рис. 3.7. Пример построения интервалограммы
в скользящем окне
Рис. 3.8. Пример конечного вида интервалограммы
после проведения исследования
33
Условия переходов в программах микроконтроллера и графического интерфейса приведены в табл. 3.5 и 3.6.
Таблица 3.5
Условия перехода программы микроконтроллера
Обозначение условия
Описание условия
e1
Принятый байт равен А5
e2
Принятый байт не равен А5
e3
Принятый байт не равен А5
e4
Принятый байт равен А5
e5
Безусловный переход
Таблица 3.6
Условия переходов программы графического интерфейса
34
Обозначение условия
Описание условия
e1
Нажата кнопка Start
e2
Нажата кнопка Stop
e3
Скользящее окно считано успешно
e4
Скользящее окно не считано
e5
Нажата кнопка Stop
e6
Безусловный переход
ЗАКЛЮЧЕНИЕ
В пособии кратко описаны несколько методов применения биологической обратной связи. Более подробно рассмотрен аппаратнопрограммный комплекс для системы стабилизации частоты сердечных сокращений, обладающий следующими особенностями:
1) оптическая пара светодиод-фотодатчик преобразует биосигнал в электропульсограмму;
2) интерфейсная часть с микроконтроллером переводит аналоговую пульсограмму в цифровой сигнал;
3) программа для микроконтроллера:
реализует наиболее критичные к задержкам функции в подпрограммах обработки прерываний;
имеет компактный код (512 байт программной памяти, байт
оперативной памяти);
4) программа для ПЭВМ:
проста в применении (требуется лишь подключить к USB-порту
и запустить интерфейсную программу);
использует графический интерфейс, что облегчает диалог пользователь – ПЭВМ.
Приведенные сведения дают студентам возможность изучить
конкретные примеры реализации биотехнических систем медицинского типа на базе различных физических эффектов, схемотехнических решений и программирования.
35
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. http://schoolshop.ru/istoriya_metoda_biologicheskoy_obra
(дата обращения: 20.01.2014).
2. Араби Л. С. История метода биологической обратной связи.
М.: Институт социальных технологий, 2011. 8 с.
3. http://www.neurotech.ru/product.aspx?prd=8 (дата обращения:
20.01.2014).
4. http://www.reko-med.ru/?mcat=416 (дата обращения: 20.01.2014).
5. http://www.siata.net.ua/index.php/reabilitacionnyj-kompleks-sbos-ambliokor-ambliotron/ (дата обращения: 20.01.2014).
6. Червинская А. В. Биоуправляемая аэроионотерапия//Физиотерапия, бальнеология, реабилитация. 2009. № 5. С. 45–48.
7. http://iemrams.spb.ru/russian/ecologru/biofeedr.htm
(дата
обращения: 20.01.2014).
8. http://fiz-ra.com/opredelenie-pulsa/ (дата обращения: 20.01.2014).
9. http://www.mednovosti.by/journal.aspx?article=119 (дата обращения: 20.01.2014).
10. Поваляева Р. А. Влияние физических нагрузок на вазорегулирующую функцию эндотелия и вариабельность пульсового
ритма у больных, перенесших инфаркт миокарда: автореф. дис.…
канд. мед. наук. Самара, 2011. 27 c.
11. http://www.radioradar.net/news/electronics_news/cc1010_
chipcon.html (дата обращения: 20.01.2014).
12. http://oscope.narod.ru/usb_ft232r.html (дата обращения:
20.01.2014).
13. http://www.chipinfo.ru/dsheets/ic/140/ud12.html (дата обращения: 20.01.2014).
14. http://www.microshemca.ru/TL2/ (дата обращения: 20.01.2014).
15. http://www.asvcorp.ru/darch/electronics/155ag3/index.
html (дата обращения: 20.01.2014).
16. www.keil.com (дата обращения: 20.01.2014).
36
ПРИЛОЖЕНИЕ 1
ЛИСТИНГ ПРОГРАММЫ МК
// slv1.c
#include «slv1.h»
char data mas_send_uart[3];
char data *ptr_mas_uart=&mas_send_uart[0];
code void main()
{ InitBlock(); while (1)
{
}
}
// interrupts.c
void isr_uart0() interrupt INUM_UART0 using 1{ if (INT_GETFLAG(INUM_UART0_RX) == INT_SET)
{ INT_SETFLAG(INUM_UART0_RX, INT_CLR);
}
if (INT_GETFLAG(INUM_UART0_TX) == INT_SET)
{
INT_SETFLAG(INUM_UART0_TX, INT_CLR);
if (i<=2)
{UART0_SEND (mas_send_uart[i]);
i = i + 1;
}
}
// uart.c
void isr_uart0() interrupt INUM_UART0 using 1{ if (INT_GETFLAG(INUM_UART0_RX) == INT_SET)
{
INT_SETFLAG(INUM_UART0_RX, INT_CLR);
}
if (INT_GETFLAG(INUM_UART0_TX) == INT_SET)
{
37
INT_SETFLAG(INUM_UART0_TX, INT_CLR);
if (i<=2)
{UART0_SEND (mas_send_uart[i]);
i = i + 1;
}
}
}
// timer.c
void irp_tmr() interrupt INUM_TIMER0 using 3
{
num_overflows = num_overflows + 1; }
38
ПРИЛОЖЕНИЕ 2
ЛИСТИНГ ПРОГРАММЫ ПЭВМ
// receive_message.m
function [A1,k] = receive_message(var_in,h_var,h_mean) global stop_flag; idser = serial(‘COM3’,’BaudRate’,4800,’TimeOut’,5,’Inp
utBufferSize’,1024);
fopen(idser); try the_state = @waiting_for_1A5; num_bytes_to_receive = 1; a = var_in; k=1; A1 = zeros(1,10000); while (stop_flag == 0); [current_byte, count] = fread(idser,num_bytes_
to_receive,’uint8’);
[next_state, num_bytes_to_receive, var_out] =
the_state(current_byte); the_state = next_state; if (var_out > 0) A1(k)= var_out; Lng=k; xmin = max( Lng - var_in, 1 ) xmax = Lng h1 = bar( (xmin:xmax), A1(xmin:xmax),1); ymin = min(A1(xmin:xmax)); ymax = max(A1(xmin:xmax)); axis([xmin,xmax+1,0,ymax+1]); MO = mean( A1(xmin:xmax) ); Di = std( A1(xmin:xmax) ); set (h_mean, ‘String’, num2str(MO) ); set (h_var, ‘String’, num2str(Di)); grid on; k = k+1; pause(0.01); 39
end; end;
catch me fclose(idser);
end;
fclose(idser); function [next_state, num_bytes_to_receive, var_out] =
waiting_for_1A5(current_byte) if (current_byte == 165) next_state = @waiting_for_2A5; var_out = 0;
else next_state = @waiting_for_1A5; var_out = 0;
end;
num_bytes_to_receive = 1; function [next_state, num_bytes_to_receive, var_out] =
waiting_for_2A5(current_byte) if (current_byte == 165) next_state = @bytes_processing; num_bytes_to_receive = 3; var_out = 0;
else next_state = @waiting_for_1A5; num_bytes_to_receive = 1; var_out = 0;
end; function [next_state, num_bytes_to_receive, var_out] =
bytes_processing(current_byte) period = double( current_byte(3) )*2^16 + double( current_byte(2))*2^8 +
double( current_byte(1) );
period = period*12000/(14.745*10^6);
var_out = period; next_state = @waiting_for_1A5;
num_bytes_to_receive = 1;
40
// gui.m
function gui01
global h_var;
global h_mean;
screen_size = get(0, ‘ScreenSize’);
x_scaler = screen_size(3)/100;
y_scaler = screen_size(4)/100; k_scale = 52;
z = 1;
h_main_figure = figure(‘MenuBar’, ‘None’, ‘Name’, ‘GUI’,
‘NumberTitle’, ‘off’,... ‘Resize’, ‘off’, ‘Units’, ‘pixels’);
set(h_main_figure, ‘Position’, [0*x_scaler, 0*y_scaler,
k_scale*x_scaler, k_scale*y_scaler]);
uicontrol
(‘Style’,’PushButton’,’String’,’Start’,’Position’,[30,
300,60,20],’CallBack’,@Push1);
uicontrol
(‘Style’,’PushButton’,’String’,’Stop’,’Position’,[30,270,
60,20],’CallBack’,@Push2);
uicontrol (‘Style’, ‘Text’, ‘String’, ‘СИСТЕМА СТАБИЛИЗАЦИИ
ЧАСТОТЫ СЕРДЕЧНЫХ СОКРАЩЕНИЙ С БОС’, ‘Position’, [100,340,
500,60],’FontSize’,
15,’SelectionHighlight’, ‘on’);
h_edit = uicontrol (‘Style’, ‘edit’);
h_axis1 = axes(‘Units’, ‘pixels’, ‘Position’, [150, 30, 550, 300]);
h_mean = uicontrol (‘Style’, ‘Text’,’Position’,[20,180,
70,20]);
uicontrol(‘Style’, ‘Text’,’Position’,[20,220,70,30],’String’,
‘МАТ.ОЖИДАНИЕ’,’SelectionHighlight’, ‘on’);
uicontrol (‘Style’,‘Text’,’Position’,[20,130,70,30],’String’,
‘СКО’,’SelectionHighlight’, ‘on’);
%axes ([60, 60, 30, 30]);
h_var = uicontrol (‘Style’, ‘Text’,’Position’, [20,90,70,20]);
uicontrol (‘Style’, ‘Text’,’Position’, [20,50,100,30],
’String’, ‘ОКНО СГЛАЖИВАНИЯ’,’SelectionHighlight’, ‘on’);
function Push1(h,eventdata,h_mean,h_var) global stop_flag; global h_var; 41
global h_mean; var_in = str2num(get(h_edit, ‘String’)) stop_flag = 0; [A1,k] = receive_message(var_in,h_var,h_mean); A1(1:(k-1)) Num_of_nums = length(A1); disp(Num_of_nums); hold off; plot(A1(1:(k-1))); grid on end function Push2(h,eventdata) global stop_flag; stop_flag = 1; end end
42
СОДЕРЖАНИЕ
Введение....................................................................................3
1. Общая информация о методе БОС...............................................4
1.1. История метода БОС..........................................................4
1.2. Существующие системы, работающие по методу БОС.............5
2. Аппаратно-программный комплекс для стабилизация ЧСС
при использовании БОС............................................................. 11
3. Программное обеспечение устройства....................................... 21
3.1. Выбор среды программирования........................................ 21
3.2. Диаграмма состояний микроконтроллера........................... 21
3.3. Инициализация микроконтроллера................................... 23
3.4. Описание функциональных модулей.................................. 26
3.5. Описание программной части ПЭВМ.................................. 30
Заключение............................................................................. 35
Список использованной литературы............................................ 36
Приложение 1. Листинг программы МК....................................... 37
Приложение 2. Листинг программы ПЭВМ................................... 39
43
Учебное издание
Далецкий Алексей Андрисович,
Покровский Юрий Павлович
СИСТЕМЫ
С БИОЛОГИЧЕСКОЙ ОБРАТНОЙ СВЯЗЬЮ
Учебное пособие
Редактор А. В. Подчепаева
Компьютерная верстка И. Н. Мороз
Сдано в набор 01.12.14. Подписано к печати 29.12.14.
Формат 60×841/16. Бумага офсетная. Усл. печ. л. 2,5.
Уч.-изд. л. 2,69. Тираж 100 экз. Заказ № 696.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
44
Документ
Категория
Без категории
Просмотров
4
Размер файла
2 257 Кб
Теги
daleckiy, pokrovsky
1/--страниц
Пожаловаться на содержимое документа