Дипломная работа: Комп’ютерне моделювання роботи послідовного порта
00h - буферний регістр передавача/буферний регістр приймача:
використовується для обміну даними;
01h- регістр дозволу переривань: установлює режим запиту переривань;
02h - регістр ідентифікації переривань: перевіряє режим запиту перери
вань;
03h - регістр формату даних: встановлює формат послідовних даних;
04h - регістр керування модемом: установлює керування модемом (RTS,
DTRі т.д.);
05h - регістр стану прийомопередавача: містить інформацію про стан
приймача і передавача;
06h - регістр стану модему: містить поточний стан ліній DCD, RI, DSR і
CTS;
07h - регістр надоперативної пам'яті: працює як байт пам'яті.
Рис. 2.4. Внутрішня блок-схема UART 8250/16450
Зсув 00h вказує на буферний регістр читання приймача і регістр запису передавача, що доступний, коли біт DLAB у регістрі формату даних (зсув 03h) дорівнює нулю. Якщо по цій адресі записаний байт, то він передається в регістр зміщення передавача і послідовно надходить на вихід. Під час прийому відбувається зворотна операція: після того як дані успішно прийняті і за допомогою регістра зміщення перетворені в рівнобіжний формат, вони передаються в буферний регістр приймача. Коли інформація з цього регістра зчитана, він очищається і готовий до прийому наступного блоку даних.
По зсуву 01hвід базового знаходиться регістр дозволу переривань, за допомогою якого можна конфігурувати переривання, що генеруються UART. Призначення бітів цього регістра приведені нижче:
0 0 0 0 SINPERBKTBERxRD
біти з 7 по 4 завжди нулі
SINP1 = переривання по зміні стану ліній CTS, DSR, DCD і RI
0 = немає переривання
ERBK1 = переривання при помилці прийому даних
0 = немає переривання
ТВЕ 1 = переривання, коли регістр передавача порожній
0 = немає переривання
RxRD1 = переривання при одержанні цаннх
0 = немає переривання
По зсуву 02h знаходиться регістр ідентифікації переривань. При виникненні переривання нульовий біт цього регістра встановлюється в 0. Біти 1 і 2 указують причину переривання. Біти з 7 по 3 не використовуються і завжди дорівнюють нулю. Призначення бітів регістра наступне:
0 0 0 0 0 ID1 ID0 PND
PND1 = немає переривання