基于ARM的过采样技术
3S8962实现ADC过采样
3.1 Cortex-M3内核特点介绍
ARM Cortex?- M3 处理器是行业领先的 32 位处理器,适用于具有高确定性的实时应用,已专门开发为允许合作伙伴为范围广泛的设备(包括微控制器、汽车车体系统、工业控制系统以及无线网络和传感器)开发高性能低成本的平台。该处理器提供出色的计算性能和对事件的卓越系统响应,同时可以应对低动态和静态功率限制的挑战。该处理器是高度可配置的,可以支持范围广泛的实现(从那些需要内存保护和强大跟踪技术的实现到那些需要极小面积的对成本非常敏感的设备)。该内核具有如下特性:
(1)采用ARMv7M架构,在ARMv4T架构基础上扩展了36条指令。
(2)基于哈佛结构,数据与指令可同时从存储器读取,并行执行多个操作,加快程序执行速度。与ARM7TDMI-S相比,比ARM指令每兆赫效率提高了35%,比Thumh指令效率提高了70%.
(3)带有多种睡眠和唤醒模式,实现产品的低功耗。
(4)单周期乘法、乘-加、硬件除法指令,实现快速运算。
(5)低延迟中断处理:支持8层硬件中断嵌套,末尾连锁功能,高优先级中断迟来处理。
3.2 过采样的软件实现
(1)外设初始化。
在软件实现过采样之前,必然要对各个模块进行初始化和配置。初始化定时器、ADC、UART等模块,定时器模块用来提供系统时钟周期,配置ADC的触发模式和采样速率,利用UART将测量值传递给PC,方便查验是否正确。
(2)产生PWM信号,作为噪声。
为了保证过采样原理应用的可靠性,引入噪声激励信号。而为了避免激励噪声出现的误差,使用内部的PWM信号发生器产生周期性和对称性很好的PWM波,作为激励噪声。产生噪声步骤如图1所示。
(3)数据的采集、滤波及抽取。
在过采样中所做的数字平均滤波仅提高了平滑度,精度却并没有增加,抽取过程才是真正意义上的提高精度。额外的K次采样,按照常规平均那样进行累加,但并不是直接将结果除以M,而是右移N位(N是期待所增加的额外精度),得到更精确的采样结果。
过采样算法如图2所示。对TI的LM3S8962芯片,将10位AD值的精度提高到12位的方法,直接调用寄存器读取函数HWREG访问FIFO缓存区,经过两次循环,将从FIFO中收集到的16个10位转换值相加,产生一个14位结果,右移2位后就得到所希望的12位AD值。
4 应用分析
转换速率、稳定度和分辨率是模数转换器的衡量标准。为了能够清楚地看到利用过采样技术后对AD值改善的效果,采用LM3S8962芯片进行了12位ADC过采样实验。根据显示的实验数据和测量情况,给出并分析了指标的改善情况。
对于转换速率,使用片内定时器进行测量,在CPU为50 MHz时钟频率状态,ADC的采样速度为100 kHz时,采样连续触发模式进行1次12位过采样时间是52 μs,由于在数据转换的同时还要访问数据缓存区,因此再加上64μs才是它的实际速度。
对数次采样后获得的值进行数字滤波,滑动平均后,得到较为稳定的数据值,通过串口传送过采样后的数据结果如图3所示。1组数据有6 bit,其中前3 bit是原来的10位采样值,后3 bit是12位过采样值。从图3中能够得知,12位过采样分辨率的值比10位采样值的分辨率值更稳定。
为了验证位数越高,采样精度越高,做了一个13位的过采样实验。采样过程中,循环8次,获得64组AD值,并利用分段折线法校正非线性误差,将采样值转换为标准电压值。从图4中可以看出,过采样后的电压值波动很小,效果尤为明显。
5 结束语
文中从过采样的频谱特性出发,分析了过采样技术的基本原理。随后采用TI公司高性价比的Cortex-M3内核ARM,利用过采样技术提高了测量值的分辨率。实验结果表明,利用过采样技术既能降低成本,又能使外围电路得到简化,它与Cortex-M3内核相结合后,更能提高系统的运行速率、可靠性与稳定性。这种结合方式对于检测、监控等领域起着积极作用,具有一定的推广和实用价值。
参考文献:
[1].ARM7TDMI-Sdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI-S_1231795.html.
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)