摘 要:隨著現(xiàn)代科學(xué)技術(shù)的不斷發(fā)展,對(duì)ARM微處理器的研究也不斷的發(fā)展。本文對(duì)微處理器的中斷響應(yīng)時(shí)間進(jìn)行了實(shí)驗(yàn)研究,對(duì)ARM微處理器S3C2440A的中斷處理機(jī)制進(jìn)行分析,并在此基礎(chǔ)上設(shè)計(jì)了一種實(shí)驗(yàn)測(cè)定中斷響應(yīng)時(shí)間的方法,從而對(duì)在理想狀態(tài)下S3C2440A的快速中斷FIQ和標(biāo)準(zhǔn)中斷IRQ的響應(yīng)時(shí)間做出了對(duì)比,對(duì)其實(shí)驗(yàn)數(shù)據(jù)在分析處理之后,進(jìn)行了模擬函數(shù)的研究。
關(guān)鍵詞:ARM;微處理器;中斷響應(yīng)時(shí)間;實(shí)驗(yàn)
中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)04-0034-03
Abstract:With the continuous development of modern science and technology,the research on ARM microprocessor has also been developed continuously,which needs to be studied experimentally in the interrupt response time of the microprocessor. In this paper,the interruption processing mechanism of the ARM microprocessor S3C2440A is analyzed. On this basis,a method of testing the interrupt response time is designed,and the response time of the fast interrupt FIQ and the standard interrupt IRQ in the ideal state is compared,and the experimental data are in the case of the S3C2440A. After analyzing and processing,the simulation function is studied.
Keywords:ARM;microprocessor;interrupt response time;experiment
0 引 言
隨著現(xiàn)代化的建設(shè),ARM微處理器得到了迅速的發(fā)展。隨著現(xiàn)代化科技的不斷發(fā)展,人們對(duì)于性能、速度、存儲(chǔ)量、通信能力、功能的多樣性、開發(fā)的方便程度及耗電的多少等不斷提出更高的要求。因此,微處理器的中斷時(shí)間響應(yīng)方面也需要進(jìn)行實(shí)驗(yàn)和研究,其中ARM處理器就近年來(lái)發(fā)展十分迅猛的一種體系結(jié)構(gòu)。從51系列單片機(jī)到ARM處理器是一個(gè)很大的跨越,主要原因是ARM處理器完全不同于51系列單片機(jī),其結(jié)構(gòu)十分復(fù)雜。
1 ARM概述
ARM主要應(yīng)用在單片機(jī)的運(yùn)行中,ARM不屬于單片機(jī),而是一個(gè)單片機(jī)的內(nèi)核中央處理器。其運(yùn)行的過(guò)程離不開外圍設(shè)備。它可以設(shè)計(jì)各種模塊,在模塊中,其設(shè)計(jì)是相對(duì)簡(jiǎn)單,且比較靈活的,因此比較容易移植。在最終的實(shí)現(xiàn)模塊中,鏈接總線中模塊的多少不會(huì)對(duì)ARM造成很大的影響。在此種情況下,可以在單片機(jī)內(nèi)進(jìn)行不同功能模塊的設(shè)計(jì)和實(shí)現(xiàn)。
因此在設(shè)計(jì)的過(guò)程中,利用ARM核心技術(shù)來(lái)進(jìn)行設(shè)計(jì)可以保證其穩(wěn)定性和科學(xué)性,設(shè)計(jì)圖如圖1所示。
模塊的寄存器在總線中有固定的地址,其中的ARM在對(duì)地址的操作方面需要實(shí)現(xiàn)對(duì)寄存器的控制和檢測(cè),最終在各種模塊的控制和檢測(cè)的基礎(chǔ)上實(shí)現(xiàn)不同的功能。在設(shè)計(jì)中,ARM核只是把外部模塊作為不同的地址對(duì)象,各個(gè)模塊的不同對(duì)ARM處理器來(lái)說(shuō),僅僅是地址不同而已。
2 S3C2440A的中斷處理機(jī)制
本文主要對(duì)S3C2440A的中斷處理機(jī)制進(jìn)行了分析,其中在中斷模式和中斷流程方面主要可以分為兩種類型:標(biāo)準(zhǔn)中斷模式IRQ和快速中斷模式FIQ。
在中斷的過(guò)程中,可以在中斷模式寄存器的基礎(chǔ)上實(shí)現(xiàn)相應(yīng)的設(shè)置操作,其中的中斷處理器流程圖如圖2所示,在中斷處理流程中,主要包括一級(jí)中斷源(Request Sources Without Sub-register)和二級(jí)中斷源(Request Sources With Sub-register)的處理流程。與此同時(shí),在FIQ方面,其優(yōu)先級(jí)比IRQ高,并且同時(shí)只能有一個(gè)中斷源被設(shè)置為FIQ模式,所以無(wú)須進(jìn)行優(yōu)先級(jí)仲裁,進(jìn)入中斷服務(wù)程序后也不需要判斷中斷源。
在中斷的相關(guān)時(shí)鐘信號(hào)方面,主要可以分為FCLK和HCLK。其中,HCLK主要實(shí)現(xiàn)了對(duì)FCLK的分頻處理,其中分頻值通過(guò)設(shè)置CAMDIVN和CLKDIVN寄存器來(lái)確定。在中斷的過(guò)程中,主要利用其中的中斷控制器來(lái)進(jìn)行處理,其處理過(guò)程需要以硬件的方式來(lái)進(jìn)行中斷控制器的有效處理。在最終的中斷控制器當(dāng)中,需要進(jìn)行總線的鏈接,可以稱總線中的具備設(shè)備運(yùn)行時(shí)鐘為HCLK。在實(shí)際運(yùn)行的過(guò)程中,中斷服務(wù)器的執(zhí)行需要利用CPU來(lái)進(jìn)行具體操作,其中可以運(yùn)用時(shí)鐘的方式來(lái)進(jìn)行決定。具體的運(yùn)行方式需要根據(jù)CPU本身的時(shí)鐘模式來(lái)進(jìn)行分析和決定。對(duì)于CAMDIVN和CLKDIVN寄存器來(lái)說(shuō),可以保證HCL和FCLK處于相等的模式,在此種情況下,CPU的時(shí)鐘模式應(yīng)設(shè)置為快速總線模式(FastBus Mode,即CPU的缺省時(shí)鐘模式)。如果將HCLK和FCLK的狀態(tài)設(shè)置在了不同的情況,那么CPU本身的時(shí)鐘模式需要設(shè)置為異步模式的方式。
在分析中斷的響應(yīng)時(shí)間時(shí),需要利用中斷響應(yīng)時(shí)間來(lái)進(jìn)行具體數(shù)值的分析,其中主要對(duì)中斷觸發(fā)到中斷服務(wù)器程序入口部分需要的時(shí)間進(jìn)行理論分析。本文主要對(duì)S3C2440A用戶手冊(cè)進(jìn)行分析研究,進(jìn)行FIQ中斷的分析,在此種情況下,如果出現(xiàn)了最長(zhǎng)的響應(yīng)時(shí)間,即中斷響應(yīng)時(shí)間,需要對(duì)中斷請(qǐng)求信號(hào)通過(guò)同步器的時(shí)間syncmax T、完成當(dāng)前正在處理的指令的時(shí)間ldm T、取數(shù)異常的處理時(shí)間exc T以及FIQ中斷服務(wù)程序入口時(shí)間fiq T這幾種因素進(jìn)行分析。在具體分析時(shí),最長(zhǎng)的響應(yīng)時(shí)間為28個(gè)處理器時(shí)鐘周期。因此在實(shí)際的運(yùn)行過(guò)程中,想要達(dá)到最長(zhǎng)響應(yīng)時(shí)間為1.4μs,則處理器的時(shí)鐘頻率需要達(dá)到20MHz。IRQ的最長(zhǎng)響應(yīng)時(shí)間計(jì)算是類似的,但是在實(shí)際的操作中,由于FIQ比IRQ的優(yōu)先級(jí)高,因此在系統(tǒng)的延遲方面會(huì)對(duì)IRQ的響應(yīng)會(huì)造成一定程度的影響,也就是說(shuō)其中產(chǎn)生的延遲時(shí)間主要是根據(jù)FIQ中斷服務(wù)程序的執(zhí)行時(shí)間決定的。
3 實(shí)驗(yàn)測(cè)試
本文主要對(duì)主程序和中斷服務(wù)程序進(jìn)行了分析和測(cè)試,其中主要的流程圖如圖3所示。
在測(cè)試的過(guò)程,需要主程序利用寄存器進(jìn)行設(shè)置來(lái)完成。在對(duì)其進(jìn)行一級(jí)中斷出發(fā)的過(guò)程中,需要在定時(shí)器的基礎(chǔ)上進(jìn)行實(shí)踐。在對(duì)其進(jìn)行測(cè)試的過(guò)程中,需要將定時(shí)器和APB總線(Advanced Peripheral Bus)進(jìn)行充分的鏈接,此時(shí)總線當(dāng)中包含的所有輸入設(shè)備時(shí)鐘都可以稱之為PCLK。PCLK可以實(shí)現(xiàn)FCLK的分頻處理,在處理的過(guò)程中,需要在寄存器CAMDIVN和CLKDIVN的結(jié)合下進(jìn)行分頻設(shè)置。對(duì)于用戶來(lái)說(shuō),也需要對(duì)寄存器TCFG0和TCFG進(jìn)行充分的設(shè)置,從而實(shí)現(xiàn)對(duì)PCLK的分頻設(shè)置,最終利用此種方式來(lái)獲取一定數(shù)值的時(shí)鐘。在本文的測(cè)試中,TMR_CLK設(shè)置為PCLK/2,利用的遞減計(jì)數(shù)器為16bit,需要在TCNTB0寄存器的基礎(chǔ)上進(jìn)行初始值的設(shè)置和設(shè)定。在啟動(dòng)定時(shí)器之后,其具備的數(shù)值就在時(shí)鐘信號(hào)的觸發(fā)下做出一系列的操作,實(shí)現(xiàn)了遞減的效果,最終在達(dá)到0的狀態(tài)下產(chǎn)生中斷的現(xiàn)象。
4 實(shí)驗(yàn)數(shù)據(jù)與結(jié)論
在本次實(shí)驗(yàn)中,主要對(duì)YC2440-F進(jìn)行了實(shí)驗(yàn)研究,并對(duì)其中的硬件配置做出了相關(guān)的測(cè)試和分析。測(cè)試的過(guò)程中,在S3C2440A中主要采取了32bit ARM920T內(nèi)核以及內(nèi)4KBSRAM來(lái)共同實(shí)現(xiàn),并對(duì)系統(tǒng)的啟動(dòng)階段進(jìn)行實(shí)際運(yùn)行。對(duì)運(yùn)行的時(shí)鐘分析過(guò)程中,經(jīng)過(guò)測(cè)試,可以發(fā)現(xiàn)CPU工作頻率FCLK已經(jīng)達(dá)到405MHz的狀態(tài);在對(duì)AHB總線頻率HCLK進(jìn)行測(cè)試之后,可以發(fā)現(xiàn)其頻率達(dá)到136MHz的狀態(tài);對(duì)APB總線頻率PCLK經(jīng)過(guò)測(cè)試,已經(jīng)達(dá)到了68MHz的狀態(tài)。與此同時(shí),在對(duì)64MB NAND flash方面進(jìn)行測(cè)試的時(shí)候,需要實(shí)現(xiàn)對(duì)程序存儲(chǔ)的有效測(cè)試。在進(jìn)行測(cè)試的實(shí)際過(guò)程中,需要最大限度地對(duì)FIQ和IRQ中斷服務(wù)程序進(jìn)行測(cè)試。對(duì)CPU時(shí)鐘模式可以采用異步模式和快速總線模式進(jìn)行測(cè)試。在高速緩存Cache方面可以采用禁用或啟用的方式。在FCLK頻率方面,主要可以分為405MHz、304MHz和271.5MHz作為測(cè)試的數(shù)值。在FCLK、HCLK、PCLK的比值方面,采用1:4:8、1:8:8、1:3:6、1:6:6以及1:6:12這幾種情況。對(duì)上述數(shù)值進(jìn)行結(jié)合,每種工況都需要采集10000個(gè)計(jì)數(shù)值TCNTO0,然后取平均值。本文主要對(duì)部分工況下的實(shí)驗(yàn)數(shù)進(jìn)行了統(tǒng)計(jì)分析,如表1所示。
在對(duì)上述不同工況的中斷響應(yīng)時(shí)間數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析之后,進(jìn)行了圖表的分析和研究,如圖4和圖5所示,其中橫坐標(biāo)為HCLK,縱坐標(biāo)為中斷響應(yīng)時(shí)間。
5 結(jié) 論
綜上所述,經(jīng)過(guò)本文的實(shí)驗(yàn)研究,在不受到任何干擾的情況下,對(duì)ARM微處理器的中斷響應(yīng)的時(shí)間做出了詳細(xì)的分析。對(duì)實(shí)驗(yàn)數(shù)據(jù)做出分析的過(guò)程中,需要保證中斷控制器本身的運(yùn)行時(shí)鐘頻率處于正常的狀態(tài),從而對(duì)其高速緩存做出相對(duì)應(yīng)的有效處理。因此,要獲取較快的中斷響應(yīng),就需要使用頻率較高的中斷控制器,最終實(shí)現(xiàn)處理器的高速運(yùn)行。
參考文獻(xiàn):
[1] 高珍.ARM推出高效64位處理器Cortex—A50系列 [J].通訊世界,單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(12):26.
[2] Peter Greenhalgh.ARM的A/R/M設(shè)計(jì)目標(biāo):適合的處理器來(lái)執(zhí)行對(duì)應(yīng)的任務(wù) [J].電子產(chǎn)品世界,2016,23(8):30-33+83.
[3] 張建,李付坤,孫廣富.基于ARM處理器的PC/104模塊設(shè)計(jì) [J].微處理機(jī),2008 (2):8-10+14.
[4] 朱望純,張碩,蔣漢林.基于ARM與FPGA高速數(shù)據(jù)通信接口設(shè)計(jì) [J].桂林電子科技大學(xué)學(xué)報(bào),2017,37(4):293-297.
[5] 張順,嚴(yán)宏志,韓奉林,等.基于ARM和freeRTOS的圍棋機(jī)器人控制器設(shè)計(jì) [J].制造業(yè)自動(dòng)化,2018,40(1):28-32+73.
作者簡(jiǎn)介:竇萌萌(1986-),女,漢族,河南鶴壁人,助教,碩士。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。