Приветствую Вас Гость | RSS


Главная страница » инет на спецтруме - ZX-Форум » Регистрация » ВходПятница
2024-04-19
07:45:14
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
ZX-Форум » Software » Other » инет на спецтруме (на зависть всем)
инет на спецтруме
lvdДата: Пятница, 2007-07-20, 11:28:48 | Сообщение # 1
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Вводная:
спецтрум подключаем к ПЦ через сериальный порт. Чтобы не гандошиться с тцпып стеком на спеке, предлагается следующая модель:
На спецтруме делается простенькая софтина, которая через сериалпорт связывается с другой простенькой софтиной на пц. Со стороны спецтрума эту софтину пинают, мол открой-ка тЫцЫпЫ-соединение, а если открыла - то можно принимать и передавать байтики по этому соединению. На пц, соотв-но, другая софтина пинается в осевой интерфейс, и пересылает данные по некому протоколу по сериалу.

Весь вопрос в этом сериальном протоколе.

Мысли на данный момент таковы:
1. заложиться на протокол сокс5. Он позволяет отдать на откуп сервера резолвинг днс-имён, при этом он прост как кирпич.
2. сокс5 имеет недостаток - на 1 соединение с сокс5 сервером можно открыть только одно соединение с чем-либо дальше.
3. посему надо как-то через сериал трансклюкировать несколько соединений с сокс5-сервером, коим будет прикидываться софтина на пц.

Кто имеет что сказать?

ps: смотрел на пыпыпы и слип, имхо не то. Или я не прав?


Многого нет здесь: http://lvd.nedopc.com
 
нолькаДата: Пятница, 2007-07-20, 11:37:38 | Сообщение # 2
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
мысль имхо не совсем верная. надо все же лучше абстрагрироваться от пц в сторону армов.
1 этап - все таки сделать телнет с пц через терминалку типа мелона (будут работать почта, ирц, фтп). подэтап - создание после мелона уже более менее пристойнфх клиентов. вот только как их юзать одновременно другой вопрос.
2 этап - насочинять тот самый протокол. забить его в арм. на спеке к тому времени вероятно уже будут зачатки указанных клиентов.
всё имхо.


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
lvdДата: Пятница, 2007-07-20, 12:28:35 | Сообщение # 3
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (нолька)
мысль имхо не совсем верная. надо все же лучше абстрагрироваться от пц в сторону армов.

Мысль верная. сериальный порт - это пересылка байтиков туда-сюда. Меняем сериал на арм - что меняется?
Quote (нолька)
1 этап - все таки сделать телнет с пц через терминалку типа мелона (будут работать почта, ирц, фтп). подэтап - создание после мелона уже более менее пристойнфх клиентов. вот только как их юзать одновременно другой вопрос.

Будет работать только телнет, а телнет по сериалу - не инет вовсе. Точно так же можно сказать, что интырьнетиксплодир работает на мониторе, как и что ирц работает на телнете.
Quote (нолька)
2 этап - насочинять тот самый протокол. забить его в арм. на спеке к тому времени вероятно уже будут зачатки указанных клиентов.

Всё и сочиняется, чтобы потом на лету заменить пц на арм =)

Добавлено (2007-07-20, 12:28:35)
---------------------------------------------

Quote (нолька)
вот только как их юзать одновременно другой вопрос.

В ламуксе вроде по alt-Fn переключаются экраны текстовые. Но это не выход всё равно. Чтоб на спеке одновременно что-то юзать, нужна многозадачность. Чтоб многозадачность, нужна ОС многозадачная и кроме того, ХАРДВАРНАЯ поддержка многозадачности - по минимуму это контроллер прерываний. Его нет, выводы.


Многого нет здесь: http://lvd.nedopc.com
 
aloneДата: Пятница, 2007-07-20, 12:46:40 | Сообщение # 4
Осваивается
Группа: Человеки
Сообщений: 39
Репутация: 3
Статус: Offline
>Чтоб многозадачность, нужна ОС многозадачная
MythOS, ChaOS.
>и кроме того, ХАРДВАРНАЯ поддержка многозадачности - по минимуму это >контроллер прерываний.
нафиг? и без того работает.
Если какая-то идея не работает, скажи какая, и скажи, что для этого нужно прицепить.
 
нолькаДата: Пятница, 2007-07-20, 15:01:29 | Сообщение # 5
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
Quote (lvd)
Будет работать только телнет, а телнет по сериалу - не инет вовсе. Точно так же можно сказать, что интырьнетиксплодир работает на мониторе, как и что ирц работает на телнете.
нихера подобного. телнет и есть фактически сокет. просто пока "кто то" напишет эту софтину на пц, рак пицот раз на горе свиснит


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
lvdДата: Пятница, 2007-07-20, 15:07:11 | Сообщение # 6
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (нолька)
нихера подобного. телнет и есть фактически сокет. просто пока "кто то" напишет эту софтину на пц, рак пицот раз на горе свиснит

