Описание UART, реализованного на модуле таймера Timer_A микроконтроллера MSP430x11x (1)

Как показано в рисунке 1, MSP430F1121ведет последовательный обмен дан­ными с другой системой, в нашем случае с ПК, по RS232 интерфейсу. Обмен данны­ми между системами ведется по трехпроводному кабелю, который содержит линии: передачи, приема и общую. При этом используется протокол 8N1: каждое сообще­ние содержит 8 информационных бит, не содержит бита проверки на четность и заканчивается одним стоп-битом. Для поддержки других протоколов нужно внести небольшие изменения в функционал UART. Описываемый UART использует нуле­вой регистр захвата-сравнения (CCR0), один из трех доступных, и таймер timer_A3. CCR0 используется для обнаружения старт-бита, задания скорости обмена данными и захвата данных. Два незадействованных регистра захвата-сравнения могут ис­пользоваться для других задач. Регистр CCR0 был выбран совершенно произволь­но. Для реализации UART могут быть выбраны любые регистры CCRx. При помощи функции выбора периферийных задач линии Р1.1 и Р2.2 портов общего назначе­ния подключены к CCRO timer_A3. Линия Р1.1 выбрана для передачи информации, а Р2.2 - для приема. Периферийные задачи для выводов назначены при помощи регистров P1SEL и P2SEL Поскольку вывод Р1.1 используется для передачи, то он должен быть настроен на работу в качестве выхода. Осуществляется это установкой соответствующего бита регистра установка направленности линий портов (P1DIR). Р2.2 должен работать как вход. По умолчанию у микроконтроллеров семейства MSP430 все выводы настроены на работу в режиме входа. Timer_A3 настроен на работу в непрерывном режиме, что позволяет использовать его одновременно и для других функций. Регистр R4 используется в качестве буфера приемопередатчика (RXTXData). Регистр R5 (BitCnt) используется в качестве регистра подстройки смеще­ния. Регистры R4 и R5 были выбраны произвольно. Для выполнения этих функций могут быть использованы любые регистры вычислительного ядра или ячейки ОЗУ.

В режиме приема нулевой управляющий регистр захвата-сравнения (CCTLO) сначала устанавливает модуль CCR0 в режим захвата данных по спадающему фрон­ту сигнала на входе Р2.2. Спадающий фронт на этом входе указывает на начала старт-бита. После того, как UART установлен в режим приема данных, от вычисли­тельного ядра не требуется никаких ресурсов для обеспечения готовности принятия кодового слова. Ресурсы вычислительного ядра будут востребованы только после