2011年5月6日 星期五

DIY - PIC:PIC18F4550 USB 通用串列匯流排寄存器 (六十五)

DIY - PICPIC18F4550 USB 通用串列匯流排寄存器 (十五)

USB 狀態寄存器(USTAT
USB 狀態寄存器報告 SIE 中的事務狀態。 SIE 發出 USB 傳輸完成中斷信號時,應該讀 USTAT 以確定傳輸的狀態。 USTAT 包含傳輸端點編號、傳輸方向和乒乓緩沖器指針值(如果使用的話)。

USTAT 寄存器實際上是一個讀取由 SIE 維護的 4 位元組狀態 FIFO 的窗口。 它允許單片機在 SIE 處理其他的端點時處理一個傳輸。 SIE 使用緩衝器讀寫完資料後,它將更新 USTAT 寄存器。 如果在事務完成中斷被回應之前進行另一次 USB 傳輸,SIE 將把下一次傳輸的狀態保存到狀態 FIFO 中。

清零傳輸完成標誌位元 TRNIF,會使 SIE FIFO 指針加1 如果 FIFO 保持寄存器中的下一個資料有效,SIE 將立即再次產生中斷。 如果沒有其他資料,TRNIF 將保持清零,USTAT 資料將不再可靠。

USB 狀態寄存器(USTAT
USB 端點控制寄存器 (UEPn)
16 個可能的雙向端點中的每一個都有自己獨立的控制寄存器 UEPn(其中n 表示端點編號)。每個寄存器相應控制位的功能都是相同的。

EPHSHK 位(UEPn<4>)控制端點握手,將此位置 1 將使能 USB 握手。 通常,除使用同步端點以外,此位總是置 1 的。

EPCONDIS 位(UEPn<3>)用於使能或禁止通過端點進行的 USB 控制操作(SETUP清零此位將使能 SETUP 事務。注意必須將相應的 EPINEN EPOUTEN 位置 1 以使能 IN OUT 事務。 因為 USB 規範中端點 0 是默認控制端點,所以對於端點 0,此位將總是被清零。

EPOUTEN 位(UEPn<2>)用於使能或禁止主機的 USBOUT 事務。 將此位置 1 則使能 OUT 事務。同樣,EPINEN 位(UEPn<1>)將使能或禁止主機的 USB IN 事務。 

EPSTALL 位(UEPn<0>)用於表示端點的 STALL 狀態。 如果在一個特殊的端點上發出了一個 STALL,那麼這對端點的 EPSTALL 位將由 SIE 1 此位將保持置 1 直到由固件清零或 SIE 復位。    

USB 端點控制寄存器
USB 位址寄存器(UADDR 
USB 位址寄存器包含惟一的 USB 位址,當此位址有效時,可被外設識別。 當接收到由 URSTIF 表示的 USB 複位元信號時,或接收到來自單片機的重定資訊時,UADDR復位為 00h 單片機必須在 USB 啟動階段(枚舉)寫入 USB 位址,該操作受Microchip USB 固件支援。 

USB 幀編號寄存器(UFRMH:UFRML 
幀編號寄存器包含 11 位幀編號。低位元位元組保存在 UFRML 中,而高 3 位則保存在 UFRMH 中。 不管是否接收到 SOF 權杖,都用當前幀編號更新該寄存器對。對於單片機而言,這些寄存器是唯讀的。幀編號寄存器主要用於同步傳輸。 

資料來源:Microchip 18F4550 系列數據手冊 

2011 05 06 天氣報告
氣溫:26.2 @ 22:00 
相對濕度:百分之82% 
天氣:大致多雲

沒有留言:

張貼留言