亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數字信號控制器的中斷系統(tǒng)分析與實現方法※

        2014-08-12 08:46:12林志貴姚芳琴李敏劉穎
        關鍵詞:服務程序寄存器中斷

        林志貴, 姚芳琴, 李敏, 劉穎

        (天津工業(yè)大學 電子與信息工程學院,天津 300387)

        數字信號控制器的中斷系統(tǒng)分析與實現方法※

        林志貴, 姚芳琴, 李敏, 劉穎

        (天津工業(yè)大學 電子與信息工程學院,天津 300387)

        數字信號控制器(DSC)具有數字信號處理能力和MCU控制接口,其中斷系統(tǒng)功能非常豐富,這為應用帶來方便,同時也帶來設置的復雜性。本文以MC56F8257為例,詳細分析DSC中斷系統(tǒng)及其設置方法;以MC56F8257中的QSCI模塊中斷及CAN模塊中斷為例,從不帶中斷優(yōu)先級、帶中斷優(yōu)先級和優(yōu)先級嵌套三個方面,分析DSC中斷設置過程及響應結果。分析結果進一步驗證DSC中斷具有優(yōu)先級及屏蔽等特點,為推廣DSC芯片的應用提供指導。

        數字信號控制器;中斷系統(tǒng);優(yōu)先級;MC56F8257

        引 言

        數字信號控制器(Digital Signal Controller, DSC)是將DSP內核與MCU接口相結合的微處理器芯片。當多個中斷源發(fā)出中斷請求時,CPU需要選擇接收哪一個中斷源,這就帶來中斷源選擇問題[5]。

        解決這個問題的方法有屏蔽選擇法、優(yōu)先級選擇法和優(yōu)先屏蔽選擇法三種。優(yōu)先屏蔽選擇法同時具有其他兩種方法的功能,既可屏蔽所有中斷源,又可屏蔽某些模塊中斷源,也可以對非屏蔽的中斷源進行優(yōu)先級設置。這種方法既能避免優(yōu)先級選擇法不能解決某些中斷源的干擾問題,又能有效避免屏蔽選擇法造成的被屏蔽中斷永遠不能被處理的缺點[8]。該種方法目前逐步被DSC芯片商采用,如MC56F8257芯片就采用這種方法。

        1 MC56F8257中斷系統(tǒng)

        MC56F8257共有67個中斷源、5個中斷優(yōu)先級。中斷的請求是通過中斷控制器模塊控制的。中斷控制器模塊由中斷源、優(yōu)先級設置和控制部分組成,其框圖如圖1所示,主要用于配置中斷優(yōu)先級、解析中斷請求,并且將中斷向量交給CPU執(zhí)行。

        圖1 中斷控制器框圖

        從圖1可以看出,在中斷請求處理過程中,當有多個中斷源發(fā)出請求(INT1…INTn)時,首先優(yōu)先級別譯碼模塊根據用戶設置的優(yōu)先級進行譯碼,譯碼后進入相應的優(yōu)先級編碼器進行編碼,最后通過控制模塊進行優(yōu)先級的配置??刂颇K根據DSP56800E核中的狀態(tài)寄存器SR中的屏蔽等設置位,對編碼后的中斷源進行處理,處理后的結果反映在控制寄存器INTC_CTRL中的INT、VAB和IPIC位。

        INT是中斷位,該位反映內核中斷的狀態(tài)。當該位值為1時,有中斷送入內核;否則,無中斷送入內核。IPIC是中斷優(yōu)先級位,該位表示送入內核的中斷源的優(yōu)先級,也表示當前內核所接收的中斷的最高優(yōu)先級。VAB是中斷向量信號,也是對應中斷在中斷向量表中的地址的[7:1]位[9]。

        MC56F8257內核為16位增強型DSP56800E,該內核處理中斷請求有兩種模式:標準和快速中斷處理模式[10]。MC56F8257標準中斷處理模式具體流程如圖2所示,該模式通過JSR指令,轉向中斷服務程序,占用一定數量的軟件開銷,但所有級別中斷都支持該模式。一般中斷處理的控制流程圖如圖2所示。

        圖2 一般中斷處理的控制流程圖

        圖3 快速中斷處理的控制流程圖

        快速中斷處理不需要執(zhí)行JSR指令,如圖3所示,而是通過快速中斷向量地址寄存器獲得中斷服務程序首地址,節(jié)省了軟件資源,但它只能用于中斷優(yōu)先級為2級的中斷。具體采用何種模式,應根據實際應用需要進行設置。

        2 MC56F8257中斷設置方法

        2.1 中斷的關閉與開放

        開放MC56F8257中某個模塊中斷,通常需要開放總中斷及模塊中斷來實現。這兩部分缺一不可,并且開放總中斷在前,開放模塊中斷在后。同理,關閉MC56F8257中某個模塊中斷,需要關閉總中斷及模塊中斷來實現,先關閉模塊中斷,再關閉總中斷;如果允許中斷嵌套情況,無需關閉總中斷。

        老開放MC56F8257總中斷,則清中斷控制寄存器(INTC_CTRL)的INT_DIS位;關閉總中斷,則置位該位。具體代碼如下:

        #define EnableInterrupt()

        INTC_CTRL&=~INTC_CTRL_INT_DIS_MASK

        #define DisableInterrupt()

        INTC_CTRL|=INTC_CTRL_INT_DIS_MASK

        開放或關閉模塊中斷,需設置模塊內部的控制寄存器的相應位。如開放QSCI模塊的接收中斷0,則需置位QSCI控制寄存器1(QSCIx_CTRL1)中的RFIE位;關閉該中斷,清RFIE位即可。具體代碼如下:

        #define EnableQSCIReInt(0)

        QSCI_C1(0)|=(QSCI1_CTRL1_RFIE_MASK)

        #define DisableQSCIReInt(0)

        QSCI_C1(0)&=~(QSCI1_CTRL1_RFIE_MASK)

        2.2 中斷優(yōu)先級的設置

        DSP56800E內核支持5級中斷:LP、0、1、2和3,其優(yōu)先級別依次升高[11]。最低優(yōu)先級LP只能由系統(tǒng)SWILP指令產生;0~2優(yōu)先級用戶可以編程設置,主要用于外設和外部中斷請求;級別3是最高優(yōu)先級且不可屏蔽。

        具體設置某個中斷源的中斷優(yōu)先級,可通過設置中斷優(yōu)先級寄存器(INTC_IPR0~INTC_IPR7)中的相應位來實現[9]。如設置QSCI中斷優(yōu)先級,通過設置中斷優(yōu)先級寄存器(INTC_IPR2)中的QSCI0_RCV位實現,該位具體含義見表1。

        表1 QSCI的中斷優(yōu)先級設置

        從表1中可以看出,QSCI中斷可配置三個不同級別,即優(yōu)先級0、1和2。如果用戶不配置QSCI中斷的優(yōu)先級,則系統(tǒng)復位時,自動分配其優(yōu)先級為0;但是復位后,緊接著初始化QSCI模塊,其優(yōu)先級由0變?yōu)?。

        2.3 設置中斷屏蔽

        通過設置DSP56800E內核中的狀態(tài)寄存器SR的I0、I1位,實現屏蔽不同級別優(yōu)先級中斷,具體設置如表2所列。

        表2 中斷屏蔽位的設置

        2.4 中斷向量表的定義

        MC56F8257有67個中斷源,其向量號從0~66[9]。每個中斷源的中斷服務程序首地址放入中斷向量表中,當有中斷請求時,CPU通過中斷向量號在中斷向量表中找到其中斷服務程序的首地址,根據這個首地址找到中斷服務程序,進行中斷處理。

        中斷向量表在FLASH中的位置由向量基地址寄存器(VBA)決定。向量基地址寄存器VBA[12:0]為21位中斷向量表首地址的高13位,低8位自動補0。具體到某個模塊中斷服務程序首地址在中斷向量表中的位置,由向量基地址寄存器(VBA)及控制寄存器(INTC_CTRL)的VAB位決定;向量基地址寄存器VBA[12:0]為其在中斷向量表地址[20:0]的高13位[20:8],控制寄存器(INTC_CTRL)的VAB位為其地址的[7:1],低位補0。

        系統(tǒng)復位后,VBA的復位值為0x0000,系統(tǒng)進入復位中斷(向量號為0),相應的起始地址在0x00 0000處,這個過程系統(tǒng)自動完成。如果開放某個模塊中斷,則需要將該模塊中斷服務程序的首地址加載到中斷向量表中的相應位置。具體過程如下:首先建立中斷向量表,沒有開放的模塊中斷,在表中對應位置放入空函數的首地址(通過JSR isrDummy實現),開放的模塊中斷,在表中對應位置放入中斷服務程序的首地址,通常中斷服務程序由函數實現,在這里通過放入具體函數首地址實現。如開放QSCI0的接收中斷(向量號為32),則其中斷服務函數為isrSCI0_Recv,即可通過在向量表中加入JSR isrSCI0_Recv代碼實現。具體如下:

        volatile asm void _vect(void);

        #pragma define_section interrupt_vectors

        "interrupt_vectors.text" RX

        #pragma section interrupt_vectors begin

        volatile asm void _vect(void) {

        JSR init_MC56F824x_5x_ISR_HW_RESET

        /* Interrupt no. 0 (Used) - ivINT_Reset*/

        JSR isrDummy

        /* Interrupt no. 1 (Used) - ivINT_COPReset*/

        JSR isrDummy

        /* Interrupt no. 2 (Unused) - ivINT_Illegal_Instruction*/

        ?

        JSR isrSCI0_Recv

        /* Interrupt no. 32 (Used) - ivINT_QSCI0_RxFull*/

        ?

        JSR isrDummy

        /* Interrupt no. 65 (Unused) - ivINT_GPIO_A*/

        JSR isrDummy

        /* Interrupt no. 66 (Unused) - ivINT_LP*/

        }

        #pragma section interrupt_vectors end

        其中,isrDummy的函數形式如下:

        void isrDummy(void){

        }

        3 MC56F8257中斷設置過程

        MC56F8257中斷設置主要包括關閉總中斷、設置中斷屏蔽和開放總中斷三個過程。中斷的設置過程在主函數和中斷服務程序中都要得到體現,但二者在設置過程中有所差異。

        主函數中的中斷設置除了包括上述三個過程外,還包括開放模塊中斷及設置中斷優(yōu)先級,具體流程如下:一是關閉總中斷,目的是實現后續(xù)各個模塊中斷設置過程中不被外界干擾。二是開放模塊中斷,如果需要某個模塊中斷,可以使能該模塊中斷。三是設置各模塊中斷優(yōu)先級,主要應用于多個中斷請求的情況。在這種情況下,根據應用環(huán)境決定各個模塊中斷優(yōu)先順序,設置中斷優(yōu)先級,如果不設置優(yōu)先級,則系統(tǒng)會自動產生默認的優(yōu)先級。四是設置中斷屏蔽,通過屏蔽一定級別的中斷,使系統(tǒng)避免受其干擾。五是開放總中斷,在上述設置步驟完成后,通過開放總中斷,使其設置有效。

        中斷服務程序中的中斷設置包括關閉總中斷、設置中斷屏蔽和開放總中斷三個過程。關閉總中斷和開放總中斷過程同主函數,設置中斷屏蔽過程與主函數類似,但需要注意的是,主函數與中斷服務程序中的中斷屏蔽設置應保證所需的中斷不被屏蔽。

        4 測試及其分析

        4.1 測試條件與環(huán)境

        現以MC56F8257中的QSCI模塊中斷及CAN模塊中斷為例,說明上述中斷設置方法及實施過程,并對其過程進行分析。選用QSCI模塊的QSCI0傳輸數據,波特率設為9 600 bps。CAN模塊接收數據,CAN通信頻率為800 kHz。程序編譯調試環(huán)境為CodeWarrior 10.4,測試環(huán)境為串口調試工具SSCOM V2.0。

        4.2 測試結果與分析

        從不帶中斷優(yōu)先級、帶中斷優(yōu)先級和優(yōu)先級嵌套三個方面,測試分析MC56F8257中斷設置及實施過程。

        (1) 不帶中斷優(yōu)先級

        開放QSCI0接收中斷,不設置其中斷優(yōu)先級,采用系統(tǒng)默認優(yōu)先級2,不屏蔽該級別中斷,其主函數和中斷服務程序中的中斷代碼略——編者注。

        運行程序,從串口調試工具SSCOM V2.0發(fā)送字符“a”給MC56F8257,MC56F8257的QSCI0中斷接收,并將接收的數據發(fā)送給PC機,最終接收到字符“a”。

        如果屏蔽QSCI0接收中斷的默認優(yōu)先級為2,其主函數和QSCI接收中斷服務程序中的中斷代碼有所不同,相關代碼略——編者注。

        測試條件同上,其結果為接收不到字符“a”。

        (2) 帶中斷優(yōu)先級

        開放QSCI0接收中斷,設置其中斷優(yōu)先級,不屏蔽該級別中斷,其主函數和中斷服務程序中的中斷代碼略——編者注。

        測試結果同樣也能接收到字符“a”。

        如果屏蔽QSCI0接收中斷的優(yōu)先級0,其主函數和QSCI接收中斷服務程序中的中斷代碼有所不同,具體相關代碼略——編者注。

        其測試結果同樣是接收不到字符“a”。

        (3) 優(yōu)先級嵌套

        同時開放QSCI0接收中斷和CAN模塊接收中斷,并且前者優(yōu)先級高于后者,其主函數和中斷服務程序中的中斷代碼略——編者注。

        運行程序,當僅有CAN接收中斷請求時,CAN接收中斷服務程序接收字符串“CANMessage”,并通過QSCI0將該字符發(fā)送給串口調試工具。如果在這個過程中,又有QSCI0接收中斷請求,則CPU暫停CAN接收中斷服務程序的執(zhí)行,轉向QSCI0接收中斷服務程序處理,從串口調試工具窗口接收字符“a”,并發(fā)送給串口調試工具窗口。將QSCI0接收中斷服務程序執(zhí)行完成后,返回CAN接收中斷服務程序繼續(xù)執(zhí)行。

        如果開放QSCI0接收中斷和CAN模塊接收中斷,并且前者優(yōu)先級低于后者,其主函數和中斷服務程序中的中斷代碼略——編者注。

        運行程序,當僅有CAN接收中斷請求時,CAN接收中斷服務程序接收字符串“CANMessage”,并通過QSCI0將該字符發(fā)送給串口調試工具。如果在這個過程中,又有QSCI0接收中斷請求,則CPU不會響應其請求,繼續(xù)執(zhí)行CAN接收中斷服務程序,繼續(xù)發(fā)送字符串“CANMessage” 給串口調試工具。

        結 語

        本文以MC56F8257為例,分析DSC中斷系統(tǒng),該系統(tǒng)具有處理多達67個中斷源的能力,并能夠給這些中斷源賦予不同的優(yōu)先級,實現中斷嵌套,并提供標準和快速中斷處理兩種模式,這些特點可使該系統(tǒng)被廣泛應用。

        上述特點也帶來中斷設置的靈活性,但是如果設置不當,會出現錯誤。本文在分析中斷系統(tǒng)的同時給出其中斷設置方法及過程,并詳細分析中斷優(yōu)先級設置過程及注意事項。

        最后,以MC56F8257中的QSCI模塊中斷及CAN模塊中斷為例,從不帶中斷優(yōu)先級、帶中斷優(yōu)先級和優(yōu)先級嵌套三個方面,分析中斷設置過程及響應結果,結果進一步驗證了MC56F8257中斷處理具有屏蔽及優(yōu)先級可配置等特點。

        [1] 林志貴,王宜懷. 數字信號控制器原理與實踐——MC56F8257[M]. 北京:北京航空航天大學出版社,2014.

        [2] 林志貴. 微型計算機原理及接口技術[M].北京:機械工業(yè)出版社,2010.

        [3] Zhao Yongxin, Huang Yanhong, He Jifeng, et al. Formal Model of Interrupt Program from a Probabilistic Perspective[C]// 2011 16th IEEE International Conference on Engineering of Complex Computer Systems, Las Vegas, NV, United states, 2011:87-94.

        [4] 李敏. 計算機中斷系統(tǒng)淺談[J]. 福建電腦,2011(8):74-75.

        [5] 田永紅. 利用中斷屏蔽技術修改中斷優(yōu)先級[J].企業(yè)技術開發(fā),2011,30(22):15-16.

        [6] Strnadel, Josef. On design of priority-driven load-adaptive monitoring-based hardware for managing interrupts in embedded event-triggered real-time systems[C]// 2013 IEEE 16th International Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS), Karlovy Vary, Czech Republic, 2013: 9-24.

        [7] Wei Chipin, Li Zhaolin,Zheng Qingwei,et al. Design of a configurable multichannel interrupt controller[C]// 2010 Second Pacific-Asia Conference on Circuits Communications and Systems (PACCS 2010), Beijing, 2010 :30-327.

        [8] Geng Rui,Hong Yi,Huang Guanghong.Testing Method for Interrupt Handling Mechanism of C Compiling System[J]. Microcomputer Information,2011(5): 4-182.

        [9] Freescale. MC56F825x/4x Reference Manual, Rev.3.04,2011.

        [10] 王宜懷,朱仕浪,郭蕓. 嵌入式技術基礎與實踐——ARM Cortex-M0+ Kinetis L系列微控制器[M]. 3版.北京:清華大學出版社,2013.

        [11] Freescale. DSP56800E and DSP56800EX Core Reference Manual, Rev.3.09,2011.

        林志貴(副教授),主要研究方向為嵌入式系統(tǒng)、無線傳感器網絡。

        Analysis and Implementation of Interrupt System inDigital Signal Controller

        Lin Zhigui, Yao Fangqin, Li Min, Liu Ying

        (School of Electronics and Information Engineering, Tianjin Polytechnic University, Tianjin 300387, China)

        Digital Signal Controller (DSC) has the ability of digital signal processing and MCU control interface. The interrupt system has many functions, which brings more conveniences for applications and the complexity of settings. Taking MC56F8257 as an example, this paper analyzes interrupt system of DSC and its setting methods in detail. Taking the QSCI module interrupt and CAN module interrupt of MC56F8257 as an example, the interrupt setting process and its responding results of DSC are analyzed from three aspects including without interrupt priority, with interrupt priority and interrupt nesting. The results prove that the DSC interrupt has priority and mask characteristics, which provides guidance to promote the use of DSC chips.

        digital signal controller; interrupt system; priority; MC56F8257

        TP33

        A

        2014-03-04)

        猜你喜歡
        服務程序寄存器中斷
        基于移動終端的人事信息員工自助服務系統(tǒng)設計
        基于C#的進程守護程序的設計
        視聽(2020年3期)2020-06-11 14:28:18
        Lite寄存器模型的設計與實現
        計算機應用(2020年5期)2020-06-07 07:06:44
        跟蹤導練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        分簇結構向量寄存器分配策略研究*
        水利工程施工監(jiān)理服務程序及質量控制
        AT89C51與中斷有關的寄存器功能表解
        FPGA內嵌PowerPC的中斷響應分析
        微處理機(2012年4期)2012-06-13 11:32:24
        高速數模轉換器AD9779/AD9788的應用
        一个人午夜观看在线中文字幕| 久久精品人人做人人爽| 3d动漫精品啪啪一区二区下载 | 老熟女富婆激情刺激对白| 真实人与人性恔配视频| 性高朝久久久久久久| 亚洲一区二区高清精品| 日本高清二区视频久二区| 日韩人妻系列在线观看| 国产成人av乱码在线观看| 久热这里只有精品视频6| 亚州精品无码人妻久久| 亚洲精品熟女乱色一区| 亚洲不卡av一区二区三区四区| 日韩av无码一区二区三区| 天天燥日日燥| 亚洲区日韩精品中文字幕| 女同国产日韩精品在线| www.尤物视频.com| 国产一级黄色片一区二区| 黄色av一区二区在线观看| 亚洲a∨国产av综合av下载| 人人妻人人澡av天堂香蕉| 国产 无码 日韩| 国产在线视频网友自拍| 亚洲av无码专区国产不卡顿| 久久久久女人精品毛片| 自拍亚洲一区欧美另类| 麻豆av在线免费观看精品| 91精品国产色综合久久| 无码aⅴ免费中文字幕久久| 欧美高大丰满freesex| 国产成人午夜av影院| 国产高清精品一区二区| 99久久精品国产一区二区| 亚洲熟伦熟女新五十路熟妇| 国产呦系列呦交| 日本不卡视频一区二区三区| 久久96国产精品久久久| 国产又黄又猛又粗又爽的a片动漫| 国产精品天干天干在线观蜜臀|