Хороший тайм-сервер должен постоянно подстраивать частоту своих часов под PPS или другой источник точного времени. Тут уже вопрос о доверии к принятому времени
Обычно берется блок выборок по количеству бинов, применяется оконная функция, вычисляется БПФ, берётся следующий блок итд. Не встречал, чтобы БПФ считали с каждой выборкой, это уже вэйвлеты какие-то будут.
Это каким образом БПФ обрабатывается после прихода сэмпла? Только блочно - там куча вычислений, для которых нужны как минимум 2 выборки. Вызывать обработчик для каждой выборки зачастую медленее, чем в цикле обработать блок. Особенно если уметь оптимизировать не в стиле "красивый код", а "эффективный код". Многие DSP-функции уже в микроконтроллеры внедряют, а то и в ядро процессора (ARM, например).
Это всё классно, но многие системы при проектировании не учитывали спуффинг, который сейчас активно используется. И если на цифровой подстанции время синхронизируется через ГЛОНАСС/GPS, то малейшее отклонение времени приведет к серьезным последствиям.
Если много длительных фоновых процессов, то можно использовать операционку. А обработчику поставить приоритет повыше, и запускать из прерывания по семафору.
Пришел по DMA первый полу-буфер - установили флажок, в основном цикле проверили флажок и обработали его. Пришёл второй - установили второй флажок и обработали его. Потом снова первый... А можно прямо флажки DMA использовать - и прерывания не нужны. Понятно, что нужно успеть обработать до появления следующего полу-буфера. А если не успеваем - то это уже проблема. При редких неуспеваниях поможет дополнительная буферизация, при постоянных - изменение оптимизации, алгоритмов, МК, программистов итп...
Использование FIFO для передачи данных из прерывания основной программе излишне, имхо. Если всё пишется аппаратно через DMA, то проще передавать указатель на начало/середину буфера с половиной длины. А в вашем случае вообще можно разгрузить процессор, напрямую передавая с АЦП в буфер одним ДМА-потоком, а из этого же буфера в ЦАП - другим.И Circular mode - это точно не режим цирка)
Как раз недавно похожие ситуации были, но там МК пали жертвами издевательств. Одних пытали электропробойной установкой в составе устройства, другим на горячую подключали кабель прошивки (хоть и через изоляторы). Вроде и работали, но случайно заметил по встроенному градуснику, что на 20°С горячее других...
Уже много лет работаю с электроникой, ни разу не сдох ни один компонент от статики. А бывало, передавая микросхему из рук в руки, прямо через нее проскакивает неплохая такая искра. И подобной конфигурацией паял много.
Надо сравнивать FDM с такой же высотой слоя, как на фотополимернике - 0.05мм и меньше. Ну и всякие фишечки для FDM придуманы, типа печати оболочки с меньшим шагом, чем заполнение, плавное изменение по Z итп... Хотя бесспорно, поверхность при фотополимерной печати будет более детализированная
Греть то можно окружающей средой, но нужно еще и конденсировать...
Хороший тайм-сервер должен постоянно подстраивать частоту своих часов под PPS или другой источник точного времени. Тут уже вопрос о доверии к принятому времени
Обычно берется блок выборок по количеству бинов, применяется оконная функция, вычисляется БПФ, берётся следующий блок итд. Не встречал, чтобы БПФ считали с каждой выборкой, это уже вэйвлеты какие-то будут.
Это каким образом БПФ обрабатывается после прихода сэмпла? Только блочно - там куча вычислений, для которых нужны как минимум 2 выборки. Вызывать обработчик для каждой выборки зачастую медленее, чем в цикле обработать блок. Особенно если уметь оптимизировать не в стиле "красивый код", а "эффективный код". Многие DSP-функции уже в микроконтроллеры внедряют, а то и в ядро процессора (ARM, например).
Это всё классно, но многие системы при проектировании не учитывали спуффинг, который сейчас активно используется. И если на цифровой подстанции время синхронизируется через ГЛОНАСС/GPS, то малейшее отклонение времени приведет к серьезным последствиям.
На типичном 486м обычно установлено 4-16Мб ОЗУ. Даже если ядру хватит, современный софт явно не умеет умещаться в таком объёме.
Если много длительных фоновых процессов, то можно использовать операционку. А обработчику поставить приоритет повыше, и запускать из прерывания по семафору.
Пришел по DMA первый полу-буфер - установили флажок, в основном цикле проверили флажок и обработали его. Пришёл второй - установили второй флажок и обработали его. Потом снова первый... А можно прямо флажки DMA использовать - и прерывания не нужны. Понятно, что нужно успеть обработать до появления следующего полу-буфера. А если не успеваем - то это уже проблема. При редких неуспеваниях поможет дополнительная буферизация, при постоянных - изменение оптимизации, алгоритмов, МК, программистов итп...
Чтобы DMA работал стабильнее - придумали всякие аппаратные bus matrix, burst и fifo...
Обрабатывать выборки блоками, очевидно...
Использование FIFO для передачи данных из прерывания основной программе излишне, имхо. Если всё пишется аппаратно через DMA, то проще передавать указатель на начало/середину буфера с половиной длины. А в вашем случае вообще можно разгрузить процессор, напрямую передавая с АЦП в буфер одним ДМА-потоком, а из этого же буфера в ЦАП - другим.И Circular mode - это точно не режим цирка)
Не уверен, что на типичной 486й машине полноценно запустился бы хоть какой-то из последних линуксов
Так то так, но при конвейере же новые данные поступают каждый такт. И потребляемый ток должен превратиться в кашу?
Это получается, что развертывание ключа и шифрование выполняется в железе отдельными циклами, а не конвейером?
Как раз недавно похожие ситуации были, но там МК пали жертвами издевательств. Одних пытали электропробойной установкой в составе устройства, другим на горячую подключали кабель прошивки (хоть и через изоляторы). Вроде и работали, но случайно заметил по встроенному градуснику, что на 20°С горячее других...
Уже много лет работаю с электроникой, ни разу не сдох ни один компонент от статики. А бывало, передавая микросхему из рук в руки, прямо через нее проскакивает неплохая такая искра. И подобной конфигурацией паял много.
Никогда не понимал, как такое продают под видом игровых ПК/ноутов на авито...
Вроде ж есть нативное сжатие данных на веб-сокетах? JPEG+Base64+Deflate примерно так же весит, как просто JPEG
Децентрализованные сети не очень хорошо масштабируются... Так что интернет они вряд-ли заменят в ближайшее время
Надо сравнивать FDM с такой же высотой слоя, как на фотополимернике - 0.05мм и меньше. Ну и всякие фишечки для FDM придуманы, типа печати оболочки с меньшим шагом, чем заполнение, плавное изменение по Z итп... Хотя бесспорно, поверхность при фотополимерной печати будет более детализированная