DSP复习
1. DSP概述
DSP–>Digital Signal Processor
增强了运算能力,针对数字信号处理做了结构、指令优化和功能增强。
1.1 特点
-
采用流水线操作:在不提高时钟频率的条件下减少了每条指令的执行时间;
-
哈佛结构:数据总线和程序总线分离,比传统处理器的冯·诺依曼结构有更高的指令执行速度;
-
独立的硬件乘法器和加法器:同一时钟周期内可以完成相乘、累加两个运算,适用于滤波、相关、矩阵运算等需要大量乘法累加运算的场合。
![image-20240629215026247](https://img-blog.csdnimg.cn/img_convert/f3d3f7a2c3b90108d127e691b7bc911e.png)
-
零开销循环:处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。
-
专门的寻址方式:模块(循环)寻址(对实现数字滤波器延时线很有用)
位倒序寻址(间接寻址)(对FFT很有用)
-
优化的精简指令集
1.2 分类
-
按数据格式分:定点型、浮点型(F28335属于定点型)
-
按用途分:通用、专用(C2000、C5000、C6000)
![image-20240629220141089](https://img-blog.csdnimg.cn/img_convert/5ba684799c3861b06bbd47fad4e6cbe9.png)
1.3 发展
1980年,日本NEC公司推出第一个具有乘法器的商用DSP芯片PD7720
2. TMS320F28335功能结构
2.1 概述
-
CPU
- 32位定点CPU @150MHz
- 单精度FPU @150MHz
- 硬件乘加器
-
内存
- SARAM @34KW
- Flash @256KW
-
外设
- 控制类:I/O、定时器、ePWM、DMA
- 测量类:eCAP,正交编码器,ADC
- 通讯类:UART、SPI、I2C、McBsp、eCAN
![image-20240629222435713](https://img-blog.csdnimg.cn/img_convert/e1c2473cf02f1a1b4e5ff84b7d03aa8e.png)
![image-20240629222535534](https://img-blog.csdnimg.cn/img_convert/94dde706dec68798203e2bb96217f0b4.png)
四个32位CPU寄存器
![image-20240629222809532](https://img-blog.csdnimg.cn/img_convert/38175b7cf5038b52f8f3183b6d01a472.png)
2.2 八级流水线
取指1(F1)、取指2(F2)、译码1(D1)、译码2(D2)
读1(R1)、读2(R2)、执行(E)、写(W)
一条指令一旦到达D2阶段,该指令将一直执行完毕
![image-20240630160500415](https://img-blog.csdnimg.cn/img_convert/2b9e779d5a35ea37fc72b6cc44defdaf.png)
2.3 总线结构
程序读总线、数据读总线、数据写总线(程序写数据总线与数据写数据总线共用)(程序写地址总线与程序读地址总线共用)
各类总线又分为地址总线和数据总线,只有程序地址总线是22位宽(寻址空间4M),其余都是32位宽(寻址空间4G)
![image-20240630163247520](https://img-blog.csdnimg.cn/img_convert/c80df37e1f3397afe97838a72360185b.png)
2.4 存储空间
![image-20240630170849987](https://img-blog.csdnimg.cn/img_convert/370597b61f4e8cd87aa5d79f2744357c.png)
受保护区域:FLASH(128位CSM密码区)、L0~L3 SARAM、OTP
3. 时钟与系统控制
3.1 锁相环PLL
![image-20240630183735454](https://img-blog.csdnimg.cn/img_convert/3d878eec0ded81216d23ee6087deb65c.png)
功能:接收外部输入时钟,倍频后产生CPU时钟和系统时钟
3.2 看门狗Watchdog
功能:防止系统死机,确保程序正常运行
工作原理:看门狗模块使能时,其中增计数器开始增计数。计数器达到最大值时,产生复位脉冲信号使器件复位。通过“喂狗”指令在计数器达到最大值之前将其清零,使看门狗不产生复位信号。若程序跑飞或死机,“喂狗”指令不能在看门狗计数周期内得到执行,则计数器溢出产生复位信号使器件复位,从而使器件恢复正常运行。
工作时基为振荡器时钟OSCCLK(未经PLL倍频)
DSP复位时,看门狗默认开启
喂狗指令:向WDKEY寄存器先写入
0x55
,再写入0xAA
3.3 CPU定时器
3个32位CPU定时器,TIMER0/1/2,用户程序可使用TIMER0/1,TIMER2为DSP/BIOS保留。减计数
![image-20240630185258954](https://img-blog.csdnimg.cn/img_convert/f67090823d2ce792f0d4311c7afd04a8.png)
CPU-TIMER0 产生PIE中断,CPU-TIMER1/2直接产生CPU级中断
![image-20240630190046362](https://img-blog.csdnimg.cn/img_convert/fd7b4956f77195f7b534ea91c233ec07.png)
4. DSP程序结构
4.1 程序文件
-
源程序文件:C/C++、汇编语言文件,功能实现代码;
-
头文件:对基本的数据类型、变量类型进行定义,对常用的数值、指令等进行宏定义,对外部变量、函数进行声明;
-
cmd文件:对程序和数据存储空间进行分配;
- Memory:用来标示实际存在目标系统中且可被使用的存储器范围,每个存储器范围具有名字,起始地址和长度。
PAGE0规定程序存储器,PAGE1规定数据存储器
- Sections :描述输入段怎样被组合到输出段内;在可执行程序内定义输出段;规定在存储器内何处放置输出段。
.cinit
存放已明确初始化的全局/静态变量的初始值.text
可执行代码和常量(立即数).econst
已明确初始化的字符串、全局/静态常量(const声明).ebss
存放未初始化的全局/静态变量;存放已明确初始化的全局/静态变量,程序复位后从.cinit中将初始值拷贝过来.stack
定义栈空间,用于现场保存、存放局部变量 - Memory:用来标示实际存在目标系统中且可被使用的存储器范围,每个存储器范围具有名字,起始地址和长度。
-
运行支持库:C编译器所支持的ANSI标准运行支持函数、I/O函数、编译器公用程序函数和数学运算等。
![image-20240630193248047](https://img-blog.csdnimg.cn/img_convert/bc7f1745a6fe08fa9cfafb86de667e7b.png)
5. GPIO
5.1 GPIO概述
-
88个I/O口:A组GPIO0–31(32个),B组GPIO32–63(32个),C组GPIO64–87(24个)
-
每个I/O口最多复用为3个外设功能
-
复位默认设为I/O功能输入口
-
支持8个外部中断功能
-
可提供4mA驱动电流
5.2 相关寄存器功能
以A组I/O为例
GPAMUX1
GPIOA(0~15)功能选择;GPAMUX2
GPIOA(16~31)功能选择
GPADIR
GPIOA方向选择(输入/输出)
GPAQSEL1
、GPAQSEL2
GPIOA输入限制模式:SYSCLKOUT同步、采样窗限制、异步输入
GPAPUD
GPIOA上拉功能配置
GPADAT
GPIOA读写寄存器(一般情况下,GPxDAT作为GPIO输入寄存器使用,用于读取I/O引脚的电
平状态)
GPASET
拉高
GPACLEAR
拉低
GPATOGGLE
翻转
6. 中断管理控制
6.1 中断概述
![image-20240630213502105](https://img-blog.csdnimg.cn/img_convert/655ec06288f1eaf8ab5dcf1a0d6f7b30.png)
18个CPU级中断,2个不可屏蔽中断,16个可屏蔽中断
6.2 三级中断控制
CPU级
![image-20240630213812792](https://img-blog.csdnimg.cn/img_convert/7e553269e5638e043a16ab49f404321c.png)
中断标志寄存器(IFR):系统复位自动清0,响应硬件中断自动清0,亦可用户手动清0
中断使能寄存器(IER):系统复位默认清0,响应硬件中断自动清0,亦可用户手动清0
全局中断使能位INTM
PIE级
PIE可管理96个中断,8个/组×12组,对应CPU级INT1~INT12,F28335中只使用了58个中断资源
![image-20240630214632899](https://img-blog.csdnimg.cn/img_convert/7c945470ca74e0dc3326db3e7b628330.png)
PIEACKx位为0时,允许INTx组向CPU发送中断请求;
PIEIFRx.y和PIEIERx.y同时为1时,PIE自动将PIEACKx置1,同时向CPU发送INTx组的中断请求;
PIEACKx置1后,禁止INTx组的后续中断请求,需软件写1清0;
外设级
6.3 中断处理过程
![image-20240630214917399](https://img-blog.csdnimg.cn/img_convert/b1857623ca09b65e6162f01aea7645df.png)
![image-20240630215222790](https://img-blog.csdnimg.cn/img_convert/9724bf963af3cc6f139a96bc780734f8.png)
![image-20240630215544435](https://img-blog.csdnimg.cn/img_convert/13dd4dd4ec073a555be5084b7ff6fdd5.png)
6.4 补充
中断向量与中断向量表
中断向量:中断服务程序的入口地址,CPU响应中断后需获取中断向量来开始执行中断服
务程序;
中断向量表:存储中断向量的地址空间,占用256×16的SARAM区
中断嵌套
![image-20240630220440767](https://img-blog.csdnimg.cn/img_convert/05954b75a95ea486907222f3f3d250fd.png)
外部中断
![image-20240630220644064](https://img-blog.csdnimg.cn/img_convert/ee1ab8378cb8ffee962ba8002084bf0c.png)
![image-20240630220743133](https://img-blog.csdnimg.cn/img_convert/bd20116e0e21cfdae2cc43ff28217b9e.png)
7. 增强型脉宽调制器ePWM
7.1 概述
拥有6个相同的ePWM模块,每个模块可产生A、B两路PWM输出EPWMA
EPWMB
和两路ADC启动脉冲信号SOCA
SOCB
,多个ePWM模块可级联同步工作;
基本用途:定时,PWM驱动,启动ADC(控制采样率)
周期和频率可控的16位时间基准计数器
7.2 结构组成
每个ePWM模块包含7个子模块:
![image-20240702111900898](https://img-blog.csdnimg.cn/img_convert/f96e21679f2f334f33120e256ed13424.png)
![image-20240702112457848](https://img-blog.csdnimg.cn/img_convert/c3e0d9bdf3a6bab6401927bcb4b341f8.png)
![image-20240702112757838](https://img-blog.csdnimg.cn/img_convert/8b672099731c04992eddf6663730aa75.png)
AQ动作触发事件优先级:发生较晚的事件具有较高的优先级,软件强制事件优先级最高。
7.3 PWM波形发生示例
增减计数方式下
![image-20240702114721187](https://img-blog.csdnimg.cn/img_convert/1c25b4c3f7b6f52693075a4d463bacd2.png)
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;
![image-20240702114953185](https://img-blog.csdnimg.cn/img_convert/f752daf9c936b6916e5cf8362b5885c5.png)
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;
![image-20240702115054231](https://img-blog.csdnimg.cn/img_convert/32bcc234f43ac38fea79cc7da4b583dc.png)
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CBD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.PRD = AQ_SET;
增计数方式下
![image-20240702115439908](https://img-blog.csdnimg.cn/img_convert/2eacb7dce519e4b1ede21fcacaa911ce.png)
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
![image-20240702115619681](https://img-blog.csdnimg.cn/img_convert/17c8e8291368004207d70daaa58a5e70.png)
EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLB.bit.PRD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;
![image-20240702115743607](https://img-blog.csdnimg.cn/img_convert/88966e44d2b227d8a23ea16e8c06a91f.png)
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CBU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_TOGGLE;
7.4 死区发生(DB)子模块
针对传统需要死区控制的应用,通常选择AQ输出的EPWMxA作为DB的输入,产生一对带死区的EPWMxA和EPWMxB。
![image-20240702120321898](https://img-blog.csdnimg.cn/img_convert/6e77b9cd784c4d65c9bcc77538a974b2.png)
![image-20240702120714863](https://img-blog.csdnimg.cn/img_convert/b88bb309fcebd52e4f959b11084dff06.png)
7.5 PWM斩波(PC)子模块
斩波频率可编程;第一个脉冲宽度独立可编程;第二个以后的脉冲占空比可编程。
![image-20240702120923295](https://img-blog.csdnimg.cn/img_convert/9d9c96bd74f73650da5e9c8fcdace83e.png)
7.6 阻断控制(TZ)子模块
-
DSP上有6个故障阻断输入引脚TZ1~TZ6,可独立用于检测外部故障信号;
-
阻断动作方式:置高、拉低、高阻、不动作;
-
阻断输入TZn的阻断方式可独立配置为单次阻断(OSHT)和周期阻断(CBC):
- 单次阻断(one-shot trip):单次故障触发、阻断动作持续,需软件清除故障条件,用于主要的短路故障和过流故障保护;
- 周期阻断(cycle-by-cycle tripping):故障条件周期检测、周期动作,故障消失时在新的PWM周期自动清除,用于限流保护。
8. 增强型捕获模块eCAP
8.1 CAP模式
基本原理:检测外部引脚边沿(捕获边沿);保存捕获边沿发生时的计数器值。
用途:事件间隔时间测量;脉宽、周期(频率)测量;转速测量。
具有6个相同的eCAP模块,eCAP1-eCAP6,对应有6个捕获输入引脚eCAP1-eCAP6(每个捕获模块有一个捕获输入引脚),支持同步工作模式。
32bit时间戳计数器;
计数时钟:SYSCLKOUT
4个事件捕获单元CAP1~CAP4,有独立的时间戳捕获寄存器CAP1-CAP4(32bit),用于记录捕获引脚发生指定事件时的时间戳(计数器值);
绝对时间戳捕获和差分时间戳捕获
单次捕获与连续捕获
不使用CAP功能时,eCAP模块可配置为APWM工作模式,产生一路非对称PWM波
![image-20240702123815480](https://img-blog.csdnimg.cn/img_convert/d04d4dd82774eac89f484b9827d1112e.png)
连续捕获
CAP1~CAP4依次连续循环捕获;每发生一次捕获事件,TSCTR值被装载到相应的捕获寄存器CAPx中,Mod4计数器加1;Mod4循环计数过程为0→1→2→3→0→…,依次控制捕获顺序为CAP1→CAP2→CAP3→CAP4→CAP1→…
![image-20240702124046617](https://img-blog.csdnimg.cn/img_convert/28d53d13d4826a43ed7a09d04539bd67.png)
单次捕获
CAP1~CAP4依次捕获,每发生一次捕获事件, TSCTR值被装载到相应的捕获寄存器CAPx中,Mod4计数器加1;当Mod4计数器=[STOP_WRAP]且发生捕获事件后,Mod4计数器值和所有捕获寄存器值被冻结,完成一轮顺序捕获,且禁止后续捕获。软件重新使能捕获([RE-ARM] = 1)时,允许eCAP模块的新一轮顺序捕获,Mod4计数器自动清0并重新开始计数。
![image-20240702124410331](https://img-blog.csdnimg.cn/img_convert/362357c077a5122a92384ba0149c648f.png)
绝对时间戳捕获
发生捕获事件CAPx时,TSCTR值被装载入捕获寄存器CAPx中,TSCTR不复位为0而继续计数。
捕获寄存器装载的时间戳为绝对时间,两个事件的时间差需要软件读取捕获寄存器值并相减得到。
差分时间戳捕获
发生捕获事件CAPx时, TSCTR值被装载入捕获寄存器CAPx中,TSCTR复位为0并继续计数。
捕获寄存器装载的时间戳为两事件的时间差(差分时间),软件读取捕获寄存器值可直接得到两事件的时间差。
![image-20240702125040362](https://img-blog.csdnimg.cn/img_convert/f29b9e56d01202147dad94336f7f1dc6.png)
![image-20240702125055750](https://img-blog.csdnimg.cn/img_convert/ede17b4b4110141dee68fb7188489bda.png)
8.2 APWM模式
![image-20240702123815480](https://img-blog.csdnimg.cn/img_convert/d04d4dd82774eac89f484b9827d1112e.png)
分辨率32位
比较寄存器ACMP和周期寄存器APRD均带影子寄存器,可工作在双缓冲模式
影子寄存器装载到工作寄存器的条件:立即、CTR=APRD
8.3 中断事件
![image-20240702125639875](https://img-blog.csdnimg.cn/img_convert/bb793c3da90ff079044e448a02726694.png)
9. ADC
9.1 概述
- 单个ADC核,流水线结构(pipeline),12位分辨率
- 最快采样速率为12.5M
SPS
(sample per second)(工作在25MHz时钟下,ADC采样率为25MHz÷2=12.5MHz,采样时间最少为一个ADC时钟周期,保持时间为一个ADC时钟周期) - 16个模拟输入通道(模拟电压输入范围:0~3V),(8个通道+多路复用器+1个S/H电路)×2组
- 两种采样模式:同步、顺序
- 通道的转换顺序可由自动排序器决定,一次可执行16个通道的自动转换,每次转换亦可编程选择任何通道
- 两个独立的8通道排序器SEQ1、SEQ2:双排序模式、级联单排序模式
- 16个独立的转换结果寄存器,可单独访问,双映射,支持DMA访问
- 多个SOC(start-of-conversion)触发源:软件直接启动、EPWM1-6的SOCA、SOCB、外部引脚触发GPIO_XINT2
- 转换模式:启动/停止模式、连续转换模式
- 采样窗时间可配置(
ACQ_PS
)为1~16个ADC时钟周期
![image-20240702131701909](https://img-blog.csdnimg.cn/img_convert/d102ce9277e9891facefe4fcdc838755.png)
9.2 排序器
![image-20240702133141628](https://img-blog.csdnimg.cn/img_convert/15a93a11c96db5592741ef48267076ed.png)
![image-20240702133246745](https://img-blog.csdnimg.cn/img_convert/a33f6425eba5c10e50a5e87ff08f2012.png)
![image-20240702133445499](https://img-blog.csdnimg.cn/img_convert/0f39bf4a35bf1c1b2c8f1364583960ce.png)
![image-20240702133607435](https://img-blog.csdnimg.cn/img_convert/81ca06e6e6ee2d74f54a209eae81f0f2.png)
![image-20240702133816413](https://img-blog.csdnimg.cn/img_convert/16b9b45cce980241e40a8ddd10eba10f.png)
![image-20240702134141115](https://img-blog.csdnimg.cn/img_convert/574f4cd02352bedc596a89530ff7c837.png)
![image-20240702134356586](https://img-blog.csdnimg.cn/img_convert/725640d5540e764bc4bb531d3afa859c.png)
9.3 同步采样
- 忽略CONVnn中的MSB位,同时启用S/H-A和S/H-B;
- 一个排序器通道同时选中ADCINAx和ADCINBx进行采样/保持;
- ADC核先转换ADCINAx,再转换ADCINBx;
- ADCINAx和ADCINBx转换结果分别存放在ADCRESULTn和ADCRESULTn+1中。
![image-20240702134930909](https://img-blog.csdnimg.cn/img_convert/a0897638a3698e8f2c227f40227f37c7.png)
![image-20240702135105447](https://img-blog.csdnimg.cn/img_convert/cc503e98e64aeeb67e70018f91b1a385.png)
9.4 启停/连续转换模式
![image-20240702135327019](https://img-blog.csdnimg.cn/img_convert/02635b16027fcdd5ba6ffd5eb2a3cf2d.png)
连续转换:fsmax=ADC采样率/通道数;启停模式:fs=SOC触发频率≤fsmax
ADC采样率计算方式,Example
假设ADCCLK = 25MHz,
ACQ_PS=3
,则采样时间为ACQ_PS+1=3+1=4个ADC时钟周期,保持时间为1个ADC时钟周期,ADC采样率为25MHz÷(4+1)= 5MHz。
- ADC采集(采样&转换)一点数据需要多少时间?
答:ADC采样率为5MHz,采样周期t=1÷5MHz=0.2us
CONV00 = 3
,ADCMAXCONV=0x0000
, 在顺序采样模式、连续转换模式下,启动SEQ1时,ADC转换哪些模拟输入通道?信号采样率是多少?答:ADC转换ADCINA3通道,信号采样率为5MHz÷1=5MHz。
CONV00 = 3
,ADCMAXCONV=0x0000
, 在同步采样模式、连续转换模式下,启动SEQ1时,ADC转换哪些模拟输入通道?信号采样率是多少?答:ADC转换ADCINA3、ADCINB3通道,信号采样率为5MHz÷2=2.5MHz。
CONV00 = 3
,CONV01 = 9
,ADCMAXCONV=0x0001
, 在顺序采样模式、连续转换模式下,启动SEQ1时,ADC转换哪些模拟输入通道?信号采样率是多少?答:ADC转换ADCINA3、ADCINB1通道,信号采样率为5MHz÷2=2.5MHz。
CONV00 = 3
,CONV01 = 9
,ADCMAXCONV=0x0001
, 在顺序采样模式、启动/停止模式下,通过EPWM1(设计数周期=1ms)的下溢事件启动SEQ1,ADC转换哪些模拟输入通道?信号采样率是多少?答:ADC转换ADCINA3、ADCINB1通道,信号采样率为1÷1ms=1kHz。
CONV00 = 3
,CONV01 = 9
,ADCMAXCONV=0x0001
, 在同步采样模式、启动/停止模式下,通过EPWM1(设计数周期=1ms)的下溢事件启动SEQ1,ADC转换哪些模拟输入通道?信号采样率是多少?信号采样率最高可设为多少?答:ADC转换ADCINA3、ADCINB3和ADCINA1、ADCINB1通道;信号采样率为1÷1ms=1kHz;信号采样率最高可设为5MHz÷4=2.5MHz。
连续转换:fsmax=ADC采样率/通道数;启停模式:fs=SOC触发频率≤fsmax
9.5 ADC时钟配置示例
![image-20240702140027602](https://img-blog.csdnimg.cn/img_convert/9da98b46af8db0e0284013c99a216368.png)
ADC对2.048V的外部基准电压进行了工业标准基准元件匹配
9.6 ADC转换结果
数字量化结果与模拟输入电压之间的转换
D i g i t a l 4095 = I n p u t A n a l o g V o l t a g e 3 \frac{Digital}{4095}=\frac{Input\ Analog\ Voltage}{3} 4095Digital=3Input Analog Voltage
![image-20240702140913911](https://img-blog.csdnimg.cn/img_convert/afb88a762dd920b35fb8c81abfb77004.png)
int value;
float voltage;
value = AdcRegs.ADCRESULT0 >> 4;
voltage = (value/4095.0)*3.0;
10. 串行同步通信SPI模块
10.1 SPI概述
- SPI(Serial Peripheral Interface――串行外设接口)
- 多用于MCU与各种外围设备(括A/D转换器、D/A转换器、LCD、EEPROM、网络控制器、MCU)之间通信;
- SPI总线接口一般使用4根线:串行同步时钟线CLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS;
- SPI总线至少包括1根串行同步时钟信号线和1根数据线;
- 一主多从,主机发送同步时钟信号,控制通讯。
![image-20240702142259177](https://img-blog.csdnimg.cn/img_convert/50a0bb605b0992f652ce625dca7a0602.png)
![image-20240702142802009](https://img-blog.csdnimg.cn/img_convert/263dd78665ff379d0c770164fa6c6cb0.png)
![image-20240702142620981](https://img-blog.csdnimg.cn/img_convert/0bfb00a6e2a9029965d803da7c081c29.png)
10.2 C28x 增强型SPI模块
F28335片上只有一个SPI模块
![image-20240702143137941](https://img-blog.csdnimg.cn/img_convert/c625c838ff80c924a1ff0dc1502ae0f8.png)
![image-20240702154207836](https://img-blog.csdnimg.cn/img_convert/cb98440f7adc492ed3ad48bc5ec7f947.png)
![image-20240702143426951](https://img-blog.csdnimg.cn/img_convert/c2a3e4dc57d4d361626065919c75e03d.png)
11. 串行异步通信SCI模块
11.1 串行通信概述
- 帧同步:收发双方不使用串行同步时钟,由双方各自的时钟实现数据帧的同步,但要求双方使用同一标称频率,允许有一定偏差。要正确传输数据帧,准确读取每一位时必须用各自的时钟同步的,为克服不同时钟的偏差,每个数据帧都有一个起始位进行同步;
- 典型的异步串行通信接口:RS-232、RS-422/485、USB等;
- RS-232C接口采用EIA电平:低电平为+3V~+15V;高电平为-3V~-15V(负逻辑),2发3收5接地;TTL与232电平转换芯片RS232;
- RS-485总线采用差分传输方式
11.2 C28x 增强型SCI模块
F28335片上有三个完全相同的SCI模块:SCIA、SCIB、SCIC
![image-20240702144450454](https://img-blog.csdnimg.cn/img_convert/9240b55350447c161890d53973965d75.png)
![image-20240702144543783](https://img-blog.csdnimg.cn/img_convert/5f40fce40e8d35d10fdcf61edb34ed5f.png)
![image-20240702144804819](https://img-blog.csdnimg.cn/img_convert/c2ed48791fb04379823d26b3b5bed245.png)
![image-20240702145004072](https://img-blog.csdnimg.cn/img_convert/6b6661ba24472624e88a7cce68c2169f.png)
![image-20240702145149216](https://img-blog.csdnimg.cn/img_convert/368ed6080e17027001e51940e2fccacb.png)
![image-20240702145316282](https://img-blog.csdnimg.cn/img_convert/ce0c8c66672021f58aee2ebfccd17964.png)
![image-20240702145554040](https://img-blog.csdnimg.cn/img_convert/5ec46b1ddce840d0aeda470b92ed1dc8.png)
12. 应用实例
12.1 最小系统
确保DSP能正常工作的最小配置的系统
基本配置——DSP芯片、电源、复位电路、晶振、JTAG口
![image-20240702150036205](https://img-blog.csdnimg.cn/img_convert/81d9c6f5957da0517788a7f4e947b9db.png)
12.2 BLDCM实验
13. 简答题
- 数字信号处理算法有什么共性特点?为什么 DSP 具有强大的数字信号处理能力?
- 所需运算能力强
- DSP增强了运算能力,针对数字信号处理做了结构、指令优化和功能增强
- 冯诺依曼总线结构与哈佛结构相比,各自有什么样的优缺点?
- 哈佛结构:程序和数据总线分开,硬件结构复杂,价格高;优点:效率高
- 冯诺依曼结构:程序结构和数据结构合体,效率低 ;优点:简单便宜
- 定点型CPU 与浮点型 CPU 相比,各自有什么样的优缺点?
- 定点型CPU简单功耗低
- 当前TI C28系列DSP 常见的型号有哪些?其CPU 是定点型还是浮点型?其中,哪些型号的DSP 带有浮点协处理器(FPU)?
- F28335的编译调试环境是什么?汇编器、链接器、软件模拟器作用是什么?源程序文件、头文件、命令文件、运行支持库文件分别有哪些,有什么功能? Memory、Sections指令功能是什么?
- CCS
- 汇编器(Assembler):将汇编语言源文件转变为基于公用目标文件格式(COFF)的机器语言目标文件.obj;
- 链接器(Linker):将一个或多个由编译器或者汇编器生成的目标文件,外加库,链接为一个可执行文件,即目标代码(.out) .
- 软件模拟器(Simulator):脱离硬件的纯软件仿真工具。模拟运行DSP程序,同时对程序进行单步执行、设置断点,对寄存器/存储器进行观察、修改,以及统计某段程序的执行时间等。
- F28335的GPIO接口一共多少个?有哪些输入限制模式?配置步骤是什么?
- 88个
- 三种模式:SYSCLKOUT同步、采样窗限制、异步输入
- ①规划引脚功能 ②使能或禁止内部上拉功能③对输入引脚进行限制④配置引脚的功能.⑤对于通用数字IO口,配置引脚的方向⑥选择低功耗模式唤醒源⑦选择外部中断源
- 什么是中断?F28335的中断流程是什么?中断触发源有哪些?如何配置外设中断,使外设能向CPU发送中断请求且CPU能执行相应的中断服务子程序?
- 中断是CPU对系统发生某个事件作出的一种反应、中断事件发生时,CPU暂时中止正执行程序、保留现场,然后自动转去执行相应事件处理程序,处理完成后返回断点继续执行被打断的源程序;
- F28335中断流程是:中断请求→中断使能→CPU中断响应
- 中断触发源:软件中断、硬件中断、可屏蔽中断、不可屏蔽中断
- 关于增强型脉宽调制器(ePWM),有哪些计数事件?有哪些计数比较事件?有哪些动作限定(AQ)子模块的动作方式、触发事件?如何产生PWM波形?
- ①由TB子模块产生计数时基,CC子模块中的CMPA/CMPB与TBCTR 比较,产生计数事件.②由AQ子模块中的动作限定控制寄存器AQCTLA和AGCTLB独立配置EPWMXA输出和EPWMXB输出的触发事件.和动作形式.③PWM周期由TBPRD控制,占空比由CMPA/CMPB控制。
- 关于增强型捕获模块(eCAP),基本工作原理是?有哪些功能特点?连续、绝对时间戳捕获模式是什么?连续、差分时间戳捕获模式是什么?
- 关于ADC模块,有几个模拟通道、S/H采保器、转换核心、结果寄存器?A/D工作模式有哪些?如何配置采样率?
- SPI通信基本工作原理?一般包括几根总线?具有什么优势?有哪些时序配置?有哪些工作方式?增强特征是什么?
- 标准SCI模块结构是什么?数据帧格式是什么?空闲线模式和地址位模式是什么?