新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TMS320C54X DSP實現UART的技術

        TMS320C54X DSP實現UART的技術

        作者: 時間:2011-03-29 來源:網絡 收藏


        2.1 串行傳輸

        異步串行數據格式的設置通過線路控制寄存器(LCR)來完成的。除了數據格式外,另外一個指標是波特率,它是通過除數寄存器來設置的,實際的波特率為輸入時鐘信號進行分頻后獲得,其公式如下:

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



        2.2 數據接收

        從SIN輸入的數據首先進入接收移位寄存器(RSR),一個字符接收完成后,數據移人接收緩沖寄存器(RBR)。RBR實際是一個16字節的FIFO,當中斷設置時,會根據FIFO中接收數據的數目產生中斷,主機設備從RBR中讀取數據后,中斷會自動清除。

        2.3 數據發送

        發送操作和接收操作相反,主機數據寫入發送保持寄存器(THR),THR是一個16字節的FIFO,然后數據移入發送移位寄存器(TSR),之后送人SOUT。當中斷設置時,會根據FIFO中發送數據的數目產生中斷,主機設備可根據中斷來決定是否繼續發送數據。

        除了收發操作外,TLl6C550C還可以產生其他類型的中斷,但它只有一根中斷信號引腳INTRPT,因此主機接收到中斷后必須判決產生中斷的信號源。

        FIFO的操作通過FCR來設置。當使用FIFO時,中最多可存放16字節數據,反之則只能存放一個數據,即相當于FIF0只有一個字節大小。有兩種工作方式:中斷方式和查詢方式。

        UART中還有Modem控制寄存器(MClR)和Modem狀態寄存器(MSR),它們用于控制一些信號引腳,能把UART的工作狀態通過硬件的方式表達出來。

        2.4部分LIART匯編編程

        測試程序:
        ST #0x55,*SP(var_reg) ;用來確定LJART設備是存在的
        PORTW*SP(vat_reg),ADDR_SPR
        PORTR ADDR_SPR.*SP(vaLr_reg)
        LD *SP(var_reg),A
        SUB #0x55,A,B
        BC rs232_no_errclr,BEQ
        設置特率程序:
        ST #0x83,*SP(vaL_reg)
        PORTW*SP(var_reg),ADDK_LCR
        ST #0xOO,*SP(var_reg) ;設置波特率為9600
        PORTW*SP(var_reg),ADDR_DIV_MSB
        ST #0x18,*SP(van_reg)
        PORTW*SP(vaLreg),ADDR_DUV_LSB
        ST #0x03,*SP(var_reg)
        PORTW*SP(var_reg).ADDR_LCR

        3 總 結
        利用軟件模擬的方法,缺點是將長時間處于對IJART的中斷和處理中,無法全速參與運算,而且占用了外部中斷0和一個定時器(有些只有一個定時器);優點是在和帶UART的外設之間除了電平轉換部分外不需要另外的硬件,可以節約產品的成本。利用外部接口芯片組的方法,缺點是增加了額外的硬件開銷,從而增加了產品成本;優點是收發數據快,可以和數據處理同步進行,能夠系統的實時性。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 册亨县| 宝应县| 华池县| 台中市| 枣强县| 南丰县| 如东县| 乐至县| 关岭| 大石桥市| 定远县| 武汉市| 苍山县| 大渡口区| 雷波县| 德格县| 平和县| 乳山市| 余姚市| 苏尼特左旗| 泰和县| 浦东新区| 泰兴市| 同德县| 威海市| 甘孜| 三门峡市| 龙泉市| 宁强县| 阿城市| 开远市| 洮南市| 永兴县| 台南县| 建德市| 广汉市| 武山县| 天镇县| 苏尼特左旗| 泰和县| 铅山县|