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

4 марта 2015

Texas Instrumentsстатьяwireless

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

В первой части статьи, опубликованной в десятом номере «Новостей электроники» за 2014 год, были рассмотрены технические параметры CC3100, его тактирование, система управления питанием, архитектура хост-драйвера, а также программные ресурсы и приложения для работы с ним.

Программирование внешней последовательной Flash-памяти

Внешняя последовательная Flash-память (Serial Flash) подключается к специальным линиям чипа CC3100/CC3200. Выделенный SPI-интерфейс для Serial Flash работает отдельно от SPI-линий управляющего микроконтроллера (то есть физически на чипе есть два разных SPI-интерфейса). Для программирования Serial Flash используется Windows-программа CCS UniFlash CC3100/CC3200 Edition (Version: 3.2.0.00065 или выше для Windows 7/Windows XP). Запись данных в Serial Flash ведется через чип CC3100, то есть программатор UniFlash передает данные от ПК к CC3100 через UART-порт (COM), а непосредственно во Flash данные записываются самим чипом CC3100 через SPI. Это накладывает определенные ограничения на процесс производства конечных продуктов – память Serial Flash может быть запрограммирована только в составе изделия, когда на плату уже запаяна микросхема CC3100. Даже если в разработанном приборе не требуется UART CC3100, этот интерфейс все равно должен быть разведен на плате для первоначальной загрузки требуемых файлов в Serial Flash. На момент написания статьи недоступны способы иного программирования Flash-памяти, хотя производитель планирует выпускать специальную версию Service Pack (обязательный файл для первоначальной заливки в Serial Flash, который модифицирует ROM-микропрограмму работы чипа) в таком формате, который позволит производить его загрузку с помощью управляющего микроконтроллера. В настоящий момент предлагаемый API CC3100 по работе с файловой системой во Flash-памяти не имеет команд для первоначального форматирования и загрузки файла Service Pack.

В принципе, CC3100 сможет функционировать даже без внешней Flash-памяти, используя для работы данные из своего ПЗУ (ROM). Однако этот вариант не является разрешенным, так как кроме естественных ограничений функциональности (без Serial Flash нет места для WEB-страниц пользователя, будет происходить потеря настроек сети при выключении питания и так далее), не будет доступен служебный файл Service Pack, который модифицирует работу чипа. С помощью Service Pack улучшается работа микросхемы и происходит корректировка выявленных в ROM ошибок. Последнюю версию Service Pack (1.0.0.1.2 от 7 ноября 2014 г.) можно скачать с сайта производителя.

Описание программы UniFlash

Оболочка UniFlash предоставляет следующие возможности:

  • графический интерфейс пользователя;
  • совместимость с защищенной файловой системой микросхем серии Simple Link CC3x00;
  • запись файлов, включая их чтение для верификации;
  • запись служебного бинарного образа Service Pack;
  • выбор формата сохранения файлов (защищенное или не защищенное);
  • чтение версии бутлоадера и идентификатора чипа;
  • интерфейс командной строки.

Планируемые расширения:

  • построение и запись конфигурационных файлов, состоящих из набора параметров;
  • чтение системных файлов;
  • подготовка оффлайн-образа для записи через Gang-программатор;
  • программирование по эфиру (замена соединения через UART).

При установке UniFlash в специальной директории (cc3xxx) создается набор файлов, описывающих всю функциональность чипа. Эта папка не должна изменяться вручную – любое изменения следует проводить только через операции в графическом интерфейсе UniFlash.

В отличие от простого программатора, который записывает единственный файл прошивки в микроконтроллер, UniFlash поддерживает на внешней Flash-памяти файловую систему. Поэтому, кроме непосредственно файла или файлов для загрузки, при работе используется еще ряд вспомогательных, таких как описание всей файловой системы (имена файлов, размер, свойства), ключи аутентификации (токены) для защищенных файлов и другие.

