<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430單片機指令周期小談

          MSP430單片機指令周期小談

          作者: 時間:2016-11-13 來源:網絡 收藏
          MSP430的時鐘周期(振蕩周期)、機器周期、指令周期之間的關系

          時鐘周期也稱為振蕩周期:定義為時鐘脈沖的倒數(時鐘周期便是直接供內部CPU使用的晶振的倒數 , 例如12M的晶振 , 它的時鐘周期便是1/12us) , 是電腦中的最基本的、最小的時間單位 。 在一個時鐘周期內 , CPU僅完成一個最基本的動作 。 時鐘脈沖是電腦的基本工作脈沖 , 控制著電腦的工作節(jié)奏 。 時鐘頻率越高 , 工作速度就越快 。

          本文引用地址:http://www.ex-cimer.com/article/201611/316429.htm

          機器周期:在電腦中 , 常把一條指令的執(zhí)行過程劃分為若干個階段 , 每一個階段完成一項工作 。 每一項工作稱為一個基本操作 , 完成一個基本操作所需要的時間稱為機器周期 。 8051系列單片機的一個機器周期由6個S周期(狀態(tài)周期)組成 。 一個S周期=2個時鐘周期 , 所以8051單片機的一個機器周期=6個狀態(tài)周期=12個時鐘周期 。

          指令周期:執(zhí)行一條指令所需要的時間 , 基本由若干個機器周期組成 。 指令不同 , 所需的機器周期也不同 。

          專用知識:

          430中 , 一個時鐘周期 = MCLK晶振的倒數 。 假如MCLK是8M , 則一個時鐘周期為1/8us;

          一個機器周期 = 一個時鐘周期 , 即430每個動作都能完成一個基本操作;

          一個指令周期 = 1~6個機器周期 , 詳細依據詳細指令而定 。

          另:指令長度 , 只是一個存儲單位與時間沒有必然關系 。

          MSP430依據型號的不同最多可以選擇使用3個振蕩器 。 我們可以依據需要選擇合適的振蕩頻率并可以在不需要時隨時關閉振蕩器以節(jié)省功耗 。 這3個振蕩器分別為:

          (1)DCO 數控RC振蕩器 。 它在芯片內部不用時可以關閉 。 DCO的振蕩頻率會受周圍環(huán)境溫度和MSP430工作電壓的影響且同一型號的芯片所產生的頻率也不相同 。 但DCO的調節(jié)功能可以改善它的性能他的調節(jié)分為以下3步:a:選擇BCSCTL1.RSELx斷定時鐘的標稱頻率;b:選擇DCOCTL.DCOx在標稱頻率基礎上分段粗調;c:選擇DCOCTL.MODx的值進行細調 。

          (2)LFXT1 接低頻振蕩器 。 典型為接32768HZ的時鐘振蕩器此時振蕩器不需要接負載電容 。 也可以接450KHZ~8MHZ的標準晶體振蕩器此時需要接負載電容 。

          (3)XT2 接450KHZ~8MHZ的標準晶體振蕩器 。 此時需要接負載電容不用時可以關閉 。

          低頻振蕩器主要用來降低能量消耗如使用電池供電的系統高頻振蕩器用來對事件做出快速反應或者供CPU進行大量運算 。 當然高端430還有鎖頻環(huán)(FLL)及FLL+等模塊 , 但是初步不用考慮那么多 。

          MSP430的3種時鐘信號:MCLK系統主時鐘;SMCLK系統子時鐘;ACLK輔助時鐘 。

          (1)MCLK系統主時鐘 。 除了CPU運算使用此時鐘以外外圍模塊也可以使用 。 MCLK可以選擇任何一個振蕩器所產生的時鐘信號并進行1、2、4、8分頻作為其信號源 。

          (2)SMCLK系統子時鐘 。 供外圍模塊使用 。 并在使用前可以通過各模塊的寄存器實現分頻 。 SMCLK可以選擇任何一個振蕩器所產生的時鐘信號并進行1、2、4、8分頻作為其信號源 。

          (3)ACLK輔助時鐘 。 供外圍模塊使用 。 并在使用前可以通過各模塊的寄存器實現分頻 。 但ACLK只能由LFXT1進行1、2、4、8分頻作為信號源 。

          PUC復位后MCLK和SMCLK的信號源為DCODCO的振蕩頻率默認為800KHZ 。 ACLK的信號源為LFXT1 。

          MSP430內部含有晶體振蕩器失效監(jiān)測電路監(jiān)測LFXT1(工作在高頻模式)和XT2輸出的時鐘信號 。 當時鐘信號丟失50us時監(jiān)測電路捕獲到振蕩器失效 。 假如MCLK信號來源LFXT1或者XT2那么MSP430自動把MCLK的信號切換為DCO這樣可以確保程序繼續(xù)運行 。 但MSP430不對工作在低頻模式的LFXT1進行監(jiān)測 。

          為了實現詳細的時鐘可以設置跟時鐘相關的寄存器 , 在低端430中是DCOCTL、BCSCTL1和BCSCTL2三個寄存器 。 而對于高端的430 , 則要考慮SCFI0、SCFQCTL、FLL_CTL0、FLL_CTL1和BTCTL等幾個寄存器 。 詳細設置 , 參看DataSheet 。

          單片機上電后 , 假如不對時鐘系統進行設置 , 默認800 kHz的DCOCLK為MCLK和SMCLK的時鐘源 , LFXTl接32768 Hz晶體 , 工作在低頻模式(XTS=O)作為ACLK的時鐘源 。 CPU的指令周期由MCLK決定 , 所以默認的指令周期便是1/800 kHz="1".25μs 。 要得到lμs的指令周期需要調整DCO頻率 , 即MCLK=1 MHz , 只需進行如下設置:BCSCTLl=XT20FF+RSEL2;

          //關閉XT2振蕩器 , 設定DCO頻率為1 MHz

          DCOCTL=DCO2



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();