AN002. Практические рекомендации по интеграции модуля EM в ваше устройство

Что есть в этой рекомендации

За последние несколько лет Tibbo регулярно общалась с компаниями, которые используют модули Ethernet-to-serial (например, EM100), чтобы подключить свои изделия к сети. Опыт и обратная связь, полученные в этом процессе, показали, что некоторые практические аспекты интеграции модуля не всегда учитываются достаточно рано в цикле проектирования изделия. В результате некоторые устройства, в которых используются модули Tibbo, проектировались без должного учёта практических проблем, которые могут возникнуть при производстве или эксплуатации устройства. Эта рекомендация обобщает такой опыт. Следуйте приведённым ниже советам, и вы, возможно, избавите себя от многих проблем в будущем.

Совет
Эта рекомендация относится не только к EM100! EM100 используется как пример, но приведённые ниже советы применимы и к EM203A, EM200, а также к другим встраиваемым изделиям Tibbo.

Содержание:

  • Располагайте модуль как можно ближе к разъёму RJ45, соблюдайте правильную топологию платы
  • Обеспечьте хорошее питание нужным током
  • Правильный сброс обязателен!
  • Предусмотрите светодиоды состояния, кнопку prog/init и разъём для доступа к последовательному порту
  • Пусть основной процессор управляет модулем...
  • ...Или пусть модуль EM управляет основным процессором

Располагайте модуль как можно ближе к разъёму RJ45, соблюдайте правильную топологию платы

Примечание: эта часть относится ко всем модулям Tibbo.

Неправильно расположенный модуль EM создаёт много помех (EMI, электромагнитное излучение). Размещайте EM, его Ethernet-трансформаторы (если они не встроены в модуль) и разъём RJ45 как можно ближе друг к другу. Если этого не сделать, пройти испытание на соответствие CE (FCC) по EMI будет очень трудно! Дополнительные проблемы могут включать сбои связи и восприимчивость к разрядам статического электричества (ESD).

Существует распространённое заблуждение относительно сертификации CE/FCC по EMI модулей Tibbo. Поскольку это модули, они не сертифицируются «как есть», а тестируются на конкретной плате, обычно на отладочной плате Tibbo. Эти платы имеют правильную топологию, и отсюда делается вывод: если модуль EM проходит испытание на такой плате, то он сможет пройти испытание и на другой плате с правильной топологией. Поэтому, даже если сам модуль EM предварительно протестирован, всему устройству может потребоваться сертификация CE/FCC.

Ниже показана правильная топология платы для Ethernet-модуля EM100. Этот модуль имеет встроенные Ethernet-трансформаторы, поэтому разъём RJ45 нужно добавить снаружи. Главное здесь - длина проводников, которые соединяют выводы разъёма RJ45 с выводами RX-, RX+, TX-, TX+ модуля EM100. Чем короче проводники, тем ниже шум.

Топология платы EM100

Ещё один важный момент. Не создавайте земляной полигон (ground plane) в районе разъёма RJ45 и линий RX-, RX+, TX-, TX+. Земляной полигон должен «огибать» область RJ45, но не пересекать ни один из четырёх интерфейсных проводов. Это очень важно! Наличие земляного полигона под областью разъёма сделает устройство очень восприимчивым к ESD.

Обеспечьте хорошее питание нужным током

Модули Tibbo EM - такие же, как микросхемы: им нужен стабилизированный источник постоянного тока, номинально 5V, с отклонением +/- 5%. Некоторые модули (например, EM200) потребляют довольно большой ток (~230mA)! Эти данные приведены в документации, но всё равно встречаются случаи, когда заказчики используют «плохие» блоки питания. Поэтому совет простой: обеспечьте стабилизированное питание 5V DC и убедитесь, что блок питания способен отдать необходимый ток.

Правильный сброс обязателен!

Модули Tibbo EM не имеют внутренних цепей сброса, поэтому внешний сброс при включении питания нужно обеспечить самостоятельно. Недостаточно просто соединить вывод RST с VCC - так не сработает! Также не рекомендуется использовать простую RC-цепь. Такие цепи ненадёжны, поскольку не контролируют напряжение питания и во многих ситуациях будут работать неправильно.

Например, если источник питания «запускается медленно» (то есть его напряжение растёт медленно после включения), импульс сброса, сформированный RC-цепью, может закончиться раньше, чем VCC достигнет 5V-5%. Другое проблемное условие - «просадка» питания (brownout), то есть кратковременное падение VCC ниже 5V-5%. Просадки могут привести к зависанию модуля EM. Вместо RC-цепи используйте специализированную микросхему сброса - она обеспечит надёжный сброс как при запуске, так и при просадках. Некоторые микросхемы сброса (например, MAX810 от MAXIM) сейчас имеют очень привлекательную цену (около USD0.5). Микросхема сброса должна соответствовать следующим требованиям: (1) активный сигнал сброса - высокий уровень, (2) длительность импульса сброса не менее 100 мс, (3) порог сброса около 4.7V. Если в вашем устройстве уже есть подходящая микросхема сброса, её выход можно использовать и для модуля EM.

