FSK модуляция и демодуляция с использованием микроконтроллера MSP430
Резюме
В этом примере применения описывается программа, позволяющая микроконтроллеру MSP430 выполнять функции приемопередатчика FSK модема стандарта V.23. Здесь используется фильтр с новой архитектурой, позволяющий выполнять функции DSP при помощи обычного микропроцессора, способного только сдвигать и суммировать данные.
1 Введение
Многие измерительные устройства (например, электросчетчики и счетчики газа) должны иметь возможность установки связи с центральной станцией для передачи результатов измерения и получения новых тарифов. Такая связь может быть легко установлена по телефонной линии.
Передача данных при помощи сигнала с частотной манипуляцией (FSK) и двухтонального многочастотного (DTMF) сигнала - два наиболее популярных метода представления двоичных данных для передачи по телефонным линиям. В данном примере применения описывается программа V.23- совместимого FSK приемопередатчика.
Интеграция в одном чипе измерительных и коммуникационных функций ведет с увеличению стоимости и потреблению. Используя высокоскоростной низкопотребляющий микроконтроллер MSP430, возможно изготовить модем, питающийся от телефонной линии.
В данном примере применения приведены математические формулы для передачи и детектирования FSK сигналов. К листингу управляющей программы приложены типовые схемы телефонного интерфейса и дешевого аналого-цифрового преобразователя. Данные схемы являются типовыми и для использования их в некоторых станах необходимо провести соответствующие доработки.
2 Теория демодуляции
Демодуляция FSK сигнала обеспечивается квадратурным демодулятором. В этом демодуляторе производится перемножение принятого и задержанного сигнала с последующей низкочастотной фильтрацией результата перемножения. Если время задержки T установить в соответствии с выражением Wcarrier * T = π/2, то на выходе фильтра нижних частот будет присутствовать сигнал, пропорциональный отклонению частоты, который и является информационным.
Если w = Wcarrier ± Wdelta и T * Wcarrier = pi/2, где w = 2*pi*f (круговая частота), то процесс демодуляции можно описать с помощью следующего математического выражения:
cos [wt] х cos [w (t-T)] = coswT + cos (2wt - wT) -> ФНЧ -> coswT = sin [± Wdelta] = ±sin [Wdelta].
2.1 Выбор частоты дискретизации
Для упрощения формирования задержки частота дискретизации выбирается равной Fcarrier * 4. Для стандарта V.23 частота несущей F = 1700 Гц, поэтому частота дискретизации должна быть 6800 Гц. При использовании 32768 Гц кварцевого резонатора обеспечивается частота дискретизации 6793.3 Гц, которая отличается от требуемой на 0.1 %. Частота дискретизации задается 8- битным интервальным таймером. Так как таймер имеет коэффициент пересчета, равный 256, то прерывание устанавливается дважды за одни период дискретизации, при этом выборка осуществляется один раз за два периода.
2.2 Управление оконечными устройствами
Большинство аналого-цифровых преобразователей, включая аналого-цифровой преобразователь последовательного приближения микропроцессора MSP430C325, нуждается в обеспечении смещения по постоянному току; эти АЦП выдают результат преобразования в виде смещенного положительного целочисленного числа. Прежде, чем выбранный сигнал будет обработан далее необходимо подать его на фильтр, подавляющий постоянную составляющую, что приведет к преобразованию кода в целочисленное значение со знаком. Этот же фильтр обеспечивает подавление порядка 30 дБ сигнала основной частоты.
2.3 Демодуляция FSK
Принятые прямой и задержанные сигналы необходимо перемножить; в нашем случае для этого применяется мультиплицирующий 8?8 кольцевой регистр со знаком.
Цепочка, составленное двух частотно-зависимых элементов, является фильтром низких частот, предназначенным для подавления сигнала удвоенной частоты. На выходе этого устройства присутствует целочисленное значение со знаком, представляющее собой значение полученного бита.
Фильтр нижних частот использует технологию цифровой фильтрации колебаний. Эта технология обеспечивает устойчивые характеристики с очень хорошей точностью. Все перемножения выполняются при помощи операций сложения и сдвига при некоторых округлениях. Поскольку фильтр имеет высокую точность коэффициента передачи, то это округление не влияет на параметры фильтра. Фильтр Баттерворта, используемый в данном случае, дает коэффициент ослабления приблизительно 40 дБ в полосе затухания и неравномерность АЧХ в полосе пропускания порядка 1 дБ.
2.4 Синхронизация бита
Для обработки входного потока данных значения демодулированных битов должно быть определено и синхронизировано. Эта технология также известна под названием выделения битов и восстановления синхроимпульсов. Так как частота дискретизации (6800 Гц) не кратна скорости потока данных (1200 бит/с), то необходимы дополнительные шаги для объединения этих двух скоростей. Это реализовано при помощи суммирующе-вычитающего счетчика с последовательностью предварительно загруженных значений (5,6,5). Каждые 17 отсчетов частота дискретизации и скорость потока восстанавливают синхронизацию. Синхронизация бита или регенерация синхроимпульсов выполняются за счет отслеживания изменения значения бита. После этого информация об опережении или запаздывании обрабатывается, и суммирующе-вычитающий счетчик корректирует свое значение. Из-за разности между частотой выборки и скоростью потока данных выбор бита данных никогда не осуществляется точно в середине периода потока данных, а имеет отклонение от -5 % до +13%. Экспериментально доказано, что это не оказывает влияние на точность работы системы.
3 Теории модуляции
При FSK модуляции осуществляется отклонение несущей частоты на величину, равную девиации частоты, при этом знак изменения частоты зависит от значения передаваемого информационного бита. В стандарте V.23 информационный ноль передается отклонением частоты на 400 Гц, а информационная единица - отклонением на -400 Гц.
FSK сигнал = Амплитуда x cos [t x 2 x pi x (Fcarrier ± Fdelta)]
Синусоидальный сигнал генерируется в соответствии с таблицей значений, которая содержит значения косинуса в пределах от 0 до 2 х pi радиан. Параметр, называемый PHASER соответствует следующим угловым значениям: 0 = 0 градусов, 8000h = 180 градусов, 10000h = 360 градусов. После каждой выборки этот угол перемещается к следующему значению в соответствии с величиной 16 битного параметра DELTA, который определяет частоту сигнала (наибольшее значение DELTA соответствует наивысшей частоте). Частотная модуляция осуществляется за счет изменения величины параметра DELTA, которое определяется по формуле:
DELTA = Fdesired / Fsampling x 65536.
Преимущество этого метода по сравнению с методом цифрового автогенератора состоит в том, что этот метод сохраняет фазовое соотношение, даже когда частота изменяется от выборки к выборке.
3.1 Выбор частоты дискретизации
8- битный интервальный таймер устанавливает частоту дискретизации 19200 выборок/сек. Эта скорость кратна требуемой скорости потока данных 1200 бод. Также, это позволяет упростить построение устройства выборки-хранения (УВХ) АЦП.
3.2 Построение таблицы значений
Чтобы сохранять объем памяти ПЗУ в таблице закодирован только первый квадрант в формате Q7 (от 0 до 127). Это сделано путем деления первого квадранта (90 градусов) на 128 интервалов с шагом приблизительно 0.7 градуса. Восстановление значений трех других квадрантов выполняется путем дополнительных вычислений.
3.3 FSK модуляция
Параметр PHASER изменяется на величину DELTA при каждом прерывании. Первые 9 битов параметра PHASER используются, для восстановления значения косинуса. Так как функция косинуса является симметричной, то значения ее в третьем и четвертом квадрантах такие же, как и во втором и первом квадрантах, а значит также используются только абсолютная величина, задаваемая первыми 9 битами параметра PHASER.
Затем, всю значения второго квадранта вычисляются из значений первого квадранта, содержащиеся в таблице.
8 битный результат защелкивается в порту P0.OUT.
Каждые 16 прерываний, параметр DELTA обновляется в соответствии с величиной частоты следующего посылаемого бита.
4 Преобразование данных
В этом разделе описываются необходимые аналого-цифровое и цифро-аналоговое преобразования данных.
4.1 Аналого-цифровое преобразование
Наиболее простой способ оцифровки входящего FSK сигнала состоит в том, чтобы использовать 12 битный режим встроенного 14 битного аналого-цифрового преобразователя микроконтроллера MSP430C325. Однако, для обеспечения динамического диапазона, необходимого для демодуляции принятого FSK сигнала 12 битный преобразователь не нужен. Результаты исследований показывают, что для обработки вполне достаточно 8 битного преобразования и программно реализованной системы АРУ. При этом обеспечивается динамический диапазон 25 дБ. При использовании внешней системы АРУ динамический диапазон может быть расширен. Так как существует большое количество дешевых решений построения 8 битных АЦП, то имеется возможность применять все микроконтроллеры семейства MSP430. В прикладной программе описываемого примера применения используется АЦП на основе универсального таймера и внешнего компаратора. Это позволяет использовать данную прикладную программу в устройствах на основе всех микроконтроллеров данного семейства.
4.2 Цифро-аналоговое преобразование
Для формирования 6 битного цифро-аналогового преобразователя используется внешняя R-2R цепочка. Так как частота переключений 19200 Гц, что в девять раз больше, чем максимальная частота FSK сигнала, равная 2100 Гц, то реализовать сглаживающий фильтр очень просто. В приведенной схеме применен фильтр низких частот первого порядка на одном конденсаторе, но при необходимости количество звеньев фильтра может быть увеличено при помощи дополнительных пассивных цепочек.
5 Потребляемая мощность
Концепция FSK разработана с целью снижения потребления. Демодулятор FSK работает с производительностью менее 2 MIPS. Вместе с низко потребляющим операционным усилителем, использованным в качестве оконечного каскада, потребление системы не должно превысить 1.5 мА. Таким образом, возможно питание системы от телефонной линии. В приведенной в данном примере применения схеме имеется и интерфейс с телефонной линией. Однако, в зависимости от стандарта конкретной страны применения, возможно потребуется изменить схемотехнику данного узла.
6 Программное обеспечение
В данном разделе описывается прикладная программа FSK модема.
6.1 FSK приемник
FSK сигнал поступает от телефонной интерфейсной схемы. Этот сигнал должен иметь смещение по постоянному току 1.2 В и размах 400 мВ. Программное обеспечение декодирует этого FSK сигнал и выставляет на трех выходах логические сигналы, позволяющие пользователю отследить демодулированные данные.
- На выходе TP.3 выдается восстановленный из входного FSK сигнала синхросигнал.
- На выходе TP.5 присутствуют восстановленные из входного FSK сигнала данные, которые защелкиваются по каждому нарастающему фронту сигнала на выходе TP.3.
- На выходах P0.2-P0.7 присутствует результат низкочастотной фильтрации. Отфильтровав этот сигнал при помощи внешней R-2R цепочки, можно отслеживать уровень демодулированного FSK сигнала. Этот сигнал формируется только из 6 старших бит 8 битных данных, загруженных в порт Р0.
6.2 FSK передатчик
Программа передатчика выводит FSK сигнал в соответствии с BITMAP данными, определенными в таблице TX_DATA_TABLE. Образ начинается с начальной зоны записи (преамбулы), сопровождаемой длинным MARK периодом. После этого идет передача данных. Эта таблица использует нулевое слово в качестве оконечного маркера, а программа перезапускается после достижения нулевого значения данных битового массива.
7 Типовая схема
в этом разделе приведен и описан пример схемной реализации модема.
7.1 Использование MSP430C325 в качестве центрального процессора
На рисунке 1 приведена схема электрическая принципиальная FSK модема, использующего в качестве центрального процессорам микропроцессор MSP430C325. Схема была протестирована при подаче на вход FSK сигнала с размахом 400 мВ. Чтобы получить те же самые результаты, на вход Rx должен быть подан FSK сигнал с постоянной составляющей 1.2 В и размахом 400 мВ.
Рисунок 1. Центральный процессор и аналого-цифровой преобразователь
7.2 Пример телефонного интерфейса
На рисунке 2 приведен пример схемной реализации телефонного интерфейса, а в таблице 1 приведены параметры FSK приемопередатчика.
Рисунок 2. Телефонный интерфейс
Примечание:
Это всего только приблизительная схема и в некоторых случаях она не может быть использована.
|
|
ОЗУ (Байт) |
ПЗУ (Байт) |
Приблизительная производительность (MIPS) |
FSK приемник |
18 |
512 |
2 |
FSK передатчик |
12 |
400 |
1.4 |
8 Заключение
Обычно FSK приемопередатчики реализуются аналоговыми средствами или при помощи DSP процессоров и аппаратных МАС модулей. Использование RISC микропроцессора MSP430 без МАС модулей для реализации функций приемопередатчика - очень необычная технология. Способность создавать фильтры при помощи технологии цифровой фильтрации колебаний совместно с дополнительным набором команд и 16 битной архитектурой микроконтроллера MSP430 делает код прикладной программы весьма компактным и производительным. Кроме того, сверхнизкое потребление MSP430 позволяет питать модем от телефонной линии. Это позволяет сделать устройство с малым числом компонентов. Были проведены дополнительные исследования, позволившие сделать заключение, что FSK приемник может работать с 8 битным аналого-цифровым преобразователем и иметь достаточно высокую чувствительность. Поэтому FSK приемопередатчик может быть реализован на любом микроконтроллере семейства MSP430.
Пример программы:
|
|
110Kb Исходный фаил |
|
|
RUS Приложение А: подпрограмма FSK приемника |
цифровые фотоаппараты
|