Последовательный порт

Последовательный порт в процессорной системе включает UART, который соединен с соответствующей микросхемой RS232 на плате. Этот UART конфигурируется для передачи восьми битов данных, одного стопового бита, бита нечетности. Он работает со скоростью 115200 бит в секунду. Программный интерфейс последовательного порта состоит из двух 32-битных регистров, показанных на рис. 3.11. Регистр, доступный по адресу 0x10001010, является регистром данных. Регистр, доступный по адресу 0x10001014, является регистром управления.

Рис. 3.11 – Регистры UART последовательного порта

Когда символьные данные пересылаются в процессорную систему через разъем RS232, они сохраняются в 128-символьном буфере FIFO. Как показано на рис. 3.11, число символов RAVAIL, хранимых в текущий момент времени в этом FIFO, представлено в битах 31-16 регистра данных. Если буфер FIFO получаемых данных полный, то дополнительные данные, переданные в процессорную систему, будут потеряны. Когда данные присутствуют в буфере FIFO получаемых данных, то величина бита 15 регистра данных (RVALID) будет равна 1.

Чтобы осуществить чтение символа из вершины буфера FIFO, необходимо прочитать содержимое регистра данных порта UART. При этом младшие разряды 7-0 регистра данных будут содержать вводимый символ. Поле RAVAIL при выполнении чтения автоматически уменьшится на единицу, и это уменьшенное значение как раз и будет получено в результате чтения. Если данных в принимаемом буфере FIFO нет, то поле RVALID будет содержать нулевое значение, и результат чтения из разрядов 7-0 регистра данных UART будет не определен.

Последовательный порт так же включает 128-символьный буфер FIFO, который хранит данные, ожидающие отправки в RS232. Символьные данные загружаются в этот буфер посредством записи в биты 7-0 регистра данных. Запись в регистр данных не оказывает никакого влияния на получаемые данные. Размер доступного пространства в текущий момент времени в заполняемом буфере FIFO указывается в разрядах 31-16 регистра управления. Это поле WSPACE (см. рис. 3.11). Если буфер FIFO заполнен, то все данные, в последующем записываемые в регистр данных, будут потеряны.

Биты регистра управления RE, WE, WI, RI обсуждаются в разделе 3.3.3.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: