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

Я пытаюсь оценить максимальную физическую скорость (предел производительности Найквиста) для АЦП, встроенных в различные микроконтроллеры 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]

Итак:

- 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]

Что означает (теоретическую) производительность этой системы - A / D чипа с гипотетическим кодом обработки в реальном времени - для сигналов с полосой пропускания до 28 кГц.

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 мая 2010

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

1 голос
/ 01 мая 2010

Фактические чипы, которые я рассматриваю для дизайна, это dsPIC33FJ128MC804 (с 16b A / D) или dsPIC30F3014 (с 12b A / D).

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

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

...