版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上DSP原理及C程序开发课程设计报告题 目 秒表 学 院 专 业 班 级 姓 名 学 号 指导教师 2011 年 11 月 30 日教师评语:总分:教师签名:专心-专注-专业目录一、 课程设计任务. .3二、TMS320F2812介绍 . .44.1 特点 . .44.2 系统框图 . .54.3 TSM320F2812 时钟 .6三、F2812 SCI模块.7 5.1 SCI概述 .7 5.2 SCI 特点 .75.3 SCI CPU接口 .75.4 SCI多处理器通信 .85.5 SCI的中断 .8四、程序代码设计 . .116.1 CPU Timers的初始化配置
2、程序代码. .116.2主程序代码. . . .14五、设计总结 . . .16六、参考文献 . .17一、课程设计任务通过TMS320F2812实现秒表的功能,其功能是时间送PC显示,每1秒变化一次。二、系统分析21设计要求(1)设置DSP的TMS320F2812芯片为Emulator工作模式;(2)设置GPIO相应管脚为输入或输出模式;(3)DSP芯片外接LCD作为输出,外接n个(数目不底于3个)单按键作为输入;(4)在程序中构建汉字字模,并能够使用查找法提取。22、设计思想 通过CCS软件开发平台和相应实验箱进行程序调试DSP外设控制设备开发扩展。用独立式控键控制DSP的GPIO管脚,使
3、用DSP芯片控制LCD来显示秒表的计数数字,用其中一个按键实现LCD的清屏,其它(4个)通过两个按键控制秒表的启停。三、TMS320F2812介绍3.1 特点 采用32-位定点DSP TMS320F2812150MHz,方便实现电机控制片上存储器:FLASH: 128K X16-位SRAM: 18K X16-位Boot ROM: 4K X16-位OPT ROM: 1K X16-位其中FLASH,OPT ROM和8K X16-位SRAM受密码保护,保护用户程序。片上外设:PWM: 12路QEP: 6通道ADC: 2X8通道,12-位,80ns转换时间,03V量程SCI异步串口: 2通道McBSP
4、同步串口: 2通道SPI同步串口: 1通道 eCAN总线: 1通道 外扩SRAM,最大容量为512K X 16位,基本配置为64K X 16位 外扩RTP实时时钟+512 X 8-位EERPROM 外扩4通道,12-位分辨率 2路SCI进行收发驱动,接口标准RS232/RS422/RS485可配置 提供看门狗,电源监视,上电复位,手动复位,系统可靠,稳定 标准化的扩展总线 3.2 系统框图 全功能框图系统电路原理图如下:4.3 TSM320F2812 时钟TSM320F2812 上有多个部件需要时钟,CPU,看门狗电路,ADC,事件管理器等片上外设。F2812 的CPU时钟电路如下图所示:四、
5、TMS320F2812 SCI模块和CPU定时器模块以及串口调试器4.1 SCI概述 SCI 模块支持在CPU和其他异步外设之间的数字通讯。SCI的串口接收和发送均为双缓冲,接收和发送都有独立的使能和中断位。在全双工模式下,两者可以独立或同步运行。为了群豹数据的完整性,SCI模块检查接收数据的断点,校验位和帧错误。4.2 SCI 特点F2812的SCI具有如下特性:l 两根外部信号线引脚:SCITXD/SCIRXD l 异步串行、标准非归零(NRZ)格式l 16位波特率64K种可编程通信速率,增强型自动波特率检测硬件逻辑l 数据格式灵活l 接收数据出错检测 l 2种多处理器唤醒模式 l 半双工
6、、全双工l 双缓冲接收和发送l 发送、接收独立的中断使能和中断位l 增强型发送、接收16级FIFOl 13个8位SCI模块控制寄存器l 发送、接收可采用中断或状态标志位查询编程方式SCI模块方块图如下:4.3 SCI CPU接口SCI CPU接口如下图所示:4.4 SCI多处理器通信同一个串行线路上,一次多处理器通信:l 一个发送者(Talker)l 多个接收者(Listener)实现与一个Listener的互传l 地址字节 数据块第一个字节是地址字节,被所有Listener读取地址正确的接收器接收随后的数据;地址不正确的Listener等待下一个地址字节。l SLEEP位 所有的均置SLEE
7、P位为1,仅在检测到地址字节时才被中断当地址与软件设置地址一致时,用户程序清除SLEEP位,此时方可以接收数据字节,产生接收数据中断。识别地址字节l 空闲线模式:在地址字节前留一段静态空间没有附加地址位,数据10个, 效率比地址位模式高一般应用于典型的非多处理器的SCI通信l 地址位模式:每个字节增加一个地址附加位小块数据时更有效,数据块之间不需要等待高速传送时,程序不可避免地要加入空闲位。SCI的TX和RX控制特点l 用户选择多处理器工作模式,ADDR/IDLE MODE位,SCICCR两种模式下都可以控制SCI发送器/接收器的工作状态l 发送唤醒标志,TXWAKE位,SCICTL1l 接收
8、唤醒标志,RXWAKE位,SCIRXSTl 休眠标志,SLEEP位,SCICTL1接收步骤(1) 接收地址块时,SCI端口唤醒并申请中断读取第一帧数据,其中包括目的地址(2) 中断进入ISR,核对地址与保存在内存中的器件地址(3) 地址相符,则CPU清除SLEEP位并读块的其余数据如果不符,则退出ISR,保持SLEEP位在下一个块开始之前不接收中断。4.5 SCI的中断l SCI模块有独立的发送/接收外围中断向量l 外围中断请求可以是最高优先级,也可以是低优先级(1)由PIE控制器的优先级控制位决定(2)接收优先级 发送优先级l RX/BK INTENA(SCICTRL21)=1: (1) S
9、CI接收到完整的帧,且RXSHFSCIRXBUF RXRDY(SCIRXST6)=1,产生中断(2) 间断测试条件发生(丢失一个停止位后保持连续10个低电平) RBKDT(SCIRXST5)=1,产生中断l TX INTENA(SCICTRL20)=1:(1) SCITXBUFTXSHF TXRDY(SCICTL27)=1,产生中断l RX ERROR INTENA(SCICTRL16)=1:(1) 传送出错 RX ERROR(SCIRXST7)=1,产生中断五、程序代码设计 5.1 CPU Timers的初始化配置程序代码#include DSP28_Device.hstruct CPUTI
10、MER_VARS CpuTimer0;struct CPUTIMER_VARS CpuTimer1;struct CPUTIMER_VARS CpuTimer2;/-/ InitCpuTimers: /-/ This function initializes all three CPU timers to a known state./void InitCpuTimers(void)/ Initialize address pointers to respective timer registers:CpuTimer0.RegsAddr = &CpuTimer0Regs;CpuTimer1.R
11、egsAddr = &CpuTimer1Regs;CpuTimer2.RegsAddr = &CpuTimer2Regs;/ Initialize timer period to maximum:CpuTimer0Regs.PRD.all = 0xFFFFFFFF;CpuTimer1Regs.PRD.all = 0xFFFFFFFF;CpuTimer2Regs.PRD.all = 0xFFFFFFFF;/ Initialize pre-scale counter to divide by 1 (SYSCLKOUT):CpuTimer0Regs.TPR.all = 0;CpuTimer0Regs
12、.TPRH.all = 0;/ Make sure timers are stopped:CpuTimer0Regs.TCR.bit.TSS = 1; CpuTimer1Regs.TCR.bit.TSS = 1; CpuTimer2Regs.TCR.bit.TSS = 1; / Reload all counter registers with period values:CpuTimer0Regs.TCR.bit.TRB = 1; CpuTimer1Regs.TCR.bit.TRB = 1; CpuTimer2Regs.TCR.bit.TRB = 1; / Reset interrupt c
13、ounters:CpuTimer0.InterruptCount = 0;CpuTimer1.InterruptCount = 0;CpuTimer2.InterruptCount = 0;/-/ ConfigCpuTimer: /-/ This function initializes the selected timer to the period specified/ by the Freq and Period parameters. The Freq is entered as MHz/ and the period in uSeconds. The timer is held in
14、 the stopped state/ after configuration./void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;/ Initialize timer period:Timer-CPUFreqInMHz = Freq;Timer-PeriodInUSec = Period;temp = (long) (Freq * Period);Timer-RegsAddr-PRD.all = temp;/ Set pre-scale counter to divide
15、 by 1 (SYSCLKOUT):Timer-RegsAddr-TPR.all = 0;Timer-RegsAddr-TPRH.all = 0;/ Initialize timer control register:Timer-RegsAddr-TCR.bit.POL = 0; / 0 = Pulse LowTimer-RegsAddr-TCR.bit.TOG =0; / 0 = No Toggle, POL bit defines actionTimer-RegsAddr-TCR.bit.TSS = 1; / 1 = Stop timer, 0 = Start/Restart Timer
16、Timer-RegsAddr-TCR.bit.TRB = 1; / 1 = reload timerTimer-RegsAddr-TCR.bit.FRCEN = 0; / Force output enable (not used)Timer-RegsAddr-TCR.bit.PWIDTH = 7; / 7+1 = 8 SYSCLKOUT cycle pulse width Timer-RegsAddr-TCR.bit.SOFT = 1;Timer-RegsAddr-TCR.bit.FREE = 1; / Timer Free RunTimer-RegsAddr-TCR.bit.TIE = 1
17、; / 0 = Disable/ 1 = Enable Timer Interrupt/ Reset interrupt counter:Timer-InterruptCount = 0;/=/ No more.5.2主程序代码#include #include DSP28_Device.hunsigned int Rbuf100, Tbuf100;unsigned int Ri = 0;unsigned int Ti = 0;unsigned int Tn = 0;/=unsigned char title = DSP课程设计-秒表 rn;unsigned char nunm = rn;un
18、signed int cnt = 0;interrupt void cpu_timer0_isr();/void main(void)int16 i;int16 flag=0;/*初始化系统*/InitSysCtrl();/*关中断*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中断*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable();EALLOW;PieVectTable.TINT0 = &cpu_timer0_isr;EDIS;/*初始化SCIA寄存器*/ InitSci(); InitCpuTimers();
19、 ConfigCpuTimer(&CpuTimer0,150,); StartCpuTimer0(); IER|=M_INT1; PieCtrl.PIEIER1.bit.INTx7 = 1; EINT; ERTM; /*开中断*/EINT;/ Enable Global interrupt INTMERTM;/ Enable Global realtime interrupt DBGMfor(;)if(flag=0)for(i=0; titlei!=0; i+)Tbufi = titlei;Tn = i;Ti = 0;flag = 1;if(flag=2)for(i=0; nunmi!=0; i+)Tbufi = nunmi;Tn = i;Ti = 0;flag = 3;if(flag=4)/if(SciaTx_Ready() = 1) & (Tn!=0)SciaRegs.SCITXBUF = TbufTi;Ti += 1;Tn -= 1;if(Tn=0)Ti = 0;flag += 1;if(SciaRx_Ready() = 1)RbufRi = SciaRegs.SCIRXBUF.all;if(RbufRi=0x0a)for(i=0; i TBufint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北省武穴市高二历史下册期末考试测试卷含答案(预热题)
- 2026中国液体化工物流行业对外贸易壁垒与应对策略报告
- 2026能源互联网技术发展和应用市场前景研究评估
- 2026中国老年健康饮料配方研发与适老化设计报告
- 2026实木家居产品生命周期管理与库存优化分析
- 2026电竞产业生态链整合与IP商业化运营模式创新报告
- 2026神经形态芯片架构创新与应用场景拓展报告
- 2026预制菜产业链价值分布与餐饮渠道下沉市场机会评估报告
- 2026跨境电商速卖通卖家服务行业市场现状供给配置分析及投资配置规划发展研究报告
- 2026中国芯片设计行业技术突破与市场前景预测报告
- MT/T 1325-2025矿用设备再制造刮板输送机中部槽
- 2026年新高考I卷数学真题
- 2026年小学信息技术教师业务考试题库(附答案)
- 老年人多重用药评估与管理专家共识2026
- 护士执业注册健康体检表
- 2025福建新华发行(集团)有限责任公司南平地区会计岗位招聘笔试备考题库及答案解析
- 2024-2025学年度第二学期期末考试试卷 高一历史
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
- 特殊工艺过程管理制度
- 大二python考试试题及答案
- 2024年4月自考00015《英语(二)》真题及答案
评论
0/150
提交评论