2013-08-27 2 views
3

У меня есть вопрос относительно контроллера UART.Контроллер UART или контроллер RS232? Является ли UART общим словом?

Контроллер UART - общее название?

Я имею в виду, что если мы используем протокол RS-232, мы должны назвать этот контроллер UART, контроллер RS-232, и если мы будем использовать RS-485 в качестве протокола, мы должны назвать этот контроллер UART, контроллером RS-485 и так на?

Я заметил, что обычно говорят о сетевом контроллере (протоколы: Ethernet, Token Ring, ATM, ..), и, если протокол реализован, например, Ethernet, мы говорим о контроллере Ethernet. Правильно ли это сравнение между контроллером UART и контроллером сети, что оба они являются общими именами?

Большое спасибо за ваши разъяснения

+2

Это, похоже, не имеет ничего общего с программированием. –

+0

RS-232 и 458 являются * электрическими * стандартами, они предписывают автобус. UART - это * универсальные * устройства, которые работают со многими из этих типов автобусов, они просто знают, как обрабатывать асинхронные данные. Приемопередатчик шины представляет собой отдельный чип. Используйте electronics.stackexchange.com, чтобы задать такие вопросы. –

+0

@ HansPassant - Это не автобусы, а просто ссылки для связи. USB - это шина, как и PCI, которая связывает устройства с хостом с контролем, данными и мощностью. Коммуникационная связь EIA/RS-232 не соответствует этому уровню сложности. – sawdust

ответ

1

УАПП (передатчик-приемника универсальных асинхронным) является/был чип участвует в перемещении между параллельным сигналом шины и последовательным сигналом. Во-первых, я регулярно использовал AFAIR 8250. В наши дни RS232 используется меньше и очень часто эмулируется через USB, Bluetooth и другие соединения, поэтому физический UART больше не может присутствовать. Правильно, вы должны указать протокол, уровни напряжения и разъемы, если это применимо.

+0

Большое спасибо за ваши ответы. Я ** не ** говорю о ** синхронизациях и спецификациях сигналов ** этих двух (сетевых контроллеров и UART) протоколов ** ни ** об их ** протоколе доступа ** сам по себе, так как они являются разными протоколами. оба они являются общими словами и в отношении того, какой коммуникационный протокол реализован, принимают ли они эти конкретные имена как контроллер Ethernet или контроллер RS-232? спасибо – Michelle

+0

@MikeW или, может быть, мы классифицируем контроллеры (интерфейс) по их использованию, например сетевому контроллеру или параллельному/последовательному контроллеру? – Michelle

1

UART: универсальный асинхронный приемник/передатчик и его сестра-устройство USART (синхронный/асинхронный). Эти устройства были или были обычным явлением на ранних ПК и использовались для множества вещей. В первую очередь они использовались для коммуникаций RS-232, но они были достаточно гибкими, чтобы использоваться для RS-485 и других систем в зависимости от того, как они были запрограммированы. Я не видел один на протяжении десятилетий, потому что они были заменены устройствами USB, или их функции теперь реализованы в программном обеспечении.

Что касается вашего вопроса: обратитесь к нему по имени, которое наиболее точно соответствует его функциям.

8

Библиография:

  • RS-232 vs. TTL Serial Communication - SparkFun Electronics
  • связь - USART, UART, RS232, USB, SPI, I2C, TTL и т.д., что все из них и как они соотносятся друг с другом ? - электротехнический Стек Обмен http://goo.gl/0q6sIV
  • Конфигурация оборудования
  • последовательного программирования/Типового RS232 - Викиучебник, открытые книги для открытого мира http://goo.gl/uTknU6

Последовательного является зонтичным слово все, что «Time Division Multiplexed», чтобы используйте дорогостоящий термин. Это означает, что данные передаются с течением времени, чаще всего один бит за другим. Все протоколы, которые вы называете, - это последовательные протоколы.

UART, для универсального асинхронного приемника, является одним из наиболее часто используемых серийных протоколов. Он почти такой же старый, как и я, и очень прост. Большинство контроллеров имеют аппаратное UART на борту. Он использует одну линию передачи данных для передачи и одну для приема данных. Чаще всего передаются 8-битные данные: 1 стартовый бит, низкий уровень, 8 бит данных, 1 стоповый бит, высокий уровень. Начальный бит низкого уровня и бит остановки высокого уровня означают, что для начала связи всегда происходит переход от высокого к низкому. Вот что описывает UART. Нет уровня напряжения, поэтому вы можете использовать его на 3,3 В или 5 В, в зависимости от того, какой микроконтроллер использует.Обратите внимание, что микроконтроллеры, которые хотят связываться через UART, должны согласовать скорость передачи, скорость передачи по битам, поскольку они имеют только начальный бит начального бита для синхронизации. Это называется асинхронной связью.

Для связи на дальние расстояния (а это не должно быть сотни метров) 5-вольтовый UART не очень надежный, поэтому он преобразуется в более высокое напряжение, обычно +12 В для «0», и -12 В для «1». Формат данных остается прежним. Тогда у вас есть RS-232 (который вы на самом деле следует назвать EIA-232, но никто не делает.)

Важная: RS-232 против TTL Последовательная связь - SparkFun Electronics http://goo.gl/0IFYTl

В зависимость от времени является одним из больших недостатков UART, а решение - USART, для универсального синхронного/асинхронного приемного передатчика. Это может сделать UART, но также и синхронный протокол. В синхронном режиме есть не только данные, но и переданные часы. С каждым битом импульс синхронизации сообщает приемнику, что он должен защелкнуть этот бит. Синхронные протоколы либо требуют более высокой пропускной способности, как в случае манчестерского кодирования, либо дополнительный провод для часов, таких как SPI и I2C.

последовательного программирования/Типовая конфигурация RS-232 Оборудование - Викиучебники, открытые книги для открытого мира http://goo.gl/uTknU6

RS232  +-----------+ +-----------+ +-----------+ +-----------+ 
Interface | Line  | |   | | Interface | |   | 
-----------+ Driver/+---+ UART +---+ Logic  +---+ CPU | 
      | Receiver | |   | |   | |   | 
      +-----------+ +-----+-----+ +-----+-----+ +-----------+ 
           |    | 
           |    | 
          +-----+-----+   | 
          | Baud Rate |   | 
          | Generator +---------+ 
          |   | 
          +-----------+ 

УАПП (универсальный асинхронный приемопередатчик) является сердцем серийного аппаратного обеспечения , Это чип или часть чипа с целью преобразования между параллельными данными и последовательными данными. RS-232 UART также обычно добавляют необходимые бит запуска/остановки и четности при передаче и декодируют эту информацию при приеме.

UART обычно полностью работает с компьютерным логическим напряжением. Его последовательное входное/выходное напряжение - это логическое напряжение компьютера, а не последовательное линейное напряжение. Они оставляют фактический интерфейс линии конкретному драйверу/приемнику линии. Этот драйвер/приемник линии не обязательно должен быть драйвером/приемником линии RS-232, но может, например, также является дифференциальным драйвером/приемником RS-422. Это и тот факт, что скорость передачи, четность, количество стоповых бит, количество бит данных программируемы, являются причиной того, что UART называются универсальными. Различие между UART и драйвером/приемником линии размывается, если они оба помещены в один и тот же чип. Такие чипы обычно также продаются под этикеткой «UART».

UARTs называются асинхронными, поскольку они не используют специальный синхронизирующий сигнал для синхронизации с удаленной стороной. Вместо этого они используют биты start/stop для идентификации битов данных в последовательном потоке.

