基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)_圖文_第1頁
基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)_圖文_第2頁
基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)_圖文_第3頁
基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)_圖文_第4頁
基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)_圖文_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2008童#9fJ 鹿子測(cè)斌 Sep.2008 i!墼絲IIIlll ; ; 星!星呈堡壘些篁塹曼三.; ; 。; !呈:皇 基于FPGA的PWM與定時(shí)計(jì)數(shù)器IP核的設(shè)計(jì)匡石,方千山(華僑大學(xué)機(jī)電及自動(dòng)化學(xué)院泉州362021摘要:基于硬核嵌入式CPU中的刪/定時(shí)計(jì)數(shù)器模塊與FPGA的廣泛應(yīng)用,本文提出了一種軟件式的 PWM/定時(shí)計(jì)數(shù)器數(shù)字邏輯電路的設(shè)計(jì)思想。用硬件描述語言HDL編寫總線接El、功能邏輯與外部I/0電路, 并描述了硬件驅(qū)動(dòng)程序的設(shè)計(jì)過程。對(duì)其結(jié)果進(jìn)行了軟件仿真并定制到NIOS II中進(jìn)行調(diào)試,實(shí)驗(yàn)結(jié)果證明,該 設(shè)計(jì)具有很好的實(shí)際效果。關(guān)鍵詞:IP;FPGA;NIOS II;驅(qū)動(dòng)中

2、圖分類號(hào):TP39文獻(xiàn)標(biāo)識(shí)碼:BDesign ofPWM and time counter IP core based on FPGAKuang Shi,Fang Qianshan(Huaqiao University,Quanzhou 362021,ChinaAbstract:Based on the widespread application of PWM/timing counter modules and FPGA in the hard core embedded CPU,we propose a software design ideas of PWM/timing counte

3、r dig itallogic circuit.HDL hardware description language is used to preparebus interface,logic functions and external I/0circuit,and described the driver of the hardware design process. Have carried on software emulation and debugged in NIOS II to its result,the experimental re suits show that the

4、design has a good practical results.Keywords:IP;FPGA;NIOS II;actuation0引 言PWM在自動(dòng)控制系統(tǒng)和計(jì)算機(jī)技術(shù)領(lǐng)域都有 非常廣泛的應(yīng)用。在許多硬核式的嵌入式CPU中 都有PWM和定時(shí)計(jì)數(shù)器模塊的I/0口供用戶使 用,在交流檢測(cè)、電機(jī)控制等實(shí)際應(yīng)用系統(tǒng)中, PWM是整個(gè)系統(tǒng)的技術(shù)核心,在嵌入式操作系統(tǒng) 中定時(shí)計(jì)數(shù)器也是不可缺少的部分。而在FPGA 中的SOPC中,很多時(shí)候并沒有提供這種模塊供用 戶使用,因此設(shè)計(jì)出支持PWM輸出的IP核具有 很大的實(shí)用價(jià)值。針對(duì)市場(chǎng)上使用的FPGA情況, 本文所提出的IP功能實(shí)現(xiàn)是基于Alter

5、a公司的 cyclone II芯片,該功能模塊不僅可以作為獨(dú)立的 模塊使用,而且可以嵌入到Altera公司提供的 NIOS II處理器中,并通過N10S II對(duì)該模塊進(jìn)行 控制。HDL語言是一種通用性很強(qiáng)的語言,因此 這個(gè)模塊具有很高的移植性,不僅可以用于大多數(shù)屯蚤型i豇 ELECTRD.NIC1幡n巴 萬方數(shù)據(jù)的Altera芯片,而且對(duì)于其它公司生產(chǎn)的FPGA 芯片同樣適用。本設(shè)計(jì)中給出了模塊與主系統(tǒng)的 接1:3電路、功能邏輯電路以及外部輸出端口。1芯片功能描述本設(shè)計(jì)實(shí)現(xiàn)了PWM輸出和定時(shí)器/計(jì)數(shù)器2大功能,IP核將根據(jù)內(nèi)部寄存器的狀態(tài)選擇相應(yīng)的 工作模式完成系統(tǒng)的功能。(1PwM工作模式。

6、 當(dāng)IP工作在PWM模式下時(shí),模塊內(nèi)部計(jì)數(shù)器將 計(jì)算高低電平脈沖的時(shí)間長度(或者是脈沖個(gè)數(shù), 模塊根據(jù)用戶自定義的PWM輸出脈沖占空比,產(chǎn) 生具有占空比可調(diào)的二進(jìn)制信號(hào),最后以脈沖的形 式輸出。(2定時(shí)器/計(jì)數(shù)器工作形式。當(dāng)IP工作 在定時(shí)器模式下時(shí),芯片內(nèi)部的32位定時(shí)器/計(jì)數(shù) 器模塊開始計(jì)數(shù)時(shí)鐘周期的個(gè)數(shù),當(dāng)時(shí)鐘周期數(shù)達(dá) 到內(nèi)部寄存器的預(yù)設(shè)的數(shù)值,則產(chǎn)生一個(gè)中斷信 號(hào)。該信號(hào)可以被主系統(tǒng)識(shí)別,并產(chǎn)生相應(yīng)的中斷 功能。定時(shí)/計(jì)數(shù)的模式有單一循環(huán)和連續(xù)循環(huán)兩 種方式,并有內(nèi)部系統(tǒng)時(shí)鐘源和外部時(shí)鐘源供選 擇,工作方式與時(shí)鐘源的選擇通過置位控制寄存器 相應(yīng)的位來選擇。不論芯片是工作在PWM模式 下

7、,還是工作在定時(shí)器/計(jì)數(shù)器模式,它都必須使用 內(nèi)部寄存器。如果內(nèi)部寄存器的值達(dá)到了預(yù)設(shè)值 后不再增加,那么芯片應(yīng)采取單一循環(huán)計(jì)數(shù)方式; 如果內(nèi)部寄存器的值達(dá)到了預(yù)設(shè)值后便復(fù)位,重新 開始加1計(jì)數(shù),那么芯片應(yīng)采取連續(xù)循環(huán)計(jì)數(shù)方 式。上述邏輯功能是通過AVALON交換結(jié)構(gòu)與 主系統(tǒng)端口進(jìn)行連接。2IP結(jié)構(gòu)設(shè)計(jì)本設(shè)計(jì)的總體電路結(jié)構(gòu)包含主系統(tǒng)電路接 口、芯片內(nèi)部寄存器區(qū)和數(shù)據(jù)緩存區(qū)、芯片內(nèi)部 組合邏輯電路模塊和時(shí)序邏輯電路模塊和獨(dú)立 的外部I/O端口4個(gè)主要的功能模塊,如圖1所 示。屯蚤逛9i基ELECTRONIC TEST圖1芯片總體結(jié)構(gòu)圖2.1設(shè)備接口電路主系統(tǒng)電路接口使用的是基于AVALON總

8、線標(biāo)準(zhǔn)的SoC電路互連接口規(guī)范,可以通過它與其 他主系統(tǒng)(如NIOS II處理器互連,共同組成功能 更大的芯片。假設(shè)某個(gè)主系統(tǒng)設(shè)計(jì)需要應(yīng)用本設(shè) 計(jì),完成PWM輸出,或者完成定時(shí)、計(jì)數(shù)功能,那 么必須按圖2所示的模型通過電路接口進(jìn)行互連, 這種互連結(jié)構(gòu)由Quartus里的SOPC Builder自動(dòng) 完成,用戶只需要定義從端口的接口邏輯。圖2電路系統(tǒng)的應(yīng)用模型AVALON標(biāo)準(zhǔn)的SoC電路互連接口規(guī)范定 義了2種類型的接口:主設(shè)備接口和從設(shè)備接口。 本設(shè)計(jì)使用的從設(shè)備接口。主設(shè)備和從設(shè)備按照 下列步驟進(jìn)行互連。(1主設(shè)備利用主接口向本設(shè) 計(jì)芯片發(fā)送數(shù)據(jù)和功能請(qǐng)求。(2AVALON總線 結(jié)構(gòu)對(duì)主系統(tǒng)

9、的數(shù)據(jù)進(jìn)行翻譯、打包,將其轉(zhuǎn)換為 接口標(biāo)準(zhǔn)所能識(shí)別的格式。(3從設(shè)備接口交給從 設(shè)備進(jìn)行數(shù)據(jù)獨(dú)立處理,并不向主系統(tǒng)返回?cái)?shù)據(jù)。 AVALON交換結(jié)構(gòu)能支持任何位寬度的總線(數(shù) 據(jù)總線與地址總線的總和。但為了能讓IP有更 好的移植性,使用的是32位的總線寬度。2.2寄存器描述寄存器是芯片電路實(shí)體區(qū)域與AVALON交 換結(jié)構(gòu)之間的緩沖區(qū),這些寄存器的值聯(lián)合起來確 定芯片的工作方式和操作類型。本設(shè)計(jì)使用了4類寄存器:剖萬方數(shù)據(jù)(1PRTC_CNTR寄存器。PRTC_CNTR寄 存器是芯片內(nèi)部真正的計(jì)數(shù)寄存器,其存儲(chǔ)的數(shù)值 每經(jīng)過一個(gè)有效的計(jì)數(shù)/定時(shí)時(shí)鐘周期(由系統(tǒng)時(shí) 鐘或外部時(shí)鐘端口的輸入后自動(dòng)加1。

10、為了實(shí)現(xiàn) 計(jì)數(shù)、定時(shí),系統(tǒng)還需要根據(jù)RPTC CTRL寄存器 其他控制位的值來實(shí)現(xiàn)。RPTCCNTR寄存器是 32位寬度的計(jì)數(shù)寄存器,若復(fù)位清零,則它重新從 0開始向上加1計(jì)數(shù)。(2PRTCHRC寄存器。PRTCHRC寄存 器是芯片內(nèi)部引用寄存器(信號(hào)緩存器的第二級(jí) 輸出,它具備以下2個(gè)功能:若寄存器用作引用 寄存器,則它可以用于輸出芯片PWM波形的高32位部分,也可以用于產(chǎn)生中斷輸出。若寄存器用 作信號(hào)緩存器(也稱為信號(hào)捕捉寄存器,則它在 PTC_CAPT信號(hào)為高電平期間捕捉并緩存RPTC CNTR寄存器的值。RPTCCNTR寄存器是32位寬度的引用寄存器(信號(hào)緩存器,若芯片復(fù)位清 零,則它

11、的值復(fù)位為0。(3PRTC_LRC寄存器。PRTC_LRC寄存器 是芯片內(nèi)部引用寄存器(信號(hào)緩存器的第一級(jí)輸 出,它具備以下2個(gè)功能:若寄存器用作引用寄 存器,則它可以用于輸出芯片PWM波形的低32位部分,也可以用于產(chǎn)生中斷輸出。若寄存器用 作信號(hào)緩存器(也稱為信號(hào)捕捉寄存器,則它在 PTC_CAPT信號(hào)為低電平期間捕捉并緩存RPTC _CNTR寄存器的值。RPTCCNTR寄存器也是 32位寬度的引用寄存器(信號(hào)緩存器,若芯片復(fù) 位清零,則它的值復(fù)位為0。.(4PRTCCTRL寄存器。RPTCCTRL寄 存器是芯片內(nèi)部的控制寄存器,它包含9bit控制 位,通過寫這些控制位執(zhí)行不同的邏輯功能。2

12、.3IP內(nèi)部邏輯設(shè)計(jì)芯片內(nèi)部的電路模塊包含了時(shí)鐘分頻模塊、 PWM輸出與技術(shù)/定時(shí)器的引用比較模塊以及中 斷發(fā)生器模塊。利用這些電路模塊,芯片提供了 PWM輸出和定時(shí)器/計(jì)數(shù)器這2種工作模式,可以 根據(jù)控制寄存器PRTC_CTRL的值來選取工作模 式。其他的邏輯功能如對(duì)計(jì)數(shù)器里的數(shù)值的捕獲 進(jìn)行緩存,定時(shí)計(jì)數(shù)器時(shí)鐘的選擇都是由控制寄存 器的相應(yīng)的位的設(shè)置來進(jìn)行。(1PWM輸出模塊。 芯片復(fù)位信號(hào)不能輸出脈沖波形。PWM模塊由寄 存器RPTC_HRC和RPTCLRC、比較器以及RS 觸發(fā)器構(gòu)成。寄存器RPTCHRC存放的是輸出 脈沖高電平持續(xù)的時(shí)鐘周期數(shù),寄存器RPTc LRC存放的是輸出脈沖低

13、電平持續(xù)的時(shí)鐘周期數(shù)。 (2定時(shí)器/計(jì)數(shù)器模塊。定時(shí)器/計(jì)數(shù)器模塊由寄 存器PRTC_LRC、寄存器RPTC_CNTR和寄存器 捕捉模塊構(gòu)成。通過設(shè)置PRTC_LRC里的參數(shù)確 定定時(shí)/計(jì)數(shù)時(shí)間,輸出結(jié)果由PRTC_LRC與 RPTC。CNTR比較的結(jié)果來確定。2.4邏輯功能仿真對(duì)模塊的邏輯功能的仿真使用的是 Quartus7.2版里自帶的仿真工具,在編寫好測(cè)試向 量的波形文件后即可對(duì)輸出功能是否復(fù)合設(shè)計(jì)要 求進(jìn)行驗(yàn)證。驗(yàn)證的結(jié)果是復(fù)合設(shè)計(jì)要求的,仿真 圖如圖3所示。圖3邏輯功能仿真3驅(qū)動(dòng)程序設(shè)計(jì)要實(shí)現(xiàn)對(duì)IP硬件邏輯電路進(jìn)行操作,也就是 對(duì)參數(shù)進(jìn)行在線操作或者是主設(shè)備對(duì)IP進(jìn)行控 制,則要編寫

14、邏輯電路的驅(qū)動(dòng)程序。Nios II IDE為 用戶提供了設(shè)備驅(qū)動(dòng)程序,也就是硬件抽象層 (HAL系統(tǒng)庫,HAL應(yīng)用程序接口(API與ANSI C標(biāo)準(zhǔn)庫綜合在一起就形成了上層應(yīng)用程序與下 層硬件電路接El平臺(tái)。設(shè)備驅(qū)動(dòng)程序可以概括一組描述設(shè)備的數(shù)據(jù) 結(jié)構(gòu)和控制設(shè)備行為的函數(shù)集合,函數(shù)就是用來實(shí)屯圣塑!i豇 E【上0TBI:NtC嘲 巴 萬方數(shù)據(jù)現(xiàn)設(shè)備的訪問。驅(qū)動(dòng)程序執(zhí)行過程如圖4所示。 讀/寫 控制寄存器I一 . 囪圈 數(shù)據(jù)寄存器f圖4設(shè)備驅(qū)動(dòng)框圖對(duì)IP模塊進(jìn)行驅(qū)動(dòng)程序開發(fā)的過程如下: (1創(chuàng)建一個(gè)設(shè)備頭文件,用于描述設(shè)備的寄 存器和訪問方法。在這個(gè)頭文件中,要用清晰易懂 的宏符號(hào)描述出設(shè)備的4

15、個(gè)寄存器,并給出訪問方 法。頭文件的文件名遵循“pwm timer_regs.h”的 格式;用“IORD_<設(shè)備名>一<寄存器名>”的形 式定義寄存器的讀訪問方式;用“10wIL<設(shè)備名 >一<寄存器名>”的形式定義寄存器的寫訪問方 式;用“<設(shè)備名>一<寄存器名>一<位域>一 MSK”的形式定義寄存器位的掩碼;用“<設(shè)備名>一<寄存器名>一<位域>0FST”的形式定義寄存 器位的偏移位置。(2定義并實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)的功能。IDE中的 各種設(shè)備都是一個(gè)抽象的結(jié)構(gòu)體,在SOPC中訂

16、制 這個(gè)設(shè)備,只有在驅(qū)動(dòng)中實(shí)例化,才能在內(nèi)存空間 中開辟一塊內(nèi)存空間,而對(duì)內(nèi)存的控制的通過地址 來實(shí)現(xiàn)的,通過這個(gè)地址和偏移地址就可以對(duì)IP 模塊的寄存器進(jìn)行讀寫控制。設(shè)備實(shí)例化就可以 按用戶意圖編寫多種功能函數(shù),這些函數(shù)在用戶的 應(yīng)用程序中可以方便的調(diào)用。(3將設(shè)備驅(qū)動(dòng)集成到HAL中。驅(qū)動(dòng)程序開 發(fā)完畢后,要把源程序文件放到約定的目錄下,并 為模塊編寫一個(gè)控制IDE軟件編譯連接Makefile 文件,這樣驅(qū)動(dòng)程序才能編譯到HAL系統(tǒng)庫中。 文件格式如下:C_LIB_SRCS+一pwrn_timer_regs.CASM_LIB_SRCSl一一INCLI 7DE PATH+=上面程序中,Cj。I

17、B.SRCS是放置欲編譯的C 文件,AsMLIB_SRCS是欲編譯的匯編文件,IN CLI艦PATH是要文件包含路徑。完成以上步 驟后,在SPOC Builder中添加該模塊并定制到 電蚤理9i基E1.ECTRONIC TEST NIOS II處理器中,即可以在應(yīng)該程序中對(duì)脈沖模 塊進(jìn)行操作了。4結(jié) 論本文提出了一種基于融的PWM/定時(shí)計(jì)數(shù) 器的數(shù)字芯片設(shè)計(jì)思路,設(shè)計(jì)的邏輯電路用刪, 語言實(shí)現(xiàn),設(shè)計(jì)的代碼在Altera的Qh.1f_rtUS II軟件通 過了綜合、仿真、布線,并定制到NIOS II軟核式 CPU中,可以通過主設(shè)備對(duì)改模塊進(jìn)行控制。由于 HDL語言與編寫驅(qū)動(dòng)的C語言具有很好的通用

18、性,該模塊電路只需要做很少量的修改便可以在不同的 黜芯片上實(shí)現(xiàn),具有很好的移植性,用戶也可以 根據(jù)需要對(duì)該模塊的設(shè)計(jì)思想進(jìn)行修改,以復(fù)合實(shí) 際需要,所以本設(shè)計(jì)具有很好的實(shí)用意義。參考文獻(xiàn)1Altera Corporation.Ouartus II Version&0Hand-bookDB.America,2006.2Altera Corporation.NIOS Software HandbookDB. America,2006.3林華.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)刀.電子工程 師,2006,32:6769.4潘松,黃繼業(yè).EDA技術(shù)與VHDLM.北京:清華大 學(xué)出版社,2005.5億

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論