利用QuartusⅡ開發工具實現6路PWM輸出接口的設計

2020-12-11 電子發燒友

利用QuartusⅡ開發工具實現6路PWM輸出接口的設計

徐軍,王華東 發表於 2020-04-11 09:35:18

引言

在許多嵌入式系統的實際應用中,需要擴展FP-GA(現場可編程門陣列)模塊,將CPU實現有困難或實現效率低的部分用FPGA實現,如數位訊號處理、硬體數字濾波器、各種算法等,或者利用FPGA來擴展I/O接口,如實現多路PWM(脈寬調製)輸出、實現PCI接口擴展等。通過合理的系統軟硬體功能劃分,結合優秀高效的FPGA設計,整個嵌入式系統的效率和功能可以得到最大限度的提高。

在電機控制等許多應用場合,需要產生多路頻率和脈衝寬度可調的PWM波形。本文用Altera公司FPGA產品開發工具QuartusⅡ,設計了6路PWM輸出接口,並下載到FPGA,實現與CPU的協同工作。

1、 FPGA概述

PLD(可編程邏輯器件)可分為SPLD(簡單可編程邏輯器件),CPLD(複雜可編程邏輯器件)和FPGA,其實它們只是在起初有一些差別,現在的區別已經比較模糊了,PLD可統稱為FPGA。目前世界上有十幾家生產CPLD/FPGA的公司,知名度較大的有Altera,Xil-inx,Lattice,Actel等,其中Altera和Xilinx佔有了60%以上的市場份額。

Altera公司是最大PLD供應商之一,20世紀90年代以後發展很快。主要產品有:MAX3000/7000、FLEX10K、APEX20K、ACEX1K、StraTIX、Cyclone等。開發軟體為MaxplusⅡ和QuartusⅡ。普遍認為其開發工具MaxplusⅡ和QuartusⅡ是最成功的FPGA開發平臺之一,配合使用Altera公司提供的免費OEM HDL綜合工具可以達到較高的效率。

對於系統設計人員來說,FPGA是一種可以自己編程的晶片。它從晶片製造廠商那裡出來時是內部沒有連線的。用戶可以進行設計輸人(電路圖輸入、狀態機輸入或者HDL輸入);然後進行仿真和驗證;接著用一些專用軟體(如Synopsys FPGA-Compiler、Synplici-ty Synplify、Examplar Leonardo等)進行邏輯綜合;最後使用各個FPGA廠商自身的後端實現的軟體(如Al-tera Quartus、Xilinx ISE等)進行布局布線,生成一個配置所需設計的電路連線關係的二進位流文件,通過一根連接PC機和FPGA晶片的下載線,將配置文件下載到晶片中。

本文以使用QuartusⅡ軟體設計PWM為例,介紹FPGA設計的流程,它包括設計輸入、約束輸入、邏輯綜合、邏輯驗證(綜合後仿真)、布局布線(器件實現)和器件驗證等幾部分。

2、 多路PWM的設計實現

PWM技術最初是在無線電技術中用於信號的調製,後來在電機調速中得到了很好的應用。在直流伺服控制系統中,通過專用集成晶片或中小規模數字集成電路構成的傳統PWM控制電路往往存在電路設計複雜、體積大、抗幹擾能力差以及設計困難、設計周期長等缺點,因此PWM控制電路的模塊化、集成化已成為發展趨勢。它不僅可以使系統體積減小、重量減輕且功耗降低,同時可使系統的可靠性大大提高。隨著電子技術的發展,特別是ASIC(專用集成電路)設計技術的日趨完善,數位化的EDA(電子設計自動化)工具給電子設計帶來了巨大變革,在電機控制等許多應用場合,需要產生多路頻率和脈衝寬度可調的PWM波形,這可通過FPGA豐富的硬體資源和可以配置I/O引腳來實現。嵌入式系統中FPGA的應用設計關鍵是系統軟硬體功能的劃分。

CPU通過數據線向FPGA寫入定時常數控制PWM的頻率、初始相位和佔空比,並通過外部啟動信號控制PWM的啟動。

寫出實現相應功能的Verilog程序描述。部分源程序如下:

QuartusⅡ中新建一個項目/文件時可選的設計輸入(在Software Files和Other Files標籤中還要其他設計輸入方法選擇),該窗口從菜單「File」→「New」打開,圖中顯示了「Device Design files」標籤下的設計輸入方法有AHDL(Altera 公司開發的HDL語言)、方塊圖/原理圖、EDIF、Verilog和VHDL輸入方法。另外在「Software Files『』和」Other Files「標籤下還有TCL語言、波形圖等其他輸入方法。

3、 邏輯仿真和器件驗證

行為級仿真是在HDL原始碼設計完成之後,通過設計測試平臺文件(激勵和測試矢量)來驗證設計的正確性。邏輯仿真是在邏輯綜合之後,對生成的門級網表進行驗證。測試平臺文件與採用行為級仿真的測試平臺文件,這樣能夠保證設計驗證的一致性。並且,邏輯驗證是一種理想的門級網表,不存在延時信息。器件驗證也稱版圖後仿真,它是在FPGA實現之後,提取出門級網表和延時信息進行驗證,測試平臺文件與行為級一樣。器件驗證結果是比較接近真實硬體的結果。完全通過這3層的驗證,基本上可以保證設計的結果與測試平臺文件一致。

行為仿真和器件仿真也可直接在QuartusⅡ中進行,其中輸入激勵波形和輸出觀察節點在QuartusⅡ波形輸入窗口進行設置,在設計通過功能仿真後,需要進一步選擇器件仿真以驗證設計的正確性。器件仿真時包含了所選擇的對應FPGA估算延時或實際延時信息,故仿真速度較功能仿真慢很多。通過仿真可以及早發現設計中的錯誤,並根據具體情況進行修改,包括修改硬體實現架構、設計代碼、約束條件等一個或多個方面。器件仿真通過後,則可以將設計下載到晶片,進行硬體功能驗證。

在564 ps時刻CPU向PWM寫入新的控制常數後,下一個周期的PWM輸出佔空比立刻發生了相應改變。

相應設計在QuartusⅡ下編譯通過後進行器件仿真的波形,由圖4可見,其時序功能正確。通過器件下載編程方法下載到相應的FPGA,就可以結合整個嵌入式系統進行硬體調試。

4、 結束語

在FPGA開發軟體中完成設計以後,軟體會產生一個最終的編程文件,QuartusⅡ中是.pof或.sof。現在的FPGA基本都採用在系統編程方式,對於EEP-ROM/Flask/SRAM工藝的在系統可編程FPGA,廠家提供編程電纜,如Altera公司提供的下載電纜類型有ByteBlasterⅡ並口下載電纜、USB BlasterTMUSB口下載電纜、MasterBlaster 通信纜線(USB或RS-232埠)等,其配置方式可以有主動/被動串行配置方式、JTAG方式等。電纜一端裝在計算機的相應接口上,另一端接至PCB(印製電路板)上的編程插頭,它向系統板上的器件提供配置或編程數據,這就是所謂的ISP(在線系統編程)。

在電機控制等許多應用場合,需要產生多路頻率和脈衝寬度可調的PWM波形,本文通過使用Altera公司FPGA產品開發工具QuartusⅡ,設計了6路PWM輸出接口,並下載到FPGA,實現與CPU的協同工作。在嵌入式系統中通過FPGA擴展系統功能的設計是一種有效的方法。

責任編輯:gt

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 利用PWM原理,實現呼吸燈功能
    實驗目標利用STM32定時器產生PWM信號;利用PWM信號實現呼吸燈。什麼是PWM信號呢?PWM,英文名Pulse Width Modulation。 PWM波可以由GPIO口產生,通過GPIO口輸出高電平,延時,輸出低電平,延時來產生PWM波。還可以使用定時器,利用比較寄存器形成PWM。本實驗就是利用PWM信號這一特性控制LED產生不同亮度,從而實現呼吸燈的效果。
  • STM32——PWM輸出總結
    Stm32定時器一共分為三種:tim1和tim8是高級定時器,6和7是基本定時器,2—5是通用定時器。從名字就可以看得出來主要功能上的差異。今天我主要是用定時器做pwm輸出,所以總結也主要是針對pwm方面的。 先大致說下通用和高級定時器的區別。通用的可以輸出四路pwm信號互不影響。
  • PCA9685--16路 PWM模塊舵機驅動板--STM32 IIC接口模塊
    目錄一、概述和硬體1、概述2、硬體1、電壓2、i2c地址3、使能腳二、寄存器功能MODE1寄存器外面調用的接口PCA9685是一款基於IIC總線通信的12位精度16通道PWM波輸出的晶片,該晶片最初由NXP推出時主要面向LED
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    三、控制系統硬體設計本調速控制系統,主要由ATmega8單片機、驅動電路、轉速檢測電路和通信接口電路等部分組成,如圖2所示。1.ATmega8單片機簡介[5]ATmega8是增強的AVRRISC結構的CMOS微控制器,具有高速度、低功耗、片內資源豐富、電源抗幹擾能力強等優點。
  • stm32 學習 (設置TIM4輸出4路 pwm J-LINK仿真驗證)
    X >= A 時輸出低電平(高電平) ; PWM佔空比:A/(N+1)stm32的pwm輸出只要設置好在主循環前調用一次即可, 對用的IO就可以持續的輸出PWMTIM4配置PWM過程程序:6. 配置pwm輸出引腳
  • 通過EDA設計工具了解FPGA的設計流程
    綜合後的網表有兩種: RTL級網表和門級網表(gate netlist),通過對網表的分析可以對設計的實現方式有初步的了解,並分析其中的錯誤和不合理的地方,另外還可以對關鍵路徑的delay和slack進行分析。
  • 正點原子-戰艦V3第十四章 PWM 輸出實驗
    改變 CCRx 的值,就可以改變 PWM 輸出的佔空比,改變 ARR 的值,就可以改變 PWM 輸出的頻率,這就是 PWM 輸出的原理。STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產生 PWM 輸出。
  • 怎樣利用PWM實現DAC電路設計
    周立功教授新書《面向AMetal框架與接口的編程(上)》,對AMetal框架進行了詳細介紹,通過閱讀這本書,你可以學到高度復用的軟體設計原則和面向接口編程的開發思想,聚焦自己的「核心域」,改變自己的編程思維,實現企業和個人的共同進步。經周立功教授授權,即日起,致遠電子公眾號將對該書內容進行連載,願共勉之。
  • PWM(脈寬調製)——LED特效呼吸燈設計
    限時乾貨下載:回復「教程」獲取單片機電子書,回復「仿真」獲取Proteus仿真資料,百度盤群組分享連結更新時間:2016-03-06,失效請在文末留言,不要在後臺留言  簡述PWM  PWM——脈寬調製信號(Pulse Width Modulation),它利用微處理器的數字輸出來實現
  • PWM在ARM Linux中的原理和蜂鳴器驅動實例開發
    PWM(脈衝寬度調製)簡單的講是一種變頻技術之一,是靠改變脈衝寬度來控制輸出電壓,通過改變周期來控制其輸出頻率。如果還不是很清楚,好吧,來看看我們實際生活中的例子,我們的電風扇為什麼扭一下按扭,風扇的轉速就會發生變化;調一下收音機的聲音按鈕,聲音的大小就會發生變化;還有待會兒我們要講的蜂鳴器也會根據不同的輸入值而發出不同頻率的叫聲等等!!
  • 基於CPLD的編碼器解碼接口、PWM輸出方案及其在運動控制卡和伺服...
    1 用CPLD來實現編碼器解碼接口及PWM輸出功能  現在市面上已經有專用的編碼器信號/AB相正交編碼信號解碼接口晶片,主要是歐美等國家提供的晶片,比如HCTL-2016/HCTL-2020等產品。但是這些產品性能價格比還是比較差,功能不夠豐富,使用起來也不靈活方便,很難適合廣大客戶的需求。
  • 基於Cortex-A9的pwm詳解——PWM信號輸出輸出和作用
    二、PWM信號輸出輸出和作用1. 如果要實現PWM信號輸出如何輸出呢?1)可以直接通過晶片內部模塊輸出PWM信號,前提是這個I/O口要有集成的pwm控制器,只需要通過對應的寄存器即可,這種自帶有PWM輸出的功能模塊在程序設計更簡便,同時數據更精確。2)但是如果IC內部沒有PWM功能模塊,或者要求不是很高的話可以利用I/O口設置一些參數來輸出PWM信號,因為PWM 信號其實就是一高一低的一系列電平組合在一起。
  • 基於PWM控制器和IPM模塊的變頻電源設計
    各種分立型功率器件需要設計專門的驅動電路才能實現使器件工作在開關狀態並獲得較低的動靜態損耗的效果。而隨著功率器件工作頻率不斷提高,分立元件固有的引線電感、寄生電容等對器件造成了更大的電應力,主要表現為過電壓、過電流尖峰。
  • 大佬帶你深入pwm殿堂,搞明白pwm頻率是咋回事
    對於pwm,想必很多朋友都有所耳聞。但是,大家對於pwm真的了解嗎?譬如,pwm頻率是如何被確定下來的?pwm頻率和pwm值是同一個東西嗎?如果不是,pwm頻率和pwm值有什麼區別呢?如果你對這些問題存在疑惑,或者是對本文涉及的pwm相關知識具有興趣,不妨繼續往下閱讀哦。
  • 利用FPGA實現外設通信接口之: 利用FPGA實現A/D、D/A轉換器接口
    10.5.1A/D、D/A轉換器接口的特點A/D、D/A轉換器是FPGA系統設計中的常用器件,經常用來實現模擬信號和數位訊號的相互轉換。根據應用場合的不同,A/D、D/A轉換晶片的性能指標參數差別比較大,因此接口格式也無法統一。
  • FPGA quartus ii裡的靜態時序分析
    FPGA quartus ii裡的靜態時序分析 huan09900990 發表於 2020-11-25 11:39:35 在fpga工程中加入時序約束的目的: 1、給quartusii
  • MSP430F149 TimerA 輸出pwm信號 C程序代碼
    MSP430F149 TimerA 輸出pwm信號 注意其中寄存器設置與pwm信號輸出引腳的對應關係 P1.2-TA1,TACCR1
  • 你足夠了解pwm嗎?搞清楚pwm控制技術
    pwm是現代重要技術之一,在各種電子設備中,均存在pwm的身影。在往期文章中,小編對pwm原理、pwm佔空比、pwm頻率均有所介紹。為增進大家對pwm的認識,本文將對pwm控制技術予以闡述。如果你對pwm抑或本文即將介紹的內容具有興趣,不妨繼續往下閱讀哦。
  • 基於Zynq的移動視頻監控系統的電機控制設計
    2.2 FPGA部分PWM IP核的設計 Xilinx嵌入式系統部分的設計由其公司推出的EDK(Embedded Development Kit)開發套件實現,EDK具有完成嵌入式系統設計的一整套工具,即:硬體設計工具
  • 利用FPGA實現外設通信接口之: 典型實例-USB 2.0接口的設計與實現
    本文引用地址:http://www.eepw.com.cn/article/201706/348803.htm10.7典型實例17:USB2.0接口的設計與實現10.7.1實例的內容及目標1.實例的主要內容本節旨在設計實現了FPGA通過FX2USB2.0接口晶片與PC機進行高速數據通信,分為讀數據、寫數據和讀寫數據3部分內容。