|
Модераторы: Mazzi |
|
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Всем здравствуйте
Пытаюсь срочно изготовить для дипломного проекта железяку. Идеология железяки - считывание входного сигнала и генерация выходного. Алгоритм обработки входного сигнала есть, схему на микроконтроллере в общем то сделаю, программу адаптирую. И вроде никаких трудностей, но есть подозрение, что лучше реализовать все на сигнальном процессоре... Но я ничего про них не знаю. Ни как их втыкать в схему, ни вообще что это такое, какие у них бывают входы и выходы. Разбираться по мануалам времени совсем нет - осталось только 1.5 месяца до сдачи, на работе график напряженный, дома приходится работать иногда. В связи с этим вопрос - сигнальные процессоры с точки зрения применения в схеме - это то же самое что микроконтроллеры? Им нужно только питание и аналоговый вход/выход? У них есть встроенные АЦП и ЦАП? Тактовые генераторы? Или это тоже самое что процессоры, и им нужен чипсет там и прочая фигня, и устройство по сложности рискует превратиться в материнскую плату... Намного ли сложнее программировать под сигнальный процессор по сравнению с программированием под микроконтроллер? Наверное, эти ответы и станут определяющими в выборе железа для реализации. Пока что собираюсь поставить Attiny 2313, в качестве входа юзать встроенный АЦП, на выходе поставить ЦАП, после ЦАП поставить усилитель. Но это мне кажется примитивным. |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 1 Всего: 223 |
Грубо говоря - да.
У них разные сферы применения. Сигнальные процессоры (или как их называют родители - DSP) оптимизированы под цифровую обработку сигналов (ЦОС как к нас говорят), т.е. под математические алгоритмы, в основном циклические. Так что у них в системе команд присутствуют специальные команды для организации циклов, а так же есть специальные команды (и аппаратура) для всяких специфичных вычислений, например умножение с накоплением (MAC) - перемножаются 2 числа и прибавляются к аккумулятору расширенной разрядности. Огласите алгоритм, можно будет сказать более подробно - нужен вам DSP или будет достаточно обычного контролера. Например, если вам нужно считать FFT в реальном времени, то DSP однозначно нужно. Если же нужно сделать примитивное скользящее усреднение, то DSP не нужен. Подсказка - многие м/сх разных кодеков (например все аппаратные MP3 декодеры), это специализированные DSP с масочными прошивками |
|||
|
||||
Mazzi |
|
|||
Правильный Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: нет Всего: 21 |
В этом микроконтроллере нет АЦП. Это сообщение отредактировал(а) Mazzi - 15.5.2011, 17:30 -------------------- Мне нужны помощники. |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Да, действительно, в нем нет АЦП, а мне в одном месте сказали что есть... Спасибо большое.
Алгоритм сейчас не могу расписывать - достаточно нудное дело... Он циклический, на каждом шаге высчитываются коэффициенты, один по формуле e^f(t), второй по формуле sin(wt+fi)... Потом эти коэффициенты участвуют в формуле типа ax+by... и так далее, в общем умножение и сложение... Про сигнальный процессор подумалось потому, что есть подозрение, что на нем за фиксированное время можно посчитать экспоненту или синус... Раз уж вычисления циклические, и на каждом шаге надо считать экспоненту и синус, и чем выше частота тем выше точность прибора... |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
впрочем, попозже сяду и распишу... сейчас не могу...
|
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Собственно расписываю...
Примерно такой код. Это код обработки входного сигнала. При эмуляции в AVR Studio для контроллера Atmega 16 получилось 80 000 тактов. То есть частота дискретизации и обработки - порядка 200 действий в секунду. Маловато будет... Можно конечно вынести за скобки экспоненту и синусы с косинусами. Но в общем то мало верится в результат. Еще ближе мне идея работать через ассемблер, но это получится нетехнологично - под си у меня даже моделирование сделано... Применение сигнального процессора принесет больший эффект? Это сообщение отредактировал(а) Курсант - 21.5.2011, 22:07 |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 1 Всего: 223 |
Непонятно, что из этого всего переменные, а что константы. Пока складывается впечатление, что все константы. Если так, то процессор вообще не нужен
В противном случае AVR явно не потянет, тут надо что то типа ARM'а (как минимум). sin и exp считать табличным методом. DSP в данном случае IMHO перебор. |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Да, точно Получилось что константы - но это только шаг бесконечного цикла, я сделал тестовый прогон одного шага чтобы выяснить время выполнения, да так и отправил
Это сообщение отредактировал(а) Курсант - 22.5.2011, 09:13 |
|||
|
||||
Курсант |
|
||||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
В продолжение темы... Скачал 5-ю студию, пытаюсь отладить программу на 32-разрядной архитектуре. Пишет что "undefined reference to sqrt, sin, cos, exp". Текст программы:
Файл math.h я нашел, во внутренностях какой то
прописан, дальше я не понял ничего... Можно ли для начала воспользоваться какими-то библиотечными синусами-косинусами-экспонентами, или сразу табличное вычисление реализовывать? |
||||
|
|||||
daemonaz |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
На мой взгляд лучше заранее вычислить эти константы где-нибудь на ПК (mathlab), затем созадть таблицу констант, остается ввести исходные данные и вычислить. Лучше делать не в float, а в Int. предварительно преобразовав числа с плавающей точкой в целочисленные.
|
|||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Целочисленный синус - это очень весело. И ну ка прикиньте, сколько будет весить таблица, например, синуса на весь период с шагом в нанорадиан?
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разное (электроника) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |