首页 DSP实习报告

DSP实习报告

举报
开通vip

DSP实习报告DSP实习报告 课题:基于DSP的自动追光系统 学院:电气信息工程学院 班级:电子10-2班 姓名:王博 学号:201016040215 指导老师:刘柏生 实习日期:2013.5.20—2013.5.31 目录 一、0C55x DSP介绍…………………………………2 二、实习目的…………………………………………2 三、实习要求…………………………………………2 四、实习设备…………………………………………3 五、系统设计…………………………………………3 1、设计方案 …………………………………………………3 2...

DSP实习报告
DSP实习 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 :基于DSP的自动追光系统 学院:电气信息工程学院 班级:电子10-2班 姓名:王博 学号:201016040215 指导老师:刘柏生 实习日期:2013.5.20—2013.5.31 目录 一、0C55x DSP介绍…………………………………2 二、实习目的…………………………………………2 三、实习要求…………………………………………2 四、实习设备…………………………………………3 五、系统设计…………………………………………3 1、设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 …………………………………………………3 2、设计框图 …………………………………………………3 3、UART 电路 模拟电路李宁答案12数字电路仿真实验电路与电子学第1章单片机复位电路图组合逻辑电路课后答案 图………………………………………………4 六、程序代码…………………………………………4 1、主控制程序 ………………………………………………4 2、控制代码 …………………………………………………4 3、主程序 ……………………………………………………6 七、实习心得…………………………………………12 八、参考文献…………………………………………13 基于DSP的自动追光系统 一、 TMS320C55x DSP介绍 TMS320C55x在C54x的基础上发展起来的新一代低功耗、高性能数字信号处理器。 1)软件具有C54兼容模式。 2)工作时钟大大超过了C54x系列处理器, 3)CPU内部通过增加功能单元增强了DSP的运算能力, 具有更高的性能和更低的功耗。在无线通信、便携式个人数字系统及高效率的多通道数字压缩语音电话系统中得到广泛应用。 二、实习目的 1、掌握设计较复杂DSP系统的基本方法。 2、掌握DSP扩展数字I/O接口和UART串口的方法。 3、了解SEED-DEC5502的硬件系统。 4、熟悉使用CCStudio v3.3,MATLAB软件,学习C语言编程。 三、实习要求 1、DSP初始化和UART初始化。 2、TMS320C5502硬件系统。 3、设计出软件编程方法,并写出源代码; 4、通过本实验,了解DSP对I/O接口的操作,完成课题 5、熟练使用CCS 对程序进行调试 6、仿真与结果 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ; 四、实习设备 计算机、CCStudio v3.3软件、C5502实验箱、仿真器、方位探头、云台、万用表、串口线、排针等。 五、系统设计 1、设计方案 先由方位探头检测阳光信号,并将5v方位信号进行压降处理,变成3.3v,通过GPIO口送给DSP处理器,DSP处理做出指示,并将指示代码通过UART口发送至云台解码器,从而控制云台按照规定的方向运转,最终实现自动追光现象。 2、方框图 3、UART电路图 六、程序代码 1、主控制程序 while(1) { IODIR=0x00; //设置GPIO口低四位输入 temp=IODATA; //读取输入的方位信号 IO_IN21=(temp & 0x03);//读取低两位 if(IO_IN21==0x01)        turn_up();    //上转 else  if(IO_IN21==0x02) turn_down(); //下转 else  turn_stop();    //停止 while(IO_IN21 != 0x00);  //等待上下平衡 turn_stop(); temp=IODATA; //读取输入的方位信号 IO_IN43=(temp & 0x0c);//读取高两位 if(IO_IN43==0x04)        turn_left();      //左转 else if(IO_IN43==0x08)    turn_right(); //右转 else turn_stop();    //停止 while(IO_IN43 != 0x00);  //等待左右平衡 turn_stop();    }    2、控制代码 DSP通过UART口向云台解码器发送代码,从而实现相应运转功能。 Up:    FF 01 00 08 00 20 29                  down:   FF 01 00 10 00 20 31                     left: FF 01 00 04 20 00 25  right: FF 01 00 02 20 00 23 stop: FF 01 00 00 00 00 01 void turn_up(void) { unsigned int ting1[1]={0xff},ting2[1]={0x01},ting3[1]={0x00},ting4[1]={0x08}, ting5[1]={0x00},ting6[1]={0x20},ting7[1]={0x29}; Myuart_Send(MyUart, LENGTH, ting1);delay(); Myuart_Send(MyUart, LENGTH, ting2);delay(); Myuart_Send(MyUart, LENGTH, ting3);delay(); Myuart_Send(MyUart, LENGTH, ting4);delay(); Myuart_Send(MyUart, LENGTH, ting5);delay(); Myuart_Send(MyUart, LENGTH, ting6);delay(); Myuart_Send(MyUart, LENGTH, ting7);delay(); } void turn_down(void) { unsigned int hui1[1]={0xff},hui2[1]={0x01},hui3[1]={0x00},hui4[1]={0x10}, hui5[1]={0x00},hui6[1]={0x20},hui7[1]={0x31}; Myuart_Send(MyUart, LENGTH, hui1); Myuart_Send(MyUart, LENGTH, hui2); Myuart_Send(MyUart, LENGTH, hui3); Myuart_Send(MyUart, LENGTH, hui4); Myuart_Send(MyUart, LENGTH, hui5); Myuart_Send(MyUart, LENGTH, hui6); Myuart_Send(MyUart, LENGTH, hui7); } void turn_left(void) { unsigned int guo1[1]={0xff},guo2[1]={0x01},guo3[1]={0x00},guo4[1]={0x04}, guo5[1]={0x20},guo6[1]={0x00},guo7[1]={0x25}; Myuart_Send(MyUart, LENGTH, guo1); Myuart_Send(MyUart, LENGTH, guo2); Myuart_Send(MyUart, LENGTH, guo3); Myuart_Send(MyUart, LENGTH, guo4); Myuart_Send(MyUart, LENGTH, guo5); Myuart_Send(MyUart, LENGTH, guo6); Myuart_Send(MyUart, LENGTH, guo7); } void turn_right(void) { unsigned int cheng1[1]={0xff},cheng2[1]={0x01},cheng3[1]={0x00},cheng4[1]={0x02}, cheng5[1]={0x20},cheng6[1]={0x00},cheng7[1]={0x23}; Myuart_Send(MyUart, LENGTH, cheng1); Myuart_Send(MyUart, LENGTH, cheng2); Myuart_Send(MyUart, LENGTH, cheng3); Myuart_Send(MyUart, LENGTH, cheng4); Myuart_Send(MyUart, LENGTH, cheng5); Myuart_Send(MyUart, LENGTH, cheng6); Myuart_Send(MyUart, LENGTH, cheng7); } void turn_stop(void) { unsigned int yu1[1]={0xff},yu2[1]={0x01},yu3[1]={0x00},yu4[1]={0x00}, yu5[1]={0x00},yu6[1]={0x00},yu7[1]={0x01}; Myuart_Send(MyUart, LENGTH, yu1); Myuart_Send(MyUart, LENGTH, yu2); Myuart_Send(MyUart, LENGTH, yu3); Myuart_Send(MyUart, LENGTH, yu4); Myuart_Send(MyUart, LENGTH, yu5); Myuart_Send(MyUart, LENGTH, yu6); Myuart_Send(MyUart, LENGTH, yu7); 3、主程序 /*包含头文件*/ #include #include #include #include #include #include #include #include #include "UART.h" #include "type.h" #include "emif.h" #define LENGTH 1  //设置数组长度 /* Function/ISR prototypes */ extern void VECSTART(void); interrupt void UartIsr(void); interrupt void Timer0Isr(void); /*声明控制云台的命令代码函数*/ void turn_up(void); void turn_down(void); void turn_left(void); void turn_right(void); void turn_stop(void); /* Define receiver data array */ unsigned int ReceivData[LENGTH],shu[1]={0x36},ming[1]={0x15}; HANDLE    MyUart; Uint16 EventId0;         // 定时器0所对应的事件ID号 BOOL PctoDsp = False; #define  IODIR      (*(volatile ioport Uint16*)(0x3400)) #define  IODATA     (*(volatile ioport Uint16*)(0x3401)) Uint16 temp,IO_IN21,IO_IN43; /* Create a TIMER_Handle object for use with TIMER_open */ GPT_Handle     hGpt; Uint16 Counter; Uint16 i, j; Uint16 DataCount; Uint16     Temp=0; GPT_Config  MyGptConfig = { 0,                             //Emulation management register 0,                            //GPIO interrupt control register 0,                            //GPIO enable register 0,                            //GPIO direction register 0,                            //GPIO data register //0xC4B4,                     //Timer period register 1 //0x4,                        //Timer period register 2 0x56C4,                     //Timer period register 1        (主频为300MHz) 0x0003,                        //Timer period register 2 0,                            //Timer period register 3 0,                             //Timer period register 4 0x0044, 0x0044, 0     }; void main(void) { /* Initialize CSL library - This is REQUIRED !!! */ CSL_init(); /* Set IVPH/IVPD to start of interrupt vector table */ IRQ_setVecs((Uint32)(&VECSTART)<<1); /* Config PLL */ PLL_setFreq(1,        // PLL mode 0xF,         // Multiply factor, Valid values are (multiply by 10) 0,        // Sysclk 0 Divide Down 1,        // Sysclk1 Divider 150MHz 3,        // Sysclk2 Divider 75MHz 20ns 3,        // Sysclk3 Divider 0);        // CLKOUT3(DSP core clock) divider 300MHz /* Config EMIF interface for UART register access */ Emif_Config(); /* Clear receiver data structure */ for(i=0; i=LENGTH) { DataCount = 0;//在此行设置断点 PctoDsp = True; } } /********************************************************************/ /*    函数名:        Timer0Isr()                                         */ /*     功能:        当定时时间到,发送一个命令字符并且字符发送计数器加1    */ /********************************************************************/ interrupt void Timer0Isr(void) { uart_write_reg(UartChannel,thr,*SendDataPtr++);//在此行设置断点 Counter++; } /****************************************************************************************************/ //    No    more /****************************************************************************************************/ void turn_up(void) { unsigned int ting1[1]={0xff},ting2[1]={0x01},ting3[1]={0x00},ting4[1]={0x08}, ting5[1]={0x00},ting6[1]={0x20},ting7[1]={0x29}; Myuart_Send(MyUart, LENGTH, ting1);delay(); Myuart_Send(MyUart, LENGTH, ting2);delay(); Myuart_Send(MyUart, LENGTH, ting3);delay(); Myuart_Send(MyUart, LENGTH, ting4);delay(); Myuart_Send(MyUart, LENGTH, ting5);delay(); Myuart_Send(MyUart, LENGTH, ting6);delay(); Myuart_Send(MyUart, LENGTH, ting7);delay(); } void turn_down(void) { unsigned int hui1[1]={0xff},hui2[1]={0x01},hui3[1]={0x00},hui4[1]={0x10}, hui5[1]={0x00},hui6[1]={0x20},hui7[1]={0x31}; Myuart_Send(MyUart, LENGTH, hui1); Myuart_Send(MyUart, LENGTH, hui2); Myuart_Send(MyUart, LENGTH, hui3); Myuart_Send(MyUart, LENGTH, hui4); Myuart_Send(MyUart, LENGTH, hui5); Myuart_Send(MyUart, LENGTH, hui6); Myuart_Send(MyUart, LENGTH, hui7); } void turn_left(void) { unsigned int guo1[1]={0xff},guo2[1]={0x01},guo3[1]={0x00},guo4[1]={0x04}, guo5[1]={0x20},guo6[1]={0x00},guo7[1]={0x25}; Myuart_Send(MyUart, LENGTH, guo1); Myuart_Send(MyUart, LENGTH, guo2); Myuart_Send(MyUart, LENGTH, guo3); Myuart_Send(MyUart, LENGTH, guo4); Myuart_Send(MyUart, LENGTH, guo5); Myuart_Send(MyUart, LENGTH, guo6); Myuart_Send(MyUart, LENGTH, guo7); } void turn_right(void) { unsigned int cheng1[1]={0xff},cheng2[1]={0x01},cheng3[1]={0x00},cheng4[1]={0x02}, cheng5[1]={0x20},cheng6[1]={0x00},cheng7[1]={0x23}; Myuart_Send(MyUart, LENGTH, cheng1); Myuart_Send(MyUart, LENGTH, cheng2); Myuart_Send(MyUart, LENGTH, cheng3); Myuart_Send(MyUart, LENGTH, cheng4); Myuart_Send(MyUart, LENGTH, cheng5); Myuart_Send(MyUart, LENGTH, cheng6); Myuart_Send(MyUart, LENGTH, cheng7); } void turn_stop(void) { unsigned int yu1[1]={0xff},yu2[1]={0x01},yu3[1]={0x00},yu4[1]={0x00}, yu5[1]={0x00},yu6[1]={0x00},yu7[1]={0x01}; Myuart_Send(MyUart, LENGTH, yu1); Myuart_Send(MyUart, LENGTH, yu2); Myuart_Send(MyUart, LENGTH, yu3); Myuart_Send(MyUart, LENGTH, yu4); Myuart_Send(MyUart, LENGTH, yu5); Myuart_Send(MyUart, LENGTH, yu6); Myuart_Send(MyUart, LENGTH, yu7); } 七、实习心得 在为期两周的实习过程中,我学到了许多书本上学不到的知识,本以为十分枯燥的设计过程却让我得到了很多乐趣,同时也为我今后的进一步学习奠定了基础。 当老师布置完题目后,由于对需要掌握的知识还不是十分理解,于是我通过看教材和查资料等方式掌握了一些关于DSP的基本知识,经过几天的编程和调试,最终成功地完成了整个系统的设计。 实习让我了解到DSP的实际用途并认识到DSP在实际中是非常重要的,在实习的过程中不但让我复习了一些已经有些淡忘的DSP知识还熟练了DSP在实际中的操作。 在实习刚开始时老师让我们拿出一部分时间熟悉CCS软件的基本操作并选定题目确定实习目的,在学习过程中我们遇到不懂的问题我们可以自己查找资料解决问题,这样锻炼了我们的自学能力。当遇到了我们自己解决不了的问题老师会尽快的为我们解决。 本次实习使我把学到的理论知识和实际的硬件相结合,对DSP这门课程有了新的理解和认识,这对于我今后的学习会有事半功倍的效果。非常感谢本次实习给了我这样一个锻炼我的机会,在此也感谢老师对我的指导! 八、参考文献 王春梅,孙晓波 编著《TMS320C55x DSP原理及应用》  C5502实验箱实验指导书
本文档为【DSP实习报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_792768
暂无简介~
格式:doc
大小:56KB
软件:Word
页数:0
分类:
上传时间:2019-09-11
浏览量:25