新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 利用捕獲比較功能實現MSP430與微機串行通信的研究

        利用捕獲比較功能實現MSP430與微機串行通信的研究

        作者: 時間:2009-11-27 來源:網絡 收藏

        1 引言:
        系列單片機是美國TI公司于2000年推出的新一代超的低功耗16位單片機。由于它具有完善、超低功耗、開發簡便、成本低廉等特點,目前已經在國內得到了廣大工程技術人員的關注和應用。工程師們在進行機型選擇時主要考慮該機型的性能和成本,因此在小型儀表以及普通應用中的11x系列、31x系列、41x系列受到了許多工程師的青睞。這些機型有一個共同的特點就是內部沒有硬件UART模塊。這就帶來一個問題,這些單片機怎樣呢?本文就針對這一問題進行,分析的特點,以及的方法。并以MSP430F413為例介紹了它與之間進行的軟件代碼和硬件電路。

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

        1 功能的介紹:
        MSP430系列單片機中都集成了捕獲比較的功能模塊。捕獲比較功能的引入主要是為了提高I/O端口處理事務的能力和速度。捕獲比較并不是非常新的概念,使用過Intel 的16位單片機中如80196MC的讀者就會發現,MSP430中的捕獲比較功能和80196系列單片機中的EPA功能有一些相似之處。以下結合實現串行通信的需要,簡要介紹有關捕獲比較的有關概念。

        捕獲比較模塊用于捕獲應用事件的發生時間,或產生定時間隔。如果相應的中斷允許,那么完成一個時間捕獲或一次定時間隔,捕獲/比較模塊都將產生中斷。每一個捕獲比較模塊都可以對應一組硬件引腳。圖1是捕獲比較模塊的結構框圖。

        捕獲功能可以捕捉選定輸入引腳的狀態的變化,它可以選擇捕捉上升沿、下降沿、前后沿。如果捕捉到了相應的變化,則定時器計數值將被復制到捕獲比較寄存器CCR中,并會產生相應的中斷。在串行通信中,正是捕獲功能的特點來捕捉起始位的信息。


        圖1:捕獲比較模塊結構框圖

        比較功能是借助比較器不斷地將CCR中的設定值與定時器中的計數值相比較,當二者相等時,就產生中斷,并產生設定的輸出。比較功能,可以獲得精確的時間間隔,利用該特性可以構造一個精確的波特率發生器,為串行通信提供時間基準。

        2 利用捕獲比較實現串行通信的方法
        本節具體介紹實現異步串行通信時,捕獲和比較功能是如何工作的。

        2.1 接收過程


        圖2:在串行通信接收過程中捕獲比較功能時序分析示意圖

        在異步串行通信中,每個數據幀一般由1位起始位、8位數據位、1位奇偶校位、1位停止位組成。圖2所示為一個數據幀前3位的時序。在接收這種格式的數據幀時,首先要確定起始位,用來進行幀同步。在MSP430中是利用捕獲功能來捕捉起始位的下跳沿(詳見附錄程序代碼)。如圖2,在A點捕獲到起始位,系統將此刻的定時器值(T0)存放入CCR中,并產生中斷。對A點所產生中斷的處理非常重要。在該中斷處理程序中,將捕獲功能轉換為比較功能,并將1.5位的時間間隔(T1.5)加到CCR中,即CCR=T0+T1.5。這樣當到達1.5位時間間隔時(B點),即定時器的值等于T0+T1.5。將會由此比較功能觸發一次中斷,這樣就實現了1.5位時間間隔的精確定時。在該中斷處理程序中,可以讀取輸入引腳的狀態,從而接收到Bit1的信息,然后再利用比較功能產生1位時間間隔(T1)的定時。此后,當下一個T1時間到達時,比較功能又會觸發一次中斷(C點)。在這時的中斷服務程序中可以讀取Bit2的信息。如此重復8次,就可以完成一個字節數據的接收。

        2.2 發送過程
        相對于接收過程,發送過程比較簡單。利用比較功能產生一個間隔為1位時間(T1)的時序,相當于一個波特率發生器。在每一次比較功能觸發的中斷服務程序中發送一位數據,如此循環執行,這樣就可以完成一個數據幀的發送。異步串行通信的一個數據幀往往是10位或11位。對于這點可以利用MSP430是16位機的特點,將數據幀的所有位安排在一個待發送字中,然后移位發送,而不需要專門編程產生起始位和停止位。(詳見附錄中的程序代碼及說明)

        2.3 波特率的確定以及中斷的安排
        從以上的分析可以看出,串行通信的波特率主要是與1位時間間隔T1有關,T1可以通過以下公式確定:

        公式1

        其中Tclk是指與該捕獲比較模塊相對應的定時器的基準頻率,如使用ACLK作為時基則Tclk=32768;使用MCLK作為時基則Tclk=1M。式中的Baud就是期待的波特率值。MSP430每個捕獲比較模塊中的捕獲和比較對應同一個中斷地址,因此兩者需要共享一段中斷服務程序。這樣就要求在中斷服務程序中能區分觸發中斷的類別。主要是通過CCTL控制寄存器中的CAP位來區分[3]。另一方面接收和發送的也都需要在這段服務程序中處理,應該加以區分。(詳見附錄中的程序代碼及說明)

        3 超低功耗串行通信實例

        3.1電路結構及其特點
        本文中使用上述的原理和方法,在MSP430F413和MAX3221構成的電路中實現了與的串行通信,電路原理如圖3。該電路不但完成了串行通信,還進一步實踐了超低功耗的應用原理。MSP430單片機的一大特點就是超低功耗,它有多種功耗狀態可以編程控制[4]。MAX3221也是具有低功耗特點的接口器件,通過EN、FORCEON、FORCEOFF引腳可以控制驅動器、接收器的工作狀態,啟動或禁止自動降低功耗功能,從而使其工作在不同的能耗狀態,達到降低功耗的目的[2]。控制及其狀態詳見表1


        圖3 MSP430F413超低功耗串行通信電路原理圖

        3.2超低功耗的解決方案
        選擇了低功耗的器件,還要合理的控制才能達到最低的能耗[1]。對于本應用,MSP430處于從機工作狀態。針對這種應用以下方案可以有效地降低能耗:初始化程序結束后,設定MSP430F413工作在功耗模式4等待P1.2引腳的中斷。這時CPU將關閉,其能耗最低(0.1μA)。另一方面,初始控制MAX3221進入自動調節能耗狀態。如果不發送信號,即Rin輸入無效,驅動器和接收器都將關閉,進入很低功耗的待機狀態(1μA)。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 揭阳市| 武冈市| 湖南省| 西乌珠穆沁旗| 祁阳县| 凤翔县| 禹州市| 阳泉市| 红河县| 百色市| 吉林省| 永善县| 手游| 武川县| 吉安县| 开远市| 玛多县| 航空| 普兰店市| 灵宝市| 定远县| 安陆市| 襄樊市| 宝应县| 新民市| 岗巴县| 永登县| 夏津县| 平顺县| 岳池县| 海门市| 伽师县| 谷城县| 洛浦县| 金乡县| 盐山县| 横峰县| 华池县| 松原市| 德钦县| 黑龙江省|