№10 / 2014 / статья 2

CC3100 – сетевой процессор для «Интернета вещей». Часть I

Олег Пушкарев (КОМПЭЛ)

Сетевой процессор CC3100 от Texas Instruments – это добавление полнофункционального Wi-Fi к различным встраиваемым системам. Чувствительность приемника — 95,7 дБм, выходная мощность +18 дБм, скорость передачи полезных данных в режиме UDP до 16 Мбит/с – плюс большое количество протоколов шифрования и индустриальный рабочий температурный диапазон.

ris_0_optКомпания Texas Instruments в 2014 году выпустила сетевой процессор CC3100, предназначенный для дополнения различных встраиваемых систем беспроводным интерфейсом Wi-Fi 802.11 b/g/n. Сетевой процессор СС3100 выполнен в виде одной микросхемы (рисунок 1), включающей радиочасть, обработчики сигнала основной полосы частот (baseband) и MAC-уровня, встроенный процессор ARM, реализующий полный набор стеков протоколов Wi-Fi, TCP/IPv4 и вспомогательные функции (шифрование и сетевые утилиты). Микросхема содержит память ROM и RAM, подсистему питания со встроенным DC/DC-преобразователем и схему тактирования. В качестве внешнего интерфейса к хост-контроллеру может использоваться UART (до 3 Мбит/c) или SPI (Clock до 20 МГц). Микросхема CC3100 не предполагает загрузку пользовательского приложения – она всегда работает под управлением внешнего хоста, в качестве которого может использоваться относительно слабый 8-/16-/32-битный микроконтроллер любого производителя (рисунок 2).

Рис. 1. Состав CC3100

Рис. 1. Состав CC3100

Рис. 2. Подключение CC3100 к хост-процессору

Рис. 2. Подключение CC3100 к хост-процессору

К управляющему микроконтроллеру не предъявляется высоких требований: например, для создания на хосте приложения TCP Client потребуется лишь 7 кбайт FLASH-памяти и 700 байт RAM. Во внешнем микроконтроллере выполняется приложение пользователя, которое взаимодействует с CC3100 через драйвер Simple Link Driver, предоставляемый производителем в исходных кодах.

Рис. 3. Взаимодействие ПО хоста и CC3100

Рис. 3. Взаимодействие ПО хоста и CC3100

Схема взаимодействия ПО на хосте со встроенными стеками протоколов внутри CC3100 приведена на рисунке 3. СС3100 может работать в режимах «Wi-Fi–клиент», «Точка доступа» (Acceess Point) и «Wi-Fi Direct» (не одновременно).

Технические параметры СС3100

Сетевой процессор СС3100 отличается высоким качеством радиотракта – чувствительность приемника достигает -95,7 дБм, а выходная мощность +18 дБм (при 1 Мбайт/с). Радио поддерживает функцию автокалибровки и имеет несимметричный пятидесятиомный интерфейс, что обеспечивает простое подключение к антенне.

Производительное внутреннее процессорное ядро способно обеспечить высокие скорости передачи полезных данных в режиме UDP до 16 Мбит/с, а при использовании TCP – до 12 Мбит/с. Скорость в радиоканале существенно выше – до 150 Мбит/с (MCS7), однако это влияет лишь на тот факт, что СС3100 не будет снижать общей производительности Wi-Fi-сети.

Микросхема работает в индустриальном температурном диапазоне (-40…85°С) и поддерживает большое количество протоколов шифрования (WPA2; SSL 3.0/TLS 1.2), что позволяет с успехом использовать ее в различных промышленных приложениях. Встроенный TCP/IP-стек протоколов IPv4 (BSD socket APIs, Web server, UDP, TCP) и различные сервисы (ARP, ICMP, DHCP, DNS) существенно упрощают создание сетевых приложений различной конфигурации. Одновременно можно открывать до восьми сокетов TCP/UDP/RAW или до двух защищенных сокетов TLS/SSL. В таблице 1 приведен основной сетевой функционал СС3100.

Таблица 1. Сетевые возможности CC3100

Область Категория Функционал Примечание
TCP/IP Сетевой стек IPv4 Базовый вариант стека IPv4
TCP/IP Сетевой стек TCP/UDP Основные протоколы
TCP/IP Протоколы DHCP Режимы «Клиент» и «Сервер»
TCP/IP Протоколы ARP Поддержка протокола ARP
TCP/IP Протоколы DNS/mDNS Определение адреса по имени (DNS Address resolution) и локальный сервер
TCP/IP Протоколы IGMP До 3 IGMPv3 для управления мультикастом
TCP/IP Приложения mDNS Поддерживается мультикастовый mDNS для объявления сервисов через IP (service publishing over IP)
TCP/IP Приложения mDNS-SD Протокол обнаружения сервисов через IP в локальной сети
TCP/IP Приложения WEB Server/HTTP Server Формирование статических и динамических ответов с использованием шаблонизатора
TCP/IP Безопасность TLS/SSL TLS v1.2 (client/server)/ SSL v3.0
TCP/IP Безопасность TLS/SSL Для поддерживаемых Cipher Suite смотрите Simple Link Wi-Fi CC3100 SDK
TCP/IP Сокеты RAW Sockets Определяемая пользователем инкапсуляция на уровнях WLAN MAC/PHY или IP
WLAN Подключение Policies Позволяет управлять подключением и переподключением к той или иной доступной Wi-Fi-сети
WLAN MAC Promiscuous Mode Режим приема всех фреймов с фильтрацией (независимо от того, кому они адресованы)
WLAN Производительность Initialization time Менее 50 мс с момента сигнала enable до первого соединения в режиме точки доступа
WLAN Производительность Throughput UDP = 16 Мбит/с
WLAN Производительность Throughput TCP = 12 Мбит/с
WLAN Инициализация WPS2 Регистрация с помощью нажатия кнопки или с помощью PIN
WLAN Инициализация AP Config Режим точки доступа для первоначального конфигурирования продукта (через WEB-интерфейс и beacon info element)
WLAN Инициализация SmartConfig Альтернативный метод для первоначального конфигурирования продукта
WLAN Роль Station Одиночный клиент (802.11.2bgn) с действующими режимами энергосбережения 802.11
WLAN Роль Soft AP Одиночная точка (802.11.2bgn) доступа с действующими режимами энергосбережения 802.11
WLAN Роль P2P Поддержка P2P в качестве Group Owner
WLAN Роль P2P Поддержка P2P в качестве Client
WLAN Безопасность STA-Personal WPA2 personal security
WLAN Безопасность STA-Enterprise WPA2 enterprise security
WLAN Безопасность STA-Enterprise EAP-TLS
WLAN Безопасность STA-Enterprise EAP-PEAPv0/TLS
WLAN Безопасность STA-Enterprise EAP-PEAPv1/TLS
WLAN Безопасность STA-Enterprise EAP-PEAPv0/MSCHAPv2
WLAN Безопасность STA-Enterprise EAP-PEAPv1/MSCHAPv2
WLAN Безопасность STA-Enterprise EAP-TTLS/EAP-TLS
WLAN Безопасность STA-Enterprise EAP-TTLS/ MSCHAPv2
WLAN Безопасность AP-Personal WPA2 personal security

 

СС3100 работает в широком диапазоне напряжения питания 2,1…3,6 В. Низкий потребляемый ток (33 мА в режиме прослушивания, 55 мА в режиме приема, 85 мкА в режиме сна) и быстрый переход в рабочее состояние (95 мс) позволяют с успехом применять CC3100 во встраиваемых Wi-FI-устройствах, которые могут год и более работать от комплекта из двух батарей формата AA.

Больше технических параметров CC3100 можно найти в таблице 2.

Таблица 2. Технические характеристики CC3100

Параметр Значение
Тип устройства Wireless Network Processor
Основной фунционал Wi-Fi 802.11bgn, STA, AP & Wi-Fi Direct Mode, SmartConfig
Функции, реализованные в ROM Wi-Fi Driver & Supplicant, TCP/IP Stack, TLS/SSL Stack
Мультисокеты 8 Simultaneous TCP or UDP Sockets, 2 Simultaneous TLS and SSL Sockets
Пропускная способность, макс. Мбит/с 16 (UDP), 12 (TCP)
Поддержка шифрования 256-Bit AES Encryption for TLS and SSL Connections
Внешние интерфейсы SPI, UART
Ресурсы хост-процессора Less Than 7KB of Code Memory and 700 B of RAM required for TCP Client Application
Напряжение питания, В 2,1…3,6
Потребление Wi-Fi RX, мА 53 (@54 OFDM)
Потребление Wi-Fi TX, мА 223 (@ 54 OFDM, 14.5 дБм)
Потребление Wi-Fi Idle Connect, мА 0,69 (DTIM = 1)
Потребление в режимах сна, мкА Hibernate with RTC: 4, Low-Power Deep Sleep (LPDS): 115
Выходная мощность Wi-Fi TX, дБм 18,0 (@ 1 DSSS)
Чувствительность Wi-Fi RX, дБм -95,7 (@ 1 DSSS)
Рабочий диапазон температур, °C -40…85
Корпус, мм VQFN (64-pin QFN); 9×9; шаг 0,5

Схема включения CC3100 приведена на рисунке 4

Рис. 4. Схема включения CC3100

Рис. 4. Схема включения CC3100

Обозначения выводов микросхемы и их функции перечислены в таблице 3.

Таблица 3. Выводы CC3100 и их назначение

