Раздел: Документация
0 1 2 3 ... 55 А.Ю. Кузьминов Последовательный интерфейс RS232, разработанный более 25 лет назад для компьютеров (в основном для их связи с модемами) д° сИХ П0Р не утРатил св°его коммуникационного назначения. Лаже сейчас, в связи с появлением множества других последовательных интерфейсов, обладающих несомненными преимуществами перед этим интерфейсом (например, интерфейсов USB, RS485, RS422, применяемых в компьютерах, и PC, CAN, SPI, применяемых в микроконтроллерах), интерфейс RS232, похоже, не скоро уйдет в разряд "отставников". Такое положение, на первый взгляд, может показаться странным, особенно из-за недостатков RS232, "глюков" и т.п. Однако следует учесть, что это едва ли не единственное средство связи между компьютером и микроконтроллером, аппаратно присутствующее и в первом и во втором. Во всяком случае, косвенным подтверждением исключительности интерфейса RS232 может служить тот факт, что в современных персональных компьютерах RS232 интегрирован в материнскую плату. Что касается микроконтроллеров, то сейчас трудно найти такой микроконтроллер, в котором бы аппаратно не присутствовал хотя бы один интерфейс RS232 (иногда их бывает и два). В дальнейшем под словом "микроконтроллер" будем подразумевать 51-совместимый микроконтроллер. Единственный, правда, на наш взгляд, достаточно слабый довод в пользу 51-совме-стимых микроконтроллеров состоит в том, что они в настоящее время стали де-факто "промышленным стандартом". В книге собраны многочисленные примеры применения автором интерфейса RS232 как в компьютере, так и в микроконтроллере. Приводятся схемные решения аппаратных средств и программное обеспечение для них. Автор не претендует на полноту охвата темы, однако многочисленные особенности работы с интерфейсом RS232, приведенные в книге, помогут разработчикам компьютерных и автономных систем (на базе микроконтроллеров) сбора и обработки информации, поступающей с различного рода датчиков, избежать многих ошибок и неясностей. Книга может быть также полезна студентам вузов компьютерного профиля. С вопросами и предложениями читатели могут обращаться либо по адресу электронной почты автора compmicrosvs(a),mail ,ru. либо в издательство. 1. Интерфейс RS232 в компьютере 1.1. Электрические характеристики сигналов на линиях RS232 в компьютере Интерфейс RS232 является последовательным. Это означает, что данные (информация) передаются последовательно, бит за битом по одному проводу (в отличие от параллельного интерфейса, в котором, например, каждый бит байта передается по отдельному проводу, т.е. байт передается по восьми проводам). Формат посылки — I байт данных и несколько управляющих бит, некоторые из которых могут отсутствовать. Обмен информацией между компьютером и периферийным устройством по интерфейсу RS232 двусторонний, т.е. данные могут передаваться компьютером в периферийное устройство и приниматься компьютером от периферийного устройства. В компьютере предусмотрен специальный разъем, называемый коммуникационным (СОМ); иногда их бывает два (СОМ1 и COM2) или более. К разъему подключается кабель, соединяющий компьютер с периферийным устройством. В кабеле находятся несколько проводов, которые называют линиями интерфейса. Термин "линия" достаточно условен, так как английское слово line, которому он соответствует, имеет более широкое значение. На рис.1.1 показан формат данных, посылаемых по линии данных TxD интерфейса RS232. Как следует из рисунка, передача начинается с так называемого старт-бита, затем идут биты данных (их может быть от пяти до восьми), далее следует бит паритета или четности (который может отсутствовать) и затем следуют стоп-биты (их может быть либо один, либо два). На практике используют 8 бит данных; бит паритета (на рис.1.1 не показан), как правило, не используется; при максимально высокой скорости передачи желательно передавать два стоп-бита. и, в +12 +10 +3 0 -3 Стоп-бнт 1 Стоп-6нт2 -10 -12 Рис.1.1. Формат байта данных и уровни напряжений в интерфейсе RS232 Состояние линии RS232 при отсутствии передачи называется Mark (отметка), состояние линии при начале передачи (старт-бит) Space (пробел). Низкий уровень напряжения относительно "земли" на линии в состоянии Mark соответствует от -3 до -15 В, высокий уровень напряжения линии в состоянии Space - от +3 до +15 В. В интервале -3...+3 В состояние линии не определено. На практике в подавляющем большинстве случаев высокий уровень напряжения составляет около +10 В, низкий - около -10 В. В редких случаях напряжения могут быть снижены соответственно до +5 и -5 В. Это бывает, когда от интерфейса не требуется особенно высокая скорость передачи, а устройство, обменивающееся информацией с компьютером по RS232, имеет батарейное питание (как правило, литиевую батарейку напряжением около 3 В) и критично к расходу энергии. Условимся называть логическим нулем (лог. 0) низкий уровень напряжения на линии в состоянии Mark (-10 В) и логической единицей (лог.1) - высокий уровень на линии в состоянии Space (+10 В). Как будет видно из дальнейшего изложения, эта условность оправдана несколькими причинами. Во-первых, стандартный высокий TTL-уровень (см. далее), т.е. лог.1, соответствует +5 В, низкий, т.е. лог. 0, - 0 В. Аналогия по уровням напряжения очевидна. Во-вторых, при подаче высокого TTL-уровня (лог.1) на вход передатчика RS232 (гл. 3) на его выходе получаем низкий уровень напряжения (лог. 0). По этой причине очень часто состояние Mark называют логической единицей, что приводит к путанице. И, наконец, в-третьих, при программировании интерфейса RS232 в компьютере, в частности для установки, например, на линии DTR высокого уровня напряжения, необходимо установить бит, управляющий линией DTR, в 1 (out 3fch,l - п. 1.3.2). Помимо уровней напряжений линии интерфейса RS232 характеризуются также скоростью изменений состояний из логической единицы в логический нуль и обратно, т.е. длительностью фронта и длительностью спада сигнала. Эти длительности тесно связаны со скоростью обмена, которая измеряется в битах в секунду (или в бодах). Максимально возможная скорость обмена по RS232 составляет 115200 бод (для компьютера). Если используется посылка из 8 бит данных без контроля по паритету и с одним стоп-битом, то вместе со старт-битом такая посылка будет состоять из 10 бит. Нетрудно подсчитать, что в этом случае время передачи каждого бита будет равно около 8,68 мкс. Обычно производители микросхем - преобразователей уровней RS232 оговаривают либо скорость обмена конкретного преобразователя, либо скорость изменения сигналов из логической единицы в логический нуль и обратно. (Мы еще вернемся к этому вопросу при обсуждении 5 0 1 2 3 ... 55
|