1000 вопросов и ответов по сетевым интерфейсам и протоколам
Добавлено: 07 янв 2013, 07:43
1) Что это за настройки "количество бит, четность, количество стоповых бит" и как их настраивать?
Эти настройки связаны с универсальным асинхронным приемопередатчиком (UART). Универсальный приемопередатчик - это микросхемное решение, предназначенное для приема (receive) и отправки (transmit) 7- или 8-битных данных (попадаются также приемопередатчики, которые могут работать с 5-, 6-, 7-, 8- и 9-битными данными). Единого стандарта на контроллер связи UART нет, однако описание работы имеется в некоторых стандартах, например, RS232.
Универсальный асинхронный приемопередатчик берет всю работу с каналом связи на себя, он определяет начало посылки, принимает данные по одному биту от устройства в сети, кладет полученные 7 или 8 бит в регистр приема, а также отправляет такие же 7 или 8 бит из регистра отправки.
1. Принято считать, что уровень напряжения логической единицы в сети перед началом приема и передачи данных означает молчание.
2. Начало передачи порции данных сигнализируется подачей напряжения логического нуля (стартовый бит).
3. После стартового бита последовательно передаются биты из регистра отправки.
4. Передается бит четности, если контроль четности включен (EVEN, ODD). При отключенном контроле четности (NONE) этот бит не передается. В отправленных полезных данных подсчитывается количество логических единиц, в зависимости от четности или нечетности этого количества и настроек EVEN (чет) или ODD (нечет) передается логический нуль или единица. Этот бит позволяет контролировать целостность передачи данных.
5. Стоповых битов один или два, они соответствуют уровню логической единицы.
После того, как прием данных закончился, приемопередатчик формирует в специальном регистре флаги ошибок и т.д. Ошибка приема данных возникает при несоответствии бита четности и отсутствии стопового бита. Более тщательный контроль целостности данных осуществляет уже не микросхема UART, а система более высокого уровня, которая принимает от приемопередатчика полезные данные и формирует многобайтные телеграммы. Такой системой может быть операционная система или, например, программное обеспечение протокола Modbus.
Физический уровень канала связи приемопередатчика (уровни напряжений, количество подключаемых проводов, разъем и т.д.) может быть различным. В частности, канал связи может быть симплексным, полудуплексным или дуплексным.
Асинхронность приемопередатчика и заключается в том, что он работает не по тактовым (синхронизирующим) импульсам, а по стартовому и стоповым битам. Благодаря современной схемотехнике, основанной на кварцевых генераторах, приемопередатчики от различных производителей хорошо синхронизируются. Длительность посылки одного бита определяется настройкой битрейта приемопередатчика. Существует общепринятый ряд стандартных скоростей: 300 бит/с, 600 бит/с, 1200 бит/с, 2400 бит/с, 4800 бит/с, 9600 бит/с, 19200 бит/с, 38400 бит/с, 57600 бит/с, 115200 бит/с, 230400 бит/с, 460800 бит/с, 921600 бит/с.
Таким образом приемопередатчик UART избавляет систему более высокого уровня от проблем синхронизации с устройствами в сети и предоставляет регистр приема и регистр отправки, из которых можно считывать и куда можно записывать полезные данные. Кроме того, приемопередатчик можно настроить. Наиболее типовая настройка: битрейт 9600 бит/с, контроль четности отключен (NONE), стоповый бит один. Хотя все зависит от индивидуальных требований обмена данными и возможностей сетевых устройств.
P.S. Интересные факты:
1. Микросхема UART обеспечивает работу COM-порта (интерфейса RS232) в обычных персональных компьютерах.
2. Некоторые приемопередатчики имеют функцию автоопределения скорости передачи данных. Для такого устройства необязательно выбирать битрейт, достаточно выбрать настройку "Auto-detect". При первом включении устройство находится в неопределенности, какой битрейт установлен для сети. Когда первое устройство в сети "заговорит", включается автоопределение битрейта и выбирается та скорость, при которой "язык общения" адекватен и не формируются ошибки, то есть фронты и спады сетевого сигнала синхронизированы, а биты четности и стоповые биты соответствуют правильной посылке.
Эти настройки связаны с универсальным асинхронным приемопередатчиком (UART). Универсальный приемопередатчик - это микросхемное решение, предназначенное для приема (receive) и отправки (transmit) 7- или 8-битных данных (попадаются также приемопередатчики, которые могут работать с 5-, 6-, 7-, 8- и 9-битными данными). Единого стандарта на контроллер связи UART нет, однако описание работы имеется в некоторых стандартах, например, RS232.
Универсальный асинхронный приемопередатчик берет всю работу с каналом связи на себя, он определяет начало посылки, принимает данные по одному биту от устройства в сети, кладет полученные 7 или 8 бит в регистр приема, а также отправляет такие же 7 или 8 бит из регистра отправки.
1. Принято считать, что уровень напряжения логической единицы в сети перед началом приема и передачи данных означает молчание.
2. Начало передачи порции данных сигнализируется подачей напряжения логического нуля (стартовый бит).
3. После стартового бита последовательно передаются биты из регистра отправки.
4. Передается бит четности, если контроль четности включен (EVEN, ODD). При отключенном контроле четности (NONE) этот бит не передается. В отправленных полезных данных подсчитывается количество логических единиц, в зависимости от четности или нечетности этого количества и настроек EVEN (чет) или ODD (нечет) передается логический нуль или единица. Этот бит позволяет контролировать целостность передачи данных.
5. Стоповых битов один или два, они соответствуют уровню логической единицы.
После того, как прием данных закончился, приемопередатчик формирует в специальном регистре флаги ошибок и т.д. Ошибка приема данных возникает при несоответствии бита четности и отсутствии стопового бита. Более тщательный контроль целостности данных осуществляет уже не микросхема UART, а система более высокого уровня, которая принимает от приемопередатчика полезные данные и формирует многобайтные телеграммы. Такой системой может быть операционная система или, например, программное обеспечение протокола Modbus.
Физический уровень канала связи приемопередатчика (уровни напряжений, количество подключаемых проводов, разъем и т.д.) может быть различным. В частности, канал связи может быть симплексным, полудуплексным или дуплексным.
Асинхронность приемопередатчика и заключается в том, что он работает не по тактовым (синхронизирующим) импульсам, а по стартовому и стоповым битам. Благодаря современной схемотехнике, основанной на кварцевых генераторах, приемопередатчики от различных производителей хорошо синхронизируются. Длительность посылки одного бита определяется настройкой битрейта приемопередатчика. Существует общепринятый ряд стандартных скоростей: 300 бит/с, 600 бит/с, 1200 бит/с, 2400 бит/с, 4800 бит/с, 9600 бит/с, 19200 бит/с, 38400 бит/с, 57600 бит/с, 115200 бит/с, 230400 бит/с, 460800 бит/с, 921600 бит/с.
Таким образом приемопередатчик UART избавляет систему более высокого уровня от проблем синхронизации с устройствами в сети и предоставляет регистр приема и регистр отправки, из которых можно считывать и куда можно записывать полезные данные. Кроме того, приемопередатчик можно настроить. Наиболее типовая настройка: битрейт 9600 бит/с, контроль четности отключен (NONE), стоповый бит один. Хотя все зависит от индивидуальных требований обмена данными и возможностей сетевых устройств.
P.S. Интересные факты:
1. Микросхема UART обеспечивает работу COM-порта (интерфейса RS232) в обычных персональных компьютерах.
2. Некоторые приемопередатчики имеют функцию автоопределения скорости передачи данных. Для такого устройства необязательно выбирать битрейт, достаточно выбрать настройку "Auto-detect". При первом включении устройство находится в неопределенности, какой битрейт установлен для сети. Когда первое устройство в сети "заговорит", включается автоопределение битрейта и выбирается та скорость, при которой "язык общения" адекватен и не формируются ошибки, то есть фронты и спады сетевого сигнала синхронизированы, а биты четности и стоповые биты соответствуют правильной посылке.