DSP与TL16C752B UART通信配置及中断处理

需积分: 15 2 下载量 43 浏览量 更新于2024-08-24 收藏 892KB PPT 举报
该实验是关于异步串口通信的,主要涉及了CCS开发环境、SEED-DTK5416硬件平台、TL16C752B通用异步收发器UART的使用。实验目标包括了解开发环境、硬件设计、串口电路设计、UART通讯原理、DSP对I/O空间的访问以及C语言和汇编数据共享。实验内容涵盖了DSP和UART的初始化、错误处理、数据发送和接收以及中断处理。UART的接口设计中,TL16C752B有A和B两个通道,每个通道有18个寄存器,通过地址线A0~A2进行寻址。UART的波特率由DLL和DLM寄存器设置,用于确定串口传输速度。 在实验中,UART的初始化至关重要,这通常包括配置波特率、数据位、停止位等。波特率的计算公式为DLM、DLL=Fpclk/16×baud,其中Fpclk是主时钟频率,baud是期望的波特率。LCR(Line Control Register)寄存器用于设置字长度和停止位,它的不同位可以设置为5位、6位、7位或8位数据传输,并可以选择1个或2个停止位。 在DSP与UART的交互中,中断是关键,TL16C752B提供了INTA和INTB两个中断请求信号,分别对应通道A和B的中断服务。中断处理程序应能识别和响应这些中断,进行数据的接收和发送操作。UART的中断处理涉及到中断标志的清除、数据缓冲区的管理以及错误处理。 UART的容错处理包括检查数据帧的正确性,如奇偶校验、CRC校验等,确保数据的完整性和准确性。同时,还需要处理串口通信中的各种异常情况,如丢失帧、超时、数据溢出等问题。 实验中提到的UART寄存器设置,除了DLL和DLM之外,还有其他寄存器如FCR(FIFO Control Register)用于设置FIFO(First In First Out)缓冲区,LCR用于设置帧格式,MCR(Modem Control Register)用于控制Modem接口状态,IIR(Interrupt Identification Register)用于识别中断源,而SCR(Scratchpad Register)则作为一个临时存储寄存器。 这个实验旨在通过实际操作加深对UART通信机制的理解,包括寄存器配置、数据传输和中断处理等关键环节,从而提高在嵌入式系统中使用串口通信的能力。