Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

54 Часть /. Общие принципы устройства и функционирования Atтel АVR флеш-карточек или веб-камер, где решающую роль играет скорость соединения, поэтому там обмен информацией происходит по протоколам, отличным от архаич­ ного СОМ-порта. ПОДРОБНОСТИ Термин USART (Uпiversal Syпchroпous-Asyпchroпous Receiver-Traпsmitter) - следст­ вие в общем-то довольно эклектичной попытки улучшить традиционный UART, как в сто­ рону синхронизации приема-передачи отдельных битов, так и в сторону мультикон­ троллерноrо обмена. Алгоритмы приема-передачи при этом усложняются , простота использования пропадает (появляются всяческие master-slave, занимается дополни­ тельный вывод и т. д . ) , а выигрыш не настолько велик , чтобы сопутствующая возня имела смысл . Возможно, есть какие-то применения , где без дополнительных функций USART не обойтись, но на практике в таких случаях проще использовать специально для того предназначенные интерфейс 12С (lWI ) или куда более скоростной SP I , чем возиться с синхронизацией не приспособленного для этого UART. Именно поэтому далее в этой книге мы станем использовать преимущественно аб­ бревиатуру UART, а USART будет возникать только изредка - как напоминание о том , что некоторые возможности этого последовательного порта при работе в обычном асинхронном режиме расширены по сравнению с каноническим UARТ. Собственно UART позволяет общаться между собой только двум контроллерам с одинаковым питанием 3 ,3 или 5 вольт. Для того чтобы UART превратить в кон­ кретный порт: в СОМ-порт для общения с ПК, в интерфейс RS-485 для промыш­ ленных устройств, наконец, в USB (включая и Serial-пopт Arduino) - нужны спе­ циальные адаптеры. Они давно стандартизированы и выпускаются в больших количествах: и в виде отдельных микросхем, и в виде готовых адаптеров на раз­ личной основе . Самый простой из них - адаптер RS-232, т. к. в обычных примене­ ниях для превращения UART в СОМ-порт достаточно лишь двух линий: приема RxD и передачи TxD- с преобразованием логических уровней . В стандарт RS-232 входит еще много всяких разных линий, необходимых для кор­ ректной организации связи, например, с модемами. В UART дополнительные ли­ нии RS-232 не используются, и при необходимости могут быть организованы с по­ мощью других выводов контроллера. Эти линии иногда выручают, заменяя отсут­ ствующие в разъеме RS-232 контакты питания (в первую очередь отрицательного, необходимого для нормального функционирования RS-232), - во всех компьюте­ рах традиционно имеется линия питания -1 2 В, но на внешние разъемы она не вы­ водится . Именно от этих дополнительных линий когда-то питались компьютерные мыши, подключавшиеся к СОМ-порту. Для нас имеет значение существование в стандарте UART линий RTS и DTR- одна из них посылает сигнал Reset при программировании Arduino по последовательному каналу. Для основных наших нужд эти линии не потребуются, поэтому адаптер нам по.дойдет любой, в том числе и простейший самодельный, но иметь в виду эти нюансы нужно (подробнее о раз­ новидностях адаптеров рассказано в главах 4 и 15). Рассмотрим подробнее, как , собственно, происходит обмен. Идея интерфейса RS-232 заключается в передаче целого байта по одному проводу в виде последова­ тельных импульсов, каждый из которых может находиться в состоянии О или 1 . Если в определенные моменты времени считывать состояние линии, то можно вос­ становить то, что было послано.

RkJQdWJsaXNoZXIy MTExODQxMg==