Упрощенная схема синхронного последовательного порта приведена на рис. 5.20. В состав последовательного порта входит универсальный последовательно-параллельный регистр, подключенный к системной шине. Он обеспечивает преобразования параллельного кода, поступающего с системной шины в последовательный. При обращении центрального процессора к последовательному порту вырабатывается сигнал записи в последовательный порт WR#, который через дешифратор подается на вход параллельной записи V универсального регистра. Этот же сигнал используется в качестве кадрового синхросигнала FS. Тактовый синхросигнал CLK, вырабатываемый отдельным генератором, подается на вход последовательного сдвига С универсального регистра, входящего в состав порта.
Рис. 5.20.
Количество передаваемых в одном кадре битов может меняться от восьми до тридцати двух. В качестве примера использования синхронного последовательного порта на рис. 5.21 приведена схема подключения аналого-цифрового преобразователя AD7890 фирмы Analog Devices к синхронному последовательному порту сигнального процессора ADSP-2101 той же фирмы.
Рис. 5.21.
В синхронном последовательном порте информация передается непрерывно, что, конечно, удобно для устройств с непрерывным потоком информации, как, например, в кодеках речи. Но существуют устройства, к которым необходимо обращаться только периодически, как, например, синтезаторы частоты, микросхемы приемников, блоков цветности телевизоров, микросхем памяти данных и многие другие устройства. В этих случаях используются другие виды синхронных последовательных портов, такие как SPI и I2С. Временная диаграмма сигналов SPI-интерфейса приведена на рис. 5.22.
Рис. 5.22.
Основное отличие этого интерфейса от приведенного выше заключается в том, что сигнал тактовой синхронизации передается только в момент действия импульса кадровой синхронизации. Активный уровень сигнала кадровой синхронизации длится до окончания передачи последнего бита в передаваемом кадре. По одним и тем же линиям передачи данных: MISO (вход для главного, выход для ведомого); и MOSI (выход для главного, вход для ведомого), может передаваться информация к совершенно различным микросхемам. Выбор среди микросхем, подключенных к одному и тому же порту, той, для которой предназначена информация, производится сигналом SS (выбор ведомого). В SPI-интерфейсе в приемнике не требуется счетчик тактовых импульсов. Запись принятой информации в параллельный регистр данных производится по окончанию кадрового импульса.
Если в устройстве используется много микросхем, то в SPI-интерфейсе количество линий выбора ведомого становится значительным, поэтому в таких случаях используется еще один вид синхронного последовательного интерфейса: I2С. Временная диаграмма этого интерфейса приведена на рис. 5.23. В I2С-интерфейсе прием и передача данных, а также передача адреса микросхемы и адреса регистра внутри микросхемы, к которому осуществляется обращение, производятся по одной и той же линии данных SDA. Для подключения к этой линии используются микросхемы с открытым коллектором. Нагрузкой для всех микросхем, подключенных к линии SDA, служит внешний резистор. Естественно, что скорость передачи данных по такому интерфейсу будет ниже, чем в случае SPI.
Рис. 5.23.
Сигнал тактовой синхронизации в I2С-шине передается по линии SCL. Начало работы с микросхемой обозначается особой комбинацией сигналов SDA и SCL (переход 0–1 SDA при высоком уровне SCL), которая называется условием старта. Эта же комбинация одновременно осуществляет кадровую синхронизацию. Завершение работы с микросхемой обозначается еще одной комбинацией сигналов SDA и SCL — переходом 0–1 SDA при высоком уровне SCL. В качестве примера микросхем, использующих интерфейс I2С, можно назвать микросхемы EEPROM серии 24сХХ.
Рассмотренные синхронные последовательные порты позволяют достигнуть больших скоростей передачи данных, но линия, по которой ведется передача синхросигнала, практически не несет информации. Такой сигнал можно было бы сформировать и на приемном конце линии передачи, если заранее договориться о скорости передачи.
В настоящее время используются стандартные скорости передачи, кратные скорости 1200 бит/с. При этом масштабирование может проводиться как в сторону увеличения скорости обмена, так и в сторону уменьшения скорости обмена двоичной информацией. Например, стандартной скоростью передачи последовательного порта будет скорость 2400 и 4800 бит/с. Стандартными же будут скорости обмена 600 и 300 бит/с.