1003030114许圣捷 LCD与TMS320C5509接口应用.docx
《1003030114许圣捷 LCD与TMS320C5509接口应用.docx》由会员分享,可在线阅读,更多相关《1003030114许圣捷 LCD与TMS320C5509接口应用.docx(23页珍藏版)》请在冰豆网上搜索。
1003030114许圣捷LCD与TMS320C5509接口应用
LCD与TMS320C5509接口应用
1.课程设计目的
(1)了解DSP的MCBSP外设的使用
(2)熟悉C语言的宏函数在MCBSP设置中的使用情况
(3)实现通过MCBSP发送数字和文字
2.课程设计要求
(1)LCD与TMS320C5509接口的硬件原理设计
(2)LCD与TMS320C5509接口的程序的设计
3.相关知识
3.1绪论
数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、相结合的产物。
一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。
数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。
采用DSP芯片来实现数字信号处理系统是当前发展的趋势。
近年来,DSP技术在我国也得到了迅速的发展,不论是在科学技术研究,还是在产品的开发等方面,在数字信号处理中,其应用越来越广泛,并取得了丰硕的成果。
数字滤波占有极其重要的地位。
数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。
数字信号处理器由于具有高性能和灵活可编程的优点而得到广泛的应用,在许多应用系统中,实现DSP与PC机之间有效可靠的通信是系统设计的重要部分。
一般来说,通信可以分为串行和并行两种方式。
相对于并行方式而言,串行通信具有电路结构简单、通信距离远和成本较低等优点,因而在许多数据交换量不大的系统中得到了广泛的应用。
串行数据传输又可分为同步和异步两种模式,通用PC机的RS-232接口为通用异步接口UART,异步串行通信在TMS320C55xDSP上的通常实现方式是利用DSP的McBSP接口加外接芯片实现,这种设计方法增加了实现UART的硬件成本和电路设计复杂度,是一种直接利用DSP的MCBSP接口和DMA通道实现UART的方法,给出了使用C语言的编程方法。
与传统实现方法相比,具有实现成本低,硬件电路简单,移植性强等特点。
3.2.异步串行通信
在计算机系统中,每个字符一般使用一个8位二进制代码表示。
在数据通信中,通常将待传送的每个字符的二进制代码按照由低位到高位的顺序依次发送的方式称为串行通信,图1-1是串行通信的示意图。
图1-1串行通信示意图
同步是数据通信中必需解决的一个重要问题。
所谓同步就是要求数据的收发双方在时间基准上保持一致。
在串行通信中,“异步”是同步收发双发通信的重要方式。
在异步串行通信中,每个字符作为一个独立的整体进行发送,字符之间的时间间隔可以是任意的。
为了实现同步,需要在每个字符的第一位前加1位起始位(逻辑1),并在字符的最后一位后加1位、1.5位或2位停止位(逻辑0)。
常用的串行通信接口标准包括RS-232、RS-449、V.24、V.35等。
其中RS-232是最常用的串行通信标准之一。
个人计算机及终端系统中配备的串行接口几乎都符合RS-232标准。
3.3RS-232接口标准
在数据通信中,通常将数据终端设备简称为DTE(DataTerminalEquipment),而将数据通信设备简称为DCE(DataCircuitEquipment)。
DTE是具有一定数据处理能力及发送和接收数据能力的设备,而DCE的主要作用是在DTE和传输线路之间提供信号变换和实现编码功能,并且负责建立、保持和释放数据链路的连接。
DTE可以是计算机或终端,也可以是各种I/O设备,而与模拟话路相连接的调制解调器(MODEM)则是典型的DCE。
RS-232的主要内容就是定义DTE和DCE之间的接口标准。
RS-232使用的连接器包括DB-25、D-15和DB-9等几种类型,不同类型连接器使用的引脚定义也各不相同。
目前,个人计算机配备的RS-232连接器通常为DB9,它提供异步串行通信所需要的9个信号,其引脚的排列和信号名称如图1-2所示。
图1-2RS-232在使用DB-9作为连接器时的引脚排列和信号名称
RS-232采用负逻辑,逻辑0相当于对信号地有+3~+15V的电压,逻辑1相当于对信号地有-3~-15V的电压。
在-3V~+3V的过渡区,逻辑状态不定。
RS-232串行口信号分为传送信号、联络信号和信号地3类。
传送信号包括TxD(发送数据)和RxD(接收数据),它们是经由TxD传送和RxD接收的信息比特流。
一个传送单位由起始位、数据位和停止位(有时还包含奇偶校验位)组成。
4.课程设计分析
4.1LCD与TMS320C5509接口通信(RS-232)的硬件原理设计
4.1.1.TL16C550异步串行通信收发器
TL16C550是一个标准的串口接口芯片,它的控制寄存器基地址为0x400200,寄存器占用TMS320VC5509的8个地址单元。
串口中断与TMS320VC5509的INT0连接。
用户可以使用TMS320VC5509的中断0响应串口中断。
TL16C550有11个寄存器,这11个寄存器是通过TMS320VC5509的3个地址线(A3~A1)和线路控制寄存器中的DLAB位对它们进行寻址的。
表1-22是TL16C550寄存器地址分配。
各个寄存器的功能说明如下:
1.线路控制寄存器LCR:
WLS1WLS0:
设置数据长度:
00:
5位
01:
6位
10:
7位
11:
8位
STB:
设置停止位个数
0:
一个停止位
1:
1.5个停止位(5位数据长度时),2个停止位(6,7,8位数据长度时)
PEN:
奇偶校验使能
0:
奇偶校验无效
1:
奇偶校验有效
EPS:
奇偶校验选择
0:
奇校验
1:
偶校验
DLAB:
寄存器访问选择
0:
访问其余寄存器
1:
访问除数和功能切换寄存器
2.线路状态寄存器LSR:
DR:
接收数据准备好标志
0:
接收数据缓冲器空
1:
接收数据缓冲器中有数据
OE:
溢出错误标志(上一个接收数据被当前接收数据覆盖)
0:
无溢出
1:
有溢出
PE:
奇偶校验错误标志
0:
无奇偶校验错误
1:
有奇偶校验错误
THRE:
发送保持寄存器空标志
0:
非空
1:
空
TEMT:
发送器空标志
0:
发送保持寄存器和发送移位寄存器非空
1:
发送保持寄存器和发送移位寄存器都空
3.中断使能寄存器IER:
ERDAI:
接收中断使能
0:
接收中断禁止
0:
接收中断使能
ETHREI:
发送中断使能
0:
接收中断禁止
1:
接收中断使能
ELSI:
接收错误中断使能
0:
接收错误中断禁止
1:
接收错误中断使能
EMSI:
MODEM中断使能
0:
MODEM中断禁止
1:
MODEM中断使能
4.中断标志寄存器IIR:
5.设置波特率:
TL16C550的波特率可通过除数寄存器DLM,DLL来设置,除数寄存器值和波特率之间
的换算公式如下:
除数值=输入频率÷(波特率×16),TL16C550的输入频率为:
3.6864MHz,
波特率和除数之间的关系如表1-27所示:
6.串口标准:
RS232标准。
4.1.2.ICETEK–VC5509-A板异步接口设计
在板上加上16C550、Max232和驱动电路部分即可。
驱动电路主要完成将输出的0-3.3V
电平转换成异步串口的工作电平,转换电平的工作由MAX232芯片完成,但由于它是5V器件
所以它同DSP间的信号线必须有电平转换,此板采用的是74LVC245。
电路图
4.1.3.串行通信接口设置
串行通信接口波特率计算:
内部生成的串行时钟由系统时钟SYSCLK频率和波特率选择寄存器决定。
串行通信接口使用16位波特率选择寄存器,数据传输的速度可以被编程为65000多种不同的方式。
不同通信模式下的串行通信接口异步波特率由下列方法决定:
-BRR=1—65535时的串行通信接口异步波特率:
串行通信接口异步波特率=SYSCLK/[(BRR+1)*8]其中,BRR=SYSCLK/(SCI异步波特率*8)-1;
-BRR=0时的串行通信接口异步波特率:
串行通信接口异步波特率=SYSCLK/16,这里BRR等于波特率选择寄存器的16位值。
4.2.LCD与TMS320C5509接口通信(RS-232)软件设计
4.2.1程序流程图
整个系统软件是由主程序和调频、调幅的子程序组成。
由于实验采用的是小数形式,所以得不到弧度大于1的正弦值。
但由于正弦信号的特殊对称形式,完全可以实现正弦波的完整输出。
4.2.2源程序
4.2.2.1LCD与TMS320C5509接口通信主程序
/////////////////////////////////////////////////
//ExampleForICETEK-VC5416-EDU//
//CTRVersion:
V4//
//Filename:
Uart.c//
//Project:
Uart.pjt//
//Version:
2.00//
//Writeby:
DanielHawk//
//Company:
RealtimedspCo.Ltd//
////
//AllRightsopened&noOnus2005.06//
/////////////////////////////////////////////////
//5416-A板:
//
//使用直连的串口通信电缆;//
//启动"串口调试助手.exe";//
//PC机发送信息以一个"."为结束标志//
/////////////////////////////////////////////////
ioportunsignedintport2000,port2001,port2002,port2003,port2004,port2005,port2006,port2007;
#defineRBRport2000
#defineTHRport2000
#defineIERport2001
#defineIIRport2002
#defineFCRport2002
#defineLCRport2003
#defineMCRport2004
#defineLSRport2005
#defineMSRport2006
#defineSCRport2007
#defineDLLport2000
#defineDLMport2001
voidwait(intnWait);
charcString[17]={"HelloPC!
Over|"},cReceive,cBuffer[17],cAnswer[16]={"Oh,yousay"};
intbReceive,nLen;
main()
{
unsignedintuWork;
inti,k;
bReceive=0;
LCR=0x80;
DLL=0x18;
DLM=0x00;
LCR=0x03;
FCR=0x01;
MCR=0x20;
IER=0x00;
while
(1)
{
if(bReceive==0)
{
for(i=0;i<16;i++)
{
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR=cString[i];
wait(1024);
}
}
else
{
for(i=0;i<10;i++)
{
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR=cAnswer[i];
wait(1024);
}
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR='\"';
for(i=0;i{
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR=cBuffer[i];
wait(1024);
}
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR='\"';
wait(1024);
for(i=9;i<16;i++)
{
do
{
uWork=LSR;
}while(uWork&0x040!
=0x040);
THR=cString[i];
wait(1024);
}
}
k=0;bReceive=0;
while
(1)
{
do
{
uWork=LSR;
}while((uWork&1)==0);
cReceive=RBR;
cBuffer[k]=cReceive&0x0ff;
if(cReceive=='.')
{
cBuffer[k+1]='\0';
nLen=k+1;
bReceive=1;
break;
}
k++;k%=16;
}
}
}
voidwait(intnWait)
{
inti,j,k=0;
for(i=0;ifor(j=0;j<64;j++)
k++;
}
4.2.3命令文件
-w
-stack500
-sysstack500
-lrts55x.lib
MEMORY{
DATA(RWI):
origin=0x2200,len=0x1000
PROG:
origin=0x200,len=0x2000
VECT:
origin=0xd000,len=0x100
}
SECTIONS
{
.vectors:
{}>VECT
.trcinit:
{}>PROG
.gblinit:
{}>PROG
frt:
{}>PROG
.text:
{}>PROG
.cinit:
{}>PROG
.pinit:
{}>PROG
.sysinit:
{}>PROG
.bss:
{}>DATA
.far:
{}>DATA
.const:
{}>DATA
.switch:
{}>DATA
.sysmem:
{}>DATA
.cio:
{}>DATA
.MEM$obj:
{}>DATA
.sysheap:
{}>DATA
.sysstack{}>DATA
.stack:
{}>DATA
}
5.仿真
双击启动程序“串口调试助手V2.0B.exe”,设置“串口调试助手”的串行端口为实际连接的计算机COM端口,设置波特率为9600,设置传输方式为8位、无校验、1个停止位。
运行程序后,切换窗口到“串口调试助手”;在“串口调试助手”的接收窗口中可看到DSP通过SCI发送来的“HelloPC!
Over|”字样;在“发送的字符/数据”栏中输入一些要发送到DSP的字符串,以“.”字符结尾;然后单击“手动发送”按钮;DSP在接收到PC机的信息后会自动进行回答。
结果图
6.结果分析
通过DSP传送到PC机上的信息,可以看出:
串口正常工作。
7.心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次DSP原理及应用的课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的辛勤指导下,同学的帮助下终于迎刃而解。
在次我表示感谢!
8.参考文献
[1]姜阳,周锡青.DSP原理与应用实验.西安:
西安电子科技大学出版社2008
[2]赵洪亮,卜凡亮,黄鹤松.TMS320C55xDSP应用系统设计.北京:
北京航空航天大学出版社,2008
[3]程佩青,数字信号处理教程第二版,清华大学出版社,2001.8
[4]TMS320C55XDSPMnemonicInstructionSetReferenceGuideSORU374G[Z].TexasInstruments,2002
[5]TMS320C55XDSPAssemblyLanguageToolsUser’sGuideSPRU280H[Z].TexasInstruments,2004.