您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > DSP实验报告SCI
一、实验目的:1.了解TMS320F2812片上外设SCI;2.熟悉片上外设SCI通道的使用;3.利用片上SCI通道进行数据采集。二、实验内容:1.初始化系统;2.初始化片上SCI通道;3.SCI数据传递。三、实验背景知识1.SCI模块概述SCI是一个双线的异步串口,即具有接受和发送两根信号线的异步串口。F2812内部具有两个相同的SCI模块,SCIA和SCIB。每个SCI模块都有一个接收器和发送器,分别被用于接受和发送数据的功用。它们都有自己独立的使能位和中断位,可以在半双工通信中进行独立的操作,或者在全双工通信中同时进行操作。如图1所示,根据数据传送的方式,可以将串行通信分为单工、半双工、全双工3种。图1串行通信的3种方式2.SCI模块的特点图2SCIA与CPU的接口由于SCIA与SCIB的功能相同,只是寄存器的命名有所不同,故只对SCIA进行解释。a、如图所示,SCI模块具有两个引脚:发送引脚SCITXD和接受引脚SCIRXD。这两个引脚分别对应GPIOF模块的第4位和第5位。在编程初始化时,需要将GPOFMUX寄存器的第4位和第5位置1,否则这两个引脚就是通用的数字I/O口。b、外部晶振通过F2812的PLL模块倍频之后产生了CPU系统时钟SYSCLKOUT,然后SYSCLKOUT经低速时钟预定标器之后输出低速外设时钟LSPCLK提供给SCI。c、SCI模块具有4种错误检测标志,分别是极性错误、超时错误、帧错误、间断检测。d、SCI模块具有双缓冲接受和发送功能,接受缓冲寄存器为SCIRXBUF,发送缓冲寄存器SCITXBUF。e、SCI模块可以产生两个中断:SCIRXINT和SCITXINT,即接受中断和发送中断。f、在多种处理器模式下,SCI模块具有两种唤醒方式:空闲线方式和地址位方式。g、SCI模块具有13个寄存器,并且都是8位。当寄存器被访问时,数据位于低8位,高8位为0。3.SCI模块信号SCI模块的信号有外部信号、控制信号和中断信号3种。图3SCI模块的信号4.SCI模块的工作原理①SCI模块组成a、发送器及其相关寄存器SCITXBUF:发送数据缓冲寄存器,存放由CPU装载的需要发送的数据。TXSHF:发送移位寄存器,从SCITXBUF寄存器接受数据,然后将数据逐位移到SCITXD上,每次移一位数据。b、接收器及其相关寄存器RXSHF:接收移位寄存器,从SCIRXD引脚移入数据,每次移一位数据。SCIRXBUF:接收数据缓冲寄存器,存放CPU要读取的数据。c、可编程的波特率发生器d、数据存储器映射的控制和状态寄存器②工作原理图4SCI的工作原理a、当其他处理器发出的数据到达SCIRXD引脚以后,SCI开始检测数据的起始位。b、当SCIXD引脚检测到起始位以后,便开始将随后的数据逐位移至RXSHF寄存器。c、如果SCI控制寄存器SCICTL1的位RXENA为1,也就是如果使能了SCI的接收操作,当RXSHF寄存器中的数据满后,便将这个8位的数据并行移入接受缓冲寄存器SCIRXBUF;接受缓冲寄存器就绪标志位RXRDY被置位,表示已经接受了一个新的数据,等待CPU来读取;此时还会产生一个SCI的接收中断申请信号。d、CPU通过程序读取SCIRXBUF寄存器中的数据以后,RXRDY标志位被自动清除。e、如果SCI控制寄存器SCICTL1的位RXENA为0,也就是如果没有使能SCI的接收操作,当外部数据到达引脚SCIRXD时,数据还是会被逐位移入RXSHF寄存器,但是不会从RXSHF寄存器移入到SCIRXBUF寄存器中。f、如果使能了SCI的FIFO功能,则RXSHF会将数据直接加载到RXFIFO队列中,CPU再从FIFO队列中读取数据。6.SCI模块的中断图5SCI中断标志和中断使能逻辑SCI模块可以产生两种中断:接收中断RXINT和发送中断TXINT;SCI可以工作在标准SCI模式下,也可以工作在增强的FIFO模式下。图6SCI的中断四、试验程序功能与结构说明1.片上SCI数据传递实验,包含文件:a、UART.c:实验主程序,完成于PC机的异步通讯;b、DSP28_Sci.c:包含了异步串口初始化程序;c、DSP28_Defaultlsr.c:包含了异步串口接收中断服务程序;d、DSP28_GlobalVariableDefs.c:各个外设备全局变量定义;e、DSP28_PieCtrl.c:PIE中断初始化;f、DSP28_PieVect.c:PIE中断矢量初始化;g、DSP28_SysCtrl.c:系统初始化;h、2812.cmd:声明了系统存储器配置与程序各段的连接关系;i、*.h:各个源文件的头文件;j、rts2800.l:库函数文件。2、程序流程图图7程序流程图3.实验准备a、将DSP仿真器与计算机连接好;b、将串口线与SEED_DEC2812板上的J4相连;c、将DSP仿真器的JTAG插头与SEED_DEC2812单元的J1相连接;d、打开SEED——DEC2812的电源,观察SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED_DEC2812的电源指示灯D2是否均亮。4.实验步骤a、打开CCS,进入CCS的操作环境;b、装入uart.pjt工程文件,添加2812.gel文件;c、编译、连接生成uart.out文件,装载程序uart.out。d、根据UART_INT的宏定义设置断点:如果UART_INT设置为0,在uart.c文件的第82行“Send_Flag=1;”设置断点;图8添加断点如果UART_INT设置为1,在DSP28_Defaultlsr.c文件的第993行“Send_Flag=1;”设置断点(中断函数实现)图9添加断点f、运行“串行调试助手”的软件,设置参数如下:图10串行调试助手参数设置g、在“串口调试助手”的发送窗口中输入要发送的数据h、运行程序,程序会等待外部中断。i、发送区输入要发送的单个字符,点击手动发送图11实验结果五、实验心得SCI的主要功能是用来传输数据,而其又是双线的异步串口,换句话说,是具有接收和发送两根信号线的异步串口,即是UART(通用异步接收\发送装置)。由于两个SCI模块都具有接收和发送装置,并且都有自己独立的中断和使能位,因此可以进行半双工和全双工通信。在实验过程中,重点要学习例子程序的各个文件中的内容。熟悉和了解例子程序中的中断和使能位是怎样实现的以及主程序的编程思路为以后的DSP学习开发基类知识。同时,在实验过程中也学习了CCS软件的使用,以及对SEED仿真器的熟悉和使用。由于在本科阶段接触的相关课程非常少,学习DSP的基础比较薄弱,刚刚开始学习室非常的吃力。但是在老师和同学的帮助和指导下,经过一段时间的努力对DSP有一定的了解。但是,还有许多的不足,希望在后续的大作业中取得进一步的提升。
本文标题:DSP实验报告SCI
链接地址:https://www.777doc.com/doc-4618243 .html