Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2019, 18:16   #11
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Ну вы батенька извращенец. А у вас в электротехнике есть познания какие нибудь? Шина usb например дифференциальная .. как вы ее коммутировать будете вместе с lpt?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 14.11.2019, 18:50   #12
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

Цитата:
AtMega128
- ключевое слово. МК принимает-передает по USB инфу, эмулируя на свободных пинах хоть LPT, хоть SPI, хоть IEEE-488 или что еще, если автор осилит это запрограммировать, в чем я крупно сомневаюсь. Только МК я взял бы что-то вроде АТ90USB162, уже имеющий аппаратный USB на борту.
А просто коммутировать USB вроде никто не собирался.
А так идея... ну, скажем, как штопать известные резиновые изделия Её еще дополнить можно - добавить в список поддерживаемых компов ДВК, Наири, БЭСМ-6, Минск-32.

Последний раз редактировалось digitalis; 14.11.2019 в 18:59.
digitalis вне форума Ответить с цитированием
Старый 14.11.2019, 19:48   #13
igorter
Пользователь
 
Регистрация: 11.11.2019
Сообщений: 10
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
А у вас в электротехнике есть познания какие нибудь?
Закончил с отличием Киевский ВМУРОЛ на инженерном факультете и сделал два диплома с демонстрацией практических устройств на LPT порту: расширитель-программатор и светодиодный экран-матрица. Оба были защищены с отличием. Оттуда и любов к этому порту, так-что за свои слова отвечаю полностью.
Атмелы програмировать тоже на практике приходилось.

Но я не собираюсь Атмела напрямую подключать к USB, это выполняет специализированный контроллер-мост FT2232H, который может работать в режиме контролера управляемого внешним процессором, в данном случае Атмелом. Atmega только работает с COM и LPT. Причем COM в ней аппаратно реализован, а LPT можно полностью аппаратно по стандарту эмулировать на ПЛИС Altera, которая будет тоже в качестве внешнего контроллера подключена к Атмелу. Единственно, не решил еще проблемы буферов для увеличения скорости обмена данными. В идеале каждый порт должен иметь два собственных буфера на прием и передачу и шину обмена между ними.
В самом простом случае можно FT2232H, Atmega128 и Altera запрограммировать на работу со стандартной процессорной шиной и на нее повесить быстродействующую память-буфер. Между ними организовать арбитраж очереди доступа, задержка будет, особенно, когда все устройства захотят одновременно обмениваться данными, но зато просто.
Но пока заниматься этим нет времени, это скоерее мечта на будущее. Сейчас просто собираю информацию по теме, а то скоро ее вообще не останется в сети. Все, кто что-то знают, расказывать никому ничего не хотят. А остальные просто пользователи железа, кому ничего знать и не нужно.

Последний раз редактировалось igorter; 14.11.2019 в 20:00.
igorter вне форума Ответить с цитированием
Старый 14.11.2019, 20:11   #14
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от igorter Посмотреть сообщение
инженерном факультете
Что за факультет такой?? А специализация какая? В дипломе то что написано?

Странно как то получается.. Неужели не хочется чем то полезным заняться?? Какое практическое применение вашего устройства в будущем то??

Еще и плис сюда подтащили ... Уф.. это какое то изврат над трупом динозавра.


Вы уж извините но

Цитата:
Сообщение от igorter Посмотреть сообщение
расширитель-программатор и светодиодный экран-матрица.
Это как то так себе диплом то. Сейчас очень дешевые матрицы светодиодные есть со сдвиговым регистром. В управлении простейшие как три копейки. И расширители не нужны.
А в плане расширителей так также есть микросхемы-экспандеры на любое количество пинов...

А где же научная новизна которую требуют на каждой защите диплома?? Где решение актуальных задач информатизации/автоматизации??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 14.11.2019, 21:09   #15
igorter
Пользователь
 
Регистрация: 11.11.2019
Сообщений: 10
По умолчанию

