8250提共了9個暫存器。嚴格說來,只有8個。因為其中有兩個暫存器是共享同一個暫存器。各暫存器的作用與寄存位的含義如下表所示: 在上圖的埠地址標識中,小括號中還有一個地址。這是因為在PC中。一般都會有兩個串列埠。括號外的是主串列埠的埠地址,而括號裡面的是從串列埠地址。
從上圖可以看到8250的暫存器比較繁多,操作比較複雜。我們依次來看每個暫存器的含義:
資料接收暫存器(RBR): 存放接收到的資料。這些資料是已經去掉了傳送位,停止位和奇偶檢驗位了的。也就是串列埠接收到的有效資料。
資料傳送暫存器(THR):用來存放要傳送的資料。這是使用者要寫入的資料。不包含上述的附加位。
從上圖中可以看到,RBR和THR的埠地址是一樣的。也就是說,它們是操作的是同一個暫存器。只有在暫存器空閒的時候,才能寫入資料。也就是說,我們在中斷/輪詢處理過程中,先把這個暫存器的值取出。然後再寫入我們要傳送的資料。
中斷允許暫存器(IER):8250有四級中斷。分別為:接收出錯中斷。接收暫存器滿中斷。傳送暫存器空中斷。Moden狀態改變中斷。四種中斷都對應暫存器的1個位。剩餘四位無意義,為0。從這裡可以看到,傳送資料並不是每次都要等接收中斷來了,才能傳送。也可以在傳送暫存器空的中斷處理中傳送。
中斷標識暫存器(IIS):既然8250對應有四種中斷。那中斷過來之後,怎麼區分是哪種型別的中斷呢?這就是中斷標識暫存器的作用。IIS中有表示中斷狀態的對應位。都是相對於IER來說的。另外,與IER的高四位始終為0的情況相反的是,IIS的前二位能夠驅分晶片的型別。如:8250的IIS前二位為00。而16550A晶片的IIS前二位為11。這裡順帶提一下8250和16550A的區別:8250每次只能接收或者傳送1個位元組。,而16550A則提供了一個FIFO快取區。有16個位元組的快取空間。這樣就可以減輕CPU的負擔。在16550A中,新增了一個暫存器FIFO控制暫存器(FCR).其中有一個標識可以啟用或者禁用FIFO。
線路控制暫存器(LCR):可以用來控制資料的傳輸方式。比如說設定奇偶檢驗位,資料位的長度,停止位等。
Moden控制暫存器(MCR):用來向moden傳送RTS/DTR訊號。在這個暫存器中還要注意有二個特殊的位。一個是自檢位。該位被置之後,資料在8250的內部移動。可以用來檢測8250資料接收與傳送功能。另外的一個位是中斷允許位。它允許8250向CPU產生中斷.
線路狀態暫存器(LSR):用來檢查線路的狀態。例如資料包出錯原因,傳送暫存器/接收暫存器空狀態標識以及終止符檢測。
Moden狀態暫存器檢測(MSR):用來採集moden的狀態。例如DSR和CTS訊號檢測。載波檢測等.
除法暫存器:一般用來設定波特率:它是低8位在傳送/讀取暫存器。高8位在IER暫存器,透過LCR有最高位來控制除法暫存器是否
8250提共了9個暫存器。嚴格說來,只有8個。因為其中有兩個暫存器是共享同一個暫存器。各暫存器的作用與寄存位的含義如下表所示: 在上圖的埠地址標識中,小括號中還有一個地址。這是因為在PC中。一般都會有兩個串列埠。括號外的是主串列埠的埠地址,而括號裡面的是從串列埠地址。
從上圖可以看到8250的暫存器比較繁多,操作比較複雜。我們依次來看每個暫存器的含義:
資料接收暫存器(RBR): 存放接收到的資料。這些資料是已經去掉了傳送位,停止位和奇偶檢驗位了的。也就是串列埠接收到的有效資料。
資料傳送暫存器(THR):用來存放要傳送的資料。這是使用者要寫入的資料。不包含上述的附加位。
從上圖中可以看到,RBR和THR的埠地址是一樣的。也就是說,它們是操作的是同一個暫存器。只有在暫存器空閒的時候,才能寫入資料。也就是說,我們在中斷/輪詢處理過程中,先把這個暫存器的值取出。然後再寫入我們要傳送的資料。
中斷允許暫存器(IER):8250有四級中斷。分別為:接收出錯中斷。接收暫存器滿中斷。傳送暫存器空中斷。Moden狀態改變中斷。四種中斷都對應暫存器的1個位。剩餘四位無意義,為0。從這裡可以看到,傳送資料並不是每次都要等接收中斷來了,才能傳送。也可以在傳送暫存器空的中斷處理中傳送。
中斷標識暫存器(IIS):既然8250對應有四種中斷。那中斷過來之後,怎麼區分是哪種型別的中斷呢?這就是中斷標識暫存器的作用。IIS中有表示中斷狀態的對應位。都是相對於IER來說的。另外,與IER的高四位始終為0的情況相反的是,IIS的前二位能夠驅分晶片的型別。如:8250的IIS前二位為00。而16550A晶片的IIS前二位為11。這裡順帶提一下8250和16550A的區別:8250每次只能接收或者傳送1個位元組。,而16550A則提供了一個FIFO快取區。有16個位元組的快取空間。這樣就可以減輕CPU的負擔。在16550A中,新增了一個暫存器FIFO控制暫存器(FCR).其中有一個標識可以啟用或者禁用FIFO。
線路控制暫存器(LCR):可以用來控制資料的傳輸方式。比如說設定奇偶檢驗位,資料位的長度,停止位等。
Moden控制暫存器(MCR):用來向moden傳送RTS/DTR訊號。在這個暫存器中還要注意有二個特殊的位。一個是自檢位。該位被置之後,資料在8250的內部移動。可以用來檢測8250資料接收與傳送功能。另外的一個位是中斷允許位。它允許8250向CPU產生中斷.
線路狀態暫存器(LSR):用來檢查線路的狀態。例如資料包出錯原因,傳送暫存器/接收暫存器空狀態標識以及終止符檢測。
Moden狀態暫存器檢測(MSR):用來採集moden的狀態。例如DSR和CTS訊號檢測。載波檢測等.
除法暫存器:一般用來設定波特率:它是低8位在傳送/讀取暫存器。高8位在IER暫存器,透過LCR有最高位來控制除法暫存器是否