新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430--UART模塊

        MSP430--UART模塊

        作者: 時間:2016-11-26 來源:網絡 收藏
        UART是通用異步串行接口的簡稱。串行通信接口是用來與單片機外界系統進行通信橋梁,比如可以吧單片機ADC轉換的數據通過串口發送給PC機(上位機),經上位機處理之后在發回給單片,達到通信的目的。TI公司的MSP430系列單片機均具有UART功能,其中大部分還和SPI,I2C功能復用,通過相關寄存器的配置,可以很輕松地就實現了UART,SPI,I2C的通信功能。在此以MSP430x149為例介紹UART功能及其實現過程。

        1.異步通信的結構:

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

        2.UART數據格式(數據協議):

        異步通信再不發送數據的時候,通信線路上總是呈現高電平狀態,稱為空閑狀態。當有數據發送是,信號線變成低電平,并持續一位的時間用于表示發送字符的開始,該為稱為起始位。起始位之后在信號線上依次出現發送的數據。

        起始位,數據位由高到低7/8位,地址位 0/1位,奇偶校驗位 奇偶或無,停止位1/2位。數據位位數、地址位、奇偶校驗位、停止位均可由單片機內部寄存器控制;這款單片機都有兩個USART模塊,有兩套獨立的寄存器組;以下寄存器命中出現x代表0或是1,0代表對應0模塊的寄存器,1代表對應1模塊的寄存器;其中,與串口模式設置相關的控制位都位于UxCTL寄存器,與接收相關的控制位都位于UxRCTL寄存器,與發送相關的控制位都位于UxTCTL寄存器;波特率設置用UxBR0、UxBR1、UxMCTL三個寄存器;接收與發送有獨立的緩存UxRXBUF、UxTXBUF,并具有獨立的移位寄存器和獨立的中斷;中斷允許控制位位于IE1/2寄存器,中斷標志位位于IFG1/2寄存器。

        3.波特率設置:430的波特率設置用三個寄存器實現:
        UxBR0:波特率發生器分頻系數低8位。
        UxBR1:波特率發生器分頻系數高8位。
        UxMCTL:波特率發生器分頻系數的小數部分實現。
        設置波特率時,首先要選擇合適的時鐘源:USART模塊可以設置的時鐘源有UCLK引腳、ACLK、SMCLK;對于較低的波特率(9600以下),可選ACLK作為時鐘源,這樣,在LPM3(低功耗3)模式下,串口仍能正常發送接收數據;另外,由于串口接收過程有一個三取二判決邏輯,這至少需要三個時鐘周期,因此分頻系數必須大于3;波特率高于9600時,將不能使用ACLK作為時鐘源,要調為頻率較高的SMCLK作為時鐘源;另外還可以外部輸入UCLK時鐘。分頻系數計算公式如下:

        小數分頻是MSP430單片機的串口特色之一,UxMCTL寄存器的作用就是控制小數的分頻,控制方法如下:對應位是1,則分頻系數加一,0則分頻系數減一;小數分頻器會自動依次取出每一位來調整分頻系數。其計算方法:可以先計算小數部分一的個數,然后把1均勻的放入UxMCTL的8位中,這樣計算比較簡單,分頻系數的小數部分乘以8即得到1的位數,查表得到對應的UxMCTL值;另外一種通過計算每一位的錯誤率,交互計算,直到得到最小錯誤率的UxMCTL值,這種方法比較復雜,但得到的小數分頻誤差更小。

        4.UART的初始化及復位

        在初始化或者重新配置UART時,必須按照以下順序進行:

        (1)UxCTL寄存器的第0位SWRST置位;

        (2)在SWRST置位的條件下,初始化所有的UART寄存器,包括UxCTL寄存器;

        (3)通過置位模塊使能寄存器MEx的URXEx和UTXEx位使能UART的接受和發送使能模塊;

        (4)通過軟件復位UxCTL寄存器的第0位SWRST;

        (5)通過中斷使能寄存器IEx的URXIEx和UTXIEx來使能發送和接受中斷。

        5.UART的中斷

        (1)發送中斷:當發送緩沖寄存器UxTXBUF被寫入需要發送的數據的時候,UTXIFGx的中斷標志位被置位;如果發送中斷被允許,并且總中斷被使能的話,則會向CPU發出中斷請求。當響應中斷請求之后,中斷標志位被自動置0,在中斷函數里邊不需要手動清除標志位。

        (2)接收中斷:當有數據被裝載到發送緩沖寄存器UxRXBUF時,UTXIFGx的中斷標志位被置位;如果接受中斷被允許,并且總中斷被使能的話,則會向CPU發出中斷請求。當響應中斷請求之后,中斷標志位被自動置0,在中斷函數里邊不需要手動清除標志位。


        上一頁 1 2 下一頁

        關鍵詞: MSP430UART模

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 韶山市| 汉寿县| 金山区| 邛崃市| 名山县| 台南县| 什邡市| 咸阳市| 永年县| 嘉定区| 安义县| 黄冈市| 惠来县| 德阳市| 遵义县| 青神县| 商丘市| 禄丰县| 安宁市| 黄平县| 通许县| 无锡市| 岑巩县| 仲巴县| 安阳县| 喀什市| 临澧县| 林西县| 灵川县| 育儿| 登封市| 财经| 德阳市| 朝阳县| 江门市| 定结县| 台南市| 佳木斯市| 贵阳市| 泸水县| 望谟县|