新聞中心

EEPW首頁 > 電源與新能源 > 設計應用 > 基于FPGA的可編程PWM電路設計

基于FPGA的可編程PWM電路設計

作者: 時間:2010-05-19 來源:網(wǎng)絡 收藏

2.1 模塊片選譯碼

該模塊主要通過地址信號Addr與片選信號Cs_b的組合邏輯電路生成內(nèi)部各子模塊的片選信號(ControlLogic,3個通道:Channel2,Channel1,Channel0)。

2.2 控制邏輯

該模塊主要產(chǎn)生通道內(nèi)部Regs片選控制信號及各通道的輸出控制信號,同時完成精簡地址線的操作。

每個通道都包含各自獨立的4個16 bits的寄存器,包括正向信號長度、負向信號長度、死區(qū)長度、周期長度等。由于控制字寄存器為8 bits,因此.整個芯片至少占用3×4×2+1=25個地址(每個地址存儲8 bits數(shù)據(jù)),傳統(tǒng)做法至少需要5根地址線譯碼,而采用區(qū)分數(shù)據(jù)信息類型(控制字,數(shù)據(jù)字)的方式則可將地址線精簡到2根。相對單片機緊缺的外面地址資源來說,其好處是顯而易見的。具體來說,通過對寫人ControlRegister(控制字寄存器)的值進行分析,結合數(shù)據(jù)傳輸寬度生成內(nèi)部Regs片選控制信號,就可以通過控制字信息來完成內(nèi)部Regs的地址譯碼,同時反饋被操作的寄存器信息到RWLogic模塊,從而完成8/16bits的數(shù)據(jù)讀寫操作。

值得注意的是,由于內(nèi)部包含了3個完全一樣的獨立通道,因此,為了更方便的對控制字進行操作,通過對控制字寄存器的分析,可用控制邏輯電路自動將當前被操作通道的控制寄存器信息存儲在對應的控制寄存器中備份。這樣既方便在編程中靈活地操作各通道,又可避免讀寫過程中的誤修改非相干通道的控制信息。

2.3 讀寫邏輯

該模塊用于處理外部數(shù)據(jù)Data[15:0](包括外部為16位或8位數(shù)據(jù)總線連接方式)到內(nèi)部DataInternal[15:0]的轉換。當DataWidth為1時,采用16 bits的數(shù)據(jù)傳輸;當DataWidth為0時,采用8 bits數(shù)據(jù)傳輸。通過能完成對外部8 bits或16 bits的信息傳輸要求,準確的讀寫內(nèi)部16bits的Regs。具體實現(xiàn)時,如采用16 bits傳輸,由于內(nèi)部數(shù)據(jù)采用16 bits傳輸,可以采用每個地址對應16 bits數(shù)據(jù),每個數(shù)據(jù)位一一對應的傳輸方式;而采用8 bits傳輸時,由于內(nèi)部數(shù)據(jù)采用16bits傳輸,故可通過分析地址的奇偶特性來確定數(shù)據(jù)高低字節(jié)的存放,也就是通過ControlLogic反饋的字節(jié)選擇位,來使讀寫邏輯電路能夠自適應地把16 bits的Regs數(shù)據(jù)信息分割加載到合適的數(shù)據(jù)通道上,從而完成數(shù)據(jù)的輸入輸出控制。

為了精簡數(shù)據(jù)線,實現(xiàn)數(shù)據(jù)的雙向流通,本模塊通過片選和讀寫使能信號所控制的雙向三態(tài)門接口電路來隔離讀寫信息。

2.4 通道

Channel是芯片的核心部分,每個Channel模塊都由3個子模塊組成,圖2所示是各Channel子模塊的內(nèi)部結構圖。

2.5 數(shù)據(jù)接口

數(shù)據(jù)接口用于完成通道內(nèi)寄存器的讀寫功能。該模塊通過組合通道片選、內(nèi)部寄存器片選信號及模塊讀寫使能信號來產(chǎn)生各寄存器的讀寫使能信號。其讀寫操作可通過三態(tài)門與內(nèi)部數(shù)據(jù)通道進行數(shù)據(jù)交換。

寫入本模塊的寄存器信息將進行數(shù)據(jù)校驗。只有校驗合格的數(shù)據(jù)才能載入內(nèi)部寄存器的一級緩沖器(Buf)中,內(nèi)部寄存器的一級緩沖器(Buffer)數(shù)據(jù)將輸出到PWMFSM模塊,以提供PWM的特征數(shù)據(jù)。

2.6 周期信號發(fā)生器

周期信號發(fā)生器可生成PWM的周期控制信號,其周期的長短由數(shù)據(jù)接口傳過來的周期寄存器值(CyeleReg)決定。該模塊將通過內(nèi)部計數(shù)器計數(shù)時鐘,并與CycleReg比對,從而產(chǎn)生PWM的周期控制信號CycleScale。

2.7 狀態(tài)機

狀態(tài)機是產(chǎn)生PWM信號的核心功能模塊。通過加載Data Interface模塊接收到的通道內(nèi)部寄存器Buffer值,由狀態(tài)機來進行運轉。PWMFSM模塊中包含有一個自運轉狀態(tài)機。當符合條件的寄存器值寫入Channel寄存器后,狀態(tài)機將在CycleScale信號的起始信息的引導下,在時鐘的上升沿將內(nèi)部寄存器一級Buffer寫入到本模塊中的PWM信息寄存器Buf中,以便在下一個運行周期內(nèi)載入到PWM的狀態(tài)機中。狀態(tài)機啟動后,它將根據(jù)當前狀態(tài)輸出脈沖驅動信號。其狀態(tài)機的運轉圖如圖3所示。

其運轉流程如下:

(1)從復位或停止工作狀態(tài)進入IDLE狀態(tài);

(2)在合法的數(shù)據(jù)寫入通道寄存器且CycleScale的啟始信號被接收后,狀態(tài)機將當前通道內(nèi)部寄存器Buffer的值載人狀態(tài)機定時器,同時進入正向脈沖狀態(tài),以便準備輸出正向電機驅動信號;

(3)在正向脈沖狀態(tài)下,定時器開始減計數(shù),直到到達完成正向驅動所需要的時間,同時在結束正向驅動的輸出后,進入死區(qū)狀態(tài);

(4)在死區(qū)狀態(tài),關閉正向、負向電機驅動信號,并通過定時器等待死區(qū)時間結束,然后進入負向電機驅動狀態(tài)(負向脈沖);

(5)在負向脈沖狀態(tài)下,定時器開始減計數(shù),直到到達完成負向驅動所需要的時間,到在結束負向驅動的輸出后,進入死區(qū)狀態(tài);

(6)在死區(qū)狀態(tài),關閉正向、負向電機驅動信號,并通過定時器等待死區(qū)時間結束,然后進入空閑等待狀態(tài)。等待下一次的啟動信號。

pwm相關文章:pwm原理




評論


相關推薦

技術專區(qū)

關閉