Как выяснилось, правильная эмуляция сигнала BREAK - довольно сложная и увлекательная задача. Есть несколько важных вопросов, для ответа на которые потребуется несколько тестов ( напишу тесты на следующей неделе ):
1. При установке BREAK порт устанавливает в линии постоянный 0, т.е. начинает непрерывно передавать стартовые биты. Эмулятор порта com0com при каждом получении BREAK передаёт нулевой байт - отсюда вопросы:
1.1. Принимает ли реальный DL-порт фиктивный нулевой байт при получении BREAK.
1.2. Устанавливается ли в принимающем порту бит готовности если у принимаемого байта не пришёл стоповый бит.
1.3. Те же вопросы про COM-порт.
2. Влияет ли бит BREAK на передачу текущего байта ( у которого уже ушёл стартовый бит, но ещё не ушёл стоповый бит ).
2.1. Как с этим дела у DL-порта.
2.2. Как с этим дела у COM-порта.
3. Устанавливается ли бит готовности в передающем DL-порту после "завершения передачи" байта, если в ходе передачи был установлен бит BREAK.
3.1. Если бит BREAK был установлен после начала передачи и сброшен до завершения передачи.
3.2. Если бит BREAK был установлен после начала передачи и сброшен после завершения передачи.
4. Устанавливается ли бит готовности в передающем DL-порту после "завершения передачи" байта, если до начала передачи был установлен бит BREAK.





Ответить с цитированием