新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的三相函數信號發生器設計

        基于FPGA的三相函數信號發生器設計

        作者: 時間:2010-09-10 來源:網絡 收藏

        2.1 分頻模塊設計
        為了對波形頻率精確控制,不同頻率段需要不同的輸入頻率。項目設計中采用50 MHz外部有源晶振,利用內部鎖相環將頻率鎖定在40.96 MHz,然后該頻率進行10 MHz,100 MHz,1 000 MHz,10 000 MHz,如圖4所示,這樣就得到了5個不同的頻率區間,最后通過5選1數據選擇器由單片機選擇所需要的時鐘頻率。時鐘頻率與輸出波形頻率之間具體關系,如表l所示。

        本文引用地址:http://www.104case.com/article/191582.htm

        5f.jpg
        2.2 波形產生模塊設計
        2.2.1 正弦波
        正弦波的數據需要轉換為*.mif文件后存放到ROM中,mif文件有固定格式規定了每個字的位寬WIDTH、總字數DEPTH、地址進制基數ADDR-ESS_RADIX和數據進制基數DATA_RADIX。在Matlab環境中編程計算出正弦波數據,然后生成mif文件。
        EP2C8T144C8擁有較充裕的存儲空間。因此,設計中為了提高精度在ROM中存放4 096個正弦數據,頻率控制字、相位控制字由單片機控制產生,經過相位累加器組成地址發生器,產生的地址連到ROM的地址線上進行查表得到波形數據。
        2.2.2 方波
        方波算法比較容易實現。由于其只有高低電平兩種狀態。因此,只需要在一個周期的時間中間位置翻轉電平即可。由于相位累加器的值是線形累加的,地址address的值也是線形累加的,對所給地址值address進行判斷,當地址值的最高位為O時,便將波形幅值各字位賦值1,否則賦值0。就可以實現最簡單的占空比50%的方波。
        為了實現占空比可調,設計中增加一個變量PWM_zkb[11..0],讓地址值與WM_zkb[11..O]比較,Adress[11..0]PWM_zkb[11..0]時,輸出Data_out[11..0]=“11111111111l”,否則輸出為“000000000000”,如圖3~圖6所示,PWM_zkb[11..0]由單片機控制,經過鎖存后送到方波發生器與Adress[11..0]比較后產生占空比可調的方波。
        2.2.3 三角波
        三角波的生成原理與方波生成原理相似,也是對地址Address的值進行判斷,當其最高位為0時,取其O~ll位為三角波的波形幅值,即令Data_out[11..0]=Address[11..0]。當其最高位為l時,對其0~1l位的值取反后再作為三角波的波形幅值,即令Data_out[11..0]=not(Address[11..0])。
        2.2.4 鋸齒波
        鋸齒波的產生也是基于上述原理,是對地址Address的值進行判斷,當其最高位為O時,取其0~ll位為三角波的波形幅值,即令。Data_ out[11..0]=Address[11..0]。當其最高位為1時,對其最高位的值取反后作為鋸齒波的波形幅值,即令Data_out,[11..0]=Address[11..0]and“011111111111”。
        2.3 相移的實現
        在A相地址的基礎上,增加一個累加器,輸入段分別是A相地址和偏移值,經過累加之后得到B相波形地址,然后根據此地址對ROM尋址或者在地址的基礎上生成方波、三角波和鋸齒波。如圖5所示,A相、B相及B相、C相之間的偏移量有單片機控制,數據經過鎖存后送入累加器。

        5g.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建昌县| 沙洋县| 麻城市| 清丰县| 呼和浩特市| 曲周县| 西乌| 富川| 泰安市| 营口市| 南乐县| 千阳县| 孙吴县| 许昌县| 麦盖提县| 光泽县| 冷水江市| 贡嘎县| 乳源| 大庆市| 舒兰市| 崇明县| 南汇区| 德兴市| 遂昌县| 望奎县| 新竹市| 伊宁县| 昆明市| 安徽省| 东乌| 柘荣县| 宁夏| 广南县| 吉安县| 巴中市| 图片| 胶南市| 徐闻县| 阜新| 龙井市|