User Tag List

Страница 25 из 86 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя
Показано с 241 по 250 из 854

Тема: УКНЦ загрузка через стык С2

  1. #241

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для сигналов RTS и CTS на роль логического анализатора должен хорошо подойти обычный вольтметр.

    ...

    В принципе - при установке
    Код:
    fRtsControl  = RTS_CONTROL_HANDSHAKE
    Windows как раз должна выставлять сигнал RTS, когда свободна хотя бы половина приёмного буфера FIFO, и снимать его, когда приёмный буфер FIFO заполнен больше, чем на 3/4.

    Очевидно, что при отключенных буферах FIFO эта опция нормально работать не может.
    Последний раз редактировалось Patron; 09.01.2013 в 14:24.

  2. #241
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #242

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Насколько я понял - в режиме RTS_CONTROL_ENABLE квитирование на приём в Windows отключено и независимо от заполненности приёмного буфера FIFO - сигнал разрешения передачи ( RTS ) не снимается.

    Если это так и, не запуская сервер - дать какую-нибудь команду чтения HX ( например DIR HX0: ) - то драйвер выдаст запрос и когда приёмный буфер FIFO активен - запрос закешируется и прочтётся сервером после запуска, а когда приёмный буфер FIFO выключен - запрос должен пропасть.

    Кстати - если запрос пропал и драйвер HX.SYS висит в ожидании ответа - он отвалится по ошибке, если ему вручную послать Ctrl/C.
    Покурив более подробно доки, я тоже пришел к этому выводу. При RTS_CONTROL_ENABLE сигнал RTS устанавливается и остается на все время обмена, но состояние линии RTS можно менять с помощью EscapeCommFunction.
    Тут я не думаю, что это связано с буферами FIFO, скорее со своими внутренними в Windows.

    ---------- Post added at 19:14 ---------- Previous post was at 19:12 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    В принципе - при установке
    Код:
    fRtsControl  = RTS_CONTROL_HANDSHAKE
    Windows как раз должна выставлять сигнал RTS, когда свободна хотя бы половина приёмного буфера FIFO, и снимать его, когда приёмный буфер FIFO заполнен больше, чем на 3/4.

    Очевидно, что при отключенных буферах FIFO эта опция нормально работать не может.
    А вот сейчас я выставил fRtsControl = RTS_CONTROL_HANDSHAKE и провожу тест. Уже идет копирование с HX0: на HX7:, пока все нормально. Буфера FIFO в настройках UART включены.

  4. #243

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот сейчас я выставил fRtsControl = RTS_CONTROL_HANDSHAKE и провожу тест.
    Тут главная фишка в том, что когда в Windows никто не читает порт - после заполнения входного буфера должен автоматически сниматься сигнал RTS.

    Чтобы это проверить - я написал драйвер C2.SYS, который позволяет копировать текстовые файлы из RT-11 в порт C2.

    Новый вариант - HX_Server 2.0 - UKNC_09.01.13_19-35, где добавлено окно Teletype, на которое выводится терминальный обмен в порту C2.

    Если загрузить RT-11 с драйвером C2.SYS не через HX, завершить HX-сервер и дать в УКНЦ команду копирования на C2: какого-нибудь довольно большого ASCII-файла ( больше, чем входной буфер COM-порта в Windows ), то после запуска HX-сервера в окно Teletype должен выйти весь отправленный текст без потери байтов.

    ...
    Последний раз редактировалось Patron; 23.09.2014 в 15:28.

  5. #244

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Тут главная фишка в том, что когда в Windows никто не читает порт - после заполнения входного буфера должен автоматически сниматься сигнал RTS.
    ...
    Если загрузить RT-11 с драйвером C2.SYS не через HX, завершить HX-сервер и дать в УКНЦ команду копирования на C2: какого-нибудь довольно большого ASCII-файла ( больше, чем входной буфер COM-порта в Windows ), то после запуска HX-сервера в окно Teletype должен выйти весь отправленный текст без потери байтов.
    Ну грузиться с дискеты мне пока влом. Но провел такой опыт. Порт по умолчанию в менеджере устройств настроен на 9600,8N2, аппаратный контроль, буфера FIFO включены. Захожу в пультовый отладчик, смотрю регистр 176574, стоит 0200, т.е. готовность есть. Записываю байт 041 в регистр 176576, далее смотрю регистр 176574, в регистре 0, бит готовности не установлен. Т.е. либо посылка не ушла, либо линия RTS неактивна, а значит неактивный уровень на входе BSYD 1801ВП1-065, тогда посылке не уйти.
    После запуска HX-сервера готовность в регистре 176574 устанавливается и все, что заносится в 176576, отображается в окне Teletype. Но посланный ранее байт 041 не отображается.

  6. #245

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    После запуска HX-сервера готовность в регистре 176574 устанавливается и все, что заносится в 176576, отображается в окне Teletype. Но посланный ранее байт 041 не отображается.
    Похоже, пока Com-порт не открыт в программе для чтения/записи - Windows не копирует данные из буфера FIFO в потоковый буфер подсистемы ввода-вывода.

    Посмотрел код написанных мною полгода назад функций чтения и записи порта (в исходнике адаптера COM-порта модульного API) и понял, что без потоковых буферов Windows эти функции читали бы и писали не больше 60 байтов в секунду. Переписал этот код - теперь и чтение, и запись должны работать немного быстрее.

    Новый вариант - HX_Server 2.0 - UKNC_09.01.13_21-02 с изменёнными алгоритмами чтения и записи COM-порта.

    ...
    Последний раз редактировалось Patron; 23.09.2014 в 15:31.

  7. #246

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Похоже, пока Com-порт не открыт в программе для чтения/записи - Windows не копирует данные из буфера FIFO в потоковый буфер подсистемы ввода-вывода.
    Вообще-то похоже, что пока COM-порт не открыт, то не установлены сигналы DTR и RTS, а без установленного RTS у меня с моим кабелем не уходят посылки, т.к. на входе BSYD неактивный уровень. И даже если есть возможность записать один байт, то он все равно не получается HX-сервером при запуске. Видно при открытии идет инициализация COM-порта и очистка всех буферов Windows.

    ---------- Post added at 21:19 ---------- Previous post was at 21:14 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Посмотрел код написанных мною полгода назад функций чтения и записи порта (в исходнике адаптера COM-порта модульного API) и понял, что без потоковых буферов Windows эти функции читали бы и писали не больше 60 байтов в секунду.
    Откуда такая уверенность, что не более 60-ти? Все версии HX-сервера, которые выкладывались, использовали COM-порт под полную катушку на скорости порта 9600,8N2. Проблем не возникло ни при чтении, ни при записи (проводил же тест командой COPY/DEV HX0: HX7:).

  8. #247

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Откуда такая уверенность, что не более 60-ти?
    Это я слегка утрировал. При записи больших проблем не было. Но при чтении вызов Read производился только 60 раз в секунду, причём без ожидания дополнительных данных. Если бы не потоковые буфера Windows - таким манером нельзя было бы прочитать очень много байтов, а так - 60 раз в секунду адаптер принимал из Windows сразу по нескольку десятков байтов.

    В реальной ситуцации ( в которой и старая версия смотрелась неплохо ) новая версия имеет следующие преимущества:

    1. Первый байт, поступивший в COM-порт - попадает в байтовый поток модульного API немедленно, а не с задержкой в 15 мс.

    2. Если поступили новые байты для вывода за то время, пока адаптер передавал байты в потоковый буфер Windows - новый вывод в потоковый буфер Windows начинается сразу же, а не через 15 мс ( понятно, что это не очень критично, когда в буфер Windows уже "напихано" байтов на минуту передачи ).

  9. #248

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Посмотрел код написанных мною полгода назад функций чтения и записи порта (в исходнике адаптера COM-порта модульного API) и понял, что без потоковых буферов Windows эти функции читали бы и писали не больше 60 байтов в секунду. Переписал этот код - теперь и чтение, и запись должны работать немного быстрее.
    Увы. Практический опыт показывает обратное. Копирую диск в диск командой COP/DEV HX0: HX7:. Копируется по 38400 байт.
    В новейшей версии HX_Server 2.0 - UKNC_09.01.13_21-02 чтение идет 73 сек в среднем, а запись около 45 секунд. А в предыдущей версии HX_Server 2.0 - UKNC_09.01.13_19-35 и чтение и запись выполнялись за 44 секунды. Так что в предыдущей версии порт использовался на пределе своих возможностей.

  10. #249

    Регистрация
    08.05.2011
    Адрес
    г. Измаил, Украина
    Сообщений
    3,216
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да работает же все нормально.зачем еще мучать?

    ---------- Post added at 20:59 ---------- Previous post was at 20:58 ----------

    Alex_K, вп1-065 переключил на укнц на скорость выше 9600?можно фото где эти перемычки искать?
    Радио-Губитель Канал на YouTube

  11. #250

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    в предыдущей версии порт использовался на пределе своих возможностей.
    Прикольно.

    Вернём предыдущие коды чтения в адаптер порта и добавим туда возможность блокировки чтения: HX_Server 2.0 - UKNC_09.01.13_23-19

    Теперь в окне Teletype есть кнопка [Stop Reading], при нажатии которой сервер вообще перестаёт обращаться в Windows за байтами из COM-порта.

    На случай, если потоковые буфера Windows имеют размер под сотню килобайт - написана специальная программа SPAM.SAV, посылющая в порт С2 УКНЦ столько байтов - что мало не покажется.

    ...
    Последний раз редактировалось Patron; 23.09.2014 в 15:33.

Страница 25 из 86 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Похожие темы

  1. Загрузка П.О. через звуковую PC.
    от Biozoom в разделе Commodore 16/64/128
    Ответов: 51
    Последнее: 06.10.2013, 11:12
  2. Загрузка УКНЦ
    от костя в разделе ДВК, УКНЦ
    Ответов: 73
    Последнее: 05.03.2011, 12:55
  3. КУПЛЮ УКНЦ Электроника МС 0511 с распаянным Стык С2.
    от falanger в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 02.03.2010, 18:57
  4. Загрузка на рел Commodore 64
    от Zloy в разделе Commodore 16/64/128
    Ответов: 45
    Последнее: 27.07.2009, 12:59
  5. УКНЦ: загрузка через стык С2
    от tnt23 в разделе ДВК, УКНЦ
    Ответов: 1
    Последнее: 17.04.2009, 19:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •