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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 利用捕獲比較功能實(shí)現(xiàn)MSP430與微機(jī)串行通信的研究

          利用捕獲比較功能實(shí)現(xiàn)MSP430與微機(jī)串行通信的研究

          作者: 時(shí)間:2009-11-27 來源:網(wǎng)絡(luò) 收藏

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

          當(dāng)發(fā)送信號(hào)時(shí),即Rin輸入有效,接收器會(huì)自動(dòng)打開,并產(chǎn)生有效的INVALID信號(hào)。該信號(hào)將觸發(fā)P1.2引腳的中斷。在中斷處理程序中將F413的功耗模式設(shè)定為模式3(功耗電流0.7μA),這時(shí)頻率為32768的ACLK時(shí)鐘工作就可以完成低速的任務(wù)。當(dāng)接收、處理完的數(shù)據(jù)后需要將結(jié)果返回給。這時(shí)可以打開MAX3221的驅(qū)動(dòng)器,關(guān)閉接收器完成此工作。當(dāng)發(fā)送完畢后可以將和MAX3221再設(shè)定為準(zhǔn)備接收信息的最低功耗狀態(tài)。

          上述方法可以在滿足的同時(shí)達(dá)到非常低的功耗。

          表1:MAX3221收發(fā)器工作控制及其工作狀態(tài)對(duì)照表

          工作及能耗狀態(tài)FORCEONFORCEOFFEN接收器輸入信號(hào)Rin驅(qū)動(dòng)器狀態(tài)接收器狀態(tài)
          完全待機(jī)狀態(tài)最低功耗X00X關(guān)閉激活
          X01X關(guān)閉關(guān)閉
          正常工作狀態(tài)人工調(diào)節(jié)能耗110X激活激活
          111X激活關(guān)閉
          器件自理狀態(tài)自動(dòng)調(diào)節(jié)能耗010有效自動(dòng)激活激活
          011有效自動(dòng)激活關(guān)閉
          010無效關(guān)閉激活
          011無效關(guān)閉關(guān)閉

          注:驅(qū)動(dòng)器將MOS電平轉(zhuǎn)換為RS232電平,接收器將RS232電平轉(zhuǎn)換為MOS電平

          4 結(jié)束語
          應(yīng)用上述的設(shè)計(jì)方法和電路,很好地與微機(jī)之間的,并且達(dá)到了非常理想的功耗水平。實(shí)踐證明該方法對(duì)于沒有硬件UART的MSP430系列單片機(jī)進(jìn)行串行通信非常有效,并給需要擴(kuò)展串口的其他類型MSP430單片機(jī)提供了一種可行的方案。此外,文中的超低功耗電路設(shè)計(jì)方法對(duì)于功耗敏感的應(yīng)用是一種很好的解決方案。

          參考文獻(xiàn):
          [1] Brian Merritt. Ultralow Power Thermostat ([R]). Texas, U.S.A. : Texas Instruments Incorporated, 2001.
          [2] MAX3221 3-V TO 5.5-V single-channel RS-232 line driver/receiver (Manual). Texas, U.S.A. : Texas Instruments Incorporated, 2001.
          [3] 胡大可. MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用,北京航空航天出版社,2001。
          [4] 胡大可. MSP430系列FLASH型超低功耗16位單片機(jī),北京航空航天出版社,2001。

          附錄:異步串行通信的程序代碼:
          ;------------------------------------------------------------------------------

          說明:
          硬件連接如圖3,P1.0作為發(fā)送引腳,P1.1作為接收引腳,二者共用模塊0
          Tbit1 是1位時(shí)間間隔數(shù)據(jù)(T1),Tbit_5是半位時(shí)間間隔數(shù)據(jù)。(由公式1得出)
          RTbuff 是接收發(fā)送緩沖字單元,存放接收和發(fā)送的數(shù)據(jù)
          Counter 是收發(fā)過程中使用的計(jì)數(shù)器
          ;------------------------------------------------------------------------------

          發(fā)送子程序

          MOVTAR,CCR0; 將當(dāng)前定時(shí)器值存入CCR中(T0)
          ADD#Tbit1,CCR0; 將1位時(shí)間間隔加入CCR中(T0+T1)
          RLARTbuff; 將帶發(fā)送的字節(jié)數(shù)據(jù)左移一位,構(gòu)造最低位為起始位
          BIS#0200h, RTbuff; 將停止位數(shù)據(jù)放入待發(fā)送字的第10位
          MOV#10,Counter; 初始化數(shù)據(jù)幀計(jì)數(shù)器為10
          MOV#OUTMOD0+CCIE,CCTL0; 標(biāo)記發(fā)送狀態(tài),打開中斷,啟動(dòng)發(fā)送
          RET; 返回

          ;------------------------------------------------------------------------------
          接收準(zhǔn)備子程序

          MOV#08,Counter; 初始化接收數(shù)據(jù)計(jì)數(shù)器為8(接收一個(gè)字節(jié)數(shù)據(jù))
          MOV#SCS+CCIS0+OUTMOD0+CM1+CAP+CCIE,CCTL0;初始化捕獲比較控制字,
          ; 設(shè)定為下降沿捕獲模式,標(biāo)記接收狀態(tài),打開中斷,啟動(dòng)接收
          RET; 返回

          ;------------------------------------------------------------------------------

          捕獲比較模塊0的中斷服務(wù)程序
          ;------------------------------------------------------------------------------

          ADD#Tbit1,CCR0; 將1位時(shí)間間隔加入CCR0中
          BIT#CCIS0,CCTL0; 判斷接收、發(fā)送狀態(tài)
          JNZUART_RX; 是接收狀態(tài),轉(zhuǎn)接收處理
          UART_TXCMP#00h,Counter; 是發(fā)送狀態(tài),判斷幀發(fā)送是否結(jié)束
          JNETX_Next; 沒有結(jié)束,轉(zhuǎn)入發(fā)送
          BIC#CCIE,CCTL0; 幀發(fā)送結(jié)束,關(guān)閉中斷
          RETI; 中斷返回
          TX_NextRRARTbuff; 待發(fā)送位移入進(jìn)位位C
          JCTX_One; 該位為1?跳轉(zhuǎn)
          BIS#OUTMOD2,CCTL0; 該位為0,發(fā)送0
          JMPTX_nxt2; 跳轉(zhuǎn)繼續(xù)處理
          TX_OneBIC#OUTMOD2,CCTL0; 該位為1,發(fā)送1
          TX_nxt2DECCounter; 發(fā)送幀計(jì)數(shù)器減1
          RETI; 中斷返回
          ;
          UART_RXBIT#CAP,CCTL0; 判斷是否是捕獲到起始位
          JZRX_Bit; 接收的不是起始位,轉(zhuǎn)入處理
          RX_StartBIC#CAP,CCTL0; 捕獲到起始位,將狀態(tài)轉(zhuǎn)為比較模式
          ADD#Tbit_5,CCR0; 再增加半位時(shí)間間隔(T0+T1.5),以1.5 時(shí)間間隔
          RETI; 中斷返回
          RX_BitBIT#SCCI,CCTL0; 將接收到的位存入進(jìn)位位C
          RRCRTbuff; 將接收到位,移入收發(fā)緩沖字
          RX_TestDECCounter; 接收數(shù)據(jù)計(jì)數(shù)器減1
          JNZRX_Next; 判斷是否接收了所有數(shù)據(jù)位,沒有跳轉(zhuǎn)到后續(xù)處理
          BIC#CCIE,CCTL0; 接收到所有數(shù)據(jù)位,關(guān)閉捕獲比較中斷
          RX_NextRETI; 中斷返回


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();