11.6. В беспроводной системе сбора данных с низким потреблением перевод микроконтроллера в «спящий» режим не влияет на потребление радиопередатчика. Было предложено использовать для питания передатчика один из выводов порта. Таким образом, можно будет включать и выключать вспомогательные узлы по мере необходимости. Подумайте над этим.
11.7. Зависимость выходного напряжения лог. 0
Рис. 11.17.
Глава 12
Ох уж эти биты!
Параллельная передача данных может осуществляться с высокой скоростью и требует минимальных программных затрат для реализации. Однако имеется множество приложений, в которых параллельная передача данных неприменима либо из-за удорожания аппаратной части (см., например, Рис. 11.12 на стр. 350), либо, что встречается гораздо чаще, по причине значительного удаления узлов друг от друга. В последнем случае организация множества коммуникационных каналов вместе с соответствующим интерфейсным оборудованием невозможна в принципе или же требует неоправданных затрат. В таких случаях на помощь может прийти последовательная передача данных, при которой данные пересылаются побитно (по одному биту за раз) и объединяются в приемном устройстве в исходные байты. Здесь можно провести сравнение с параллельным портом персонального компьютера, обычно используемого для подключения локальных периферийных устройств (например, принтера), и последовательным или USB-портом, которые часто используются совместно с модемом для выхода через телефонную линию в сеть Интернет.
В данной главе мы познакомимся с различными средствами, использующимися для последовательной передачи данных (в основе всех этих средств лежат специализированные сдвиговые регистры), а также с серийно выпускаемыми микросхемами, поддерживающими стандартные протоколы обмена. После прочтения этой главы вы:
• Осознаете необходимость в последовательной передаче данных.
• Сможете разрабатывать последовательные порты и сопутствующее программное обеспечение для обмена со стандартными параллельными периферийными устройствами.
• Научитесь работать с последовательными периферийными устройствами, поддерживающими протоколы SPI™ и I2С.
• Поймете необходимость асинхронной последовательной передачи данных и сможете писать программные драйверы, поддерживающие этот протокол.
• Научитесь использовать интегрированный модуль универсального синхронно-асинхронного приемопередатчика (USART) в асинхронном режиме.
• Поймете причины, по которым возникает необходимость буферизации в устройствах, передающих данные на большие расстояния.
В качестве примера последовательной передачи данных рассмотрим
Стандартная цоколевка такого микроконтроллера показана на Рис. 12.1. Как видно из рисунка, два контакта используются для подачи напряжения питания, еще два контакта предназначены для подачи тактового сигнала и сигнала сброса, и всего лишь один контакт используется для побитовой передачи данных в обоих направлениях. Несмотря на то что такой обмен происходит достаточно медленно, на фоне скорости системы «человек — машина» он незаметен. Кроме того, связь между считывателем/банкоматом и центральным компьютером, который может быть расположен на расстоянии нескольких тысяч миль/километров, обычно осуществляется по одной телефонной линии.
Рис. 12.1.
Вернемся к схеме параллельного интерфейса с 3-разрядным 7-сегментным дисплеем, приведенной на Рис. 11.15 (стр. 361), в которой используются оба параллельных порта А и В. Хотя это вполне рабочая схема, в ней задействована большая часть выводов 18-выводных микроконтроллеров. Поскольку в данном случае скорость не очень критична, можно использовать более медленный способ передачи данных.