專利名稱:從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)和集成電路技術(shù)領(lǐng)域,具體地說,本發(fā)明涉及一種數(shù)據(jù)傳輸模塊。
背景技術(shù):
隨著嵌入式系統(tǒng)和集成電路的發(fā)展,F(xiàn)LASH芯片(下面稱FLASH)正被越來越多地應(yīng)用到嵌入式系統(tǒng)及SOC (System on Chip的縮寫,稱為系統(tǒng)級(jí)芯片,也有稱片上系統(tǒng))中。FLASH具有存儲(chǔ)密度高,讀出數(shù)據(jù)快的特點(diǎn),每單位存儲(chǔ)價(jià)格低,在嵌入式系統(tǒng)中適合大容量數(shù)據(jù)存儲(chǔ)。而SRAM—般作為片內(nèi)緩存,特點(diǎn)是速度快,不必配合內(nèi)存刷新電路,可提高整體的工作效率且更為快速,功耗非常低(特別是在空閑狀態(tài)下功耗極低)。因此SRAM首選用于帶寬要求高,或者功耗要求低,或者二者兼而有之。在沒有集成片內(nèi)FLASH的芯片中,往往需要將芯片外接的FLASH中的數(shù)據(jù)傳輸?shù)狡瑑?nèi)SRAM。 現(xiàn)有技術(shù)主要基于DMA (Direct Memory Access,直接內(nèi)存存取)控制器實(shí)現(xiàn)不同類型存儲(chǔ)器之間的數(shù)據(jù)傳輸。DMA控制器可以視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)器與每個(gè)具有DMA能力的外設(shè)連接起來的控制器。它是在CPU的編程控制下來執(zhí)行傳輸?shù)?,因此需要?qū)動(dòng)程序等軟件的支持。通過軟件來實(shí)現(xiàn)FLASH至SRAM的數(shù)據(jù)傳輸很耗費(fèi)時(shí)鐘周期,讀寫速度較低,往往不適合用于嵌入式系統(tǒng)中。目前還有一類技術(shù)是設(shè)計(jì)FLASH控制器,用硬件實(shí)現(xiàn)對(duì)FLASH的讀寫操作。例如中國(guó)專利申請(qǐng)200710164187. 9、中國(guó)專利申請(qǐng)200810116296. 8、中國(guó)專利申請(qǐng)201010513438. I分別披露了各自的FLASH控制器實(shí)現(xiàn)方案。這些技術(shù)在一定程度上提高了數(shù)據(jù)傳輸速度。然而,從FLASH所讀出的數(shù)據(jù)拷貝到SRAM的過程仍然要依靠DMA控制器(或類似設(shè)備)實(shí)現(xiàn),因此從FLASH到SRAM的整體數(shù)據(jù)傳輸速度仍然有待提高。另一方面,現(xiàn)有技術(shù)中,數(shù)據(jù)寫入SRAM過程中將持續(xù)占用SRAM,這樣會(huì)導(dǎo)致整個(gè)SOC的工作效率降低。綜上所述,當(dāng)前迫切需要一種硬件實(shí)現(xiàn)的直接從FLASH到SRAM傳輸數(shù)據(jù)的方案。
發(fā)明內(nèi)容
為克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明提出一種硬件實(shí)現(xiàn)的直接從FLASH到SRAM傳輸數(shù)據(jù)的方案。本發(fā)明提出了一種從Flash到SRAM的專用數(shù)據(jù)傳輸模塊,包括APB總線接口模塊、FLASH控制模塊和SRAM控制模塊;APB總線控制模塊用于鎖存總線來的地址,數(shù)據(jù),片選,使能信號(hào)以控制時(shí)序;FLASH控制模塊用于與APB總線接口模塊的交互、從片外FLASH獲取數(shù)據(jù)并將數(shù)據(jù)傳送給SRAM控制單元;SRAM控制模塊用于將所接收的數(shù)據(jù)寫入SRAM。其中,所述APB總線接口模塊包括讀使能寄存器,用于鎖存APB總線的Read_Enable信號(hào);讀類型寄存器,用于鎖存APB總線的Read_Type信號(hào);FLASH地址寄存器,用于鎖存取Flash數(shù)據(jù)的初地址;SRAM地址寄存器,用于鎖存SRAM接收數(shù)據(jù)的初地址;地址長(zhǎng)度寄存器,用于鎖存?zhèn)魉蛿?shù)據(jù)長(zhǎng)度;Flash ID寄存器,用于鎖存Flash ID5FlashIdentification寄存器,用于鎖存FlashIdentification ;以及兩種讀狀態(tài)寄存器方式中,鎖存狀態(tài)寄存器的S15-8位或S7-0位。其中,所述FLASH控制模塊的讀取方式包括單通道讀、雙通道讀、四通道讀中一項(xiàng)或任意多項(xiàng)的組合。其中,所述FLASH控制模塊的讀取FLASH的方式還包括讀FLASH ID、讀FLASHIdentification、讀FLASH狀態(tài)寄存器高八位和讀FLASH狀態(tài)寄存器低八位。其中,SRAM數(shù)據(jù)線為32位,每次讀FLASH的操作為8位,所述FLASH控制模塊中設(shè)置32位寄存器保存FLASH數(shù)據(jù),待32位寄存器裝滿才將數(shù)據(jù)給出到所述SRAM控制模塊。其中,所述FLASH控制模塊設(shè)置兩個(gè)32位寄存器Reg_A和Reg_B輪流接收數(shù)據(jù),當(dāng)其中一個(gè)傳送數(shù)據(jù)到SRAM控制模塊的時(shí)候,另一個(gè)負(fù)責(zé)繼續(xù)接收FLASH的數(shù)據(jù)。其中,所述SRAM控制模塊的輸入信號(hào)包括=FLASH控制模塊輸出的Flash_Write_ Enable>Flash_DATA>Flash_Operation_End,Flash_ffrite_Enable 是向 SRAM 寫數(shù)據(jù)的使能信號(hào);Flash_DATA是FLASH傳輸?shù)臄?shù)據(jù);FlaSh_0peratiOn_End是數(shù)據(jù)傳送完成信號(hào);所述SRAM控制模塊的輸入信號(hào)還包括由APB總線控制模塊給出的SRAM_Addr,表示SRAM初始地址。其中,所述APB總線控制模塊還包括SRAM占用寄存器,用于表征SRAM是持續(xù)占用或間歇占用,所述SRAM控制模塊的輸入信號(hào)還包括由APB總線控制模塊給出的SRAM_Possession,用于SRAM的占用方式,持續(xù)占用時(shí)片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊不能占用SRAM,間歇占用時(shí)片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊可以占用SRAM。其中,所述片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊包括CPU或總線。其中,所述APB總線接口模塊還包含中斷處理子模塊,所述接收通過APB總線輸入的信號(hào),中斷寄存器的設(shè)置由APB總線輸入。與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果I、本發(fā)明建立了由FLASH到SRAM的直通道,能夠極大地提高數(shù)據(jù)傳輸速度。2、本發(fā)明應(yīng)用范圍廣、便利性和可移植性高。3、本發(fā)明能夠支持對(duì)SRAM的間歇占用,有利于提高芯片(SOC)的整體工作效率。
圖I示出了本發(fā)明一個(gè)實(shí)施例的一種從Flash到SRAM的專用數(shù)據(jù)傳輸模塊的總體結(jié)構(gòu)圖;圖2示出了本發(fā)明一個(gè)實(shí)施例中的APB總線讀傳輸時(shí)序;圖3示出了本發(fā)明一個(gè)實(shí)施例中的APB總線寫傳輸時(shí)序;圖4示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的單通道讀時(shí)序;圖5示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的雙通道讀時(shí)序,其中M=OXH或其他非AXH值;圖6示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的雙通道讀時(shí)序,其中M=AXH ;圖7示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的四通道讀時(shí)序,其中M=OXH或其他非AXH值;圖8示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的四通道讀時(shí)序,其中M=AXH ;圖9示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的讀ID時(shí)序;圖10示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的讀Identification時(shí)序;圖11示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊的讀狀態(tài)寄存器時(shí)序,包括讀狀態(tài)寄存器高八位S15 8時(shí)序和讀狀態(tài)寄存器低八位S7、時(shí)序;圖12示出了本發(fā)明一個(gè)實(shí)施例中的FLASH控制模塊狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖;圖13示出了本發(fā)明一個(gè)實(shí)施例中的SRAM控制模塊狀態(tài)機(jī)轉(zhuǎn)換圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種從Flash到SRAM的專用數(shù)據(jù)傳輸模塊,其功能是將外掛FLASH的數(shù)據(jù)拷貝到片內(nèi)SRAM。對(duì)于SOC來說,采用外掛FLASH將大大降低芯片成本,在降低成本的同時(shí),通過將程序由FLASH拷貝到SRAM執(zhí)行,可以大大提高程序執(zhí)行效率。SOC外掛的FLASH容量可以很大,可以存儲(chǔ)大程序,在程序段與段之間的延時(shí)不是很重要的情況下,可以分段調(diào)入程序到SRAM中。總體結(jié)構(gòu)與子模塊劃分本實(shí)施例的從Flash到SRAM的專用數(shù)據(jù)傳輸模塊的總體結(jié)構(gòu)如圖I所示,可分為APB總線接口模塊、FLASH控制模塊和SRAM控制模塊。APB總線接口模塊時(shí)序依據(jù)AMBA APB總線規(guī)范,主要負(fù)責(zé)與APB總線之間的通信與交互,如鎖存總線來的地址,數(shù)據(jù),片選,使能等。FLASH控制模塊主要負(fù)責(zé)與APB總線接口模塊的交互、從片外FLASH獲取數(shù)據(jù)并將數(shù)據(jù)傳送給SRAM控制單元。SRAM控制模塊主要完成由FLASH控制模塊到SRAM的數(shù)據(jù)傳送。實(shí)現(xiàn)過程在各個(gè)模塊中詳細(xì)介紹。AMBA APB總線接口模塊FLASH控制模塊和SRAM控制模塊通過APB總線接口模塊和APB總線接口通訊。在本發(fā)明的一個(gè)實(shí)施例中,APB總線輸入信號(hào)包括時(shí)鐘信號(hào)PCLK,片選信號(hào)PSEL,復(fù)位信號(hào)PRESETn,地址信號(hào)PADDR[31 0],寫數(shù)據(jù)信號(hào)PWDATA [31 0];還包括控制信號(hào)組PWRITE為讀寫控制信號(hào),PENABLE為使能信號(hào)。總線輸出信號(hào)包括讀數(shù)據(jù)PRDATA[31:0]以及中斷信號(hào)Int_0utput。APB總線讀寫按照APB總線讀寫時(shí)序要求,如圖2所示。APB總線一次讀傳輸包括兩個(gè)時(shí)鐘周期,在第一個(gè)周期開始之際,PSEL片選信號(hào)有效,PWRITE讀寫控制信號(hào)變?yōu)榈碗娖?,表示讀操作,第一個(gè)時(shí)鐘周期內(nèi),PENABLE使能信號(hào)保持低電平無效狀態(tài),此時(shí)PRADATE未開始讀數(shù)據(jù),即數(shù)據(jù)無效,當(dāng)?shù)诙€(gè)周期到來時(shí),PENABLE變?yōu)楦唠娖?,穩(wěn)定后PRDATE開始讀數(shù)據(jù),用時(shí)一個(gè)周期,第二個(gè)時(shí)鐘周期結(jié)束前完成讀數(shù)據(jù),然后PENABLE和PSEL變?yōu)榈碗娖健PB總線的寫傳輸中,PWRITE為高電平,表示寫傳輸,PWDATA寫數(shù)據(jù)在第一個(gè)時(shí)鐘周期即開始寫數(shù)據(jù),直到兩個(gè)周期結(jié)束,寫數(shù)據(jù)完成。寫數(shù)據(jù)其余信號(hào)時(shí)序與讀時(shí)序相同,如圖3所示。 在一個(gè)優(yōu)選實(shí)施例中,APB總線接口模塊還包含中斷處理子模塊,主要用于中斷處理。中斷處理子模塊主要處理各種中斷。該子模塊的設(shè)置是通過APB總線輸入(各個(gè)中斷寄存器的設(shè)置是通過APB總線進(jìn)行設(shè)置的)。中斷輸出信號(hào)Int_0utput即為中斷處理模塊的輸出。中斷處理模塊包括五個(gè)寄存器。SRAM控制模塊的輸出Write_End (表示SRAM寫操作完成)和FLASH控制模塊的輸出ReacLDone (表示FLASH讀操作完成)直接或間接作為中斷子模塊的輸入觸發(fā)中斷。在本發(fā)明的一個(gè)實(shí)施例中,APB接口模塊中包含多個(gè)寄存器,各個(gè)寄存器(其中包含中斷處理子模塊的五寄存器)的功能如表I所示。表I
權(quán)利要求
1.一種從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,包括APB總線接口模塊、FLASH控制模塊和SRAM控制模塊;APB總線接口模塊用于鎖存總線來的地址、數(shù)據(jù)、片選和使能信號(hào)以控制時(shí)序;FLASH控制模塊用于與APB總線接口模塊的交互、從片外FLASH獲取數(shù)據(jù)并將數(shù)據(jù)傳送給SRAM控制單元;SRAM控制模塊用于將所接收的數(shù)據(jù)寫入SRAM。
2.根據(jù)權(quán)利要求I所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述APB總線接口模塊包括讀使能寄存器,用于鎖存APB總線的ReacLEnabIe信號(hào);讀類型寄存器,用于鎖存APB總線的ReacLType信號(hào);FLASH地址寄存器,用于鎖存Flash數(shù)據(jù)的初地址;SRAM地址寄存器,用于鎖存SRAM接收數(shù)據(jù)的初地址;地址長(zhǎng)度寄存器,用于鎖存?zhèn)魉蛿?shù)據(jù)長(zhǎng)度;Flash ID寄存器,用于鎖存Flash ID;Flash Identif ication寄存器,用于鎖存 Flash Identification。
3.根據(jù)權(quán)利要求I所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述FLASH控制模塊的讀取方式包括單通道讀、雙通道讀、四通道讀中一項(xiàng)或任意多項(xiàng)的組合。
4.根據(jù)權(quán)利要求3所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述FLASH控制模塊的讀取FLASH的方式還包括讀FLASH ID、讀FLASHIdentification、讀FLASH狀態(tài)寄存器高八位和讀FLASH狀態(tài)寄存器低八位。
5.根據(jù)權(quán)利要求4所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,SRAM數(shù)據(jù)線為32位,每次讀FLASH的操作為8位,所述FLASH控制模塊中設(shè)置32位寄存器保存FLASH數(shù)據(jù),待32位寄存器裝滿才將數(shù)據(jù)給出到所述SRAM控制模塊。
6.根據(jù)權(quán)利要求5所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述FLASH控制模塊設(shè)置兩個(gè)32位寄存器Reg_A和Reg_B輪流接收數(shù)據(jù);當(dāng)其中一個(gè)傳送數(shù)據(jù)到SRAM控制模塊的時(shí)候,另一個(gè)負(fù)責(zé)繼續(xù)接收FLASH的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述FLASH控制模塊通過狀態(tài)機(jī)實(shí)現(xiàn)各種讀方式,所述狀態(tài)機(jī)的狀態(tài)包括空閑狀態(tài)、發(fā)送控制字、單通道發(fā)送地址、雙通道發(fā)送地址、四通道發(fā)送地址、雙通道或四通道發(fā)送連續(xù)讀模式的控制值、四通道讀時(shí)發(fā)送數(shù)據(jù)之前的空閑時(shí)間、單通道讀Reg_A寄存器接收數(shù)據(jù)、單通道讀Reg_B寄存器接收數(shù)據(jù)、雙通道讀Reg_A寄存器接收數(shù)據(jù)、雙通道讀Reg_B寄存器接收數(shù)據(jù)、四通道讀Reg_A寄存器接收數(shù)據(jù)以及四通道讀Reg_B寄存器接收數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述SRAM控制模塊的輸入信號(hào)包括=FLASH控制模塊輸出的Flash_Write_Enable、Flash_DATA、Flash_Operation_End, FIash_ffrite_EnabIe 是向 SRAM 寫數(shù)據(jù)的使能信號(hào);Flash_DATA是FLASH傳輸?shù)臄?shù)據(jù);Flash_Operation_End是數(shù)據(jù)傳送完成信號(hào);所述SRAM控制模塊的輸入信號(hào)還包括由APB總線控制模塊給出的SRAM_Addr,表示SRAM初始地址。
9.根據(jù)權(quán)利要求8所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述APB總線控制模塊還包括SRAM占用寄存器,用于表征SRAM是持續(xù)占用或間歇占用;所述SRAM控制模塊的輸入信號(hào)還包括由APB總線控制模塊給出的SRAiLPossession,用于SRAM的占用方式持續(xù)占用時(shí)片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊不能占用SRAM,間歇占用時(shí)片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊可以占用SRAM。
10.根據(jù)權(quán)利要求9所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述片上系統(tǒng)中除了所述從Flash到SRAM的專用數(shù)據(jù)傳輸模塊之外的其他模塊包括CPU或總線;所述SRAM控制模塊的輸出包括SRAM控制信號(hào)Write_End、CEN、OEN、ADDR[11:0] ,WEN[3:0] DATA[31:0] ;Write_End 用于表示數(shù)據(jù)傳送結(jié)束;CEN 和 OEN 分別是片使能信號(hào)和輸出使能信號(hào);ADDR[11:0]是12位地址信號(hào);DATA[31:0]是32位數(shù)據(jù)信號(hào),由4個(gè)8位組成,每個(gè)8位由寫使能信號(hào)WEN[3:0]中的I位控制。
11.根據(jù)權(quán)利要求I所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述APB總線接口模塊還包含中斷處理子模塊,所述接收通過APB總線輸入的信號(hào),中斷寄存器的設(shè)置由APB總線輸入。
12.根據(jù)權(quán)利要求I所述的從Flash芯片到SRAM芯片的專用數(shù)據(jù)傳輸模塊,其特征在于,所述FLASH采用外掛FLASH,將程序由FLASH拷貝到SRAM執(zhí)行,以提高程序執(zhí)行效率;并且外掛FLASH分段調(diào)入程序到SRAM中。
全文摘要
本申請(qǐng)?zhí)峁┝艘环N從Flash到SRAM的專用數(shù)據(jù)傳輸模塊,包括APB總線接口模塊、FLASH控制模塊和SRAM控制模塊;APB總線接口模塊用于鎖存總線來的地址、數(shù)據(jù)、片選,使能信號(hào)以控制時(shí)序;FLASH控制模塊用于與APB總線接口模塊的交互、從片外FLASH獲取數(shù)據(jù)并將數(shù)據(jù)傳送給SRAM控制單元;SRAM控制模塊用于將所接收的數(shù)據(jù)寫入SRAM。本發(fā)明能夠極大地提高數(shù)據(jù)傳輸速度;應(yīng)用范圍廣、便利性和可移植性高;支持對(duì)SRAM的間歇占用,有利于提高芯片(SOC)的整體工作效率。
文檔編號(hào)G06F13/28GK102968396SQ20121042642
公開日2013年3月13日 申請(qǐng)日期2012年10月30日 優(yōu)先權(quán)日2012年10月30日
發(fā)明者胡杰, 王新君, 張一山 申請(qǐng)人:北京華芯微特科技有限公司