Пр о ц е с с о р TMS 3 2 0C4 x
69
2.2. Синхронизация ввода/вывода и обработки
Системы ЦОС реального времени обрабатывают практически неограни-
ченный объем данных, поступающих непрерывно и с относительно высокой
частотой. Входным устройством в таких системах является АЦП, осуществ-
ляющий квантование сигнала с частотой от единиц килогерц до десятков мега-
герц в зависимости от назначения системы. Эффективность работы системы
ЦОС зависит не только от качества реализации алгоритмов обработки, но и от
синхронизации ввода/вывода данных с обрабатывающей программой. Под син-
хронизацией будем понимать согласованность во времени ввода/вывода и об-
работки.
Попытаемся проанализировать некоторые возможные варианты синхро-
низации, для чего воспользуемся простым программным примером. Пусть тре-
буется реализовать амплитудный ограничитель комплексных выборок сигнала,
алгоритм работы которого описывается уравнением
(
)
(
)
&
[ ]
&
[ ],
&
[ ] ,
,
Re
&
[ ]
Im
&
[ ]
Y n
X n A U
U X n A A U
A
X n
X n
=
≤
>
⎧
⎨
⎩
=
+
nop
nop
nop
2
2
.
Для более полной иллюстрации способов синхронизации зададимся еще
одним условием - превышение амплитудой
A
порогового значения
U
пор
может
быть не более чем у 10% выборок сигнала. Программа, приведенная в прил.
Д
,
обрабатывает один входной отсчет при выполнении условия
A
>
U
пор
за 31 цикл
(
T
1
), при невыполнении условия - за 22 цикла (
T
2
).
Первый, наиболее очевидный вариант синхронизации, обработка отсче-
тов в момент их поступления. Этот вариант можно определить как
одиночную
передачу без буферизации
. Прием данных может производиться как с опросом
готовности порта, так и по прерываниям. На рис.2.4,
а
показано распределение
процессорного времени для ввода по прерываниям, возникающим с периодом
дискретизации
T
д
. После ввода отсчета выполняется программа обработки за
время
T
1
(для первого и второго отсчетов на рис.2.4,
а
) или
T
2
(для третьего от-
счета). Минимальный период поступления входных отсчетов для рассматри-
ваемого амплитудного ограничителя будет равен сумме
T
обр.пр
+ max{
T
1
,
T
2
}, где
T
обр.пр
- время обработки прерывания, равное 10 циклам, которое включает вре-
мя входа в прерывание (пять циклов), время передачи слова (один цикл) и вре-
мя выхода из прерывания (четыре цикла). Минимальный период
T
д
при оди-
ночной передаче без буферизации составляет в нашем примере 41 цикл, при
меньшем
T
д
будут пропуски отсчетов. Данный вариант синхронизации имеет
серьезный недостаток - большие потери процессорного времени. По условию,
превышение порога (а значит и время обработки
T
1
) может быть только у одной
десятой части реализации, поэтому при длине реализации
N
потери процессор-
ного времени 0.9
N
(
T
1
-
T
2
) циклов (при указанных значениях
T
1
,
T
2
и
T
обр.пр
примерно 20%).
Может ли наша программа амплитудного ограничителя обрабатывать
входной сигнал с периодом
T
д
= 35 циклов? Определим общие затраты процес-