Применение микроконтроллеров SX фирмы Ubicom
Высокопроизводительные микроконтроллеры SX фирмы Ubicom поддерживаются
доступными и эффективными инструментальными средствами и используются в
коммуникационных приложениях, видеообработке, подключении к Ethernet и
реализации TCP/IP-технологий.
Микроконтроллеры Ubicom SX [1] имеют производительность до 100 MIPS,
флэш-память программы, обеспечивают внутрисхемную отладку и
программирование, совместимы с популярными микроконтроллерами PIC16C5X,
поддерживаются эффективными и доступными инструментальными средствами и
широкой библиотекой примеров применения [2].
Параметры основных серийно
выпускаемых микроконтроллеров SX приведены в таблице.
Микроконтроллер |
Выводы |
Порты |
Тактовая частота, МГц |
Память программы |
ОЗУ |
Типы корпусов |
SX18AC |
18 |
12 |
50, 75 |
2048x12 |
136x8 |
DIP, SOIC |
SX20AC |
20 |
12 |
50, 75 |
2048x12 |
136x8 |
SSOP |
SX28AC |
28 |
20 |
50, 75 |
2048x12 |
136x8 |
DIP, SOIC, SSOP |
SX48BD |
48 |
36 |
50 |
4096x12 |
262x8 |
TQFP |
SX52BD |
52 |
40 |
50,100 |
4096x12 |
262x8 |
PQFP |
Программные средства
Небольшие программы для микроконтроллеров SX эффективнее всего писать
на ассемблере. Фирма Ubicom поддерживает бесплатный SASM [3] — полноценный
макроассемблер, имеющий все необходимые функции. Все примеры применения
Ubicom [2] также скомпилированы им. Ассемблер SASM поддерживается
большинством внутрисхемных эмуляторов и программаторов для SX.
Более
сложные программы можно писать на C. Для микроконтроллеров Ubicom SX
существует компилятор SXC фирмы Byte Craft [4] и компилятор С2С [5],
однако наиболее компактный и эффективный код получается при использовании
компилятора Hitech C, бесплатная версия которого входит в комплект
внутрисхемного эмулятора SX-DEV [6].
Программные симуляторы для
микроконтроллеров SX не пользуются особой популярностью из-за того, что
аппаратные внутрисхемные эмуляторы для них дешевы и удобны в
использовании. Можно отметить бесплатный программный симулятор SxSim [7] и
популярный универсальный симулятор UMPS [8], также поддерживающий
микроконтроллеры SX.
Аппаратные средства
Для программирования микроконтроллеров SX можно использовать различные
решения. Программатор можно собрать самостоятельно, воспользовавшись одной
из опубликованных схем, например, программатор Fluffy. В практической
работе обычно удобнее использовать внутрисхемный программатор, питающийся
от отлаживаемого устройства, например, SX-TIPS фирмы SV TEHS (рис. 1).
SX-TIPS позволяет измерять и подстраивать частоту внутреннего
RC-генератора SX и осуществлять сброс процессора.
Микроконтроллеры SX
имеют встроенную поддержку функций внутрисхемной отладки, поэтому для них
существуют недорогие и удобные в использовании внутрисхемные
эмуляторы.
Внутрисхемный эмулятор SX-KEY фирмы Parallax (рис. 2) был первым
средством отладки для SX. Это маленькая плата, питающаяся от отлаживаемого
устройства. На плате имеется встроенный синтезатор частоты, позволяющий с
определённой дискретностью задать тактовую частоту отлаживаемого
микроконтроллера, при этом подключение внешнего источника тактовой частоты
невозможно. Следует отметить, что программное обеспечение SX-KEY
несовместимо с фирменным ассемблером SASM, эмулятор не поддерживает
низковольтный режим работы и потребляет от отлаживаемого устройства ток
порядка 100 мА. Эмулятор подключается к компьютеру через последовательный
порт.
Внутрисхемный эмулятор SX-ISD фирмы Advanced Transdata (рис.
3)
отличается наличием внешнего входа останова, регулируемого внешнего
источника питания, наличием встроенного синтезатора и возможностью
подключения внешнего источника тактовой частоты, достаточно удобным
программным обеспечением, а также довольно высокой ценой. Эмулятор
подключается к компьютеру через параллельный порт.
Внутрисхемный эмулятор SX-DEV фирмы SV TEHS [6] (рис. 4) использует
6-контактный разъём с ключом от неправильной установки, совместимый с
SX-KEY и SX-ISD. Эмулятор состоит из двух частей: собственно
программатора/эмулятора и модуля реального времени, содержащего генератор
необходимой пользователю тактовой частоты. В модуль реального времени
может быть установлен кварц, керамический резонатор или 4-выводный
генератор частоты, используемой в отлаживаемом устройстве. Эмулятор
поддерживает работу в полном диапазоне напряжения питания и тактовой
частоты для SX и потребляет от отлаживаемого устройства ток менее 5 мА.
Программное обеспечение эмулятора позволяет эффективно отлаживать
программу на уровне исходного текста, в том числе и на уровне исходного
текста Hitech C, полностью поддерживается ассемблер SASM. Поддерживается
эмуляция регистров таймеров, банка памяти 0 и регистра Options для
SX48/52, имеется возможность изменения регистров в процессе эмуляции в
реальном времени. Эмулятор подключается к компьютеру через
последовательный порт.
Примеры применения
Фирма Ubicom опубликовала обширную библиотеку примеров применения
микроконтроллеров SX для различных приложений [2]. Благодаря
фиксированному времени входа в прерывание (3 такта для внутренних
прерываний) и аппаратному сохранению контекста при входе в прерывание,
микроконтроллеры SX позволяют программно обрабатывать многие функции,
ранее выполнявшиеся в виде аппаратных модулей. Такие отлаженные
программные модули собраны в библиотеку виртуальных периферийных
устройств. Уже опубликовано большое число модулей: 2400...230,4K
асинхронный последовательный интерфейс; 8-канальный 19,2-K асинхронный
последовательный интерфейс; 8-разрядный ШИМ; несколько ШИМ выходов;
8-разрядный АЦП; 16-разрядный таймер; I2C ведущий и ведомый; SPI/mWire
ведущий и ведомый; управление шаговым двигателем; сканирование клавиатуры
4x4; формирование FSK; формирование DTMF; формирование синусоидального
сигнала; часы реального времени; 8- и 4-разрядные интерфейсы ЖКИ на
HD44780; BELL-202 FSK модем на 1200 бод; ввод/вывод DTMF; детектирование
Caller ID; детектор вызова; детектор поднятой трубки; ввод/вывод линейных
сигналов; импульсный набор номера и другие. Несколько других интересных
приложений рассмотрим подробнее.
Вывод видео
В январе 2001 года в рамках списка рассылки PICLIST проходил конкурс на
лучший пример применения SX в видеоустройствах. Проект SERVID представляет
собой простейший ASCII видеотерминал на 4 строки по 20 символов,
реализуемый на недорогом SX18. Терминал позволяет выводить данные на
скорости 1200 бод, поддерживает управляющие команды VT52 и автоматический
скроллинг, полностью формирует композитный видеосигнал амплитудой 1 В на
нагрузке 75 Ом (рис. 5).
Выбор чересстрочной или прогрессивной развёртки, числа строк и кадров
для системы PAL/SECAM и NTSC осуществляется условной компиляцией. Исходные
тексты проекта доступны под GPL-лицензией.
Обработка видео
Устройство выделения логотипа LOGO позволяет детектировать наличие
определённого логотипа на телевизионном канале и при его появлении или
исчезновении вырабатывать сигнал. Устройство имеет библиотеку
идентификаторов логотипов, содержащуюся в электрически перепрограммируемой
памяти, а также имеет режим пополнения данной библиотеки на основе анализа
видеоизображения. При включении устройство работает в режиме поиска
логотипа. Если в видеосигнале найден какой-либо логотип из библиотеки,
устройство переходит в режим отслеживания: при пропадании логотипа
устройство плавно (за 300...500 мс) выключает звуковой канал, при
появлении логотипа — так же плавно его включает. При пропадании
синхронизации (переключении каналов) устройство возвращается в режим
поиска логотипа и включает звук, независимо от предыстории. Такой алгоритм
работы позволяет использовать это устройство в качестве блокиратора
телевизионной рекламы — на время коммерческой рекламы телевизионные каналы
снимают логотип канала, а устройство детектирует этот факт, выключает звук
и формирует логический сигнал, который может быть использован для
управления каким-либо внешним устройством, например, паузы
видеомагнитофона, переключения ТВ-канала, включения CD-ROM и так
далее.
Для настройки, задания логотипов и просмотра библиотеки
устройство имеет клавиатуру и режим отображения на экране, аналогичный
предыдущему примеру, только с другими размерами символов. ВидеоАЦП с
разрешением 150 нс по времени и 4 бита по уровню реализован на встроенном
компараторе SX. На входе компаратора формируется ШИМ-сигнал. На выходе ШИМ
формируется прямоугольный сигнал с периодом 64 мкс. При включении и
переключении канала происходит подстройка уровня чёрного — так, чтобы
сигнал на входе компаратора имел нулевой уровень в момент измерения
сигнала на чёрных строках (до начала основного кадра). Период нарастания
ШИМ напряжения на входе компаратора составляет 16 полукадров или 320 мс.
Измерение осуществляется следующим образом: в каждом полукадре для каждой
из 64 обрабатываемых точек логотипа запускается компаратор и определяется
номер полукадра, в котором уровень ШИМ-сигнала превысит уровень
видеосигнала. Номер этого полукадра (4 бита) запоминается в ОЗУ. Так
формируется матрица 32 байта (64 отсчёта). Всё устройство реализовано на
микроконтроллере SX28, FRAM 24C16 и ключе CD4053, для привязки к
видеосигналу используется внешний синхросепаратор LM1881.
Встраиваемый Web-сервер на
Ethernet
Фирма Ubicom опубликовала достаточную полную реализацию TCP/IP-стека
для встраиваемых приложений, работающих на 10BASE-T Ethernet. Модуль
SX-Ethernet построен на микроконтроллере SX52 и микросхеме интерфейса
RTL8019AS, имеет интерфейсы 10BASE-T и RS232. Двухслойная плата имеет
размеры 71x68x16 мм и два 20-контактных разъёма расширения. Для
подключения внешней периферии остаются свободными 16 портов ввода/вывода
SX52 и порт RS-232. Модуль имеет встроенное ЭППЗУ объёмом 256 Кбит для
хранения содержимого web-сервера. Максимальная пропускная способность
такого решения при работе по TCP/IP составляет около 1 Мбит без
модификации стека и до 5 Мбит при оптимизации под конкретную задачу. Всё
программное обеспечение для SX-Ethernet, схемы и чертежи платы свободно
доступны.
Новый интернет процессор
IP2022
В мае 2001 года фирма Ubicom начинает серийный выпуск нового
коммуникационного процессора IP2022. Процессор имеет тактовую частоту 100
МГц, встроенный умножитель частоты, позволяющий использовать внешние
кварцы от 2 МГц и менять тактовую частоту в процессе работы, 16-разрядные
команды, выполняющиеся за 1 такт, аппаратный умножитель 8x8, 64 Кбайт
(32Kx16) флэш-память программы, 16 Кбайт (8Kx16) ОЗУ программы и 4 Кбайт
ОЗУ данных. Обеспечивается гарантированное время реакции на прерывание в
три такта с полным аппаратным сохранением контекста. Имеется встроенный
8-канальный 10-разрядный АЦП с частотой выборки 48 кГц, дополнительный
тактовый генератор 32 кГц для поддержки реального времени, 8/16-разрядный
параллельный интерфейс. Для поддержки внешних интерфейсов имеются два
модуля последовательно-параллельного преобразования, каждый из которых
может быть использован в режимах 10BASE-T Ethernet, USB, SPI, UART, IrDA,
i2C и других. Процессор имеет встроенные средства программирования и
внутрисхемной эмуляции, сильно облегчающие и ускоряющие отладку.
Программное обеспечение Red Hat GNU Tools включает в себя компилятор C,
ассемблер, компоновщик, отладчик, симулятор и оболочку. Для конфигурации
используемых программных модулей предназначена отдельная утилита. Для
нового процессора уже разработан полноформатный TCP/IP-стек и ряд
программных модулей.
Литература
1. А.
Владимиров. Виртуальная периферия становится реальностью // Инженерная
микроэлектроника. 1998. № 4. С. 24–25.
2. Ubicom Application Notes.
3. Ubicom SASM Assembler.
4. Byte Craft SXC
compiler.
5. C2C compiler.
6. Внутрисхемный эмулятор SX-DEV.
7. SxSim
simulator.
8. UMPS simulator.