第二章 TMS320F28335 硬件结构

1 TMS320F28335 硬件概述
Tms320f28335主要有8个部分组成,由32位的cpu内核、集成内存、总线、DMA、DMA总线、中断管理、控制率加速器、外设总线、外设等部分。

总线为哈佛结构,cpu可在一个时钟周期完成对数据存储器与程序存储器的访问。

DMA总线,可以使特定模块直接与内存交换数据,不过cpu。

2 cpu架构
2.1 内核
F28335属于C28x+FPU(Floating Point Unit,浮点运算单元)的C28x 系列增强型DSP 控制器(Digital Signal Controllers,DSC),包括一个32位定点cpu一个32位浮点运算单元。

浮点数格式遵循ieee-754标准。(IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。)

2.2 乘法器
F28335内嵌一个16×16位和32×32位的乘法器及乘累加核(MAC),可以在一个指令周期完成32×32位乘法进行累加运算。

2.3 移位器
32位桶形移位器。

2.4 总线结构
 

哈佛架构

1条程序读总线:22根地址线与32根数据线

1条数据读/写:32根地址线与32根数据线

(地址线用来寻址,即在计算机中找一个数据时,先访问其地址。数据线用来传输数据)

DSP C代码架构 dsp的架构_寄存器

图2-1 C28x+FPU 总线结构框图

外设总线:ti为了实现不同外设在dsc系列器建的迁移,2833x/2823x器件采用一个外设互联的外设总线标准。此总线由16条地址线和16/32条数据线组成

2.5 cpu寄存器

1组标准寄存器组:累加ACC、乘积P、程序寄存器、状态寄存器、乘数寄存器、辅助寄存器XAR0~XAR7、中断控制寄存器

1组FPU寄存器:浮点结构寄存器R0H~R7H、浮点状态寄存器STF、重复块寄存器RB

Cpu状态寄存器有两个:16字长的ST0、ST1(4个位域变量需要用户编程)

中断寄存器:中断使能IER、中断标志IFR、调试中断使能DBGIER

 

使用c语言编程时,只需要配置ST1中4个位域变量

(1)EALLOW(仿真访问使能,解锁写保护)

复位默认0,即禁止对片上外设模块写保护寄存器进行写入访问,(禁止对f28335的写保护寄存器与仿真空间写访问)

片上外设模块写保护寄存器包括:器件仿真寄存器、FLASH模块相关寄存器、CSM模块相关寄存器、PIE中断向量表、系统控制模块相关寄存器(如PLLSTS等)、ePWM模块相关寄存器(如TZSEL等)、GPIO模块相关寄存器(如GPACTRL、GPIOXINT1SEL等)、XINTF接口相关寄存器、DMA模块相关寄存器、eCAN模块相关寄存器。

在F28335的头文件模板DSP2833x_Device.h中,定义了两条EALLOW被置1和清0的宏定义C语句如下。

#define EALLOW asm (“EALLOW”); //EALLOW被置1

#define EDIS asm (“EDIS”); //EALLOW被清0。其中,

EALLOW位被置1的2833x汇编指令语法格式为:

    EALLOW;

EALLOW位被清0的2833x 汇编指令语法格式为: 

    EDIS;

要注意的是,在中断时EALLOW会被置0。

(2)VMAP(中断映射向量位)

复位默认1,表示把中断向量表映射到f28335片上程序储存空间,范围0x3FFFC0~0x3FFFFF,Ox3FFFC0为复位向量。

可用汇编指令:“CLRC VMAP”将VAMP清0,这时,CPU中断向量表映射到F28335片上程序存储器空间的低端地址,地址范围为0x000000~0x00003F,即CPU的复位向量位于0x000000。VMAP清0是为了兼容c281x的需要而设置的。

(3)INTM(中断全局屏蔽位)

复位默认1,表示禁止F28335所有可屏蔽中断请求信号送到CPU内核.

#define EINT asm (“clrc INTM”); //INTM被清0,中断总开关闭合

#define DINT asm (“setc INTM”); //INTM被置1,中断总开关断开

 (4)DBGM(调试使能屏蔽位)

 复位默认1,表示禁止仿真器(Emulator)实时访问存储器和寄存器内容,CCS调试器(Debugger)不能更新观察窗口信息。即DBGM=1,CPU忽略断电。

#define ERTM asm (“CLRC DBGM”);

#define DRTM asm (“SETC DBGM”);

 

2.6 中断控制寄存器

16个可屏蔽中断,0为禁止。

IER、DBGIER、INTM三者之间的关系是:CPU可屏蔽中断信号的使能在IER、DBGIER、INTM中选择两个使能位置1即可。

3储存器

DSP C代码架构 dsp的架构_DSP C代码架构_02

图3-1F28335 存储器映射图

如图,为f28335的储存器映射图。10个片上SRAM(M1,M0,L0~L7),从XINTF外部接口扩展外部储存器空间。

M0的片上储存块地址范围是0x000040~0x003FF(1K×16位),M1块的地址范围是0x000400~0x0007FF(1K×16位)可为通用ROM,上电复位后M0被编译器作为储存数据,堆栈指针从M1开始。

L0~L3储存块为4K×16位,且受安全密码保护,均可配置为程序储存器。

L4~L7储存块为4K×16位,为SARAM块,也可以作为DAM储存块。

F28335片上有256K×16位的FLASH,分为8个扇区。

DSP C代码架构 dsp的架构_寄存器_03

图3-2F28335 FLASH映射图

 F28335片上包含1K×16位的一次编程ROM,地址范围为0x380400~0x3807FF。

安全代码模块(CodeSecurityModule,CSM)位于DSP的片上FLASH的最后8个单元地址0x33FFF8-0x3FFFF(8×16位)。用户填写128位密码之后,DSP片上的受安全代码保护的区域(简称安全存储器)就无法通过DSP的JTAG接口进行读取查看,也不能拷贝未授权的DSP片上FLASH、L0~L3、OTP等受代码模块保护的代码或数据,

4 片上外设帧

F28335的片上外设寄存器均为片上存储器映射寄存器,定位于片上数据存储器空间0x000800~0x007FFF,共分为四个区域,分别称为外设帧0,外设帧1,外设帧2,外设帧3。外设帧0支持16位宽度和32位宽度数据总线访问,直接映射到CPU总线。

5 外部接口
F28335的外部接口(XINTF)是一个外储存器和I/O设备统一编址总线扩展接口,除具备外设扩展接口所需的20位地址总线信号(AB)、32位数据总线(DB)信号和控制总线(CB)信号外,还具有寻址区域0/6/7可编程时序寄存器(XTIMINGx,x=0,6,7)、总线时序配置信号,片选信号、DMA控制信号。

上电复位时,XINTF引脚映射为GPIO引脚,需要扩展外存储器或I/O外设时,通过初始化GPIOMUX寄存器,将相关GPIO引脚配置为XINTF相关引脚。

时序:第一时段:lead 访问区域的片选信号被拉低,地址被发送到总线上。

      第二时段:active 完成读写访问,拉低相关电平。

      第三时段:trail 片选信号为低,读写电平拉高。
 

6 控制模块
F28335 的控制模块用于控制DSP的低功耗模式和监视CPU运行状态。包括:振荡器电路(SOC)、锁相环电路(PLL)、低功耗控制电路、看门狗电路、系统配置寄存器、外设模块时钟控制器。

系统控制模块的主要特性包括以下内容。

1.时钟电路的振荡器频率(SOCCLK)配置模式

  (1)内部振荡器模式。通过X1和X2引脚外接30MHz无源晶振。

  (2)外部3.3V振荡器配置模式。通过XCLKIN引脚外接3.3V振荡器频率。X2引脚应留悬空、X1引脚应连接到低电平。

  (3)外部1.9V振荡器配置模式。通过X1引脚外接1.9V振荡器频率。X2引脚应留悬空、XCLKIN引脚应连接到低电平。

2.锁相环电路配置模式

(1)PLL关闭模式(PLL模块断电,在进入该模式前,应将PLLCR写入零值。)

(2)PLL旁路模式(上电复位默认状态)

(3)PLL使能模式(向PLLCR写非零值后,自动进入该模式。)

3.时钟信号检测电路

用来检测振荡器频率是否丢失。若丢失,时钟信号检测电路将产生一个内部系统复位信号,对CPU和片上外设复位。

4.低功耗模式

(1)空闲模式(时钟电路和系统时钟频率正常工作,唤醒方式主要是被使能的任何有效中断请求。系统复位信号。看门狗中断信号。)

(2)备用模式(时钟电路正常工作,系统时钟频率关闭,唤醒方式主要是指定GPIOA端口符合低电平宽度的唤醒设备。系统复位信号。看门狗中断信号。)

(3)暂停模式(时钟电路和系统时钟频率均关闭,唤醒方式主要是指定GPIOA端口符合低电平宽度的唤醒设备。系统复位信号。)

7 GPIO
通用目的I/O模块(GPIO模块)内部配有复杂逻辑多路开关控制电路和复用寄存器,将数字I/O(GPIO)引脚、片上所有外设输入输出引脚、外部接口(XINTF)地址总线、数据总线、控制总线引脚在器件封装引脚上实现复用。

共88个GPIO,通过寄存器GPIOxMUX(x=A,B,C)进行设置。

GPIO分为3组,A端口对应引脚GPIO0~GPIO31(32位),B端口对应引脚GPIO32~GPIO63(32位),C端口对应引脚GPIO64~GPIO74(24位)。

当被配置为数字输入引脚时,具有输入滤波功能,通过GPIOSEL资格寄存器设定采样窗口宽度,对输入电平的干扰脉冲进行滤波。

外部中断输入引脚XINT1~XINT7、不可屏蔽中断输入引脚XNMI是可编程的GPIO复用引脚。

8定时器
F28335内嵌3个结构完全相同的32位CPU定时器:CPUTimer0/1/2,其中用户可用CPUTimer0/1,CPUTimer2留给DSP/BIOS用,若用户应用系统不用DSP/BIOS,CPUTimer2可用供用户使用。

(1)32位减1计数寄存器和32位周期寄存器(存放定时计数常数,每当32位减1计数寄存器下溢时,用定时计数常数重载32位减1计数寄存器)

(2)16位分频减1计数寄存器和16位分频寄存器(存放分频计数常数,每当16位分频减1计数寄存器下溢时,用分频计数常数重载16位分频减1计数寄存器)。

(3)CPUTimer0中断请求通过PIE组1(连接到INT1)扩展。CPUTimer1不通过PIE扩展,与XINT13(外部中断输入线)复用连接到INT13。CPUTimer2不通过PIE扩展,直接连接到INT14。

9 SCI
F28335片上集成3个独立SCI模块:SCIA/B/C。

(1)传输字符格式可编程设置1位起始位。可编程字符长度1~8位,通常设置8位。可选的1位奇偶校验位或无奇偶校验位。可编程停止位1~2位,通常设置1位。

(2)4 种出错检测标志位:奇偶校验错、溢出错、帧格式错、间断检测错。

(3)13个SCI模块相关控制寄存器(都是16位字长寄存器的低8位有效,读高8位全零,写高8位无效),位于首地址7050H的外设帧2。

(4)2种唤醒多处理器通信模式:空闲线模式和地址位模式。

(5)半双工或全双工通信模式。

(6)双缓冲接收和发送功能。

(7)发送器和接收器可以通过中断驱动或利用状态标志位查询算法完成一帧数据的收发。

(8)发送和接收有单独的中断使能位,间断中断除外(BRKDT)。

(9)异步数据传输格式为不归零码(NRZ)。

10 数据采集与控制
ADC模块:F28335片上集成一个单极性、分辨率12位、带有流水线的A/D转换器。模拟输入电压量程:0~3V。ADC模块大工作频率12.5MHz,即采样速率大6.25MSPS(每秒可采6.25M个采样值),即转换时间为160ns,属于高速ADC。