К интерфейсу Interface 1bis ZX Spectrum (IF1bis) [2] через порт SPI может быть подключен внешний модуль Ethernet на основе микросхемы ENC28J60 компании Microchip. Подобные модули выпускаются сторонними производителями, их можно очень недорого купить на таких сайтах, как aliexpress, ebay и dx.com. Ниже на фотографии показана одна из популярных моделей такого модуля.
Для подключения этого Ethernet-модуля к интерфейсу можно купить специальный кабель SPI (прим. переводчика: когда я получил по почте свой Interface 1bis, кабель SPI был в комплекте с интерфейсом). Этот кабель также можно изготовить самостоятельно.
Примечание: при использовании моделей Interface 1bis более старых, чем C lot 04, вместе с кабелем нужно подключить электролитический конденсатор 100 мкф, параллельно с конденсатором C6 модуля Ethernet (необходим для улучшения фильтрации напряжения питания).
Из-за того, что модуль Ethernet требует для своего питания в 3 раза больше тока, чем потребляет сам Interface 1bis, то нужен хороший электрический контакт как в коннекторах кабеля SPI, так и в ножевом коннекторе расширения ZX Spectrum. Это необходимое условие для надежной работы системы. Если это необходимо, можно усилить шины земли и питания, или сделать более короткими провода подключения модуля Ethernet. Можно даже обойтись без кабеля SPI, если сделать небольшую доработку модуля Ethernet, которая заключается в установке дополнительного коннектора "мама" на плату модуля.
Если модуль Ethernet подключен, то светодиоды C и M, установленные на плате Interface 1bis показывают: "Module Selected" (модуль выбран) и соответственно "Module Interrupt" (прерывание модуля), в то время как обычные функции модуля мультиплексируются со светодиодом U.
[Настройка]
Как первый шаг перед подключения модуля Ethernet необходимо сконфигурировать адрес IP, маску подсети, шлюз по умолчания и сервер DNS. Это делается выдачей команды extended BASIC наподобие следующей:
CAT 0;"ead192.168.1.196;255.255.255.0;192.168.1.254;192.168.1.254"
Этот пример показывает значения по умолчанию, прописанные в firmware микроконтроллера. Реально введенные значения сохраняются на карте microSD, и используются при отсутствии в локальной сети сервера DHCP.
Даже если сервер DHCP присутствует, все равно полезно указать адрес IP, и он будет тогда также выделен сервером DHCP, если адрес и маска попадают в диапазон сервера DHCP, и не конфликтуют с другими узлами сети. Таким способом можно для IF1bis задать всегда одинаковый, заранее известный адрес IP.
Желательно подключить модуль Ethernet через сетевой коммутатор (свич, не хаб) вместо прямого подключения к роутеру, что не даст заваливать роутер мусорными сетевыми пакетами.
Когда на Interface 1bis, к которому подключен модуль Ethernet, подано питание, светодиод U загорится, если карта microSD установлена в слот интерфейса, и/или подключена мышь, и/или машина сервера подключена через порт USB. Через 5 секунд светодиод U погаснет, и затем через малый промежуток времени снова загорится только в том случае, если успешно завершится процесс получения IP-адреса. Если что-то пошло не так, то скорее всего причина в плохих контактах - либо в кабеле SPI, либо в кабеле Ethernet.
У каждого Interface 1bis (как, впрочем, и у любого узла локальной сети) имеется свой собственный уникальный MAC-адрес, который можно увидеть в таблице выданных адресов сервера DHCP.
Также MAC-адрес и другие сетевые параметры можно получить вводом команды ZX Spectrum (режим extended BASIC):
Весь сетевой обмен Ethernet интерфейса осуществляется через порт UDP 41772, который открывается и перенаправляется к компьютеру PC сервера. Если Interface 1bis находится за NAT firewall, то этот порт должен быть отображен на внешний IP-адрес, чтобы к нему можно было осуществить доступ из Интернет.
[Программное обеспечение]
Extended BASIC обозначает сетевой порт как устройство N, так же, как это делает оригинальный Interface 1 компьютера ZX Spectrum.
Операционная система Interface 1bis поддерживает обмен данными по сети IP с семью "станциями", которые могут быть следующими файловыми устройствами:
• Компьютер PC, на котором запущена программа сервера. • Блочные устройства: другие интерфейсы IF1bis’ units.
Перед тем, как к станции можно получить доступ, с ней должно быть установлено соединение следующей командой:
Здесь < s > это номер станции в диапазоне 1..7, и < n > это имя хоста или IP-адрес. Если соединение прошло успешно, то создастся запись в "таблице станций", которая может быть просмотрена следующей командой:
Процедура буферизированного обмена данными по сети между узлами Interface 1bis с помощью операторов OPEN#, PRINT#, INPUT#, INKEY$# и CLOSE# строго совместима с оригинальным ZX Interface 1 extended BASIC, включая соответствующие коды (hook codes) и структуру канала N.
Приходящие данные от различных клиентских станций (до четырех) буферизируются внутри интерфейса, и могут быть получены на последующих уровнях канала N.
В отличие от оригинального ZX Interface 1, интерфейс IF1bis может обрабатывать запросы блочных устройств в фоновом режиме, независимо от машины хоста, так что файловые сетевые операции не требуют никакого ручного вмешательства со стороны целевой станции. Синтаксис сетевых операторов CAT, ERASE, LOAD, MERGE, MOVE, SAVE и VERIFY то же самый, как и для обычных устройств хранения, за исключением не нулевого номера станции. Так, например, команда:
загрузит программу из текущей директории встроенной карты microSD привода 24, в то время как команда:
сохранит программу в текущую директорию машины сервера, слинкованную как станция 3.
[Ссылки]
1. The Interface 1bis Ethernet Port site:sites.google.com. 2. Interface 1bis для ZX Spectrum. |