Ревич, Ю.В. Программирование микроконтроллеров 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 . Если в определенные моменты времени считывать состояние линии, то можно вос становить то, что было послано.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==