新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > TMS320C54X DSP实现UART的技术

TMS320C54X DSP实现UART的技术

作者:时间:2011-03-29来源:网络收藏


2.1 串行传输

异步串行数据格式的设置通过线路控制寄存器(LCR)来完成的。除了数据格式外,另外一个指标是波特率,它是通过除数寄存器来设置的,实际的波特率为输入时钟信号进行分频后获得,其公式如下:

本文引用地址:http://www.eepw.com.cn/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 下一页

评论


相关推荐

技术专区

关闭