KEEN SIDE успешно заменяет аналогичные продукты таких известных брендов, как Phoenix Contact, Weidmueller, Degson, Winstar, Hsuan Mao, KLS, G-NOR, Mean Well и др.

SPI2CF - модуль WiFi для AVR. Часть 1. Железо

Законченное WLAN решение для AVR и других микроконтроллеров

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

В статье рассказано о том, как систему на AVR микроконтроллере оснастить интерфейсом PRISM WLAN. Документ предназначен для людей, уже имеющих опыт работы с микроконтроллерами AVR, и описывает, как добавить дешевый но гибкий WLAN интерфейс в ваши AVR проекты.

+

=

 

Разрабатывая свою систему, я хотел, чтобы устройство получилось маленьким, простым и дешевым настолько, насколько это возможно, и в то же время оставляло большую часть функциональности AVR для других целей и обеспечивало надежную и быструю передачу данных по WLAN. Разработка выполнена на основе WLAN карты с интерфейсом Compact Flash (CF) на чипсете PRISM, подключенной к AVR микроконтроллеру через микросхему программируемой логики (ПЛИС), фирмы Xilinx. Так как CF карта присоединена к AVR контроллеру через интерфейс SPI, вся система получила название «Проект SPI2CF».

Плюсы и минусы этого решения:

Плюсы:

  • Надежная передача данных по интерфейсу CF
  • Простота взаимодействия с AVR через SPI
  • Быстрая передача с низкой загрузкой процессора
  • Железо и программы сделаны в домашних условиях (все требуемые инструменты доступны бесплатно)
  • Устройство может использоваться и для других CF карт
  • Поддержка стека uIP TCP/IP

Минусы:

  • Необходимость программирования ПЛИС
  • В проекте используется устаревшее оборудование для WLAN.

Почему я не стал использовать SD, USB или PCI карту?

С WLAN есть большая проблема: отсутствие документации по железу. Карты WLAN SDIO совершенно несовместимы с AVR контроллерами. несмотря на то, что стандарт SDIO распространяется не свободно и требует покупки дорогой лицензии, его SPI часть общедоступна. Хотя это и не самый выокоскоростной способ доступа к карте SDIO, он достаточно быстр для простых систем на основе AVR. В таком решении используются всего несколько контактов AVR контроллера и, благодаря встроенному в AVR SPI интерфейсу, имеется возможность разрабатывать неплохие устройства. К сожалению, ни один из производителей WLAN SD карт, с которыми я связывался, не пожелал предоставить необходимую для этого информацию. Без этой документации единственным путем решения проблемы может быть только долгий анализ, проводить который я не хотел.

Другие интерфейсы, такие как USB и PCI, требуют более быстрого и сложного взаимодействия, и не могут быть легко подключены к небольшому 8 битному AVR микроконтроллеру.

Какую именно CF WLAN использовать

Я выбрал CF WLAN карту на чипсете PRISM, так как вся документация по ее использованию доступна для программистов открытого исходного кода, и, например, авторы ядра Linux, Procyon AVRlib имели к ней доступ тоже. К сожалению, сейчас эти карты становятся редкостью. Известные мне карты, попавшие в эту категорию, – Pretec WL-201 и Netgear MA701. Наверное, могут подойти и другие карты, но они не тестировались. Спецификацию интерфейса CF можно загрузить (после регистрации) с сайта Ассоциации Compact Flash, информацию по чипсету PRISM можно легко найти в Интернете, используя любой поисковик.

Обзор системы

Вся система состоит из трех основных функциональных блоков: Контроллера AVR выполняющего высокоуровневые сетевые функции включая стек TCP/IP. Второй функциональный блок – WLAN карта, выполняющая все низкоуровневые сетевые операции включая шифрование. Третий блок – ПЛИС XC9572XL, – программируемое логическое устройство, формирующее spi2cf интерфейс между AVR SPI и CF картой. ПЛИС, главным образом, осуществляет преобразование между SPI интерфейсом, используемым для связи с AVR и параллельным интерфейсом слота CF.

SPI2CF concept

Концепция SPI2CF

Интерфейс SPI2CF на основе ПЛИС обеспечивает правильное преобразование циклов доступа SPI в сигналы интерфейса CF. Это основная причина того, почему CF карты с чисто программным интерфейсом часто работают ненадежно. Программные решения не позволяют точно задать временные параметры сигналов CF, необходимые для ввода/вывода. Использование интерфейса SPI2CF на основе ПЛИС позволяет обойти эти проблемы.

Остальные части второстепенны. Например микросхема согласования уровня MAX232 необходима для интерфейса RS-232, мультиплексор 4053 используется для переключения линий ввода/вывода AVR контроллера между ПЛИС и интерфейсом программирования.

Питание

WLAN карте на чипсете PRISM требуется напряжение 3.3 В. ПЛИС XC9572 выпускается в двух версиях: XC9572 питается напряжением 5 В, XC9572XL – 3.3 В. Наконец микроконтроллер AVR ATmega32 также бывает с питанием 3.3 и 5 В. Таким образом, возможно создать систему питающееся только от 3.3 В. Но у такой системы будет один недостаток – AVR контроллер питающийся от 3.3 В не может быть тактирован столь же высокой частотой как его 5-вольтовый аналог. Т.е. контроллер, работающий на частоте 16 МГц, должен питаться напряжением 5 В. Но входы 3.3-вольтовой ПЛИС XC9572XL допускают напряжение 5 В, а входы контроллера AVR, питающегося от 5 В, поддерживают входное напряжение 3.3 В. Таким образом, вполне возможно напрямую подключить AVR контроллер, питающийся напряжением 5 В к ПЛИС, питающейся напряжением 3.3 В. ПЛИС будет работать как простой согласователь логических уровней. Демонстрационная система использует эту возможность, контроллер в ней питается напряжением 5 В.

Потребляемая мощность

Прототипы потребляют от источника 5 В около 250 мА при с установленной и инициализированной, но не передающей карте Pretec. Когда осуществляется двунаправленный обмен данными на полной скорости, потребляемый ток возрастает до 400 мА.

Внешние интерфейсы

Особенностью данной платы является целый набор разъемов, несмотря на то, что устройство задумывалась как беспроводное. Но эти кабели требуются только на время разработки. Интерфейс RS-232 используется для вывода отладочной информации из AVR в компьютер. Интерфейс программирования AVR используется для прошивки программы во внутреннюю флеш-память микроконтроллера. Для программирования ПЛИС используется подобный интерфейс программирования, используемый для загрузки функциональной конфигурации во внутренние ячейки флеш-памяти ПЛИС. AVR контроллер, также как и ПЛИС, не теряют хранимую информацию, таким образом программирование требуется произвести лишь один раз. После того, как разработка будет завершена, устройство станет по настоящему беспроводным.

Внутренние интерфейсы

Три основных устройства соединены двумя интерфейсами. SPI используется для подключения ПЛИС к контроллеру, для взаимодействия между ПЛИС и картой CF используется интерфейс CF. ПЛИС, таким образом, выступает в роли транслятора между SPI и CF и поэтому называется SPI2CF.
 

Прототип

Детали для прототипа легко приобрести, все детали можно установить на перфорированную макетную плату. Проблемы могут возникнуть только с разъемом CF. Я купил две дешевых карты – переходников из PCMCIA в CF, аккуратно вскрыл их, удалил CF разъемы и поместил их на макетную плату. Ниже представлена схема и несколько фотографий моего прототипа.


Кликните для увеличения


Схема окончательного варианта устройства

Прототип наглядно показывает, что для соединения AVR контроллера и ПЛИС требуется всего несколько линий. Все устройство умещается на перфорированной плате размером 10 × 8 см. Вышеприведенная схема соответствует окончательному варианту печатной платы. Ее отличие от прототипа лишь в расположении выводов микросхем, так как в прототипе и окончательном варианте устройства используются микросхемы в разных корпусах.
 

 

Окончательный вариант устройства

В окончательном варианте устройства используются только SMD элементы, поэтому вся плата по размерам не превышает размеров самой CF карты.
 

 
Кликните для увеличения
 
Кликните для увеличения
Расположение компонентов на верхней стороне платы Расположение компонентов на нижней стороне платы
   
Печатная плата, вид сверху Печатная плата, вид снизу
   
Собранная схема, вид сверху Собранная схема, вид снизу

Безопасность/Шифрование

В текущей версии ПО поддерживает WEP шифрование с длинной ключа в 40 (64) или 104 (128) бит. Шифрование реализовано целиком внутри CF карты и не требует вычислительных ресурсов AVR. WPA не поддерживается, так как я не уверен в том, что карта на чипсете PRISM, которую я использую, поддерживает его. Мне кажется, что некоторые версии этих карт поддерживают WPA, или им можно обновить прошивки, чтобы они стали его поддерживать. Но я не уверен в этом.

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

Продолжение читайте здесь

harbaum.org

Перевод: [IMG]/i/Image/wand.gif[/IMG] по заказу РадиоЛоцман

На английском языке: SPI2CF - WLAN for AVR. Part 1

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя