Хочу поделиться с общественностью своими задумками. Цель задумки подключить через ethernet ZX к сети. Попытаюсь ответить на некоторые вопросы сразу. Почему ethernet, а не модем? Потому, что у меня нет дома телефона (только сотовый), но есть ethernet, а лазить в сеть через сотовый при наличии более дешевого канала считаю расточительностью. :-) Если что-то получится, то _все_ будет полностью открытым, начиная от схем заканчивая исходниками (на языке С) прошивкой контроллера (люблю я opensource :-)
== Структура:
В контроллере ATmega64/128 (использую 128-ю только по тому, что цена на 64-ю и 128-ю в "Чип и Дип" одинаковая) будет реализован IP-стек (UDP, TCP, ICMP), DNS-клиент, можно добавить DHCP-клиента. В качестве IP-стека собираюсь использовать uIP (uIP-AVR порт). В качестве ethernet контроллера, сейчас использую ISA сетевую карту, совместимую со стандартом NE2000. В принципе, можно использовать и другие, но придется перерабатывать интерфейсную часть с ethernet контроллером, разбираться и писать драйвер для карты. Плюс здесь в том, что это никак не отразиться на взаимодействии с ZX-сом. Почему не хочу использовать готовые решения с IP стеком (типа WizNet)? Потому, что хочется иметь как можно более открытое и свободное решение. Почему делаю прослойку в виде ATmega МК, а не подрубаю карту напрямую? Первое, это потому, что не хочется всю работу с IP-стеком переваливать на Z80. Второе, для стека требуется память, примерно 32К, не хочется использовать оперативку ZX-са для этого. Третье... надо подумать... :-) Отрицательное здесь: 1. для потенциальной ОС меньше свободы; 2. если будет когда-то писаться софт для работы с сетью, то очень сильно будет различаться доступ к модему и этой сетевушке; :-( 3. .....Код:+-------------+ | SRAM 32/64K | +-------------+ | +-------------+ +-------------+ +------------+ | ZX-Spectrum | | ATmega128 | | Ethernet | | |<---->| |<---->| | | via ZX-BUS | | IP stack | | Controller | +-------------+ +-------------+ +------------+
== Состояние:
Подрубил к МК SRAM и сетевушку. Начал адаптировать проект uIP-AVR. С наскока запустить не удалось, пришлось копаться в кодах. Переписал процедуру чтения MAC-адреса, теперь приступил к разборке глюков работы с сетью.
== Мысли:
Взаимодействие с ZX-ом думаю организовать через 2-3 порта. Есть задумка, подрубать вместо ПЗУ оперативку карты в которую МК будет помещать данные чтобы ZX их мог просто копировать через память, а не получать через порт. Так же, возможно размещение ПЗУ на карте для библиотеки сокетов и сервисного софта. Но это мысли. Конечный результат можно будет делать не из расчета работы с сетевыми картами, а все собирать на одной плате используя контроллер RTL8019. Они есть в "Чип и Дипе", думаю можно будет и заказать у них.
== Расходы (цены "Чип и Дип"):
ATmega64/128 - 1шт. 300 руб.
SRAM 32К - 1шт. 64 руб. (пока стоит одна)
разные компоненты 100 руб. (думаю хватит)
плата - 1шт. 300-500 руб. (думаю так?)
для варианта с сетевушкой
SL-62 (слот ISA-8) - 1шт. 20 руб.
сетевушка NE2000 - 1шт. >=0 руб.
для варианта с RTL8019
RTL8019 - 1шт. 190 руб.
RJ-45 розетка - 1шт. ?? руб.
FB2022 - 1шт ?? руб. (трансформатор для ethernet, бывают совмещенные розетка-транс)
опционально для отладки
MAX232 - 1шт. 30 руб.
== Нахрена это надо:
Just For Fun! :-)
== Зачем я вообще об этом написал:
Хоть я и делаю это для своей забавы, но хочется, чтобы девайс смог принести забаву и другим. Поэтому, хочется выслушать ваше мнение, но только нормальные, с четким описанием своей точки зрения.
== Вот так оно сейчас выглядит: