Просмотр полной версии : Сетевая карта. Теплая и ламповая.
Наступает осень. Дети идут в детский сад и школу. Жизнь прекрасна.
Отходит дачный сезон. И приходят в голову разные мысли.
Например, почему на спектруме до сих пор нет сетевой карты на базе Z80, втыкаемой в NemoBus? Ну такой, чтобы по максимуму была теплая и ламповая. То есть на элементной базе 80х по максимуму.
Вынашивал мыслю долго. Но тут, на новой работе, я вплотную копаюсь в сетевых драйверах и протоколах. Уровень между железом и ОС. И мне это нравится.
В моём представлении, сетевуха выглядит так:
1. Центральный процессор Z80. (Так хочу, потому что тёпло и лампово).
2. Небольшая ПЗУ для начальной загрузки.
3. Большое (128К или больше) ОЗУ. В основном оно нужно для кольцевых буферов приёма и передачи пакетов.
4. Интерфейс NemoBUS.
5. Обязательная генерация прерываний по приёму-передаче.
6. PHY реализовать пока не знаю на чём можно. Но это наверное единственное, что более-менее современное понадбится.
Сетевуха по идее должна быть умной. Часть пакетов, например ICMP и ARP - сама обрабатывать должна. TCP-сокеты держать. В общем, по максимуму разгружать ЦП.
Раз тут типа концепции, то мутные мысли писать можно))
А может я просто не в курсе и такая карта уже есть? Про esp8266 и карты от nedopc я в курсе.
Ну запретить делать карту на Z80 никто запретить не сможет, но может что-то более классическое сделать? NE2000 совместимое)
Что значит "совместимое"?
Физ. уровень Еthernet или wifi.
Иного смысла делать не имеет.
Со стороны спека nemobus или что-то подобное.
Выбор невелик.
Да и тупая эта ne2000. А для спека имеет смысл всю черновую работу делать на карте, разгрузив цп.
Я в чем-то не так рассуждаю?
Error404
04.09.2022, 11:54
Сетевой уровень все равно что-то должно тащить, ты же не прямо к Z80 канальный трансформатор прикрутишь, так что там вполне может быть и NE2000. Может ли на сетевухе быть еще и микрокомп на Z80 с неким API доступа к его буферам и сокетам? Вполне, получится Визнет на Z80. Такое с точки зрения энтомологии может быть вполне интересно. :) Тем более и некие зачатки софта для таких гибридов есть (например от MSX где RTL8019 которая NE2k или чудовищный но безальтернативный uIP).
Какие видятся ограничения. Платформы не хватает для реализации TCP со сборкой фрагментированных пакетов. Поэтому скорость получим менее 10кбайт в секунду (или придется покласть на RFC, что возможно - но черевато). Это не так страшно, ЕМНИП wiznet это тоже не тянет. С другой стороны при этом способе не нужен большой буфер ОЗУ на карте, не нужны прерывания на стороне Хоста (нормального контроллера которых нет ни на одном бытовом ПК на Z80 из тех что тут у нас) - поллинга более чем достаточно.
- - - Добавлено - - -
NЕ2к это же вполне решение тех лет - конец 80х. Корпуса конечно мелколапчатые, но не настолько как у Визнета
MSX'ную сетевую карту от Камиля Каримова подключить никак не получится, или ObsoNet от Ptero ?
https://zx-pk.ru/threads/15815-obsonet-(poltora)-ethernet-plata-dlya-msx-).html
2. Небольшая ПЗУ для начальной загрузки.А это зачем? Есть же ОЗУ.
Не очень понятно зачем. И на 64К/512К. Сомнительно.
Вобщем-то Камиль делал реплику того же ObsoNet как разьяснили msx'овцы: https://zx-pk.ru/threads/15778-obsonet2-ethernet-plata-dlya-msx.html
Вообще в данное время я тащусь от Zxnetusb, прям очень нраица. Конечно W5300 тут не катит по ламповости. Зато вполне реализуем. Вообще все это имеет смысл только если кто-то напишет весь софт от драйвера до браузера)
Ну так у меня на эве самопайный модуль на esp01 стоит:)
Все это есть.
Что зачем?Зачем нужна "2. Небольшая ПЗУ для начальной загрузки."? Если есть ОЗУ.
Зачем нужна "2. Небольшая ПЗУ для начальной загрузки."? Если есть ОЗУ.
Ну... Для загрузки по сети:)
Конечно можно и через озу заливать по, а потом запускать проц на карте.
Ну... Для загрузки по сетиСильно!
Вы художник, если так видите... :D
Я вижу довольно просто:) умная сетевуха со своим отдельным z80. Ну и почему бы по сети не грузить? :)
Спекки-терминал:)
Ну и почему бы по сети не грузить?Это чтобы сэкономить на ПЗУ спеки? :D
Это чтобы сэкономить на ПЗУ спеки? :D
Нет. Это просто по приколу:)
- - - Добавлено - - -
Ну включил спек, а он хоба, законнектился в инет и сразу чегонибудь загрузил:)
Например чат:) или новости:)
В общем, пзу всегда хорошо.
В общем, пзу всегда хорошо.Только один минус. Прошивку нужно менять в программаторе, для этого извлечь, потом обратно установить чип.
В то время, как код, хранящийся в ОЗУ меняется всего лишь обновлением драйвера.
Ну можно и внутрисхемно перешивать.
Не знаю. Везде есть плюсы и минусы
null_device
06.09.2022, 20:41
Rio444, как часто вы перепрошиваете биос в компутаторе, ось в смартфоне или ПЗУ своего железного спектрума?
Какой-то базовый функционал, уровня tr-dos, работающий "искаропки" всяко лучше, чем грузить его с внешнего носителя.
Представьте к примеру себе, что для работы того же bdi, его программный код нужно было загружать с кассеты в теневое ОЗУ контроллера? :)
его программный код нужно было загружать с кассеты в теневое ОЗУ контроллераПочему с кассеты?
Если на комп ставится сетевая, там уже как минимум должна быть карта SD, или что-то подобное.
marinovsoft
08.09.2022, 03:41
Если на комп ставится сетевая, там уже как минимум должна быть карта SD, или что-то подобное.
Кому должна? В стартовом посте подразумевается лишь наличие NemoBus.
Поясню немного мысли свои.
ПЗУ позволит превратить спек в рабочую станцию:)
То есть, берём почти любой спек. В него можно пришлепнуть nemobus.
Втыкаем сетевуху.
Грузимся из пзу сетевуха и можем сразу по интернету, например, игру загрузить.
Или вообще образ трдоса хранить на сервере и работать с ним как с облачным хранилищем.
То есть для начала работы нужна лишь сетевуха и выход в инет.
Для этого сетевуха и нужен собственный проц. Держать сокеты и проч.
Я уж не говорю, что так можно сразу игрухи грузить.
Конечно, для этого нужен спецсайт:) но прикольно же:)
marinovsoft
08.09.2022, 15:30
У тебя же феникс, а в нем считай набортная ZX Multi Card от Caro. которая существует в виде nemobus карточки. У ней есть RS232, цепляем к ней espчтототам и PROFIT!!!
У тебя же феникс, а в нем считай набортная ZX Multi Card от Caro. которая существует в виде nemobus карточки. У ней есть RS232, цепляем к ней espчтототам и PROFIT!!!
У меня пентева. И esp на ней работает.
Но возможности крайне ограничены.
Никакого автостарта. Никакого облачного хранения.
Там проблем масса.
Одно достоинство - офигеть как просто и дёшево.
Я, кстати, подумал, что физический уровень можно на esp32 повешать. Он одновременно и wifi и ethernet может. Я проверял.
- - - Добавлено - - -
Вообще без умной сетевуха мультиплеера не сделать ещё... Эх. Мечты
marinovsoft
08.09.2022, 16:21
Там проблем масса.
Самая главная проблема - очень мало софта, а железку можно какую-угодно сваять.
- - - Добавлено - - -
В ZXMC терминальная программа в прошивку атмеги зашита - нажимаешь хоткей из бейсика, она и стартует. Можно заменить на свою программу, которая уже откуда-то из другого места подгрузит то, что еще нужно для работы.
Есть принципиальные проблемы. Отсутствие прерываний. Скорость обмена по 232 порту. Полная загрузка проца временами. Сокетов мало. И проч.
Для Спектрума скорость обмена по uart в целом не проблема, 57600, ну 115200 это в среднем предел для реального обмена если это не 14 МГц турбо)
Прерывания да, полезно бы чтоб не полить порт.
А ну и у Спектрума либо мало памяти, либо медленные накопители, поэтому большая скорость не так уж и важна
Большая скорость обмена важна тем, что остаётся время цп на другие задачи. С этой же точки зрения важны и прерывания.
Смысл умной сетевухи именно в том, чтобы разгрузить цп. Плюнул пакет в сокет и забыли до прихода прерывания. Пришло прерывание, получили несколько слов состояния и данные и опять занимаемся обработкой данных до следующего прерывания или необходимости отправить данные.
А так все время цп уходит на обмен и поллинг. Ни о каких мультиплеерах и речи идти не может. Ну в теории можно, конечно, и на esp что-то сделать. Но то такое.
115200 это 11кбайт в сёк.
С помощью inir otir скорость обмена около 160кбайт в сёк.
Тут соображение такие. 256 байт при скорости 160кбайт в сек будут передаваться всего за 1/12 прерывания кадровой развёртки. То есть 11/12 времени можно тратить на обработку данных.
Это я про мультиплеер. Поди 256 байт хватит для обмена состоянием игры.
В любом случае, COM-порт неудобен. Скорость низкая. Прерываний нет.
Что бы ты не начал писать - упираешься в том, что надо опрашивать ком-порт и кучу времени тратить на ожидания. Да, в промежутках можно что-то делать. Но это всё крайне неудобно.
А много на Спектруме применений обмену данных при параллельной обработки, обычно сводится, скачали и смотрим, слушаем, читаем, играем. Толку от на половину загруженного pt3 нам не много. Играм же важнее задержки, 9600 с около нулевой задержкой сильно лучше мегабита с задержкой в 500 мс)
Тут речь идёт не о скорости как таковой. А о времени получения или отправки пакета.
Средней скорости и 9600 бы хватило. Но не размазаной во времени, а короткими пакетами.
Мультиплеер через сервер думаю можно сделать. Через ESP и UART с аппаратным контролем. Не обязательно всё время опрашивать порт. Данные держит ESP и контроллер. Примерно килобайт так точно влезает. Когда есть время всё принял, всё отправил на сервер. Сервер всегда свободен для таких мелочей. И до следующего обмена заниматься своими делами.
Мультиплеер через сервер думаю можно сделать. Через ESP и UART с аппаратным контролем. Не обязательно всё время опрашивать порт. Данные держит ESP и контроллер. Примерно килобайт так точно влезает. Когда есть время всё принял, всё отправил на сервер. Сервер всегда свободен для таких мелочей. И до следующего обмена заниматься своими делами.
Так проблема в принял.
Вот представь. У тебя пакет 256 байт.
На скорости 115200 он будет приниматься 0.022с.
То есть больше одного прерывания. Причём основное время приёма будет занято ожиданием.
И о каком мультиплеер речь?. Ну, конечно, можно уменьшить длину пакета. Но тоже не бесконечно.
При обмене командами работы с портами те же 256 байт примут я за 0.0016 сёк. То за 1/30 от прерывания. И спек спокойно их обработает.
Проблема не в скорости передачи по сети. Проблема в организации обмена между сетевухой и спеком.
Не нужно его ждать, нужно просто управление потоком и uart с fifo. Зашли, вычитали десяток байт, убрали CTS и до следующего раза. В пределах разумного.
Так передача пакета между esp8266 и fifo тоже больше прерывания.
В общем, гемороев море. И теплоты с ламповостью нет:)
Так проблема в принял.
Вот представь. У тебя пакет 256 байт.
На скорости 115200 он будет приниматься 0.022с.
А если поставить кварц в 8 раз быстрее, то примем за 0,00275с.
Но буфер и правда может спасти. Там по-моему буфер fifo на 16 байт. Вот по 16 байт надо время от времени принимать и так вывернемся.
Вообще я на современном Спектруме знаю ровно одну сетевую игру и не слышал ни разу чтобы хоть один человек играл в неё по сети) Ещё был пяток игр под Interface I следа в истории тоже не оставили. Поэтому игры по сети это не первоочеиедное) непонятно зачем вам именно 50 раз в секунду выгребать 256 байт, если хоть сколько нить сложная игра и 25 кадров не выдаст в секунду) а для игр вроде Laser Squad, Worms и прочих вообще не важно, не дезматчи же вы по кваке хотите устраивать.
Вот представь. У тебя пакет 256 байт.Это что за пакет такой? Для файла очень мало. Для обмена данными при игре по сети - очень много.
наверное хотели стейт игры передавать в нем. В общем если человек чувствует в себе силы реализовать сетевой уровень на z80 в одно лицо, тол ко можем пожелать удачи в этом нелёгком деле) а потом уже обсудим особенности его программирования, а интернет по Uart у нас в другой теме =)
В общем если человек чувствует в себе силы реализовать сетевой уровень на z80 в одно лицо, только можем пожелать удачи в этом нелёгком деле):v2_thumb:Лучше не скажешь. :D
На память, в Doom 6 байт 35 раз в секунду на каждого игрока.
Sandro, вот это гораздо ближе к истине.
Ведь эти байты не только отправить-принять надо, но ещё и обработать. Z80 не по силам 256 байт в самом турбо-турбо режиме.
Прошу прощения, таки попутал. 4 байта в Doom.
Флаги: смена оружия/гашетка/"использовать"/особое действие, бег, стрейф, направление взгляда (и прицела).
А Варкрафт старается вообще ничего не передавать, если игрок ничего не делает. Поэтому он по 2400 вполне нормально играется.
Это раздел концепции.
Вот я пока и концептуирую тут:)
Пока не могу ничего сделать по теме, кроме как поговорить.
- - - Добавлено - - -
А если поставить кварц в 8 раз быстрее, то примем за 0,00275с.
Кварц на скорость обмена по uart не влияет:) если речь про обмен по уарт. Придётся все равно 115200 выставлять. Ну и прерываний нет.
- - - Добавлено - - -
256 байт для определённости. Число круглое и красиаое:)
Вообще, самая простая концептуально правильная карта это esp32, снабженная двумя регистрами и дешифратором адреса плюс прерывание.
Но она не ламповотеплая:)
CodeMaster
13.09.2022, 07:29
Вообще, самая простая концептуально правильная карта это esp32
Начал за здравие, закончил за упокой...
Какой упокой? Я просто рассуждаю:)
Кварц на скорость обмена по uart не влияет если речь про обмен по уарт. Придётся все равно 115200 выставлять.
Можно и 921600 скорость поставить. Отчего ж нельзя. Я про конкретную карту на ESP12. На сколько проц успевает использовать такую скорость при таком способе обмена - вопрос.
А ещё для ускорения можно ноль закодить как последовательность и тогда не нужно проверять статус даже, прочли ноль, значит данных нет.
На сегодня самая крутая карта для спека это zxnetusb. Надо бы приобрести, поиграться.
CodeMaster
14.09.2022, 07:12
На сегодня самая крутая карта для спека это zxnetusb.
С USB на лампах?
С USB на лампах?
Нет, с лампой в эзернете:)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot