BPSK модем на 1Мбит/сек <$10 BOM для передачи питания и данных по 1 паре. LPC5410x и MAX 10 снижают цену решения кардинально. Продолжаем тему. -> http://caxapa.ru/735195.html
http://caxapa.ru/719732.html
MCU - 2 ядра по 100МГц, кучка блоков памяти (M0 можно запустить из отдельных блоков памяти),
2 SPI до 71 Мгц
LPC54102J512UK49Z ARM® Cortex®-M4/M0+ LPC54100 Microcontroller IC 32-Bit Dual-Core 100MHz 512KB (512K x 8) FLASH 49-WLCSP (3.29x3.29) 8,000 - $3.33750
LPC54102J256UK49Z ARM® Cortex®-M4/M0+ LPC54100 Microcontroller IC 32-Bit Dual-Core 100MHz 256KB (256K x 8) FLASH 49-WLCSP (3.29x3.29) 8,000 - $2.9184
Подробности тут ->
FPGA MAX 10 http://caxapa.ru/735471.html вот тут про ресурсы
http://caxapa.ru/736358.html -
12 M9K блоков памяти и 16 18x18 умн <$3
10M02DCV36C8G 27 I/O 36WLCSP (3x3) 0°C ~ 85°C 1,000 - $2.84001
10M02DCV36I7G 27 I/O 36WLCSP (3x3) -40°C ~ 100°C 1,000 - $3.78002
DDS AD9837BCPZ-RL7 Direct Digital Synthesis IC 10 b 16MHz 28 b Tuning 10-LFCSP-WD (3x3) 1,500 - $2.42970
3.3+2.84+2.43=$8.57. $10 c операционниками и прочей хренью.
АЦП цифрует входной BPSK 1мбит @ 1 МГц несущей сигнал с 4 оверсемлингом. 4 Мгц х 12 бит = 48Мбит/сек.
Закачиваем поток в FPGA, где фильтруем его, чтобы вырезать все лишние сигналы.
Вкачиваем обратно в MCU. Можно по тому же SPI :). На задержку пока забиваем.
За счет 4-х кратного оверсемплинга при точном совпадении частоты передачи и 4*передачи АЦП можно сделать очень простой алгоритм приема. MEMS генераторы 10ppm стоят меньше $1.
Пусть в начале посылки идет синусоида несущей. Подстройкой фазы сигнала АЦП можно добиться, что АЦП будет цифровать строго в 0 и максимумах сигнала. Фактически, программный PLL.
Дальше несколько простых программных корреляторов, которые определяеют - был поворот фазы или нет. Это даже не чистый коррелятор будет - это будет приниматель решения. Это как раз работа для SIMD M4F.
M0+ будет разбираться с собственоо протокольной частью после выделения битового потока. Можно битовый поток отонать на FPGA еще раз и там делать ECC и прочие приятные малочи - чтобы M0+ не перенапрялся.
Передача DDS "влоб" - там все заточено. Просто за пин дергаем - и оно грузит кодовое слово с фазой +180 град. При 16 кратном оверсемлинге "все будет хорошо".
Решение будет достаточно маложручим. Контроллер ваще копейки жрет.
http://caxapa.ru/737122.html FPGA и DDS подстать ему. Чуть ли не в 30-40ма можно уложить.
Если использовать указанные мелкие корпуса, будет модулек 15х20 мм.
Вот это да, как неожиданно все сложилось.