新聞中心

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

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

        作者: 時間:2010-05-19 來源:網絡 收藏

        2.1 模塊片選譯碼

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

        2.2 控制邏輯

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

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

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

        2.3 讀寫邏輯

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

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

        2.4 通道

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

        2.5 數據接口

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

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

        2.6 周期信號發生器

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

        2.7 狀態機

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

        其運轉流程如下:

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

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

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

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

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

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

        pwm相關文章:pwm原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉山县| 广州市| 平谷区| 建瓯市| 阳城县| 陈巴尔虎旗| 清徐县| 高唐县| 鞍山市| 象州县| 临高县| 航空| 清苑县| 勃利县| 乐昌市| 贺州市| 宣恩县| 永城市| 虎林市| 镇原县| 湛江市| 会昌县| 陇西县| 新乡市| 房产| 荣昌县| 开原市| 灌阳县| 张家川| 镇远县| 通化县| 石渠县| 三河市| 怀宁县| 资兴市| 大英县| 晋宁县| 五华县| 宜君县| 榕江县| 嘉黎县|