Специальность "Бытовая электронная аппаратура".
Мои клиенты, любители ретро-компьютеров. Я столько уже системных блоков старых продал за большие деньги, что когда-то остались от моего хобби и работы. Так-что подобные сетевые комутаторы тоже в соотвествующих кругах будут пользоваться популярностью.
Полезные идеи тоже были, но это уже офтоп. Если получится, но напишу в соотвествующих темах.
Сейчас мне интересно полностью осилить LPT. Мне всегда не хватало усидчивости его полностью изучить. Он имеет столько модификаций, что тяжело сделать что-то универсальное и скоростное под него. Но, если осилю, то может напишу свою статью о нем. ЧПУ станки на Match 3 до сих пор работают на нем и изготовляется новое железо под них и никто их не называет динозаврами. У самого есть такой станок и активно сейчас осваивается моим знакомым.
igorter вне форума Ответить с цитированием
Старый 14.11.2019, 21:42   #16
igorter
Пользователь
 
Регистрация: 11.11.2019
Сообщений: 10
По умолчанию

Нашел очень интересный документ по данной теме, старий уже и на основе книги Гука "Аппаратные интерфейсы ПК" (кто не читал, рекомендую прочитать), но очень хорошо илюстрированный с практическими рекомендациями по применению порта LPT. Может кому еще пригодится.
pavlov-v.a.-lpt-port.-posobie-i-praktikum.rar

Также нашел код интерфейсного модуля под Delphi для драйвера inpout32.dll.

Код:
(*
 *  InpOut32 1.5.0.1
 *
 *  Oleksandr Nazaruk <mail@freehand.com.ua>
 *
*)

unit inpout32;

interface

uses
  System.SysUtils,
  Winapi.Windows;

const
  {$IFDEF WIN32}
    LIB_INPOUT32 = 'inpout32.dll';
  {$ENDIF}
  {$IFDEF WIN64}
    LIB_INPOUT32 = 'inpoutx64.dll';
  {$ENDIF}


//Functions exported from DLL.
//For easy inclusion is user projects.
//Original InpOut32 function support
procedure Out32(PortAddress: SHORT; Data: SHORT);
	stdcall; external LIB_INPOUT32;
function Inp32(PortAddress: SHORT): SHORT;
	stdcall; external LIB_INPOUT32;


//My extra functions for making life easy
function IsInpOutDriverOpen(): BOOL;   //Returns TRUE if the InpOut driver was opened successfully
	stdcall; external LIB_INPOUT32;
function IsXP64Bit(): BOOL;			      //Returns TRUE if the OS is 64bit (x64) Windows.
	stdcall; external LIB_INPOUT32;

//DLLPortIO function support
function DlPortReadPortUchar(port: USHORT): UCHAR;
	stdcall; external LIB_INPOUT32;
procedure DlPortWritePortUchar(port: USHORT; Value: UCHAR);
	stdcall; external LIB_INPOUT32;

function DlPortReadPortUshort(port: USHORT): USHORT;
	stdcall; external LIB_INPOUT32;
procedure DlPortWritePortUshort(port: USHORT; Value: USHORT);
	stdcall; external LIB_INPOUT32;

function DlPortReadPortUlong(port: ULONG): ULONG;
	stdcall; external LIB_INPOUT32;
procedure DlPortWritePortUlong(port: ULONG; Value: ULONG);
	stdcall; external LIB_INPOUT32;

//WinIO function support (Untested and probably does NOT work - esp. on x64!)
function MapPhysToLin(pbPhysAddr: PBYTE; dwPhysSize: DWORD; pPhysicalMemoryHandle: PHANDLE): PBYTE;
	stdcall; external LIB_INPOUT32;
function UnmapPhysicalMemory(PhysicalMemoryHandle: THANDLE; pbLinAddr: PBYTE): BOOL;
	stdcall; external LIB_INPOUT32;
function GetPhysLong(pbPhysAddr: PBYTE; pdwPhysVal: PDWORD): BOOL;
	stdcall; external LIB_INPOUT32;
function SetPhysLong(pbPhysAddr: PBYTE; dwPhysVal: DWORD): BOOL;
	stdcall; external LIB_INPOUT32;


implementation

end.
igorter вне форума Ответить с цитированием
Старый 14.11.2019, 22:56   #17
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

