PDA

Просмотр полной версии : ZX-ETH-CARD



jager
24.04.2007, 13:26
Хочу поделиться с общественностью своими задумками. Цель задумки подключить через ethernet ZX к сети. Попытаюсь ответить на некоторые вопросы сразу. Почему ethernet, а не модем? Потому, что у меня нет дома телефона (только сотовый), но есть ethernet, а лазить в сеть через сотовый при наличии более дешевого канала считаю расточительностью. :-) Если что-то получится, то _все_ будет полностью открытым, начиная от схем заканчивая исходниками (на языке С) прошивкой контроллера (люблю я opensource :-)

== Структура:



+-------------+
| SRAM 32/64K |
+-------------+
|
+-------------+ +-------------+ +------------+
| ZX-Spectrum | | ATmega128 | | Ethernet |
| |<---->| |<---->| |
| via ZX-BUS | | IP stack | | Controller |
+-------------+ +-------------+ +------------+


В контроллере 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 и сетевушку. Начал адаптировать проект 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! :-)

== Зачем я вообще об этом написал:
Хоть я и делаю это для своей забавы, но хочется, чтобы девайс смог принести забаву и другим. Поэтому, хочется выслушать ваше мнение, но только нормальные, с четким описанием своей точки зрения.

== Вот так оно сейчас выглядит:

Vitron
24.04.2007, 14:03
Очень хорошо что начало положено для развития спека в этом направлении..
еще бы нормальную прогу типа браузера с преобразованием картинок под разрешение спека,ипользование расширенной графики и дела пойдут!

можно ознакомиться с тех документацией на платку?

Sonic
24.04.2007, 15:41
Не реализуй стек на МК, оставь там только ARP и первоначальный разбор фреймов. Тогда между модемом и сетевухой разницы не будет.
Хотя тогда и МК не нужен...

CHRV
24.04.2007, 15:45
А почему все-таки дополнительный контроллер? Память жалко?

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

Sonic
24.04.2007, 15:47
еще бы нормальную прогу типа браузера с преобразованием картинок под разрешение спека,ипользование расширенной графики и дела пойдут!


ИМХО развернуть эдак 200x200 JPEG проблематично будет.
Я бы тут рассмотрел две вещи:
1) Wap.
2) Для hardcore-фанов - спецверсии страниц, адаптированных под экран и графику спека. Наподобие того, как выглядели статьи в Spectrofon или ZX-Format. :v2_finge:

Добавлено через 4 минуты

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

Да, ты прав. Даже на больших машинах пришли к тому же - Hardware IP offload.

Добавлено через 10 минут
Кстати, хоть до этого еще далеко, но тем не менее предложение по поводу Spectrum-side firmware. Изучи документацию на сетевую часть Interface-I (Disciple) и сделай его эмуляцию поверх IP, на уровне RST #08 и команд бейсика. У нас стандарта нет, нам пофиг, а вот импортному народу понравится.

Error404
24.04.2007, 16:23
Изучи документацию на сетевую часть Interface-I (Disciple) и сделай его эмуляцию поверх IP, на уровне RST #08 и команд бейсика. У нас стандарта нет, нам пофиг, а вот импортному народу понравится.


Интерфейс нужно приводить к сокетам. Извращения - опционально позже. Под сокеты уже всё что нужно (апликуха) написано.

DVS
24.04.2007, 16:57
А бы на месте автора брал бы контроллер с интегрированным NIC - дешевше будет и элементов поменьше.

Тут вся фишка в том, что проект uIP хорошо документирован и именно под 128 мегу, а в новый контроллер надо всё переделывать почти с нуля.

psb
24.04.2007, 16:58
вопрос: а почему атмега+рам? можно сейчас взять дешевый арм7 с аж 64 кило на борту, и стек уже есть под него. + он быстрее атмеги.

если честно, я очень рад, что ход мыслей автора совпадает с моими по идеологии:) и.. я надеюсь на плодотворное сотрудничество:)

пожелания. всё же, лучше делать на арм7 и делать не только езернет, но и уарт (т.е. и ppp встраивать). а возможно и ирда. все это под силу дешевому арм7:)

сейчас есть самый главный вопрос: разработка протокола обмена ZX с контроллером (некий API).

DVS
24.04.2007, 17:15
всё же, лучше делать на арм7

uIP-AVR проект не предусматривает ARM7/9.

psb
24.04.2007, 17:31
uIP-AVR проект не предусматривает ARM7/9.
есть как минимум 2 готовых стека на арм7. и uIP как раз и был один из них. моё имхо - под арм делать удобнее и проще (да и про сам проц говорить нечего, цена такая же, возможностей море).

jager
24.04.2007, 20:59
можно ознакомиться с тех документацией на платку?
Ну вы прям как большой к проекту подходите, все что есть пока из документации, это то что я написал. :-) Ну и исходники прошивки. :-)


