nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Jan 2021 14:35



Reply to topic  [ 5 posts ] 
Project SprinterNet 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19311
Location: Silicon Valley
Reply with quote
У нас тут время роадмапов - вот моя "дорожная карта" :)
1) делается макетка сетевой карточки для Спринтера на базе вот этого прототипа;
2) делается набор драйверов для работы с сокетами через эту карточку (WizNET W5100);
3) пишется/портируется набор сетевых программ, начиная с браузера (SprinterNet Browser);
4) на этом этапе уже можно пользоваться простыми сайтами (см. тут);
5) пишется сервер, который делает обработку сложных случаев (HTTPS, большие JPEG/PNG, работа с большими архивами);
6) делается боевой вариант платы на продажу/раздачу дизайнов как опенсорц;
7) при наличии интереса покупаем 4096 MAC-адресов для внедрения в боевые платы.

_________________
:eugeek: https://twitter.com/Shaos1973


05 Jan 2021 23:37
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19311
Location: Silicon Valley
Reply with quote
Отпочковано из соседнего топика
Shaos wrote:
Вобщем как я и написал чуть выше, я делаю SprinterNet - Ethernet для Спринтера, который начинался в 2016 году как Ethernet для TS2068 (по идее можно сделать единую PCB от которой надо будет отпиливать лишние части, чтобы получить либо SprinterNet-ISA8, либо SprinterNet-TS2068). На борту кроме модуля WizNet (на базе W5100) есть 8 GPIO (пока только 3 на вход и 8 на выход), 2Кб ОЗУ, 8Кб ПЗУ, SPI EEPROM 25C320 на 4КБ (для хранения MAC-адреса и настроек сети - можно наверное память и побольше поставить, например 25LC1024 на 128КБ, тогда её можно как квазидиск задействовать) и, в будущем, слот для SD-карточки. ПЗУ чтобы сразу иметь "драйвера" без необходимости что-то доустанавливать в DSS, а ОЗУ - для хранения рабочей области переменных для этих самых "драйверов". Можно даже единый код иметь для Спринтера и Timex Sinclair 2068, определяя тип машины программно ;)

Минимальный набор драйверов - функции работы с BSD-сокетами, чтобы можно было программировать любые TCP/IP примеры "из книжки", а также функции работы с EEPROM (чтобы давать пользователю функции, обходящие запрещённые зоны, где хранятся MAC-адрес и настройки сети) и SD-карточкой (если будет). Внешними будут программы, использующие эти сокеты (программы естественно разные для разных машин) - HTTP сервер (я его уже писал для W5100 в 2007 году правда в кодах PIC17), HTTP клиент (браузер), а также можно скажем FTP клиента и NTP клиента ещё сделать. Вобщем как-то так...

P.S. Ещё идея у меня была т.к. WizNet не хранит в себе MAC-адрес (его надо программно прописывать), можно под мою карманную корпорацию официально зарезервировать диапазон MAC-адресов, записав адреса оттуда в EEPROM-ы, которые раздавать вместе с платами. Сейчас блок из 4096 адресов стоит $780 выплаченных однократно - подробнее см.https://standards.ieee.org/products-services/regauth/oui36/index.html) :dj:

P.P.S. Как альтернатива покупке блока адресов может выступать EEPROM с зашитым в него MAC-адресом типа 93AA46AE48 (1K Microwire Serial EEPROM with EUI-48), хотя по сути это тоже самое т.к. судя по документации, юзер может перезаписать байты, где записан MAC-адрес.

P.P.P.S. Можно не давать пользователю API на доступ к записи в EEPROM байтов и блоков, а вместо этого выдать абстрактный API для некоего key=value persistant storage (с замахом на поддержку cookies в будущем).

_________________
:eugeek: https://twitter.com/Shaos1973


05 Jan 2021 23:39
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19311
Location: Silicon Valley
Reply with quote
По софту - хотелось бы довести браузер SNB до возможности работать с nedoPC-форумом и nedoPC-вики - для этого например надо поддержать cookies:

Attachment:
nedoPC-org-header.gif
nedoPC-org-header.gif [ 27.14 KiB | Viewed 132 times ]
(cжатие можно отменить)

Браузер можно научить отрисовывать SCR, GIF и даже небольшие JPG (есть достаточно компактный целочисленный декодер на сях)

_________________
:eugeek: https://twitter.com/Shaos1973


05 Jan 2021 23:43
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19311
Location: Silicon Valley
Reply with quote
Диапазоны адресов SprinterNet:
Code:
0xC0XX - WizNET registers
0xC1XX - CONTROL (write only): bit 0 - TX/RX, bit 1 - SPI EEPROM enabled
0xC2XX - SPI (read/write)
0xC3XX - GPIO (read/write)
0xC4XX - 1st socket WizNET
0xC5XX - 2nd socket WizNET
0xC6XX - 3rd socket WizNET
0xC7XX - 4th socket WizNET
0xC800...0xCFFF - RAM 2K
0xD000...0xD7FF - ROM 2K
0xD800...0xDFFF - ROM 2K (switchable on write)
0xE000...0xFFFF - доступ к области буферов WizNET (либо RX, либо TX)

Программно проверено, что регистры и читаются, и пишутся, как и область TX, а вот в область RX писать нельзя - оттуда только читаем.
W5100 имеет четыре сокета, каждый из которых может иметь 1,2,4 или 8 кб отведённых под него в области RX и в области TX (размеры в разных областях задаются независимо друг от друга и могут отличаться).

_________________
:eugeek: https://twitter.com/Shaos1973


10 Jan 2021 07:56
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19311
Location: Silicon Valley
Reply with quote
В связи с возможной кривизной спринтеровской исы слегка изменил логику работы схемы - теперь контрольный бит TX/RX (расположенный по адресу #C100), кроме переключения областей в последних 8кб, теперь ещё и управляет установкой чтения либо записи из визнета либо SPI:
TX (0) - означает, что мы пишем в визнет или SPI - при этом чтение запрещено (защита от мусорных /MEMR);
RX (1) - означает, что мы читаем из визнета или SPI - при этом чтение разрешено (собственно как и запись, которая может работать нестабильно).

ПЗУ разбито на 4 окна, переключемых путём записи в переключаемую область ПЗУ (0xD800...0xDFFF), но для пущей логичности можно считать адресом переключения #DFFF - это адрес последнего байта страницы ПЗУ, в который можно записать порядковый номер страницы - #00, #01, #02, #03, что позволит прочитать этот байт обратно после записи, чтобы удостовериться, что переключение произошло (описанный выше контрольный бит TX/RX не распространяется на ПЗУ, ОЗУ, триггеры и GPIO). Нулевая страница ПЗУ также всегда видна по адресам 0xD000...0xD7FF. В первых трёх байтах будет JP на инициализацию (3 байта), следом за которым может идти наименование платы и версия железа и прошивки с копирайтом - текстовая строка, завершающаяся нулём, например "SprinterNet v1.0.100 Copyright (с) 2021 Shaos".

Пользователям будет рекомендовано использовать API из ПЗУ для работы с WIZNet и EEPROM, чтобы в будущем была возможность заменить сетевой модулёк или микросхему EEPROM. ПЗУ в будущем также можно увеличить в объёмах (теоретически до 512 килобайт, адресуя 2КБ-страницы полными байтами вместо теперешних двух битов).

_________________
:eugeek: https://twitter.com/Shaos1973


12 Jan 2021 06:46
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 5 posts ] 

Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.