一種微控制單元mcu芯片的制作方法
【專利摘要】本發(fā)明實(shí)施例提供了一種微控制單元MCU芯片,所述MCU芯片集成有現(xiàn)場可編程門陣列FPGA模塊,所述MCU芯片還包括:CPU、系統(tǒng)總線、芯片IO控制模塊以及時鐘復(fù)位模塊,所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門陣列FPGA?IO配置子模塊,所述FPGA器件的內(nèi)部IO引腳與所述FPGA?IO配置子模塊的內(nèi)部IO引腳互連,所述FPGAIO配置子模塊與所述芯片IO控制模塊對應(yīng)的IO引腳相連,所述芯片IO控制連接到預(yù)設(shè)的外接設(shè)備上;所述FPGA器件中的外接信號通過互連的內(nèi)部IO引腳傳輸?shù)剿鯢PGA?IO配置子模塊中,再通過相連的對應(yīng)的IO引腳傳輸?shù)剿鲂酒琁O控制中,之后傳輸?shù)剿鐾饨釉O(shè)備中。本發(fā)明可以減少生產(chǎn)成本,減少工作量,降低芯片修改難度,以及,提高芯片的靈活性。
【專利說明】-種微控制單元MCU芯片
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路【技術(shù)領(lǐng)域】,特別是涉及一種微控制單元MCU芯片。
【背景技術(shù)】
[0002] 隨著集成電路工藝的不斷提高,MCU (Micro Control Unit,微控制單元)芯片的應(yīng) 用越來越廣泛,小到兒童玩具,大到工程機(jī)械,都需要用到MCU芯片,然而在不同的應(yīng)用場 景中,MCU芯片所發(fā)揮的功能各不一樣。
[0003] 為了應(yīng)對不同應(yīng)用場景中MCU芯片發(fā)揮不同功能的需求,可以有兩種解決方案: 一種是在一顆MCU芯片上實(shí)現(xiàn)功能,另一種是針對不同的應(yīng)用場景設(shè)計不同的MCU芯片。
[0004] 顯然,如果在一顆MCU芯片上實(shí)現(xiàn)功能,MCU芯片的面積就會非常大,并且非常沒 有必要,因為在特定的產(chǎn)品中,很可能只用到其中一小部分功能,而大部分功能從始至終都 未被使用,這樣不僅造成功能上的浪費(fèi),還增加芯片制造的成本,因此,在一顆MCU芯片上 實(shí)現(xiàn)功能非常不劃算。
[0005] 如果針對不同的應(yīng)用場景設(shè)計不同的MCU芯片,需要用單一的專用集成電路設(shè)計 MCU芯片,由于一顆MCU芯片不能滿足的功能需求,因此,生產(chǎn)MCU芯片的廠商需要采用海量 芯片的策略,即生產(chǎn)多個系列的產(chǎn)品以區(qū)分不同的應(yīng)用場景,同時,一個系列的產(chǎn)品細(xì)分出 多種型號的MCU芯片,而這些同一個系列的多種型號的MCU芯片的功能差別非常小。這樣 將的功能需求細(xì)化,特定的一顆MCU芯片針對特定的一些應(yīng)用場景。雖然這種方案部分的 解決了不同應(yīng)用場景對功能需求不同的矛盾,但是生產(chǎn)、銷售如此多的芯片,以及管理如此 多的產(chǎn)品生產(chǎn)線等工作,都需要非常龐大的工作量,增加 MCU芯片生產(chǎn)的成本。
[0006] 另外,在MCU芯片中,實(shí)現(xiàn)的都是一些通用的、常用的功能、接口等,以滿足大多數(shù) 用戶的需求,而實(shí)際應(yīng)用中經(jīng)常還會需要一些特殊的功能,而在通用的MCU芯片設(shè)計和生 產(chǎn)過程中缺少對這方面的考慮,造成通用的MCU芯片不具備很高的靈活性,因而無法實(shí)現(xiàn) 這些特殊的功能。
[0007] 針對MCU芯片生產(chǎn)出來后,可能會有錯誤,需要修改,通常的做法是在設(shè)計時放一 些冗余單元,這樣需要修改時,通過修改連線,將冗余單元組成新電路,這種做法只能做簡 單的修改,因為冗余單元不可能放很多,而且冗余單元放的很分散,布線也很困難,所以對 一些比較復(fù)雜的修改無能為力。
[0008] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:提供一種微控制 單元MCU芯片,用以靈活滿足不同的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,完成對芯片的不同復(fù) 雜程度的修改,同時,減少生產(chǎn)成本,減少工作量,降低芯片修改難度,以及,提高芯片的靈 活性。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種微控制單元MCU芯片,用以靈活滿 足不同的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,完成對芯片的不同復(fù)雜程度的修改,同時,減少 生產(chǎn)成本,減少工作量,降低芯片修改難度,以及,提高芯片的靈活性。
[0010] 為了解決上述問題,本發(fā)明公開了一種微控制單元MCU芯片,所述MCU芯片集成有 現(xiàn)場可編程門陣列FPGA模塊,所述MCU芯片還包括:
[0011] CPU、系統(tǒng)總線、芯片10控制模塊以及時鐘復(fù)位模塊,其中,
[0012] 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時鐘復(fù)位模塊與所述 FPGA模塊互連;
[0013] 所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門陣列FPGA 10 配置子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳,所述FPGA 器件的內(nèi)部10引腳與所述FPGA 10配置子模塊的內(nèi)部10引腳互連,所述FPGA器件和所述 FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信;
[0014] 所述FPGA 10配置子模塊與所述芯片10控制模塊對應(yīng)的10引腳相連,所述芯片 10控制連接到預(yù)設(shè)的外接設(shè)備上;
[0015] 所述FPGA器件中的外接信號通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAI0配置子 模塊中,再通過相連的對應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備 中。
[0016] 優(yōu)選地,所述現(xiàn)場可編程門陣列FPGA模塊還包括現(xiàn)場可編程門陣列FPGA配置信 息下載子模塊、配置寄存器,其中,
[0017] 所述FPGA配置信息下載子模塊中10引腳的輸出端與所述FPGA器件中10引腳的 輸入端相連,所述FPGA器件中10引腳的輸出端與所述FPGAI0配置子模塊中10引腳的輸 入端相連,所述配置寄存器中10引腳的輸出端與所述FPGA 10配置子模塊中10引腳的輸入 端相連,所述配置寄存器中10引腳的輸入端連接在所述系統(tǒng)總線上。
[0018] 優(yōu)選地,所述芯片還包括直接存儲器訪問DMA,所述DMA連接在所述系統(tǒng)總線上。
[0019] 優(yōu)選地,所述芯片還包括靜態(tài)隨機(jī)存儲器SRAM,所述SRAM連接在所述系統(tǒng)總線 上;所述SRAM與所述閃存控制器互連。
[0020] 優(yōu)選地,所述芯片還包括聯(lián)合測試工作組JTAG,所述聯(lián)合測試工作組JTAG與所述 FPGA互連。
[0021] 優(yōu)選地,所述芯片還包括閃存控制器,所述閃存控制器與所述FPGA互連。
[0022] 優(yōu)選地,所述芯片還包括閃存芯片,所述閃存芯片與所述閃存控制器互連。
[0023] 優(yōu)選地,所述芯片還包括設(shè)備集,所述設(shè)備集連接在所述系統(tǒng)總線上。
[0024] 優(yōu)選地,所述FPGA器件中包括預(yù)置的電路修改單元。
[0025] 優(yōu)選地,所述SRAM與所述FPGA 10配置模塊互連,所述FPGA模塊與所述MCU芯片 共用所述SRAM。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0027] 本發(fā)明通過在MCU芯片中集成現(xiàn)場可編程門陣列FPGA模塊,其中,現(xiàn)場可編程門 陣列FPGA模塊包括FPGA器件和FPGA 10配置子模塊,用戶可以根據(jù)需求將具有不同功能的 電路燒錄到FPGA器件中,以靈活滿足不同的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,同時,F(xiàn)PGA 10 配置子模塊與MCU芯片中的元件及10連接,可以有效的共用MCU芯片的電路,減小了 FPGA 器件的面積,同時也使得FPGA器件中的電路和MCU芯片其他部分電路協(xié)同工作,減少生產(chǎn) 成本,提高芯片的靈活性,此外,F(xiàn)PGA器件可以劃分一部分單元用于電路的修改,以實(shí)現(xiàn)非 常復(fù)雜電路的修改,同時修改工作非常的簡單方便,減少工作量,降低芯片修改難度。
[0028] 本發(fā)明通過MCU芯片中與閃存控制器的閃存芯片,可以在MCU芯片上電后自動讀 取閃存芯片存儲的程序數(shù)據(jù),并且,由于閃存芯片具有斷電數(shù)據(jù)不丟失的特點(diǎn),使得FPGA 器件中的數(shù)據(jù)在斷電時不會丟失,提高了 MCU芯片的穩(wěn)定性和靈活性,可以靈活滿足不同 的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,完成對芯片的不同復(fù)雜程度的修改,同時,減少生產(chǎn)成 本,減少工作量,降低芯片修改難度。
【專利附圖】
【附圖說明】
[0029] 圖1示出了本發(fā)明一種微控制單元MCU芯片實(shí)施例1的結(jié)構(gòu)圖;
[0030] 圖2示出了本發(fā)明一種微控制單元MCU芯片在FPGA器件中實(shí)現(xiàn)I2C功能的結(jié)構(gòu) 圖;
[0031] 圖3示出了本發(fā)明一種微控制單元MCU芯片實(shí)施例2的結(jié)構(gòu)圖;
[0032] 圖4示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場可編程門陣列FPGA模塊的結(jié) 構(gòu)圖。
【具體實(shí)施方式】
[0033] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0034] 本發(fā)明實(shí)施例的核心構(gòu)思之一在于,在MCU芯片中實(shí)現(xiàn)一塊FPGA器件,同時,通過 FPGA 10配置模塊將FPGA模塊的10與MCU芯片的元件以及10連接,以將MCU芯片中的元 件復(fù)用到FPGA模塊中,因此,可以減少M(fèi)CU芯片的面積,同時,用戶可以根據(jù)自己特定的應(yīng) 用需求,將自身需要的特定電路燒錄到FPGA中,這樣既可以應(yīng)用MCU芯片的便利,也可以通 過FPGA的靈活性實(shí)現(xiàn)自身一些特殊功能。
[0035] 參照圖1,示出了本發(fā)明一種微控制單元MCU芯片實(shí)施例1的結(jié)構(gòu)圖,所述MCU芯 片集成有現(xiàn)場可編程門陣列FPGA模塊,所述MCU芯片具體還可以包括 :
[0036] CPU、系統(tǒng)總線、芯片10控制模塊以及時鐘復(fù)位模塊,其中,
[0037] 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時鐘復(fù)位與所述 FPGA模塊互連;
[0038] 在實(shí)際應(yīng)用中,CPU (Central Processing Unit,中央處理器),一般為IP核 (Intellectual Property Core,知識產(chǎn)權(quán)核),所謂IP核,一般為某一方提供的、在芯片設(shè) 計上的可重用模塊。CPU是MCU芯片中運(yùn)算與控制核心,可以執(zhí)行軟件編譯完成的代碼程序 等,達(dá)到控制芯片中各部分合理運(yùn)行的目的。
[0039] 芯片10控制可以是用于控制MCU芯片10用途的模塊,在本發(fā)明實(shí)施例中,芯片10 控制的主要作用可以是將MCU芯片10配置成FPGA的10或者普通的GPIO (General Purpose Input Output) 〇
[0040] 時鐘復(fù)位可以是提供MCU芯片時鐘與復(fù)位的模塊,時鐘部分包括PLL(Phase Locked Loop,鎖相環(huán)),用于提供各種頻率的時鐘(比如10MHZ?100MHZ)。在本發(fā)明實(shí)施 例中,時鐘復(fù)位部分還可以用于提供FPGA (Field - Programmable Gate Array,現(xiàn)場可編程 門陣列)所需要的時鐘和復(fù)位。
[0041] 需要說明的是,在時鐘復(fù)位中可以預(yù)留一些時鐘,例如:高頻時鐘,低頻時鐘,與 系統(tǒng)同頻時鐘等,還可以預(yù)留一些可配置的復(fù)位信號等,連接到FPGA 10配置子模塊中,為 FPGA器件中的邏輯提供時鐘復(fù)位信號。
[0042] 此外,系統(tǒng)總線同樣可以預(yù)設(shè)一些保留地址空間,這些地址空間與MCU其他部分 不沖突,這樣CPU可以通過系統(tǒng)總線中的預(yù)設(shè)的保留地址空間訪問FPGA器件中的邏輯。
[0043] 所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門陣列FPGA 10 配置子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳,所述FPGA 器件的內(nèi)部10引腳與所述FPGA 10配置子模塊的內(nèi)部10引腳互連,所述FPGA器件和所述 FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信;
[0044] 在具體應(yīng)用中,現(xiàn)場可編程門陣列FPGA器件一般包含大量的 LUT (Look-Up-Table,查找表),實(shí)現(xiàn)組合邏輯電路,觸發(fā)器,實(shí)現(xiàn)時序邏輯電路,還包含一定 數(shù)量的Memory (內(nèi)存),DCM(Digital Clock Manager,數(shù)字時鐘管理器),用于產(chǎn)生時鐘,乘 法器,以及10 buffer (輸入輸出緩沖器)。
[0045] 在本發(fā)明實(shí)施例中,由于FPGA器件實(shí)現(xiàn)在MCU芯片中,有些可以與MCU芯片中其 他部分共用,比如,Memory可以與MCU芯片中裝置SRAM(Static Random Access Memory,靜 態(tài)隨機(jī)存儲器)共用,又如,用MCU中時鐘復(fù)位模塊可以為FPGA器件提供時鐘和復(fù)位,因 此,F(xiàn)PGA也可以不用實(shí)現(xiàn)DCM,由于MCU芯片應(yīng)用對數(shù)據(jù)運(yùn)算要求不高,因此,F(xiàn)PGA還可以 不用實(shí)現(xiàn)乘法器。所以,在本發(fā)明實(shí)施中,F(xiàn)PGA器件可以主要實(shí)現(xiàn)可編程邏輯單元(LUT和 觸發(fā)器),可編程輸入輸出單元以及布線資源等。這樣既簡化了實(shí)現(xiàn)難度,又減小了芯片面 積,與MCU芯片共用部分也提高了實(shí)現(xiàn)效率。需要說明的是,在本發(fā)明實(shí)施例中,F(xiàn)PGA器件 也可用其他可編程器件替代。
[0046] 由于FPGA模塊實(shí)現(xiàn)在MCU芯片內(nèi)部,所以FPGA的10需要與MCU芯片連接,F(xiàn)PGA 10配置子模塊可以將FPGA器件的每個10配置成與MCU芯片中其他部分的信號連接,或者, 配置成與MCU芯片的10連接。與MCU芯片中其他部分的信號連接主要用于共用MCU芯片 中其他部分電路,減少芯片面積。
[0047] FPGA模塊將MCU芯片需要的功能模塊實(shí)現(xiàn)在FPGA器件內(nèi),并且,在FPGA器件中除 了包括功能模塊以外,還包括功能模塊的10分配。而實(shí)現(xiàn)在FPGA器件裝置內(nèi)的功能模塊 與FPGA模塊外(即MCU芯片內(nèi)部其他模塊,以及MCU芯片預(yù)設(shè)的外部器件)的通信可以通 過FPGA 10配置子模塊的10 (輸入輸出端口)交互完成的。
[0048] 需要說明的是,F(xiàn)PGA器件裝置中,除了實(shí)現(xiàn)的功能模塊的邏輯部分外,還包含了將 功能模塊的輸入輸出與FPGA的10 buffer連接。
[0049] 10通路1 :為實(shí)現(xiàn)FPGA器件的10 buffer與FPGA 10配置子模塊之間的通路連接, 在FPGA 10配置子模塊中,將FPGA器件10預(yù)設(shè)多種選擇,如:MCU芯片系統(tǒng)總線信號,時鐘 復(fù)位模塊,MCU芯片的10等,可以將FPGA器件中的每個10選擇與預(yù)設(shè)多種選擇中的一個 連接。
[0050] 10通路2 :為FPGA 10配置子模塊與MCU芯片中其他模塊的通路連接,例如:假設(shè) 在FPGA 10配置子模塊中,將FPGA器件的某個10配置成系統(tǒng)總線信號,此系統(tǒng)總線信號與 MCU芯片中系統(tǒng)總線模塊連接。
[0051] 10通路3 :為FPGA 10配置子模塊與MCU芯片10控制模塊之間的通路連接,例如: 假設(shè)在FPGA 10配置子模塊中,將FPGA器件的某個10配置成與MCU芯片10連接,此10連 接到芯片10控制模塊中,由于每個芯片10也有多個預(yù)設(shè)選擇,其中一種選擇為MCU芯片 10與FPGA 10配置子模塊連接,所以在芯片10控制模塊中,需要將對應(yīng)的芯片10配置成與 FPGAI0配置子模塊連接。
[0052] 10通路4 :為芯片10控制模塊與MCU芯片外的預(yù)設(shè)外接器件的通路連接。
[0053] 所述FPGA器件中的外接信號通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAI0配置子 模塊中,再通過相連的對應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備 中。
[0054] 在具體應(yīng)用中,通過10通路1,10通路3,10通路4,實(shí)現(xiàn)了在FPGA器件內(nèi)的功能 模塊,與MCU芯片外的設(shè)備之間的數(shù)據(jù)通信。通過10通路1,10通路2實(shí)現(xiàn)了在FPGA器件 內(nèi)的功能模塊與MCU芯片中其他模塊之間的數(shù)據(jù)通信。
[0055] 本發(fā)明通過在MCU芯片中集成現(xiàn)場可編程門陣列FPGA模塊,其中,現(xiàn)場可編程門 陣列FPGA模塊包括FPGA器件和FPGA 10配置子模塊,用戶可以根據(jù)需求將具有不同功能的 電路燒錄到FPGA器件中,以靈活滿足不同的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,同時,F(xiàn)PGA 10 配置子模塊與MCU芯片中的元件及10連接,可以有效的共用MCU芯片的電路,減小了 FPGA 器件的面積,同時也使得FPGA器件中的電路和MCU芯片其他部分電路協(xié)同工作,減少生產(chǎn) 成本,提高芯片的靈活性,此外,F(xiàn)PGA器件可以劃分一部分單元用于電路的修改,以實(shí)現(xiàn)非 常復(fù)雜電路的修改,同時修改工作非常的簡單方便,減少工作量,降低芯片修改難度。
[0056] 為使本領(lǐng)域技術(shù)人員更好地理解本申請,以下以微控制單元MCU芯片在FPGA器件 中實(shí)現(xiàn)I2C功能為例,進(jìn)一步說明本發(fā)明實(shí)施例。
[0057] 如圖2所示,示出了本發(fā)明一種微控制單元MCU芯片在FPGA器件中實(shí)現(xiàn)I2C功能 的結(jié)構(gòu)圖。
[0058] 在FPGA器件中實(shí)現(xiàn)I2C功能時,至少需要時鐘復(fù)位模塊(用Iclock表示),系統(tǒng)總 線傳輸?shù)目偩€信號(用Iahbx表不),F(xiàn)PGA模塊中的外接信號用于I2C傳輸(如i2c_sda, i2c_scl等,用i2cx表示),芯片10控制模塊,以及MCU芯片外預(yù)設(shè)的I2C器件。
[0059] 其中,F(xiàn)PGA模塊可以包括FPGA器件和FPGA 10配置子模塊,F(xiàn)PGA器件中可以內(nèi)置 I2C功能模塊和FPGA 10 buffer,I2C功能模塊可以包括Iclock接口、Iahbx接口、i2cx接 口,F(xiàn)PGA 10 buffer包括與Iclock接口對應(yīng)的FPA接口、與Iahbx接口對應(yīng)的FPBx接口、與 i2cx接口對應(yīng)的FPCx接口,F(xiàn)PGA 10配置子模塊至少可以包括對應(yīng)的三組接口,在本發(fā)明實(shí) 施例中,分別是FPA選擇、FPB選擇、FPC選擇,每組接口中至少包括clock子接口,ahbx子 接口,F(xiàn)PA選擇中還包括PAx子接口,F(xiàn)PB選擇中還包括PBx子接口,F(xiàn)PC選擇中還包括PCx 子接口。
[0060] 芯片10控制模塊至少可以包括PC選擇接口和PCx接口,其中,PC選擇接口中至 少可以包括功能1子接口,功能2子接口,F(xiàn)PCx子接口。
[0061] 系統(tǒng)總線可以連接CPU(圖示中未畫出)。
[0062] 在FPGA器件中實(shí)現(xiàn)I2C功能的步驟包括:
[0063] 第一步:在配置FPGA器件時,同時連接好I2C信號與FPGA 10。例如I2C功能模塊 的Iclock接口連接FPGA 10 buffer的FPA接口;I2C功能模塊的Iahbx接口連接FPGA 10 buffer 的 FPBx 接口;I2C 功能模塊的 i2cx 接 口連接 FPGA 10 buffer 的 FPCx 接口。
[0064] 第二步:在配置FPGA 10配置子模塊時,將FPGA 10 buffer的FPA接口選擇FPGA 10配置子模塊中FPA選擇接口的clock子接口;該clock子接口與MCU芯片的時鐘復(fù)位模 塊連接;實(shí)際應(yīng)用中,時鐘復(fù)位模塊提供時鐘(clock),最終連接到FPGA器件中I2C功能模 塊的Iclock接口上,這樣I2C可以用Iclock當(dāng)做時鐘。
[0065] 將FPGA 10 buffer的FPBx接口選擇FPGA 10配置子模塊中FPB選擇接口的ahbx 子接口;而且該ahbx子接口還與系統(tǒng)總線連接,實(shí)現(xiàn)系統(tǒng)總線與FPGA器件中I2C的Iahbx 接口連接。
[0066] 將FPGA 10 buffer的FPCx接口選擇FPGA 10配置子模塊中FPC選擇接口的PCx子 接口;并且該P(yáng)CX子接口與芯片10控制模塊連接。
[0067] 第三步:在芯片10控制模塊中,將MCU芯片PCx接口選擇連接芯片10控制模塊中 的FPCx接口,而FPCx接口與FPGA 10配置子模塊中的FPC選擇接口的PCx子接口連接在一 起。
[0068] 第四步:MCU芯片外預(yù)設(shè)的I2C器件,將I2C器件信號與MCU芯片PCx接口連接在 一起。
[0069] 這樣實(shí)現(xiàn)I2C器件的信號與FPGA器件中I2C部分的信號i2cx連接在一起,可以 互相通訊。
[0070] 具體通訊步驟如下:
[0071] 1、MCU芯片首先將連接到Iclock的時鐘(clock)打開,此時鐘為時鐘復(fù)位模塊中 預(yù)留的一個時鐘。
[0072] 2、CPU通過系統(tǒng)總線中預(yù)留給FPGA器件的地址空間,通過FPB選擇接口中的ahbx 子接口連接到I2C功能模塊的Iahbx接口,通過Iahbx接口設(shè)置I2C功能模塊的狀態(tài),以及 需要與MCU芯片外預(yù)設(shè)的I2C器件傳輸?shù)牡刂窋?shù)據(jù)等。
[0073] 3、通過i2cx信號與MCU芯片外預(yù)設(shè)的I2C器件通訊。
[0074] 參照圖3,示出了本發(fā)明一種微控制單元MCU芯片實(shí)施例2的結(jié)構(gòu)圖,所述MCU芯 片集成有現(xiàn)場可編程門陣列FPGA模塊,所述MCU芯片還包括:
[0075] CPU、系統(tǒng)總線、芯片10控制模塊以及時鐘復(fù)位模塊,其中,
[0076] 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時鐘復(fù)位與所述 FPGA模塊互連;
[0077] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括直接存儲器訪問DMA,所述 DMA連接在所述系統(tǒng)總線上。
[0078] DMA (Direct Memory Access,直接存儲器訪問),負(fù)責(zé)將數(shù)據(jù)從一個地址空間傳輸 到另外一個地址空間,如果用CPU完成此項操作,則增加 CPU大量的負(fù)載和中斷資源,同時 傳輸?shù)男屎脱訒r會增加。而DMA傳輸?shù)乃俣群托示菴PU好,因此DMA為MCU芯片中 的重要組成部分。
[0079] 需要說明的是,DMA中預(yù)設(shè)了一些DMA通道,通過將信號連接到FPGAI0配置模塊, 可以預(yù)留給FPGA模塊使用。
[0080] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括靜態(tài)隨機(jī)存儲器SRAM,所述 SRAM連接在所述系統(tǒng)總線上;所述SRAM與所述閃存控制器互連。
[0081] SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存儲器),為標(biāo)準(zhǔn)IP。一般用于存儲 數(shù)據(jù),斷電后數(shù)據(jù)丟失,讀寫速度快,可實(shí)時讀寫。在本發(fā)明實(shí)施例中可以當(dāng)做內(nèi)存使用,存 放CPU運(yùn)行中臨時數(shù)據(jù),以及其他一些暫存數(shù)據(jù),還可以復(fù)用成FPGA的SRAM使用。當(dāng)FPGA 需要用到SRAM,將其中部分空間當(dāng)做FPGA的SRAM使用,這樣在實(shí)現(xiàn)FPGA器件時,可以不需 要實(shí)現(xiàn)SRAM,以減小面積,節(jié)約資源。
[0082] 需要說明的是,SRAM在通用的MCU中,通常當(dāng)成內(nèi)存使用,在本發(fā)明實(shí)施例中, SRAM可以復(fù)用成FPGA模塊的SRAM使用。假設(shè)SRAM的總大小為T0P_SIZE ;用戶在FPGA模 塊中需要使用SRAM,則用戶需要分配好FPGA模塊中需要使用SRAM的大小,以及內(nèi)存需要 使用的SRAM大小,總大小不能超過T0P_SIZE。假設(shè)用戶配置FPGA中需要使用SRAM的大小 為 FPGA_SIZE (FPGA_SIZE 小于 T0P_SIZE),則內(nèi)存可使用的 SRAM 大小為 T0P_SIZE 減 FPGA_ SIZE。在MCU芯片的SRAM設(shè)計實(shí)現(xiàn)時,需要設(shè)計兩套訪問SRAM的器件,一套用于MCU芯片 訪問內(nèi)存使用,在本發(fā)明實(shí)施例中,用于MCU芯片訪問內(nèi)存時訪問的地址空間為0?Τ0Ρ_ SIZE減FPGA_SIZE減1 ;另外一套用于FPGA模塊使用的SRAM,訪問的地址空間為T0P_SIZE 減FPGA_SIZE?T0P_SIZE減1,此套訪問SRAM的信號連接到FPGA 10配置模塊。通過配置 SRAM與FPGA器件相連接,可以實(shí)現(xiàn)FPGA器件中的邏輯訪問SRAM的功能。如果將FPGA_ SIZE設(shè)置成0,則的SRAM都用于內(nèi)存。
[0083] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測試工作組JTAG, 所述聯(lián)合測試工作組JTAG與所述FPGA互連。
[0084] JTAG(Joint Test Action Group,聯(lián)合測試工作組),是一種國際標(biāo)準(zhǔn)測試協(xié)議 (IEEE1149. 1兼容),主要用于芯片內(nèi)部測試。在本發(fā)明實(shí)施例中JTAG可以用于配置FPGA 器件。
[0085] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存控制器,所述閃存控制 器與所述FPGA互連。
[0086] 閃存控制器,為閃存芯片與MCU芯片的接口,可以將閃存芯片中的程序數(shù)據(jù)讀取 到MCU芯片中,用于CPU執(zhí)行程序,也可以將FPGA的配置信息讀取到FPGA模塊中,用于配 置FPGA器件。同時,閃存控制器還可以用于擦寫閃存芯片中的數(shù)據(jù)。
[0087] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存芯片,所述閃存芯片與 所述閃存控制器互連。
[0088] 閃存芯片,具有可讀,可擦寫,斷電數(shù)據(jù)不丟失的特點(diǎn),但讀寫速度慢,并且大部分 時間是在讀取數(shù)據(jù),在MCU芯片中主要用于程序存儲以及一些常量數(shù)據(jù)的存儲,在本發(fā)明 實(shí)施例中,閃存芯片還可以用于存儲FPGA器件的配置信息。因此,在MCU芯片上電后可以自 動讀取閃存芯片中存儲的配置信息,自動的將該配置信息燒錄到FPGA器件中。為了讓MCU 芯片更加小巧,可以采用MCP (Multiple Chip Package,多芯片封裝)技術(shù)將MCU芯片與閃 存芯片制造在同一個封裝內(nèi)。
[0089] 本發(fā)明通過MCU芯片中與閃存控制器的閃存芯片,可以在MCU芯片上電后自動讀 取閃存芯片存儲的程序數(shù)據(jù),并且,由于閃存芯片具有斷電數(shù)據(jù)不丟失的特點(diǎn),使得FPGA 器件中的數(shù)據(jù)在斷電時不會丟失,提高了 MCU芯片的穩(wěn)定性和靈活性,可以靈活滿足不同 的應(yīng)用場景,實(shí)現(xiàn)不同需求的功能,完成對芯片的不同復(fù)雜程度的修改,同時,減少生產(chǎn)成 本,減少工作量,降低芯片修改難度。
[0090] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括設(shè)備集,所述設(shè)備集連接在 所述系統(tǒng)總線上。
[0091] 設(shè)備集:在MCU芯片中,一般會包含多種外設(shè),常用的比如SPI (Serial Peripheral Interface,串行夕卜設(shè)接口)、UART (Universal Asynchronous Receiver/Transmitter, 通用異步收發(fā)傳輸器)、I2C (Inter - Integrated Circuit),一種兩線式串行總線, USB (Universal Serial Bus,通用串行總線)等等,有時一種外設(shè)可能會包含多個,比如3個 SPI。設(shè)備集即包含這些外設(shè)的集合。
[0092] 參照圖4,示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場可編程門陣列FPGA模塊 的結(jié)構(gòu)圖。
[0093] 如圖4所示,所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門 陣列FPGA 10配置子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳, 所述FPGA器件的內(nèi)部10引腳與所述FPGAI0配置子模塊的內(nèi)部10引腳互連,所述FPGA器 件和所述FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信;
[0094] 所述FPGA 10配置子模塊與所述芯片10控制對應(yīng)的10引腳相連,所述芯片10控 制連接到預(yù)設(shè)的外接設(shè)備上;
[0095] 所述FPGA器件中的外接信號通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAI0配置子 模塊中,再通過相連的對應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備 中。
[0096] 所述現(xiàn)場可編程門陣列FPGA還包括現(xiàn)場可編程門陣列FPGA配置信息下載子模 塊、配置寄存器,其中,
[0097] 所述FPGA配置信息下載子模塊中10引腳的輸出端與所述FPGA器件中10引腳的 輸入端相連,所述FPGA器件中10引腳的輸出端與所述FPGAI0配置子模塊中10引腳的輸 入端相連,所述配置寄存器中10引腳的輸出端與所述FPGA 10配置子模塊中10引腳的輸入 端相連,所述配置寄存器中10引腳的輸入端連接在所述系統(tǒng)總線上。
[0098] 在具體應(yīng)用中,F(xiàn)PGA配置信息下載子模塊可以用于配置FPGA器件,將MCU芯片提 供的配置信息,轉(zhuǎn)化成用于FPGA器件配置下載的標(biāo)準(zhǔn)數(shù)據(jù)格式的配置信息,即符合JTAG協(xié) 議的數(shù)據(jù)格式的配置信息,通過FPGA配置信息下載子模塊燒錄FPAG器件的通路,從FPGA 器件固定的端口將配置信息配置下載到FPGA器件中,因此,將FPGA器件中的可編程邏輯轉(zhuǎn) 化成專用邏輯,以達(dá)到實(shí)現(xiàn)該專用邏輯對應(yīng)的專用功能的目的。
[0099] 配置寄存器:主要包括一系列寄存器,由系統(tǒng)總線配置,這些寄存器通過從配置寄 存器到FPGA 10配置子模塊的數(shù)據(jù)通路,對FPGA的10進(jìn)行配置,將FPGA模塊的10與MCU 芯片連接。
[0100] FPGA 10配置模塊與MCU芯片中其他元件的信號連接可以用于共用MCU芯片中的 部分電路,以減少M(fèi)CU芯片的面積。在本發(fā)明實(shí)施例中,F(xiàn)PGA 10配置模塊可以包括以下連 接:
[0101] 與系統(tǒng)總線連接:將預(yù)設(shè)好的部分FPGA模塊的10,通過配置寄存器,配置成與系 統(tǒng)總線信號連接,這樣可實(shí)現(xiàn)通過CPU控制FPGA模塊中的電路。這部分10定義成FPGA模 塊的總線10。在MCU芯片中,一般實(shí)現(xiàn)某個功能,均需要與CPU配合才能完成,而CPU通過 執(zhí)行驅(qū)動程序,控制FPGA中硬件邏輯的運(yùn)行。由于CPU本身面積比較大,在FPGA中實(shí)現(xiàn) (PU將顯著增大MCU芯片的面積,顯然非常不合算,而通過將FPGA的部分10與系統(tǒng)總線連 接,這樣就可以用MCU芯片中已有的CPU,而不需要再在FPGA中實(shí)現(xiàn)CPU。
[0102] 與DMA連接:將部分FPGA模塊的10,通過配置寄存器,配置成與DMA的信號連接, 這樣MCU芯片中已有的DMA,可以用于控制FPGA模塊中的電路。
[0103] 與時鐘復(fù)位模塊連接:在通用的FPGA器件中,時鐘一般有DCM實(shí)現(xiàn),DCM本身電路 比較復(fù)雜,實(shí)現(xiàn)難度高。而在本發(fā)明實(shí)施例中,F(xiàn)PGA的時鐘可以由MCU芯片中的時鐘復(fù)位 模塊提供,因此FPGA器件中可以不需要實(shí)現(xiàn)DCM。此外,F(xiàn)PGA器件實(shí)現(xiàn)在MCU芯片中,F(xiàn)PGA 器件中的電路經(jīng)常要與MCU芯片中其他部分電路時鐘一致,此時FPGA器件的時鐘由MCU芯 片中的時鐘復(fù)位模塊提供,就很容易實(shí)現(xiàn)。
[0104] 與SRAM連接:將預(yù)設(shè)好的部分FPGA的10配置成與SRAM的信號連接,這樣FPGA 模塊中的電路可以用MCU芯片中的SRAM。
[0105] 另外,F(xiàn)PGA的部分10還可以配置成與MCU芯片中其他部分的一些重要信號連接。
[0106] 將FPGA的10配置成與MCU芯片10控制部分連接,這樣FPGA的10可以連接到 MCU芯片中的芯片10控制部分,然后再通過芯片10控制部分,將芯片10配置成FPGA 10通 路。這樣實(shí)現(xiàn)了 FPGA的10與MCU芯片外的器件連接。
[0107] 需要說明的是,MCU芯片中還預(yù)設(shè)有一些中斷信號,將中斷信號連接到FPGA 10配 置子模塊,可以配置連接到FPGA器件中。
[0108] 此外,當(dāng)芯片生產(chǎn)出來后,發(fā)現(xiàn)需要大量修改時,則非常方便,劃分部分的FPGA器 件中的單元做成需要修改的電路即可完成修改,這樣可以實(shí)現(xiàn)非常復(fù)雜電路的修改,同時 修改工作非常的簡單方便。
[0109] 本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似的部分互相參見即可。
[0110] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計算 機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和 硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個或多個其中包含有計算機(jī)可 用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上 實(shí)施的計算機(jī)程序產(chǎn)品的形式。
[0111] 本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計算機(jī)程序 產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框 圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商?供這些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處 理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多 個方框中指定的功能的裝置。
[0112] 這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備 以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包 括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方 框或多個方框中指定的功能。
[0113] 這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得 在計算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在 計算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程 和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0114] 盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的變更和修改。
[0115] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包 括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品 或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個……"限定的要 素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0116] 以上對本發(fā)明所提供的一種微控制單元MCU芯片,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用 了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解 本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具 體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明 的限制。
【權(quán)利要求】
1. 一種微控制單元MCU芯片,其特征在于,所述MCU芯片集成有現(xiàn)場可編程門陣列 FPGA模塊,所述MCU芯片還包括: CPU、系統(tǒng)總線、芯片10控制模塊以及時鐘復(fù)位模塊,其中, 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時鐘復(fù)位模塊與所述 FPGA模塊互連; 所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門陣列FPGA 10配置 子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳,所述FPGA器件 的內(nèi)部10引腳與所述FPGA 10配置子模塊的內(nèi)部10引腳互連,所述FPGA器件和所述FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信; 所述FPGA 10配置子模塊與所述芯片10控制模塊對應(yīng)的10引腳相連,所述芯片10控 制連接到預(yù)設(shè)的外接設(shè)備上; 所述FPGA器件中的外接信號通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAI0配置子模塊 中,再通過相連的對應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備中。
2. 根據(jù)權(quán)利要求1所述的芯片,其特征在于,所述現(xiàn)場可編程門陣列FPGA模塊還包括 現(xiàn)場可編程門陣列FPGA配置信息下載子模塊、配置寄存器,其中, 所述FPGA配置信息下載子模塊中10引腳的輸出端與所述FPGA器件中10引腳的輸入 端相連,所述FPGA器件中10引腳的輸出端與所述FPGAI0配置子模塊中10引腳的輸入端 相連,所述配置寄存器中10引腳的輸出端與所述FPGA 10配置子模塊中10引腳的輸入端相 連,所述配置寄存器中10引腳的輸入端連接在所述系統(tǒng)總線上。
3. 根據(jù)權(quán)利要求1或2所述的芯片,其特征在于,所述芯片還包括直接存儲器訪問 DMA,所述DMA連接在所述系統(tǒng)總線上。
4. 根據(jù)權(quán)利要求3所述的芯片,其特征在于,所述芯片還包括靜態(tài)隨機(jī)存儲器SRAM,所 述SRAM連接在所述系統(tǒng)總線上;所述SRAM與所述閃存控制器互連。
5. 根據(jù)權(quán)利要求4所述的芯片,其特征在于,所述芯片還包括聯(lián)合測試工作組JTAG,所 述聯(lián)合測試工作組JTAG與所述FPGA互連。
6. 根據(jù)權(quán)利要求5所述的芯片,其特征在于,所述芯片還包括閃存控制器,所述閃存控 制器與所述FPGA互連。
7. 根據(jù)權(quán)利要求6所述的芯片,其特征在于,所述芯片還包括閃存芯片,所述閃存芯片 與所述閃存控制器互連。
8. 根據(jù)權(quán)利要求7所述的芯片,其特征在于,所述芯片還包括設(shè)備集,所述設(shè)備集連接 在所述系統(tǒng)總線上。
9. 根據(jù)權(quán)利要求8所述的芯片,其特征在于,所述FPGA器件中包括預(yù)置的電路修改單 J Li 〇
10. 根據(jù)權(quán)利要求4所述的芯片,其特征在于,所述SRAM與所述FPGAI0配置模塊互連, 所述FPGA模塊與所述MCU芯片共用所述SRAM。
【文檔編號】G06F13/14GK104050146SQ201410223000
【公開日】2014年9月17日 申請日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】王南飛, 李寶魁, 朱一明 申請人:北京兆易創(chuàng)新科技股份有限公司