СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-4
В ВЕДЕНИЕ Асинхронный приёмопередатчик (UART) является распространённым устройством для обмена данными. Одним из самых его известных приме нений является последовательный порт (COM) компьютера, где UART ис пользуется для передачи данных по протоколу RS 232. Важным достоин ством асинхронного приёмопередат чика является простота реализации аппаратного и программного обеспе чения. Недостаток – низкая скорость передачи данных. Несмотря на разви тие и внедрение высокоскоростных интерфейсов, таких как USB и Ether net, протокол передачи данных RS 232 до сих пор очень популярен и востре бован. В данной статье описано построе ние модели UART на языке Verilog для коммуникации с отладочной платой SP605, выполненной на базе ПЛИС Xi linx семейства Spartan 6. Плата имеет ПРОГРАММИРОВАНИЕ 70 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2011 HDL реализация асинхронного приёмопередатчика Алексей Гребенников (г. Актау, Казахстан) В статье описана модель асинхронного приёмопередатчика на языке Verilog для связи с отладочной платой SP605, выполненной на базе ПЛИС Xilinx семейства Spartan 6. встроенный мост USB UART, поэтому подключается к компьютеру через USB порт. Драйвер моста создаёт вир туальный COM порт (VCP), который позволяет использовать для связи с платой стандартные программы, такие как HyperTerminal. С ТАНДАРТ RS 232 Каждый пакет данных в RS 232 пере даётся асинхронно и должен содер жать в себе следующие компоненты: старт бит, биты данных (от 5 до 8), бит чётности и стоп бит. Наиболее распро странённой является схема, изобра жённая на рисунке 1. В этом случае пакет данных состоит из старт бита, восьми бит данных и стоп бита. Бит чётности отсутствует. Как видно из ри сунка 1, в режиме ожидания на линии присутствует лог. 1. Переход линии в лог. 0 воспринимается приёмником как начало пакета данных. В этот мо мент запускается счётчик, который отсчитывает шестнадцать периодов своей частоты и запоминает восьмой отсчёт. Если восьмой отсчёт, т.е. сред ний, равен нулю, значит, получен пра вильный старт бит и начинается при ём остальных битов пакета данных. Частота внутреннего счётчика опреде ляет скорость передачи данных и мо жет варьироваться в широких преде лах. Она должна быть одинаковой для передатчика и приёмника. С ТРУКТУРА UART В данной статье описано построе ние модели UART на языке Verilog. Ис ходные файлы находятся в архиве uart.zip . Файл верхнего уровня при ёмопередатчика – uart_top.v . Симуля ция проекта проводилась при помощи программы ModelSim V6.4a, компиля ция – при помощи пакета программ Plan Ahead V12.3. Файл верхнего уров ня проекта – sopc.v – включает в себя uart_top.v , а также тестовую логику. UART был успешно синтезирован и протестирован для ПЛИС Xilinx XC6SLX45TFGG484 3, которая являет ся частью отладочной платы SP605. Структурная схема UART приведена на рисунке 2. Генератор частоты управ ляется двумя восьмибитными регист рами, доступными для чтения и запи си. Эта пара регистров образует одно 16 битное число и задаёт коэффици ент деления частоты. На выходе гене ратора формируется частота baudout . В цепи передатчика эта частота делит ся на 16, образуя непосредственно час тоту передачи данных. В цепи при ёмника каждый бит разбивается на 16 частей, т.е. используется частота baudout без дальнейшего деления. Среднее значение, восьмая выборка, считается величиной бита. Приёмник и передатчик имеют память FIFO раз мером 512 байт. Классический вари ант UART типа 16550 имеет память FIFO размером 16 байт. Однако в дан ном случае для обеспечения связи на более высоких скоростях, чемпозволя ет 16550, был выбран буфер памяти большего объёма. Это необходимо для совместимости с мостом USB UART CP2103, являющегося частью платы SP605, который поддерживает скорос 1 1 1 1 0 0 0 0 8 бит данных Старт бит Стоп бит Ожидание Рис. 1. Формат пакета данных RS 232 Входные данные Память (FIFO) Сдвиговый регистр Коэффициент деления частоты Генератор частоты Память (FIFO) Сдвиговый регистр Контрольные регистры Выходные данные sout sin Baudout Рис. 2. Структурная схема UART © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy