国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時(shí)間:2008-1-1 13:34    發(fā)布者:MSP430
關(guān)鍵詞: MSP430 , 比較 , 捕獲 , 串行通信 , 微機(jī)
本文介紹了一種利用MSP430捕獲比較功能實(shí)現(xiàn)串行通信的方法,研究了實(shí)現(xiàn)該方法的硬件以及軟件特點(diǎn)。介紹了MSP430F413與TI的通信接口器件MAX3221構(gòu)成的與微機(jī)進(jìn)行串行通信的超低功耗方案,并介紹了該方法在其中的具體應(yīng)用。通過(guò)實(shí)驗(yàn)證明,該方法為沒(méi)有硬件UART模塊的MSP430系列單片機(jī)實(shí)現(xiàn)串行通信提供了一種有效的方法。并對(duì)有UART模塊,但需要擴(kuò)展串口的應(yīng)用提供了新的思路。
1 引言:
MSP430系列單片機(jī)是美國(guó)TI公司于2000年推出的新一代超的低功耗16位單片機(jī)。由于它具有功能完善、超低功耗、開(kāi)發(fā)簡(jiǎn)便、成本低廉等特點(diǎn),目前已經(jīng)在國(guó)內(nèi)得到了廣大工程技術(shù)人員的關(guān)注和應(yīng)用。工程師們?cè)谶M(jìn)行機(jī)型選擇時(shí)主要考慮該機(jī)型的性能和成本,因此在小型儀表以及普通應(yīng)用中MSP430的11x系列、31x系列、41x系列受到了許多工程師的青睞。這些機(jī)型有一個(gè)共同的特點(diǎn)就是內(nèi)部沒(méi)有硬件UART模塊。這就帶來(lái)一個(gè)問(wèn)題,這些單片機(jī)怎樣實(shí)現(xiàn)串行通信呢?本文就針對(duì)這一問(wèn)題進(jìn)行研究,分析研究了MSP430中捕獲比較功能的特點(diǎn),以及利用捕獲比較功能實(shí)現(xiàn)串行通信的方法。并以MSP430F413為例介紹了實(shí)現(xiàn)它與微機(jī)之間進(jìn)行串行通信的軟件代碼和硬件電路
1 捕獲比較功能的介紹:
MSP430系列單片機(jī)中都集成了捕獲比較的功能模塊。捕獲比較功能的引入主要是為了提高I/O端口處理事務(wù)的能力和速度。捕獲比較并不是非常新的概念,使用過(guò)Intel的16位單片機(jī)中如80196MC的讀者就會(huì)發(fā)現(xiàn),MSP430中的捕獲比較功能和80196系列單片機(jī)中的EPA功能有一些相似之處。以下結(jié)合實(shí)現(xiàn)串行通信的需要,簡(jiǎn)要介紹有關(guān)捕獲比較的有關(guān)概念。
捕獲比較模塊用于捕獲應(yīng)用事件的發(fā)生時(shí)間,或產(chǎn)生定時(shí)間隔。如果相應(yīng)的中斷允許,那么完成一個(gè)時(shí)間捕獲或一次定時(shí)間隔,捕獲/比較模塊都將產(chǎn)生中斷。每一個(gè)捕獲比較模塊都可以對(duì)應(yīng)一組硬件引腳。圖1是捕獲比較模塊的結(jié)構(gòu)框圖。
捕獲功能可以捕捉選定輸入引腳的狀態(tài)的變化,它可以選擇捕捉上升沿、下降沿、前后沿。如果捕捉到了相應(yīng)的變化,則定時(shí)器計(jì)數(shù)值將被復(fù)制到捕獲比較寄存器CCR中,并會(huì)產(chǎn)生相應(yīng)的中斷。在串行通信中,正是利用捕獲功能的特點(diǎn)來(lái)捕捉起始位的信息。




圖1:捕獲比較模塊結(jié)構(gòu)框圖比較功能是借助比較器不斷地將CCR中的設(shè)定值與定時(shí)器中的計(jì)數(shù)值相比較,當(dāng)二者相等時(shí),就產(chǎn)生中斷,并產(chǎn)生設(shè)定的輸出。利用比較功能,可以獲得精確的時(shí)間間隔,利用該特性可以構(gòu)造一個(gè)精確的波特率發(fā)生器,為串行通信提供時(shí)間基準(zhǔn)。
2 利用捕獲比較實(shí)現(xiàn)串行通信的方法
本節(jié)具體介紹實(shí)現(xiàn)異步串行通信時(shí),捕獲和比較功能是如何工作的。
2.1 接收過(guò)程



圖2:在串行通信接收過(guò)程中捕獲比較功能時(shí)序分析示意圖在異步串行通信中,每個(gè)數(shù)據(jù)幀一般由1位起始位、8位數(shù)據(jù)位、1位奇偶校位、1位停止位組成。圖2所示為一個(gè)數(shù)據(jù)幀前3位的時(shí)序。在接收這種格式的數(shù)據(jù)幀時(shí),首先要確定起始位,用來(lái)進(jìn)行幀同步。在MSP430中是利用捕獲功能來(lái)捕捉起始位的下跳沿(詳見(jiàn)附錄程序代碼)。如圖2,在A點(diǎn)捕獲到起始位,系統(tǒng)將此刻的定時(shí)器值(T0)存放入CCR中,并產(chǎn)生中斷。對(duì)A點(diǎn)所產(chǎn)生中斷的處理非常重要。在該中斷處理程序中,將捕獲功能轉(zhuǎn)換為比較功能,并將1.5位的時(shí)間間隔(T1.5)加到CCR中,即CCR=T0+T1.5。這樣當(dāng)?shù)竭_(dá)1.5位時(shí)間間隔時(shí)(B點(diǎn)),即定時(shí)器的值等于T0+T1.5。將會(huì)由此比較功能觸發(fā)一次中斷,這樣就實(shí)現(xiàn)了1.5位時(shí)間間隔的精確定時(shí)。在該中斷處理程序中,可以讀取輸入引腳的狀態(tài),從而接收到Bit1的信息,然后再利用比較功能產(chǎn)生1位時(shí)間間隔(T1)的定時(shí)。此后,當(dāng)下一個(gè)T1時(shí)間到達(dá)時(shí),比較功能又會(huì)觸發(fā)一次中斷(C點(diǎn))。在這時(shí)的中斷服務(wù)程序中可以讀取Bit2的信息。如此重復(fù)8次,就可以完成一個(gè)字節(jié)數(shù)據(jù)的接收。
2.2 發(fā)送過(guò)程
相對(duì)于接收過(guò)程,發(fā)送過(guò)程比較簡(jiǎn)單。利用比較功能產(chǎn)生一個(gè)間隔為1位時(shí)間(T1)的時(shí)序,相當(dāng)于一個(gè)波特率發(fā)生器。在每一次比較功能觸發(fā)的中斷服務(wù)程序中發(fā)送一位數(shù)據(jù),如此循環(huán)執(zhí)行,這樣就可以完成一個(gè)數(shù)據(jù)幀的發(fā)送。異步串行通信的一個(gè)數(shù)據(jù)幀往往是10位或11位。對(duì)于這點(diǎn)可以利用MSP430是16位機(jī)的特點(diǎn),將數(shù)據(jù)幀的所有位安排在一個(gè)待發(fā)送字中,然后移位發(fā)送,而不需要專門(mén)編程產(chǎn)生起始位和停止位。(詳見(jiàn)附錄中的程序代碼及說(shuō)明)
2.3 波特率的確定以及中斷的安排
從以上的分析可以看出,串行通信的波特率主要是與1位時(shí)間間隔T1有關(guān),T1可以通過(guò)以下公式確定:
公式1
其中Tclk是指與該捕獲比較模塊相對(duì)應(yīng)的定時(shí)器的基準(zhǔn)頻率,如使用ACLK作為時(shí)基則Tclk=32768;使用MCLK作為時(shí)基則Tclk=1M。式中的Baud就是期待的波特率值。MSP430每個(gè)捕獲比較模塊中的捕獲和比較對(duì)應(yīng)同一個(gè)中斷地址,因此兩者需要共享一段中斷服務(wù)程序。這樣就要求在中斷服務(wù)程序中能區(qū)分觸發(fā)中斷的類別。主要是通過(guò)CCTL控制寄存器中的CAP位來(lái)區(qū)分[3]。另一方面接收和發(fā)送的也都需要在這段服務(wù)程序中處理,應(yīng)該加以區(qū)分。(詳見(jiàn)附錄中的程序代碼及說(shuō)明)
3 超低功耗串行通信實(shí)例
3.1電路結(jié)構(gòu)及其特點(diǎn)
本文中使用上述的原理和方法,在MSP430F413和MAX3221構(gòu)成的電路中實(shí)現(xiàn)了與微機(jī)的串行通信,電路原理如圖3。該電路不但完成了串行通信,還進(jìn)一步實(shí)踐了超低功耗的應(yīng)用原理。MSP430單片機(jī)的一大特點(diǎn)就是超低功耗,它有多種功耗狀態(tài)可以編程控制[4]。MAX3221也是具有低功耗特點(diǎn)的接口器件,通過(guò)EN、FORCEON、FORCEOFF引腳可以控制驅(qū)動(dòng)器、接收器的工作狀態(tài),啟動(dòng)或禁止自動(dòng)降低功耗功能,從而使其工作在不同的能耗狀態(tài),達(dá)到降低功耗的目的[2]?刂萍捌錉顟B(tài)詳見(jiàn)表1

圖3 MSP430F413超低功耗串行通信電路原理圖3.2超低功耗的解決方案
選擇了低功耗的器件,還要合理的控制才能達(dá)到最低的能耗[1]。對(duì)于本應(yīng)用,MSP430處于從機(jī)工作狀態(tài)。針對(duì)這種應(yīng)用以下方案可以有效地降低能耗:初始化程序結(jié)束后,設(shè)定MSP430F413工作在功耗模式4等待P1.2引腳的中斷。這時(shí)CPU將關(guān)閉,其能耗最低(0.1μA)。另一方面,初始控制MAX3221進(jìn)入自動(dòng)調(diào)節(jié)能耗狀態(tài)。如果微機(jī)不發(fā)送信號(hào),即Rin輸入無(wú)效,驅(qū)動(dòng)器和接收器都將關(guān)閉,進(jìn)入很低功耗的待機(jī)狀態(tài)(1μA)。
當(dāng)微機(jī)發(fā)送信號(hào)時(shí),即Rin輸入有效,接收器會(huì)自動(dòng)打開(kāi),并產(chǎn)生有效的INVALID信號(hào)。該信號(hào)將觸發(fā)P1.2引腳的中斷。在中斷處理程序中將MSP430F413的功耗模式設(shè)定為模式3(功耗電流0.7μA),這時(shí)利用頻率為32768的ACLK時(shí)鐘工作就可以完成低速的串行通信任務(wù)。當(dāng)接收、處理完微機(jī)的數(shù)據(jù)后需要將結(jié)果返回給微機(jī)。這時(shí)可以打開(kāi)MAX3221的驅(qū)動(dòng)器,關(guān)閉接收器完成此工作。當(dāng)發(fā)送完畢后可以將MSP430和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無(wú)效關(guān)閉激活
011無(wú)效關(guān)閉關(guān)閉

注:驅(qū)動(dòng)器將MOS電平轉(zhuǎn)換為RS232電平,接收器將RS232電平轉(zhuǎn)換為MOS電平4 結(jié)束語(yǔ)
應(yīng)用上述的設(shè)計(jì)方法和電路,很好地實(shí)現(xiàn)了MSP430與微機(jī)之間的串行通信,并且達(dá)到了非常理想的功耗水平。實(shí)踐證明該方法對(duì)于沒(méi)有硬件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。
附錄:利用捕獲比較實(shí)現(xiàn)異步串行通信的程序代碼:
;------------------------------------------------------------------------------
說(shuō)明:
硬件連接如圖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ā)過(guò)程中使用的計(jì)數(shù)器
;------------------------------------------------------------------------------
發(fā)送子程序

MOV&TAR,&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),打開(kā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),打開(kā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; 沒(méi)有結(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),以實(shí)現(xiàn)1.5 時(shí)間間隔
RETI ; 中斷返回
RX_BitBIT#SCCI,&CCTL0; 將接收到的位存入進(jìn)位位C
RRCRTbuff; 將接收到位,移入收發(fā)緩沖字
RX_TestDECCounter; 接收數(shù)據(jù)計(jì)數(shù)器減1
JNZRX_Next; 判斷是否接收了所有數(shù)據(jù)位,沒(méi)有跳轉(zhuǎn)到后續(xù)處理
BIC#CCIE,&CCTL0; 接收到所有數(shù)據(jù)位,關(guān)閉捕獲比較中斷
RX_NextRETI ; 中斷返回
本文地址:http://m.qingdxww.cn/thread-2840-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 青青青在线视频国产 | 一区二区高清在线观看 | 1314亚洲人成网站在线观看 | 三级毛片免费观看 | 亚洲四区 | 一级女人18片毛片免费视频 | 久久国内免费视频 | 欧美日韩国产在线播放 | 精品视频一二三区 | 色综合久久综合欧美综合图片 | 日本一区视频在线观看 | 国产日韩欧美二区 | 天堂成人在线 | 国产精品91在线播放 | 成人国产精品一区二区网站 | 影音先锋5566夜色资源网 | 亚洲一区二区三区国产精品 | 亚洲男人的性天堂 | 亚洲嫩草影院在线观看 | 日韩一区二区在线视频 | 免费黄色国产视频 | 天天色综合色 | 欧美黄色片在线播放 | 自拍一区在线观看 | 99久久精品费精品国产一区二区 | 91国内揄拍·国内精品对白 | 中文国产成人精品久久水 | 精品动漫在线观看视频一区 | 天天操夜夜操视频 | 一级毛片一级毛片 | 200款禁用软件免费下载安卓 | 国产成在线人视频免费视频 | 国产精品香蕉 | 亚洲毛片免费在线观看 | 欧美日韩另类在线 | 不卡国产 | 99精品视频免费在线观看 | 韩国毛片免费大片 | 久久五月婷 | 久久亚洲成人 | 亚洲高清网站 |