|
Разработка архитектуры проекта, Необходимо правильно построить связь трех модулей |
|
|
|
Dec 11 2017, 08:36
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Доброго времени суток. Есть задача - читать с микрофона (MP45DT02, родной для stm32f4Disco), с последующей передачей в канале с пропускной способностью 6.8 Мб/с и воспроизведением на приемной стороне. На стороне передачи - Discovery(f4), на приемнике ПЛИС с периферией. Хочется как можно ближе подойти к "живому звуку", т.е. воспроизводить звук на приемной части с минимальным отставанием. В первой итерации выбрал записывать с микрофона через DMA во флеш, по накоплению 3х секунд производить обработку (обработка производится с помощью библиотеки libPDMFilter_Keil.lib), выбрасывать в канал, и воспроизводить сразу (после кодека) звук. Связь с каналом передачи осуществляется по SPI. Является ли такое построение взаимосвязей правильным или нужно что-то изменить?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 26)
|
Dec 11 2017, 14:43
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(jcxz @ Dec 11 2017, 15:42)  Во флешь? Зачем??? Вы разрабатываете УПДДФ?  Нет, рассчитывал, что так меньше нагрузки на проц, еще ведь обрабатывать PDM с микрофона и рулить SPI с каналом передачи. Если я где-то ошибся, пожалуйста, поправьте или укажите на неточность); я этого и жду
|
|
|
|
|
Dec 12 2017, 09:54
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(jcxz @ Dec 11 2017, 19:38)  Как запись во флешь поможет снизить нагрузку на проц???  Через DMA же Цитата(AlexandrY @ Dec 11 2017, 21:44)  Ключевое слово не Flash ( внешнего RAM все равно нет), а 3 сек. Речь наверно о разделении во времени. На макетной плате, которая будет под это сделана, она предусмотрена Да, мне хочется понять, будет ли слаженно по времени работать или можно просто забить на флеш, например
|
|
|
|
|
Dec 12 2017, 10:01
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(ZeratulSC007 @ Dec 12 2017, 11:54)  Через DMA же На макетной плате, которая будет под это сделана, она предусмотрена Да, мне хочется понять, будет ли слаженно по времени работать или можно просто забить на флеш, например На SD карту по любому быстрее будет. Хотя, если честно, не понял алгоритма. Да и либа ваша без исходников, тут ничего сказать заранее нельзя, надо профайлить.
|
|
|
|
|
Dec 12 2017, 10:05
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 12 2017, 13:01)  На SD карту по любому быстрее будет. Хотя честно не понял алгоритма. Насчет SD не думали, спасибо за такой вариант. Алгоритм (если я правильно вас понял): MEMS-микрофон -> флеш-память -> когда набирается три секунды, обработка PDM-библиотекой -> по SPI в канал связи -> отправка -> получение -> воспроизведение
|
|
|
|
|
Dec 12 2017, 11:57
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 12 2017, 13:01)  Да и либа ваша без исходников, тут ничего сказать заранее нельзя, надо профайлить. Либа с сайта stm, у них есть пара application note для ее использования и она применяется в одном из примеров по записи/воспроизведению аудио
|
|
|
|
|
Dec 12 2017, 12:39
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(jcxz @ Dec 12 2017, 15:15)  Жесть какая.... да уж, нет слов....  ну так объясните, пожалуйста, я же для этого и написал Цитата(x893 @ Dec 12 2017, 15:03)  а стирать флэш не планируется ? после 3 секунд записи всё заканчивается ? планируется 3 секунды выбраны для примера записывать будем пока не пришла команда конца записи (до ее получения может быть от 3 секунд до часа и больше) т.е. в идеале должно постоянно писаться с микрофона во флешку
Сообщение отредактировал ZeratulSC007 - Dec 12 2017, 12:47
|
|
|
|
|
Dec 12 2017, 15:32
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(ZeratulSC007 @ Dec 12 2017, 14:39)  ну так объясните, пожалуйста, я же для этого и написал Да все нормально у вас придумано. Возьмите линейную файловую систему из Keil-а и вполне себе по DMA все получится. Если бы вы использовали вот такой модуль на MK66, то я бы дал вам свою адаптированую по быстродействию версию такой системы.
|
|
|
|
|
Dec 12 2017, 16:19
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(ZeratulSC007 @ Dec 12 2017, 14:39)  ну так объясните, пожалуйста, я же для этого и написал Что тут объяснять? Я вас спрашиваю - вы даже вопросы понять не можете..... Спрашиваю - зачем вообще писать во флешь, вы пишете "чтобы снизить нагрузку на проц". Какая связь между "нагрузкой на проц" и записью или не записью во флешь??? Это вообще вещи взаимно-перпендикулярные как тёплое и круглое. Описываете задачу как задачу захвата аудио-сигнала, его обработки и передачи куда-то. Тут всё понятно. Но при чём тут запись во флешь??? Я вас об этом спрашивал. Зачем она нужна? Чтобы во флешь дырку протереть что-ль? Так для этого необязательно какие-то аудио-данные туда писать, можно просто случайные. И ещё DMA приплетаете ни к селу ни к городу... У вас похоже каша в голове такая же как и в формулировке задачи.
|
|
|
|
|
Dec 13 2017, 10:33
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 12 2017, 18:32)  Да все нормально у вас придумано. Возьмите линейную файловую систему из Keil-а и вполне себе по DMA все получится. Если бы вы использовали вот такой модуль на MK66, то я бы дал вам свою адаптированую по быстродействию версию такой системы. Спасибо, поинтересуюсь возможностью приобретения такого модуля Цитата(jcxz @ Dec 12 2017, 19:19)  Что тут объяснять? Я вас спрашиваю - вы даже вопросы понять не можете..... Спрашиваю - зачем вообще писать во флешь, вы пишете "чтобы снизить нагрузку на проц". Какая связь между "нагрузкой на проц" и записью или не записью во флешь??? Это вообще вещи взаимно-перпендикулярные как тёплое и круглое. Описываете задачу как задачу захвата аудио-сигнала, его обработки и передачи куда-то. Тут всё понятно. Но при чём тут запись во флешь??? Я вас об этом спрашивал. Зачем она нужна? Чтобы во флешь дырку протереть что-ль? Так для этого необязательно какие-то аудио-данные туда писать, можно просто случайные. И ещё DMA приплетаете ни к селу ни к городу... У вас похоже каша в голове такая же как и в формулировке задачи. Запись во флеш через контроллер DMA позволяет освободить процессор от необходимости рулить записью процессором. Во флеш я думаю писать, чтобы пока копились следующие три секунды, процессор мог обработать полученные данные с микрофона и отправить их в канал. Почему здесь "DMA ни к селу ни к городу"?
|
|
|
|
|
Dec 13 2017, 11:54
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(XVR @ Dec 13 2017, 13:45)  Вы флешь с RAM не перепутали? В флешь через DMA писать не получится. В примере stm Audio_playback_and_record идет запись на внешний носитель. Объясните, почему не получится? Понятно, что с флешкой работаю по usb, но dma все равно используется, чтобы заполнить буфер от микрофона в буфер к памяти, или нет? Цитата(jcxz @ Dec 13 2017, 14:40)  Человек похоже не понимает разницы ни между RAM и FLASH, ни между внутренней и внешней FLASH. Ни про работу FLASH понятия не имеет. Разговор пустой.... Почему бы не показать тогда мне, где конкретно я ошибаюсь, чтобы я мог научиться и понять? Разговор получается пустой, когда одна из сторон говорит только общие фразы, а не дает конкретных инструкций. Нельзя ли тогда сказать мне точнее, в какой части я не вижу разницы между типами памяти?
Сообщение отредактировал ZeratulSC007 - Dec 13 2017, 12:02
|
|
|
|
|
Dec 13 2017, 14:14
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(ZeratulSC007 @ Dec 13 2017, 13:54)  Почему бы не показать тогда мне, где конкретно я ошибаюсь, чтобы я мог научиться и понять? Разговор получается пустой, когда одна из сторон говорит только общие фразы, а не дает конкретных инструкций. Нельзя ли тогда сказать мне точнее, в какой части я не вижу разницы между типами памяти? Инициирование записи во Flash требует определенных программных процедур. После записи надо читать статус готовности к новой записи. Это занимает некоторое процессорное время. Некоторые наверно думают, что это займет значительную часть процессорного времени. Но запись в RAM по DMA заняла бы практически такое же время. Правда модуль DMA должен быть достаточно развит для такого использования.
|
|
|
|
|
Dec 13 2017, 15:14
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 13 2017, 17:14)  Инициирование записи во Flash требует определенных программных процедур. После записи надо читать статус готовности к новой записи. Это занимает некоторое процессорное время. Некоторые наверно думают, что это займет значительную часть процессорного времени. Но запись в RAM по DMA заняла бы практически такое же время. Правда модуль DMA должен быть достаточно развит для такого использования. Спасибо за объяснение! Программные процедуры для записи во флеш, в принципе, видны в примере stm. Можно уточнить, что значит, что модуль DMA должен быть достаточно развит для записи в RAM?
|
|
|
|
|
Dec 15 2017, 10:20
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 14 2017, 00:13)  Я говорил про запись во Flash. Во Flash чтобы сделать быструю запись нужно использовать связные списки DMA пересылок и гибкие триггеры DMA от таймеров и шины. Кстати в Kinetis можно легко организовать параллельную запись сразу в 5-ть чипов SPI Flash. Увеличите пропускную способность в 5-ть раз. Спасибо! Погнал изучать связные списки и думать, нужно ли это будет реализнуть(и смогу ли в достаточное время).
|
|
|
|
|
Dec 20 2017, 13:08
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 14-10-16
Из: Москва
Пользователь №: 93 763

|
Цитата(AlexandrY @ Dec 15 2017, 18:27)  Во всех гаджетах видео на Flash записывается. Ключевой вопрос об объеме Flash вы же не задали.  Может там какая-нибудь гипер SPI флэш типа MX25UM51245G стоит. С этим буду разбираться по мере встречи с проблемами и непониманием). Я только первые проекты делаю, и, естественно, взгляд на проект профана все еще P.S. Прошу прощения за долгий ответ
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|