·上一文章:基于MAX038的程控函数信号发生器的设计
·下一文章:多端口寄存器堆的低功耗设计方法
2.2 模拟信号采集的实现
TMS320F2812芯片中集成了一个伪双12位A/D转换器模块。该模块内部实际上只有一个A/D转换器,在内部逻辑的控制下它可以很快的速度连续采样转换两次,相当于两个A/D转换器。用户可以同时启动这两个A/D转换器进行采样,也可以启动某个A/D转换器,让它连续采样两次。
同传统A/D相比,嵌入式A/D具有如下的特点:在A/D模块的硬件资源配置好了之后,用户可以用软件指令随时启动A/D采样,并获得A/D转换的结果。同传统A/D不同的是,采集功能单元的硬件资源配置还有一部分是通过软件完成的。
利用F2812内部增强型A/D可以在一块采集卡上实现对同步、异步模拟信号的采集和A/D转换。其示意图如图4所示。
在F2812片内有两个独立的8路模拟开关,既可以单独使用也能级连使用。如图4所示同步信号送入ADCINA模块,其它信号直接送入ADCINB模块,然后由DSP内部的12位A/D转换模块进行A/D转换。用户还可以根据实际应用对外部采样电路进行调整,以满足不同的要求。
运用TMS320F2812片内集成的A/D转换器进行数据采集。程序首先对A/D进行初始化,当A/D非常忙时,启动16个A/D通道进行转换,主程序进入死循环;当A/D正常转换完毕后,进入中断服务子程序。中断服务程序将16个A/D转换结果读入数组al[16]中,并再次启动16个A/D通道进行转换,如此循环往复。程序设计使用C++语言编写源程序。A/D初始化子程序框图如图6所示。中断服务子程序流程如图7所示。