串口通信(顾玮洁).pptVIP

  • 4
  • 0
  • 约6.5千字
  • 约 29页
  • 2015-08-07 发布于河南
  • 举报
基于DSP5402的异步串口通信模块设计 主要内容 1、串口通信原理和异步串口芯片介绍 2、系统硬件方案设计 3、软件设计 1、串口通信原理 串口通信是按位(bit)将数据一位一位地依次传输,他可以在使用一根线发送数据的同时用另一根线接收数据。串行通信可以分为同步通信和异步通信。 (2)异步通信 异步通信是一种很常用的通信方式。通常数据以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 异步串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。 (1)TL16C550的特点: 供电电压为5 V~3.3 V; 时钟频率高达16 MHz。通信时波特率最高可达1 M.可编程设定波特率发生器; 具有标准的异步通信位,可选择5、6、7、8位串行数据位,可设置奇偶校验或无校验模式,停止位长度1、1.5、2; 独立控制发送、接收、线状态以及中断设置; 软件设定的FIFO,减少CPU中断。 (4).内部结构 (4). TL16C550内部寄存器 TL16C550C内部共有11个寄存器,这些寄存器的访问是通过3个地址线控制,LCR控制寄存器的D7位DLAB参与辅助定义。 2、系统方案设计 在本实例中TMS320VC54x的数据线D0~D7、地址线A0~A分别与TL16C550C的数据线D0~D7、地址线A0~A2连接。 在实例中采用CPLD可以较好的实现接口逻辑较为复杂的电路设计,从而提高了硬件设计的灵活性,本模块中CPLD主要完成异步串口模块的I/O地址分配、中断分配和读写控制等功能。 图1为I/O地址分配波形仿真结果图,如图所示当I/O空间选择信号/IS和TMS320VC54x地址线A[15..10]均为低电平时,异步串口模块的片选信号UART_CS为低电平,即说明片选信号有效, 3)异步串口芯片的读写控制 我们使用TMS320VC54x的读写复用信号R/\W和I/O选通信号/ISOTRB通过CPLD内的逻辑电路产生TL16C550C的读写控制信号/RD和/WR,逻辑电路设计的真值表如下表,内部接口逻辑如图8所示 图为波形仿真结果图,当R//W=1,/IOSTRB=0时,RD=0,WR=1,TL16C550C进行读操作;当R/W=0,/IOSTRB=0, RD=1,WR=0,TL16C550C时进行写操作;波形仿真结果如图所示。 软件算法流程图如下所示,首先要完成对DSP和TL16C550C的初始化,在TL16C550C的初始化中要禁止FIFO的接收和发送;使能访问接收缓冲寄存器(RBR)和发送保持寄存器(THR);设置数据位、停止位和奇偶校验位;设置数据传输波特率为38400,然后设置一个whlie(1)循环程序,在此循环程序中异步串口芯片TL16C550C完成从PC机中重复接收和发送数据的过程。 (2)接收函数 unsigned int Uart_rx(void) { volatile unsigned long ii = 0L; while (!(UART_LSR 0x01)) { if (ii++2000000) { return(0xffff); } } return (UART_RBR); } (3)发送函数 * * (1)同步通信 同步通信是一种连续串行传送数据的通信方式,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。 异步串行通信芯片TL16C550 (2).TL16C550的引脚功能: 图 1 波特率输出 /BAUDOUT 17 片选2 (低电平有效) /CS2 16 片选1 (高电平有效) CS1 15 片选0 (高电平有效) CS0 14 串行数据输出 SOUT 13 串行数据输入 SIN 11 接收器时钟 RCLK 10 数据总线 D0~D7 2~9 悬空 NC 1、12、23、34 功能说明

文档评论(0)

1亿VIP精品文档

相关文档