А бы на месте автора брал бы контроллер с интегрированным NIC - дешевше будет и элементов поменьше.
А достоваемость какова у нас этого хозяйства? Я летом, кажется, поглядывал, но в наличии в магазинах ничего не нашел.


можно сейчас взять дешевый арм7 с аж 64 кило на борту
С АРМами дела не имел :-( подкиньте полезного. Почитаю, подумаю. Может и передумаю... на АРМ :-)


и делать не только езернет, но и уарт (т.е. и ppp встраивать). а возможно и ирда
Примитивный уарт есть, я по нему отладочную печать делаю. Можно будет сделать плату, у которой в качестве сетевой части можно подрубать сетевушку или модем и заливать соответствующую прошивку. Получится со стороны спека всегда одно и тоже, а с другой стороны разное.

KingOfEvil
24.04.2007, 21:44
Чрезвычайно полезная вещь по-моему. Если будет нужна какая-либо помощь в аппаратных вопросах - всегда готов.

Mick
24.04.2007, 21:52
есть как минимум 2 готовых стека на арм7. и uIP как раз и был один из них. моё имхо - под арм делать удобнее и проще (да и про сам проц говорить нечего, цена такая же, возможностей море).

Да АРМ быстрей и у него есть свой сетевой интерфейс. И стоит он столько же. Но какой смысл иметь мощный контроллер сети и слабый компьютер. Это уже какая то гипертрофия. А самый простой сетевой протокол и сам спек сможет поднять. Известны web браузеры сделанные на PIC и сетевых картах. Кстати спецификация NE2000 описана и у нас достаточно не плохо.

Добавлено через 10 минут


== Вот так оно сейчас выглядит:


Посмотрел, прикольно. У меня сечас собирается на 64 Mege и UM9008 выпаянной с платы. Правда несколько другая цель чем у тебя. У меня цель, задание, реализовать передачу аудиоданных и передачу команд управления.

Кстати о комплектации. В Москве есть RTL8019, я себе для вышесказанного проекта купил. Также есть от Microchipa 28 ногий Ethernet контроллер с интерфейсом SPI (стоит где то 200 руб).

caro
25.04.2007, 10:11
Также есть от Microchipa 28 ногий Ethernet контроллер с интерфейсом SPI (стоит где то 200 руб).Называется - ENC28J60
В Промэлектронике стоит ~150 р.
Купил пару штук, примеряюсь подключить к SPI-интерфейсу ZX_MC :)
О реализации стека TCP/IP на нем рекомендую посмотреть:
http://www.gamma.spb.ru/articles.php?i=68

psb
25.04.2007, 17:40
Да АРМ быстрей и у него есть свой сетевой интерфейс. И стоит он столько же. Но какой смысл иметь мощный контроллер сети и слабый компьютер. Это уже какая то гипертрофия.

мы живем уже не в 80е годы 20 века, следовательно, почему бы не использовать современное железо, если оно дешево? какой смысл самого себя ужимать в возможностях?


возьмем аську. можно же её сделать и на одном спеке с модемом, но при этом она будет тормозная, да и написать это будет ой как не просто. этот вариант годится только для доказательства того, что на "обычном спеке с модемом" это возможно. лично я в этом ни сколько не сомневаюсь. всё. а вот если подключить сетевую плату к спеку - надо будет переписать программу. а если будет еще почтовик? и его переписать:)

другое дело, когда стек реализован вне программы-клиента, т.е. через некоторый API. это вон как с GS получилось в эмуляторах.. есть полная эмуляция, а есть похожая, где важен набор команд и их значение. здесь можно соединить хоть 2 спека, в одном будет стек, в другом клиент. так будет универсальнее, надежнее и быстрее(хотя, по-сути, не так и быстро)! и любителям-мазохистам писать _тонны_ кода на асме Z80 будет радость:))) только один вопрос: где эти любители? их нет! а потому завтра не появится этого решения.

3й вариант: микроконтроллеры. маленькие, дешевые, удобно для них сейчас писать на си, потому что быстрее и технология уже отработанная. имхо, это самый правильный вариант, здесь главное удобно подключить это все к спеку и придумать удобный интерфейс. а реализация (avr, arm) не так и важна.. по-моему, важнее скорость и удобство разработки.

так вот, касаемо вопроса о мощном контроллере. та же аналогия: спек, на котором можно писать интересные и быстрые программы, но только на асме, жутко все оптимизируя, и какой-нить современный комп, на котором можно это же написать на си, не задумываясь, как оно там че делается. где быстрее написать? на современном компе, это бесспорно.
а значит, что скорее всего делать под арм будет гораздо проще и быстрее, и при этом еще останется задел на будущее.

у меня есть небольшой опыт работы с пиками, авр и армами (да и не только). так вот работать с арм намного приятнее! кажется, после него уже не захочешь переходить обратно на пик и авр.. чего только стоит CrossStudio и gcc.. и внутрисхемный отладчик всего на 2х простых м/с:)))
и периферия не в пример пикам и авр;)

но говорю еще раз, это только моё пожелание. если будет такая штука на авр - ради бога, для начала и это будет супер!:)

Mick
25.04.2007, 18:36
.....
у меня есть небольшой опыт работы с пиками, авр и армами (да и не только). так вот работать с арм намного приятнее! кажется, после него уже не захочешь переходить обратно на пик и авр.. чего только стоит CrossStudio и gcc.. и внутрисхемный отладчик всего на 2х простых м/с:)))
и периферия не в пример пикам и авр;)

но говорю еще раз, это только моё пожелание. если будет такая штука на авр - ради бога, для начала и это будет супер!:)

Так тебе никто и не запрещал. Здесь было высказано предложение.
А если ты думаешь что кто-то будет писать под контроллер кроме драйвера, то это большой вопрос еще.


P.S.Лучше бы на Арме сварганили Спек.:) , гораздо бы интереснее сразу жизнь стала.

icebear
25.04.2007, 18:44
P.S.Лучше бы на Арме сварганили Спек.:) , гораздо бы интереснее сразу жизнь стала.

Чем? И зачем Спек на арме?

Mick
25.04.2007, 18:54
Чем? И зачем Спек на арме?

А вы сделайте и поймете сразу зачем. :)
Но ведь на Zx80 спека не предвидется, а АРМ это реальная возможность для спека обретения своей многозадачной ОСи. Да и вопросы с разработкой дополнительного железа(USB, LAN .... ) решаться сами собой. А главное хорошее видео можно реализовать.

А еще PSB не придется мучиться с асмом, а на си он выдаст на гора кучу проектов, и не только он один :)
Главное сделайте Диззи, тащусь от этой игрушки.;)

psb
25.04.2007, 19:01
Так тебе никто и не запрещал. Здесь было высказано предложение.
я один буду это делать веками, потому что хоть и хочется, но времени и поддержки мало.


А если ты думаешь что кто-то будет писать под контроллер кроме драйвера, то это большой вопрос еще.
кроме какого драйвера? сетевой что ли? тогда в чем фишка? это можно щас взять, собрать и готово. но оно будет абы-как, а надо, чтоб УДОБНО. а для этого писать и писать придется.


P.S.Лучше бы на Арме сварганили Спек. , гораздо бы интереснее сразу жизнь стала.
ну-ну.. получился бы новый компьютер.. и ЗАЧЕМ? по-моему, сейчас любой, разбирающийся в контроллерах, может сделать свой комп. только толку в этом нет, чисто побаловаться.

если речь о эмуляции z80 на arm7.. имхо, не реально. а если вдруг и реально, то плюсов никаких, все ресурсы уйдут на эмуляцию.

Добавлено через 14 минут

Но ведь на Zx80 спека не предвидется, а АРМ это реальная возможность для спека обретения своей многозадачной ОСи. Да и вопросы с разработкой дополнительного железа(USB, LAN .... ) решаться сами собой. А главное хорошее видео можно реализовать.

1. у спека многозадачность уже давно есть. ОС - это дело времени.
2. доп.железо - возможно, хотя вряд ли.
3. зачем видео? обьясни тогда, что в этом монстре останется спековского? я не понимаю. проц не тот, графика не та, и вообще все не то.. ???


А еще PSB не придется мучиться с асмом, а на си он выдаст на гора кучу проектов, и не только он один

1. я не обещал, что я буду писать на си много и быстро (даже в случае arm7). не говорил я такого, но все возможно.
2. на си (чисто теоретически) проги бы выходили куда чаще, чем сейчас.

/*
вот я взялся сейчас снова за программинг кое-чего на асме z80, так я прихожу к выводу, что былые способности я утратил. на сколько это было легко и естественно тогда, и как сейчас приходится вникать в свой же код. даже видишь потом, что да, не зря ТАК написано - оптимально, но сейчас бы я так не написал. думаю, все так. а кто остался? кто пишет на спеке много и часто? наверное, только alco. а вот на си гораздо проще писать логику. поэтому, вероятнее, что прог было бы больше и чаще, если бы был вменяемый си.
*/

Mick
25.04.2007, 19:27
я один буду это делать веками, потому что хоть и хочется, но времени и поддержки мало.
.....
если речь о эмуляции z80 на arm7.. имхо, не реально. а если вдруг и реально, то плюсов никаких, все ресурсы уйдут на эмуляцию.


Похоже я инопланетянин, разговариваю на каком то языке не понятном:)

На вопрос о делании веками - это я с тобой согласен, здесь либо команда , либо opensource.

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