Номер
вывода
Функция
по умолчанию
Состояние при сбросе
и в режиме Hibernate
Тип линии Описание
1 Не подключен Hi-Z N/A Не используется. Оставить неподключенным
2 nHIB Hi-Z Вход Вход сигнала Hibernate (активный низкий) для перевода СС3100 в режим сна; возможно подключение к Vcc через резистор 100k, если режим Hibernate не используется
3 Зарезервирован Hi-Z N/A Зарезервирован для будущего использования
4 FORCE_AP Hi-Z Вход Для принудительного перевода CC3100 в режим AP необходимо подтянуть к высокому уровню на плате через резистор 100k; в ином случае – притянуть к земле через резистор 100k*
5 HOST_SPI_CLK Hi-Z Вход Хост-интерфейс SPI: тактирование шины
6 HOST_SPI_MOSI Hi-Z Вход Хост-интерфейс SPI: линия входа данных
7 HOST_SPI_MISO Hi-Z Выход Хост-интерфейс SPI: линия выхода данных
8 HOST_SPI_CS Hi-Z Вход Хост-интерфейс SPI: линия выбора кристалла
9 VDD_DIG1 Hi-Z Питание Питание цифрового ядра (1,2 В)
10 VIN_IO1 Hi-Z Питание Питание блока ввода-вывода
11 FLASH_SPI_CLK Hi-Z Выход Интерфейс Flash SPI: тактирование шины
12 FLASH_SPI_MOSI Hi-Z Выход Интерфейс Flash SPI: линия выхода данных
13 FLASH _SPI_MISO (active high) Hi-Z Вход Интерфейс Flash SPI: линия входа данных
14 FLASH _SPI_CS Hi-Z Выход Интерфейс Flash SPI: линия выбора кристалла
15 HOST_INTR Hi-Z Выход Выход прерывания
16 Не подключен Hi-Z N/A Не используется; оставить неподключенным
17 Не подключен Hi-Z N/A Не используется; оставить неподключенным
18 Не подключен Hi-Z N/A Не используется; оставить неподключенным
19 Не подключен Hi-Z N/A Не используется; оставить неподключенным
20 Не подключен Hi-Z N/A Не используется; оставить неподключенным
21 SOP2/TCXO_EN Hi-Z Выход Сигнал разрешения внешнего TCXO; притянуть к земле через резистор 10k
22 WLAN_XTAL_N Hi-Z Аналоговый Подключение XTAL 40 МГц
23 WLAN_XTAL_P Hi-Z Аналоговый Подключение XTAL 40 МГц
24 VDD_PLL Hi-Z Питание Питание внутреннего PLL (1,4 В номин.)
25 LDO_IN2 Hi-Z Питание Вход питания внутреннего LDO
26 Не подключен Hi-Z N/A Не используется; оставить неподключенным
27 Не подключен Hi-Z N/A Не используется; оставить неподключенным
28 Не подключен Hi-Z N/A Не используется; оставить неподключенным
29 Зарезервирован Hi-Z Выход Зарезервирован для будущего использования
30 Зарезервирован Hi-Z Выход Зарезервирован для будущего использования
31 RF_BG Hi-Z Радио Радиочастотный TX/RX 2,4 ГГц
32 nRESET Hi-Z Вход Вход сброса (активный низкий); подключить RC-цепочку (100k||0,1 мкФ) для автоматического сброса при подачке питания
33 VDD_PA_IN Hi-Z Питание Питание для радиочастотного усилителя мощности (PA)
34 SOP1 Hi-Z N/A Подключить резистор 100k на землю
35 SOP0 Hi-Z N/A Подключить резистор 100k на землю
36 LDO_IN1 Hi-Z Питание Вход питания внутреннего LDO
37 VIN_DCDC_ANA Hi-Z Питание Питание на DC/DC для аналогового узла
38 DCDC_ANA_SW Hi-Z Питание Выход ключа DC/DC для аналогового узла
39 VIN_DCDC_PA Hi-Z Питание Вход питания DC/DC для PA
40 DCDC_PA_SW_P Hi-Z Питание Выход ключа +ve DC/DC для PA
41 DCDC_PA_SW_N Hi-Z Питание Выход ключа –ve DC/DC для PA
42 DCDC_PA_OUT Hi-Z Питание Выход DC/DC для PA; Подключить сюда выходную емкость для DC/DC
43 DCDC_DIG_SW Hi-Z Питание Выход ключа DC/DC для цифровых узлов
44 VIN_DCDC_DIG Hi-Z Питание Вход питания DC/DC для цифровых узлов
45 DCDC_ANA2_SW_P Hi-Z Питание Выход ключа +ve DC/DC для аналогового узла 2
46 DCDC_ANA2_SW_N Hi-Z Питание Выход ключа -ve DC/DC для аналогового узла 2
47 VDD_ANA2 Hi-Z Питание Вход источника питания для аналогового узла 2
48 VDD_ANA1 Hi-Z Питание Вход источника питания для аналогового узла 1
49 VDD_RAM Hi-Z Питание Источник питания для внутреннего ОЗУ
50 UART1_nRTS Hi-Z Выход Хост-интерфейс UART
51 RTC_XTAL_P Hi-Z Аналоговый 32,768 кГц XTAL_P/внешний CMOS такт
52 RTC_XTAL_N Hi-Z Аналоговый 32,768 кГц XTAL_N/100k внешняя подтяжка к питанию
53 Не подключен Hi-Z N/A Не используется; оставить неподключенным
54 VIN_IO2 Hi-Z Питание Источник питания I/O; такой же, как и напряжение батареи питания
55 UART1_TX Hi-Z Выход Хост-интерфейс UART; подключить к контрольной точке на прототипе для программирования Flash
56 VDD_DIG2 Hi-Z Питание Источник питания цифровой части (1,2 В)
57 UART1_RX Hi-Z Вход Хост-интерфейс UART; подключить к контрольной точке на прототипе для программирования Flash
58 TEST_58 N/A Тестовый сигнал; подключить ко внешней контрольной точке
59 TEST_59 N/A Тестовый сигнал; подключить ко внешней контрольной точке
60 TEST_60 Hi-Z Выход Тестовый сигнал; подключить ко внешней контрольной точке
61 UART1_nCTS Hi-Z Вход Хост-интерфейс UART
62 TEST_62 Hi-Z Выход Тестовый сигнал; подключить ко внешней контрольной точке
63 Не подключен Hi-Z Вход/Выход Оставить неподключенным
64 Не подключен Hi-Z Вход/Выход Оставить неподключенным
65 GND Питание Земляной вывод используется как теплоотвод и электрическая земля
* – с помощью конфигурационного файла, сохраненного во Flash, производитель может опционально блокировать любую возможность запуска микросхемы в режиме Access Point c помощью вывода FORCE_AP.

