Автор Тема: решил написать програмный эмуль эклз через ком порт. проблемы. хелп, коллеги.  (Прочитано 4424 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
хочу по i2c эклз эмулировать програмно через DTR, RTS, DSR и СTS. фигня какая то творица. GetCommState тормозит. уж на асму перешёл скорости ради, шоб до порта COM1 по статусному регистру 3FE добраться (благодаря giveio.sys). для тренировки повесил DSR и CTS на SDA и SCL таймера экр2102к с целью выловить обращение к таймеру 1101000x. условие старт выловлил как мог - получается полная фигня по адресу устройства. скорости системе что ли не хватает ?.. заинтересованные есть ? юзал инфу со скачаной страницы что приложил.
« Последнее редактирование: 20/06/2011 00:42:44 от tridentxp »
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Это в смысле, чтобы комп был "ведомым" устройством в сеансе i2c ???
А это реально вообще...
Кругом пишут, что аппаратная поддержка протокола нужна для "Слэйв" устройства.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
Не кассами одними жив ЦТО ;-)
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Мысли вслух :)
Скорее всего, Винда не даст стабитьно реализовать ведомое устройство i2c без использования каких-нибудь навороченных (специально заточенных) драйверов, поскольку по умолчанию не является системой реального времени. :(
Если попробовать в ДОС-режиме, возможно преимущество компа в тактовой частоте и позволит обеспечить режим "ведомого"...
 

Оффлайн Юр

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1688
  • Похвалили: 46 раз(а)
Какая разница - ДОС-режим или Винда? Все равно ДОС в режиме эмуляции обращается к портам, используя сервисы Винды. Это надо запускать под "чистую" ДОС, без всяких виндов, ту же 6.22. Но получится только если жесткий диск на FAT (не NTFS).
Есть только  миг
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
Действительно, только чистый ДОС. Под виндой не вспомню точного таймера (порядка 10 мкс), да и планировщик процессов, на сколько я помню, тактируется сотнями мс. Реализовывал под ДОС задержку в 14-17 мкс (это минимум, который удавалось достичь на i386). Для ведомого i2c необходимо постоянно читать порт - для винды это зависон, так как сканирование порта придётся делать в realtime приоритете процесса. Любое переключение задачи в винде(даже дёргание мышой) может привести к нестабильному считыванию - пропуск состояния шины...
Не кассами одними жив ЦТО ;-)
 

Оффлайн Юр

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1688
  • Похвалили: 46 раз(а)
Для ведомого i2c необходимо постоянно читать порт
А если использовать возможности аппаратного прерывания?
Есть только  миг
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
в NT-шных осях до прерываний так просто не доберёшься, если ты конечно не Гений. я не гений.
не суетись под тесаком. (c) Зяма.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
решил на атмеге 8  собрать усб-(и2ц+уарт+spi) переходник. во тока 300  стр мануала по USB вкурю...
не суетись под тесаком. (c) Зяма.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
А почему именно COM, а не LPT?
лпт "умер". ком ещё пока на ладан  дышит. да и разницы ни какой - всёравно по порту обращаюсь , с той лишь разницей, что лпт "прямо" выходит, а ком - порт=регистр микрухи уарта.
не суетись под тесаком. (c) Зяма.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
Действительно, только чистый ДОС. Под виндой не вспомню точного таймера (порядка 10 мкс), да и планировщик процессов, на сколько я помню, тактируется сотнями мс. Реализовывал под ДОС задержку в 14-17 мкс (это минимум, который удавалось достичь на i386). Для ведомого i2c необходимо постоянно читать порт - для винды это зависон, так как сканирование порта придётся делать в realtime приоритете процесса. Любое переключение задачи в винде(даже дёргание мышой) может привести к нестабильному считыванию - пропуск состояния шины...
я думаю лазейка всёравно есть. как сказал Skat:винда - не система реального времени, и он прав. но если рассматривать стандарт и2ц, то можно заметить, что там оговорена способность ведомым удерживать SCL до момента готовности.  просто надо грамотно написать.
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Я не точно выразился, я говорил не про эмуляцию режима ДОС, а естественно про чистый ДОС.
На счет задержки линии SCL. это может и возможно, только возникает проблема.
Нужно не проспать с выставлением задержки а это снова слежение за шиной.
И проканает это только на простых ККМках, где нет таймаута передачи данных.
Думаю в "серьезных" с аппаратным i2c, таймаут может использоваться.

На счет USB на атмеге, я в эти выходные и-нет перекопал, есть огромное количество готовых, завершенных проектов на HID-устройства. Если знать Атмегу, можно переделать эти проекты под что угодно, хоть эмулятор программно-аппаратный...
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
На счет USB на атмеге, я в эти выходные и-нет перекопал, есть огромное количество готовых, завершенных проектов на HID-устройства. Если знать Атмегу, можно переделать эти проекты под что угодно, хоть эмулятор программно-аппаратный...
самому то интереснее плюс моск не засыхает.   полезно вобщем .
не суетись под тесаком. (c) Зяма.
 

Оффлайн shipvsv

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 139
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
V-USB, поди, тогда вот
http://we.easyelectronics.ru/electro-and-pc/usb-dlya-avr-chast-1-vvodnaya.html

Почти, там вторая часть значительно интереснее :)

А на счет для мозга полезнее, дык в "чужом" ковыряться тот ещё "вынос мозга" :)
 

Оффлайн Prz777

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 549
  • Похвалили: 85 раз(а)
  • Откуда: Тамбов
Занимался я этим вопросом (I2С через LPT). Результат - нулевой (большая задержка). Реально использовать в качестве преобразователя между LPT и I2C PCF8584. Был в интернете такой проект PORT3 - чтение шины I2C. Сделал - работало исключительно.
 

Оффлайн Two_byte

  • Модератор раздела
  • Ветеран
  • ****
  • Сообщений: 920
  • Похвалили: 78 раз(а)
  • Не впихуйте невпихуемое!
  • Откуда: Ногинск
Можно кстати аппаратный USB поюзать (at90usbxxx) - тоже весьма интересно!!! Я тут начал слегка, но руки видать усохли, а, моСК выносит на УРА. ???
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
так.i2c(start)=(sda(t=0)=0). уж очень напоминает стартовый бит уарта. бросить sda на rx, scl на tx, грамотно отловив старт, включить уарт на специально обученном бодрейте.на tx (посредством диода с анодом на сцл) посылать комбинацию 0101... тем самым симулируя активность ведомого. хотя можно и без этого извращения. утопия, но идея не плоха.
не суетись под тесаком. (c) Зяма.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
а вот ещё идея: повесить тормоз на линию сцл: rscd тригер. S посадить на землю, R - вывести на порт компа, С - прямо на SCL, D - на землю, прямой выход через диод плюхнуть на сцл. любой из выходов - тож на порт. тоесть случись сцл перепасть с нуля до единицы, то на этосреагирует тригер, но при этом он же будет удерживать сцл в нуле, до тех пор пока комп не сбросит тригер.
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
а вот ещё идея: повесить тормоз на линию сцл: rscd тригер. S посадить на землю, R - вывести на порт компа, С - прямо на SCL, D - на землю, прямой выход через диод плюхнуть на сцл. любой из выходов - тож на порт. тоесть случись сцл перепасть с нуля до единицы, то на этосреагирует тригер, но при этом он же будет удерживать сцл в нуле, до тех пор пока комп не сбросит тригер.
Если триггер типа ТМ2, то S на + питания.
Если обработка наличия задержки в мастере реализована по простому, может и прокатит :)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
вторая половина тригера уйдёт на отлов условия старт.
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
вторая половина тригера уйдёт на отлов условия старт.
Тоже правильное решение, достаточно шину SDA инвертировать и на вход С подать,
на входе D соответственно SCL, больше ничего и не нужно :) (S всегда на +)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
вторая половина тригера уйдёт на отлов условия старт.
Тоже правильное решение, достаточно шину SDA инвертировать и на вход С подать,
на входе D соответственно SCL, больше ничего и не нужно :) (S всегда на +)
уху,но - жаба давит: хотелось бы меньшим количеством обвесухи. авось n-p-n кой с резюком обойтись.
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
вторая половина тригера уйдёт на отлов условия старт.
Тоже правильное решение, достаточно шину SDA инвертировать и на вход С подать,
на входе D соответственно SCL, больше ничего и не нужно :) (S всегда на +)
уху,но - жаба давит: хотелось бы меньшим количеством обвесухи. авось n-p-n кой с резюком обойтись.
Это про "инвертировать" ???
Конечно инвертор на транзисторе... он же пока только один нужен :)
 

Оффлайн Prz777

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 549
  • Похвалили: 85 раз(а)
  • Откуда: Тамбов
Ребята, вы еще забыли в выходном каскаде поставить лампу 6П14П и тогда все заработает.  (шутка)
Почитайте повнимательнее про I2C.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
... Почитайте повнимательнее про I2C.
А что конкретно смущает ???
Формирование задержки или отлов Старт-условия ???
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
Ребята, вы еще забыли в выходном каскаде поставить лампу 6П14П и тогда все заработает.  (шутка)
Почитайте повнимательнее про I2C.
да, да, внатуре, чё за камни в наш огород ? а 6П14П - прошлый век, сейчас модно МП41 и КД105 ставить - следите за тенденциями, да и 174ХА11 куда нить да сгодится. мы бы и рады заюзат в усмерть этого зверя заморского PCF8584, да вот где бы достать его оперативно, и угрохать время на его изучение - программирование. и пускай Вас не смущают "клыки" в момент захвата сцл.... авось прокатит...
« Последнее редактирование: 22/06/2011 06:31:01 от tridentxp »
не суетись под тесаком. (c) Зяма.
 

Оффлайн Юр

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1688
  • Похвалили: 46 раз(а)
мы бы и рады заюзат в усмерть этого зверя заморского PCF8584, да вот где бы достать его оперативно, и угрохать время на его изучение - программирование.
Достать и изучить - стоит того,  я думаю, что на реализацию полноценного слэйва ты угрохаешь больше времени и нейронов. Как-то тоже имел такую мысль реализовать ЭЭ на ПК, поискал готовые алгоритмы, но везде предпочитают реализовывать мастеров. Реализация слэйва на порядок сложнее. А если тебе лень изучать этого зверя, которого предложил Prz777, то можно предложить еще PCF80C552. У него ядро от 51-го, имеет как i2с (может поддерживать слэйв-режим), так и отдельный uart. Правда, стоит сейчас около 700 рублев. Все же дешевле клмз и ЭЭ. Можно было бы посмореть еще и на пики (пик16с6х), они гораздо дешевле, где-то в районе 150, да ты их за что-то ненавидишь. ))
Есть только  миг
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
я  решил поизгаляться - ужо регистр спаял и транзюк навесил. пока не получилось. киенты не дают проанализировать. есно отпишусь .
не суетись под тесаком. (c) Зяма.
 

Оффлайн Рязанский

  • Резидент
  • Старожил
  • ****
  • Сообщений: 341
  • Похвалили: 42 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
а почему бы под это дело не использовать простейший проц 89с5х, которых много сейчас из снятых касс?
UART в них есть.
Осталось только программный слейв I2C организовать.
Ещё и куча свободных выводов останется - можно светодиодов для отладки навешать...
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
блин, чё вы все заладили микроконтроллер, да микроконтроллер  - успею. хочу прямо через комп  - шиза посетила. ;)
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Через комп, у слэйва могут возникнуть сложности с отправкой подтверждения.
Я себе этот процесс чегось не могу четко представить... :(

Ну с задержкой синхроимпульса понятно, задержали.
Данные "занулили".
Строб отпустили.
А вот когда шину данных освобождать, непонятно.

Если ждать следующего строба, можно ведь и не дождаться, вдруг мастер контролирует занятость шины данных...
Получается наобум надо подтверждение снимать, или как-то проверять, что строб закончился...
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
вот добью - отпишусь. уже чёт попёрло, хоть и не совсем понятное. вот блин гемор тока: никак не могу найти в мастерской обычного ТМ2 - решил на 2-х 74LS273 -деваца некуда.
не суетись под тесаком. (c) Зяма.
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Странное дело, если эмулятор запущен на ХР-шке, Микрушка вместо Е01-нет ЭКЛЗ,
пишет Е09-разрушение ОЗУ в области программируемых цен.
Хотя на самом деле никакой Е09 нет. :)
При этом ККМ отправляет код 05, а читать ответ отказывается.
А если запустить эмуль под 98-ой, ККМ даже принимать инфу от эмуля начинает. :)
 

Оффлайн шУмА

  • Новичок
  • Сообщений: 17
  • Откуда: Арх.Обл.
Чем дело-то закончилось? Получилось что-нибудь?
 

Оффлайн SkaT

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 912
  • Похвалили: 37 раз(а)
Чем дело-то закончилось? Получилось что-нибудь?
А ничем :(
Программная эмуляция слэйва на Винде принципиально не возможна, из-за слишком больших задержек Винды в работе с портами :(
А у ККМ есть очень критичный параметр, задержка между байтами, если она чуть больше, отмена сеанса, "сбой ЭКЛЗ".
Причём биты в байте можно "задерживать", а вот приём/отправку байта низя.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
Программная эмуляция слэйва на Винде принципиально не возможна, из-за слишком больших задержек Винды в работе с портами
Это только через драйвер.
Не кассами одними жив ЦТО ;-)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
Программная эмуляция слэйва на Винде принципиально не возможна, из-за слишком больших задержек Винды в работе с портами
Это только через драйвер.
хыыы... драйзвирь... вон попробуй giveio.sys заставить систему отпустить порты - отпустит, а потом напиши программулину, что меандр формирует на LPT (я через асму обращался прямо в порт) - получишь шум, а не меандр, и драйвирь не причём.
не суетись под тесаком. (c) Зяма.
 

Оффлайн crazer1976

  • Резидент
  • Старожил
  • ****
  • Сообщений: 271
  • Откуда: г.Новочебоксарск
Драйвер, он на то и водитель по девайсам, Подписать надо, и с сертфикатом от винды(типа).
СОМ винда не блюдет. А посему доступ свободный. Хоть мастер, хоть слэйв.
за лпт контроль есть, в реестре сшибить
не трогай дольше проработает
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
потом напиши программулину, что меандр формирует на LPT (я через асму обращался прямо в порт) - получишь шум, а не меандр, и драйвирь не причём.
Хех. Прошли золотые времена DOS`а. Тока драйвер в 0-кольце защиты может рулить lpt-портом. Там ему, к стати, и доступ у системному таймеру есть, в зависимости от железа можно и задержку в десяток микросекунд получить (таймер-hpet).
Не кассами одними жив ЦТО ;-)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
не побоюсь показаться незнайкой: 0 - кольцо защиты - уровень асмы, системы. она туда драйвирь не пустит. либо мы разговариваем про сено и солому, либо...
не суетись под тесаком. (c) Зяма.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
вот на си билдере 6 навлял включение асмы, запустил без giveio. сразу же получил системную ошибку приложения. с гивио - как бабка отвела, из чего я делаю вывод, что всётаки моё пользовательское приложение всётаки заставило проц пошевилить шиной данных, адреса, и лапой ~IORQ проца (если такая ваще реализована... но уж если есть комманды  in dx,... out dx.., то уж должна быть по логике). дык с учётом сказаного, я так полагаю система сама распределяет свою времменую нагрузку по своему усмотрению, что есно ведёт к непредсказуемости временного доступа к портам.
не суетись под тесаком. (c) Зяма.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
0 - кольцо защиты - уровень асмы, системы. она туда драйвирь не пустит.

Обломинго-птичка прилетела. На асме в Винде написан только hal - уровень абстракции железа. Всё остальное на 90% на С. Драйвера могут писаться как на С, так и на АСМе. Драйвера работают в 0м кольце, только там есть прямой доступ к железу.
Если любопытно, можешь посмотреть примеры дров WDK

При использовании в 3м кольце защиты инструкций in; out;  вызывает исключение, которое перехватывается операционкой, и уже она думает чё с этим делать. Часто операционка просто посылает прогу в аут.
Не кассами одними жив ЦТО ;-)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
тогда вопрос: что сделает си билдер с таким ?
asm{ mov dx,890
       in al,dx
 ...
}
?      и  как и что с этим будет делать потенциальный драйзвирь ?
не суетись под тесаком. (c) Зяма.
 

Оффлайн Prz777

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 549
  • Похвалили: 85 раз(а)
  • Откуда: Тамбов
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
и  как и что с этим будет делать потенциальный драйзвирь ?
Устанавливаем SoftIce в режиме ядра (требуется перезагрузка, так как SoftIce грузит свой гипервизор в 0е кольцо) и отлаживаем прогу от этого адреса. В большинстве своём может просто может перенаправить в порт, но это зависит от желания ОС. Некоторые обращения к портам пропускаются ОСкой без вмешательства - всё зависит от битовой маски "закрытия" портов (есть такая шняга начиная с i80386)
Не кассами одними жив ЦТО ;-)
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
Ещё про LPT - http://progrex.narod.ru/

А вот енто оч пользительно.
Не кассами одними жив ЦТО ;-)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
- всё зависит от битовой маски "закрытия" портов (есть такая шняга начиная с i80386)
книжку по асме читал давно, быстро поверхностно проебжался по колцам защиты и дискрипторах памяти, а вот о масках портов слышу впервые. исключение или преывание вызывает?
не суетись под тесаком. (c) Зяма.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
исключение или
Насколько я помню i386 первые 255 портов закрываются маской. Если есть запрет на доступ вызывается исключение, и ОС рулит (например ДОС проги в винде). Остальные порты по-моему тупо закрываются - пример работа keyrus в XP  - отрисовка бордюра через VGA порты идёть, которые тупо эмулируются.
Не кассами одними жив ЦТО ;-)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3289
  • Похвалили: 195 раз(а)
  • armвиль
иными словами всё по прежнему неоднозначно, и изохронный доступ к портам из пользовательского приложения нереален. из чего следует и продолжение темы, что слэйва И2Ц на микромягкевских продуктах делать прграммно себе в ущерб имея альтернативные решения.
не суетись под тесаком. (c) Зяма.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
что слэйва И2Ц на микромягкевских продуктах делать прграммно себе в ущерб имея альтернативные решения.
На ЛЮБОЙ многозадачной ОС. Бери чистый MS-DOS и будет счастье.
Не кассами одними жив ЦТО ;-)
 

Оффлайн Prz777

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 549
  • Похвалили: 85 раз(а)
  • Откуда: Тамбов
Интересная статейка.
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2688
  • Похвалили: 79 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • drfaust.asuscomm.com
К стати, один пин на LPT могёт "пульсировать" / "читаться" с максимальной скоростью в 150КГц. I2C - шина в ККТ запросто могёт оказаться 400КГцовой. Как отнесётся i2c-мастер в наших ККТ-реалиях к приостановке (замедлению) шины слэйвом?.
Не кассами одними жив ЦТО ;-)
 

Оффлайн Рязанский

  • Резидент
  • Старожил
  • ****
  • Сообщений: 341
  • Похвалили: 42 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
я уже предлагал вариант эмуляции i2c слейва - часть данных хранить в промежуточном процессоре.
т.е. в процессоре есть i2c слейв и rs232 для связи с компом.
При обращении к эмулятору - он ответит сразу, что данные приняты и переправит запрос в порт компа. А здесь уже есть до 20 мс (а может и больше) на ответ.


FTDI представила линейку новых чипов FT-X.

В новой линейке мосты USB <-> UART, USB <->I2С, USB <->SPI
Ссылка

« Последнее редактирование: 29/02/2012 18:22:55 от Рязанский »
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22