【原创】TI C2833x介绍---(2)CPU介绍
0赞C2833x本身是C2000 DSP发源来的,这首先说明它具有强大的数字信号处理(DSP)功能;其次,它又集成了大量的外设供控制使用,又具有微控制器(MCU)的功能;兼有RISC处理器的代码密度(RISC的特点是单周期指令执行,寄存器到寄存器操作,和改进的哈佛结构、循环寻址)和DSP的的执行速度,同时其开发与微控制器的开发过程又比较相似(微控制器的功能包括易用性,直观的指令集,字节包装和拆包,和位操作),所以后来TI给它们起了新的名字叫DSC(数字控制器)。其中C2833x、2834x被成为Delfino系列(专门查了一下,原来Delfino是意大利语里面“海豚”的意思,C2801x Picclo 则是意大利语“短笛”的意思,学习DSP顺带可以学点外国语言:;-))。其CPU的整体架构如图1所示。
图1 Delfino DSC的整体架构
前些年需要执行复杂控制算法的时候,常见的一种方法是VC33 DSP负责运算,LF2407A或者F2812负责控制,现在用一个C28335来实现还绰绰有余,因为有FPU这个强大的运算协处理器。而且编译器CCS编译C语言生成的代码效率也很高,现在出了几个对时间要求比较精确的函数,如延时xxx微秒之类的,我们基本全部使用C语音来编写了;而以前使用LF2407A时,还是基本靠汇编写程序,还经常要插入一些空指令来平衡读写时序,有点麻烦。C2833x 32 ×32位MAC和其64位处理能力的功能,使C28x可以有效处理更复杂的数值解析问题。这里查了一下C2833x FPU的相关文档,目前可以在程序里面使用64位的浮点(long double),但是需要编辑器的配合(我理解的是“软”支持,相当于时序逻辑里面的复用)。其次,32*32位MAC可以同时支持两路16*16位乘且累加指令,在“复用”的基础上也不难理解。
28x的CPU还支持一种叫“原子指令”的读写简化机制(Atomics Read/Modify/Write)。原子指令是小的、通用的不可中断指令。原子指令可以更快地完成读写操作,并具有更小的代码规模,如图2所示。
图2 28x原子指令示意图