Внешняя Serial Flash

Несмотря на то, что сетевой процессор CC3100 является однокристальным решением, для нормальной работы к нему необходимо подключить внешнюю микросхему последовательной Flash-памяти (SFLAH) емкостью 2…8 Мбайт. На чипе СС3100 для подключения внешней Flash-памяти предусмотрен отдельный SPI-интерфейс (рисунок 5).

Рис. 5. Подключение внешней Flash-памяти по SPI

Рис. 5. Подключение внешней Flash-памяти по SPI

Внешняя Flash-память используется для хранения проприетарной файловой системы, которая включает файлы сервисного обслуживания (service pack, версия 1.0.0.1.1 на момент написания статьи), системные файлы, настройки конфигурации, сертификаты, файлы WEB-страниц и пользовательские данные. С помощью специальных команд, поддерживаемых через API-драйверы, разработчик может определить объем внешней SFLASH, которая отводится под файловую систему. Стартовый адрес файловой системы не может устанавливаться произвольно и всегда располагается в начале SFLASH. Внешний микроконтроллер должен обращаться к SFLAH через файловую систему с помощью функций CC3100 (не напрямую!). Файлы, сохраняемые на SFLAH, имеют легко читаемые текстовые имена. Используемый для работы с файлами API-интерфейс оперирует простыми текстовыми именами, при этом шифрация и дешифрация файлов незаметны для пользователя. К зашифрованным данным можно получить доступ исключительно через файловую систему.

Всего в файловом хранилище может располагаться не более 128 файлов. Минимальный размер файла – 4 кбайт (размер одного блока). Защищенные файлы в формате хранения fail-safe занимают удвоенный объем относительно оригинального размера. Максимальный размер файла не может превышать 16 Мбайт. В таблице 4 приведены размеры некоторых служебных файлов и рекомендованный объем внешней SFLASH.

Таблица 4. Размеры файлов и объем SFLASH

Параметр Типичное значение
в формате Fail-safe в формате Non Fail-safe
Файловая система (File system), Кбайт 20
Файл сервисного обслуживания (Service pack), Кбайт 224 112
Системные и конфигурационные фалы, Кбайт 216 108
Всего, Мбайт 4 2
Рекомендовано, Мбайт 8 4

Микросхема СС3100 поддерживает спецификацию JEDEC SFDP (Serial Flash Device Parameters). Следующие микросхемы последовательной памяти были проверены на совместимость с СС3100:

  • Micron (N25Q128-A13BSE40): 128 Mбайт;
  • Spansion (S25FL208K): 8 Mбайт;
  • Winbond (W25Q16V): 16 Mбайт;
  • Adesto (AT25DF081A): 8 Mбайт;
  • Macronix (MX25L12835F-M2): 128 Mбайт;
  • Используемая в референс-дизайне M25PX80-VMN6TP, W25Q80BWZPIG

Для совместимости с СС3100 последовательная Flash-память должна поддерживать следующие команды:

  • Команда 0x9F (читать device ID [JEDEC]). Процедура: SEND 0x9F, READ 3 байт.
  • Команда 0x05 (читать статус SFLASH). Процедура: SEND 0x05, READ 1 byte. Предполагается, что бит 0 – это признак «busy», бит 1 является разрешением на запись.
  • Команда 0x06 (установить write enable). Процедура: SEND 0x06, далее читаем статус до тех пор, пока не установится бит write-enable.
  • Команда 0xC7 (стирание кристалла). Процедура: SEND 0xC7, далее читаем статус, пока не будет очищен бит «busy».
  • Команда 0x03 (чтение данных). Процедура: SEND 0x03, SEND 24-бит адреса, чтение n байт.
  • Команда 0x02 (запись страницы). Процедура: SEND 0x02, SEND 24-бит адреса, запись n байт (0<n<256).
  • Команда 0x20 (стирание сектора). Процедура: SEND 0x20, SEND 24-бит адреса, чтение статуса пока не будет очищен бит «busy». Предполагается, что размер сектора всегда равен 4 кбайт.

Тактирование СС3100

Для нормальной работы СС3100 требуется две отдельные тактовые частоты – низкочастотный тактовый сигнал с частотой 32768 Гц для часов реального времени и высокочастотный сигнал 40 МГц для внутреннего процессора и подсистемы WLAN. CC3100 содержит встроенные схемы генераторов, что позволяет подключать к микросхеме недорогие кварцевые резонаторы, а не специальные TCXO-генераторы для этих частот. В качестве низкочастотного сигнала можно воспользоваться уже существующим в разрабатываемой системе тактовым сигналом 32,768 кГц, чтобы снизить общую стоимость устройства. Точность тактовой частоты для RTC должна быть не хуже 150 ppm. Подключение низкочастотного кварца показано на рисунке 6, использование внешнего тактового сигнала на рисунке 7.

Рис. 6. Подключение внешнего кварца 32768 Гц

Рис. 6. Подключение внешнего кварца 32768 Гц

Рис. 7. Подключение внешнего тактового сигнала 32768 Гц

Рис. 7. Подключение внешнего тактового сигнала 32768 Гц

В качестве кварца для высокочастотного тактового сигнала требуется кристалл 40 МГц с результирующей точностью (Initial + temp + aging) не ниже 20 ppm (рисунок 8). Возможно применение внешнего TCXO с теми же характеристиками. В этом случае вывод WLAN_XTAL_N следует подключить к земле для снижения энергопотребления (рисунок 9).

Рис. 8. Подключение внешнего кварца 40 МГцРис. 8. Подключение внешнего кварца 40 МГц

Рис. 8. Подключение внешнего кварца 40 МГц

Рис. 9. Подключение TCXO 40 МГц

Рис. 9. Подключение TCXO 40 МГц

Внешним TCXO можно управлять с помощью линии TCXO_EN (вывод 21) со стороны CC3100, чтобы оптимизировать потребляемую мощность системы. Если внешний ТСХО не имеет входа разрешения, то рекомендуется добавить внешний LDO со входом разрешения. Использование LDO улучшает шум на линии питания внешнего ТСХО.

Подсистема управления питанием CC3100

Подсистема управления питанием содержит DC/DC-преобразователи, которые вырабатывают различные напряжения для питания внутренних узлов CC3100:

  • DC/DC для цифровых узлов (digital DC/DC):
    • вход VBAT с широким диапазоном напряжений 2,1…3,6 В или предварительно регулируемое напряжение 1,85 В.
  • DC/DC для аналогового узла 1 (ANA1 DC/DC):
    • вход VBAT с широким диапазоном напряжений 2,1…3,6 В;
    • при использовании предварительно регулируемого напряжения 1,85 В преобразователь ANA1 DC-DC обходится (ANA1 DC-DC отключен).
  • DC/DC усилителя мощности (PA DC/DC):
    • вход VBAT с диапазоном напряжений 2,1…3,6 В;
    • при использовании предварительно регулируемого напряжения 1,85 В преобразователь PA DC/DC обходится (PA DC/DC отключен).

СС3100 представляет собой однокристальное решение, которое используется во встраиваемых системах с широким диапазоном напряжения питания. Встроенная схема управления питанием включает несколько DC/DC и LDO, генерирующих все необходимые внутренние напряжения. Для максимальной гибкости предусмотрено несколько режимов организации питания устройства:

  • Линия VBAT используется при питании непосредственно от батареи с широким размахом допустимых напряжений. Все другие напряжения, требуемые для работы устройства, вырабатываются внутренними DC/DC-преобразователями. Эта схема является наиболее общей для СС3100, так как в этом случае поддерживается нормальная работа при изменении внешнего напряжения от 2,1 до 3,6 В.
  • Предварительно регулируемое напряжение 1,85 В от внешнего источника питания подается непосредственно на следующие выводы CC3100: 10, 25, 33, 36, 37, 39, 44, 48, 54. Линии VBAT и VIO также подключены к внешнему источнику питания 1,85 В. Этот режим обеспечивает минимальное число внешних компонентов и позволяет не применять кондкнсатор 22 мкФ и индуктивности для узлов PA DC/DC и ANA1 DC/DC (2,2 и 1 мкГн). Внешний регулятор 1,85 В должен обеспечивать следующие характеристики:
    • ток не менее 900 мА;
    • регулирование по входу и выходу с пульсациями менее 2% при скачке тока 500 мА и со временем установки менее 4 мкс;
    • регулятор должен быть размещен в непосредственной близости от CC3100.

Для оптимизации потребления энергии при неактивности в течение определенного периода СС3100 автоматически входит в режим глубокого сна (LPDS). Устройство может проснуться от внутреннего таймера или по команде с хоста за время менее чем 3 мс. Типичное потребление в этом режиме составляет 115 мкА. В режиме LPDS устройство сохраняет свое программное состояние и определенную конфигурационную информацию. Операция прозрачна для внешнего хоста, поэтому не требует дополнительного квитирования (handshake) для входа или выхода из этого режима.

Нibernate – режим с наименьшей потребляемой мощностью. В нем снимается питание цифровой части. Напряжение от основного источника питания подается лишь на небольшую часть логики. Часы реального времени (RTC) продолжают работать. СС3100 может быть разбужено сигналом от хоста по линии n_HIB. Время пробуждения в этом случае примерно на 50 мс дольше, чем в режиме LPDC.

Драйвер управляющего микроконтроллера

