集成PWM控制器在不間斷電源系統(tǒng)中的應(yīng)用
關(guān)鍵詞:SoC 片上總線 AMBA Wishbone Avalon
引 言
??嵌入式系統(tǒng)是當(dāng)今計(jì)算機(jī)工業(yè)發(fā)展的一個(gè)熱點(diǎn)。隨著超大規(guī)模集成電路的迅速發(fā)展,半導(dǎo)體工業(yè)進(jìn)入深亞微米時(shí)代,器件特征尺寸越來(lái)越小,芯片規(guī)模越來(lái)越大,可以在單芯片上集成上百萬(wàn)到數(shù)億只晶體管。如此密集的集成度使我們現(xiàn)在能夠在一小塊芯片上把以前由CPU和若干I/O接口等數(shù)塊芯片實(shí)現(xiàn)的功能集成起來(lái),由單片集成電路構(gòu)成功能強(qiáng)大的、完整的系統(tǒng),這就是我們通常所說(shuō)的片上系統(tǒng)SoC(System on Chip)。由于功能完整,SoC逐漸成為嵌入式系統(tǒng)發(fā)展的主流。
??SoC相比板上系統(tǒng),具有許多優(yōu)點(diǎn):
??① 充分利用IP技術(shù),減少產(chǎn)品設(shè)計(jì)復(fù)雜性和開發(fā)成本,縮短產(chǎn)品開發(fā)的時(shí)間;
??② 單芯片集成電路可以有效地降低系統(tǒng)功耗;
??③ 減少芯片對(duì)外引腳數(shù),簡(jiǎn)化系統(tǒng)加工的復(fù)雜性;
??④ 減少外圍驅(qū)動(dòng)接口單元及電路板之間的信號(hào)傳遞,加快了數(shù)據(jù)傳輸和處理的速度;
??⑤ 內(nèi)嵌的線路可以減少甚至避免電路板信號(hào)傳送時(shí)所造成的系統(tǒng)信號(hào)串?dāng)_。
??SoC的設(shè)計(jì)過(guò)程中,最具特色的是IP復(fù)用技術(shù)。即選擇所需功能的IP(給出IP定義)核,集成到一個(gè)芯片中用。由于IP核的設(shè)計(jì)千差萬(wàn)別,IP核的連接就成為構(gòu)造SoC的關(guān)鍵。片上總線(On-Chip Bus,OCB)是實(shí)現(xiàn)SoC中IP核連接最常見的技術(shù)手段,它以總線方式實(shí)現(xiàn)IP核之間數(shù)據(jù)通信。與板上總線不同,片上總線不用驅(qū)動(dòng)底板上的信號(hào)和連接器,使用更簡(jiǎn)單,速度更快。一個(gè)片上總線規(guī)范一般需要定義各個(gè)模塊之間初始化、仲裁、請(qǐng)求傳輸、響應(yīng)、發(fā)送接收等過(guò)程中驅(qū)動(dòng)、時(shí)序、策略等關(guān)系。
??由于片上總線與板上總線應(yīng)用范圍不同,存在著較大的差異,其主要特點(diǎn)如下:
??① 片上總線要盡可能簡(jiǎn)單。首先結(jié)構(gòu)要簡(jiǎn)單,這樣可以占用較少的邏輯單元;其次時(shí)序要簡(jiǎn)單,以利于提高總線的速度;第三接口要簡(jiǎn)單,如此可減少與IP核連接的復(fù)雜度。
??② 片上總線有較大的靈活性。由于片上系統(tǒng)應(yīng)用廣泛,不同的應(yīng)用對(duì)總線的要求各異,因此片上總線具有較大的靈活性。其一,多數(shù)片上總線的數(shù)據(jù)和地址寬度都可變,如AMBA AHB支持32位~128位數(shù)據(jù)總線寬度;其二,部分片上總線的互連結(jié)構(gòu)可變,如Wishbone總線支持點(diǎn)到點(diǎn)、數(shù)據(jù)流、共享總線和交叉開關(guān)四種互連方式;其三,部分片上總線的仲裁機(jī)制靈活可變,如Wishbone總線的仲裁機(jī)制可以完全由用戶定制。
??③ 片上總線要盡可能降低功耗。因此,在實(shí)際應(yīng)用時(shí),總線上各種信號(hào)盡量保持不變,并且多采用單向信號(hào)線,降低了功耗,同時(shí)也簡(jiǎn)化了時(shí)序。上述三種片上總線輸入數(shù)據(jù)線和輸出數(shù)據(jù)線都是分開的,且都沒(méi)有信號(hào)復(fù)用現(xiàn)象。
??片上總線有兩種實(shí)現(xiàn)方案,一是選用國(guó)際上公開通用的總線結(jié)構(gòu);二是根據(jù)特定領(lǐng)域自主開發(fā)片上總線。本文就目前SoC上使用較多的三種片上總線標(biāo)準(zhǔn)——ARM的AMBA、Silicore的Wishbone和Altera的Avalon進(jìn)行討論,對(duì)三者特性進(jìn)行分析和比較。
1 AMBA總線
??AMBA(Advanced Microcontroller Bus Architecture)總線規(guī)范是ARM公司設(shè)計(jì)的一種用于高性能嵌入式系統(tǒng)的總線標(biāo)準(zhǔn)。它獨(dú)立于處理器和制造工藝技術(shù),增強(qiáng)了各種應(yīng)用中的外設(shè)和系統(tǒng)宏單元的可重用性。AMBA總線規(guī)范是一個(gè)開放標(biāo)準(zhǔn),可免費(fèi)從ARM獲得。目前,AMBA 擁有眾多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM處理器內(nèi)核的SoC設(shè)計(jì)中,已經(jīng)成為廣泛支持的現(xiàn)有互聯(lián)標(biāo)準(zhǔn)之一。AMBA總線規(guī)范2.0于1999年發(fā)布,該規(guī)范引入的先進(jìn)高性能總線(AHB)是現(xiàn)階段AMBA實(shí)現(xiàn)的主要形式。AHB的關(guān)鍵是對(duì)接口和互連均進(jìn)行定義,目的是在任何工藝條件下實(shí)現(xiàn)接口和互連的最大帶寬。AHB接口已與互連功能分離,不再僅僅是一種總線,而是一種帶有接口模塊的互連體系。
??AMBA總線規(guī)范主要設(shè)計(jì)目的如下:① 滿足具有一個(gè)或多個(gè)CPU或DSP的嵌入式系統(tǒng)產(chǎn)品的快速開發(fā)要求;② 增加設(shè)計(jì)技術(shù)上的獨(dú)立性,確??芍赜玫亩喾NIP核可以成功地移植到不同的系統(tǒng)中,適合全定制、標(biāo)準(zhǔn)單元和門陣列等技術(shù);③ 促進(jìn)系統(tǒng)模塊化設(shè)計(jì),以增加處理器的獨(dú)立性;④ 減少對(duì)底層硅的需求,以使片外的操作和測(cè)試通信更加有效。
??AMBA總線是一個(gè)多總線系統(tǒng)。規(guī)范定義了三種可以組合使用的不同類型的總線:AHB(Advanced High-performance Bus)、ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。
??典型的基于AMBA的SoC核心部分如圖1所示。其中高性能系統(tǒng)總線(AHB或ASB)主要用以滿足CPU和存儲(chǔ)器之間的帶寬要求。CPU、片內(nèi)存儲(chǔ)器和DMA設(shè)備等高速設(shè)備連接在其上,而系統(tǒng)的大部分低速外部設(shè)備則連接在低帶寬總線APB上。系統(tǒng)總線和外設(shè)總線之間用一個(gè)橋接器(AHB/ASB-APB-Bridge)進(jìn)行連接。
??AMBA的AHB適用于高性能和高時(shí)鐘頻率的系統(tǒng)模塊。它作為高性能系統(tǒng)的骨干總線,主要用于連接高性能和高吞吐量設(shè)備之間的連接,如CPU、片上存儲(chǔ)器、DMA設(shè)備和DSP或其它協(xié)處理器等。其主要特性如下:
◇支持多個(gè)總線主設(shè)備控制器;
◇支持猝發(fā)、分裂、流水等數(shù)據(jù)傳輸方式;
◇單周期總線主設(shè)備控制權(quán)轉(zhuǎn)換;
◇32~128位數(shù)據(jù)總線寬度;
◇具有訪問(wèn)保護(hù)機(jī)制,以區(qū)分特權(quán)模式和非特權(quán)模式訪問(wèn),指令和數(shù)據(jù)讀取等;
◇數(shù)據(jù)猝發(fā)傳輸最大為16段;
◇地址空間32位;
◇支持字節(jié)、半字和字傳輸。
??AMBA的ASB適用于高性能的系統(tǒng)模塊。在不必要適用AHB的高速特性的場(chǎng)合,可選擇ASB作為系統(tǒng)總線。它同樣支持處理器、片上存儲(chǔ)器和片外處理器接口與低功耗外部宏單元之間的連接。其主要特性與AHB類似,主要不同點(diǎn)是它讀數(shù)據(jù)和寫數(shù)據(jù)采用同一條雙向數(shù)據(jù)總線。
??AMBA的APB適用于低功耗的外部設(shè)備,它已經(jīng)過(guò)優(yōu)化,以減少功耗和對(duì)外設(shè)接口的復(fù)雜度;它可連接在兩種系統(tǒng)總線上。其主要特性如下:
◇低速、低功耗外部總線;
◇單個(gè)總線主設(shè)備控制器;
◇非常簡(jiǎn)單,加上CLOCK和RESET,總共只有4個(gè)控制信號(hào);
◇32位地址空間;
◇最大32位數(shù)據(jù)總線;
◇讀數(shù)據(jù)總線與寫數(shù)據(jù)總線分開。
2 Wishbone總線
??Wishbone最先是由Silicore公司提出的,現(xiàn)在已被移交給OpenCores組織維護(hù)。由于其開放性,現(xiàn)在已有不少的用戶群體,特別是一些免費(fèi)的IP核,大多數(shù)都采用Wishbone標(biāo)準(zhǔn)。
??Wishbone總線規(guī)范是一種片上系統(tǒng)IP核互連體系結(jié)構(gòu)。它定義了一種IP核之間公共的邏輯接口,減輕了系統(tǒng)組件集成的難度,提高了系統(tǒng)組件的可重用性、可靠性和可移植性,加快了產(chǎn)品市場(chǎng)化的速度。Wishbone總線規(guī)范可用于軟核、固核和硬核,對(duì)開發(fā)工具和目標(biāo)硬件沒(méi)有特殊要求,并且?guī)缀跫嫒菀延兴械木C合工具,可以用多種硬件描述語(yǔ)言來(lái)實(shí)現(xiàn)。
??Wishbone總線規(guī)范的目的是作為一種IP核之間的通用接口,因此它定義了一套標(biāo)準(zhǔn)的信號(hào)和總線周期,以連接不同的模塊,而不是試圖去規(guī)范IP核的功能和接口。
??Wishbone總線結(jié)構(gòu)十分簡(jiǎn)單,它僅僅定義了一條高速總線。在一個(gè)復(fù)雜的系統(tǒng)中,可以采用兩條Wishbone總線的多級(jí)總線結(jié)構(gòu):其一用于高性能系統(tǒng)部分,其二用于低速外設(shè)部分,兩者之間需要一個(gè)接口。這個(gè)接口雖然占用一些電路資源,但這比設(shè)計(jì)并連接兩種不同的總線要簡(jiǎn)單多了。用戶可以按需要自定義Wishbone標(biāo)準(zhǔn),如字節(jié)對(duì)齊方式和標(biāo)志位(TAG)的含義等等,還可以加上一些其它的特性。Wishbone的一種互連結(jié)構(gòu)如圖。
??靈活性是Wishbone總線的另一個(gè)優(yōu)點(diǎn)。由于IP核種類多樣,其間并沒(méi)有一種統(tǒng)一的間接方式。為滿足不同系統(tǒng)的需要,Wishbone總線提供了四種不同的IP核互連方式:
◇點(diǎn)到點(diǎn)(point-to-point),用于兩IP核直接互連;
◇數(shù)據(jù)流(data flow),用于多個(gè)串行IP核之間的數(shù)據(jù)并發(fā)傳輸;
◇共享總線(shared bus),多個(gè)IP核共享一條總線;
◇交叉開關(guān)(crossbar switch)(圖2),同時(shí)連接多個(gè)主從部件,提高系統(tǒng)吞吐量。
??還有一種片外連接方式,可以連接到上面任何一種互連網(wǎng)絡(luò)中。比如說(shuō),兩個(gè)有Wishbone接口的不同芯片之間就可以用點(diǎn)到點(diǎn)方式進(jìn)行連接。
??Wishbone總線主要特征如下:
◆ 所有應(yīng)用適用于同一種總線體系結(jié)構(gòu);
◆ 是一種簡(jiǎn)單、緊湊的邏輯IP核硬件接口,只需很少的邏輯單元即可實(shí)現(xiàn);
◆ 時(shí)序非常簡(jiǎn)單;
◆ 主/從結(jié)構(gòu)的總線,支持多個(gè)總線主設(shè)備;
◆ 8~64位數(shù)據(jù)總線(可擴(kuò)充);
◆ 單周期讀寫;
◆ 支持所有常用的總線數(shù)據(jù)傳輸協(xié)議,如單字節(jié)讀寫周期、塊傳輸周期、控制操作及其它的總線事務(wù)等;
◆ 支持多種IP核互連網(wǎng)絡(luò),如單向總線、雙向總線、基于多路互用的互連網(wǎng)絡(luò)、基于三態(tài)的互連網(wǎng)絡(luò)等;
◆ 支持總線周期的正常結(jié)束、重試結(jié)束和錯(cuò)誤結(jié)束;
◆ 使用用戶自定義標(biāo)記(TAG),確定數(shù)據(jù)傳輸類型、中斷向量等;
◆ 仲裁器機(jī)制由用戶自定義;
◆ 獨(dú)立于硬件技術(shù)(FPGA、ASIC、bipolar、MOS等)、IP核類型(軟核、固核或硬核)、綜合工具、布局和布線技術(shù)等。
3 Avalon總線
??Avalon總線是Altera公司設(shè)計(jì)的用于SOPC(System On Programmable Chip,可編程片上系統(tǒng))中,連接片上處理器和其它IP模塊的一種簡(jiǎn)單的總線協(xié)議,規(guī)定了主部件和從部件之間進(jìn)行連接的端口和通信的時(shí)序。
??Avalon總線的主要設(shè)計(jì)目的如下:① 簡(jiǎn)單性,提供一種非常易于理解的協(xié)議;② 優(yōu)化總線邏輯的資源使用率,將邏輯單元保存在PLD(Programmable Logic Device,可編程邏輯器件)中;③ 同步操作,將其它的邏輯單元很好地集成到同一PLD中,同時(shí)避免復(fù)雜的時(shí)序。
傳統(tǒng)的總線結(jié)構(gòu)中,一個(gè)中心仲裁器控制多個(gè)主設(shè)備和從設(shè)備之間的通信。這種結(jié)構(gòu)會(huì)產(chǎn)生一個(gè)瓶頸,因?yàn)槿魏螘r(shí)候只有一個(gè)主設(shè)備能訪問(wèn)系統(tǒng)總線。Avalon總線的開關(guān)構(gòu)造使用一種稱之為從設(shè)備仲裁(Slave-side arbitration)的技術(shù),允許多個(gè)主設(shè)備控制器真正地同步操作。當(dāng)有多個(gè)主設(shè)備訪問(wèn)同一個(gè)從設(shè)備時(shí),從設(shè)備仲裁器將決定哪個(gè)主設(shè)備獲得訪問(wèn)權(quán)。圖3是一個(gè)多主設(shè)備同時(shí)訪問(wèn)存儲(chǔ)器的例子。在此系統(tǒng)中,高帶寬外設(shè),如100M以太網(wǎng)卡,可以不需暫停CPU而直接訪問(wèn)存儲(chǔ)器。通過(guò)允許存儲(chǔ)訪問(wèn)獨(dú)立于CPU。Avalon開關(guān)結(jié)構(gòu)優(yōu)化了數(shù)據(jù)流,從而提高了系統(tǒng)的吞吐量。
Avalon總線主要特性如下:
◇32位尋址空間;
◇支持字節(jié)、半字和字傳輸;
◇同步接口;
◇獨(dú)立的地址線、數(shù)據(jù)線和控制線;
◇設(shè)備內(nèi)嵌譯碼部件;
◇支持多個(gè)總線主設(shè)備,Avalon自動(dòng)生成仲裁機(jī)制;
◇多個(gè)主設(shè)備可同時(shí)操作使用一條總線;
◇可變的總線寬度,即可自動(dòng)調(diào)整總線寬度,以適應(yīng)尺寸不匹配的數(shù)據(jù);
◇提供了基于圖形界面的總線配置向?qū)?,?jiǎn)單易用。
4 三種片上總線比較
??通過(guò)以上對(duì)三種總線特性的介紹,可以對(duì)三種總線作個(gè)比較,如表1所列。
表1 三種總線特性比較
AMBA | Wishbon | Avalon | |
互連方式 | 共享總線 | 交叉開關(guān)/共享總線/數(shù)據(jù)流/點(diǎn)到點(diǎn) | 共享總線/總線開關(guān) |
主控制器 | 多個(gè) | 多個(gè) | 多個(gè) |
數(shù)據(jù)總寬度/位 | 32~128 | 8~64 | 32 |
地址空間/位 | 32 | 64 | 32 |
數(shù)據(jù)傳輸方式 | 字節(jié)/半字/字 | 字節(jié)/半字/字 | 字節(jié)/半字/字 |
事務(wù)傳輸方式 | 流水/分裂/猝發(fā)傳輸 | 單字節(jié)讀寫/塊/猝發(fā)傳輸 | 單字節(jié)讀寫/塊傳輸 |
數(shù)據(jù)對(duì)齊方式 | 大端對(duì)齊/小端對(duì)齊 | 大端對(duì)齊/小端對(duì)齊 | 大端對(duì)齊/小端對(duì)齊 |
仲裁機(jī)制 | 系統(tǒng)定義 | 用戶自定義 | 系統(tǒng)生成 |
獨(dú)立性 | 硬件技術(shù)/IP核類型/綜合工具無(wú)關(guān) | 硬件技術(shù)/IP核類型/綜合工具無(wú)關(guān) | 硬件技術(shù)/IP核類型無(wú)關(guān) |
??基于三種總線的特性,可以得出其應(yīng)用的綜合比較,如表2所列。
表2 三種總線應(yīng)用綜合比較
AMBA | Wishbon | Avalon | |
適用器件 | PLD,ASIC | PLD,ASIC | Altera系列PLD |
應(yīng)用范圍 | 高性能嵌入式系統(tǒng) | 高性能嵌入式系統(tǒng),型嵌入式系統(tǒng) | 用于Altera Nios軟核的系統(tǒng)中 |
可用資源 | ARM使用伙伴眾多,提供了豐富的IP核 | 對(duì)IP核沒(méi)有特殊要求,而且www.oprncores.org中有許免費(fèi)IP核 | Alter公司建立了AMPP(Altera Megafunction Partners Program)組織,提供了豐富的IP核 |
價(jià)格 | ARM聲黎免費(fèi),但需要授權(quán)協(xié)議 | 完全免費(fèi) | Altera所有,需要授權(quán)協(xié)議 |
??三種總線各有特點(diǎn),決定了其應(yīng)用范圍的不同。AMBA 總線規(guī)范擁有眾多第三方支持,被ARM公司90%以上的合作伙伴采用,已成為廣泛支持的現(xiàn)有互連標(biāo)準(zhǔn)之一。Wishbone異軍突起,其簡(jiǎn)單性和靈活性受到廣大SoC設(shè)計(jì)者的青睞。由于它是完全免費(fèi)的,并有豐富的免費(fèi)IP核資源,因此它有可能成為未來(lái)的片上系統(tǒng)總線互連標(biāo)準(zhǔn)。Avalon主要用于Altera公司系列PLD中,最大的優(yōu)點(diǎn)在于其配置的簡(jiǎn)單性,可由EDA工具快速生成,受PLD廠商巨頭Altera極力推薦,其影響范圍也不可忽視。
結(jié) 語(yǔ)
??本文對(duì)SoC中常用的三種總線AMBA、Wishbone和Avalon的特性進(jìn)行了詳細(xì)分析和比較,在此基礎(chǔ)上闡述了各自的應(yīng)用范圍,為SoC設(shè)計(jì)中總線選擇提供了參考。SoC系統(tǒng)中總線的選擇不僅要看其性能,還要看其應(yīng)用范圍,是否有足夠的IP核資源可用等等。另外,SoC中可以選用的總線還有很多,如IBM的CoreConnect、Plamchip的CoreFrame、Mentor Graphics的FISPbus等等。雖然這些總線目前的應(yīng)用范圍都遠(yuǎn)不如本文介紹的三種總線廣泛,但是各有其特點(diǎn)和適用領(lǐng)域。因此,在SoC中選用片上總線時(shí),需要進(jìn)行認(rèn)真選擇。