Новогоднее исследование ADSL-роутера на базе Linux — 0x1 — разбираем 🙂



0x0 — введение
0x1 — разбираем 🙂

Вот и 1-е января 2011-го года! И если Вы уже немного отошли от новогоднего застолья и Вам не хочется выходить из дома, то самое время зажечь на столе лампу, взглянуть за окно и насладиться домашним уютом в этот замечательный зимний день. Домашние тапочки, горячий чай, спокойствие и покой… Теперь, можно приступить к исследованию мира встраиваемых систем, шаг за шагом продвигаясь через дебри электронных схем, листинги кода и готичные экраны nix-овой консоли.
Сегодня займёмся разборкой своего подопытного устройства.
Для этого нам понадобятся всего-лишь две отвёртки — плоская и крестовая.

Итак, в качестве подопытного у нас ADSL-модем:
ZTE ZXDSL831AII
почти идентичный ADSL-модему D-link DSL-2500U.

Вот, что входит в комплект модема:

* модем
* блок питания
* сплиттер
* два телефонных провода (RJ-11)
* патчкорд (RJ-45)
* USB-кабель типа A-B

Как видите — просто куча бонусов 🙂 Тот же USB-кабель можно использовать для подключения Arduino/CraftDuino — красота 🙂

Внешний вид самого модема:

сверху:

со стороны разъёмов:

Пора разбирать 🙂

Ещё раз повторяю, что эксперименты над своим оборудованием Вы совершаете на свой страх и риск.

Перевернём модем днищем вверх, плоской отвёрткой отколупнём полусферы резиновых ножек и увидим головки саморезов под крестовую отвёртку.

Выкручиваем саморезы и аккуратно снимаем крышку. Обратите внимание — со стороны светодиодов находятся две защёлки:

Видим плату, которая больше ничем не закреплена, вынимаем её из корпуса:

Обратите внимание на разрез платы, который отделяет высоковольную часть (60В телефонной линии) от остальной схемы.

Самое интересное на этой схеме — это три больших микросхемы в центре:
— это центральный процессор
— микросхема ОЗУ (RAM)
— микросхема флеш-памяти (FLASH)


Т.е. имеем вполне полноценный одноплатный компьютер!
Обратите внимание, на 4-пиновый разъём в левом нижнем углу (это если смотреть по фотографии — на самом деле — судя по шелкографии (надписям) на плате — её нужно рассматривать разъёмами к себе)
Так вот, этот разъём, помеченный на плате, как J5 — это выведенный последовательный порт!

Замечу, что в других модемах служебные разъёмы скорее всего не будут напаены и придётся делать это самостоятельно.
К сожалению, в рассматриваемой модеме не выведен JTAG (специальный интерфейс для отладки). Поэтому пока его рассматривать не будем.

Интерфейс JTAG (Joint Test Action Group) служит для тестирования печатных плат с помощью функции граничного сканирования (boundary scan), программирования энергонезависимой памяти и отладки процессора (debug).
Для подключения к LPT-порту есть простая схема из нескольких резисторов.

Распиновка J5
1-GND
2-TX
3-RX
4-Vcc

Рассмотрим наши микросхемы внимательнее и попробуем погуглить, что же нам досталось:

смотрим маркировку микросхем, вспоминаем ключевое слово: datasheet (техническое описание) и используем гугл 😉

Итог поисков:

наш процессор — Broadcom BCM6338:
производитель: broadcom
datasheet (единственное, что нашлось)

BCM6338 — ADSL2+ Router Solution

The BCM6338 combines an ADSL2+ transceiver and analog front end (AFE) with a high-performance MIPS32 CPU, a 10/100 Ethernet interface, and a USB 1.1 interface into a single high-performance, cost-effective monolithic device.

Single-chip ADSL2+ bridge/router solution with seamless, multiuser support of Ethernet and USB home LAN technologies

BCM6338 — сочетает в себе высокопроизводительный центральный процессор 280DMIPS MIPS32, приёмо-передатчик ADSL2+, а так же интерфейсы 10/100 Ethernet и USB 1.1.

MIPS (англ. Microprocessor without Interlocked Pipeline Stages) — микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) в соответствии с концепцией проектирования процессоров RISC (то есть для процессоров с сокращенным набором команд).

В настоящее время различные реализации MIPS используются, в основном, во встроенных системах, например, в устройствах Windows CE, маршрутизаторах, шлюзах, xDSL и кабельных модемах, карманных компьютерах, а также в игровых консолях(Sony PlayStation 2).

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

смотрим далее:

ESMT M12L64164A -7T
— чип памяти:
SDRAM 1M x 16 Bit x 4 Banks, 143 MHz, TSOP 54
standard 3.3V power supply
54 Pin TSOP (Type II)
производитель: EliteMT (ESMT)
datasheet

чип предоставляет 64 Mbit == 8 MByte
Итого, у нас 8 Мегабайт оперативы 🙂

идём дальше:

MX29LV160CBTC-70G
— микросхема FLASH-памяти, объёмом 2Mb

MX29LV160C T/B is a 16-mega bit Flash memory
organized as 2M bytes of 8 bits or 1M words of 16 bits.
ресурс перезаписи у Flash-памяти:
100,000 minimum erase/program cycles

производитель: Macronix International
datasheet

Т.о. имеем одноплатный компьютер с центральным процессором Broadcom BCM6338 с частотой 240 Mhz и архитектурой MIPS, 8 Мегабайт оперативной памяти и 2 Мегабайта Flash-памяти.
Доступные интерфейсы:
Ethernet, USB 1.1, Serial.

читать далее: 0x2 — знакомимся с программной частью

Ссылки
http://en.wikipedia.org/wiki/MIPS_architecture
http://ru.wikipedia.org/wiki/MIPS_(архитектура)


0 комментариев на «“Новогоднее исследование ADSL-роутера на базе Linux — 0x1 — разбираем :)”»

  1. Интересно, какое максимальное кол-во ОЗУ способен переварить BCM6338? У меня с моим экземпляром была такая идея (в теории): нарастить ОЗУ, переделать USB порт с эмуляции ethernet на просто USB (интересно, там этот порт подключен напрямую, или через хитровывернутую микруху эмулирующую ethernet over USB?) и подключить к нему USB hub. Далее грузим минимальное ядро и через kexec грузим нормальное с USB флешки.
    Эх, жаль datasheet на BCM6338 нет. 🙁

    • Спасибо. Но к сожалению без рентгена мне эта распиновка ничего не говорит. =) Правда и мопеда у меня сейчас поблизости не имеется.
      п.с. Сейчас прошелся по wiki.openwrt.org/toh/start — там более 16 Мегабайт ОЗУ на BCM6338 не ставят, а жаль.

    • хм… собственно в статье этот документ и приводится 😉

    • Вообще странно, у DSL-2540B, он на этом-же чипе, 16Мб ОЗУ, да и собственно та-же M12L64164A -7T или S25FL016A как у меня — тоже 16Мб. Интересно, а в модеме используется всего 8Мб. А можно-ли как-то «активировать» и вторые 8 метров? И кстати по usb — у меня d-link-2500u — , без usb, но на плате предусмотрены места и разводка для usb — просто не стоит разъем и несколько резюков/диодов. Может в курсе — какие у них должны быть номиналы?

    • Я имел в виду отпаять микросхему оперативной памяти и припаять на нее место более вместительную. Т.е., вместо 8 Мегабайт (не путайте с мегабитами) поставить… эээ ну, скажем, 32, или 64.* 😀
      А там такой облом. 🙁

      * На подобии этого перца: http://www.dd-wrt.com/wiki/index.php/Увеличение_оперативной_памяти_D-Link_DIR-320

    • Ну вообще да, нагородил я там… Но вообще меня больше интересует вопрос объема ПЗУ — 2Мб — у 2500U прошивка почти один в один и судя по всему добавить туда еще что-то проблематично. Прошелся по bin-ам UPX-ом — как и предполагалось эффекта 0 — прошивка то и так сжатая lzma. Остается правда вариант избавиться от web-морды, там почти 900Кб html-ов, а настраивать если что через telnet…

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение