Форум программистов, компьютерный форум, киберфорум
Низкоуровневое программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136

Как устройство узнает о изменении состояния порта

02.08.2012, 13:21. Показов 1482. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После выполнения команды OUT мы пишем в порт какое-то значение. Порт - просто ячейка памяти (если я правильно понимаю), к которой устройство имеет доступ. Как тогда устройство отличает, что значение передано и что значение просто лежит и его никто не трогал? И как устройство узнает, что кто-то взял значение из порта командой IN, чтобы оно могло положить в порт новое?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.08.2012, 13:21
Ответы с готовыми решениями:

ComboBox. Как узнать индекс при изменении состояния ComboBox
Здравствуйте, возник вопрос касательно ComboBox. В реалиях выполняемой задачи появилась необходимость изменять строку в QLabel сразу же при...

Проверка состояния Com -порта
ребят столкнулся с такой проблемой, как открыть закрыть и тд, это все понятно, а вот как проверить условие что в com-порте есть устройство?

Получение состояния из порта
привет пишу свой обработчик 09h как резидентный получаю скан код in al,60h вопрос как получить состояние клавиатуры через порт ну...

8
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
02.08.2012, 18:40
DKOI, порт это не просто ячейка памяти, это триггер, к которому компьютер и устройство имеют совместный доступ. Опрос триггера это внутреннее дело устройства, как оно его опрашивает зависит от конкретного конструкторского решения, обычно перед передачей чего-либо в компьютер устройство должно взвести триггер "Я свободно и готово к обмену информацией"
1
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
04.08.2012, 13:04
Порт - это не "просто ячейка памяти". У порта куча состояний. Типа "передача данных", "изменение состояния", "передача состояния", ..., т.е. порт бывает (по-простому говоря) свободен и занят. Там куча состояний, когда данные на него слать нельзя.
1
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
04.08.2012, 18:33  [ТС]
Цитата Сообщение от Airhand Посмотреть сообщение
Порт - это не "просто ячейка памяти". У порта куча состояний. Типа "передача данных", "изменение состояния", "передача состояния", ..., т.е. порт бывает (по-простому говоря) свободен и занят. Там куча состояний, когда данные на него слать нельзя.
Понятно. А аппаратно как это реализуется?
0
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
04.08.2012, 21:45
Толком не знаю за аппаратную реализацию. Помню только, что там крутится цыкл, в котором опрашивается порт.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
07.08.2012, 04:55
Цитата Сообщение от DKOI Посмотреть сообщение
Понятно. А аппаратно как это реализуется?
аппаратно — порт это 8 триггеров, каждый триггер отвечает за определенное состояние устройства: "1/0"="передача данных/нет передачи данных", "устройство занято/устройство свободно" и т.п., обычно у устройства как минимум два порта: "порт состояния" по нему другие устройства и компьютер узнают о состоянии устройства и "порт данных" — сюда идет прием/передача данных от/для устройства
1
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
18.08.2012, 10:55
Как было верно замечено, порт - это не ячейка ОП. Если посмотреть разводку любого слота, то там можно увидеть шину адреса, шину команды, а для портов выделены специальные "дорожки". По соответствующим контактам порты некоторого устройства и соединяются с этими "дорожками". Именно поэтому среди команд процессора и предусмотрены команды IN и OUT: они-то и работают с этими "дорожками". А уже через порты осуществляется доступ к внутренним регистрам устройства, которые, в своем большинстве, являются триггерами (т.е. могут запоминать посланный в них код).
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
20.08.2012, 05:40
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Как было верно замечено, порт - это не ячейка ОП
там есть специальная шина M/IO, адреса для памяти и для портов ввода/вывода передаются по одним и тем же адресным шинам, также и данные для памяти и для портов ввода/вывода идут по одним и тем же шинам данных, но если M/IO=0, то адреса и данные предназначены ячейкам памяти, а если M/IO=1, то идет адресация и обмен данными с портами ввода/вывода
0
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
20.08.2012, 11:25
Да, аппаратная реализация может быть и такой (M/IO). На старых машинах шина портов была отдельной, так что если надо было сделать свою плату, то на ней должны были быть до 16-ти контактов (как раз машинное слово на 65535 портов). Эти контакты-биты и образовывали номер порта устройства. Ну и, конечно, предусматривалась линия прерывания. Если помните, кстати, так были устроены СОМ-порты на мультикартах (во времена ISA-шины и Римской империи)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2012, 11:25
Помогаю со студенческими работами здесь

Опрос состояния порта принтера
Помогите выполнить сабж

Опрос состояния порта в AVR Studio 5.0
Доброго времени суток! Недавно решил перейти со среды CVAVR в AVR Studyo, т.к. понял что лучше писать на чистом С, и сразу столкнулся с...

STM32: Захват состояния порта в DMA
Вопрос возник: а можно ли при помощи DMA захватывать состояние 8 бит какого либо порта STM32 микроконтроллера ? p.s. голову ломаю с...

Как получить номер USB-порта, на котором "сидит" подключенное устройство
Всем доброго времени суток, уважаемые коллеги! Заранее прошу прощения у модераторов, если моя тема не совсем соответствует данному...

Запись различного состояния ног порта в одну переменную
Подскажите мне пожалуйста (в учебных целях), как всё это дело упаковать в одну формулу char pin; pin = PINB.7<<7; pin |=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru