Вы находитесь на странице: 1из 6

Cypress MicroSystems PSoC Design Challenge 2002.

Project number 268

Измеритель дальности (AN2048: «PSoC RangeFinder»)

дальности (AN2048: «PSoC RangeFinder») Этот проект представляет собой
дальности (AN2048: «PSoC RangeFinder») Этот проект представляет собой

Этот проект представляет собой простой ультразвуковой измеритель дальности. Для создания устройства необходимы только два ультразвуковых приемника-излучателя на 40 кГц, два резистора, две емкости, да сама PSoC-микросхема. Обычно подобные устройства дюже нафаршированы. Использование PSoC-микросхем позволяет резко сократить обвязку, так как в микросхемах этого семейства Программируемые-Системы-На- Кристалле») находятся цифровые и аналоговые модули, которые конфигурируются пользователем для решения конкретных задач. Типичные применения данного устройства это определение местоположений в робототехнике, измерение расстояний до объектов, бесконтактное определение уровней жидкости.

TimeBase

CNTR8

Meter CNTR8
Meter
CNTR8
F40kHz CNTR8 F40kHz_inv
F40kHz
CNTR8
F40kHz_inv

US TX

Передающая часть

1,5 MHz An_Clock CNTR8 CMPPRG_1 BPF2_1 _/\_ BPF2_2 _/\_ US RX BPF2 BPF2 PGA_1 Vref
1,5 MHz
An_Clock
CNTR8
CMPPRG_1
BPF2_1
_/\_
BPF2_2
_/\_
US RX
BPF2
BPF2
PGA_1
Vref
RefMux_1
AGND
REFMUX
Приемная часть
Выход ШИМ
Последовательный
PWM_Output
Baud9600
Serial TX
выход
PWM8
CNTR8
TX8

Интерфейсная часть

Рис.1: Блок-схема (желтые цифровые модули, зеленые аналоговые)

1

Главные фичи:

Рабочая частота:

Диапазон расстояний: 25 – 220 см

Разрешение:

Напряжение питания: 5 В

Потребляемый ток:

Выходы:

Дополнительно может подключатья LCD дисплей со встроенным контроллером (2 строки по 16 символов)

Программная калибровка

Динамическое увеличение чувствительности приемника в процессе измерения

40 кГц

1 см

25 мА (23 мА без LCD)

1 ШИМ, 1 послед. канал с TTL уровнями (9600, n, 8, 1)

Конфигурация микроконтроллера

Используются следующие Модули Пользователя::

Цифровые модули

CNTR8

TX8

PWM8

DigInv

Аналоговые модули

PGA

BPF2

CMPRG

RefMux

Другие модули

8-битный счетчик

8-битный передатчик для RS-232

8-битный ШИМ генератор

Цифровой инвертор

Усилитель с программируемым усилением

Два полосовых фильтра 2-го порядка

Компаратор с программируемым порогом

Источник опорных напряжений

Эмулятор EEPROM (программный)

Модуль связи с LCD (программный)

Модуль связи с LCD ( программный ) Рис 2: Расположение модулей

Рис 2: Расположение модулей внутри микросхемы

2

Передающая часть зиждется на четырех цифровых блоках, расположенных на позициях DBA00, DBA01, DBA02 и DBA03. 8-битный счетчик «TimeBase» создает временные отсчеты 17240 Гц, частота которых выбрана из следующих соображений.

При температуре среды Т [°C] скорость распространения звука в воздухе:

V = 331.4 + (0.6 × T ) [м/с]

Для температуры 22 °C скорость звука будет равна:

V = 331.4 + (0.6 × 22 ) = 344.6 м/с = 34460 см/с

Учитывая, что импульсы проходят двойной путь (туда и обратно) и требуется получать разрешение, равное 1 см, получим минимальную частоту для опроса состояния приемника (импульс пришел/не пришел):

V

F Timebase =

1[см] × 2

= 17.23 кГц

Реально, с учетом внутренних тактовых частот и дискретности коэф. деления, имеем:

 

«24V1»

2 МГц

f TimeBase =

116

=

116

= 17,24 кГц

Ультразвуковой излучатель запитывается от выхода 8-битового счетчика «F40kHz» («плюсовой» конец) и инвертора «F40kHz_inv» («минусовой» конец), переворачивающего фазу выходного сигнала счетчика на 180°. Это позволяет получить амлитуду на излучателе, равную напряжению питания. 40 кГц посылка включается 8-битным счетчиком «Meter», изменяющим свои показания через интервал времени, соответствующий «звуковому» расстоянию в 1 см. На вход этого счетчика подается сигнал со счетчика «TimeBase» (17240 Гц). «Холодный» конец приемника ультразвука посажен на аналоговую землю AGND (25-я ножка микросхемы, «P0_2»). Потенциал на этой ножке задается источником опорного напряжения «RefMux_1», размещенным в позиции ACA03. Сигнальный же конец приемника подключен ко входу усилителя «PGA_1». С выхода усилителя сигнал, пройдя два полосовых фильтра («BPF2_1» and «BPF2_2»), подается на компаратор «CMPPRG_1». Как только появляется 40 кГц сигнал, выход компаратора устанавливается в «1», сигнализируя управляющей программе о приходе отклика. В интерфейсную часть входят два блока – 8-битный ШИМ генератор («PWMout») и передатчик для последовательного итерфейса («SerialTX»), который тактируется импульсами 9600 Гц, создаваемыми 8- битным счетчиком «Baud9600».

Аппаратная часть

Схема ультразвукового измерителя дальности чрезвычайно проста (рис.3). Самая важная деталь это микросхема CY8C26443 фирмы Cypress, взявшая на себя всю обработку сигнала. Два конденсатора, C1 и C2, подавляют низко- и высокочастотные шумы в цепи питания. Резистор R1 (100к) поддерживает напряжение аналоговой земли (+2,5В) на сигнальном входе микросхемы. Резистор R2 регулирует контрастность LCD индикатора. Без индикатора устройство потребляет ток около 23 мА (от источника питания +5В), с индикатором – 25 мА. Измеренное значение дальности выводится двумя путями: один в виде ШИМ сигнала, второй через последовательный интерфейс с TTL уровнями, которые с помощью дополнительной микросхемы, например, классической MAX232, могут быть приведены к уровням стандарта RS-232 и поданы на персональный компьютер, имеющий последовательный порт. Параметры последовательного интерфейса – 9600, n, 8, 1, ШИМ выхода приращение длительности импульса 5 мкс на каждый сантиметр дальности. Дополнительно может подключаться LCD дисплей (2 строки по 16 символов) со встроенным контроллером, в этом случае резистором R2 регулируется его контрастность.

3

+5V

TX

PWM

GND

5V 5V J1 Header 4 19 28 XRES VCC 2 1 SERIAL C1 C2 3
5V
5V
J1
Header 4
19
28
XRES
VCC
2 1 SERIAL
C1
C2
3 PWMOUT
US RX
100 nF
100 uF
4 40 kHz
1
14
P0_7
VSS
27
P0_6
R1
2
P0_5
100 k
26
P0_4
3
9
P0_3
SMP
AGND
25
P0_2
4
P0_1
24
U1
P0_0
JP1
CY8C26443
Calibration
NORMAL/CALIBRATION
10
5
PWMOUT
P1_7
P2_7
18
23
P1_6
P2_6
11
6
P1_5
P2_5
17
22
SERIAL
US TX
P1_4
P2_4
12
7
40 kHz
P1_3
P2_3
5V
16
21
P1_2
P2_2
13
8
P1_1
P2_1
15
20
P1_0
P2_0
R2
8.2 k
J2
LCD
(optional)
LCD 16 X 2
1
Vss
2
Vcc
3
Vee
4
RS
5
R/W
6
E
7
DB0
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7

Рис.3: Электрическая схема

Программное обеспечение

Алгоритм работы показан на рис.4. Вначале программа инициализирует аналоговые и цифровые модули, затем тестирует состояние премычки JP1 и определяет, какой режим рабочий или калибровки будет установлен.

В рабочем режиме:

программа непрерывно генерирует посылки и после каждой, спустя некоторое время, ожидает эхо- сигнал. Время, прошедшее между началом передачи и началом приема посылки будет пропорционально расстоянию между устройством и препятствием. Опрашивая состояние компаратора «CMPRG_1», мы отсчитываем временной интервал, который затем запоминается в памяти. В итоге, расстояние до объекта высвечивается на LCD-дисплее (если таковой установлен), выдается на последовательный канал передачи данных, а также в виде ШИМ-импульсов, пропорциональных дальности, присутствует на выходе устройства.

В режиме калибровки:

работа аналогична предыдущему режиму, за исключением того, что измеренное значение сравнивается с «50», а разность заносится в энергонезависимую память EEPROM с целью коррекции

будущих показаний.

«TimeBase_int» - это прерывание от счетчика-таймера «TimeBase». Когда переменная Time1 становится больше так называемого «защитного» интервала (который необходим для того, чтобы исключить прием прямого сигнала от излучателя), программа начинает опрашивать состояние компаратора. Как только сигнал получен, значение переменной Time1 заносится в оперативную память, прерывание от «TimeBase» запрещается, занесенное же значение представляет собой измеренное расстояние до объекта. Если же выход компаратора остается равен 0, то программа постепенно увеличивает усиление модуля «PGA_1» (делает до 16 шагов, увеличивая значение усиления в соответствующем регистре этого модуля), в результате чего дальние сигналы будут усиливаться сильнее.

4

Главн. цикл

Главн . цикл Инициализиро - вать и стартовать блоки нет JP1 ? да

Инициализиро-

вать и стартовать

блоки

нет JP1 ? да Передать 40 кГц посылку Выждать «защитный интервал»
нет
JP1 ?
да
Передать 40
кГц посылку
Выждать
«защитный
интервал»
Ждать 40 кГц
отклик
Вычислить
дальность и
послать ее на
LCD, ШИМ и
послед. порт

Калибровка

Timebase_int

и послед. порт Калибровка Timebase_int Увеличить time1 Time1 >= «защит.

Увеличить time1

Time1 >= «защит. интервал»? да Выход компара- тора = 1 ? да
Time1
>= «защит.
интервал»?
да
Выход
компара-
тора = 1 ?
да

нет

нет
нет

Запретить

прерывание

Timebase_int и

сохранить time1

Увеличить

усиление PGA_1

Возврат
Возврат

Рис.4 Алгоритмы работы программы

Конструкция

Конструкция и разводка печатной платы не критичны для функционирования устройства. На рис.5 показан пример разводки односторонней печатной платы и расположение компонентов на ней. Вначале запаивают две перемычки, затем панельку для микросхемы, два резистора, устанавливаемые вертикально, две емкости, 4-контактную штырьковую и 14-контактную гнездовую колодки J1 и J2. Две ультразвуковых головки (передающая и принимающая) припаиваются непосредственно к контактным площадкам платы. В колодку J2 может напрямую втыкаться LCD-модуль, имеющий ответную штыревую часть, либо для его соединения может использоваться плоский кабель или отдельные провода.

кабель или отдельные провода . Рис .5: Печатная плата и
кабель или отдельные провода . Рис .5: Печатная плата и

Рис.5: Печатная плата и расположение элементов

5

Список использованных компонентов

C1

100 nF

US RX

УЗ излучатель 40 kHz

C2

22 µF 25V

US TX

УЗ приемник 40 kHz

R1

100 k

J1

колодка «папа» на 4 контакта

R2

8.2 k

J2

колодка «мама» на 14 контактов

U1

CY8C26443-24PI

JP1

перемыкатель (джампер)

Дополнительно (по выбору):

LCD

LCD модуль 16 × 2

Калибровка

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

расположить на расстоянии 50 см от ультразвуковых головок плоскую поверхность какого-либо предмета;

снять джампер JP1;

включить питание;

установить джампер JP1;

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

Заключение

Хотя в устройстве применен 28-выводной микроконтроллер CY8C26443, возможно использование 20-, и даже 8-выводных модификаций из этого семейства (это в случае, если вы не планируете подключение LCD индикатора). При использовании LCD индикатора, на нем появятся следующие сообщения:

рабочий режим

P

S

o

C

 

r

a

n

g

e

f

i

n

d

e

r

D

i

s

t

a

n

c

e

   

X

X

X

 

c

m

 

режим калибровки

 

5

0

c

m

 

c

a

l

 

b

i r

 

a

t

i

o

n

P

l

a

c

e

 

J

P

 

1 j

 

u

m

p

e

r

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

Примечания.

Проект «PSoC RangeFinder» (автор Fabio Piana) – занял 1-е место на конкурсе PSoC Design

Challenge’2002.

Адрес этого документа: http://antiradio.narod.ru/psoc/appnotes/an2048rus.pdf Оригинал документа (AN2048, англ. версия, причем урезанная) находится на сайте производителя микросхем http://www.cypress.com/. Вот один из полных авторских вариантов статьи на английском языке (1,18М): http://www.circuitcellar.com/library/print/0103/piana150/2301013.pdf

Исходники (файлы проекта для среды разработки «PSoC Designer») и прошивка (архив 482K) находятся на

6