Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
TTL эмулирует LPTПЛАТА: L-761 (2185)
Имеется следующая проблема: По приходу синхросигнала ,кроме сбора данных необходимо подавать управляющий сигнал(6 байт)на другой комп через LPT.Поскольку нет гарантии, что DOS будет обрабатывать прерывание без неуправляемых задержек возник вопрос: можно ли запрограммировать DSP для решения этой задачи? Т.е. через TTL "эмулировать" протокол ECP? С уважением Андрущенко
|
|||
|
||||
|
Re: TTL эмулирует LPTУ меня похожая задача, пришлось для этого приделать более медленный девайс к цифровым линиям. Прикинем: строб 500нс = 7 клоков DSP. По-моему вписаться в протокол ECP одновременно с оцифровкой трудно. |
|||
|
||||
|
Re: TTL эмулирует LPTЗапрограммировать можно все.
|
|||
|
||||
|
Re: TTL эмулирует LPTХоть DOS и не спортивно, но там как раз мамсимум гарантий, что все будет работать как нам хочется. Все отдано на откуп прогаммисту, и возможности , но и ответсвенность. Как напишишь так и будет работать. |
|||
|
||||
|
Re: TTL эмулирует LPTУправляющие 6 байт надо посылать после оцифровки:
Вопрос в том, чтобы сократить время с прихода синхро до пересылки последнего управляющего байта,
С уважением Андрущенко |
|||
|
||||
|
Re: TTL эмулирует LPT2Evgeny > 500нс - это не 7 клоков А сколько? Кварц 14,7Мгц
Для стандарта EPP строб 500нс. Или я ошибаюсь?
> 1.пришёл синхроимпульс (200Hz) Тогда конечно успеете передать. Можно и без DSP, используя функцию вывода через цифровые порты. |
|||
|
||||
|
Re: TTL эмулирует LPTСогласен,что за 5 миллисек это можно сделать, вопрос в МАСКИМАЛЬНОЙ скорости передачи этих 6-ти байт: ведь (если не ошибаюсь) скорость ЕСР составляет 2Мб/сек, таким образом за 1 одну миллисек можно передать аж 2Кб!Практически это возможно? Либо ссылку забавную по этому вопросу,
С уважением Андрущенко |
|||
|
||||
|
Re: TTL эмулирует LPTВообще-то я согласен с Evgeny относительно доса и посоветовать ничего не смогу. Каким образом можно притормозить стандартный протокол такими древними средствами я не знаю.Если бы принимающий порт был бы под нормальной ОС, (в моём случае линукс) то было бы проще.Наверное вам придётся реализовывать досовский драйвер самому. Может посмотреть в сторону другой ОС? В линуксе мне пока хватает точности единиц микросекунд, но комп кроме моей задачи пока ничем не занят. Если понадобится более точная подстройка или жёсткая рантаймовость, то я планирую использовать rtlinux. Сам пока не попробовал, но согласно описанию там уже считаются наносекунды.Заставлять dsp работать коммуникационным контроллером да ещё на тактовой 14МГц лично мне кажется бесперспективным.Но это дело вкуса, конечно. Можно ещё попробовать передавать не через цифровые порты L761, а через EPP компа собирающего информацию. |
|||
|
||||
|
Re: TTL эмулирует LPT1. Тактовая частота DSP есть удвоенная частота кварца, т.е. для платы L-761 она равна 2*14.7456 = 29.4912 МГц.
|
|||
|
||||
|
Re: TTL эмулирует LPTТо есть для создания строба 500нс надо 14-15 клоков dsp? Это несколько облегчит задачу товарищу. Сорри, про удвоение что-то забыл.Сергей, есть такое предложение выложить подборку модифицированных лбиосов на сайте - возможно это будет небесполезно для всех желающих использовать dsp в новых режимах. |
|||
|
||||
|
Re: TTL эмулирует LPTСергей спасибо за ссылки |
|||
|
||||
|
Re: TTL эмулирует LPTЕсли у Вас есть модифицированные LBIOS - присылайте. Обязательно выложим на всеобщее обозрение. |
|||
|
||||
|
Re: TTL эмулирует LPTУ меня модификация в стадии тестирования, поэтому пока нечего выложить, я хотел сам подглянуть;) Если результат будет положительный, обязательно пришлю. |
|||
|
||||
|
Re: TTL эмулирует LPTTo Стас:
>Наверное вам придётся реализовывать досовский драйвер самому. Может посмотреть в сторону другой ОС? В линуксе мне пока хватает точности единиц микросекунд, но комп кроме моей задачи пока ничем не занят. Если понадобится более точная подстройка или жёсткая рантаймовость, то я планирую использовать rtlinux. Сам пока не попробовал, но согласно описанию там уже считаются наносекунды.
|
|||
|
||||
|
Re: TTL эмулирует LPT> Надежды на то, что что-то там многозадачное обеспечит вам
В моём случае синхронизация предполагается внешняя, а реальное время реакции процессоров покажет практика. Меня интересуют времена в районе десятков-сотен наносекунд и не вижу пока ничего, что помешает мне их получить. Для dsp в моей задаче отводятся функции управления внешними аналоговым мультиплексором и усилителем/ослабителем сигнала дополнительно к имеющемся. Остальным занимается пентиум, поскольку dsp не справится с нужной мне обработкой.Так штаа... не будем спешить с выводами;) |
|||
|
||||
|
Re: TTL эмулирует LPTНу сколько можно буратин воспитывать....
|
|||
|
||||
|
Re: TTL эмулирует LPTПапочка,так читаю же - и пока меня микросекунды устраивают.Если не получится с пентиумом наносекунды, я его просто заменю на свою схемотехнику, благо сейчас уже параллельно несколько процессоров крутятся. Оттуда и внешняя синхронизация, кстати. Не думаю что получить 14 разрядов ацп это такая большая проблема. Встроить линукс в какой-нибудь арм это тоже несложная задача. Может ещё скажете там тоже наносекунды невозможны? Как же в камаках получали 200нс стробы,обьясните. А то помру буратиной несмышлёной;) |
|||
|
||||
|
Re: TTL эмулирует LPTФлаг в руки и барабан на шею!
|
|||
|
||||
|
Re: TTL эмулирует LPTЭтим тоже постоянно занимаюсь даже без лишних уговоров. Покажите хоть одну свою разработку в железе, чтобы я мог именовать вас папой. Кроме юмора пока ничего не замечаю. Папами не рождаются, папами становятся, кстати говоря. |
|||
|
||||
|
Re: TTL эмулирует LPTЧтобы зря не трепаться, можете ознакомиться с тем, что сейчас имеется.
Loading parameters......
table_size: 16 N of channels: 16
buf_frames: 1024
ADC frequency: 125000 Hz
Start ADC......
frames: 8
dtv.tv_sec: 0
|
|||
|
||||
|
Re: TTL эмулирует LPTНУ и шо это за бред ? Я тоже могу выдать что-нибудь вроде:
|
|||
|
||||
|
Re: TTL эмулирует LPT1. http://www.fsmlabs.com/ раздел faq Q: How do Linux processes communicate with RTLinux threads?
Подробности если надо прочитайте сами. 2. Реакция в асинхронном режиме само собой невозможна, в синхронном возможна. У меня как раз синхронный. 3. Проблема, которую вы раздули из ничего своими голословными высказываниями про кэши, товарищ задавший вопрос обозначил как влияние многозадачности ОС на реакцию РС на событие. Поэтому ему и хочется реализовать свою задачу в досе, чтобы уйти от задержек, связанных с этим. Действительно, если выполнять асинхронный обмен данными, то линукс имеет право задержать его до 10мс, винды до 50мс если не влезать в процессы ядра ОС. Про os/2 не знаю, но думаю что там тоже в этих пределах. С задержками на уровне реакции чипов это совсем не связано (или обьясните физику процесса и ответьте на вопрос по камаку). 4. Повторюсь ещё раз, у меня параллельно обрабатываются несколько синхронных процессов, один из них на РС с участием L761. Тайминг ADC-DSP выполнен с микросекундной точностью разработчиками лкарда. Пока он меня устраивает и в линуксе я в эти времена пока вписываюсь. Наносекунды (если они понадобятся) можно достигнуть установкой rtlinux (см.ссылку) или реализацией отдельного модуля, выполненного например на контроллере adc+arm+eeprom+ethernet/usb без вмешательства PC. В лкард это разработка соответствует H2000, но её стоимость пока для наших задач недоступна. Если вам это не под силу, то ещё не значит, что никто не может этого сделать. |
|||
|
||||
|
Re: TTL эмулирует LPTокей.
1.
2.
3. Определить размер кеш-памяти 4. Определить время выполнения из п1 и п2 при наличии операндов в кеше и не в кеше. 5. Определить время выполнения inp()
6. Промедитировать над результатами в пунктах 0-5 и определить количество глупостей, написанных вами ранее. 6.1 Для особо одаренных - определить различие в архитектуре PC и специализированных модулей КАМАКа |
|||
|
||||
|
Re: TTL эмулирует LPTОтносительно ввода-вывода по шине pci для L761 - единицы микросекунд. Но. Попробуйте проделать всё вышесказанное одновременно с форматированием дискеты или обработкой сетевых запросов или тасканием мышкой окон на десктопе. Все измерения пойдут лесом. Заявленные лкардом 10МБ/с я имею без проблем, но мне нужна минимальная рассинхронизация от внешней частоты при любых перечисленных действиях. И здесь у меня пока есть нерешённые вопросы. Про камак. Представьте себе некое подобие камака, выполненное не на 155й серии, а на современной элементной базе в конструктиве 6U. Затем один из модулей ацп крейта представьте в виде PC+L761. Напрягите воображение и представьте, что несколько модулей работает одновременно от стабильной опорной частоты. Если не получается, попробуйте посмотреть на описание H2000. От связки PC+L761 мне нужны синхронный ввод данных от ацп. коммутация каналов и управление усилением.(всё это рализуется посредством лбиоса) Если бы рассинхронизация составляла микросекунды, то первый этап задачи был бы решен, но пока имею миллисекунды. Этим сейчас и занимаюсь. А с кэшами я пока не связываюсь, будет время, посмотрю. |
|||
|
||||
|
Re: TTL эмулирует LPT;-)
Про камак - имелась ввиду совсем не архитектура шины, а то, что половина блоков камак вообще не имела никакой связи с шиной и была чисто аппаратной вплоть до всовывания внутрь блока кусков провода для организации линий задержки. соответсвенно стробы в 200нс там генерировались аппаратно. H2000 - это тот же самый 2185, только вроде частота там 40Мгц. Что касается синхронизации - я использую программную синхронизацию двух L761. точность одновременного старта предположительно составляет несколько микросекунд, после старта платы работают автономно и в течении минут никаких видимых признаков рассогласования не наблюдается. Это не означает что это хорошо, но тем не менее...поскольку оно работает, идея выполнять синхронизацию через ТТЛ порты не была реализована. |