您好,欢迎来到九壹网。
搜索
您的当前位置:首页TMS320F281x 课后作业参

TMS320F281x 课后作业参

来源:九壹网
TMS320F281x 课后作业参 修订@20140114.doc

教材:《TMS320F281x DSP原理及应用技术》 韩丰田 编著 清华大学出版社

课后作业参 By马钧华

Dated 2013-1-8 修订 上次修订:@2014-1-9

注:第九、十、十一章的内容,学生不要求完成。

目录

目录 .................................................................................................................................................. 1

P14 第一章 绪论 习题与思考题 ....................................................... 1 P.45 第二章 系统控制及中断 习题与思考题 .............................................. 3 P.69 第三章 存储器及外部接口 习题与思考题 ................................................ 5 P.97 第四章 串行通信接口 习题与思考题 .................................................. 7 P124 第五章 串行外设接口 习题与思考题 ................................................. 9 P175 第六章 增强型CAN控制器 习题与思考题 ................................................ 11 P224 第七章 事件管理器 习题与思考题 ................................................. 11 P247 第八章 AD转换模块 习题与思考题 ................................................. 13 P265 第九章 DSP系统硬件设计基础 习题与思考题 ............................................... 15 P300 第十章 TMS320C28x的软件设计 习题与思考题 ................................................ 17 P322 第十一章 无刷直流电机控制 习题与思考题 ............................................... 19

P14 第一章 绪论 习题与思考题

1. 什么是可编程DSP芯片?它有什么特点?

答:程序是需要固化在存储芯片中的。由于体积的,嵌入式应用为主的DSP芯片,一般不配置如电脑中的硬盘。可编程DSP芯片,指该DSP芯片内部带有可重复编程的存储器。在使用中常常将“编程”更加形象地称为“固化”、“烧写”。TI的C2000系列,在片内带有Flash存储器,用户可以将代码通过CCS的工具插件,将代码编程(或称烧写、固化)到Flash存储器中。这样,程序可以直接从片内的Flash存储器启动运行,单个芯片就是一个可最终运行的系统了。可以不再将存储器接口,也就是常规的地址线、数据线和控制线的3总线接口,引出到芯片外部。当然,有其他的扩展需求除外。TI的其他2个重要系列C5000和C6000,芯片内部是不带用户可编程存储器的,需要在片外提供。

2. 什么是定点DSP芯片和浮点DSP芯片?各有什么特点?

答:指硬件上的差别。看带不带浮点运算的硬件模块。定点数据处理能力是DSP的基本处理能力。C28x内核的芯片,本身是定点DSP系列,在F2833x开始才加入了浮点运算模块。虽然在C编程环境下,只要安装了浮点的算术运算库,都可以处理浮点数据。但定点DSP

第 1 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

因为没有浮点硬件的支持,是需要用更多的软件代码借助定点的算术运算单元来完成浮点的运算,效率就很低,表现为完成浮点运算需要数倍数十倍数百倍的定点数运算的时间。TI还利用IQmath库,来实现虚拟的浮点运算,即在了一个浮点数的范围后,即了他的±最大值、分辨精度后,将它移位成一个整数,再利用定点运算来实现虚拟浮点运算。运算效率是高的,但要实际浮点数的范围,有越界或损失精度的风险。实际使用起来还是不够方便的。

3. 简述TMS320C2000、TMS320C5000、TMS320C6000的特点和应用领域

答:C2000带片内Flash存储器,适合工业控制;C5000是低功耗,适合消费数字化产品;C6000则是以高性能为目标,追求更高的指令速度即更高的MIPS,当然也放弃了C2000的片内Flash和C5000的低功耗,C6000有定点和浮点子系列。

4. 简述TMS320F281x系列DSP芯片的特点以及F2812和F2810的主要区别。

答:F281x系列是C28x内核的第一代芯片,以电机及相关控制为应用对象来设计。具备了以PWM控制为特征的事件管理器EVA和EVB,带有16通道和同步转换功能的12位AD转换模块,带有3种常用的串行通讯接口即SCI、SPI、CAN。而其中的F2812带有完整的外部存储器接口,而F2810(F2811)则省去了这个接口,引脚数从176下降为128(指LQFP封装)。

5. TMS320F281x系列DSP芯片有哪些外部接口?

答:具有接口性质的外设有:事件管理器EVA、EVB;A/D转换;外部存储器接口(数据、地址和控制总线);串行通信接口SCI;串行外设接口SPI、控制器局域网CAN。还有多通道缓冲串口McBSP。

6. 简述TMS320F280x、TMS320F281x、TMS320F2833x DSP芯片各有什么特点。 答:芯片出现的时间次序是:F281x→F280x→F2833x; 在F281x之后出现,低端的是F280x(100MHz),而高端的是F2833x(浮点)。 F280x:不带存储器接口(外部扩展接口XINTF),主频降为100MHz,减小了存储器容量。 F2833x:增加了浮点运算,提供了DMA,增大了存储器容量。

这其中,281x之后,一是去掉了McBSP接口,二是对事件管理器模块的配置有了很大的变化,并在后续的芯片(2802x、2803x、2806x)中保持了这种变化。由原来统一管理的事件管理器模块,分拆成了:增强型PWM、高分辨率PWM、32位的捕获、增强的QEP通道(电路)。

7. 简述DSP控制系统的典型构成和特点。

答:仅就C2000在电机及其相关控制做出说明,可以参考教材P.14上的图1.8。 电力电子技术实现的运动控制系统的特点:

通过PWM脉宽调制技术来表现输出的;

系统的关键变量有电压、电流、位置(速度、加速度);

整个机器需要协调运作,各个运动单体需要有通讯通道连接起来; 再来看看F281x的外设配置:

事件管理器中的PWM电路,与IGBT功率模块配合进行功率控制;

事件管理器中的Qep和捕获电路,可以直接连接编码器,检测运动体的位置,微分运算可得速度,再微分可得加速度;

第 2 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

AD检测通道,可以将电流和电压传感器的模拟量转换成数字量,在DSP内部进行运算处理;

SCI接口,可以与上位计算机连接;

CAN接口,可以将多个传动控制器和主控装置组网;

SPI接口,可以扩展DSP没有的模块和功能,如DA、按键显示接口等。

C2000系列的DSP,硬件上与被控对象可以很好地对接;32位的计算内核和强大的指令执行速度,配以模块化的软件模块,为运动控制系统提供了很好的控制平台。

P.45 第二章 系统控制及中断 习题与思考题

1.简述在高速DSP芯片内部配置PLL模块的优点。

答:PLL是锁相环。PLL模块可以将内核时钟与输入时钟成一定的倍数关系。高速DSP芯片,如281x芯片,内核的时钟频率达150MHz。如果直接由片外振荡源提供150MHz的频率,因为片外布线较长,分布电容和电感的存在容易造成各种问题。设置PLL模块后,281x的片外晶振频率可降低到30MHz,容易布线。同时,利用PLL控制寄存器的灵活设置,可以配置内核频率是输入频率的0.5~5倍,分成10级,提高了系统时钟的灵活性和可靠性。

2.若CPU的时钟频率为150MHz,试计算高速外设时钟和低速外设的频率设定范围。 答:CPU时钟,又称为内核时钟SYSCLKOUT。而驱动外设是外设时钟,分高速外设时钟HSPCLK与低速外设时钟LSPCLK,外设时钟是从内核时钟分频获得。 外设时钟频率 = 150MHz/(分频系数x2) = 150MHz ~ 150MHz/14 = 150MHz ~ 10.7MHz 高速和低速外设时钟各自可设定。复位开机时,缺省为: 高速外设时钟 = 150MHz/2 = 75MHz 低速外设时钟 = 150MHz/4 = 37.5MHz

3.简述看门狗模块的工作原理。假定时钟OSCCLK的频率为30MHz,试根据时钟分频系数取值,计算看门狗定时器的计数溢出周期。

答:看门狗是一个定时器模块。当它计数溢出时,会产生看门狗复位信号复位DSP。使用时,要求正常运行的程序,在一定的时间间隔范围内清零看门狗定时器,让它不产生溢出复位。当程序出现意外错误时,看门狗定时器就会因为不能获得及时清零而产生计时溢出复位DSP。这样系统就有了自我纠正异常错误的能力。看门狗定时器按OSCCLK即PLL模块之前的输入时钟来工作的。 看门狗定时器的时钟WDCCLK = OSCCLK/512/(1 ~ ), 分频系数1~32是可配置的; 看门狗定时器是8位宽度的,8^2=256; 最大溢出周期 = 256 / (30MHz/512/) = 280ms,分频系数按=配置 最小溢出周期 = 256 / (30MHz/512/1 ) = 4.4ms, 分频系数按=1配置

4.试将CPU定时器与你熟悉的一种单片机片内定时器或定时器接口芯片(如8254)进行比较,简述二者的差异。

答:8051的片内定时器最大是16bit的(也可配置成8位的),它只能加计数,并在0xffff之后加1上溢,产生中断。所以,当需要获得一个定时周期值时,是先给它装载一个初值(=溢出值0xffff – 需要的定时周期值),溢出后要重装这个初值。C28x内核的CPU定时器则是32bit的,减计数,下溢中断,需要的周期值有对应的周期寄存器,中断后自动重装。C28x

第 3 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

的32位定时器,极大地提高了定时器的定时精度和定时长度。

5.假设CPU的时钟频率为150MHz,试根据周期寄存器和分频寄存器的取值范围,计算CPU定时器可实现的定时周期最大值。

答:CPU定时器有一个16位的预定标计数器,对CPU的内核时钟进行预分频;而CPU定时器本身是32位的,这样,可实现的定时周期最大值:

CPUTimer_Tmax = 2^16 * 2^32 / 150MHz = 1876 4998 4473 7.07 us = 18799 s = 21.7天 可见具备了足够长的定时周期。

6.试分析改变PLLCR寄存器的值时,对定时器的中断周期有什么影响。

答:C28x的内核时钟是受PLLCR(锁相环寄存器)的值的影响的。而后续的定时器和各外设中,只有看门定时器是直接取用OSCCLK而不受PLLCR的影响,其余的都受影响。 PLLCR的有效数值范围是1 ~ 10,数值越大内核时钟频率越高、周期越短。这样,定时器的周期会严格按PLLCR的数值成反比变化。如PLLCR=10时,定时器有1毫秒周期的中断,那PLLCR=1时,就是10毫秒周期中断了。

7.F281x芯片的很多引脚是复用的,结合芯片封装尺寸、引脚利用效率、功能配置等方面,讨论这些复用引脚有哪些优缺点。

答:F281x集成了众多的外设,每个外设或多或少都会有与片外的输入输出联系,即需要配置引脚。在每个应用中,实际使用的外设又会有不同,将不用的外设的引脚用于基本的简单输入输出引脚功能,即GPIO功能,就比较合理。这样,有些引脚就需要复用了。F281x的引脚复用规则是:将一种外设的功能与简单的输入输出功能复用在一起。这样提高了引脚的利用效率,进而减小了芯片的封装尺寸,这是优点。缺点,就是使用中需要配置引脚。这也不能算是缺点!

8.简述CPU级中断和外设中断的响应流程,二者的主要区别体现在哪些方面?

答:CPU的内核一般是要有稳定的架构,可以覆盖整个芯片系列。内核,包括了CPU中断,也要求相对稳定、通用。而外设的配置可根据芯片的应用对象的不同增减。在C28x的系列中,是使用外设中断扩展PIE来灵活配置外设的中断。中断是由外设发起,经过外设中断处置后再进入CPU中断流程。

中断的各个级别上,都有中断标志IF和中断许可IE的信息; 外设模块内部有标志和许可;

PIE中有标志PIEIFR和许可PIEIER; CPU有标志IFR和许可IER; 还有一个总许可INTM; “许可”=“使能” C28x,使能了PIE后,以INT1~INT12为标志的CPU中断不再具有实质意义 – 指不再提供INT1~12对应的中断向量和中断服务程序了。INTx.y(x=1~12,y=1~8)接管了INT1~12,并提供中断向量和中断服务程序。

具体流程参见P36图2.12。

9.参考2.4.5节的例程,假设改为由CPU定时器1产生中断,试编写中断初始化和中断服务程序。

答:C28x有3个CPU定时器,但只有CPUTimer0是开放给用户使用的。CPUTimer0使用

第 4 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

了PIE的中断流程的。一般选用CPUTimer0来作为定时使用。 如果强制使用CPUTimer1,将启用INT13:

#if(0) //这是使用CPUTimer0的程序段 EALLOW; PieVectTable.TINT0 = &ISRTimer0; EDIS; /*设置CPU*/ ConfigCpuTimer(&CpuTimer0, 100, 300000); StartCpuTimer0();

/*开中断*/ IER |= M_INT1; PieCtrl.PIEIER1.bit.INTx7=1; // 下面的INT13,不需要PIEIER的使能! #else //这是使用CPUTimer1的程序段,请注意差别! EALLOW; PieVectTable.XINT13 = &ISRTimer1; EDIS; /*设置CPU*/ ConfigCpuTimer(&CpuTimer1, 100, 100000); StartCpuTimer1();

/*开中断*/ IER |= M_INT13; #endif

P.69 第三章 存储器及外部接口 习题与思考题

1.如何通过软件判断内部RAM单元或外部RAM芯片是否工作正常?对于FLASH或EPROM等存储器芯片如何诊断?

答:存储单元的诊断,都是通过写入与读出的比对来判断。

判断RAM单元的工作是否正常,不论内部RAM单元或外部RAM单元,一般先写入一个值,再读出来与写入值校验。在TI的集成开发环境下,也可以使用 View → Memory,指定一个需要检查的RAM地址,键入数值,看看是否成功,即可初步判断RAM的正常与否。当然,更高级的读写速度检验,需要专门的设备。

芯片的FLASH和EPROM,需要在专门的编程器上来操作。有擦除(Flash是电擦除的,EPROM是紫外线照射清除的)、空检查、写入、校验等操作。DSP片内的Flash,用Ti的CCS中的Flash插件,就可以完成对Flash的操作和检查诊断。

2.外部扩展接口(XINTF)适合扩展哪些外设芯片?

答:XINTF是一种并行接口,有地址、数据和控制三大总线,适合扩展大容量的存储器。

第 5 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

XINTF也可以扩展并行接口的其他芯片。只是现在支持串行接口扩展的功能芯片有许多选择,引脚数少芯片尺寸小,如SPI和I2C接口的AD、DA、USB、网卡等,所以,XINTF更多地用于存储器的扩展。

3.F2812提供了3个供外设使用的片选信号,如果扩展的外设芯片超过3个,如何产生这些芯片的片选信号?

答:F2812的3个片选信号:

/XZCS0AND1:指向了一个8KW@ZONE0+8KW@ZONE1的寻址空间,适合扩展I/O,使用A0~A13地址线

/XZCS2:指向一个512KW的寻址空间,使用A0~A18地址线

/XZCS6AND7:指向一个512KW@ZONE6 + 16KW@ZONE7的寻址空间,使用A0~A18地址线

可以简单地将这三个片选信号指向3个芯片,也可以各个ZONE的地址范围,结合高位地址线分出5个的ZONE片选。

因为每个选片信号代表很大的寻址空间,完全可以使用高位的地址线来译码出更多的次片选信号,只是每个片选信号代表较小的寻找空间范围!

4.对于例3.2,分析空间2的一个读写周期包含的XTIMCLK时钟周期数;如果CPU时钟频率为150MHz,则完成一个完整的读周期需要多长的时间?

答:对照P.66上的例3.2,可知读周期的3个阶段的XTIMCLK周期数为: 建立(lead) = 3; 有效(active) = 7; 保持(trail)=3;

空间2的时钟周期加倍,即XTIMCLK的周期 = 2/150MHz

则完成一个完整的读周期需要的时间Tread=(3 + 7+1 + 3)*2/150MHz = 32/150MHz = 0.213uS

5.对于图3.10,设要求通道A、B、C、D的输出电压分别为-4V、0V、2V和4V,试编程实现4路DAC的输出同步刷新。 答:

#define VoutDAC_A (-4-(-5))*2^14/10 #define VoutDAC_B (5)*2^14/10 #define VoutDAC_C (2-(-5))*2^14/10 #define VoutDAC_D (4-(-5))*2^14/10 #define DAC_CLR GpioDataRegs.GPADAT.bit.GPIOA0 = 0 #define DAC_noCLR GpioDataRegs.GPADAT.bit.GPIOA0 = 1 #define DAC_LDAC GpioDataRegs.GPADAT.bit.GPIOA1 = 0 #define DAC_noLDAC GpioDataRegs.GPADAT.bit.GPIOA1 = 1

Uint16 *ADD_DAC_A = (Uint16 *) 0x80000; Uint16 *ADD_DAC_B = (Uint16 *) 0x80001; Uint16 *ADD_DAC_C = (Uint16 *) 0x80002; Uint16 *ADD_DAC_D = (Uint16 *) 0x80003;

//备注,事实上该芯片只使用了A0-A1参与通道译码,仅需要4个地址,而该ZONE2的地

第 6 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

址范围是512KW,所以可以有512K/4=128K组重复的地址。上面给出的是地址最小的一组。 main(void) { ....

EALLOW;

GpioMuxRegs.GPAMUX.bit.GPIOA0 = 0; //GPIO GpioMuxRegs.GPAMUX.bit.GPIOA1 = 0; //GPIO GpioMuxRegs.GPADIR.bit.GPIOA0 = 1; //Outptu GpioMuxRegs.GPADIR.bit.GPIOA1 = 1; //Outptu EDIS; DAC_CLR; //复位DAC的输出 Delay(); DAC_noCLR; //退出DAC的输出复位 DAC_noLDAC; //关闭DAC的刷新 *ADD_DAC_A = VoutDAC_A; //输出到DAC_A锁存 *ADD_DAC_B = VoutDAC_B; //输出到DAC_B锁存 *ADD_DAC_C = VoutDAC_C; //输出到DAC_C锁存 *ADD_DAC_D = VoutDAC_D; //输出到DAC_D锁存 DAC_LDAC; //在/LDAC引脚上输出一个低电平脉冲,同步刷新4路DAC的输出 delay(); DAC_noLDAC; for(;;) // {} }

P.97 第四章 串行通信接口 习题与思考题

1.与RS-232串行通讯接口相比,采用RS-485/422串行接口有何优点?

答:差别在信号电平上。RS-232C是非平衡线路,每个信号用一根线传输,接收端检测信号线与地线之间的电压差。RS-485/422是平衡线路,每个信号双线传输,即差分传输,接收端检测差分信号的电压差。理论和实践证明,差分信号的传输方式,具有抗干扰能力强,可以采用更高的波特率和长距离传输。

2.根据异步串行通讯的特点,讨论为什么异步串行通讯接口不宜选取很高的比特率。 答:异步串行通讯,各自约定波特率。在每个数据帧开始位同步,按约定的波特率分出每位的时间(即断位)进行采样。而同步串行通信,有一方提供时钟信号,波特率是“显式”提供的(异步通讯,是约定波特率,各自实现)。同步通讯,不易因为波特率的定时精度的问题,造成断位(位时间)的误差,影响信号的解析。

其实,以太网、USB、SATA等也是串行通讯,它们可以达到很高的波特率。但它们是同步串行的,编码中包含同步信息,没有因为波特率定时误差造成积累的问题。所以,编码

第 7 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

规则、信号电平等都会影响传输的可靠性。

3.串行通讯接口(如RS-232)与并行接口(如XINTF)相比,各有何特点?

答:RS-232是一种简单而普及率很高的串行接口。最简单的连接就3根线(Rxd、TxD、地线),可以全双工传输。一般使用的波特率在9600~57600bps。而DSP的XINTF是16位数据宽度、19位地址寻址的并口接口,具有速度快、容量大的特点。XINFT只适合板子内部的高速芯片的扩展。

4.设低速外设时钟LSPCLK的频率为37.5MHz,试根据波特率选择寄存器的取值计算SCI的波特率设置范围。 答:

SCI_Baud = LSPCLK / ((BSR + 1)x8) BSR的取值范围= 1 ~ (1^16-1)=1~65535

SCI_Baud_Max = 37.5MHz/(1+1)x8) = 2.34375MBps SCI_Baud_Min = 37.5MHz/( (2^16-1)+1)x8 ) = 71.5 Bps

那么,如果提高LSPCLK的频率是否可以继续提高SCI的可能的最高波特率呢?如,提高LSPCLK到150MHz,计算的波特率就可以提升4倍。但这要看SCI模块的数据手册了,是否有其他的,而不是单纯按公式来计算。事实上,SCI的实用的波特率不会超过1Mbps的。

因为SCI的波特率是需要通讯双方约定后各自实现,国际上规定了采用的波特率数据:

选用波特率要从上述数据中选择,而不是自己去取一个任意数。 由于波特率发生器的实际值会偏离上述规定值(因为整数计算的分辨率和四舍五入的原因),出现误差。一个SCI数据帧有11位(起始位+8位数据位+地址位+奇偶校验位),如接收和发送方之间有5%的波特率定时误差,在第10位就会积累到50%的位窗口误差,就会

第 8 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

出现断位和判读的错误。 5.试比较SCI模块的两种多处理器通讯协议。与双机通讯相比,实现多机通讯(如采用RS-422接口)需要在硬件设计和软件实现方面进行哪些扩展?

答:F281x的SCI模块,提供了2种多处理通讯协议。当出现多处理器时,接收方需要对无关的报文加以忽略。这里约定,发送方是先发送带有接收方地址的一个报文,随后再发送几个数据报文。接收方无条件接收地址报文,而有条件接收数据报文(如只接收地址符合的数据报文)。

空闲线多处理器模式:规定在经历了11个位时间的空闲线后的第一个报文是地址报文; 地址位多处理器模式:规定报文中带有专门的位,=1是地址报文,=0是数据报文 使用中,对多处理器需要约定他们的地址,也称节点地址。

当使用RS-232和RS-422接口协议时,只能有一个主机,其他是从机;当使用RS-485接口协议时,可以有多个主机。当然,还需要有其他协议来规范主机以防出现冲突。RS-485是半双工的。

6.如图4.14所示,编写实现两个DSP间串行通讯。要求选择RS-232接口、全双工模式、8位数据长度、波特率位9600b/s、数据接收采用中断方式。 答:略。参见实验相关程序。

P124 第五章 串行外设接口 习题与思考题

1. 假定DSP的低速外设时钟频率为37.5MHz,试从传输距离、通讯速率、应用 场合等方

面讨论SCI接口与SPI接口各有何特点。

答:SPI是串行外设接口,是用于外设的扩展。它是一种主从方式的同步串行接口,其“同步”体现在由主机方提供时钟。它适合同一线路板或近距离的板子与板子间的近距离通讯,通讯速率可以做的很高。 SCI是设备间的通讯,异步的,约定波特率各自实现。SCI经过电平转换成RS232或RS485电平后,可以适用长距离传输(RS232=15米,RS485=1K米)。SCI的通讯速率小于SPI。

2. 与外部接口(XINTF)相比,采用SPI接口扩展外设有何特点? 答:SPI与XINTF是完全不同的接口类型。SPI是串行的接口!

SPI的特点:串行,同步,主从方式,收发同时进行,主方提供时钟,1-16bit的数据报文可选,4种时钟模式。适用于板上的芯片扩展。

XINTF是并行接口,由数据线、地址线和控制线组成,适合存储器等大容量芯片的扩展。

3. 假定SPI工作于主模式,LSPCLK=75MHz,试确定SPI允许的比特率范围。 答:SPICLK = LSPCLK / (SPIBBR+1), 其中127≥SPIBBR≥3 SPICLK_Max = 75MHz/4 = 18.75MHz SPICLK_Min = 75MHz/128 = 0.586MHz

4. 针对图5.10的接口电路,编程实现每秒采集温度值一次,要求采用CPU定时器0来产

第 9 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

生1Hz的定时中断。

答:这里只写出读取的函数。在CPU0的1Hz定时中断中调用。

GPIOF3(SPISTE)用于ADT7301的选通;需要配置成普通输出引脚。

SPI需要配置成16bit方式。ADT7301的允许的时钟频率可达20MHz,据此配置波特率。

void ADT7301 (void) { GpioDataRegs.GPFDAT.bit.GPIOF3 = 0; //选通ADT7301 SpiaRegs.SPITXBUF = SpiaRegs.SPITXBUF; //虚拟输出,意在读入 while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} //等待 ADT7301_Value = SpiaRegs.SPIRXBUF; GpioDataRegs.GPFDAT.bit.GPIOF3 = 1; //放弃选通ADT7301 }

5. 通过软件定时更新DAC输出可以产生任意波形、幅值和频率的信号,该方法也称作直

接数字合成(DDS),试比较DDS方法与采用振荡器产生波形的方法(如文氏电桥正弦波振荡器)的优缺点。 答:DDS的优势是明显的: 可输出任意波形,频率、波形和赋值可精确的数字控制。当然成本较高。对于特别高频的信号,超出了DDS的能力的话,就会影响DDS生成波形的精确性。 其实,有专门的DDS芯片,不必通过DSP+DA芯片来实现DDS的功能。 而振荡器产生波形,改变频率就需要调节电容、电感和电阻的参数值。在数字化时代,劣势明显!

6. 试针对图5.13的接口电路,编程产生频率为20Hz、幅度为2V的正弦波和三角波形;

讨论如何通过软件改变周期波形的频率和赋值。 答:图5.13提供了DSP与MAX5253的SPI接口。 程序的设计思想: 将20Hz的周期50ms分成100份(或更多)即0.5ms,配置CPU定时器0按0.5ms周期中断。在中断服务程序中,对中断次数计算,并用做时间横坐标,计算出正弦波和三角波形的数值,分别在VoutA和VoutB中输出。 具体程序略。

7. 试根据MAX5253芯片的时序要求,分析与SPI接口时应如何配置SPICLK的时钟模式。 答:比较图5.14与图5.5,可以发现,上升沿有延时的时钟模式适合MAX5253芯片的时序要求。

8. 试针对某一数字信号处理或数字控制系统,简述D/A转换器的功能。

答:现代的数字控制系统,执行量已经是数字输出了,如控制电机运行的是PWM形式的输出。当然,D/A转换器的用途还是有的,如电机调速的变频电源,为了方便地用模拟指针表头指示电机运行的速度和电流等,常常有模拟量输出通道,可直接外接表头来指示。

第 10 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

P175 第六章 增强型CAN控制器 习题与思考题

1. 与串行通讯接口(SCI)相比,采用CAN总线通信接口有何特点?

答:CAN是一种现场总线协议,是一种高级的通讯协议。它包含了7层通讯模型中的物理层和数据链路层。多主方式、非破坏性总线仲裁、错误探测和管理等。其协议的复杂程度远高于SCI。

2. 比较并简述eCAN和SCI分别是如何实现多机通讯的。

答:eCAN是一种多主协议,有完备的多主机的竞争处理机制。采用CSMA/ CA = Carrier Sense Multiple Access with Collision Avoidance 的机制,让优先级高的站点继续发送数据,优先级低的站点自动取消发送尝试。采用11位/29位ID来标记优先级、地址、属性等等。

SCI则是简单的协议,是单主机协议,主机利用空闲线或地址位方式告知发送的是地址还是数据,让从机判断地址是否相符决定是否忽略后续的数据。

3. 简述CAN总线通信协议是如何保证数据通信的可靠性的。

答:CAN总线是一种最早为汽车应用而开发的。硬件上,采用专用的收发器,波形的上升下降斜率,适应电磁兼容环境要求高的场合。通讯协议中,采用CRC冗余检验和故障处理,在发生仲裁丢失和错误时自动重发。包含数据链路层,即保证数据正确地从一个节点传输到另外的节点,传输故障会被侦测到并自动重发,直到被接收方确认接收为止。

4. 结合6.5节的例程简述eCAN模块的初始化流程。 答:略。

5. 结合表6.35~表6.37,简述如何设置eCAN模块的通信波特率。

答:CAN的位时间分成4个时间段,可以设定。CAN模块直接常用CPU的系统时钟,而不是LSPCLK或KSPCLK。

CAN波特率也是预先约定的,在各自片内实现。波特率可选 50kbps、100kbps、125kbps、250kbps、500kbps和1Mbps。这点与SCI类似,与SPI不同。编码上,还约定连续若干相同位后要插入反向位,这样可以起到修正收发双方的波特率误差的目的。

6. 假定eCAN模块:(1)工作于自测试模式; (2)邮箱0用于发送数据,邮箱1用于接收数

据; (3)采用中断方式就收数据。试编程实现上述要求。 答:略。

P224 第七章 事件管理器 习题与思考题

1. 与2.2节介绍的CPU通用定时器相比,事件管理器中的通用定时器有何特点? 答:事件管理器中的通用定时器的特点是:

16位;CPU定时器是32位

计数方式:连续増、连续增减和定向增减;CPU定时器只能连续减 有比较寄存器包围,可以有比较PWM输出;CPU定时器没有此功能 可以接收来自引脚上的脉冲输入,进行计数;CPU定时器只对内部时钟计数(计时)

第 11 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

2. 对于例7.2,当高速外设时钟为75MHz时,试计算定时器1的定时周期。 答:P196上的例7.2,在T1的初始化程序中可见: EvaRegs.T1PR = 0x0200; EvaRegs.T1CON = 0x1742; 可以分解出: TMODE1-TMODE0 = 10 → 连续増计数模式 TPS2-TPS0 = 7 → 时钟预分频 1/128 TCLKS1-TCLKS0 = 0 → 时钟源HSPCLK 因此可以计算出T1的定时周期: T1 = 75MHz/128/0x0200 = 75MHz / 128 / 512 = 1.1444KHz = 873.8 us

3. 设置PWM输出引脚的方式为高电平有效和低电平有效时,对占空比的设定有什么区

别?

答:PWM输出是比较寄存器的数值与动态变化的定时器计数值比较的结果。使用高电平有效的输出方式,引脚上的占空比与比较寄存器的值成反比关系;而使用低电平的输出方式,引脚上的占空比与比较寄存器的值成正比例关系。参见P193 图7.7。

其实,PWM输出引脚还要连接后续的功放电路,而功放电路可以是低电平驱动的,这就又出现一次反转关系。

====

4. 与线性功率放大器相比,PWM功率放大器有何优点?适用于哪些场合?

答:PWM功率放大器是现代运动控制中最常用的功率放大方式。它其实是一种高频的通断控制(2KHz~20KHz),通过调节占空比,利用负载中的电感电容的滤波作用,达到调节平均值的目的。相比于线性功率放大器,PWM放大器具有高效率的特点。导通时压降小。关断时电流约为零,虽然引入了开关损坏,但总体损耗远小于线性功率放大器。线性功率放大器是利用放大器本身的压降来控制负载上的电压。

PWM的缺点也是其高频的通断,引入了高频谐波,不适合对此敏感的应用场合,如音箱设备的功率放大。

5. 与应用通用定时器产生的PWM波形相比,应用全比较单元和PWM电路产生的6路

PWM输出有何特点?

答:事件管理器的PWM比较输出,有简单比较输出,它是一路PWM;还有全比较器输出,它是3对互补即6路PWM。一路PWM适合做DAC转换器,或一路单管PWM功率放大。而互补的PWM,可以插入死区,适应电压源变流器的上下桥臂结构。全比较器的互补输出,非常适应目前常用的运动控制功率放大电路的拓扑结构。

6. 假设例7.3中的高速外设时钟频率为75MHz,试分析各路PWM信号的频率和占空比。 答:P212例7.3,T1和T2的简单比较器各输出1路PWM,T1的全比较器输出3对6路PWM。例子中的参数配置有: 已知:

T1PR = 0xFFFF;

T1CON = 0x1042;→ T1 连续増、无分频

可计算出 T1CMPR = 0x3C00;

第 12 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

T1PIN = 1;→ 低电平有效 CMPR1 = 0x0C00; CMPR2 = 0x3C00; CMPR3 = 0xFC00;

ACTRA = 0x0666=0000 0110 0110 0110b; → “10”- PWM1/3/5 高电平有效;“01”- PWM2/4/6 高电平有效 可计算出:

T1PWM和T1全比较器的频率 = 75MHz/(0xFFFF+1) = 75MHz/65536 = 1.144KHz 高电平占空比 = 0x3C00/(0xFFFF+1) = 15360/65536=23.4% 低电平占空比 = 1-23.4% = 76.6%

全比较器PWM的占空比按类似计算,略。

已知:

T2PR = 0x0FFF;

T2CON = 0x1042;→ T2 连续増、无分频 T2CMPR = 0x03C0;

T2PIN = 2; → 高电平有效 可计算出:

T2PWM的频率 = 75MHz/(0x0FFF+1) = 75MHz/4096 = 18.31KHz 高电平占空比 = (0x0FFF-0x03C0)/(0x0FFF+1) = 3135 / 4096 = 76.5% 低电平占空比 = 1-76.5%=23.5%

7. 假设采样频率为100Hz,试根据例7.4编程实现电动机的转角和转速测量与实时刷新。 答:P220上提供了Qep和T4的配置。 程序设计思想:

采样频率=100Hz,拟用CPU定时器0提供10ms的周期中断 设计CPUTomer0的中断服务程序,读取T4CNT的数值,就是转角位置; 900线/转的编码器,Qep电路4倍频后,为3600脉冲/转。 因为T4是16bit的,计数范围在0~65535,不足20转(18.20转)就会溢出。建议设立一个32位的变量,记录溢出的次数。分上溢出和下溢出即正转溢出和反转溢出,对溢出次数记录进行+1 或 -1。 可以使能T4的溢出中断,来处理溢出事件。 具体程序略。

P247 第八章 AD转换模块 习题与思考题

1. 试将F281x系列中的ADC模块与你熟悉的一种ADC芯片(如ADC0809、ADC574等)

进行比较,简述DSP芯片中集成的ADC模块有什么优点。 答:与ADC0809比较: F281x ADC0809 通道数 16 8 位数 12 8 采样保持 2 0 转换时间 最快12.5MSPS 100us=10KSPS

第 13 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

排序功能 有 无 片内的ADC模块,优点是明显的。不需要扩展,直接可用;AD的启动转换和中断可以与DSP的其他资源可以实现关联和同步。

2. 如果片内ADC模块的精度无法满足系统要求,举例说明如何扩展ADC芯片。提示:可

以通过SPI接口或外部扩展接口(XINTF)扩展串行或并行接口的ADC芯片。

答:现在F281x提供的AD模块的名义精度是12位的。实际的可用精度会低于这个指标。可以使用补偿手段加以矫正,以提高实际的可用精度。Ti给出了相关的应用手册。

在需要更高精度的AD转换时,还可以外扩ADC芯片。推荐SPI接口的ADC芯片。SPI是一种标准化的串行接口,不厂家和处理器的型号。SPI的ADC扩展,如同其他的SPI扩展,DSP为主器件。SPI接口扩展ADC芯片,DSP需要双向通讯。

3. 试针对某一数字信号处理系统或数字控制系统,简述A/D转换器的功能。

答:C2000的主要应用对象是运动控制,电机是主要的运动执行元件。电机运行中的主要的控制量就是电流、电压等,它们是以模拟量的形式存在,需要A/D转换器转换成数字量后在DSP内部进行加工。这也是C28x配置高速AD模块的理由。

4. 试比较双积分型和逐次逼近型A/D转换器的优缺点。如果待采样的模拟信号频率为

1KHz,两种类型的A/D转换器都可以选用吗? 答:略。

5. 设高速外设时钟为75MHz,试根据图8.9分析ADC时钟频率和采样脉冲宽度的设定范

围。

答:计算公式:

ADCCLK = HSPCLK / ADCLKPS / CPS

最大ADCCLK受硬件,手册已经规定为 25MHz 最小ADCCLK = 75MHz / 16 / 2 = 2.6875MHz

采样脉冲宽度是对ADCCLK的分频而来,参数ACQ_PS3=1~16 3或4+ACQ_PS3个ADCCLK时钟周期。

6. 试根据例8.5的要求,采用8.3.4节介绍的中断情形2,编程实现对电动机三相电压和三

相电流的采样与A/D转换。

答:P233例8.5。启动-停止模式下应用排序器进行A/D转换。 程序设计思路: 定时器按连续增减计数模式; T1的周期寄存器设置成25us,因为是连续增减计数模式,周期翻倍,即PWM的周期=50us。 开放T1的下溢中断T1UFINT(INT2.5)和周期中断T1PINT(INT2.3),在这两个中断服务程序中都设置软件启动AD转换(注意:EVA启动AD转换的选项中,没有同时用下溢和周期中断启动ADC排序的选项,所以,使用软件启动ADC);

在T1UFINT中启动ADC排序前还要软件复位排序器,以保证下溢中断转换I1 I2 I3; 开放ADCINT(INT1.5)的中断,中断模式2(INT_MOD_SEQ1=1),即每隔一个排序

第 14 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

结束产生ADC中断; 使用一个排序器SEQ1,启动-停止模式,MAXCONV=2; 输入通道选择:前三个指向I1 I2 I3,后三个指向 V1 V2 V3 在AD中断读取6个转换结果; 具体程序,略。

P265 第九章 DSP系统硬件设计基础 习题与思考题

1. 简述DSP应用系统的一般设计流程。 答:略。

2. 在设计DSP应用系统时,如何合理选择DSP芯片?

答:选用熟悉的芯片。不计成本时,可选用功能强大的芯片,简化软件算法。批量产品时,选用资源够用的芯片。现在,一款芯片会有多个档次的规格,如F2809、F2808、F2806、F2802、F2801,相同封装,差别在内存的大小和外设数量(SPI的数量、SCI的数量、eCAN的数量、PWM的数量),样机时选用功能全的F2809/F2808,定型时再根据实际状况裁减成低档的规格。

3. 一个DSP最小系统的硬件包含哪些部分?

答:C2000DSP系统,内置Flash存储器。它的最小硬件系统,只需外置晶振、电源和复位电路即可。

4. DSP芯片采用JTAG仿真接口有何优点?

答:JTAG接口是现代嵌入式微机芯片的标准仿真芯片。它不占用芯片的资源,适合各种引脚的芯片(相比于8051的芯片替代法,不同的引脚配置需要不同的仿真头。)。新设计的芯片无一例外地使用JTAG作为仿真接口。

5. 简述TMS320F281x芯片对电源的要求及上电/掉电次序。

答:Ti规定了芯片上电的要求:先3.3V 再 1.8V(1.9V) 再移除复位; 掉电顺序:先加入复位信号 再 移除1.8V和3.3V。

这里,复位信号的时序很重要,保证上电和掉电过程芯片的运行不出现失控状态。复位状态下DSP的引脚状态是有明确定义的。系统设计时,要求在复位的引脚状态下,系统的各项输出是处于安全的关闭状态的!

简单地使用Ti的专用电源芯片,就可以保证上述上电/掉电的时序。

6. 数码管显示主要有静态显示和动态显示两种方式,试讨论两种方式的优缺点。

答:静态显示,一个芯片对应一个数码管。简单,但需要与显示位数相同数量的驱动芯片。

动态显示,有段驱动和位驱动,通过分时使能位驱动,使每个数码管轮流点亮一小段时间。利用人眼的延时,看起来像各个数码管是同时点亮的。动态显示,所需要的芯片数少,但需要动态刷新。可以由CPU来完成动态刷新的工作。其实已有专门的动态显示芯片,使用I2C接口或SPI接口,动态刷新的劳动是由显示芯片来完成的。

7. 机械按键不可避免地存在机械抖动,简述如何通过软件实现去抖动。

答:可以通过软件延时来消抖。设计思想是:结合到系统的控制周期中去,以一定的时间间

第 15 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

隔采样按键电平。内设滤波计数,按下电平+1,松开电平-1。当计数大于一规定值就认为是有效按键,并清除计数值。这样就可以滤去抖动,防止一次按键被误读为多次按键输入了。

还是可以设计自动重复输入的功能,即长期按下一个键时,先是立刻记录一次有效按键,延时一段时间后如果检测到按键仍然被按下(滤波计数大于规定值),就可以记录为新一次的有效按键;自动重复这个过程,实现连续输入。

8. 试设计一个基于TMS320F2812的DSP应用系统。系统应包括KW的扩展SRAM、一

路RS-232通信接口、4路12位D/A转换器。 答:参见教材所配的实验板原理图。

上图:SRAM扩展

上图:RS-232 或 RS-485 或 RS422扩展

第 16 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

上图:4路SPI接口的DA扩展

9. 试针对直流电机转速控制系统,设计相应的DSP控制电路。假定采用测速发电机作为转

速反馈元件,H桥型PWM功率放大器,RS-422接口与上位机通信。 答:参见教材所配的实验板原理图。

上图:3相桥式功放电路。取用2个桥臂就可构成H桥电路。注意,MOS管都是内置续流二极管的。

P300 第十章 TMS320C28x的软件设计 习题与思考题

1. 为什么通常需要在C语言中嵌入汇编指令?

答:汇编语言与机器码是直接和唯一地对应的,生成的代码不受编译系统的影响。对一些简

第 17 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

单的硬件操作指令,直接用汇编指令效率更高。所以常常在C程序中见到少量的汇编指令。

2. 在大模式下,编译器对C程序编译后生产哪些段?这些段应放在Page0还是Page1? 答:参见CMD文件。各个段都有存放的规定。

3. 简述链接命令文件的作用,并比较从H0引导和从Flash存储器引导时,链接命令文件

有哪些不同?

答:比较RAM运行与Flash运行所对应的CMD文件,就可以看出他们的不同。一句话就是,Flash运行时,Initialized的段需要放在Flash中。

4. 为什么DSP应用系统开发完成后,用户程序需要固化至Flash或EEPROM存储器中? 答:开发过程是带仿真器运行的,程序在编译连接后可装载(Load)到RAM中。实际交付的系统,是不带仿真器的,无法用PC机来装载程序了。只有将程序代码固化到Flash中,

第 18 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

利用Bootrom中的设定,自动跳转到Flash,这样上电后就可以从Flash中启动运行了。C2000系列片内自带Flash存储器,就不需要使用外扩EEPROM了(如果存储器够用的话)。

5. 与宏定义方式相比,外设寄存器采用位域结构方法定义有什么优点?

答:C28x开始,Ti提供了位域结构的头文件。经过一些列的定义和链接,在C环境下,已经将外设的位域结构的寄存器变量链接到了指定的外设帧上面的,可以直接操作寄存器了。

6. 当系统采用C语言开发时,工程文件通常由哪些文件组成?简述其作用。 答:头文件,是由TI公司提供的,是标准的文件,用户无需修改; 初始化C文件,TI公司提供了模版函数,用户根据实际使用来配置外设,就作出修改。 用户C代码,用户设计的代码; 用户头文件,用户自定义的数据结构、变量等; CMD文件,根据板子的配置,确定片内存储器(TI规定)和片外用户扩展的存储器,以及如何装载代码段。 另一个头文件的CMD文件,将外设的位域结构的寄存器变量链接到了它们所属的外设帧了。

7. 试修改10.2节介绍的CPU定时中断例程,将工程从H0引导改为从Flash引导并加载至

片内RAM运行。 答:略。

P322 第十一章 无刷直流电机控制 习题与思考题

1. 简述在三相无刷直流电动机中转子位置传感器的作用。

2. 在三相无刷直流电动机中,电子换向器是如何工作的?电子换向器的开关管在每个开关

周期(设为360°)中导通多少度?

3. 如何根据三相霍尔信号变化来计算电机转速?是否可以只使用某一相的霍尔信号来检

测电机转速?根据11.2节的例程,分别计算两种方式下可测得的电机转速范围。 4. 无刷直流电动机与有刷直流电动机相比有何优缺点?

5. 如果要实现电机的转速闭环控制,是否需要在9.3节介绍的实验系统基础上扩展硬件?

简述转速控制系统的组成和工作原理。

6. 简述位置伺服控制系统的组成和控制程序执行流程,并讨论如何选择电流环、速度环合

位置环的采样频率。

7. 设置PWM信号引脚的输出方式为高电平有效和低电平有效时,对对占空比的设定有什

么不同?改变PWM占空比相当于改变施加到电机上的相电压,简述二者的关系。 8. 试讨论如何合理选择电机功率放大器中PWM信号的频率。提示:从PWM信号对电机

相电流噪声、功率管的开关时间和开关损耗、占空比调节的分辨率等方面进行讨论。

第 19 页 共 20 页

TMS320F281x 课后作业参 修订@20140114.doc

第 20 页 共 20 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务