- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TLl6C550C的DSP异步串行通信的实现
3 TLl6C550C和PC通信的软件编程
该套系统的软件设计部分主要包括PC机程序、DSP初始化、TLl6C550C初始化和数据发送/接收以及双方的通信协议等。本文着重介绍TLl6C550C的初始化程序。主要由以下几部分组成:
◇波特率的设定;波特率除数寄存器由高8位(DLM)和低8位(DLL)组成。除数的值可由UART的工作时钟和波特率共同确定,其计算公式为:
除数=时钟频率/(期望的波特率×16)
例如本系统中时钟频率12 MHz,波特率设置为9600,则除数的值为12,应在初始化程序中设置DLM=OOH,DLL=4eH;
◇增强功能的使能及设置EFR的相关位;
◇完成有关收/发FIF0的设定,主要是MCR/TCR/TLR三个寄存器的设置;
◇传输数据格式设定,包括8位数据位、1位停止位以及无校验;
◇设置FIFO控制以及中断控制寄存器。
此外,在完成设置前,还应注意:设定DLL和DLH前,LCR的第7位应为1;地址相重叠的寄存器不能同时使能;读写RHR和THR时,DSP的读写速度很快,故最好不要连续读写,而是在每读、写一次后延时一段时间。然后再进行下一次读写。
由于TLl6C550C映射在DSP的CEO区间,所以在DSP访问其寄存器时只需将基地址加上偏移量即可。其初始化源程序如下:
4 结束语
本文介绍了通过TLl6C550C扩展串口完成TMS320C6416与PC机串行通信的设计方案,给出了硬件设计框图及软件实现代码。该电路及软件经实验证明能够可靠地实现TMS320C416与PC机之间的通信,并且此方法已在实际的项目中得到应用。
TLl6C550C采用3.3 V供电.将TLl6C550C的数据线DO~D7与TM320C6416T直连,从而实现数据的传输。同时应将TL16C550C的片内寄存器选择线与TM320C6416T的BEAl,BEA2,BEA3引脚相连,当TLl6C550C的片选信号CSO,CSl为高电平,为低电平时,TLl6C550B即被选中。CS0,CSl直接与高电平相连。则与CPLD的I/0相连,如此便实现了以CPLD来实现TLl6C550C的选通。
来源:维库开发网