Радиоконтроллеры семейства B41-RC. Радиомодем и управляющий контроллер в одном модуле
Сергей Богуш, начальник отдела микросистем, Михаил Дябин, руководитель группы отдела микросистем, Михаил Игнатов, программист Отдела Микросистем, Игорь Панкратов, ведущий программист отдела микросистем; «Кедах Электроникс Инжиниринг»
В настоящей статье предлагается описание радиоконтроллеров семейства B41-RC, построенных на основе микроконтроллера В41 и представленных в нескольких вариантах исполнения, отличающихся по частотному диапазону радиоканала, объему установленной флэш-памяти, подключению антенны и другим признакам.
Область применения
Основное назначение радиоконтроллеров семейства B41-RC – применение в качестве аппаратного ядра в портативных системах с радиоканалом. Это могут быть системы цифровой радиосвязи или управляющие системы, в которых радиоканал используется для передачи звукового потока, сигналов управления, показаний датчиков и другой информации. В качестве иллюстраций применения радиоконтроллеров B41-RC можно привести такие примеры, как беспроводные домашние и офисные телефоны, системы дистанционного съема и обработки данных с различного оборудования, системы дистанционного управления промышленными объектами и бытовыми приборами, беспроводные торговые кассовые сети, охранные и противопожарные системы.
Принципиальным отличием радиоконтроллера от радиомодема является то, что кроме обслуживания радиоканала, он имеет аппаратные и вычислительные ресурсы для выполнения функций управления оборудованием и обработки поступающих данных. Использование этих ресурсов позволяет отказаться от дополнительного микроконтроллера в составе устройства, а все задачи управления оборудованием и потоками данных возложить на основной и единственный микроконтроллер В41, являющийся ядром радиоконтроллеров B41-RC. Например, в трубке беспроводного телефона радиоконтроллер, помимо функции обслуживания радиоканала, реализует протокол телефонного соединения (набор номера, установление соединения, управление вызовами и пр.), преобразует формат звукового потока, обслуживает вывод изображения на экран цветного графического OLED- или ЖК-дисплея, поддерживает систему 2-х координатного пиктограммного меню, сканирует клавиатуру и преобразует скан-коды в ASCII-символы, управляет зарядом батареи, осуществляет функционирование файловой системы (телефонная книга, загружаемые мелодии звонка и экранные заставки), реализует сервисные функции (часы, будильник, калькулятор и т.д.). При необходимости, микроконтроллер может выполнять функцию криптографической защиты информации, как с помощью встроенных аппаратных средств, так и путем программной реализации алгоритмов шифрования.
Реализация комплексной задачи обслуживания радиоканала, управления аппаратурой и обработки данных на одном микроконтроллере позволяет минимизировать энергопотребление, массогабаритные показатели и цену конечного изделия. Кроме того, использование радиоконтроллера в качестве аппаратного ядра при разработке специализированных систем позволяет существенно сократить сроки проектирования, освобождает от необходимости решать задачу трассировки сложной печатной платы, содержащей в своем составе ВЧ-тракт, а также задачи, связанные с отладкой и испытаниями радиоканала.
Функциональный состав
Структурная схема радиоконтроллера приведена на рис.1. Радиоконтроллер содержит следующие основные узлы:
микроконтроллер В41-3;
флэш-память для хранения программ и данных;
радиотрансивер;
узел питания.
Рис. 1. Структурная схема радиоконтроллеров B41-RC
Следует подчеркнуть, что задача управления большим количеством оборудования в реальном масштабе времени решается в первую очередь за счет того, что микроконтроллер В41 оснащен 4-х контекстным процессорным ядром, и в нем реализован механизм контекстных прерываний, что кардинальным образом снижает нагрузку на процессорное ядро при обработке прерываний от периферийных устройств. Каждый из 4-х контекстов представляет собой полный набор регистров процессора (регистры общего назначения, сегментные регистры, указатель инструкций, указатель стека, регистр состояния). Механизм контекстных прерываний работает таким образом, что при появлении запроса на прерывание от периферийного устройства и его арбитража происходит аппаратное переключение с текущего набора контекстных регистров на набор, ответственный за активное прерывание, программа обработки которого сразу же начинает выполняться. После ее завершения процессор программно (команда CRET) возвращается к набору контекстных регистров, с которым он работал в момент возникновения запроса на прерывание от периферийного устройства. Благодаря тому, что исключается процедура сохранения содержимого регистров в стеке при входе в программу обработки прерываний и восстановления содержимого регистров при выходе из программы обработки прерываний, резко сокращается время, необходимое на вход в программу обработки прерываний и на выход из нее. По существу такой подход можно представить как работу 4-х виртуальных процессоров, каждый из которых активен в тот момент, когда его задача является наиболее приоритетной.
Широкий набор последовательных интерфейсов (UART, SPI, PCM, I2C), а также три 8-разрядных параллельных порта предоставляют возможность для подключения к радиоконтроллеру разнообразных периферийных устройств. Дополнительно к этому через системную шину (EMI) возможно подключение высокоскоростных устройств, предполагающих обмен большим объемом информации (дополнительная оперативная или флэш-память, Ethernet-контроллер, ЖК- или OLED-дисплеи, контроллер видеокамеры). Краткие характеристики интерфейсов приведены далее.
UART – обеспечивает обмен данными со скоростью до 921, 6 Кбит/с. Используется для загрузки программного обеспечения, вывода отладочной информации и подключения внешних устройств с интерфейсами RS-232 и RS-485 через соответствующие преобразователи уровней. Имеется возможность мультиплексирования основных выводов UART с выводами PIO2 [7:6] параллельного порта.
SPI – позволяет осуществлять обмен данными в дуплексном режиме со скоростью до 12 Мбит/с в режиме Master и 4 Мбит/с в режиме Slave. Предоставляет возможность подключить 2 внешних устройства (с дешифратором – 3). Может быть использован для подключения внешней флэш-памяти или ЖК-дисплея, оснащенных SPI-интерфейсом. При использовании интерфейса следует учитывать, что в радиоконтроллере один из каналов SPI задействован для управления радиотрансивером.
PCM – последовательный синхронный интерфейс для канала звука. Обеспечивает дуплексный канал с фиксированной скоростью 8 тысяч 13–битовых отсч етов в секунду. Служит для подключения звукового PCM-кодека.
I2C – обеспечивает обмен данными со скоростью до 400 Кбит/с. Может быть использован для подключения внешней флэш-памяти или управляющего канала видеосенсора.
PIO0, PIO1, PIO2 – 8-ми разрядные параллельные порты. Могут быть запрограммированы на вход и на выход, при этом разряды, запрограммированные на вход, могут быть в свою очередь запрограммированы на генерацию запроса прерывания по изменению уровня входного сигнала. Порт PIO0 снабжен высокоомными pull-up транзисторами для упрощения реализации сканируемой матричной клавиатуры.
EMI – 16-ти разрядная системная шина (интерфейс внешней памяти). На разъемы радиоконтроллера выведено 16 разрядов данных (EMI_D [15:0]), 8 или 23 (при установленном дополнительным разъеме) разряда адреса (EMI_A [7:0] или EMI_A [22:0]), три сигнала выбора устройства (EMI_CSn [3:1]) и сигналы записи/чтения (EMI_WEn/EMI_OEn). Диаграмма работы шины – стандартная для статических ОЗУ.
Выход PWM предназначен для генерации ШИМ-сигнала, который обычно используется для звуковой индикации (например, вызывной сигнал в телефоне). Формирование сигнала обеспечивается двумя встроенными таймерами микроконтроллера B41.
Наличие выхода питающего напряжения VCC = 3, 0 В позволяет подавать питание на внешнюю периферию без дополнительного стабилизатора напряжения. Механизм управления энергопотреблением радиоконтроллера обеспечивает программное отключение питания и аппаратное его включение с помощью внешнего вывода PwrON.
Конструктивно радиоконтроллер выполнен в виде отдельного модуля и имеет два основных (PLL-40) и один опционный (PLL-20) соединительные разъемы, а также, в зависимости от варианта исполнения, встроенную антенну или ВЧ-разъем для подключения внешней антенны. Внешний вид радиоконтроллеров приведен на рис. 2.
Габариты радиоконтроллера (без антенны) – 53 x 35 x 9 мм.
Масса – не более 15 г.
Электрические параметры
Напряжение питания радиоконтроллера может варьироваться в широком пределе, от 3, 5 до 6, 0 В, поэтому его питание может быть реализовано различными способами: от сетевого 5-ти вольтового источника, через разъем USB-порта персонального компьютера, от Lion аккумулятора (3, 7 В) или батареи из 3-х NiMH аккумуляторов напряжением 1, 2 В каждый.
Рабочий диапазон температур радиоконтроллера зависит от исполнения и составляет 0°...+70°C для варианта «C» и –40...+85°C для варианта «I».
Типовые токи потребления радиоконтроллеров в различных режимах и основные параметры радиоканала представлены в таблицах 1 и 2 соответственно.
Таблица 1. Типовой ток потребления
Режим |
Значение |
Условия измерения |
|
В режиме «Выключено» |
не более 50 мкА |
||
В дежурном режиме |
0, 8 мА |
Активны только сторожевой таймер и служба реального времени |
|
При минимальной мощности (PRF) передатчика |
B41-RCb (a) |
70 мА |
PRF = 0 dBm |
B41-RCc |
25 мА |
PRF = 0 dBm |
|
При максимальной мощности (PRF) передатчика |
B41-RCb (a) |
105 мА |
PRF = 16 dBm |
B41-RCc |
30 мА |
PRF = 10 dBm |
Таблица 2. Основные параметры радиоканала
Параметр |
Знаячение |
Примечание |
|
Частотный диапазон |
B41-RCc-433 |
433 МГц |
|
B41-RCc-455 |
455 МГц |
||
B41-RCc-868 |
868 МГц |
||
B41-RCc-915 |
915 МГц |
||
B41-RCb(a) |
2400 МГц |
||
Тип радиоканала |
FHSS (со скачкообразным изменением частоты) |
||
Тип дуплекса |
TDD (временной дуплекс) |
||
Тип модуляции |
GFSK (Гауссовская частотная ма
нипуляция)
|
||
Максимальная битовая скорость в канале |
B41-RCb(a) |
1 Мбит/с |
|
B41-RCc |
B41-RCc |
||
Чувствительность приемника |
–90 dBm |
при BER = 0, 1% |
|
Максимальная выходная мощность передатчика |
B41-RCb(a) |
16 dBm |
|
B41-RCc |
10 dBm |
Варианты исполнения
В настоящее время существуют следующие основные варианты исполнения радиоконтроллеров:
B41-RCс-433 – радиоконтроллер для диапазона 433 МГц;
B41-RCс-455 – радиоконтроллер для диапазона 455 МГц;
B41-RCс-868 – радиоконтроллер для диапазона 868 МГц (под заказ);
B41-RCс-915 – радиоконтроллер для диапазона 915 МГц (под заказ);
B41-RCb – радиоконтроллер для диапазона 2400 МГц;
B41-RCba – 2400 МГц с интегрированной планарной антенной.
В типовом исполнении радиоконтроллеры оснащаются флэш-памятью объ емом 512 Кбайт. Кроме того, они могут быть оснащены флэш-памятью объ емом 256 Кбайт (экономичный вариант для простых приложений) или 2-х банковой памятью (dual bank) объ емом 2 Мбайта. Использование 2-х банковой организации памяти оптимально для поддержки файловой системы, поскольку это позволяет размещать е е программные средства в одном из банков флэш-памяти, в то время как второй используется для хранения файлов (при использовании стандартной флэш-памяти часть программных средств, непосредственно выполняющих запись, приходится размещать во встроенном ОЗУ, поскольку невозможно чтение программного кода из того банка, в который выполняется запись).
Каждый из вышеперечисленных вариантов (за исключением B41-RCba) может быть поставлен либо с установленной на плату антенной, либо с ВЧ-разъемом для подключения внешней антенны. С целью разъяснения других возможных вариантов исполнения ниже приведен пример кода заказа и его расшифровка.
B41-RCC-433_М5-A2I
B41 – тип микроконтроллера;
RСс – вариант базового исполнения:
– RCc – для диапазонов 433ѕ915 МГц;
– RCв – для диапазона 2400 МГц;
– RCва – 2400 МГц с интегрированной антенной.
433 – частотный диапазон:
– 433 – диапазон 433 МГц;
– 455 – диапазон 455 МГц;
– 868 – диапазон 868 МГц;
– 915 – диапазон 915 МГц;
– 2400 – диапазон 2400 МГц.
M5 – объем флэш-памяти:
– М2 – 256 Кб;
– М5 – 512 Кб;
– 2М – 2 Mб, одновременные чтение и запись.
A – антенна:
– А – установлена;
– М – установлен ВЧ-разъем MMCX типа;
– N – не установлена;
2 – дополнительный разъем:
– 2 – не установлен;
– 3 – установлен;
I – диапазон рабочих температур:
– C – 0...+70°C;
– I – –40...+85°C.
Средства аппаратной отладки
Для ускорения процесса разработки и отладки аппаратных средств и программного обеспечения на базе радиоконтроллеров семейства B41-RC выпущен отладочный комплект B41-DKit. С помощью этого комплекта разработчик может провести исследование режимов работы радиоконтроллера, подготовить макетный вариант разрабатываемой системы, а также провести отладку программного обеспечения. Внешний вид отладочного комплекта B41-DKit представлен на рис. 3.
Основу комплекта B41-DKit составляет кросс-плата B41-Cross, на которой размещены три унифицированных и один специализированный разъ емы для установки радиоконтроллера и периферийных модулей, разъем интерфейса UART для подключения к СОМ-порту компьютера посредством загрузочного кабеля, разъ ем питания и некоторые другие элементы. Каждый комплект состоит из двух полукомплектов.
Базовая конфигурация полукомплекта включает следующие модули:
B41-Cross – кросс-плата комплекта.
B41-RCс-433 или B41-RCв – радиоконтроллер для диапазона 433 МГц или 2400 МГц.
Загрузочный кабель – кабель для загрузки программ через COM-порт ПК.
OLED-b41-fc или OLED-b41-be – модуль цветного (262K цветов, 128 Ч 128 точек) или монохромного (голубого свечения, 128 Ч 32 точек) OLED-дисплея соответственно.
PROTO-b41 – макетная плата.
Базовая конфигурация может быть расширена перечисленными ниже модулями:
B41-RCc-433/455/868/915 или B41-RCb/B41-RCba – дополнительные радиоконтроллеры для диапазонов 433/455/868/915/2400 МГц соответственно.
AUDIO-b41 – звуковой модуль.
USB-b41 – USB-модуль.
ENET-b41 – Ethernet-модуль.
RS485-b41 – преобразователь уровней интерфейса RS-485.
RS232-b41 – преобразователь уровней интерфейса RS-232.
ACDC-5V5-A5 – адаптер сетевого питания (~220V/+5V).
В дальнейшем предусматривается дополнить комплект ещ е несколькими узлами:
FPGA-b41 – FPGA-модуль (для макетирования узлов на FPGA, загружаемой от B41).
KeyPad-b41 – клавиатура.
Bat-b41 – модуль батарейного питания.
Следует отметить, что, установив в специализированный разъ ем кросс-платы (Pos.1) второй радиоконтроллер, с помощью B41-DKit возможно отлаживать и двухпроцессорные конфигурации.
B41OS – операционная система реального времени
Отладочный комплект B41-DKit поставляется вместе со средствами разработки и отладки прикладного программного обеспечения микроконтроллера B41 – B41_SDK. Их основой являются: отладочный монитор-загрузчик B41_Loader, оптимизирующий компилятор с языка C++, операционная система B41OS и постоянно пополняемая C++ библиотека.
В предыдущей статье мы вкратце коснулись операционной системы B41OS как основы программирования для систем на базе микроконтроллера B41. Поскольку радиоконтроллеры семейства B41-RC как раз и являются представителями такого рода систем, рассмотрим B41OS более подробно.
Итак, напомним, что поддерживающая вытесняющую многозадачность операционная система реального времени В41OS управляет приложениями, реализует доступ к периферийным устройствам и обеспечивает минимально необходимый пользовательский интерфейс. Далее рассмотрим основные средства, предоставляемые операционной системой.
Функции для работы с нитями – предназначены для создания, удаления и остановки нитей:
– thread* create_thread (LPTHREAD_START_ROUTINE fn, LPVOID arg, pr_t prioritet, uint stack_size, char* thread_name) – создает нить;
– thread* fork() – создает копию текущей нити, возвращает нулевой указатель порожденной нити (потомку) и указатель на потомка родительской нити;
– bool kill_thread (thread* th) – уничтожает нить;
– void sleep (uint timeout) – приостанавливает текущую нить на время timeout;
– void resume (thread* th) – перезапускает нить;
– void suspend () – останавливает текущую нить;
– class thread – класс управления нитями.
Средства синхронизации.
– class event – позволяет осуществлять взаимодействие между процессами.
Функции класса:
uint wait (uint timeout) – ожидает событие в течении времени timeout;
void set() – выставляет событие;
void reset() – сбрасывает событие;
– class eventx – является расширением класса event, по сравнению с базовым классом он позволяет управлять 16 событиями одновременно (под каждое событие отводится 1 бит);
– template <class T> class msg_queue – шаблон класса, позволяет конструировать очереди сообщений
– class mutex – класс синхронизации процессов.
Таймеры.
– class fast_timer – является низкоуровневым таймером и имеет наивысший приоритет, позволяет оперировать с таймером как в режиме одноразового запуска, так и в мульти- режиме; особенностью данного класса является то, что функция пользователя должна быть небольшого размера;
– class timer – является аналогом fast_timer, за исключением того, что он не накладывает никаких ограничений на функцию-обработчик;
– class c_timer – так же является аналогом fast_timer, только функция- обработчик запускается из другого контекста; ограничения на размер обработчика еще более строги, чем для fast_timer.
Функции для работы с памятью.
– void* malloc (uint size) – выделяет блок памяти;
– void free (void *addr) – освобождает ранее выделенный блок памяти;
– void* realloc (void * addr, uint new_size) – изменяет размер блока памяти.
Наиболее употребительные интерфейсы (абстрактные классы). Операционная система разрабатывалась с использованием принципов объектно-ориентированного программирования.
Благодаря абстрактным классам, появляется возможность скрыть детали реализации и предоставить пользователю единый интерфейс для решения однотипных задач.
– class pipe_i – интерфейс двунаправленного канала ввода/вывода;
– class mux_i – интерфейс мультиплексора;
– class file_i – интерфейс для работа с файлами.
Драйверы периферийных устройств и вспомогательные классы. Все драйверы, за исключением rf_link, представляют собой реализацию pipe_i интерфейса, что позволяет пользователю единообразно работать с различными устройствами.
– class сom – реализация pipe_i интерфейса для com-порта;
– class usb – реализация pipe_i интерфейса для usb;
– class rf_com – реализация pipe_i интерфейса для радиоканала;
– class rf_link – низкоуровневый драйвер радиоканала;
– class mon – отладочный монитор, обеспечивает взаимодействие микроконтроллера B41 с персональным компьютером.
Файловая система.
B41FFS – файловая система на основе YAFFS. Предоставляет стандартный интерфейс работы с файлами и каталогами, при помощи функций: open (), close (), rename (), kill (), mk (), cd (), find (). Работа с файлами осуществляется через pipe_i интерфейс.
Сравнительный анализ
В заключение оценим эффективность применения радиоконтроллеров семейства B41-RC. Эквивалентом радиоконтроллера B41-RC является комбинация радиомодема и управляющего контроллера. При таком решении часть аппаратуры фактически дублируется, и появляются лишние элементы сопряжения. Из этого следуют несколько преимуществ системы, построенной на базе B41-RC:
компактные размеры;
уменьшенная потребляемая мощность;
низкая цена.
Еще одним преимуществом радиоконтроллеров является оперативность их программирования, что позволяет с одной стороны оптимизировать протокол радиоканала под конкретную задачу, а с другой – проводить в ходе эксплуатации модернизацию системы путем обновления программного обеспечения.
Наличие однотипных радиоконтроллеров для различных частотных диапазонов позволяет изменять частотный диапазон конечного изделия простой заменой платы радиоконтроллера без доработки аппаратуры и с минимальными изменениями программного кода (изменяются частотные константы). И, наконец, развитые средства операционной системы, наличие постоянно пополняемой открытой библиотеки функций и возможность отладки макета системы с помощью штатных модулей отладочного комплекта B41-DKit позволяют существенно сократить сроки разработки и отладки проектов с применением радиоконтроллеров семейства B41-RC.