Ещё один возможный вариант - использовать свободный вывод ввода-вывода основного процессора вашего устройства. Выводы ввода-вывода большинства процессоров по умолчанию переходят в состояние HIGH при аппаратном сбросе. Например, предположим, что ваше устройство построено на микроконтроллере x51. Для этого микроконтроллера уже есть цепь сброса, так зачем добавлять ещё одну, чтобы сбрасывать модуль EM? Можно подключить неиспользуемый вывод ввода-вывода x51 к выводу RST модуля EM. При запуске x51 получит корректный сброс от своей цепи сброса, и его выводы ввода-вывода перейдут в состояние HIGH. Это обеспечит надёжный сброс модуля EM. Код основного микроконтроллера можно изменить так, чтобы через задержку, скажем 100 мс, вывод «сброса» переводился в состояние LOW.

Рекомендуется по возможности использовать такой подход «сброса под управлением процессора». Он не только снижает стоимость (не нужна дополнительная микросхема сброса), но и даёт основному процессору возможность сбросить модуль EM в любой момент. Как будет показано ниже, это может очень пригодиться, если процессор должен программировать настройки EM и/или обновлять его внутреннюю прошивку. Конечно, не всегда возможно управлять сбросом с основного процессора (может не быть свободных линий ввода-вывода, может быть невозможно изменить прошивку основного процессора и т. д.). В этом случае просто используйте подходящую микросхему сброса.

Предусмотрите светодиоды состояния, кнопку prog/init и разъём для доступа к последовательному порту

Примечание: часть о светодиодах относится ко всем модулям.

У модулей Tibbo EM есть четыре линии управления светодиодами (ER, EG, SR, SG). Настоятельно рекомендуется предусмотреть эти светодиоды на плате. Без них вы остаётесь «слепыми». Допустим, EM в вашем устройстве работает не так, как ожидается. Если светодиоды есть, решить проблему гораздо проще. Светодиоды SR и SG показывают множество различных шаблонов сигналов, поэтому один взгляд на них может многое рассказать о текущем состоянии EM. Светодиоды ER и EG сообщают о состоянии Ethernet-соединения, что тоже важно.

В идеале эти светодиоды должны быть видны снаружи (левый рисунок). Так их смогут видеть и пользователи. Если это невозможно, предусмотрите хотя бы светодиоды на плате, чтобы их можно было наблюдать при снятой крышке устройства (правый рисунок).

Дополнительные элементы

Помимо светодиодов, настоятельно рекомендуется предусмотреть кнопку настройки (setup), подключённую к выводу MD модуля EM. Опять же, лучше всего сделать эту кнопку доступной снаружи (левый рисунок выше). Если это невозможно, можно предусмотреть внутреннюю кнопку или простую перемычку на плате (правый рисунок выше). Зачем это нужно? Потому что в течение срока службы устройства вам (или пользователям) может понадобиться одно из следующих действий: (1) инициализировать EM, (2) программировать EM через последовательный порт или (3) обновить внутреннюю прошивку EM.

Инициализация может понадобиться, если EM каким-то образом потерял свои настройки (из-за сильного ESD или по другой причине) или был неправильно настроен. Чтобы инициализировать EM с помощью кнопки настройки, используйте процедуру быстрой инициализации.

Программирование через последовательный порт может понадобиться, если модуль EM по какой-либо причине нельзя запрограммировать по сети. В этом случае достаточно нажать кнопку настройки, чтобы перевести EM в режим программирования через последовательный порт, и выполнять всё программирование через последовательный порт. Для этого, конечно, нужен доступ к последовательному порту EM. Об этом ниже.

Наконец, нельзя исключать и обновление прошивки через последовательный порт. Конечно, в основном можно использовать обновления по сети, но рассчитывать только на них не стоит. Обновление через последовательный порт - самый надёжный способ, который всегда срабатывает. Для такого обновления нужна кнопка, а также доступ к последовательному порту EM. Теперь перейдём к этому вопросу.

Последняя рекомендация: предусмотрите простой способ разорвать последовательное соединение между EM и основным процессором. Линии TX и RX модуля EM можно вывести через две перемычки. Перемычки замкнуты при нормальной работе, поэтому EM подключён к процессору (см. рисунок ниже). Когда требуется напрямую обратиться к последовательному порту EM, перемычки снимают и подключают простой последовательный кабель. Ему нужны только три линии: TX, RX и земля. Поскольку у EM последовательный порт TTL, этот кабель нельзя подключить напрямую к COM-порту ПК. Используйте простую плату с установленной микросхемой RS232 для преобразования сигналов TTL<-->RS232.

Перемычки

Предусмотрев перемычки, вы оставляете «чёрный ход» и к EM, и к последовательному порту основного процессора. Это может оказаться очень полезным при ремонте, сервисном обслуживании и т. д. И последнее замечание: если перемычки кажутся ненадёжными или на плате для них не хватает места, можно использовать паяные перемычки (solder jumpers).

Пусть основной процессор управляет модулем...

Ещё одна важная рекомендация: пусть основной процессор управляет модулем EM. Под управлением здесь понимаются: (1) возможность перезапустить EM в любой момент, (2) возможность программировать EM, (3) возможность обновлять внутреннюю прошивку EM. Реализация этого необязательна, но она так проста, что реальных причин не делать этого нет (если такая возможность есть). Верно, EM не обязательно программировать через последовательный порт: всё программирование можно выполнить по сети с помощью DS Manager. Однако это не всегда согласуется с остальными функциями вашего устройства.

Пример: в вашем устройстве есть ЖК-экран и клавиатура, и есть режим настройки, который позволяет задать все рабочие параметры (время, дату и т. д.). Для единообразия стоит включить в эту экранную настройку и параметры, связанные с EM (например, IP-адрес устройства). Для этого нужно обеспечить способ, которым основной процессор переведёт EM в режим программирования через последовательный порт.

Другая возможность - чтобы основной процессор обновлял прошивку EM. Опять же, обновить модуль EM можно по сети с помощью DS Manager, а в тех редких случаях, когда обновление по сети невозможно, можно использовать описанный выше метод «кабеля-перемычки». Тем не менее гораздо аккуратнее, если прошивку может обновлять сам основной процессор. Встречался случай, когда EM использовался в терминальном устройстве, которое также можно было обновлять в полевых условиях. Заказчик реализовал систему, в которой файл обновления основного процессора содержал и прошивку EM (файл прошивки EM был объединён с файлом прошивки этого «главного» устройства). После загрузки терминала с новой прошивкой он автоматически инициализировался и загружал новую прошивку и в EM! У пользователей сложилось общее ощущение «единства» устройства, которым они пользуются.

Чтобы реализовать всю эту гибкость, основному процессору нужно управлять всего двумя дополнительными линиями: RST и MD (линии TX и RX уже есть, верно?). О подключении линии RST уже говорилось. Линия MD подключается так же. Поэтому нужны всего две дополнительные линии ввода-вывода процессора.

Обратите внимание, что по-прежнему рекомендуется предусмотреть все элементы, о которых говорилось в предыдущем разделе. Это означает, что линию MD модуля EM рекомендуется подключать к основному процессору и одновременно предусмотреть кнопку настройки. Многие процессоры и микроконтроллеры имеют выводы ввода-вывода, которые можно внешне притянуть к низкому уровню, а внутренне - к высокому одновременно (например, микроконтроллер x51 именно такой). В этом случае можно просто соединить параллельно выход процессора и кнопку настройки (рис. 4a). Если это недопустимо, можно использовать два диода Шоттки, чтобы развязать вывод ввода-вывода и кнопку (рис. 4b).

Схема сброса

В некоторых случаях, конечно, невозможно, чтобы основной процессор управлял линиями RST и MD. Может не быть свободных выводов ввода-вывода, либо соединения между платами в устройстве могут не иметь свободных проводников для сигналов RST и MD. В этом случае нельзя будет перевести EM в режим обновления прошивки, но основной процессор всё же сможет программировать настройки EM, когда это необходимо. Есть альтернативный метод (вернее, два метода) перевода EM в режим программирования через последовательный порт - отправка так называемой escape-последовательности.

Единственная сложность в том, что для этого должна быть разрешена соответствующая escape-последовательность. Это определяется настройкой Soft Entry (SE), которая по умолчанию имеет значение 0 после инициализации (escape-последовательность отключена). Да, это можно включить вручную с помощью DS Manager, но если EM будет инициализирован, escape-последовательность перестанет работать, и настройку SE придётся снова редактировать вручную!

Чтобы избежать этой ситуации, можно определить собственные значения настроек после инициализации. Вместо заводского значения 0 (отключено) можно сделать значением по умолчанию 1 или 2 (escape-последовательность типа 1 или типа 2). В рекомендации AN001 («Варианты кастомизации наших продуктов») описано, как это сделать.

...Или пусть модуль EM управляет основным процессором

И здесь - полная противоположность: иногда лучше, чтобы модуль EM управлял основным процессором устройства. Встречался случай, когда EM100 использовался в очень простой последовательной машине. У этой машины была также функция обновления прошивки. Пользователь должен был нажать специальную кнопку, затем включить устройство и загрузить прошивку через последовательный порт. После добавления EM100 последовательный порт устройства был подключён к последовательному порту EM100. Конечно, новую прошивку можно было загрузить в устройство через EM100 (то есть по сети). Это позволило бы делать удалённые обновления прошивки, если бы не одна небольшая проблема: кнопку «обновления» всё равно нужно было нажимать на самой машине, и это убивало всю идею удалённого обновления.

Чтобы решить эту проблему, линию загрузки (download) основного процессора машины подключили к линии ввода-вывода общего назначения EM100. Дистанционно управляя состоянием этой линии ввода-вывода, теперь можно перевести основной процессор в режим обновления прошивки! Теперь обновления действительно удалённые.