СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №9/2013

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 22 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2013 Современные 32-разрядные ARM-микроконтроллеры серии STM32: универсальный последовательный порт USART В статье приведено описание универсального последовательного порта USART 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics. Рассмотрена архитектура, состав и назначение регистров конфигурирования порта, а также приведены примеры программ инициализации. Олег Вальпа (г. Миасс, Челябинская обл.) В ВЕДЕНИЕ Наряду с портами ввода-вывода GPIO универсальный синхронно-асинхрон- ный последовательный приёмопере- датчик USART (Universal Synchronous Asynchronous Receiver Transmitter) является одним из самых востребован- ных портов для связи любого микро- контроллера с внешними устройства- ми. С помощью порта USART можно легко организовать связь микрокон- троллера с компьютером, провести его программирование, а также свя- зать микроконтроллеры между собой по интерфейсам RS-232, RS-485, RS-422 и т.д. Преимуществами порта USART явля- ются простота в использовании, а так- же, в отличие от интерфейса USB, гиб- кость в настройке и надёжность работы. О ПИСАНИЕ ПОРТОВ USART Микроконтроллеры STM32 [1] име- ют обычно несколько портов USART. Например, STM32F103RBT имеет три последовательных порта, обозначае- мых USART1, USART2 и USART3. Кроме обычного асинхронного режима работы с использованием сиг- налов RXD и TXD, порты USART STM32 поддерживают несколько расширен- ных режимов работы. В отличие от стандартных портов USART они могут: ● работать с однопроводной полуду- плексной линией связи; ● поддерживать интерфейсы Smart- карт стандарта ISO7618-3, LIN (local interconnection network) и IrDA (infrared data association); ● связываться с внешними устройства- ми, оснащёнными SPI-совместимым интерфейсом, по 3-проводной линии. К особенностям порта USART микро- контроллеров STM32 также относится возможность дробного деления такто- вой частоты для формирования задан- ной скорости работы. Благодаря это- му можно получить стандартные ско- рости связи порта при любой частоте тактового сигнала. Кроме того, с помощью блока DMA (Direct Memory Access) для любого пор- та USART может быть организован пря- мой доступ к памяти, как для приёма, так и для передачи данных. Порты USART STM32 способны поддерживать скорость обмена до 4,5 Мбит/с. Формат слова USART может составлять 8 или 9 бит данных и 0,5; 1; 1,5 или 2 стоповых бит. Дробные значе- ния стоповых бит применяются в режи- ме порта Smartcard. Первым передаётся и принимается младший бит данных. Некоторые порты USART STM32 мож- но программно переназначать на дру- гие выводы микроконтроллера. На рисунке 1 приведена структур- ная схема одного порта USART, кото- рая помогает понять изложенное выше описание, а также даёт представление об архитектуре порта USART и соста- ве регистров для его инициализации. Р ЕГИСТРЫ ПОРТОВ USART В микроконтроллерах STM32 для настройки каждого порта USART и работы с ним имеется по 7 регистров: 1. USART_SR – регистр статуса, указы- вающий на состояние порта USART; 2. USART_DR – регистр данных для записи передаваемых и чтения при- нимаемых данных; 3. USART_BRR – регистр, определяю- щий скорость обмена; 4. USART_CR1 – первый управляющий регистр; 5. USART_CR2 – второй управляющий регистр; 6. USART_CR3 – третий управляющий регистр; 7. USART_GTPR – регистр делителя и задержки. Формат регистров с названием вхо- дящих в них разрядов представлен в таблице 1. Передача и приём информации через порт USART производится по кадрам, как показано на рисунке 2. Каждый кадр начинается со стар- тового бита, после которого следует несколько бит информации, бит пари- тета, если он задан, и стоповые биты. Рассмотрим поочерёдно назначение и содержимое разрядов этих регистров. Р ЕГИСТР USART_SR Регистр статуса USART_SR хранит раз- ряды, отображающие текущее состоя- ние порта USART. Разряд 0 PE отображает ошибку пари- тета при приёме байта. Данный разряд устанавливается в единичное состоя- ние при аппаратном выявлении ошиб- ки паритета, т.е. несовпадении числа единиц в принимаемом байте с ожи- даемым чётным или нечётным количе- ством, заданным для контроля. Разряд 1 FE указывает на ошибку кадра при приёме байта. Ошибкой кадра является, например, отсутствие стопового бита или несоответствие их количества заданному при настройке порта значению. Данный разряд также устанавливается аппаратно. Разряд 2 NE фиксирует наличие шума в кадре. Шумом считается изменение состояния линии связи в середине при- ёма очередного бита информации. Разряд 3 ORE отображает ошибку переполнения приёмного буфера. Разряд 4 IDLE фиксирует обнаруже- ние кадра ожидания. Кадром ожидания является отсутствие очередного старто- вого бита после стоповых бит. Следующая группа флагов позволя- ет определить окончание передачи или приёма данных. Разряд 5 RXNE фиксирует приём дан- ных в регистр USART_DR. Разряд 6 TC сигнализирует о завер- шении передачи очередного байта данных, записанных в регистр дан- ных USART_DR. © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy