Flash數(shù)據(jù)讀取電路的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及FLASH數(shù)據(jù)讀取電路,尤其涉及一種提高AHB總線數(shù)據(jù)輸入效率的FLASH數(shù)掘讀取電路。
【背景技術(shù)】
[0002]在系統(tǒng)設(shè)計中,為了滿足相應(yīng)的性能,必須有很高的代碼執(zhí)行速度,故訪問外部FLASH的代碼速度要有保證。在以往的設(shè)計中,并行接口閃存(FLASH)被釆用來達到告訴數(shù)據(jù)訪問的目的。但是并行按口占用的芯片管腳很多,面對成本要求越來越嚴格的市場現(xiàn)狀,串行接口 SPI逐漸取代并行接口,成為系統(tǒng)方案不可缺少的部分。通常系統(tǒng)為了簡化設(shè)計,SPI接口一般直接和APB總線相連。指令的讀取通過DMA來進行搬運。但是高級外圍總線(Advanced Peripheral Bus ;APB)的設(shè)計主要是針對低功耗,頻率比較低。串行接口 SPI的數(shù)掘位寬為一個比特,這就使得數(shù)據(jù)傳輸速度下降,成為系統(tǒng)性能提高的瓶頸。系統(tǒng)的成本和性能成為矛盾。為了使讀取FLASH的數(shù)據(jù)頻率提高,可以把FLASH串行外圍接口 (Serial peripheral Interface ;SPI)直接和AHB高速總線相連接,其目的是進而増加數(shù)據(jù)吞吐量。這樣的設(shè)計還存在一個問題:SPI的數(shù)據(jù)讀取速度遠低于系統(tǒng)運行的速度,而且高級系統(tǒng)總線(AHB ;Advanced High performance Bus)是系統(tǒng)的高速總線,一旦被占用則其他需要數(shù)據(jù)傳輸?shù)闹髟O(shè)備將被掛起,直到SPI接口數(shù)據(jù)傳輸結(jié)束。這很大程度上損害了系統(tǒng)的整體性能。針對這個現(xiàn)象,本發(fā)明提出一個基于AHB總線的修改方案,既能保證SPI接口的簡潔,又能保證系統(tǒng)的高性能。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種應(yīng)用在S0C芯片內(nèi)部的FLASH數(shù)據(jù)讀取電路,用以提高外部FLASH數(shù)據(jù)讀取速度,同時可以避免DMA的設(shè)計。
[0004]本發(fā)明主要包含三個部分:AHB總線接口電路,用于根據(jù)接收到的AHB主設(shè)備指令來配置參數(shù),以及鎖存AHB總線上的地址和數(shù)據(jù);AHB協(xié)議轉(zhuǎn)換電路,使用AHB標準協(xié)議,并對FLASH設(shè)備的數(shù)據(jù)讀取使用特殊指令;及FLASH SPI串行接口控制電路,用于在接到所述特殊指令的控制信號后讀寫FLASH設(shè)備。
[0005]AHB總線接口電路解析AHB總線協(xié)議,并鎖存相關(guān)的地址、控制和數(shù)據(jù)。AHB協(xié)議轉(zhuǎn)換電路通過AHB標準協(xié)議的AHB總線命令,將讀指令分為兩步:先寫地址、長度,然后再讀取數(shù)據(jù)。特殊指令包括系統(tǒng)通過處理器發(fā)出的特殊寫命令,以及根據(jù)FLASH的傳輸狀況發(fā)出的讀取命令;AHB總線接口電路解析AHB總線命令,如果解析得到特殊寫命令,就立刻通過HRESP信號回復總線一個OKAY狀態(tài),使得AHB總線被釋放;FLASHSPI串行接口控制電路計算數(shù)據(jù)讀取所需要的時鐘數(shù),在數(shù)據(jù)真正準備好之后,系統(tǒng)再通過AHB總線發(fā)出一個讀取命令來得到數(shù)掘。FLASH SPI串行接口控制電路包括直接和AHB總線相連接的SPI接口,讀、寫復用的內(nèi)部FIFO,和用于和SPI接口通信的通信電路;FLASH SPI串行接口控制電路接收到特殊指令后,立刻按照FLASH接口標準將數(shù)據(jù)讀取到FIFO中。
[0006]本發(fā)明的優(yōu)點在于可以兼顧系統(tǒng)的成本和性能兩方面需求。而且使用的是標準AHB總線傳輸協(xié)議,增加部分是在基本協(xié)議層以上,系統(tǒng)軟件修改十分簡単,而且對后期驗證沒有任何影響。
【附圖說明】
[0007]圖1為根據(jù)本發(fā)明一實施例的系統(tǒng)電路的結(jié)構(gòu)示意圖。
[0008]圖2為根掘本發(fā)明FLASH數(shù)據(jù)讀取電路的內(nèi)部結(jié)構(gòu)示意圖。
[0009]圖3為本發(fā)明一實施例的FLASH數(shù)據(jù)讀取電路的工作波形圖。
【具體實施方式】
[0010]本發(fā)明的設(shè)計方案延用通用AHB協(xié)議,不改動最底層的AHB傳輸協(xié)議,只修改上層協(xié)議解析部分,從而達到統(tǒng)一驗證環(huán)境以及靈活實現(xiàn),方便系統(tǒng)移植的目的。本發(fā)明不僅能提高FLASH數(shù)據(jù)讀取效率,而且基本上沒有增加系統(tǒng)的設(shè)計復雜度。系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。圖1中,SDRAM通過外部存儲器接口連接到AHB總線,RISC處理器直接連接到AHB總線,F(xiàn)LASH設(shè)備通過FLASH數(shù)據(jù)讀取電路連接到AHB總線。
[0011]為實現(xiàn)系統(tǒng)的高速執(zhí)行效率,指令從FLASH中讀取的速度和效率都有一定要求。故本發(fā)明將FLASH SPI串行接口和AHB高速總線相連接以達到數(shù)據(jù)傳輸?shù)母哳l率,高帶寬。同時為了保證系統(tǒng)其他模塊的高性能,AHB總線不能被FLASH接口長時間占用,僅僅在指令數(shù)據(jù)集中傳輸?shù)臅r候才占用總線。
[0012]如圖2所示,本發(fā)明的FLASH數(shù)據(jù)讀取電路主要由三部分電路組成:AHB總線接口電路,AHB協(xié)議轉(zhuǎn)換電路,及FLASH SPI申行接口控制電路。
[0013]AHB總線接口電路用于根據(jù)接收到的AHB主設(shè)備指令來配置參數(shù),以及鎖存AHB總線上的地址和數(shù)掘。AHB總線接口電路解析AHB總線協(xié)議,并鎖存相關(guān)的地址、控制和數(shù)據(jù)。其中地址和控制信號放入地址和控制電路,數(shù)據(jù)存放在數(shù)據(jù)FIFO中。
[0014]AHB協(xié)議轉(zhuǎn)換電路需要系統(tǒng)指令配合實現(xiàn)高速數(shù)據(jù)讀取。AHB協(xié)議轉(zhuǎn)換電路通過AHB總線命令,將讀指令分為兩步:先寫地址、長度,然后再讀取數(shù)據(jù)。FLASH數(shù)據(jù)讀取被本發(fā)明分為兩段:系統(tǒng)首先通過RISC處理器發(fā)出特殊寫命令;然后再根據(jù)FLASH的傳輸狀況發(fā)出讀取命令。特殊寫命令通過AHB總線到達AHB總線接口電路。AHB總線接口電路解析AHB總線命令,看到是特殊寫命令,就立刻通過HRESP信號回復總線一個OKAY狀態(tài)。
[0015]這就使得AHB總線被釋放,其他總線上的主設(shè)備可以繼續(xù)訪問總線。而通常的讀命令則必須等待設(shè)備數(shù)據(jù)準備好,設(shè)備再通過HREADY信號高速AHB總線取數(shù)據(jù)。這樣的實現(xiàn)使得AHB總線一直被占用,直到數(shù)據(jù)被讀取出來,系統(tǒng)的效率非常低下。
[0016]FLASH SPI串行接口控制電路包括直接和AHB總線相連接的SPI接口,讀、寫復用的內(nèi)部FIFO,和用于和SPI接口通信的通信電路。在接收到系統(tǒng)特殊寫命令后,F(xiàn)LASH SPI串行接口控制電路立刻按照FLASH接口標準將數(shù)據(jù)讀取到內(nèi)部FIFO中。根據(jù)FLASH的讀取協(xié)議,F(xiàn)LASH SPI串行接口控制電路可以很容易計算出數(shù)據(jù)讀取所需要的時鐘數(shù)。在數(shù)據(jù)真正準備好之后,系統(tǒng)再通過AHB總線發(fā)出一個讀取命令就可以拿到數(shù)掘。在特殊寫命令和后續(xù)讀取命令之間的AHB就可以被系統(tǒng)其他模塊任意使用。
[0017]圖3為本發(fā)明實現(xiàn)電路的時序波形示意圖。根據(jù)AHB協(xié)議首先發(fā)出特殊寫指令,HWRITE為高表示對目的地址寫,HADDR總線上是SPI接口內(nèi)部的特設(shè)寄存器,用于存放目的地址和所要讀取數(shù)據(jù)長度的信息。目的地址和數(shù)據(jù)長度由HWDATA提供。CONTROL上是AHB標準的控制信息。在特殊寫指令完成后,SPI接口電路立刻回復0KAY,釋放AHB總線。同時啟動內(nèi)部電路從FLASH讀出的數(shù)據(jù)到FIFO中。等到數(shù)據(jù)準備完成后,系統(tǒng)再發(fā)出數(shù)據(jù)讀取指令,這個指令和通常AHB總線讀取指令完全一樣。HWRITE由于是讀取數(shù)掘而貴為低,HADDR不斷發(fā)出待讀取數(shù)據(jù)的地址,從FIFO中取出的數(shù)據(jù)就體現(xiàn)在HRDATA總線上。至此,一個完整的讀取過程結(jié)束。
[0018]本發(fā)明的優(yōu)點在于完全和AHB協(xié)議兼容,不僅方便設(shè)計,而且在驗證方面能節(jié)省很多時間。此外,AHB高速總線的性能得到保障,F(xiàn)LASH讀取數(shù)據(jù)的效率很高,基本上和系統(tǒng)時鐘同頻。而且完全避免AHB總線等待外部數(shù)據(jù)準備的情況。最后,排除了 DMA設(shè)計的需求,簡化系統(tǒng)設(shè)計復雜度,保持模塊設(shè)計相當?shù)莫毩⑿裕M一步節(jié)省了芯片的成本和設(shè)計風險。
【主權(quán)項】
1.一種FLASH數(shù)據(jù)讀取電路,包括AHB總線接口電路、AHB協(xié)議轉(zhuǎn)換電路、FLASH SPI串行接口控制電路,其特征在于: 所述的AHB總線接口電路,用于根掘接收到的AHB主設(shè)備指令來配置參數(shù),以及鎖存AHB總線上的地址和數(shù)據(jù); AHB協(xié)議轉(zhuǎn)換電路,使用AHB標準協(xié)議,并對FLASH設(shè)備的數(shù)據(jù)讀取使用特殊指令;及FLASH SPI串行接口控制電路,用于在接收到所述特殊指令的控制信號后讀寫FLASH設(shè)備。2.根據(jù)權(quán)利要求1所述的FLASH數(shù)掘讀取電路,其特征在于,所述的AHB總線接口電路解析AHB總線協(xié)議,并鎖存相關(guān)的地址、控制和數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的FLASH數(shù)據(jù)讀取電路,其特征在于,所述的AHB協(xié)議轉(zhuǎn)換電路通過AHB標準協(xié)議的AHB總線命令,將讀指令分為兩步:先寫地址、長度,然后再讀取數(shù)據(jù)。4.根據(jù)權(quán)利要求1或3所述的FLASH數(shù)據(jù)讀取電路,其特征在于,所述特殊指令包括系統(tǒng)通過處理器發(fā)出的特殊寫命令,以及根據(jù)FLASH的傳輸狀況發(fā)出的讀取命令。5.根據(jù)權(quán)利要求4所述的FLASH數(shù)掘讀取電路,其特征在于,所述的AHB總線接口電路解析AHB總線命令,如果解析得到特殊寫命令,就立刻通過HRESP信號回復總線一個OKAY狀態(tài),使得AHB總線被釋放。6.根據(jù)權(quán)利要求5所述的FLASH數(shù)據(jù)讀取電路,其特征在于,所述的FLASHSPI串行接口控制電路計算數(shù)據(jù)讀取所需要的時鐘數(shù),在數(shù)據(jù)真正準備好之后,系統(tǒng)再通過AHB總線發(fā)出一個讀取命令來得到數(shù)掘。7.根據(jù)權(quán)利要求1或2所述的FLASH數(shù)據(jù)讀取電路,其特征在于,所述的FLASHSPI串行接口控制電路包括直接和AHB總線相連接的SPI接口,讀、寫復用的內(nèi)部FIFO和用于和SPI接口通信的通信電路。8.根據(jù)權(quán)利要求7所述的FLASH數(shù)據(jù)讀取電路,其特征在于,所述的FLASHSPI串行接口控制電路接收到特殊指令后,立刻按照FLASH接口標準將數(shù)據(jù)讀取到FIFO中。
【專利摘要】本發(fā)明提供一種FLASH數(shù)據(jù)讀取電路,是應(yīng)用在SOC芯片內(nèi)部,用以提高外部FLASH數(shù)據(jù)讀取速度的電路設(shè)計。該FLASH數(shù)據(jù)讀取電路包括AHB總線接口電路,用于根據(jù)接收到的AHB主設(shè)備指令來配置參數(shù),以及鎖存AHB總線上的地址和數(shù)據(jù);AHB協(xié)議轉(zhuǎn)換電路,使用AHB標準協(xié)議,并對FLASH接口的數(shù)據(jù)讀取使用特殊指令;及FLASH?SPI串行接口控制電路,用于在接收到所述特殊指令的控制信號后讀寫FLASH設(shè)備。本發(fā)明提出一個基于AHB總線的修改方案,既能保證SPI接口的簡潔,降低系統(tǒng)成本,又能保證系統(tǒng)的高性能。
【IPC分類】G06F13/42, G06F13/16
【公開號】CN105320637
【申請?zhí)枴緾N201510689488
【發(fā)明人】張鐳, 李春峰
【申請人】西安中科晶像光電科技有限公司
【公開日】2016年2月10日
【申請日】2015年10月23日