1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現在位置:范文先生網>理工論文>電子通信論文>工作頻率可動態調整的單片機系統設計

    工作頻率可動態調整的單片機系統設計

    時間:2023-02-21 00:09:42 電子通信論文 我要投稿
    • 相關推薦

    工作頻率可動態調整的單片機系統設計

    摘要:介紹一種采用可編程CMOS頻率合成器DS1077設計的單片機系統,使單片機能根據環境需要動態調整系統的工作頻率,既能滿足系統求的實時處理能力,又盡可能地降低系統的耗電量及引起的電磁干擾。同時還討論了系統改變工作頻率后對RS232串行通訊的影響以及解決辦法確保該系統在不的工作頻率下仍能正常進行RS232串行通信。這種單片機系統的變頻設計提高了系統的適用范圍和兼容性,使系統設計更加靈活。

        關鍵詞:可編程CMOS頻率合成器 串行通訊 動態編程 DS1077

    在單片機系統中,總希望單片機能夠工作于最大頻率,以提高系統的實時處理能力。但單片機系統工作頻率越高,其耗電量及引起的電磁干擾也就越大,并且單片機工作頻率的選擇直接影響到RS232串行通訊。特別是在51單片機系統中,RS232串行通訊的使用往往決定了系統時鐘選用,這使得在設計單片機系統時的靈活性大大降低。在很多情況下,希望設計出一個工作頻率可根據任務的輕得實時改變,并且能夠在各種工作頻率下進行RS232串行通訊的單片機系統,它既能滿足單片機的實時處理要求,又有利于降低系統的耗電量和電磁干擾。采用可編程CMOS頻率合成器DS1077后,設計這種系統變得簡單了。

    1 可編程CMOS頻率合成器DS1077

    1.1 DS1077的引腳及其功能

    DS1077是一個具有兩種同步輸出的單片機固定頻率合成器。它不需要外接任何元件即可工作,允許通過二線串行接口頻率合成器進行動態編程。DS1077的輸出頻率范圍寬(8kHz~133MHz),且在整個溫度和電壓變化范圍內輸出頻率偏差小于1%。DS1077既可作為由控制器編程的兩路同步頻率合成器使用,也可以當作固定頻率振蕩器使用。控制器可通過編程片上的兩個預標定器和一個除法器來調整兩路同步輸出頻率。工作模式和輸出頻率的設定值存儲于片上EEPROM中。每次上電時,存儲于EEPROM中的值自動彈出到各個寄存器中,使DS1077工作于以前設定的初始狀態。
    (范文先生網www.baimashangsha.com收集整理)
        引腳功能:

    SCL:串行時鐘輸入線(用于編程);

    SDA:串行數據輸入、輸出線(用于編程);

    CTR1:控制OUT1輸出允許或芯片掉電模式的多功能引腳;

    CRT0:控制OUT0輸出允許、芯片掉電模式或MUX選擇的多功能引腳;

    OUT1:參考頻率輸出引腳;

    OUT0:主振蕩頻率輸出引腳。

    1.2 DS1077內部框圖如圖及工作原理

    DS1077內部框圖如圖1所示。主要由內部主振蕩器、2個預定標器、1個可編程除法器和3個控制寄存器四大部分組成。主振蕩器產生的時鐘信號MCLK既可直接輸出到OUT0,也可以經過P0預定標器分頻后輸出OUT0。另外時鐘信號MCLK經過P1預定標器分頻后要么直接輸出到OUT1,要么再經可編程除法器N分頻后輸出到OUT1。

    主時鐘信號MCLK經過P0預定標器進行1、2、4或8分頻后送入MUX選擇器。同時,主時鐘信號MCLK經過P1預定標器進行1、2、4或8分頻后既可直接輸出到OUT1引腳,又可輸出到可編程除法器N進行2~1025之間的任一分頻后送到OUT1引腳。

        通過對控制寄存器進行編程,可決定DS1077輸出頻率和工作模式。控制寄存器的值存于片內的EEPROM中,因此只有改變輸出頻率和工作模式時才需要對DS1077重新編程。

    1.3 DS1077的控制寄存器

    DS1077的控制包括MUX寄存器、DIV寄存器和BUS寄存器共3個寄存器。MUX寄存器用于設置頻率合成器的工作模式,DIV寄存器用于設置工作頻率,BUS寄存器用于設置總線控制方式。它們的設置方式如下:

    MUX寄存器(16位):

    - PDN1 PDN0 SEL0 EN0 0M1 0M0 1M1 1M0 DIV - - - - - -

    其中,標志位EN0、SEL0、PDN0和引腳CTRL0對輸出OUT0的工作模式進行設定,如表1所示。標志位PDN1和引腳CTRL1對輸出OUT1的工作模式進行設定,如表2所示。標志位DIV決定是否使用可編程除法器N。當DIV=1時,可編程除法器被忽略;如果DIV=0,可編程除法器正常工作。標志位0M1和0M0、1M1和1M0分別決定了預定標器P0和P1的分頻比,如表3所示。

    表1 輸出OUT0的工作模式設定

    EN0 SEL0 PDN0 CTR0功能 0 0 0 掉電控制(CTR0=1進入掉電模式,CTR0=0時OUT0輸出高阻) 0 1 0 OUT0輸出選擇(CTR0=1時OUT0輸出MCLK/M,CTR0=輸出MCLK) 1 0 0 OUT0輸出允許(CTR0=1時OUT0輸出高阻,CTR0=0輸出MCLK) 1 1 0 OUT0輸出允許(CTR0=1時OUT0輸出高阻,CTR0=0輸出MCLK/M) X 0 1 掉電控制(CTR0=11進入掉電模式,CTR0=0時輸出MCLK) X 1 1 掉電控制(CTR0=1進入掉電模式,CTR0=0時OUT0輸出MCLK/M)

    其中,MCLK為內部振蕩器產生的主時鐘信號,MCLK/M為主時鐘信號經P0預定標器分頻后的時鐘信號。

    表2 輸出OUT1的工作模式設定

    PDN1

    CTRL1功能

    0 OUT1輸出允許(CTR1=1時OUT1輸出,CTR1=0輸出高阻) 1 掉電控制(CTR1=1進入掉電模式,CTR1=0時OUT1輸出)

    表3 P0和P1的分頻比

    0M1 0M0 P0預定標器分頻比 1M1 1M0 P1預定標器分頻比 0 0 1 0 0 2 0 1 2 0 1 4 1 0 4 1 0 6 1 1 8 1 1 8

    DIV寄存器(16位):

    N9 N8 N7 N6 N5 N4 N3 N2 N1 N0 X X X X X X

    10位二進制數決定了除法寄存器的值N,10位二進制數的值加2就是N的值。例如:0000000000表示2分頻,1111111111表示1025分頻。

    BUS寄存器(8位):

    - - - - WC A2 A1 A0

    如果WC=0,表示每次操作控制寄存器后自動保存到EEPROM中;如果WC=1表示只有對控制寄存器進行寫操作時才把值保存到EEPROM中。A3A2A1代表該DS1077芯片在總線操作中的地址。因此,同一系統中最多可接入8個DS1077。,

    2 系統硬件電路及工作原理

    可編程CMOS頻率合成器DS1077在單片機系統中的硬件電路如圖2所示。

    在圖2中,可編程CMOS頻率合成器DS1077的輸出引腳OUT1接到單片機AT89C51的XTL1引腳,單片機的XTL2引腳不接,DS1077的輸出引腳OUT0不使用(在軟件中禁止),CRTL1和CTRL0接地。由于AT89C51單片機沒有二線串行接口,所以把DS1077的SCL和SDA接到單片機的P1.0和P1.1,用單片機的P1.0和P1.1模擬二線串行接口。

    可編程CMOS頻率合成器DS1077設定為:引腳OUT0禁止使用;引腳OUT的輸出頻率略低于單片機的最高工作頻率;BUS寄存器的WC位置1(只有向頻率合成器DS1077發出寫命令時才把各個寄存器的值寫入EEPROM中)。這樣,在每次啟動單片機系統時,單片機總運行在較高的工作頻率;當完成了系統的初始化后,單片機就可以根據工作情況重新設置適合的工作頻率。在單片機工作過程中,最好不要向頻率合成器DS1077發出寫EEPROM命令。因為重新設置工作頻率即使超出了單片機的頻率范圍,造成單片機死機,由于寄存器的值沒有寫入EEROM中,當重新啟動時,單片機仍然能夠工作;如果把錯誤的工作頻率寫入EEPROM中,會造成系統不能重新啟動,此時只能取下DS1077芯片,用其他工具對它進行重新編程。

    3 系統頻率改變對RS232串行通訊的影響及動態調整工作頻率時的解決辦法

    在單片機系統中,時鐘頻率與RS232串行通訊有著密切的關系。例如,對于使用12MHz晶振的系統(早期的8051的最大工作頻率是12MHz),表4顯示了定時器1的自動重新載值與波特率之間的關系、與標準波特率的誤差。

    表4 定時器1的自動重裝載值與波特率之間的關系、與標準波特率的誤差

    定時器1自動重裝載值 實際波特率 理想值 波特率誤差(%) 255 31250 28800 8.5 254 15625 14400 8.5 253 10417 9600 8.4 249/250 4464 4800 7/88.5 243 2404 2400 0.16

    波特率=2SMOD/32×{fosc/[12×(256-TH1)]}

    其中,fosc為振蕩頻率,SMOD為單片機的波特率倍增位,TH1為定時器1的自動重裝載值。

    在RS232串行通訊時,波特率發生器的誤差一般都不允許超過3%,否則就會造成通訊失敗,也就是說在采用12MHz晶振的51系統中只能夠使用2400波特率進行RS232通訊。顯然這在很多情況下都不能滿足系統需要。為了滿足RS232串行通訊的需要,通常選用少數特殊頻率的晶振,如11.059MHz和22.118MHz。這大大減小了波特率發生器的誤差(見表5),但也使得設計的靈活性大大降低。

    表5 特殊頻率的晶振下波特率發生器的誤差

    定時器1的自動重裝載值 波特率(fosc=11.059MHz) 波特率(fosc=22.118MHz) 實際波特率 理想值 實際波特率 理想值 255
    254
    253
    250
    244
    232
    208 28799.5
    14399.7
    9599.8
    4799.91
    2399.95
    1199.98
    - 28800
    14400
    9600
    4800
    2400
    1200
    - -
    28799.5
    14399.6
    9599.83
    4799.91
    2399.95
    1199.98 -
    28800
    14400
    9600
    4800
    2400
    1200

    在使用DS1077芯片的系統中,這個問題變得簡單了。DS1077芯片共有133MHz、125MHz、120MHz、100MHz、66.666MHz五種型號。下面以66.666MHz的DS1077x-66為例來介紹在各種工作頻率下進行RS232串行通訊的實現方案。

    由于DS1077在整個溫度和電壓變化范圍內的頻率偏差小于1%,加上DS1077的輸出作為單片機時鐘所產生的波特率與理想值之間的誤差0.47%(66.666MHz除6即11.111MHz與理想頻率11.059MHz之間的誤差為0.47%),完全能夠滿足串行通訊3%的精度要求。表6列出了單片機系統工作在能夠滿足上述要求的各種頻率下的波特率及此時定時器1的自動重裝載值(該表由計算機模擬得出)。

    如果單片機選用最高頻率為40MHz的89C51,則可以把DS1077的可編程除法器N設置為2,即讓單片機工作于33.333MHz。由表6可知,當定時器1的自動重裝載值設置不同進,單片機系統可以分別以28.8kbps、14.4kbps、9600bps、4800bps、2400bps進行可靠的串行通訊。系統對單片機速度要求不高時,單片機則可以把N設置成3、6、9、18、36,則系統分別工作于22.222MHz、11.111MHz、7.0473MHz、3.7037MHz和1.85183MHz。值得一提的是,當單片機工作頻率太低時,單片機只能以較低的波特率通訊。例如,當單片機工作在1.85183MHz時,串行通訊只能是2400bps或更低。當然,如果單片機不按這些標準波特率進行通訊或根本就不需要串行通訊,單片機系統的工作頻率的選擇范圍也就更寬了。

    表6 單片機波特率及定時器1的自動重裝載值(波特率發生器誤差全部為0.47%)

    N值 工作頻率(MHz) 重裝載值(28.8kbps) 重裝載值(14.4kbps) 重裝載值(9600bps) 重裝載值(4800bps) 重裝載值(2400bps)   66.667 250 244 238 220 - 2 33.333 253 250 247 238 220 3 22.222 254 252 250 244 232 4 16.666 - 253 - 247 238 6 11.111 255 254 253 250 244 9 7.4073 - - 254 252 248 18 3.7037 - - 255 254 252 36 1.85183 - - - - 254

    從上面的討論可看出,在單牒同編程時只需把表6設計成工作頻率表格存于程序存儲器中。在需要改變工作頻率時從表格中查出該頻率所對應的N值和所需要的波特率對應的自動重裝載值,通過N值計算出DIV寄存器的值寫入到DS1077中,把系統的工作頻率設置到了相應的值上;同時,用該自動重裝載值對T1定時器進行設置,就能保證系統的RS232串行通訊。


    【工作頻率可動態調整的單片機系統設計】相關文章:

    單片機系統的動態加密技術08-06

    概率與頻率的教學設計08-16

    單片機測頻率信號的參數分析08-06

    CPLD器件的在系統動態配置08-06

    一種寬動態范圍的智能測量系統設計08-06

    多CPU單片機系統設計在社區安防系統中的應用08-06

    嵌入式系統設計方法的演化—從單片機到單片系統08-06

    物流信息系統發展動態08-05

    動態血糖監測系統的觀察及護理08-05

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      日本三级2019在线观看免费 | 亚洲另类在线欧美制服 | 先峰中文字幕一二三区 | 丝袜一区二区三区在线播放 | 天天综合久久一区二区 | 日本精品久久久久一区二区三区 |