Да похер что есть телнет, важно что он передаёт картинку а не сам протокол ирце или ещё чего.
Когда первый свист намечается?

Добавлено (2007-07-20, 15:07:11)
---------------------------------------------

Quote (alone)
MythOS, ChaOS.

"что это?" (ц) ты

Quote (alone)
Если какая-то идея не работает, скажи какая, и скажи, что для этого нужно прицепить.

Как не терять прерывания? Прерывания от кадровой, от рс232, от винта, от дохуя чего ещё. Пока обрабатывается рс232, кадровая кончится и пойдёт нах. Ну и так далее.


Многого нет здесь: http://lvd.nedopc.com

Сообщение отредактировал lvd - Пятница, 2007-07-20, 15:07:43
 
BudderДата: Пятница, 2007-07-20, 15:29:21 | Сообщение # 7
Креветко
Группа: Человеки
Сообщений: 261
Репутация: 14
Статус: Offline
Quote (lvd)
Как не терять прерывания? Прерывания от кадровой, от рс232, от винта, от дохуя чего ещё. Пока обрабатывается рс232, кадровая кончится и пойдёт нах. Ну и так далее.

От HDD та нафиг?
а вместо rs232 лучше чёнить другое пользовать, к примеру наподобии обмена с IDE устройствами чтото, вот тока контроллер нужон тада... =)

Quote (alone)
MythOS, ChaOS.

не знаю таких OS wink


MGN Group
 
нолькаДата: Пятница, 2007-07-20, 15:38:34 | Сообщение # 8
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
Quote (lvd)
Да похер что есть телнет, важно что он передаёт картинку а не сам протокол ирце или ещё чего.Когда первый свист намечается?
низачот! телнет это не картинко, а буковки. зайди с пц в ирц попробуй хотяб.
рак свистит ужэ с 97года (тогда уже тцпип на спек прикрутили) а воз и ныне там


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
lvdДата: Пятница, 2007-07-20, 16:50:39 | Сообщение # 9
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (Budder)
От HDD та нафиг?

Ага, нафиг. ВОт дураки те кто пц делает - прерывание от винта заводят на проц... smile

Quote

а вместо rs232 лучше чёнить другое пользовать, к примеру наподобии обмена с IDE устройствами чтото, вот тока контроллер нужон тада... =)

Смысл?

Добавлено (2007-07-20, 16:50:39)
---------------------------------------------

Quote (нолька)
низачот! телнет это не картинко, а буковки. зайди с пц в ирц попробуй хотяб.

А то я не знаю, что такое телнет. Ты сам тупишь - телнет буковки, и соотвно картинку из буковок. Если ты со спека зателнетишь на пц, а на пц запустишь текстовый ирцеклиент, то ты спек будешь юзать в качестве терминала с клавиатурой и телевизором, а содержательная часть будет на пц работать. Какой в этом смысл?

Quote (нолька)
рак свистит ужэ с 97года (тогда уже тцпип на спек прикрутили) а воз и ныне там

1 раз слышу. Ссылко давай =)


Многого нет здесь: http://lvd.nedopc.com
 
BudderДата: Пятница, 2007-07-20, 17:04:59 | Сообщение # 10
Креветко
Группа: Человеки
Сообщений: 261
Репутация: 14
Статус: Offline
Quote (lvd)
Ага, нафиг. ВОт дураки те кто пц делает - прерывание от винта заводят на проц...

На Спеке в этом нет необходимости. И без них можно обойтись.

Quote (lvd)
Смысл?

Повысить скорость и буферизовать передачу данных. Да и прерывания тогда вовсе не нужны будут для такового обмена (аля высвободить ресурсы).


MGN Group
 
lvdДата: Пятница, 2007-07-20, 18:04:24 | Сообщение # 11
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (Budder)
На Спеке в этом нет необходимости. И без них можно обойтись.

Это ты привык, потому что всё поллингом делаешь и без оси многозадачной. Сколько времени цдвод гонит бошку из 1 конца в другой?

Quote (Budder)
Повысить скорость и буферизовать передачу данных. Да и прерывания тогда вовсе не нужны будут для такового обмена (аля высвободить ресурсы).

Да, и поллинг опять? Наличие прерывания не отменяет буфер. Пришло прерывание - вошёл в обработчик - сожрал весь буфер.


Многого нет здесь: http://lvd.nedopc.com
 
BudderДата: Пятница, 2007-07-20, 20:02:24 | Сообщение # 12
Креветко
Группа: Человеки
Сообщений: 261
Репутация: 14
Статус: Offline
Quote (lvd)
Это ты привык, потому что всё поллингом делаешь и без оси многозадачной. Сколько времени цдвод гонит бошку из 1 конца в другой?

Можно делать проверку события на прерываниях (те что 50 раз в секунду). А пока событие не произошло делать чтонить другое.
Так же можно производить проверку раз в цикл какой либо, но тут уже задержки постоянно разные тогда будут. (К примеру в цикле опроса клавы)


MGN Group
 
lvdДата: Пятница, 2007-07-20, 23:37:46 | Сообщение # 13
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (Budder)
Можно делать проверку события на прерываниях (те что 50 раз в секунду).

Бред, почему бы не делать проверку события на СПЕЦИАЛЬНОМ ПРЕРЫВАНИИ, которое это событие вызывает?

Quote (Budder)
Так же можно производить проверку раз в цикл какой либо, но тут уже задержки постоянно разные тогда будут. (К примеру в цикле опроса клавы)

А это и называется 'поллинг'.


Многого нет здесь: http://lvd.nedopc.com
 
MozGДата: Суббота, 2007-07-21, 01:03:35 | Сообщение # 14
Юзер
Группа: Человеки
Сообщений: 9
Репутация: 0
Статус: Offline
Вот мое видение ситуации:

Предварительный набросок протокола по шине - похуй мне какой:

>> opensocket
<< socket id (word)

>> send
<< num sended bytes (word)

>> recieve
<< num recieved bytes (word)

>> closesocket
<< ok

На пц я софтину напишу за пару дней. Кучу коннектов на спеке сэмулировать можно передавая идентификатор сокета на который идет операция отправки/получения. Только вот прием данных придется лепить в основном цикле программы на спеке. Или перывать на какоенибудь прерывание если там есть свободные. А так - все банально. Для отладки нужно сначала на пц палюбак - а уж потом армы всякие.


all straight
 
lvdДата: Суббота, 2007-07-21, 03:56:53 | Сообщение # 15
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Mozg, +1! =)

Конкретизация как результат размышлений за некоторые время.

Со стороны спектрума имеется до 255 "соединений" (номера 1-255). По сериальному порту могут передаваться данные в пц - по одному из соединений, и приниматься с пц аналогично. Данные каждого соединения передаются пакетами длиной от 0 до 256 байт. Формат пакета:
+0.byte: номер соединения (1-255) или 0 - спец. случай
+1.byte: статус пакета (пакет с данными, закрытие соединения, открытие соединения, етц - требует конткретизации)
+2.byte: длина данных, если +1 позволяет передать данные, 0 - длина 256 байт
далее собственно данные.

со спека на пц передаются данные без какого-либо контроля, считается, что пц принимает все пакеты и байты не теряются.
с пц на спек 2 метода контроля:
1. на уровне контроллера сериального порта (для случая атм - это at89c51 с буфером приёма) 'затыкается фонтан' (байты с пц) сигналом CTS.
2. спек анализирует ВСЕ принятые данные и пакеты. Если спеку некуда положить очередную порцию даных в очередном пакете в данном соединении (переполнение буфера, например), он запоминает этот факт для данного соединения, и посылает пц требование ПРЕКРАТИТЬ слать данные в данном соединении. В дальнейшем когда буфер освободится, посылает требование пц ПРОДОЛЖИТЬ посылку данных. Она продолжается с того же самого пакета.

Открывает и закрывает соединения исключительно спектрум.

Далее, уровнем выше. Данные в соединении. Они являются подмножеством протокола sock5, только не по сокетам как обычно, а по этим самым соединениям. Сначала спек передаёт запрос на открытие коннекта с заданным ойпи (или фкдн) и портом. пц отвечает что мол открыто, или что мол хренвам. Если открыто - то дальнейшие данные в данном соединении являются тем, что по тому сокету течёт. Предусмотрено закрытие соединения со стороны спека и информирование спека о закрытии соединения со стороны сервера или пц.

Собственно, всё.

Не предусмотрено методов контроля целостности по сериальному порту: считается, что байты не теряются и соотвественно не происходит рассинхронизации. Однако, можно считать, например, передачу пакета с номером соединения 0 (см. выше, 0 - спец. номер) сигналом к инициализации - все возмножно существующие соединения забываются. Таким образом, если произошла глобальная жопа, надо просто слать 0 до опупения (точнее, отослать более 256+3 нулей).


Многого нет здесь: http://lvd.nedopc.com
 
ZX-Форум » Software » Other » инет на спецтруме (на зависть всем)
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

the DLCorp © 2006