Исследование и разработка акустического дефектоскопа на основе метода свободных колебаний (Квалификационная работа бакалавра), страница 10

9.  Тестовая программа содержит 3 двумерных массива 16- битных значений, один из которых инициализирован. Функция "main()" копирует первый массив во второй, а потом второй - в третий.

10. Тестовая программа содержит код, который вычисляет ответ на выходе фильтра с длиной ИХ = 17 от имитированного входного воздействия АЦП.

11. Тестовая программа содержит код, который перемножает матрицу 3x4 и матрицу 4x5.

Исходные коды тестовых программ приведены в приложении Г.

В тестировании участвовали 7 МК, включая ATmega128. Для этого был использован компилятор “С” фирмы IAR (см. таблицу 2).

Таблица 2 - Компиляторы для тестирования МК

Микроконтроллер

Версия "С" компилятора
компании IAR

MSP430F135

2.21B

Atmel ATmega8

3.10C

Microchip PIC18F242

6.10A

Generic 8051

2.12A

Renesas H8/300L

4.20A

Motorola MC68HC11

4.45A

Atmel ATmega128

4.12C

В таблице 3 приведены коэффициенты деления частоты задающего генератора для формирования сигналов синхронизации тестируемых МК.

Таблица 3 - Коэффициенты деления частоты задающего генератора

Микроконтроллер

Коэффициент
деления

MSP430F135

1

ATmega8

1

PIC18F242

4

8051

12

H8/300L

2

MC68HC11

4

ATmega128

1

Для тестирования запустим EWAVR. С помощью команды меню «Open->Workspace» откроем тестовый проект, после чего нажмем сочетание клавиш CTRL-D, после чего начнется компиляция проекта и проект будет загружен в память для исполнения и отладки. Команда меню «View->Profiler» приведет к запуску профилирующей утилиты в нижней части экрана (рисунок 12).

Рисунок 12 - Утилита "Profiler" пакета EWAVR

Следует сначала включить утилиту профилирования. Для этого требуется нажать на кнопку 1 (на рисунке показана в нажатом положении), нажать кнопку 2 очистки результатов предыдущего профилирования, и включить режим автоматического обновления результата кнопкой 3. После чего можно произвести запуск программы нажатием F5. Программа отработает, и в окне Profiler будут показаны результаты профилирования, показанные на рисунке 13.

Рисунок 13 - Результаты профилирования

Параметры на рисунке 13 означают следующее (таблица 4):

Таблица 4 - Значения параметров утилиты "Profiler"

Calls

Число вызовов функции

Flat time (cycles, %)

Время вызова функции (циклы, %), время вызова подфункций исключено

Accumulated time (cycles, %)

Время вызова функции (циклы, %), вызовы подфункций включены

Выделенная строка на рис. 13-2-2 представляет главную функцию, т.е. общее время выполнения.

Таблица результатов на всем наборе тестов показана в таблице 5.

Как видно из вышеприведенных данных, ATmega128 можно назвать лидером на тестовых задачах 3, 4, 6, также показал результат выше среднего на задачах, с которыми и придется столкнуться в ходе выполнения данной работы (выполнение БПФ, нейросетевые операции над большими числами). Исходя из вышесказанного, можно точно сказать, что МК ATmega128 подходит для реализации поставленных задач.

Таблица 5 - Результаты тестирования МК

Применение

MSP430F135

ATmega8

PIC18F242

8051

H8/300L

MC68HC11

ATmega128

байт
циклов

8- битная математика

172
299

116
157

386
318

141
112

354
680

285
387

-

137

8- битный коммутатор

180
50

342
131

404
109

209
84

362
388

387
214

-

89

16- битная математика +

172
343

174
319

598
625

361
426

564
802

315
508

-

298

16- битная матрица +

156
5784

570
24426

846
27021

825
29468

450
15280

490
23164

-

3965

16- битный коммутатор

178
49

388
144

572
163

326
120

404
398

405
230

-

98

32- битная математика +

250
792

316
782

960
1818

723
2937

876
1756

962
1446

-

763

Операции с плавающей точкой +-

662
1207

1042
1601

1778
1599

1420
2487

1450
2458

1429
4664

-

1666

Фильтр с КИХ

668
152193

1292
164793

2146
248655

1915
206806

1588
245588

1470
567139

-

287356

Перемножение матриц

252
6633

510
16027

936
36190

345
9454

462
26750

499
26874

-

9682

Итого

2808
170249

5114
213680

9302
336543

6880
269638

6866
303198

6622
640038

-

304054


5.3 Выбор устройства отображения информации

В данном случае от устройства контроля требуется выдача какой-либо числовой величины (вероятности). Для этого может быть реализована выдача результата на 2х7 сегментный цифровой индикатор, что и было сделано в разрабатываемом устройстве. Для того, чтобы оптимальным образом использовать порты ввода-вывода МК, была выбрана динамическая индикация и реализована по алгоритму на рисунке 14.

Рисунок 14 - Алгоритм динамической индикации

5.4 Выбор программных средств реализации

5.4.1 Выбор языка программирования для реализации ПО МК