女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 在現(xiàn)今SOC設(shè)計(jì)中,當(dāng)周邊裝置(Peripheral IP)想要和中央處理器(CPU)溝通時(shí),最常使用的機(jī)制是透過中斷(Interrupt)。周邊裝置可觸發(fā)中斷給中央處理器,當(dāng)中央處理器接收到中斷后,則可判斷是由那個(gè)周邊裝置觸發(fā)些中

 在現(xiàn)今SOC設(shè)計(jì)中,當(dāng)周邊裝置(Peripheral IP)想要和中央處理器(CPU)溝通時(shí),最常使用的機(jī)制是透過中斷(Interrupt)。周邊裝置可觸發(fā)中斷給中央處理器,當(dāng)中央處理器接收到中斷后,則可判斷是由那個(gè)周邊裝置觸發(fā)些中斷,接著處理相對應(yīng)的中斷處理程序(ISR,Interrupt Service Routine),藉此達(dá)到彼此溝通的目的。

而AndesCore™在中斷處理方面,共支持兩種模式:內(nèi)部中斷處理器(IVIC Mode,Internal Vector Interrupt Controller)和外部中斷處理器(EVIC Mode,External Vector Interrupt Controller)。其中最大的差異性,即是中斷控制器所存在的位置。在內(nèi)部中斷處理模式下,AndesCore™本身即設(shè)置了一個(gè)中斷控制器存在于CPU內(nèi)部,經(jīng)由此中斷控制器來處理相關(guān)中斷的工作。而在外部中斷處理模式下,用戶必須在CPU外部實(shí)做一個(gè)中斷控制器來處理相關(guān)中斷工作。

除了上述的差異性之外,在硬件方面的整合和軟件方面的應(yīng)用,也存在些許差異性。本文之目的除了介紹這些差異性外,也提供一個(gè)簡單的設(shè)計(jì)平臺供使用者參考。期望能對使用者有所幫助,也希望讀者不吝指教提供您寶貴的意見。

1. 中斷處理模式介紹

AndesCore™共支持兩種中斷處理模式:內(nèi)部中斷處理器(IVIC Mode,Internal Vector Interrupt Controller)和外部中斷處理器(EVIC Mode,External Vector Interrupt Controller)。以下的介紹將架構(gòu)于AndesCore™ N968A-S這顆中央處理器。帶領(lǐng)使用者循序漸進(jìn)地,了解這兩種中斷處理模式的差異。

1.1 Definition

AndesCore™ N968A-S支持兩種中斷處理模式,首先,我們先介紹關(guān)于這兩種模式的定義。

1.1.1 IVIC Mode

AndesCore™ N968A-S內(nèi)部設(shè)計(jì)了一個(gè)中斷控制器,所支持的中斷來源數(shù)目可透過配置來決定。目前最大可支持16個(gè)中斷來源,但可擴(kuò)充至32個(gè)。請參考圖表 1。若使用這存在于CPU內(nèi)部的中斷控制器來處理相關(guān)中斷工作時(shí),則為IVIC模式。假若SOC的中斷來源大于32個(gè)時(shí),使用者還是可以使用IVIC模式,但是需要將多個(gè)中斷來源合為一個(gè)中斷訊號線(ex: OR function),且中斷處理程序(ISR)在該中斷訊號線觸發(fā)時(shí),需要去判斷是由那個(gè)中斷來源所觸發(fā)。在N968A-S的IVIC mode之下,每個(gè)中斷來源可以選定值為0~3的優(yōu)先權(quán) (priority). 優(yōu)先權(quán)高的中斷來源可以打斷優(yōu)先權(quán)低的中斷來源。

1.1.2 EVIC Mode

假若IVIC模式不符合用戶所設(shè)計(jì)的系統(tǒng),用戶就需要選用EVIC模式。在此模式下,用戶需要額外設(shè)計(jì)一個(gè)中斷控制器,用來處理周邊裝置和中央處理器之間相關(guān)中斷的工作,作為兩者間溝通的橋梁。

 

圖表 1. AndesCore™ N968A-S 所支持中斷來源數(shù)目

1.1.1 Interruption Vector Entry Points

為了加速中斷處理的時(shí)間,AndesCore™ N968A-S內(nèi)部實(shí)做了一個(gè)Interruption Vector Table。將不同的中斷事件分別對應(yīng)到不同的Vector Entry,當(dāng)中斷發(fā)生時(shí),CPU即可判斷中斷是由那個(gè)周邊裝置所觸發(fā),并跳到該中斷所對應(yīng)的Vector Entry,進(jìn)而執(zhí)行相關(guān)的中斷處理程序(ISR)。

在前面章節(jié)有介紹AndesCore™ N968A-S支持兩種不同的中斷處理模式。因此,在不同的中斷處理模式下,也對應(yīng)了不同的Interruption Vector Table。

1.1.1.1 Interruption Vector Table of IVIC Mode

在IVIC模式下,所支持的中斷來源可由用戶來配置,支持的數(shù)目由2個(gè)到32個(gè)。Interruption Vector Table相關(guān)信息如下:

l 41 entry points (9 exceptions + 32 interrupts)

l Address = IVB.IVBASE + (entry number) * IVB.ESZ

(VEP: Vector Entry Point)

 

圖表2. Interruption Vector Table of IVIC Mode

1.1.1.1 Interruption Vector Table of EVIC Mode

在EVIC模式下,所支持的中斷來源數(shù)目可達(dá)到64個(gè)中斷。Interruption Vector Table相關(guān)信息如下:

l 73 entry points (9 exceptions + 64 interrupts)

l Address = IVB.IVBASE + (entry number) * IVB.ESZ

 

圖表3. Interruption Vector Table of EVIC Mode

1.2 Signal Descriptions

AndesCore™ N968A-S 提供相關(guān)中斷訊號線,使得CPU可與周邊裝置或是外部中斷控制器溝通。在EVIC模式下,除了中斷來源訊號線之外,還包含了和外部中斷控制器相互溝通的訊號線,詳細(xì)訊號線敘述如下:

 

其中,evic_ireqval和evic_ireqack這兩個(gè)訊號線用來和外部中斷控制器溝通。在IVIC模式下,周邊裝置的中斷訊號可和int_req[N:0]直接整合。當(dāng)周邊裝置觸發(fā)中斷時(shí),相對應(yīng)的int_req訊號會拉起,告知CPU該周邊裝置觸發(fā)了中斷,CPU即會跳到所對應(yīng)的Vector Entry來執(zhí)行相關(guān)的中斷處理程序。

而在EVIC模式下,外部中斷控制器會負(fù)責(zé)處理周邊裝置的中斷訊號。當(dāng)周邊裝置觸發(fā)中斷時(shí),外部中斷處理器會負(fù)責(zé)和周邊裝置溝通,并將相對應(yīng)的中斷訊號(int_req)和中斷需求訊號(evic_ireqval)發(fā)給CPU,當(dāng)CPU接收到中斷時(shí),會將中斷接收訊號(evic_ireqack)拉起,告知外部中斷處理器收到中斷,并去處理相關(guān)中斷處理程序。

相關(guān)處理程序可參考圖表 5。在ARC a時(shí),當(dāng)ireqack訊號為low時(shí),CPU可等待周邊裝置觸發(fā)中斷。當(dāng)周邊裝置觸發(fā)中斷,外部中斷控制器將相對應(yīng)中斷訊號int_req和ireqval拉起,告知CPU有中斷發(fā)生。在ARC b時(shí),當(dāng)CPU收到中斷,則將ireqack訊號拉起,告知外部中斷控制器已收到中斷。在ARC c時(shí),外部中斷控制器將ireqval訊號拉下,并等待CPU將ireqack訊號拉下(在ARC d時(shí)),表示CPU可接收新的中斷觸發(fā)。

 

1.3 System Register Setting

關(guān)于上述兩種中斷模式的選擇,用戶可透過設(shè)定AndesCore™ N968A-S內(nèi)部的一個(gè)system register來達(dá)到目的。

該system register為Interruption Vector Base Register(ir3)。其中的第13個(gè)bit決定不同的中斷模式。其格式如下:

 

2. Reference Design Architecture

在介紹完中斷處理模式相關(guān)定義之后,本章節(jié)提供在實(shí)際整合與應(yīng)用上的范例,讓用戶可更了解在不同中斷處理模式下的差異。

2.1 主要架構(gòu)

本次所實(shí)作的Reference Design主要是架構(gòu)在Andes mini-platform上,搭配AndesCore™ N968A-S為主要CPU來控制相關(guān)周邊裝置。其主要架構(gòu)如下圖:

 

將AndesCore™ N968A-S整合在AHB-Lite Bus上,藉由APB Bridge和APB Bus溝通,而相關(guān)的周邊裝置則整合在APB Bus上。在本次范例中,主要會用到GPIO和INTC(中斷控制器)這兩個(gè)周邊裝置,在不同的中斷模式下,利用GPIO來觸發(fā)中斷,再透過INTC與CPU溝通,觀察不同中斷模式下中斷的處理方式。

2.1.1 Design Scenario in IVIC

在IVIC模式下,由GPIO觸發(fā)中斷(gpio_int signal),直接將中斷傳遞給CPU(int_req signal)。當(dāng)CPU接收到中斷時(shí),即可去處理相關(guān)的中斷處理程序。相關(guān)裝置之間的整合如下圖所示:

 

2.1.2 Design Scenario in EVIC

在EVIC模式下,由GPIO觸發(fā)中斷(gpio_int signal),INTC收到中斷后,會將中斷訊號和相關(guān)溝通訊號傳遞給CPU(int_req signal & evic_ireqval signal)。當(dāng)CPU接收到中斷時(shí),會將響應(yīng)訊號拉起(evic_ireqack signal),告知INTC收到該中斷,并去處理相關(guān)的中斷處理程序。相關(guān)裝置之間的整合如下圖所示:

 

2.2 Example Code

以下將Reference Design中,就本次中斷處理模式相關(guān)的整合程序部分和測試程序部分,摘要出來說明。

2.2.1 整合程序部分

在系統(tǒng)整合部分,包含AndesCore™ N968A-S和INTC在不同的模式下,整合相關(guān)的訊號線,其中透過EVIC_MODE參數(shù)來進(jìn)行不同模式間的切換。

AndesCore™ N968A-S相關(guān)RTL片斷:

evic_ireqval訊號在EVIC模式下由INTC觸發(fā)給CPU,在IVIC下可直接給予0值。int_req由INTC或中斷來源傳遞給CPU,告知CPU中斷產(chǎn)生。evic_ireqack在EVIC模式下由CPU觸發(fā)給INTC,告知INTC收到中斷。

n9_core n9_core (

...

`ifdef EVIC_MODE

.evic_ireqval (evic_ireqval),

`else

.evic_ireqval (1'b0),

`endif

.int_req (int_req),

.evic_ireqack (evic_ireqack),

...

INTC相關(guān)RTL片斷:

此中斷控制器可透過evic_mode這個(gè)輸入訊號,來決定該裝置是處于IVIC模式或是EVIC模式,因此,在EVIC模式下,給予1值,設(shè)定為EVIC模式,在IVIC下,給予0值,設(shè)定為IVIC模式。ireqack訊號在EVIC模式下由CPU觸發(fā)給INTC,告知INTC已收到中斷,在IVIC模式下則給予0值。

ncore_intctl intctl (

.PCLK (pclk),

.PRSTn (preset_n&~wd_rst),

`ifdef EVIC_MODE

.evic_mode (1'b1),

.ireqack (evic_ireqack),

`else

.evic_mode (1'b0),

.ireqack (1'b0),

`endif

.int_req (int_req),

.ireqval (evic_ireqval),

...

2.2.2 測試程序部分

在測試驗(yàn)證部分,包含AndesCore™ N968A-S在不同中斷模式下的設(shè)置、INTC相關(guān)中斷狀態(tài)的設(shè)置和GPIO觸發(fā)中斷的設(shè)置。

AndesCore™ N968A-S相關(guān)程序片斷:

AndesCore™ N968A-S支持兩種中斷處理模式,透過CPU內(nèi)部的system register來設(shè)置。主要為設(shè)置Interruption Vector Base Register,該register的第13個(gè)bit用來定義CPU處在何種中斷處理模式。在EVIC模式下,需將該bit設(shè)置為1,在IVIC模式下,則將該bit設(shè)置為0。

!---------------!

!--- Set $IVB ---!

!---------------!

! [31:16] (IVBASE) = 16'$h0

! [15:14] (ESZ) = 2'b00 (4 bytes)

! [13] (EVIC) = 1'b0 (IVIC mode)

mfsr $r0, $IVB !read $IVB

ori $r0, $r0, #0x2000 !enable EVIC

mtsr $r0, $IVB !write $IVB

INTC相關(guān)程序片斷:

INTC通常支持不同的中斷觸發(fā)方式,包含Interrupt Masking、Interrupt Trigger Mode、Interrupt Trigger Level …等。在開始使用每個(gè)中斷來源之前,這些控制選項(xiàng)都必須在INTC上設(shè)定正確。

3. 模擬結(jié)果

將上述的Reference Design整合完成后,搭配測試程序進(jìn)行仿真,并藉由波形圖來觀察不同中斷模式下,相關(guān)中斷訊號線的變化。

3.1 IVIC模擬結(jié)果

在IVIC仿真環(huán)境中,主要測試程序如下:

l 由GPIO觸發(fā)一中斷,并將中斷傳遞給CPU

l CPU接收到中斷后,執(zhí)行相對應(yīng)的中斷處理程序

仿真結(jié)果如圖表11所示,當(dāng)GPIO觸發(fā)中斷后,將中斷直接傳遞給CPU,在CPU端的int_req訊號線會觸發(fā),表示有中斷發(fā)生。當(dāng)CPU收到中斷訊號后,接著會處理相對應(yīng)的中斷處理程序。

 

3.2 EVIC模擬結(jié)果

在EVIC仿真環(huán)境中,主要測試程序如下:

l 由GPIO觸發(fā)一中斷

l 此時(shí)INTC設(shè)罝為EVIC模式,并將中斷訊號和相關(guān)溝通訊號傳遞給CPU

l CPU接收到中斷后,會將響應(yīng)訊號拉起,告知INTC收到該中斷,并執(zhí)行相對應(yīng)的中斷處理程序

仿真結(jié)果如圖表12所示,當(dāng)GPIO觸發(fā)中斷后,INTC將中斷和相關(guān)溝通訊號(ireqval)傳遞給CPU,在CPU端的int_req訊號線和evic_ireqval訊號線會觸發(fā),表示有中斷發(fā)生。當(dāng)CPU收到中斷訊號后,會將evic_ireqack訊號線拉起,告知INTC收到中斷。仿真結(jié)果如同章節(jié)1.2和圖表5所論述。

 

結(jié)語

在AndesCore™ N968A-S 所提供的兩種中斷模式里,其中的IVIC模式使用CPU內(nèi)的中斷控制器來處理中斷,此模式對用戶來說,只要將中斷來源和CPU端的中斷訊號連接即可,相當(dāng)容易整合。若用戶所設(shè)計(jì)的系統(tǒng)里,中斷來源數(shù)目超過IVIC模式所支持,或者系統(tǒng)需要更復(fù)雜的優(yōu)先權(quán)選擇時(shí),則可選用EVIC模式。在EVIC模式下,用戶需額外設(shè)計(jì)外部中斷控制器,并整合相關(guān)溝通訊號。因此,用戶可根據(jù)本身系統(tǒng)的復(fù)雜度和整合的難易度,來選擇適合的中斷處理模式。

 

 

 

 

 

 

 

 

 

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