А на счет того, что на арме сейчас каждый школьник(елки палки я морально устарел со своими PALками, на которых туго получается спек) может сварганить спек - покажите мне этого школьника, я пожму ему руку :).

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

P.S. Дабы не уподобиться тому, кого в темной комнате едва ли найти,
закончу свое возмущенное изложение. Это были мои мысли, которыми я не в коей мере не хотел никого обидеть.

Mike
25.04.2007, 21:42
P.S.Лучше бы на Арме сварганили Спек.:) , гораздо бы интереснее сразу жизнь стала.

Тебе мало эмуляторов на ПЦ ?

Mick
25.04.2007, 21:47
Тебе мало эмуляторов на ПЦ ?

Опять не понимаете о чем я. Наверное я точно инопланетянин.
Тогда забудем все о чем я написал.

jager
26.04.2007, 10:46
Чрезвычайно полезная вещь по-моему. Если будет нужна какая-либо помощь в аппаратных вопросах - всегда готов.
Спасибо, Леша. Как перейду к интерфейсу с ZX, буду тебя дергать. :-)


у спека многозадачность уже давно есть. ОС - это дело времени.
Зацепили оффтопом. А нахрена спеку многозадачность? Т.е. в качестве того, чтобы показать, что такое возможно, это интересно. Но я думаю, просто "гибернейт задачи" был бы куда более удобен и полезен на практике, чем многозадачность. Вот, например, http://www.worldofspectrum.org/residos/

Что использовать в качестве контроллера для платы, я думаю сейчас не актуально, главное сделать удобный интерфейс между спеком и платой, а кто его будет поддерживать со стороны платы это уже не важно для софта работающего на спеке. Коды для контроллера пишу на С (gcc), портировать их на тот же АРМ думаю трудов огромных не вызовет.

icebear
26.04.2007, 11:59
А вы сделайте и поймете сразу зачем. :)
Но ведь на Zx80 спека не предвидется, а АРМ это реальная возможность для спека обретения своей многозадачной ОСи.

Эээ, а где при этом будет сам Спек?


Да и вопросы с разработкой дополнительного железа(USB, LAN .... ) решаться сами собой. А главное хорошее видео можно реализовать.

Хорошее видео на арме? Можно, только на очень хорошем арме. И что бы этот арм видео только и занимался.


А еще PSB не придется мучиться с асмом, а на си он выдаст на гора кучу проектов, и не только он один :)

Ану это убийственный аргумент :) Теперь надо трясти срочно PSB.


Главное сделайте Диззи, тащусь от этой игрушки.;)

+1

psb
26.04.2007, 15:54
А новые программы увы, только арм(как два режима).

давно известно, что НИЧЕГО не будет. уже сколько делали разных и видео-режимов, и улучшенных спеков - нифига не прокатило. чтобы народ заинтересовать, надо написать кууучи софта + чтоб железка была очень дешевой. что касается эмуляции z80, тоже весьма сомнительно..



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


USB и MultiCard придумал и еще кучу всего, а результата нет, ни кто поддержкой заниматься не хочет, одни статисты и пользователи
если б мне просто так платили зарплату и мне не надо было бы по 12 часов работать, я бы занимался софтом! а сейчас - только ждать. мне кажется, со временем все будет.



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


А нахрена спеку многозадачность?
удобная штука! писать программы гораздо проще, особенно сетевые. нужно лишь 1 раз научиться (т.е. попробовать, сделать какие-то шаблоны, примеры), а потом попрет! у меня есть ядро, и именно его я собираюсь использовать в своих приложениях.


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


портировать их на тот же АРМ думаю трудов огромных не вызовет
возможно, просто я про то, что для арма видел тот же uIP с драйвером для CS8900 (или как его) и под арм удобнее и проще разрабатывать (хотя, не совсем уверен, относительно мало знаю про авр).

CHRV
26.04.2007, 15:59
возможно, просто я про то, что для арма видел тот же uIP с драйвером для CS8900 (или как его) и под арм удобнее и проще разрабатывать (хотя, не совсем уверен, относительно мало знаю про авр).
Ну это прошлый век. Если уж брать АРМ то уже с интегрированным NIC, например http://www.nxp.com/pip/LPC2378FBD144.html

moroz1999
15.05.2007, 10:31
2) Для hardcore-фанов - спецверсии страниц, адаптированных под экран и графику спека. Наподобие того, как выглядели статьи в Spectrofon или ZX-Format. :v2_finge:
поддерживаю на все 100.
имхо, нахрена на спектруме смотреть pc-шные странички, которые всё равно будут корявыми и нечитабельными, если под рукой есть PC со всеми мозилами и операми?
гораздо прикольнее сделать что-то своё. за основу можно взять qhts Vitamin'а, там есть почти всё, что можно представить.

в общем, проект - вещь.