Файл шаблона конфигурации (Template configuration file). Этот файл отражает файловую систему CC31xx. Он может рассматриваться как фильтр между оболочкой UniFlash и файловой системой устройства (в контексте данной статьи под устройством подразумевается какое-то изделие, содержащее СС3100 + Serial Flash. Это может быть отладочная плата или разрабатываемое устройство пользователя). В этом файле хранится информация обо всех файлах, как бинарных, так и конфигурационных (HTML, сертификаты, patch files, пользовательские файлы и так далее). Файл шаблона конфигурации имеет формат xml.

Файл токенов (Tokens file). Токены – это 32-битные ключи, которые используются при проведении определенных манипуляций с файлами. Токены используются в том случае, если необходима аутентификация на устройстве загружаемых файлов. Токен – это индивидуальный ключ-разрешение для той или иной операции с файлом (стирание, запись, чтение). Токены следует держать в энергонезависимом хранилище, то есть на жестком диске или на удаленном сервере. Без наличия файла токенов не будет возможности взаимодействовать с CC31xx в защищенном режиме, то есть, c активированной функцией аутентификации не будет доступа к файлам на подключенной Serial Flash. Единственный способ убрать аутентификацию (для восстановления возможности стереть или переписать файл внутри Serial Flash) – полное форматирование Flash-памяти. Файл токенов имеет формат xml.

Содержимое файловой системы. Так как файл шаблона конфигурации хранит только смещения для специфических параметров внутри конфигурационных файлов (а не полное содержимое), то сами файлы с данными (content files) должны быть доступны для работы.

Пакетный файл. Требуется при использовании интерфейса командной строки. В пакетном файле хранятся пути ко всем требуемым файлам, то есть, к файлу шаблона конфигурации, токенам и, собственно, к загружаемым файлам.

Блок-диаграмма взаимодействия оболочки программатора UniFlash с устройством и файлами на ПК приведена на рисунке 1.

Рис. 1. Блок-диаграмма оболочки UniFlash

Рис. 1. Блок-диаграмма оболочки UniFlash

Каждый сеанс программирования с определенными исходными файлами носит название «сессия» (Session). Сессия может рассматриваться как рабочая папка, где находятся все относящиеся к процессу программирования файлы. Важно понимать, что каждое устройство имеет свои собственные файлы и, таким образом, каждое устройство будет иметь отдельную сессию. Имеется возможность создавать несколько сессий для одного и того же устройства. В этом случае каждая сессия будет представлять различную конфигурацию для устройства. Например, одна сессия будет использоваться для обновления внутреннего алгоритма работы (загрузка service pack), а другая – для обновления пользовательских файлов, например, отображаемых html-страниц.

Нужна особая осторожность при манипулировании с защищенными файлами. Каждый защищенный файл имеет токены (связанные с конкретным устройством). Для каждого файла, помещаемого в Serial Flash, может существовать три токена: на полный доступ к файлу «создание-запись-чтение», на «запись-чтение» и «только чтение». Токены хранятся в отдельном xml-файле, поэтому нужно координировать доступ к файлу токенов при использовании нескольких разных сессий. В настоящий момент такая координация не выполняется UniFlash в автоматическом режиме.

Сессия состоит из файлов Template xml, Token xml (и конфигурационных файлов в следующих релизах) и связана с конфигурационным файлом в UniFlash. Когда сессия создается, следующие файлы могут быть найдены в корневой директории сессии:

./templates включает все xml-файлы с их наполнением «по умолчанию» в следующем виде:

  • CC3xxx_template.xml;
  • CC3xxx_token.xml.

Конфигурационные файлы сохраняются с расширением *.ucf (UniFlash Configuration File) и включают информацию об интерфейсе, устройстве и формате последовательной Flash-памяти. Конфигурационный файл может сохраняться на диске и открываться UniFlash для сохранения и восстановления установок; он также позволяет поддерживать различный набор файлов для различных устройств. Информация о записываемых во Flash-файлах может быть найдена в директории ./template.

При сохранении сессии, например, под именем configname.ucf, в той же самой директории создается папка configname_session. Это позволяет сделать папку переносимой (при условии сохранения всей ее структуры). Пример содержания конфигурационного файла приведен на рисунке 2.

Рис. 2. Пример содержания конфигурационного файла

Рис. 2. Пример содержания конфигурационного файла

Есть два способа создать сессию: из верхней строки меню File → New Target Configuration либо через Quick start guide, нажав “New target configuration”.

Когда пользователь выбирает CC31x Flash Connections и CC31x Flash Devices, создается временная сессия на основе типового (default) файла шаблона конфигурации и токенов. Пользователь может свободно модифицировать сессию – связывать ее с нужными ему файлами и выполнять операции над подключенным устройством (писать/удалять файлы в Serial Flash). Пользователь может создать новую конфигурацию повторно, чтобы удалить все произведенные изменения и начать работать «с чистого листа», то есть, с настройками «по умолчанию» (default template).

Для упрощения манипулирования файлами поддерживаются относительные пути к ним. В шаблонах (template XML files) используется специальный тэг “${sessionDir}” в URL-переменных.

Пользователь может сохранить свои настройки (рисунок 3), выбрав местоположение и имя для конфигурационного файла (расширение .ucf будет автоматически добавлено). Как только настройки были сохранены в первый раз, все последующие изменения в интерфейсе программатора будут сохраняться автоматически (то есть пользователю нет необходимости сохранять их снова). При сохранении будет автоматически создаваться папка с файлами шаблона и токенов (template and token xml files) в той директории, которую пользователь выбрал для сохранения настроек.

Рис. 3. Сохранение настроек

Рис. 3. Сохранение настроек

Если пользователь не сохранил свои настройки до закрытия UniFlash, то все произведенные в интерфейсе изменения будут потеряны.

Загрузка сессии выполняется из верхней строки меню через выбор File → Open Existing Target Configuration. Пользователь может выбрать существующий .ucf-файл для загрузки сохраненной ранее конфигурации. Оболочка программатора UniFlash будет настроена (примет вид) в соответствии с сохраненными ранее параметрами. После загрузки все дальнейшие изменения будут автоматически сохраняться в том же файле настроек.

Таким образом, если необходимо оставить загруженные настройки в исходном файле в неизменном виде, сразу после загрузки нужно выполнить команду “Save Configuration As” с указанием нового места для сохранения (рисунок 4).

Рис. 4. Загрузка настроек

Рис. 4. Загрузка настроек

Рис. 5. Настройки для целевого устройства

Рис. 5. Настройки для целевого устройства

После запуска UniFlash пользователю нужно выбрать настройки для целевого устройства (target setup). Данные настройки можно сделать через верхнюю строку меню (File → New Configuration) или через Quick Start Guide на главном экране путем клика на строку New target configuration. В настоящий момент установки сводятся к следующему выбору (рисунок 5):

  • Connection установлено как CC3x Serial (UART) Interface;
  • Board or Device установлено как SimpleLink WiFi CC3100/CC3200.

Основной экран UniFlash (рисунок 6) разделен на три области.

  • UniFlash main view – это левая верхняя секция основного экрана. Все присутствующие здесь данные берутся из XML-фала шаблонов и отображаются в виде списка. Список включает в себя имена файлов для целевого устройства (то есть для CC3100+SerialFlash).
  • CC31x Flash Setup and Control – это правая верхняя секция основного экрана. Здесь детализируются опции для каждого файла, выбираемого слева (в секции UniFlash main view). Эта секция предоставляет также интерфейс для взаимодействия с целевым устройством и кнопки переключения режимов.
  • Console – это нижняя секция. Здесь отображается статус устройства. Детализированная информация появляется в процессе взаимодействия с целевым устройством.

Рис. 6. Настройки для целевого устройства

Рис. 6. Настройки для целевого устройства

Подключение целевого устройства производится через UART-интерфейс. В качестве целевого устройства может выступать отладочная плата (CC3100 BoosterPack, CC3200 LaunchPad), модуль (CC3100MOD, CC3200MOD) или собственная плата пользователя с распаянными микросхемами CC3100 и Serial Flash. Пользователь должен указать номер COM-порта и установить скорость обмена. На момент написания статьи автоматическое детектирование COM-порта не поддерживается, а скорость обмена жестко установлена на 921600. Номер COM-порта можно посмотреть в Windows Device Manager. При подключении к ПК некоторых отладочных плат (CC3100/CC3200) в системе появляется не один, а несколько COM-портов. В этом случае при выборе COM-порта для взаимодействия с UniFlash нужно ориентироваться на таблицу 1.

Таблица 1. Выбор COM-порта для работы с UniFlash

Наименование отладочной платы Микросхема моста Число COM-портов COM-порт для UniFlash
CC3200 LaunchPad pre-flashed FTDI 1 Единственный COM-порт
CC3200 LaunchPad non flashed FTDI 2 COM-порт с бОльшим номером
CC3100 BoosterPack pre-flashed FTDI 2 COM-порт с меньшим номером
CC3100 BoosterPack non flashed FTDI 4 Третий по счету COM-порт

 

Форматирование

Замечание: Если вы используете раннюю предсерийную версию чипа (например, XCC3101GZ или XCC3200HZ) – нельзя форматировать устройство для работы с защищенными (secured) файлами.

Каждый чип CC3100/CC3200 содержит однократно программируемый бит защиты (EFUSE), который показывает, включен защищенный режим или нет. Все предсерийные устройства выпускались без активации защищенного режима (not secured).

Если бит защиты активирован (EFUSE прожжен), то устройство всегда использует защищенную файловую систему, вне зависимости от того, как оно создавалось – с включенной опцией защиты или нет. Для устройств с неактивированным EFUSE (предсерийные устройства) включение опции защиты на этапе форматирования Serial Flash будет определять, использовать ли защищенную файловую систему или нет.

Защищенные устройства позволяют пользователю шифровать и проверять подлинность файлов на устройстве (encrypt and authenticate). Если устройство работает в защищенном режиме, то служебный бинарный файл Service Pack должен быть также в защищенном виде. Помимо этого защищенное устройство позволяет пользователю записать во внешнюю Serial Flash и незащищенный файл.

Рис. 7. Форматирование

Рис. 7. Форматирование

Ниже представлены все возможные комбинации типов устройств с точки зрения активации защиты через EFUSE или при включении опции безопасного форматирования в UniFlash (рисунок 7).

  • Форматирование устройства (то есть CC3100 + Serial Flash) с непрожженным EFUSE (защищенный режим не активирован в чипе):
    • Форматирование в режиме незащищенного устройства: кнопка “Format” должна использоваться при отсутствии галок в чекбоксах “Secure” и “Alert”.
    • Форматирование в режиме защищенного устройства: кнопка “Format” должна использоваться при наличии галки в чекбоксе “Secure”. Настоятельно не рекомендуется выбирать режим “Alert”, так как после трех ошибочных попыток микросхема будет заблокирована навсегда.
  • Форматирование устройства (то есть CC3100 + Serial Flash) с прожженным EFUSE (защищенный режим активирован в чипе): установки в чекбоксах для опций “Secure” и “Alert” не имеют значения. Устройство всегда будет работать в защищенном режиме.

На пользователе лежит ответственность за правильное указание UniFlash, какой размер памяти резервируется для файловой системы. Доступные опции: 1, 2, 4, 8, 16 Mбайт. Выбранная величина может быть меньше или равна объему физически подключенной микросхемы Serial Flash. Выбор меньшего размера приводит лишь к недоиспользованию физической памяти, но при этом не нарушит нормальную работу CC3100. Однако выбор большего размера памяти, чем реально имеет подключенная микросхема, может привести к непредсказуемым последствиям.

Активация режима форматирования приводит к выполнению следующих операций:

  • подключение к целевому устройству через COM-порт;
  • ожидание, когда пользователь сделает рестарт платы (указание появляется в подокне “Console”);
  • после рестарта выполняется операция форматирования и появляется индикатор прогресса.

Чтение версии чипа

Версия, которую можно прочесть из микросхемы, является версией бутлоудера (так как UniFlash взаимодействует с этой частью внутреннего ПО). Извлекается версия бутлоудера из ROM. Дополнительно выводится и версия кристалла. Версия бутлоудера состоит из четырех цифр, разделенных точками.

Синтаксис:

<SoftwareMajor.SoftwareMinor.SoftwareVersion.SoftwareSubVersion>

На рисунке 8 приведен пример чтения версии. В данном случае это версия бутлоудера «2.0.2.3» и версия чипсета «3» микросхемы CC3100.

Рис. 8. Чтение версии

Рис. 8. Чтение версии

Программирование (загрузка) файлов

Программирование устройства производится по нажатию кнопки “Program”. Можно также использовать верхнюю командную строку “Operation → Program”. По нажатию кнопки программирования UniFlash сканирует все перечисленные имена файлов (предназначенные для операций на целевом устройстве) и делает следующее (в указанном порядке):

  • каждый файл с выбранным (True) аргументом “erase” стирается на целевом устройстве (то есть удаляется с Serial Flash);
  • каждый файл с выбранным (True) аргументом “update” записывается в устройство;
  • каждый файл с выбранным (True) аргументом “verify” проверяется путем считывания с устройства/

Все файлы сканируются сверху вниз в том порядке, в каком они представлены в списке в левом окне. Если появляется надпись “Please restart the device”, то пользователь должен произвести сброс целевого устройства, например, нажать кнопку сброса на отладочной плате Luanchpad.

Загрузка незащищенных файлов возможна на устройство с включенным защищенным режимом. Однако в этом случае доступна только опция “rollback”, то есть файл можно перезаписать, но нельзя создать или стереть.

Загрузку защищенных файлов можно делать и на устройстве с неактивированным режимом защиты, однако все опции безопасности здесь не имеют смысла, так как они просто игнорируются программой UniFlash.

Программирование Service Pack

Service Pack – это общее наименование для бинарного образа, который требуется для обновления микропрограммы (firmware) устройства. Это один особый файл, который не является частью UniFlash. Файл Service Pack предоставляется производителем. Его, например, можно скачать с сайта Texas Instruments, пройдя по ссылке http://www.ti.com/tool/cc3200sdk.

Для обновления Service Pack выполняйте следующие шаги:

  • произведите форматирование устройства перед записью в SerialFlash. Этот шаг очень важен и должен выполниться, как минимум, единожды. Для последующих обновлений форматирование не обязательно;
    • включение защищенного форматирования: установите галочку в чекбоксе Secure в опциях операции Format;
    • включение форматирования в том режиме, который задан ранее в самой микросхеме с помощью EFUSE: чекбоксы Secure и Alert должны быть чистыми (не должны быть выбраны).
  • запустите процедуру обновления через специальную кнопку или через верхнюю командную строку Operation → Service Pack Flash Update;
  • выберите файл servicepack.bin и нажмите OK (рисунок 9);
  • процесс программирования должен начаться с вывода версии загружаемого образа.

Рис. 9. Запись Service Pack

Рис. 9. Запись Service Pack

Добавление файла

UniFlash позволяет добавить любой файл через графический интерфейс с помощью кнопки “addFile”. Другой способ – использовать верхнее меню Operation → Add File (рисунок 10). Добавить можно только пользовательский файл, так как имена системных файлов зарезервированы самим устройством. Добавление файла лишь создает пустой шаблон файла, который должен быть далее заполнен пользователем.

Рис. 10. Добавление файла

Рис. 10. Добавление файла

Стирание файла

UniFlash позволяет стереть любой файл через графический интерфейс с помощью параметра “erase” под каждым файлом (рисунок 11). Стирание файла требует токена MAX. Он обрабатывается UniFlash автоматически. Если выбрать одновременно опции “erase” и “update” то файл будет сначала стерт, но затем обновлен (восстановлен).

Рис. 11. Стирание файла

Рис. 11. Стирание файла

Удаление фала из шаблона

UniFlash позволяет удалить любой пользовательский файл через графический интерфейс с помощью кнопки “delete” под каждым файлом (расположена над именем в правом окне, рисунок 12). Удаление файла из шаблона требует токена MAX, так как оно дополнительно стирает его из самого устройства (стирание файла в Serial Flash). Эта операция выполняется UniFlash автоматически.

Рис. 12. Удаление файла

Рис. 12. Удаление файла

Сохранение MAC-адреса в Serial Flash

Несмотря на то, что все файлы конфигурации пока (на момент написания статьи) не могут быть записаны на Serial Flash, имеется возможность сохранить MAC-адрес. Шаблон для MAC-адреса расположен в директории /cc3xxx/fileSystem/macadd.bin.

Рис. 13. Запись MAC-адреса

Рис. 13. Запись MAC-адреса

Пользователь должен редактировать этот файл с помощью HEX-редактора и затем подготовить конфигурации следующего вида (рисунок 13):

  • Name: /sys/macadd.bin;
  • Mode: ничего не выбрано, означает использование незащищенного режима
  • MaxSize: 0 обозначает оригинальный размер файла;
  • Signature: не требуется;
  • Certificate: не требуется;
  • Url: полный путь к месту расположения файла (может модифицироваться пользователем);
  • Update checkbox: выбран (галочка стоит) для записи в Serial Flash;
  • Verify checkbox: выбран (галочка стоит) для проверки успешности записи.

Поддержка командной строки

Командная строка предназначена, в основном, для автоматических настроек плат в процессе производства конечных изделий пользователем. Командная строка позволяет выполнить все те же операции, что предлагает графический интерфейс, за исключением добавления файлов. Процесс включает в себя запуск исполняемого batch-файла с набором аргументов. Подробное описание аргументов можно найти здесь.

Ограничения и ошибки*

  • Удаление файлов. Нет возможности прочитать перечень файлов непосредственно с Serial Flash (нет аналога команды DIR), то есть пользователь не может узнать, какие файлы когда-то уже были записаны в Serial Flash. Операция удаления файла не несет никаких отрицательных последствий, если файл в реальности не существует на устройстве. После удаления файла он продолжает отображаться в графическом интерфейсе программы (это может сбивать с толку).
  • Сброс целевой платы. Каждая операция выполняет подключение к целевой плате и отключение от нее после завершения, поэтому пользователь вынужден нажимать кнопку “Сброс” каждый раз, когда программа предлагает это сделать. Набор операций, которые требуют рестарта (сброса): format, get version и program.
  • Форматирование. На пользователе лежит ответственность за емкость запаянной Serial Flash и ее форматирование с указанием соответствующего размера.
  • Удаление функционала сетевого процессора (Network Processor, применимо только к “Z devices”). Программный код загружается во внутреннюю Flash-память процессора (а не во внешнюю Serial Flash). Невозможно удалить файл из внутренней Flash-памяти. Единственный способ превратить сетевой процессор в ROM-версию – это записать любой другой файл вместо cc3100.bin. Когда устройство будет инициализировано (после подачи питания), оно обнаружит негодный образ и загрузится из ROM.
  • Файлы конфигурации. Поддерживается сохранение на Serial Flash только MAC-адреса. Все остальные файлы конфигурации не поддерживаются в текущей версии.
  • Gang-программатор не поддерживается в текущей версии (на момент написания статьи).
  • Скорость UART. Жестко зафиксирована на 921600 bps (не настраивается).

 

Литература

  1. processors.wiki.ti.com

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

TI_LM5017_NE_02_15_opt
•••

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

О компании Texas Instruments

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