Поиск по сайту: |
|
По базе: |
|
Главная страница > Применение > Микроконтроллеров > MSP430 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Программный встроенный модем на MSP430РезюмеВ данном примере применения подробно описывается разработка модема стандарта V.21 на базе микроконтроллера MSP430. Алгоритмы модуляции и демодуляции стандарта V.21 реализованы программно и поддерживаются периферийными модулями MSP430. В данном документе приведены как описание аппаратной части (схема электрическая принципиальная и спецификация (BOM)), так и описание программного обеспечения (исходный текст прикладной программы на "C"). 1 ВведениеЦель этого примера применения состоит в том, чтобы показать, как добавить микроконтроллерному устройству основные функциональные возможности модема. Чтобы подключить устройство к телефонной линии необходимо всего несколько внешних элементов. Такое подключение может быть реализовано при помощи демонстрационной платы DAA. Данный программный модем предназначен для работы только с входящим соединением. Такое упрощение связано с тем, что ставилась задача только показать возможность создания программного модема. Кроме того, в данном примере применения описывается, как установить соединение между программным модемом на базе MSP430 и стандартным модемом персонального компьютера. 2 Использование модема стандарта V.21 на телефонных сетях общего пользования (ТФСОП) Основная функция модема состоит в преобразовании двоичных сигналов в аналоговые сигналы, которые могут передаваться в полосе телефонного канала, и наоборот – принятых аналоговых сигналов в двоичные сигналы. CCITT/ITU определяют различные стандарты для модемов. Ниже некоторые основные технические требования к модемам стандарта V.21:
Параметры модуляции стандарта V.21:
Таблица 1. Частотные параметры FSK сигналов стандарта V.21
Стандарт V.21 допускает нестабильность частоты на выходе модулятора не более ±6 Гц. Демодулятор должен быть способен распознать частоты в пределах диапазона ±12 Гц от ожидаемых значений. Стандарт V.21 определен для передачи данных как в синхронном, так и в асинхронном режиме. Для стандартного двухточечного соединения модемом используется асинхронные режим с одним стартовым битом, восьмью информационными битами и одним стоп битом. На рисунке 1 приведены двоичный и FSK сигналы для символа "К" в кодировке ASCII (0x4B). Данные передаются младшим значащим битом вперед (LSB).
Приведенный программный модем на базе MSP430 работает только в режиме ответа. Поэтому каналы передачи данных имеют вид, представленный на рисунке 2. Программный модем на базе MSP430 передает данные по второму каналу, а принимает - по первому.
3 Описания аппаратной части3.1 Описание схемы демонстрационной платы Описываемый демонстрационный программный модем на базе MSP430 состоит из двух плат. Одна плата содержит микроконтроллер MSP430F149, который может быть заменен менее мощным микроконтроллером семейства MSP430, например - MSP430F1121. Другая плата LITELINK III содержит ИС линейного телефонного интерфейса производства компаний Clare/Ixys. Эта плата позволяет подключить программный модем к телефонной линии. Имеется две модификации этой отладочной платы DAA - CPC5621-EVAL-RDL (активное входное сопротивление по переменному току - в соответствии со стандартом США) или CPC5621-EVAL-CDL (активное входное сопротивление по переменному току - в соответствии со стандартом стран Европы). Вместе с микроконтроллером задействованы следующие элементы:
В приложении А приведена схема электрическая принципиальная описываемого программного модема. В приложении В приведена спецификация (перечень элементов) для этой платы. 3.2 Отладочная плата LITELINK III (DAA) LITELINK III - однокристальная DAA, используемая в устройствах передачи речи и данных для подключения к телефонной линии. Она содержит высоковольтную защиту, формирует для телефонной линии сопротивление по переменному и постоянному току, осуществляет имитацию поднятия трубки (занятие линии), а также производит детектирование вызывного сигнала и сигнала "отбой". Она может использоваться в дифференциальных и несимметричных режимах. Программный модем на базе MSP430 использует DAA в несимметричном режиме. Так как DAA содержит высоковольтную защиту, то для формирования законченного телефонного интерфейса требуется всего несколько внешних элементов. Отладочная плата, которая представляет собой предварительно настроенный и отлаженный узел, облегчает использование и отладку, а также обеспечивает соответствие стандартам. Так как линейная часть ИС подключена к телефонной линии, то дополнительное питание от изолированного источника ей не требуется. Остальная часть ИС может питаться от 3.3 В источника питания, что позволяет осуществлять питание от автономного источника питания и облегчает формирование интерфейса непосредственно с MSP430. Более полную информацию о LITELINK III можно получить из технического описания ИС "CPC5620/CPC5621 LITELINK III Phones Line Interface IC (DAA)" и руководства пользователя для демонстрационной платы "CPC5621 Evaluation Board", которые можно найти на сайте производителя компании Clare Inc. 3.3 Подключение к DAA 3.3.1 Управляющие сигналы Программный модем на базе MSP430 использует два управляющих сигнала DAA, которые непосредственно подаются на порты ввода-вывода микроконтроллера MSP430. Первый управляющий сигнал - выходной сигнал LITELINK III - сигнал обнаружения вызова RING, который подается непосредственно на способный формировать прерывание порт Р2.5 MSP430. Выходной сигнал RING обычно удерживается в высоком состоянии, а при поступлении вызова на нем появляются импульсы. Второй управляющий сигнал, сигнал занятия линии, является для DAA входным и обозначается nonOH. Формируется этот сигнал на порту P2.1. В таблице 2 приведены требуемые состояния сигнала nonOH для двух режимов работы. Таблица 2. Управление занятием линии
3.3.2 Передающий тракт На выходе FSK модулятора MSP430 (вывод P1.7 (TA2)) присутствует прямоугольный сигнал с амплитудой 3.3 В. Далее этот сигнал ограничивается резистивным делителем (R10, R11). Дополнительный конденсатор (C11) формирует простейший ФНЧ первого порядка, который подавляет высокочастотные составляющие сигнала. Есть еще две причины, обуславливающие необходимость ограничения уровня выходного сигнала:
В таблице 3 приведены уровни результирующих сигналов для частот 1650 Гц и 1850 Гц при использовании ФНЧ (см. приложение A).
Таблица 3. Уровни передаваемых сигналов
3.3.3 Приемный тракт Сначала переменный входной сигнал подается на схему смещения на Vcc/2 (см. цепочку R12, R13 на схеме электрической принципиальной), а потом усиливается в 18 раз усилителем IC2A. Кроме того, сигнал подается на ФНЧ второго порядка, который ограничивает полосу сигнала до 1.3 кГц (поскольку частоты входного сигнала будут находиться в диапазоне от 980 Гц до 1180 Гц). Выходной сигнал подается на компаратор Comparator_A MSP430 через порт P2.3 для демодуляции. На рисунке 4 показан принятый сигнал на входе (канал 1) и выходе (канал 2) компаратора. Сигнал RX+ несколько искажен за счет нелинейности приемного канала и за счет того, что модуляция и демодуляция осуществляется в одном и том же тракте.
4 Описание программыВ данной главе описывается алгоритм детектирования вызывного сигнала и модуль V.21. FSK модулятор/демодулятор V.21 реализован при помощи аппаратных модулей MSP430 и программного обеспечения, написанного на "C". Детектор вызывного сигнала и модули V.21 инициализируются по прерываниям и работают в фоновом режиме. Проект разделен на разные модули (см. Таблицу 4). Таблица 4. Краткий обзор программных модулей
4.1 Модуль детектора вызывного сигнала Входящий вызывной сигнал представляет собой гармонический сигнал с амплитудой от 48 В до 60 В и частотой от 16 Гц до 64 Гц. Огибающая вызывного сигнала представляет собой прямоугольный сигнал с периодом 5 с и длительностью активного импульса 1 с (см. рисунок 5). Однако в различных странах параметры вызывного сигнала могут варьироваться в зависимости от принятого в конкретной стране стандарта.
Выход RING подключен к порту P2.5. Так как входной сигнал содержит шум, то простой подсчет количества импульсов не является помехозащищенным алгоритмом. Для правильного детектирования используется специальный временной алгоритм. Этот алгоритм состоит из процедур обработки прерывания (ISR), инициализируемых портом P2.5 ISR (см. рисунок 6) и сторожевым таймером WDT (см. рисунок 7). WDT вызывает ISR каждые 250 мс.
4.2 Модуль V.21 При реализации стандарта V.21 были допущены некоторые упрощения. На выходе FSK модулятора вместо гармонического сигнала формируется прямоугольный сигнал. Кроме того, демодуляция частоты входного сигнала осуществляется путем измерения периода колебаний. Для формирования исходящего и входящего потоков и упрощения реализации API используется аппаратный модуль USART. Для формирования временных интервалов в алгоритмах модуляции/демодуляции используется встроенный в MSP430 генератор с цифровым управлением частотой (DCO). Частота DCO устанавливается и поддерживается равной 4096 Гц при помощи процедуры Set_DCO (). Частоту DCO можно изменить путем изменения константы DELTA в заголовке файла v_21.h. По умолчанию для DCO задана частота 1.024 МГц (DELTA = 250), что позволяет согласно требованиям стандарта V.21 формировать на выходе FSK модулятора частоты с уходом не более ±6 Гц. Если установить частоту DCO ниже 999 кГц, то это требование выполнено не будет. Все описываемые ниже константы задаются в заголовке файла программы модуля V.21 и зависят от выбранной частоты DCO. Также DCO используется для формирования синхросигналов MCLK и SMCLK. 4.2.1 FSK модулятор Для обеспечения интерфейса между пользовательской прикладной программой и прикладной программой микроконтроллера используется модуль USART0 (см. рисунок 8). Он настроен на работу в режиме UART в асинхронном режиме со скоростью 300 бит/с. После записи байта данных в U0TXBUF, модуль USART начинает формировать на выводе UTXD0 соответствующий цифровой поток, состоящий из стартового бита, восьми информационных разрядов, передаваемых младшим значащим битом вперед, и стоп бита.
Этот вывод подключен непосредственно к выводу порта P1.3. Модуль захвата/сравнения Timer_A.CCR2 работает в режиме сравнения и используется для формирования сигнала с ШИМ. При помощи таймера Timer_A и модуля CCR2 на выходе порта P1.7 формируется сигнал с ШИМ. Значения, которые периодически добавляются к содержимому CCR2 для получения требуемой выходной частоты рассчитываются по следующей формуле: HalfPeriodValue = Timer_A.CLK / (2 * SignalFreqency) Цифровой порт ввода - вывода P1.3 настроен на работу в режиме входа, при этом для него разрешено прерывание. Подпрограмма обработки этого прерывания запускается при каждом изменении сигнала UTXD0. На рисунке 9 приведена блок-схема алгоритма этой ISR.
При чтении P1IES.3 ISR определяет, фронт сигнала (нарастающий или спадающий). В зависимости от этого обновляется переменная BitFreq, которая и определяет период формируемого сигнала с ШИМ. Вследствие этого период выходного сигнала зависит от потока данных UART (см. рисунок 10).
4.2.2 FSK демодулятор После прохождения через ОУ принятый сигнал попадает на вывод Р2.3 (СА0), который является входом модуля компаратора Comparator_A, который сравнивает его с опорным напряжением, равным половине питания (Vcc/2). При помощи блока захвата сравнения Timer_A.CCR1 производится измерение длительности и периода принятых импульсов. Захват осуществляется по изменению сигнала на выходе компаратора модуля Comparator_A при каждом прохождении сигнала через ноль. На рисунке 11 приведена блок-схема алгоритма подпрограммы обработки прерывания от CCR1.
ISR считывает из CCR1 захваченное значение и высчитывает длительность импульсов входного сигнала путем измерения интервала времени между переключениями. Это значение сравнивается со значениями, соответствующими значениям частот сигналов 'MARK' (980 Гц) и 'SPACE' (1180 Гц) с учетом значения допустимого возможного ухода частоты (CHN1_MARGIN). Длительность рассчитывается по приведенной ниже формуле. В таблице 5 приведены значения, используемые при расчетах. PeriodValue = Timer_A.CLK / SignalFrequency Таблица 5. Значения, соответствующие длительностям сигналов при демодуляции FSK сигнала
Если измеренная величина попадает в один из интервалов, то происходит увеличение соответствующего счетчика периодов. После обнаружения старт бита (распознавания шести периодов 'SPACE'), модуль захвата/сравнения Timer_A.CCR0 переходит в режим сравнения и запускается каждую 1/300 секунды (в соответствии со скоростью передачи данных). Каждый раз, когда ISR запускается, используется мажоритарное декодирование для определения какой последний бит был принят. В результате этого определяется состояние выхода P1.2, а затем счетчики очищаются, чтобы подготовиться к демодуляции следующего бита (см. рисунок 12).
Для отслеживания количества принятых битов байта используется переменная (BitCounter). После принятия восьми битов прерывания от Timer_A.CCR0 запрещаются и формируется стоп бит. Результирующий поток данных формируется на выходе Р1.2 со скоростью 300 бит/сек. На рисунке 13 показаны эпюры принимаемого и декодированного сигналов.
Внешне выход P1.2 подключен ко входу модуля USART0 (вывод URXD0). Для формирования потока данных и обеспечения интерфейса с внешним устройством (например, ПК) модуль USART используется в режиме UART (см. рисунок 14). Соответствующее прерывание от приемника может использоваться для захвата принятых байтов.
4.2.3 Установление связи и управление занятием линии Перед обменом данных по телефонной линии связывающиеся модемы должны договориться об общем стандарте связи. Так как этот процесс времязависимый, то для формирования временных меток используется модуль захвата/сравнения Timer_A.CCR0 работающий в режиме сравнения. Подпрограмма обработки прерывания от Timer_A.CCR0 вызывается каждую 1/300 секунды и позволяет обеспечить алгоритм установления связи (см. рисунок 15).
После обнаружения вызывного сигнала программный модем на базе MSP430 подключается к телефонной линии. В этот момент тракты приема и передачи активны и MSP430 осуществляет установку связи. После начального периода молчания длительностью 2150 мс (2 секунды из этого периода используются алгоритмом детектирования звонка), программный модем MSP430 посылает ответный тон, частота которого 2100 Гц, а длительность 3300 мс. Формируется этот сигнал при помощи модуля захвата/сравнения Timer_A.CCR2. После дополнительного периода молчания длительностью 75 мс, программный модем MSP430 активизирует FSK модулятор и начинает посылать двоичные единицы (1650 Гц). Теперь вызывающий модем имеет время для распознавания передачи по протоколу V.21. После обнаружения стандарта V.21 сам вызывающий модем начинает передавать двоичные единицы (980 Гц). Необходимо не менее 155 мс для их распознавания программным модемом MSP430. Осуществляется это путем подсчета длительности сигналов при помощи ISR захвата Timer_A.CCR1. После того, как подсчитано достаточное количество периодов сигналов (DetectTime_Chn1), оба модема ожидают еще 600 мс, продолжая передавать единицы, а после этого переходят в режим передачи данных. 4.2.4 Работа модуля программного модема Для использования реализованного модема V.21 пользователю надо вызывать только две функции. Конечный автомат, который реализован в функции modem(), используется для отслеживания текущего состояния (продолжается связь или нет). Вторая функция - ModemInit (). При вызове этой функции внутреннее состояние модуля изменятся на CommandMode. Это начальное состояние, в котором происходит установка модуля в режим ожидания входящего вызова. Также ModemInit() выполняет основную инициацию программного модема V.21. На рисунке 16 показан упрощенный граф конечного автомата. В нем не отображены некоторые процессы (простой и переход в состояние CommandMode).
Первый вызывной сигнал переводит модем в состояние RingDetection. После обнаружения следующего вызывного сигнала алгоритм детектирования вызывного сигнала устанавливает флаг состояния OFF_HOOK. Это приводит к переходу в состояние AnsweringHandshake. После установления связи конечный автомат переходит в режим DataMode. Теперь модем полностью активен и передача данных по телефонной линии возможна путем простого обращения к модулю USART MSP430. Окончание связи другим модемом определяется при помощи следующего алгоритма: Периодически вызываемая функция modem() сбрасывает флаг OFF_HOOK. При наличии входного сигнала флаг OFF_HOOK будет установлен снова при каждом обнаружении перехода сигналом через ноль (Timer_A.CCR1 ISR). Если входной сигнал отсутствует, то функция modem() генерирует условие простоя, останавливает работу модуля FSK, повторно инициализирует программный модем и переходи в режим CommandMode. На рисунке 17 показана блок-схема алгоритма пользовательской программы, использующей модем V.21.
4.3 Демонстрационное применение программного модема Пример программы, входящий в данный пример применения, демонстрирует использование модуля V.21 в комбинации с простым интерфейсом пользователя, который позволяет считывать из MSP430 измеренные данные. На рисунке 18 показан возможный вариант соединения. Персональный компьютер со стандартным модемом подключен к одному разъему симулятора телефонной линии, а программный модем на базе MSP430 - к другому.
На ПК необходимо использовать программу Hyper Terminal, входящую в состав ОС Windows. Перед проведением теста убедитесь, что выбран правильный порт и установлены следующие параметры порта: 8 бит данных, нет бита проверки на четность и установлен один стоп бит. Скорость обмена данными может быть произвольной, так как она используется только для обмена данными между ПК и стандартным модемом. Модемы договорятся о скорости передачи данных по каналу сами. После настройки программы Hyper Terminal можно протестировать модем при помощи следующих "АТ" команд:
После набора номера и установления соединения модем персонального компьютера сигнализирует об установлении связи с программным модемом MSP430, передавая программе Hyper Terminal строку "MSP430 Soft-Modem Demo". Посылая программному модему на MSP430 кодовые комбинации, стандартный модем получает соответствующие строки, содержащие информацию о состоянии (см. Таблицу 6). Таблица 6. Сообщения программного модема
5 Использованные аппаратные ресурсы MSP430Программный модем V.21 использует следующие аппаратные ресурсы микроконтроллера:
6 РезюмеВсе тестируемые стандартные модемы смогли соединиться с программным модемом на базе MSP430 без каких-либо проблем. Было показано, что функциональные возможности модема могут быть реализованы при помощи самого микроконтроллера без использования дополнительного аппаратного модема. Это позволяет поднять рентабельность многих прикладных решений, которым необходимо вести обмен данными по телефонной линии с другими устройствами. Приложение А. Схема электрическая принципиальная программного модема.Приложение В. Перечень элементов программного модема.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|