8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 5 6 7 8 9 10 11 ... 105

Присвоение биту единичного значения

Следующий пример демонстрирует, как сделать бит 3 (вес равен 8) регистра данных единицей (независимо от его исходного значения), оставив другие биты неизменными:

10 X=0nginal data OR 8 20 OUT 888, X

Строка 10 выполняет операцию логического сложения (OR). Таблица истинности этой операции приведена ниже:

0 OR 0 = 0

0OR 1 = 1

1OR 0 = 1 1 OR 1 - 1

Пример поразрядной операции OR

Данные-1:ХХХХХХХХ (биты от 7 до 0)

Данные-2:00001000

Данные-1 OR Данные-2: ХХХХ1ХХХ

Присвоение биту нулевого значения

Следующий пример на языке QBASIC показывает, как сделать бит 4 (вес равен 16) регистра данных нулевым:

10 X=0nginal data and (255-16) 20 OUT 888, X

Строка 10 выполняет операцию логического умножения (AND). Таблица истинности этой операции выглядит следующим образом:

0 AND 0=0

0AND 1 = 0

1AND 0=0 1 AND 1 = 1

Пример поразрядной операции AND

Данные-1:ХХХХХХХХ (биты от 7 до 0)

Данные-2:11101111

Данные-1 AND Данные-2: XXX0XXXX

Сдвиг битов вправо или влево

Уже говорилось, что при чтении данных из регистра состояния информативными являются только биты 3-6. Чтобы их выделить, необходимо произвести побитовый сдвиг. В ТР6 для этих целей существует две процедуры: SHL - сдвиг битов влево (к старшему разряду) и SHR - сдвиг вправо (к младшему разряду). Следующий пример демонстрирует выполнение обеих операций:

Данные: 11111111 (биты с 7 по 0) 255 SHL3: 11111000 255 SHR3: 00011111


Бита данннх

i \ % \......! i i i

i 2 i а, i i i i i i i а. i i> и i 1

! ! gE ! ! ! ! ! ! ! ?Е ! о g ! !

Режим icixtdi i 1 1 1 icj\diQ-Ei<°i Режим ожидания о.] 1 1 1 1 1 1 ] icojigi ожидания

g е ! ! ! ! ! ! ! ! ! е , g е ;

j О ю 1 1 1 1 ilUIiGo

2,5 5В 1 бит 06ит 1,бит 26ит 3i6um 41 бит 56ит 66ит 7i i i

0 0,8B

1

о ! о

1 j 1

о ! о

1

0

-*l tt K- j !

(Скорость 9600 бад, 8 бит данных, режим проберки на четность; 1 стапо&ый бит)

Рис. 1.6. Формат последовательных данных, формируемых UART

1.2. Последовательный интерфейс RS232

Последовательный интерфейс RS232 - это промышленный стандарт для последовательной двунаправленной асинхронной передачи данных. Он используется в компьютерах при подсоединении принтеров, модемов, мыши и т.д. Максимальное расстояние, позволяющее организовать связь, равно 20 м.

В отличие от параллельного порта, состоящего из восьми информационных линий и за один такт передающего байт, порт RS232 требует наличия только одной такой линии, по которой последовательно передается бит за битом. Это позволяет сократить количество информационных линий для передачи данных между устройствами, но уменьшает скорость.

1.2.1. Последовательная передача данных

Последовательный поток данных состоит из битов синхронизации и собственно битов данных. Формат последовательных данных содержит четыре части: стартовый бит, биты данных (5-8 бит), проверочный и стоповый биты; вся эта конструкция иногда называется символом. На рис. 1.6 изображен типичный формат последовательных данных.

Когда данные не передаются, на линии устанавливается уровень логической единицы. Это называется режимом ожидания. Начало режима передачи данных характеризуется передачей уровня логического нуля длительностью в одну элементарную посылку. Такой бит называется стартовым. Биты данных посылаются последовательно, причем младший бит - первым; всего их может быть от пяти


до восьми. За битами данных следует проверочный бит, предназначенный для обнаружения ошибок, которые возникают во время обмена данными. Последней передается стоповая посылка, информирующая об окончании символа. Стоповый бит передается уровнем логической единицы. Длительность стоповой посылки -1, 1,5 или 2 бита. Специально разработанное электронное устройство, генерирующее и принимающее последовательные данные, называется универсальным асинхронным приемопередатчиком (Universal Asynchronous Receiver Transmitter, UART).

Обмен информацией с помощью микросхем UART происходит следующим образом. Приемник обнаруживает первый фронт стартового бита и выжидает один или полтора тактовых интервала, поскольку считывание должно начаться точно в середине первой посылки. Через один тактовый интервал считывается второй бит данных, причем это происходит точно в середине второй посылки. После окончания информационного обмена приемник считывает проверочный бит для обнаружения ошибок и стоповый бит, а затем переходит в режим ожидания следующей порции данных.

Скорость передачи информации в последовательном интерфейсе измеряется в бодах (бод - количество передаваемых битов за 1 с). Стандартные скорости равны 110, 150, 300, 600, 1200, 2400, 4800, 9600 и 19200 бод. Зная скорость в бодах, можно вычислить число передаваемых символов в секунду. Например, если имеется восемь бит данных без проверки на четность и один стоповый бит, то общая длина последовательности, включая стартовый бит, равна 10. Скорость передачи символов соответствует скорости в бодах, деленной на 10. Таким образом, при скорости 9600 бод (см. рис. 1.6) будет передаваться 960 символов в секунду.

Проверочный бит предназначен для обнаружения ошибок в передаваемых битах данных. Когда он присутствует, осуществляется проверка на четность или нечетность. Если интерфейс настроен на проверку по четности, такой бит будет выставляться в единицу при нечетном количестве единиц в битах данных, и наоборот. Это простейший способ проверки на наличие одиночных ошибок в передаваемом блоке данных. Однако, если во время передачи искажению подверглись несколько битов, подобная ошибка не обнаруживается. Проверочный бит генерируется передающим UART таким образом, чтобы общее количество единиц было нечетным или четным числом в зависимости от настройки интерфейса; приемное устройство должно иметь такую же настройку. Приемный UART считает количество единиц в принятых данных. Если данные не проходят проверку, генерируется сигнал ошибки.

Большинство компьютеров, совместимых с IBM PC, использует UART 16450, с IBM PC XT - UART 8250. В UART применяются уровни напряжения ТТЛ. Для передачи данных по каналу связи напряжение с помощью специализированных преобразователей конвертируется с инверсией: логическому нулю соответствует диапазон напряжений от +3 до +12 В, логической единице - от -3 до -12 В.



0 ... 5 6 7 8 9 10 11 ... 105