《现代电子技术》2006年第23期摘录:2006年第23期总第238C
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
2006年第23期总第238C80E.】F系列单片机的计数器是向上加计数,因此计数器的重装入值通常是负值,我们可通过下列公式来确定该值。重装入值二歪丝盟鳢塑至DAc采样频率DAc可允许的最大采样率可达到1∞kHz,但采样率与中断服务程序之间成反比关系。采样率越大,中断服务程序的执行时间就要越小。采样率越小,可供中断服务程序执行的时问就越长。因此在选择DAC采样率时一定要注意,要确保所有的中断服务程序指令能够在计数器下一次中断溢出前全部被执行完毕,否则将会影响到输出频率。例如,若系统时钟频率为22.1MHz,DAC的数据更新率为80kHz,则中断服务程序最多只能执行276个时钟周期。我们应尽量使采样率与中断服务程序的执行时间相协调。为了能够达到较高的采样率,可以通过省略增益调整环节来减少中断服务程序的执行时问。在这里,还需注意,根据余奎斯特采样定理,DAC的最大输出频率不能超过采样频!备的半。3基于1)DS查表法产生函数波形3.1DDS原理及组成直接数字频率合成是一种先进的频率合成原理,他是从相位概念出发直接合成所需要波形的一种新的频率合成技术。DDs原理依据余奎斯特采样定理,以采样时钟厂对固化往R()M或FI.ASH中的N点正弦离散表进行采样。陔诋弦表对应单位正弦波形在O~2的离散值,每个存储单兀的地址即是棚应相位的寻址偏移量。对于一般正弦信号,在任意时刻的相位为对应的离散正弦表的寻址偏移量0ffset。DDS主要m标准采样时钟源、相位累加器、离散正弦表、数模转换器、低通滤波器构成。(1)离散正弦表(波形存储器)朋卡【1位累加器输出的数据作为离散正弦表的取样地址,进行波形的相位幅值转换,即町在给定的时问上确定输出波形的采样倩。N位寻址的FI。ASH相当于把O。_360。的正弦信号离散成具有2“个样值的序列。若波形幅他有D位数据位-』J142。个样值的幅值以D位二进制数值㈣化住FI。ASH中,按照地址的不同可以输出相应的正弦信号的幅值。(2)相位累加器铒米一个时钟脉冲.加法器将相位步进与累加器原输出l十【I位值卡H加,再将结果送人寄存器并输出。这样,相位累加器在时钟的作用下,进行相位累加。当相位累加器累加满刎度时就会产牛一次溢出完成一个周期性的动作。在本系统中输出波形用相位累加器实现16位频率分辨率。3.2系统买现我们通过计数器1的中断服务处理程序来产生波形,并通过3个阶段来实现。如图1所示,首先应该定义一个周期的周期函数,从函数图_口丁以看到,他包括横轴与纵轴,且每个轴的数据精度为16位。横轴为相位轴,其大小范围从O~65535,纵轴为振幅轴.其范围从一32768~32767。图1一个周期的正弦函数波形图所有的波形都是通过一个16位的相位累加器跟踪横轴上的输出波形来产生。假定f)AC的数据更新率为80kHz.相位累加器的频率分辨率为1.2Hz。则计数器1一}|断服务程序的第一步就是计算相位并根据相位累加器的输出值来查找I=)AC:的下一个输出值。相位累加器在每一次中断服务程序被调用时通过<phi,se—add>函数来增加相移。相移增加的大小由下列公式所决定:相位步进__频率×瓦甄≮藤中断处理程序的第二步是根据查找表输出相应的幅度值。查找表是函数一个周期满刻度(2…)时所对应的振幅大小数据表。用离散正弦表输出的数据作为波形存储器的取样地址,往查找表巾进行波形的相位一幅值转换,即可在给定的时间相位上确定输出波形的采样幅值。16位相位寻址相当于把0。~36()。的正弦信号离散成具有2”个样值序列,由于波形振幅为16位,则2…个相位样值的幅值是以16位二进制数值固化在查找表中。按照地址不同可以输出相应相位的正弦信号的幅值。最后,将振幅补码值转换为无符号单极性值并传递给DA(:。该转换主要是通过在原值基础上加32768完成。通常在编程时我们会令补码与OX80C》0相异或来实现。通常来说不同波形在FI.ASH111是分块存储的,因此只要改变波形控制字,通过将相位累加器输出与波形控制亨相』Jn,就可以得到输出信号的相移。在本没计中,没有列m所有波形的离散表。除了正弦波形外,其他波形都是通过算法来计算求得。4通过算法计算输出波形除J,使川杏表法找出对应幅值外.中断处理程序也可以通过计算的方式用固定的算法得到对应于16位相位累加器输出的整个波形的幅值。由于在计算方式下,使用相位累加器的输出相位来计算波形所需要的时钟剧期较少。因此,在计算方式下波形的幅值及相位错误都大大少于查67
阅读此文(图):
点击此处在线翻阅