串口通信(顾玮洁).ppt

上传人:小飞机 文档编号:6535408 上传时间:2023-11-10 格式:PPT 页数:29 大小:419.50KB
返回 下载 相关 举报
串口通信(顾玮洁).ppt_第1页
第1页 / 共29页
串口通信(顾玮洁).ppt_第2页
第2页 / 共29页
串口通信(顾玮洁).ppt_第3页
第3页 / 共29页
串口通信(顾玮洁).ppt_第4页
第4页 / 共29页
串口通信(顾玮洁).ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《串口通信(顾玮洁).ppt》由会员分享,可在线阅读,更多相关《串口通信(顾玮洁).ppt(29页珍藏版)》请在三一办公上搜索。

1、基于DSP5402的异步串口通信模块设计,主要内容,1、串口通信原理和异步串口芯片介绍2、系统硬件方案设计3、软件设计,1、串口通信原理,串口通信是按位(bit)将数据一位一位地依次传输,他可以在使用一根线发送数据的同时用另一根线接收数据。串行通信可以分为同步通信和异步通信。,(1)同步通信 同步通信是一种连续串行传送数据的通信方式,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。,(2)异步通信 异步通信是一种很常用的通信方式。通常数据以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过

2、传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。异步串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。,(1)TL16C550的特点:供电电压为5 V33 V;时钟频率高达16 MHz。通信时波特率最高可达1 M可编程设定波特率发生器;具有标准的异步通信位,可选择5、6、7、8位串行数据位,可设置奇偶校验或无校验模式,停止位长度1、1.5、2;独立控制发送、接收、线状态以及中断设置;软件设定的FIFO,减少CPU中断。,异步串行通信芯片TL16C550,(2).TL16C550的引脚

3、功能:,图 1,表 1,(4).内部结构,图 2,(4).TL16C550内部寄存器 TL16C550C内部共有11个寄存器,这些寄存器的访问是通过3个地址线控制,LCR控制寄存器的D7位DLAB参与辅助定义。,表2,线路控制寄存器(LCR),线路状态寄存器(LSR),中断使能寄存器(IER),波特率除数寄存器,波特率除数寄存器为16位,由高8位(DLM)和低8位(DLL)组成,用来设置TL16C550C串行数据传输的波特率。除数寄存器的值可由TL16C550C的工作时钟和波特率共同确定,计算公式为:除数=时钟频率/(期望的波特率16)。例如在本例设计中TL16C550C的输入频率是10MHz

4、,若采用波特率为38400时,通过计算公式可得高位除数寄存器(DLM)的值为00H,低位除数寄存器(DLL)的值为10H。同理,可以计算出表中各个波特率对应的DLM、DLL值。,2、系统方案设计,TL16C550C与TMS320VC54x都为TI公司生产的芯片,在电气特性和时序匹配上兼容。要实现TMS320VC54x与TL16C550C之间的通信接口,我们采用可编程逻辑器件(CPLD)实现,即需要用TMS320VC54x的信号通过一定的逻辑电路产生TL16C550C需要的控制信号。TMS320VC54x和TL16C550的接口电路示意图如图3所示。,图3 基于TL16C550C的串口通信接口电

5、路示意图,在本实例中TMS320VC54x的数据线D0D7、地址线A0A分别与TL16C550C的数据线D0D7、地址线A0A2连接。,使用TMS320VC54x的I/O空间选择信号/IS和地址线A10A15通过CPLD中的译码逻辑电路产生TL16C550C的片选信号/CS2,并将I/O地址空间的0 x00000 x03FF这段地址分配给TL16C550C,从而避免了与外部其他I/O设备发生冲突;使用TMS320VC54x的读写复用信号R/W和I/O选通信号/ISOTRB通过CPLD产生TL16C550C的读写控制信号/RD和/W;TL16C550C的中断输出INTRPT通过CPLD译码逻辑电

6、路产生TMS320VC54x的外部中断控制信号/INT3,由于本实例中数据传输方式采用查询的方式,所以数据传输的中断方式只做预留方案使用。,在实例中采用CPLD可以较好的实现接口逻辑较为复杂的电路设计,从而提高了硬件设计的灵活性,本模块中CPLD主要完成异步串口模块的I/O地址分配、中断分配和读写控制等功能。,1)异步串口模块的I/O地址分配,使用TMS320VC54x的地址线A15A10和I/O空间选择信号/IS通过CPLD内部逻辑译码产生异步串口模块的片选信号UART_CS(低电平有效),并将异步串口模块映射到I/O地址空间的0 x00000 x03FF段内,,图 4,图1为I/O地址分配

7、波形仿真结果图,如图所示当I/O空间选择信号/IS和TMS320VC54x地址线A15.10均为低电平时,异步串口模块的片选信号UART_CS为低电平,即说明片选信号有效,,2)异步串口芯片中断的分配 在异步串口通信中传输数据时我们采用的是查询方式,而数据传输的中断方式作为预留方案,中断方式是将TMS320VC5402的外部INT3分配给异步串口模块,由拨码开关SW15中的SIN3和异步串口芯片TL16C550C的中断输出引脚INTRPT(UART_INT)通过CPLD译码产生TMS320VC54x的外部中断控制信号/INT3(BINT3),其逻辑电路设计的真值表如下表,内部接口逻辑如图6所示

8、。将,图7为中断分配的波形仿真结果图,如图所示在SIN3为高电平,UART_INT为低电平时BINT3为高电平,则说明中断信号有效。,图 6,图 7,3)异步串口芯片的读写控制 我们使用TMS320VC54x的读写复用信号R/W和I/O选通信号/ISOTRB通过CPLD内的逻辑电路产生TL16C550C的读写控制信号/RD和/WR,逻辑电路设计的真值表如下表,内部接口逻辑如图8所示,图 8,图为波形仿真结果图,当R/W=1,/IOSTRB=0时,RD=0,WR=1,TL16C550C进行读操作;当R/W=0,/IOSTRB=0,RD=1,WR=0,TL16C550C时进行写操作;波形仿真结果如

9、图所示。,软件算法流程图如下所示,首先要完成对DSP和TL16C550C的初始化,在TL16C550C的初始化中要禁止FIFO的接收和发送;使能访问接收缓冲寄存器(RBR)和发送保持寄存器(THR);设置数据位、停止位和奇偶校验位;设置数据传输波特率为38400,然后设置一个whlie(1)循环程序,在此循环程序中异步串口芯片TL16C550C完成从PC机中重复接收和发送数据的过程。,(1)TL16C550C初始化初始化过程如下:UART_FCR=0 x00;/清除接收和发送FIFO;UART_LCR=UART_LCR/位7重新清零,关键代码分析,(2)接收函数,unsigned int Ua

10、rt_rx(void)volatile unsigned long ii=0L;while(!(UART_LSR,TL16C550C完成数据的接收过程为,首先查询线路寄存器(LSR)的第0位,如果等于1则说明TL16C550C已经将从PC机中接收的数据缓存在TL16C550C的接收缓冲寄存器(RBR)中,然后将此数据发送给 TMS320VC54x同时也将此数据赋值给定义好的数组data将其作为发送过程中的数据。,(3)发送函数,unsigned int Uart_tx(unsigned int data)volatile unsigned long ii=0L;while(!(UART_LSR,TL16C550C完成数据的接收过程为,首先查询线路寄存器(LSR)的第6位,如果等于1则说明TL16C550C的发送保持寄存器(THR)为空,此时TMS320VC54x可将数组data中的数值写给发送保持寄存器(THR),然后TL16C550C再将数据传输给PC机完成发送过程。,结果验证,实验结果如图所示,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号