国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

MAX3420E外設控制器的中斷系統

發布時間:2010-12-8 12:05    發布者:techshare
MAX3420E可與任何SPI主控制器相連,以構成全速USB外設器件。盡管一般都由MAX3420來管理底層USB信令,但是需要處理USB事件時,SPI主控制器必須參與處理,當MAX3420的INT引腳指示有中斷發生時,SPI主控制器將讀取14個中斷請求位,以確定需要服務的中斷,一般情況下,主要由這些中斷請求(IRQ)位確定MAX3420E的工作過程,在選擇器件時,SPI主控制器可以是微控制器、DSP、ASIC或具備SPI端口的其他器件,并應能提供SCLK信號。

MAX3420E的中斷邏輯

◇ IRQ位

圖1所示為MAX3420E中斷邏輯。陰影部分是可通過SPI訪問的寄存器位,圖中有一個IRQ位,實際上,每一個中斷都有一個用于鎖存服務請求的觸發器。觸發器的輸出即為IRQ,它出現在MAX3420E寄存器中,IRQ位提供兩種功能:一是讀取一個IRQ位,然后返回IRQ觸發器的狀態;二是寫入一個“1”至IRQ位,以清除IRQ觸發器,而寫入“0”至IRQ位,則不改變觸發器狀態。

事實上,可以在任意時刻讀取IRQ位,它反映了IRQ觸發器的狀態,當按照寫入1而不是0來清除所選的IRQ位時,這一過程不需要讀-修改-寫周期,假設MAX3420E的IRQ位與普通的寄存器位一樣,即寫1置位,寫0清除,那么,清除USBIRQ寄存器的USESIRQ位的操作代碼如下:

#define rUSBIRQ 13 //register 13

#define bmURESIRQ 0x08 //URESIRQ is bit4,bm means“bit mask”

unsigned char dum;

dum=rreg(rUSBIRQ); //read the register

dum=dum&—bmURESIRQ; //chear one bit

wreg(Rusbirq,dum); //write it back

由于SPI主控制器可通過寫1來清除一個MAX3420E IRQ位,而寫0則不改變其他寄存器位,因此,SPI主控制器可直接寫入位屏蔽值以清除URESIRQ位。這樣,上述代碼中的最后三條語句便可由下面的單條語句所替代:

wreg(rUSBIRQ,bmURESIRQ);//1 cheras an IRQ bit,0 leaves it alone

◇ IEN位

14個MAX3420E中斷的每一個都有相應的中斷使能(IEN)位,IEN位和IRQ觸發器輸出進行“與”操作,可決定是否向INT引腳傳送中斷請求。14個IRQ觸發器通過門控電路后再進行“或”操作,也會形成一個內部中斷請求信號,并傳送至中斷引腳邏輯模塊。

實際上,無論IEN位的狀態如何,IRQ位都指示中斷懸掛狀態,這樣,即使中斷不觸發INT引腳,固件仍可以檢查該懸掛中斷,如果您的程序需要檢查一個IRQ寄存器“是否懸掛中斷”,比較簡單的方法是讀取IRQ和IEN寄存器,并對它們進行“與”操作,然后檢查“等待和被使能的IRQ”位,零值表示沒有使能的中斷,系統處于懸掛狀態。

◇ IE位

SIP主控制器通過IE位來使能或者禁止INT引腳,由于該位影響到所有的中斷,因此通常稱之為全局中斷使能,不論IRQ或者IEN位的狀態如何,當IE為0時,INT引腳均無效。

可用兩個寄存器位INTLEVEL(參考下面的討論)和POSINT來控制INT引腳的工作方式,在設置IE為1之間,應先設置這兩個配置位。其操作如下:
[tr]


[/table]

(1)電平模式

某些微控制器系統使用低電平有效中斷。當采用這種配置時,MAX3420E采用一個開漏極晶體管驅動INT引腳至地,由于引腳只能驅動低電平,因此,需要在INT引腳和邏輯電源之間接一個上拉電阻,該模塊支持多個芯片的INT引腳輸出(每個均為開漏輸出)連接在一起,并使用單個上拉電阻。由于任何一個芯片輸出都可將引腳拉低,因此這種邏輯有時也稱為“線或”。對于這種類型的系統,可設置INTLEVEL為1。

(2)邊沿模式

MAX3420E的INT引腳可以驅動邊沿有效的中斷系統,此時,微控制器在其中中斷輸入腳上將檢查0到1或者1到0跳變,INTLEVEL為0是MAX3420E的缺省模式。SPI主控制器通過第二個POSINT位設置邊沿極性,POSINT為1時,MAX3420E為懸掛中斷輸出一個0到1的跳變。POSINT為0(缺省值)時,MAX3420為懸掛中斷輸出一個1到0的跳變。

需要說明的是:如果一個IRQ位置位,而其對應的IEN位清零,則IRQ將不會影響INT輸出引腳,但是,中斷仍處于懸掛狀態,永遠可以讀取IRQ位以獲得其狀態,可向對應的寄存器位寫1,并將IRQ位清零。

懸掛中斷(IRQ位是1)的IEN位出現0到1跳變時將產生中斷。

INT引腳可連接至微控制器的中斷系統,此外,微控制器可以輪詢INT引腳,以確定MAX3420E是否有中斷處于懸掛狀態,最適合輪詢的模式是電平模式(INTLEVEL=1),這是因為在邊沿模式中,INT引腳輸出的脈沖可能太窄,微控制器無法探測到(參考下面的討論)。請注意,電平模式需要在INT引腳和V1之間連接一個上拉電阻。

INT引腳狀態與波形

◇ 電平模式

圖2所示為電平模式下的MAX3420E的INT引腳波形。INT引腳靜態為高電平(上拉至VL)。假設圖中兩個中斷的IEN位均置為1,全局IE位也置1,那么將發生一個中斷請求,使MAX3420E INT引腳置低,實際上,盡管MAX3420E中斷輸出引腳被稱為INT引腳,它有時也是負極性(例如在電平模式下)。




SPI主控制器完成中斷服務后將向IRQ位寫入1,并將其清零,并使INT引腳返回至靜態高電平。(a)和(b)之間的間隔是中斷置位其IRQ位和SPI主控制器清除IRQ位之間的時間,當系統產生另一個中斷請求,會將INT引腳拉低,而當第一個中斷請求處于懸掛狀態時,系統可能產生第二個中斷請求,而此時INT電平沒有變化,因此至少有一個中斷處于懸掛狀態(實際上,此刻有兩個中斷處于懸掛狀態。)

當SPI主控制器完成一個中斷服務向IRQ位寫入1并將其清零后,由于仍有一個中斷處于懸掛狀態,INT引腳將保持低電平,此后SIP主控制器處理完剩下的中斷請求,并向IRQ位寫入1,在將其清零,此后由于沒有中斷處于懸掛狀態,因此,INT引腳將返回至靜態高電平。

這種邏輯可以很好地處理INT引腳輪詢,如果MAX3420E的任何部分需要服務,并且其中斷已被使能,那么INT引腳將變為低電平,在微控制器清除最后一個懸掛IRQ位之前,INT引腳一直保持低電平。

邊沿模式

圖3所示為兩種極性邊沿模式下MAX3420E的INT引腳波形,極性由POSINT位控制。該波形與電平模式相似,但有兩處不同,在兩種條件下,INT引腳將產生邊沿跳變:第一是一個IRQ位變為有效狀態(其IRQ觸發器產生0到1跳變),此時處理器將清除一個IRQ位(向其寫入1),其他IRQ處于懸掛狀態,第二個條件是在確保還有中斷需要服務時,處理器能夠檢測到邊沿跳變。




除了產生邊沿跳變外,與電平模式一樣,INT引腳也具有有效和無效狀態,INT引腳的無效狀態取決于POSINT位設置的邊沿極性,在這一點上,邊沿模式與電平模式相似,察看INT引腳的狀態就可以知道是否有中斷處于懸掛狀態,當在負極性邊沿模式下如果沒有懸掛中斷,INT引腳為高電平,如果有懸掛中斷,則為低電平,而在正極性邊沿模式下,如果沒有懸掛中斷,INT引腳為低電平,如果有懸掛中斷,則為高電平。

INT引腳的有效狀態意味著至少有一個中斷處于懸掛狀態,無效狀態是指沒有中斷處于懸掛狀態,假設中斷已被使能,那么,系統將出現以下事件;

(1)產生一個中斷請求時,MAX3420E INT引腳出現一個邊沿跳變,邊沿的極性取決于POSINT位的設置,由于中斷仍處于懸掛狀態,INT引腳保持其有效狀態。

(2)SPI主控制器完成中斷服務后,并向IRQ位寫入1,并將其清零。MAX3420E INT引腳返回至無效狀態,圖中(a)和(b)之間的間隔(1)是產生中斷和SPI主控制器清除IRQ位之間的時間。

(3)產生另一個中斷請求時,MAX3420E INT引腳產生一個邊沿跳變,并保持其有效狀態。

(4)當第一個中斷請求處于懸掛狀態時,系統又將產生第二個中斷請求,由于MAX3420E INT引腳必須產生另一個邊沿跳變。因此,該引腳將在無效和有效狀態之間產生跳變脈沖,從而提供正確的邊沿極性,在MAX3420E中,該脈沖的寬度固定為10.67μs,由于還有中斷處于懸掛狀態,INT引腳可保持在有效狀態。

(5)SPI主控制器完成一個懸掛中斷服務后,向其IRQ位寫入1,將其清除。與第(d)步一樣,INT引腳產生另一個邊沿跳變。

(6)SPI主控制器處理完剩下的中斷請求,并向其IRQ位寫入1,將其清除。由于此時已沒有中斷處于懸掛狀態,因此,INT引腳返回至無效狀態。

中斷寄存器

表1是MAX3420E寄存器控制位,其中陰影部分可用于控制USB中斷系統。MAX3420E具有兩類USB中斷,可由表1中陰影部分的寄存器控制,中斷位分為兩類:一是位于EPIRQ(R11)和EPIEN(R12)寄存器的端點控制,二是位于USBIRQ(R13)和USBIEN(R14)寄存器的USB控制,全局IE位在CPUCTL寄存器中。


[table]


中斷請求位BAV

該器件的三個緩沖區就緒(BAV)IRQ位可用于指示是否可以將SPI主控制器裝入一個IN端點FIFO,芯片復位或者IN數據由端點緩沖區成功地發送給主機后,MAX3420將置位這些IRQ位,此后該IRQ將通知SPI主控制器緩沖區可以裝入新數據。

與所有的MAX3420E IRQ位一樣,也可以通過寫入1來三個清除BAV IRQ位,但是千萬不要這樣做,相反,應通過寫入IN端點的字節計數寄存器來清除BAV IRQ位,這是因為MAX3420E要使用一個IN端點的BAV中斷請求位作為鎖定機制。

事實上,上述機制可以確保SPI主控制器和MAX3420E的串行接口引擎(SIE)不會同時使用端點緩沖區。例如,如果清除BAV位,然后以兩條單獨指令裝入字節計數器。那么當您更新字節計數寄存器時,可能已經開始了數據包傳輸,從而導致數據出錯。
本文地址:http://m.qingdxww.cn/thread-44988-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区中文| 五月天亚洲婷婷| 特黄级| 亚洲综合色就色手机在线观看| 99精品视频在线| 国内精品七七久久影院| 亚洲高清毛片一区二区| 三级黄色在线免费观看| 日韩高清在线播放不卡| 亚洲欧美久久| 一区二区三区在线观看视频| 精品动漫国产亚洲AV在线观看 | 思思re热免费精品视频66| 日韩精品一级毛片| 青青草视频在线观看免费| 亚洲精品欧美精品国产精品| 亚洲10p| 国产精品VIDEOS麻豆TUBE| 三叶草未满十八岁| 七次郎在线观看视频国产| 日韩中文字幕一区| 五月香蕉网| 国产精品成人网| 一级毛片两人添下面| 色网站在线看| 亚久久| 亚洲午夜综合网| 精品亚洲大全| 四虎永久精品视频在线| 欧美成人剧场| 亚洲 欧美 丝袜 制服 在线| 一区二区三区免费观看| 棉袜足j吐奶视频| 一级片aa| 日韩α片| 四虎在线视频免费观看| 波多野结衣网站www| 欧美日韩一区不卡在线观看| 欧美一区二区三区高清视频| 日本三级成人午夜视频网| 最新69国产成人精品视频69|