Arhn - архитектура программирования

Расчет максимальной физической скорости (ограничение производительности Найквиста) АЦП на борту микроконтроллера

Я пытаюсь оценить максимальную физическую скорость (предел производительности Найквиста) аналого-цифровых преобразователей, встроенных в различные микроконтроллеры PIC.

Однако для выполнения расчета требуются параметры, которые я не нашел явно указанными в таблицах данных, в частности, параметры Tacq, Fosc, TAD и делитель.

Я сделал некоторые предположения, но было бы полезно проверить работоспособность — правильно ли я вычисляю максимальную физическую скорость?

Исключительно для наглядности я взял самый простой из возможных PIC10F220 с АЦП. Это сделано специально для того, чтобы сосредоточиться на интерпретации параметров Tacq, Fosc, TAD и делителя, а не для того, чтобы предположить, что на этом очень простом чипе можно реализовать какие-либо практические функции. (Это к пунктам Клиффорда в комментариях ниже.)

Расчет:

Nyquist Performance Analysis of PIC10F220
- Runs at clock speed of 8MHz.
- Has an instruction cycle of 0.5us  [4 clock steps per instruction]

So:

- Get Tacq = 6.06 us  [acquisition time for ADC, assuming chip temp. = 50*C]
                      [from datasheet p34]

- Set Fosc := 8MHz     [? should this be internal clock speed ?]
- Set divisor := 4     [? assuming this is 4 from 4 clock steps per CPU instruction ?]
- This gives TAD = 0.5us          [TAD = 1/(Fosc/divisor) ]
- Get conversion time is 13*TAD   [from datasheet p31]
- This gives conversion time 6.5 us
- So ADC duration is 12.56 us   [? Tacq + 13*TAD]

Предполагая, что 10 инструкций для простой загрузки/сохранения/порогового значения выполняются в режиме реального времени перед следующей выборкой (это просто заглушка - смысл в остальной части расчета):

- This adds another 5 us   [0.5 us per instruction]
- To give total ADC and handling time of 17.56 us    [ 12.56us + 1us + 4us ]
- before the sampling loop repeats  [? Again Tacq ? + 13*TAD + handling ]

- If this is correct, then the max sampling rate is 56.9 ksps   [ 1/ total time ]
- So the Nyquist frequency for this sampling rate is 28 kHz.    [1/2 sampling rate]

Это означает, что (теоретическая) производительность этой системы --- АЦП чипа с гипотетическим кодом обработки в реальном времени --- предназначена для сигналов, полоса которых ограничена 28 кГц.

Является ли это правильным назначением / интерпретацией таблицы данных при получении параметров Tacq, Fosc, TAD и делителя и их использовании для получения максимальной физической скорости или предела производительности Найквиста для этого чипа?

Спасибо,


  • Учитывая крошечный объем памяти (16 байт SRAM) и ограниченный ввод-вывод (всего у него всего 6 контактов, из которых только три могут быть цифровыми выходами), что вы собираетесь делать с этими образцами, когда они у вас есть? Вы не можете хранить семплы и не можете вывести их на какое-либо другое устройство быстрее, чем сможете их захватить (поскольку бит-бэнг — ваш единственный вариант). Для меня совершенно очевидно, что эти устройства не предназначены для приложений, требующих такой производительности. Каковы ваши фактические требования к производительности и приложениям, а также бюджет? 01.05.2010
  • Это было бы предпочтительнее, чем использование внешних чипов аналого-цифрового преобразователя. Внешнее, что интересно? Разве эта часть не может иметь встроенный АЦП? Предложенная вами часть уже менее способна, чем большинство устройств SPI или I2C ADC. 01.05.2010
  • @Clifford: PIC10F220 в приведенном выше примере был выбран ТОЛЬКО для прохождения простого примера, чтобы проверить, правильно ли я интерпретирую Tacq, Fosc, TAD и делитель при работе с такого рода анализом Найквиста. Фактические микросхемы, которые я рассматриваю для разработки, - это dsPIC33FJ128MC804 (с 16-битным аналого-цифровым преобразованием) или dsPIC30F3014 (с 12-битным аналого-цифровым преобразованием). Re: предпочтительнее использовать внешние микросхемы аналого-цифрового преобразования — под этим я имел в виду, что вариант PIC привлекателен, потому что, если он подходит, это будет означать отказ от выделенных микросхем аналого-цифрового преобразования и отдельного выделенного DSP со всеми поддерживающими микросхемами, такими как дизайн занимает. 01.05.2010

Ответы:


1

Вы не сможете выполнить большую обработку за 8 инструкций, но если вы просто делаете что-то простое, например, сохраняете входящие образцы в буфер или определяете порог, тогда ваш анализ выглядит хорошо.

01.05.2010
  • В устройстве всего 16 байт SRAM — не так много буферизации! Он также имеет ограниченный ввод-вывод; для вывода данных по битам потребуется минимум 8 командных циклов. 01.05.2010

  • 2

    Фактические микросхемы, которые я рассматриваю для разработки, - это dsPIC33FJ128MC804 (с 16-битным аналого-цифровым преобразованием) или dsPIC30F3014 (с 12-битным аналого-цифровым преобразованием).

    Это важное различие; АЦП dsPIC поддерживает одновременную передачу нескольких каналов DMA по принципу «пинг-понг», что позволяет свести к минимуму эффективную программную нагрузку на выборку. Это делает расчет несколько другим. Вам необходимо определить по частоте дискретизации и размеру буфера DMA время между прерываниями буфера дискретизации; это то, сколько времени обработки вы должны иметь дело с каждым буфером. Если вы используете библиотеку DSP от Microchip, она дает точные формулы времени цикла для каждого алгоритма, а блочная обработка значительно более эффективна, чем обработка отсчета за отсчетом.

    Мой последний проект был на dsPIC33 с двумя каналами, дискретизированными на частоте 48 кГц, и буферами сэмплов из 32 слов (что дает 667 мкс для обработки каждой пары буферов). Таким образом, программная обработка была полностью независимой от выборки, поскольку при использовании прямого доступа к памяти они происходят одновременно.

    01.05.2010
  • (+1) Оцените подробный ответ по конкретному оборудованию. Однако я надеялся, что кто-то выполнит шаги расчета и подтвердит / обнаружит недостатки в предположениях, которые я использовал. Мой интерес не зависит от аппаратного обеспечения — я действительно могу заключить, что теоретическая максимальная производительность аналого-цифрового преобразователя соответствует сигналу с ограниченной полосой пропускания 28 кГц. 19.08.2012
  • Разные процессоры работают по-разному, поэтому расчеты каждый раз будут разными — см. техпаспорт. Дело в том, что если у вас есть накладные расходы на программное обеспечение при выборке, прерывания или недетерминированный поток управления, например, приведут к тому, что ваша выборка будет апериодической. Это может иметь катастрофические последствия для качества сигнала. Если вы пытаетесь сэмплировать с максимально возможной частотой, этот эффект будет значительным. Буферизация DMA является решением этой проблемы и должна использоваться, когда требуется высокая частота дискретизации относительно тактовой частоты процессора. 26.08.2012
  • Хорошо, я вижу. Честная оценка. Но тогда как бы вы определили диапазон производительности данного аналого-цифрового преобразователя — как бы вы аппроксимировали верхнюю полосу пропускания, с которой он может работать, принимая во внимание вашу точку зрения о программных накладных расходах? 26.08.2012
  • @AKE: максимальная физическая скорость определяется аппаратным обеспечением и тактовой частотой, как вы рассчитали. Если это автономный, а не программный запуск, скорость будет точно периодической, однако, если вам нужно выполнять обработку для каждого образца, эта обработка должна завершиться в течение времени выборки, иначе вы не будете успевать, и необработанные образцы будут перезаписаны. Если вы программно запускаете выборку, вы не пропустите выборку, но она может быть апериодической, недетерминированной или неспецифической частоты. 27.08.2012
  • @AKE: если у вас нет DMA, вы можете запустить выборку по таймеру, затем использовать прерывание завершения преобразования, обработчик которого просто копирует выборку в буфер, затем вы выполняете обработку, когда буфер заполнен, в одновременное переключение на второй буфер, который будет заполняться при обработке первого. Накладные расходы на программное обеспечение при обработке буфера выборок, вероятно, будут меньше, чем при обработке каждой выборки, поэтому можно поддерживать более высокую скорость. 27.08.2012
  • Спасибо за разработку, да, это имеет смысл для образца, запускаемого программным обеспечением. Буду иметь в виду два режима. Благодарю вас за возвращение в ветку. Я отредактирую свой первоначальный вопрос, чтобы отразить терминологию «максимальная физическая скорость». Ваше здоровье. 27.08.2012
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..