Да, код, конечно - супер. Сплошные вызовы библиотечных функций, а сама библиотека - "черный ящик" ? А толку от неё? Вы же собираетесь LPT делать на Атмеге, а какая там, к мышам, Виндовс ?
Что-то слабо верится, что старые компы можно продать, да еще "за большие деньги". Вот глянул на аукционе - 20..25BYN ($10..12,5) - и ни одной "поклёвки". Проще, наверно, на свалке найти, пока бомжи не растащили на цвет.мет. Но - на месте виднее.
Ну и если есть психи любители ретро, то не думаю, что с этой ретрой работать собираются. А просто чтоб было. И сеть им, видимо, ни к чему. Но - см. выше.
Цель ясна, метода исполнения - тоже: всего туда побольше, и FT, и Альтеру. Там 3 микросхемы справятся, где одной делать нечего.
Это мое личное мнение.
Позитив в этом есть. Если человеку интересно, да ещё с возможным заработком - пусть. Всяко лучше, чем бухать или колоться.
Dixi. С интересом буду следить за этой темой, пока её не снесут.
http://forum.x-hw.by/viewtopic.php?f...326c3fa754aa05
Особенно смешной пост
MaiklsBlack » Чт ноя 28, 2013 11:46 am (стр.4)
Ну и мой коммент к нему
JackA » Сб май 03, 2014 6:13 pm (стр.5)

Последний раз редактировалось digitalis; 14.11.2019 в 23:28.
digitalis вне форума Ответить с цитированием
Старый 15.11.2019, 00:20   #18
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Да, код, конечно - супер. Сплошные вызовы библиотечных функций, а сама библиотека - "черный ящик" ?
Возьмите WinIO он в исходниках.
https://github.com/vaptu/winio

Цитата:
Сообщение от digitalis Посмотреть сообщение
тоже: всего туда побольше, и FT, и Альтеру. Там 3 микросхемы справятся, где одной делать нечего.
Так о том и речь что одна может заменить все 3.


Цитата:
Сообщение от igorter Посмотреть сообщение
Сейчас мне интересно полностью осилить LPT. Мне всегда не хватало усидчивости его полностью изучить. Он имеет столько модификаций, что тяжело сделать что-то универсальное и скоростное под него.
http://www.massmind.org/techref/io/p...84/ecp_reg.pdf
http://kazus.ru/nuke/modules/Downloa...01284-2000.pdf

Там не много. 6 режимов и три способа работы путем опроса либо с применением DMA либо с использованием прерываний.
https://yadi.sk/i/cu2wDGVJ8nzQjA

Для прерываний свой драйвер писать.

Цитата:
Сообщение от igorter Посмотреть сообщение
Единственно, не решил еще проблемы буферов для увеличения скорости обмена данными. В идеале каждый порт должен иметь два собственных буфера на прием и передачу и шину обмена между ними.
Лучше как сделано в этом проекте там есть доки на шину и как они без арбитража решают
https://opencores.org/projects/neo430

Хотя с арбитрами должно не плохо получится.
Цитата:
Сообщение от igorter Посмотреть сообщение
Между ними организовать арбитраж очереди доступа,
Либо очереди, либо арбитраж никакого и быть не должно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 16.11.2019, 21:25   #19
igorter
Пользователь
 
Регистрация: 11.11.2019
Сообщений: 10
По умолчанию

Я долго думал над самим протоколом обмена в такой сети, эта идея меня давно мучила, вроде более-менее всё придумал, но как организовать автоматическое присвоение адресов при одновременном включении всей сети пока не знаю. Думаю для такой затеи будет достаточным вручную прописать уникальные сетевые идентификаторы для каждого узла и клиента сети. И тогда в какой бы он точке и к какому узлу не подключился, он всегда будет распознан всей сетью, как уникальный. В моей идеи не должно быть никаких уровней, никаких отдельных арбитров, привилегий и т.д. Вся сеть построена на равноправных узлах-клиентах, котрые между собой соединены всеми возможными интерфейсами, кроме LAN. Я конкурировать с его интерфейсом не собираюсь, там уже так всё усложнили и запутали, что пусть и сами с ним разбираются. Тоесть, каждый мой клиент одновременно при наличии свободных портов является и сетевым концентратором-узлом и может через себя дальше транзитом передавать пакеты данных. При отказе или отключении любого с узлов информация передается по другим свободным маршрутам. Такой себе Интернет в миниатюре. Но, кроме пакетной предачи информации между узлами, каждый порт сети может быть настроен на непосредственное управления любым другим узлом, чтобы управлять оборудованием, подключенным к этому порту, неподдерживающего мой стандарт. Больше того один узел может записывать в память другого узла необходимую программу драйвер для таких нестандартных протоколов обмена с его портами и дальше просто пакетами данных переданными в этот узел дистанционно управлять этим драйвером.

Также давно я разработал теорию (если это уже до меня кто-то сделал, то я не знал) чисел свободной наперед неопределенной разрядности, когда в структуре числа уже закладывается маркер ее разрядности, который может увеличиваться до бесконечности и теперь не нужно в какой либо протокол вводить ограничение на объем данных, наперед резервировать место для будущих расширений. Разрядность и величина каждого информационного поля теперь заложена в самом поле и самом числе и может обрабатываться одной и той же процессорной процедурой сколько хватит памяти для того, чтобы вместить данное число. И фактически такие протоколы будут иметь только временные ограничения, связаны с мощностью того или инного оборудования, но сами по себе они могут разрастаться до бесконечности, до того, сколько в них нужно будет вместить данных. Особенно это полезно для файловых систем при постоянном увеличении информации в современном мире.

Это небольшое отступление от темы, к которому я больше в данной ветке возвращаться не буду. Просто хотел кратко объяснить, для чего мне нужна информация и что я собираюсь делать. Если эти идеи реализирует кто-то другой быстрее меня, то я буду только счастлив, что кому-то смог помочь. Интерфейсы для обмена в сети будут: USB, LPT, COM, SPI, I2C. Теоретическая возможность подключения и дистанционного управления практически любыми периферийными устройствами.

За всю информацию, предоставленную мне в этой теме по LPT-порту всем участникам еще раз благодарен. Одна только просьба, по-возможности кидать ссылки на рускоязычные ресурсы и документы. Я английского языка, кроме некоторых технических терминов, не знаю. Буду еще раз читать Гука, может даже его рапечатаю в бумажном виде, там очень доходяще всё расписано, но некоторые возможности порта все-таки не полностью описаны и не всегда понятно, как это применять из под современных ОС, чтобы не писать своего драйвера, в чем я тоже несилен. Но постепенно может осилю.
igorter вне форума Ответить с цитированием
Старый 16.11.2019, 23:28   #20
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от igorter Посмотреть сообщение
В моей идеи не должно быть никаких уровней, никаких отдельных арбитров, привилегий и т.д. Вся сеть построена на равноправных узлах-клиентах, котрые между собой соединены всеми возможными интерфейсами, кроме LAN. Я конкурировать с его интерфейсом не собираюсь, там уже так всё усложнили и запутали, что пусть и сами с ним разбираются. Тоесть, каждый мой клиент одновременно при наличии свободных портов является и сетевым концентратором-узлом и может через себя дальше транзитом передавать пакеты данных.
Транзитный трафик это самое сложное. Так что кто тут переусложнил были Вы. LAN не сложный, но запутанный. И плюс к тому никто не расписывает почему он такой. Так что его копировать смыла мало.

Цитата:
Сообщение от igorter Посмотреть сообщение
За всю информацию, предоставленную мне в этой теме по LPT-порту всем участникам еще раз благодарен. Одна только просьба, по-возможности кидать ссылки на рускоязычные ресурсы и документы. Я английского языка, кроме некоторых технических терминов, не знаю. Буду еще раз читать Гука, может даже его рапечатаю в бумажном виде, там очень доходяще всё расписано, но некоторые возможности порта все-таки не полностью описаны и не всегда понятно, как это применять из под современных ОС, чтобы не писать своего драйвера, в чем я тоже несилен. Но постепенно может осилю.
Если непонятно спрашивайте объясним.

Вот на русском и под виндоус
http://citforum.ru/operating_systems/windows/parp_win/
Только учтите что ОС должна быть Win2K, а начиная с WinXP SP3 доступ к LPT из User Space закрыли. А на Win98 все через порты писали, так как они и так открыты были.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
управление LPT портом SAMOUCHKA Общие вопросы C/C++ 7 15.07.2012 13:13
Управление LPT портом под FreeBSD miguel_condie Общие вопросы C/C++ 2 14.08.2010 07:59
Управление LPT портом nikleb Паскаль, Turbo Pascal, PascalABC.NET 5 27.05.2010 19:40
Управление COM портом средствами Visual Basic 6. С.М.С Помощь студентам 2 05.04.2010 18:22
Управление LPT портом Kuzmichinishe Помощь студентам 3 28.09.2009 11:07