Благодаря UART остальная часть аппаратного обеспечения, а также программное обеспечение может обрабатывать обычные байты для хранения данных связи. Задача UART состоит в том, чтобы побить байт в серию последовательных бит при отправке и собрать последовательность бит в байте при получении. UART обычно содержат приемники с восемью битами и буферы передачи. Из которых не все биты могут использоваться, например, используется 7-битная передача. Полученные последовательные данные предоставляются параллельно в буфере приемника, данные отправки должны записываться параллельно буфере передачи. В зависимости от UART буферы могут иметь только глубину одного байта или несколько байтов (в диапазоне 15 или 16 байт). Чем менее глубокие буферы, тем точнее должно быть общение с ЦП. Например.если буфер приемника имеет только глубину в 1 байт, и данные не получены достаточно быстро, следующие принятые данные могут перезаписать ранее полученные данные в буфере, а ранее полученные данные будут потеряны.

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

SPI (последовательный периферийный интерфейс) является еще одним очень простым последовательным протоколом. Ведущий посылает тактовый сигнал, и каждый импульс синхронизации переключает один бит на подчиненный и один бит в, поступающий от подчиненного устройства. Поэтому имена сигналов SCK для часов, MOSI для Master Out Slave In и MISO для Master In Slave Out. Используя сигналы SS (Slave Select), ведущий может управлять более чем одним ведомым устройством на шине. Существует два способа подключения нескольких подчиненных устройств к одному ведущему, один из которых упоминается выше, то есть с использованием выбора подчиненного устройства, а другой - последовательное соединение, он использует меньше аппаратных выводов (выбирает строки), но программное обеспечение становится сложным.

I2C (Inter-Integrated Circuit, произносится как «Я квадрат C») также является синхронным протоколом, и это первое, что мы видим, в котором есть «интеллект»; другие тупо смещали биты внутрь и снаружи, и это было так. I2C использует только 2 провода, один для часов (SCL) и один для данных (SDA). Это означает, что ведущий и ведомый посылают данные по одному и тому же проводу, снова управляемые мастером, который создает тактовый сигнал. I2C не использует отдельные подчиненные выборки для выбора конкретного устройства, но имеет адресацию. Первый байт, отправленный мастером, содержит 7-битный адрес (так что вы можете использовать 127 устройств на шине) и бит чтения/записи, указывающий, будет ли следующий байт (ы) также поступать от ведущего устройства, из раб. После того, как каждый байтовый приемник должен отправить «0», чтобы подтвердить прием байта, который мастер фиксирует с 9-м тактовым импульсом. Если мастер хочет записать байт, тот же процесс повторяется: мастер кладет бит после бит на шину и каждый раз дает импульс синхронизации, чтобы сигнализировать, что данные готовы к чтению. Если мастер хочет получать данные, он генерирует только тактовые импульсы. Ведомое устройство должно следить за тем, чтобы следующий бит был готов, когда задан импульс синхронизации. Этот протокол запатентован NXP (ранее Phillips), чтобы сохранить стоимость лицензирования Atmel, используя слово TWI (двухпроводный интерфейс), который точно так же, как I2C, поэтому любое устройство AVR не будет иметь I2C, но у него будет TWI.

Два или более сигналов на одном и том же проводе могут вызвать конфликты, и у вас возникнет проблема, если одно устройство отправит «1», а другое отправит «0». Поэтому шина подключена к проводной системе OR'd: два резистора вытаскивают шину на высокий уровень, а устройства посылают только низкие уровни. Если они хотят отправить высокий уровень, они просто освобождают автобус.

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


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

+0

Кажется, это просто различие между логическим слоем и физическим. На логическом уровне протокол называется UART, а на физическом уровне мы можем выбрать RS232 для драйвера линии. Почему неправильно говорить «Последовательный TTL»? Каков правильный способ однозначного обозначения протокола UART с использованием уровня напряжения LVTTL/TTL? Должны ли мы говорить только «UART», потому что мы не добавляем «линейный драйвер», поскольку мы подключаемся непосредственно к оригинальным контактам чипа? Но говорить «UART» только двусмысленно, поскольку мы не знаем, пользуемся ли мы линейным драйвером или нет. – Fox

Смежные вопросы