инет на спецтруме
|
|
lvd | Дата: Пятница, 2007-07-20, 11:28:48 | Сообщение # 1 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Вводная: спецтрум подключаем к ПЦ через сериальный порт. Чтобы не гандошиться с тцпып стеком на спеке, предлагается следующая модель: На спецтруме делается простенькая софтина, которая через сериалпорт связывается с другой простенькой софтиной на пц. Со стороны спецтрума эту софтину пинают, мол открой-ка тЫцЫпЫ-соединение, а если открыла - то можно принимать и передавать байтики по этому соединению. На пц, соотв-но, другая софтина пинается в осевой интерфейс, и пересылает данные по некому протоколу по сериалу. Весь вопрос в этом сериальном протоколе. Мысли на данный момент таковы: 1. заложиться на протокол сокс5. Он позволяет отдать на откуп сервера резолвинг днс-имён, при этом он прост как кирпич. 2. сокс5 имеет недостаток - на 1 соединение с сокс5 сервером можно открыть только одно соединение с чем-либо дальше. 3. посему надо как-то через сериал трансклюкировать несколько соединений с сокс5-сервером, коим будет прикидываться софтина на пц. Кто имеет что сказать? ps: смотрел на пыпыпы и слип, имхо не то. Или я не прав?
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
нолька | Дата: Пятница, 2007-07-20, 11:37:38 | Сообщение # 2 |
рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| мысль имхо не совсем верная. надо все же лучше абстрагрироваться от пц в сторону армов. 1 этап - все таки сделать телнет с пц через терминалку типа мелона (будут работать почта, ирц, фтп). подэтап - создание после мелона уже более менее пристойнфх клиентов. вот только как их юзать одновременно другой вопрос. 2 этап - насочинять тот самый протокол. забить его в арм. на спеке к тому времени вероятно уже будут зачатки указанных клиентов. всё имхо.
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
lvd | Дата: Пятница, 2007-07-20, 12:28:35 | Сообщение # 3 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: 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
Статус: Offline
| >Чтоб многозадачность, нужна ОС многозадачная MythOS, ChaOS. >и кроме того, ХАРДВАРНАЯ поддержка многозадачности - по минимуму это >контроллер прерываний. нафиг? и без того работает. Если какая-то идея не работает, скажи какая, и скажи, что для этого нужно прицепить.
|
|
| |
нолька | Дата: Пятница, 2007-07-20, 15:01:29 | Сообщение # 5 |
рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| Quote (lvd) Будет работать только телнет, а телнет по сериалу - не инет вовсе. Точно так же можно сказать, что интырьнетиксплодир работает на мониторе, как и что ирц работает на телнете. нихера подобного. телнет и есть фактически сокет. просто пока "кто то" напишет эту софтину на пц, рак пицот раз на горе свиснит
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
lvd | Дата: Пятница, 2007-07-20, 15:07:11 | Сообщение # 6 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: 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
Статус: Offline
| Quote (lvd) Как не терять прерывания? Прерывания от кадровой, от рс232, от винта, от дохуя чего ещё. Пока обрабатывается рс232, кадровая кончится и пойдёт нах. Ну и так далее. От HDD та нафиг? а вместо rs232 лучше чёнить другое пользовать, к примеру наподобии обмена с IDE устройствами чтото, вот тока контроллер нужон тада... =) Quote (alone) MythOS, ChaOS. не знаю таких OS
MGN Group
|
|
| |
нолька | Дата: Пятница, 2007-07-20, 15:38:34 | Сообщение # 8 |
рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| Quote (lvd) Да похер что есть телнет, важно что он передаёт картинку а не сам протокол ирце или ещё чего.Когда первый свист намечается? низачот! телнет это не картинко, а буковки. зайди с пц в ирц попробуй хотяб. рак свистит ужэ с 97года (тогда уже тцпип на спек прикрутили) а воз и ныне там
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
lvd | Дата: Пятница, 2007-07-20, 16:50:39 | Сообщение # 9 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Quote (Budder) От HDD та нафиг? Ага, нафиг. ВОт дураки те кто пц делает - прерывание от винта заводят на проц... 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
Статус: Offline
| Quote (lvd) Ага, нафиг. ВОт дураки те кто пц делает - прерывание от винта заводят на проц... На Спеке в этом нет необходимости. И без них можно обойтись. Повысить скорость и буферизовать передачу данных. Да и прерывания тогда вовсе не нужны будут для такового обмена (аля высвободить ресурсы).
MGN Group
|
|
| |
lvd | Дата: Пятница, 2007-07-20, 18:04:24 | Сообщение # 11 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Quote (Budder) На Спеке в этом нет необходимости. И без них можно обойтись. Это ты привык, потому что всё поллингом делаешь и без оси многозадачной. Сколько времени цдвод гонит бошку из 1 конца в другой? Quote (Budder) Повысить скорость и буферизовать передачу данных. Да и прерывания тогда вовсе не нужны будут для такового обмена (аля высвободить ресурсы). Да, и поллинг опять? Наличие прерывания не отменяет буфер. Пришло прерывание - вошёл в обработчик - сожрал весь буфер.
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
Budder | Дата: Пятница, 2007-07-20, 20:02:24 | Сообщение # 12 |
Креветко
Группа: Человеки
Сообщений: 261
Статус: Offline
| Quote (lvd) Это ты привык, потому что всё поллингом делаешь и без оси многозадачной. Сколько времени цдвод гонит бошку из 1 конца в другой? Можно делать проверку события на прерываниях (те что 50 раз в секунду). А пока событие не произошло делать чтонить другое. Так же можно производить проверку раз в цикл какой либо, но тут уже задержки постоянно разные тогда будут. (К примеру в цикле опроса клавы)
MGN Group
|
|
| |
lvd | Дата: Пятница, 2007-07-20, 23:37:46 | Сообщение # 13 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Quote (Budder) Можно делать проверку события на прерываниях (те что 50 раз в секунду). Бред, почему бы не делать проверку события на СПЕЦИАЛЬНОМ ПРЕРЫВАНИИ, которое это событие вызывает? Quote (Budder) Так же можно производить проверку раз в цикл какой либо, но тут уже задержки постоянно разные тогда будут. (К примеру в цикле опроса клавы) А это и называется 'поллинг'.
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
MozG | Дата: Суббота, 2007-07-21, 01:03:35 | Сообщение # 14 |
Юзер
Группа: Человеки
Сообщений: 9
Статус: 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
Статус: 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
|
|
| |
|
|