CC3100 позволяет разработать коммуникационное приложение даже разработчику, ранее не сталкивавшемуся с радио, Wi-Fi или сетевыми протоколами. Прежде чем начать работу по разработке Wi-Fi-приложения, программисту следует понимать архитектурную концепцию хост-драйвера:

  • Хост-драйвер поддерживает любой стандартный компилятор СИ (C89):
    • драйвер доступен в исходных кодах и написан в строгом ANSI C (C89);
    • он не использует pragma или какие-либо иные расширения компилятора.
  • Драйвер использует сообщения, называемые командами:
    • СС3100 поддерживает обработку одной команды (в текущей версии прошивки);
    • для каждой команды СС3100 будет посылать сообщение Command Complete в случае успешного приема команды.
  • Хост-драйвер поддерживает обработку уведомлений об асинхронных событиях в CC3100:
    • некоторые сетевые команды требуют длительного времени на исполнение (например, команда подключения к сети WLAN). В связи с этим СС3100 использует асинхронные события, чтобы сигнализировать хост-драйверу об определенных изменениях статуса;
    • в случае команд, которые выполняются относительно долго, хост-драйвер получает немедленное ответное сообщение Command Complete, и позже поступает уведомление об асинхронном событии (asynchronous event), которое сигнализирует о завершении процесса исполнения команды и возвращает результат.
  • Микроконтроллер, на котором используется драйвер СС3100:
    • может иметь 8-, 16- или 32-битное ядро;
    • может работать на любой тактовой частоте (нет минимальных требований);
    • может работать с разными форматами представления чисел – big endian или little endian;
    • имеет ограниченный объем памяти для драйвера. Требования к памяти конфигурируются во время компиляции (от 7 кбайт Flash и 700 байт RAM).
  • Основной коммуникационный интерфейс между драйвером и CC3100:
    • Стандартный четырехпроводной SPI:
      • тактирование с частотой до 20 МГц с длиной слова 8, 16 или 32 бит;
      • режим работы по умолчанию 0 (CPOL = 0, CPHA = 0);
      • обязательное наличие линии CS и дополнительно линии IRQ для асинхронных операций.
    • Асинхронный UART:
      • стандартный UART с аппаратным контролем потока (RTS/CTS);
      • скорость до 3 Мбит/с;
      • настройки по умолчанию 115200 (8 бит, нет четности, 1 бит start/stop).
  • Драйвер может работать как в рамках операционной системы, так и в составе отдельного однозадачного пользовательского приложения:
    • Простая оболочка OS, требующая интерфейс к объектам лишь двух типов:
      • объект синхронизации потоков (event/binary semaphore);
      • объект, блокирующий доступ к ресурсу (mutex/binary semaphore)
      • Встроенная логика работы драйвера для систем без ОС.

Список полезных ресурсов

Одним из достоинств решения CC3100 является качественная поддержка разработчиков, которая включает в себя отладочные платы и программную поддержку. В таблице 5 приведен исчерпывающий (на момент написания статьи) перечень документации на микросхему, ссылки на описание аппаратных отладочных средств и множество дополнительной информации. В таблицах 6 и 7 можно найти перечень и ссылки на готовые примеры программ для работы с CC3100. Только перечень этих примеров (более 30!) говорит об огромном объеме работы, проделанной сотрудниками компании Texas Instruments для облегчения жизни инженера-разработчика и программиста.

Продолжение читайте в одном из следующих номеров журнала «Новости Электроники», посвященном продукции компании Texas Instruments.

Таблица 5. Список полезных ресурсов для разработчика СС3100

Ресурс Оригинальное наименование
Описание СС3100 CC3100 SimpleLink™ Wi-Fi® and Internet-of-Things Solution for MCU Applications
Руководство программиста СС3100 CC3100\CC3200 SimpleLink™ Wi-Fi® Network Processor Subsystem. Programmer’s Guide
Среда разработки приложений для CC3100 SimpleLink Wi-Fi CC3100 Software Development Kit (SDK)
Руководство по быстрому старту с отладочной платой CC3100BOOST, платой программирования CC31XXEMUBOOST и набором разработчика MSP-EXP430F5529 CC3100 SimpleLink™ Wi-Fi® and IoT Solution. Getting Started Guide
Руководство по эксплуатации отладочной платы CC3100BOOST CC3100 SimpleLink™ Wi-Fi® and IoT Solution BoosterPack Hardware. User’s Guide
Конструкторская документация по отладочной плате CC3100BOOST CC3100 SimpleLink Wi-Fi Wireless Networking Solution Booster Pack Design Files (ZIP 2967 KB)
Описание API драйвера хост-процессора SimpleLink Overview
Портирование драйвера на любой микроконтроллер Porting of the SimpleLink driver to any new platform
Приложения для iOS и Android для связи у управления CC3100 The SimpleLink™ Wi-Fi® Starter mobile App
Ресурсы TI Wiki (главная страница) SimpleLink™ Wi-Fi® CC31xx/CC32xx Main Page
Быстрый старт с CC3100 CC31xx Getting Started
Быстрый старт с отладочными средствами CC3100 (запуск платы CC3100BOOST и CC31XXEMUBOOST) CC31xx Quick Start Guide
Работа с программатором UniFlash (программирование внешней Serial FLASH, подключенной CC3100 CC31xx & CC32xx UniFlash
Работа с CC31xx SimpleLink Studio (Windows-программа для управления CC3100) CC31xx SimpleLink Studio
Различные методы подключения CC3100 к Wi-Fi-сети CC31xx & CC32xx Provisioning Features
Разработка аппаратной части с использованием CC3100 CC31xx & CC32xx Hardware Design Review
Перечень примеров, входящих в среду разработки CC31xx SDK CC31xx SDK Sample Applications
Инструментарий разработчика CC3100 CC31xx & CC32xx SimpleLink Tools
Взаимодействие CC31xx с хост-контроллером CC31xx Host Interface
Подключение к CC31xx через UART CC31xx UART Host Interface
Подключение к CC31xx через SPI CC31xx SPI Host Interface
Руководство по программированию CC3100 CC31xx Programmers Guide
Примеры для продвинутых разработчиков (перечень) CC31xx & CC32xx Advanced App Notes
Управление режимами энергопотребления SimpleLink™ CC3100/CC3200 Wi-Fi Internet-on-a-chip™; Networking Sub-system Power Management
Использование СС3100 в режиме трансивера 802.11 CC31xx & CC32xx Transceiver Mode
Расширенные сетевые возможности СС3100 (Raw Sockets) CC31xx & CC32xx Advanced Networking
Международная сертификация CC3100 CC31xx & CC32xx Radio Certifications
Результаты измерения энергопотребления CC3100 CC3100 Current Measurements
Дополнительные программы, полезные при работе с CC3100 CC31xx & CC32xx SimpleLink Add-On Tools
Форум для разработчиков CC3100 Wireless Connectivity Section of the TI E2E Support Community

Таблица 6. Примеры приложений для CC3100 (для микроконтроллеров TI) SDK Version: 1.0.0

Приложение/демо Описание Оригинальное наименование
Выбор антенны Управление внешним RF-switch для подключения двух антенн; для данного примера необходимо наличие платы Antenna selection board Antenna Selection
Конфигурирование в режиме Access Point (AP) Это приложение показывает, как можно сконфигурировать СС3100 для работы в качестве точки доступа; необходимые для работы параметры задаются через WEB-интерфейс AP Provisioning Application
Политика подключения Приложение демонстрирует настройку правил, согласно которым, CC3100 подключается к сторонней точке доступа или к Wi-Fi-роутеру; например, выбор сети из ранее сохраненных профилей или подключение к первой доступной точке Connection Policies Application
Отправка электронной почты Приложение позволяет с помощью CC3100 отправлять электронную почту через SMTP Email Demo Application
Подключение к сети предприятия Простой пример кода, который показывает, как подключиться к сети предприятия, используя сертификат, хранящийся в последовательной FLASH-памяти Enterprise Network Connection
Загрузка файла Приложение загружает файл с сервера и сохраняет его в последовательной FLASH-памяти File Download Application
Работа с файлами Приложение показывает, как работать с файлами в последовательной FLASH-памяти (NVMEM) File-operations Application
Получение точного времени Приложение подсоединяется к серверу SNTP и запрашивает информацию о времени Get Time Application
Работа в режиме точки доступа Приложение показывает возможности устройства выступать в качестве точки доступа (Access Point) в типовой сетевой конфигурации Getting Started with WLAN AP
Работа в режиме Wi-Fi-станции («Клиента») Приложение показывает возможности устройства выступать в качестве Wi-Fi-станции («Клиента») в типовой сетевой конфигурации Getting Started with WLAN Station
Получение информации о погоде Приложение подключается к общедоступной карте погоды (Open Weather Map) и запрашивает данные о погоде Get Weather Application
Сервер HTTP Приложение демонстрирует возможности CC3100 в качестве HTTP-сервера HTTP Server Application
Конфигурация IP-параметров Приложение подключается к точке доступа, используя статический IP-адрес IP Configuration Application
mDNS Демонстрация работы функционала mDNS (определение IP-адреса хоста без помощи централизованного DNS-сервера). Приложение показывает выполнение функций mDNS advertise и mDNS listen mDNS Application
Настройка режима работы Приложение стартует CC3100 в режиме точки доступа или в режиме Wi-Fi-станции (клиента) Mode-Config Application
Фильтрация NWP Приложение показывает возможности CC3100 по фильтрации приема (Rx-Filter feature) NWP Filter Application
Режимы энергосбережения Пример кода, который показывает, как задавать режимы энергопотребления CC3100 NWP Power Policies
Начальное приложение Это стартовое приложение демонстрирует базовую функциональность СС310 (Out of Box Experience) CC3100 Out of Box
Соединение P2P («точка-точка») Простой пример кода подключения типа «точка-точка»; запускает TCP-сервер на порте 5001 P2P Application
Подключение к Wi-Fi с помощью Smart Config Приложение показывает, как подключить CC31xx/CC32xx к любой точке доступа Provisioning-Smart Config
Подключение с помощью WPS Приложение демонстрирует использование функционала WPS на CC31xx/CC32xx (доступ по кнопке и по PIN-коду при подключении к Wi-Fi-роутеру) Provisioning-WPS Application
Поиск Wi-Fi-сетей Приложение показывает, как задать правила, по которым производится поиск доступных Wi-Fi-сетей Scan Policies Application
Проверка SPI Простая тестовая программа упрощает процесс проверки правильности портирования драйвера хоста на любой новый микроконтроллер; программа помогает проверить конфигурацию SPI для связи с CC3100 и подтверждает правильность подключения линий SPI SPI Debug Tool
Работа с SSL Приложение показывает, каким образом реализована поддержка SSL на CC3100 SSL Demo Application
TCP-сокет Приложение показывает передачу данных через TCP-протокол TCP Socket Application
Режим приемопередатчика Статистика работы приемника используется для проверки аппаратной части с точки зрения столкновений пакетов и дальности; можно использовать для выбора оптимального места размещения с точки зрения лучшего значения RSSI Transceiver Mode Application
UDP-сокет Приложение показывает передачу данных через UDP-протокол UDP Socket Application
Пример работы XMPP Приложение демонстрирует сценарий подключения и обмена данными с сервером XMPP (протокол для мгновенного обмена сообщениями и информацией о присутствии) XMPP Reference Application

Таблица 7. Примеры приложений для CC3100 для работы через Windows-программу SimpleLink Studio Platform (SLS)

Приложение/Демо Описание Оригинальное наименование
SLS-отправка электронной почты Приложение отправляет сообщение электронной почты через SMTP-сервер SLS Email Demo Application
SLS-получение точного времени Приложение подсоединяется к серверу SNTP, запрашивает информацию о времени, обрабатывает данные и выводит время на консоль SLS Get Time Application
SLS-работа в режиме точки доступа Приложение показывает возможности устройства выступать в качестве точки доступа (Access Point) в типовой сетевой конфигурации SLS Getting started with WLAN AP
SLS-работа в режиме Wi-Fi-станции («Клиента») Приложение показывает возможность устройства выступать в качестве Wi-Fi-станции («Клиента») в типовой сетевой конфигурации SLS Getting started with WLAN Station
SLS-получение данных о погоде Приложение подключается к серверу openweathermap.org и делает запрос о погоде для конкретного города; полученные данные обрабатываются и отображаются на консоли SLS Get Weather Application
SLS-сниффер пакетов Приложение показывает способность CC3100 использовать нижние уровни (a raw socket) как для чтения любого пакета, так и для фильтрации пакетов на MAC-уровне SLS Sniffer with Filters Application
SLS-режим приемопередатчика Приложение показывает способность CC3100 посылать и принимать данные через сырые сокеты (raw socket — интерфейс программирования, позволяющий собирать TCP/IP-пакеты, контролируя каждый бит заголовка и отправляя в сеть нестандартные пакеты) SLS Transceiver Mode Application
SLS-пример работы XMPP Приложение демонстрирует сценарий подключения и обмена данными с сервером XMPP SLS XMPP Reference Application

Получение технической информации, заказ образцов, заказ и доставка.

TI_СС3100_NE_14_14_opt

Новый референс-дизайн Wi-Fi-решения с двумя антеннами

Компания Texas Instruments предлагает разработчикам новый референс-дизайн платы SimpleLink™ Wi-Fi® Antenna BoosterPack (CC3ANTENNABOOST), который позволяет создавать Wi-Fi-устройства с двумя антеннами (antenna diversity). При использовании отладочных плат SimpleLink Wi-Fi CC3200 Launchpad (CC3200-LAUNCHXL) или CC3100 Boosterpack (CC3100BOOST) разработчик может переключаться на лучшую антенну на основе индикатора принимаемого сигнала (RSSI) при связи с конкретной точка доступа. На плате имеются два набора ортогональных антенн. Есть возможность использовать как запаянную на плате чип-антенну, так и подключать внешнюю антенну через разъем UFL. Плата является полезным инструментом для оценки эффективности использования нескольких антенн для приложений, требующих увеличенной дальности связи в сетях Wi-Fi или обеспечения гарантированного приема при размещении в любой точке помещения.

Рекомендуемый дизайн расширяет устойчивость приема CC3200 Launchpad или CC3100 Booster Pack. Использование нескольких антенн находит применение в таких приложениях, как потоковое аудио и видео, которые требуют высокой пропускной способности и стабильного качества сигнала.

С примером использования можно ознакомиться по ссылке.

Особенности нового дизайна:

  • радиочастотный переключатель SKY13351-378LF, Skywork’s 2.0-6.0 GHz GaAs SPDT Switch;
  • шинный приемопередатчик с двойным питанием SN74AVCH2T45;
  • небуферированный одноканальный инвертор 74AHC1GU04;
  • обеспечение выбора горизонтальной или вертикальной антенн;
  • установленный разъем U.Fl для проведения тестов;
  • на плате нет LDO. Когда плата CC3ANTENNABOOST подключается к CC3200-LAUNCHXL, последняя является для нее источником питания – CC3200- LAUNCHXL обеспечивает питание для инвертера и трансивера на плате.

Наши информационные каналы

О компании Texas Instruments

В середине 2001 г. компании Texas Instruments и КОМПЭЛ заключили официальное дистрибьюторское соглашение, которое явилось результатом длительной и успешной работы КОМПЭЛ в качестве официального дистрибьютора фирмы Burr-Brown. (Как известно, Burr-Brown вошла в состав TI так же, как и компании Unitrode, Power Trend и Klixon). С этого времени компания КОМПЭЛ получила доступ к поставке всей номенклатуры производимых компанией TI компонентов, технологий и отладочных средств, а также ...читать далее