论坛风格切换切换到宽版
  • 8056阅读
  • 60回复

世界独创新式濒率合成器 [复制链接]

上一主题 下一主题
离线红猪
发帖
4980
只看该作者 20楼 发表于: 2008-06-08
[quote=一异]单片机输出信号抖动厉害这种说法可能需要具体分析一下。
不清楚你是如何用单片机输出方波信号的,如果用定时中断,软件设置io端口,那么不抖动才奇怪,这是由于中断系统响应时间不固定造成的。
反过来,如果单片机有定时器控制的硬件直接输出的端口,那么这种端口输出的信号抖动不会太大,起码不至于到你所说的那种程度。
虽然说单片机不追求输出信号的抖动性能,但从本质上来说,制造单片机的工艺与制造dds芯片的工艺并没有质的差异,所以说单片机输出的信号抖动完全有可能达到和dds芯片相当的水平。只不过由于单片机不追求这个性能,完全有可能会碰到同一批的两个芯片性能有比较大的差异;而对于dds芯片来说,工厂才出厂的时候肯定会检验信号抖动,不合格的芯片肯定不会出现在市场上。所以用dds芯片抖动性能是可以得到保证的,但用单片机可能就有点碰运气,但我相信运气不好的概率不会有多大。[/quote]
受教了!
离线MF35_
发帖
179
只看该作者 21楼 发表于: 2008-06-08
[quote=一异]单片机输出信号抖动厉害这种说法可能需要具体分析一下。
不清楚你是如何用单片机输出方波信号的,如果用定时中断,软件设置io端口,那么不抖动才奇怪,这是由于中断系统响应时间不固定造成的。
反过来,如果单片机有定时器控制的硬件直接输出的端口,那么这种端口输出的信号抖动不会太大,起码不至于到你所说的那种程度。
虽然说单片机不追求输出信号的抖动性能,但从本质上来说,制造单片机的工艺与制造dds芯片的工艺并没有质的差异,所以说单片机输出的信号抖动完全有可能达到和dds芯片相当的水平。只不过由于单片机不追求这个性能,完全有可能会碰到同一批的两个芯片性能有比较大的差异;而对于dds芯片来说,工厂才出厂的时候肯定会检验信号抖动,不合格的芯片肯定不会出现在市场上。所以用dds芯片抖动性能是可以得到保证的,但用单片机可能就有点碰运气,但我相信运气不好的概率不会有多大。[/quote]


你说的“定时器控制的硬件直接输出的端口”,有这个功能,但是,那是定时器的定时输出,信号形态是一个短脉冲,无法输出占空50%的方波,所以没有用,只能用软件推,所以抖动是肯定的,我上学的时候就弄过这东西,清楚的很。至于单片机和dds内部数字电路工艺,绝对不可能一样,不要从本质上讲,一个事物的特性不是由本质决定的,而是在于对本质的改造,从本质上说,人和猪都是动物,但你能说一样吗。
离线wycx
发帖
1497
只看该作者 22楼 发表于: 2008-06-09
用户被禁言,该主题自动屏蔽!
离线一异
发帖
868
只看该作者 23楼 发表于: 2008-06-09
[quote=mf35_]你说的“定时器控制的硬件直接输出的端口”,有这个功能,但是,那是定时器的定时输出,信号形态是一个短脉冲,无法输出占空50%的方波,所以没有用,只能用软件推,所以抖动是肯定的,我上学的时候就弄过这东西,清楚的很。至于单片机和dds内部数字电路工艺,绝对不可能一样,不要从本质上讲,一个事物的特性不是由本质决定的,而是在于对本质的改造,从本质上说,人和猪都是动物,但你能说一样吗。[/quote]

现在很多单片机都有硬件定时器直接输出功能,比如8096的hso,再比如atmel mega系列的pwm输出……这些电路都可以很容易得到对称方波。关于这个问题,我只能说mf35_对现在的单片机了解太少。
我说电路本质上一样,包括两个方面:它们都是cmos电路,它们的定势部分都采用d触发器(偶尔可能用jk触发器),这部分电路的结构也不会有多大的差异。就触发器来说,相位抖动主要取决于时钟信号的上升/下降速度。只要不是设计得太差,通常次在同样的边沿误差都不会太大。至于参考时钟的抖动,只要采用了晶体振荡器,起码比lc振荡器高得多得多,通常不必考虑。
这种简单的方式产生频率与dds相比,除了电路简单,还有频率成分更简单的优点,不过缺点是要得到干净的载波信号,滤波太麻烦。
离线代洪波
发帖
4809
只看该作者 24楼 发表于: 2008-06-09
[quote=一异]现在很多单片机都有硬件定时器直接输出功能,比如8096的hso,再比如atmel mega系列的pwm输出……这些电路都可以很容易得到对称方波。关于这个问题,我只能说mf35_对现在的单片机了解太少。
我说电路本质上一样,包括两个方面:它们都是cmos电路,它们的定势部分都采用d触发器(偶尔可能用jk触发器),这部分电路的结构也不会有多大的差异。就触发器来说,相位抖动主要取决于时钟信号的上升/下降速度。只要不是设计得太差,通常次在同样的边沿误差都不会太大。至于参考时钟的抖动,只要采用了晶体振荡器,起码比lc振荡器高得多得多,通常不必考虑。
这种简单的方式产生频率与dds相比,除了电路简单,还有频率成分更简单的优点,不过缺点是要得到干净的载波信号,滤波太麻烦。[/quote]
最近看见一异兄(暂时这样称呼你)经常是深入浅出的讲课,很有教师的风范!在这里学习了!技术就是这样在交流之中学习到的!很欣赏你的这种做法!反对技术堡垒!今天不明白的东西以后我总会明白的!哈哈!你说是吧!
离线MF35_
发帖
179
只看该作者 25楼 发表于: 2008-06-09
[quote=一异]现在很多单片机都有硬件定时器直接输出功能,比如8096的hso,再比如atmel mega系列的pwm输出……这些电路都可以很容易得到对称方波。关于这个问题,我只能说mf35_对现在的单片机了解太少。
我说电路本质上一样,包括两个方面:它们都是cmos电路,它们的定势部分都采用d触发器(偶尔可能用jk触发器),这部分电路的结构也不会有多大的差异。就触发器来说,相位抖动主要取决于时钟信号的上升/下降速度。只要不是设计得太差,通常次在同样的边沿误差都不会太大。至于参考时钟的抖动,只要采用了晶体振荡器,起码比lc振荡器高得多得多,通常不必考虑。
这种简单的方式产生频率与dds相比,除了电路简单,还有频率成分更简单的优点,不过缺点是要得到干净的载波信号,滤波太麻烦。[/quote]

不管是8096还是mega的pwm,输出的那个方波,占空比本来就是不稳定的,有微小抖动,人家那个本来设计就是给工频用的。你说我对现在的单片机了解太少了,你知道我是干什么的吗,不要对你不了解的情况妄下结论。

一件事物的优越与否,是需要实践证明的,你见过哪个成品上面使用这种方法了?难道人家的设计师都是傻子,不懂得这种“便宜又好用”的方法。另外,这种东西对性能造成的影响往往是不可控制的,不可控制在工业上来讲是致命的,甚至比性能低下还另人难以忍受。因此,我们在考虑一个实现方案的时候,先多想一想前人,多看一看人家是怎么做的,为什么这么做,而不是为自己偶然发现的一点东西沾沾自喜,或许你偶然发现的这个东西人家很早就发现了,并且证明了不可行。人可以重复别人的道路,但不能重复别人错误的道路。

-----分割线,下面的话与本主题无关,但我觉得很重要

诚如上面的兄弟所说,一异兄你确实讲的深入浅出,你的专业知识水平另我佩服。但是,我很不喜欢你还有楼主讲话的时候的一种口气。比如:
“我想你可能没有更细致的研究单片机”,这是楼主说的。
“我只能说mf35_对现在的单片机了解太少”,这是你说的。

你们连我是做什么的都不知道就下结论,楼主至少用了“我想”来表明只是猜测,而一异兄你仿佛就是一种叹息的口气了。况且,这与我是不是单片机专家没有关系。你好象是在通过给我一个评价而提高你的层次,你要表达的一种潜台词就是“你在这方面还浅的很,不要乱发言,不要置疑我讲的话”,所以,我觉得单从这一点来看,你和一个教师的要求还差的远。

你总是把自己放在一个高高在上的位置,用一种俯视的口吻对后来者讲话,你忘了你也是从这些后来者过来的。我认为在知识的海洋里,不应该有层次只分,或许你懂的比别人多(再说了,你怎么就一定能确定自己懂的比别人多),但是在知识面前大家都是学习者。

对于一个问题的讨论,任何人都是有意义的,不管你是高手还是菜鸟。在一个讨论中,应该只有问题的对错,没有高手与菜鸟之分,问题本身和什么人讨论他没有关系。本着这种主张,讨论才能达到一种纯粹的知识研究和共同学习的作用,否则就成了个人展示的表演会。

或许一异兄和楼主并没有我上面讲的那种意思,只是一种讲话习惯,说者无意,听者有心。如果是这样,我对我上面的言论表示道歉,并且声明这些对并不是针对你们。就当是给论坛里存在的那些自以为是“大师”的人看吧,毕竟这样的人还是有的。
离线小比尔/5
发帖
2582
只看该作者 26楼 发表于: 2008-06-09
我来说说我的看法:
如果是软件定时,抖动的问题在于
51,有单周期,双周期和三周期的指令
如果机器在处理其它事情而进入中断,那么双周期要多等一个周期,三周期要多等两个周期,有时单周期,有时双周期,有时三周期,进入中断的时间不一样,就会发生抖动
在做《课程设计:带音乐报时的数字钟》的时候明显地感觉到这一点。
机器用了t0和t2,t0用自动重装获得标准秒信号,当t0优先级设得比t2高的时候,出来的音乐就会有明显的杂音;当t2优先级设高的时候,杂音就少了;当t0不用自动重装,而用16位的时候,出来的标准秒信号就抖了,并出现明显的累计误差(虽然自动重装在程序执行上也会抖,但内部不会抖,实测日精度-0.9秒)。
离线BG3DZY
发帖
84
只看该作者 27楼 发表于: 2008-06-09
不可能这么简单就可以实现高要求的,谁也不是傻子。
这是最基本的道理了。
离线MF35_
发帖
179
只看该作者 28楼 发表于: 2008-06-09
[quote=小比尔/5]我来说说我的看法:
如果是软件定时,抖动的问题在于
51,有单周期,双周期和三周期的指令
如果机器在处理其它事情而进入中断,那么双周期要多等一个周期,三周期要多等两个周期,有时单周期,有时双周期,有时三周期,进入中断的时间不一样,就会发生抖动
在做《课程设计:带音乐报时的数字钟》的时候明显地感觉到这一点。
机器用了t0和t2,t0用自动重装获得标准秒信号,当t0优先级设得比t2高的时候,出来的音乐就会有明显的杂音;当t2优先级设高的时候,杂音就少了;当t0不用自动重装,而用16位的时候,出来的标准秒信号就抖了,并出现明显的累计误差(虽然自动重装在程序执行上也会抖,但内部不会抖,实测日精度-0.9秒)。[/quote]


软件误差和抖动还是可以计算并且一定程度上改善和抵消的,比如关闭中断,使用绝对高的优先级,使用计算补偿。

但有一个事实就是不管你算的多么准,不管你怎么补偿,即便单片机理论上每次输出的周期都是相同的,但是实际上每次的输出都是不同的,这些是由于cmos电路本身的工艺造成的。

半导体本身就存在一定的短期不稳定性,所以即便同样的输出每次也是有细微的不同的,这就是抖动的最根本的原因。而cmos本身的工艺决定了它比bjt有更高的抖动,这只是相对于同一水平的产品比较而已,高性能的cmos性能优于bjt也不是不可能的,这也就是说这种工艺引起的性能问题是可以在一定程度内解决的,量变引起质变嘛。

而对于制造数字电路和模拟电路的cmos工艺要求是不同的,制造高速数字电路和低速数字电路的coms工艺要求也是不同的,因此,他们在信号抖动这个性能上也是不同的。

而单片机恰恰是一种低速的数字电路(相对而言),它本身对信号抖动的要求非常低,所以制造工艺也就不用达到高速数字电路和模拟电路的要求(成本问题是每个厂家必须考虑的)。

楼上说的话才是硬道理,高要求不是这么简单就可以实现的,这是基本道理。
离线代洪波
发帖
4809
只看该作者 29楼 发表于: 2008-06-09
这样才是技术贴氛围嘛
个人把个人的意见摆出来才是真的!mf35_兄也不必见怪,人嘛,很多时候说话不是评自己主观评什么,你说呢!关键是把自己想法表达出来了!而这才是我们这些后辈所期望的,害怕的是论坛里面没有激烈的讨论,那还叫什么论坛,我们哪里去学习?貌似你们经验的东西书本上也学不到的啊!所以你们继续讨论!对事不对人就可以了~即使针对了某些人,那也请体谅体谅!毕竟人是人,不是神!个人愚见!
离线一异
发帖
868
只看该作者 30楼 发表于: 2008-06-09
用计算来补偿中断延迟?似乎没有哪一种处理器能够知道自身的中断延时吧?
用(独占)最高优先级的中断,可以避免由于其他中断处理程序造成的延时,但无法避免由于指令周期不同导致的中断延时得不稳定。
认为cmos的抖动比bjt大,不知道根据是什么。
至于cmos电路的速度问题,真正的低速cmos电路是cd4000或者mc14000系列才对。cd4000系列的mos管之间,采用pn借隔离工艺,所以分布电容非常大,这是早期cmos只能用于低速电路的原因。
现代cmos电路大概是从74hc/hct系列开始的,主要采用二氧化硅隔离技术,这种技术使cmos电路的最高工作频率(t触发器的最大时钟频率)从1mhz以下飞跃到了几十mhz的水平,并且很快超过了ttl电路100mhz左右的速度,这应当算高速cmos电路的开端。
至于现在更先进的cmos工艺,无非是在几个方面加以改善:1.减小线宽,同时降低电压;2.加少分布电容,比如采用低k介质,采用soi工艺(这种工艺实际上出现的比二氧化硅隔离更早,当时采用蓝宝石衬底,叫sos工艺,但由于成本问题没有得到推广);减小电阻,包括连线电阻(用铜代替铝)和mos管的沟道电阻(比如变形硅技术)。
其实,如果只考虑电路本身的相位抖动,并不在于电路本身的速度水平。抖动的大小取决于时钟频率和电路延时的乘积。简单的说:如果我们用能工作到100mhz触发器工作到10mhz,和用能工作到1000mhz的电路工作到100mhz,抖动水平实际上是差不多的;反过来说,用能工作到100mhz的电路工作到10mhz,和能工作到200mhz的电路工作到30mhz,两者相比,前者的抖动应当会小一些。
当然这儿首先忽略时钟本身的抖动,并且认为电路结果相同——这其中的原因大家仔细想一想就明白了。
要更进一步的讨论这些问题,我们必须分析cmos电路本身的工作状态,这里是在不合适。

最后:mf35_ 不要怪我说你不了解现在的单片机,[quote=mf35_ ]但是,那是定时器的定时输出,信号形态是一个短脉冲,无法输出占空50%的方波[/quote]我是针对你这句话说的,至于你是做什么工作的在这里不重要,但你这句话难免让人认为你不太了解这方面的知识。
离线BD6KF
发帖
1126
只看该作者 31楼 发表于: 2008-06-09
[quote=一异]现在很多单片机都有硬件定时器直接输出功能,比如8096的hso,再比如atmel mega系列的pwm输出……这些电路都可以很容易得到对称方波。关于这个问题,我只能说mf35_对现在的单片机了解太少。
我说电路本质上一样,包括两个方面:它们都是cmos电路,它们的定势部分都采用d触发器(偶尔可能用jk触发器),这部分电路的结构也不会有多大的差异。就触发器来说,相位抖动主要取决于时钟信号的上升/下降速度。只要不是设计得太差,通常次在同样的边沿误差都不会太大。至于参考时钟的抖动,只要采用了晶体振荡器,起码比lc振荡器高得多得多,通常不必考虑。
这种简单的方式产生频率与dds相比,除了电路简单,还有频率成分更简单的优点,不过缺点是要得到干净的载波信号,滤波太麻烦。[/quote]
哈!终于有人说到点子上了,加那吗多中周干什么?虑波的!
离线MF35_
发帖
179
只看该作者 32楼 发表于: 2008-06-09
[quote=一异]用计算来补偿中断延迟?似乎没有哪一种处理器能够知道自身的中断延时吧?
用(独占)最高优先级的中断,可以避免由于其他中断处理程序造成的延时,但无法避免由于指令周期不同导致的中断延时得不稳定。
认为cmos的抖动比bjt大,不知道根据是什么。
至于cmos电路的速度问题,真正的低速cmos电路是cd4000或者mc14000系列才对。cd4000系列的mos管之间,采用pn借隔离工艺,所以分布电容非常大,这是早期cmos只能用于低速电路的原因。
现代cmos电路大概是从74hc/hct系列开始的,主要采用二氧化硅隔离技术,这种技术使cmos电路的最高工作频率(t触发器的最大时钟频率)从1mhz以下飞跃到了几十mhz的水平,并且很快超过了ttl电路100mhz左右的速度,这应当算高速cmos电路的开端。
至于现在更先进的cmos工艺,无非是在几个方面加以改善:1.减小线宽,同时降低电压;2.加少分布电容,比如采用低k介质,采用soi工艺(这种工艺实际上出现的比二氧化硅隔离更早,当时采用蓝宝石衬底,叫sos工艺,但由于成本问题没有得到推广);减小电阻,包括连线电阻(用铜代替铝)和mos管的沟道电阻(比如变形硅技术)。
其实,如果只考虑电路本身的相位抖动,并不在于电路本身的速度水平。抖动的大小取决于时钟频率和电路延时的乘积。简单的说:如果我们用能工作到100mhz触发器工作到10mhz,和用能工作到1000mhz的电路工作到100mhz,抖动水平实际上是差不多的;反过来说,用能工作到100mhz的电路工作到10mhz,和能工作到200mhz的电路工作到30mhz,两者相比,前者的抖动应当会小一些。
当然这儿首先忽略时钟本身的抖动,并且认为电路结果相同——这其中的原因大家仔细想一想就明白了。
要更进一步的讨论这些问题,我们必须分析cmos电路本身的工作状态,这里是在不合适。

最后:mf35_ 不要怪我说你不了解现在的单片机,我是针对你这句话说的,至于你是做什么工作的在这里不重要,但你这句话难免让人认为你不太了解这方面的知识。[/quote]


不要断章取义,“比如关闭中断,使用绝对高的优先级,使用计算补偿”,只是几种提高频率精度的方法,我什么时候讲对中断延时造成的误差进行补偿了?
我说的补偿计算,指的是在关闭中断的情况下,对纯软件延时输出信号时做补偿,这个补偿是针对理论计算值而言的,因为软件产生波形存在累计误差,一般这个补偿在几个指令周期内进行微调。如果用中断实现波形的输出,是万万不行的,没有人知道发生中断的时候,中断延时是多少。

至于你说的某某单片机有某某功能,那请你先看看楼主用的什么单片机,stc,就是普通的51,所以,我是就事论事,任何讨论都是有一定范围的,如果我对提出主题提出反对意见,而你立刻用主题以外的东西来反驳我,那么本身你就是对主题的一种背离。而且你试图用特例来证明一个普遍的感念,这是不符合逻辑的。

你说的hso我也了解,和pwm其实是差不多的东西。
至于pwm,大家都知道那是干什么的,我就不多说了,没有人会把pwm拿来做载波吧。

而且关于hso和pwm我可以肯定的说他们的抖动性能比较差,你也说了,中断响应时的延时取决于中断发生时正在执行的指令,因为这条指令结束后中断才能执行。这就说明了中断实现波形输出不可靠,也无法估计。

那么hso和pwm就可靠吗,貌似他们的输出不需要由中断产生,但是,一个处理器内部在电路上也是有仲裁的,因此就有仲裁延时,这与中断延时类似,只不过一个在程序级,一个在电路级。处理器内部的各个模块并不是你想象的那样是独立的,说输出就输出的,跟公路交通一样,他们是有指挥的,这并不是你想的d触发器那么简单就了事的,这种电路级仲裁的现象只有处理器才有,数字pll以及dds都是没有的,所以单纯的讨论数字电路和coms工艺没有意义,关键是数字电路的结构。

比如说hso部件探测到满足了事件要求,要做一个电平输出,此时它会向输出控制提出请求,输出控制会根据当时各种信号的情况决定什么时候将这个电平输出到外部的gpio端口(注意这个过程非常短,但不确定)。处理器内部电路也是有时序的,而这个时序根据情况不同会有变化,所以严格来讲即使是hso的输出,在微观上也是不确定的,而这个微观的量虽然很小,要比用中断小很多,但是它也是存在的,它取决于处理器内部的结构以及门电路的扇入扇出系数。

所以这个微观的量不会造成频率误差,但反映在频域上就是相位噪声了。速度越高的处理器这个抖动越小,因为时钟频率高,内部仲裁延时非常小。而一般单片机速度在30m以下,这个内部仲裁延时还是比较可观的。如果你认为几十m甚至百m已经算是高速数字电路,我只能遗憾的说,现在不是90年代了,现在是21世纪。

关于coms工艺问题,我不想与你多做争论,再说cmos就远了,扯上这个只是为了从另一个角度说明问题,我主要阐述的内容是微处理器在输出信号抖动方面的性能,请不要主次不分。

至于说我了解不了解什么东西,跟本主题无关,即便我的话让你产生了误解,但是你也不应该对此发表主观评论,因为这评论是针对我个人的,而不是针对我们所讨论的问题,所以我可以原谅你的话,但不能原谅你对这句话的狡辩。
离线MF35_
发帖
179
只看该作者 33楼 发表于: 2008-06-09
好了,这个问题我能说的已经都说了,一通嘴仗,能让大家明白其中是怎么回事,目的也就达到了,再继续扯皮下去没有意思,有兴趣的朋友可以试着做一下,反正是自己作饭自己吃,酸甜自知,我们旁人也就是起个带头作用。很多问题本身就是仁智各见的,一异兄也不要因为我们的争论有什么想法,以后有问题还要向你请教。

问题也许永远辩不清楚,但辩论的本意从来就不是为了让正反方争个你死我活。
都洗洗睡吧
离线bd4igh
发帖
4250
只看该作者 34楼 发表于: 2008-06-09
研讨的不错,有理有据,就是道具少了点。
离线ncradio
发帖
11345
只看该作者 35楼 发表于: 2008-06-09
单片机的输出成分是非常复杂的,尤其是在频谱低端,用频谱仪扫下就知道了.
离线bitiwindy
发帖
107
只看该作者 36楼 发表于: 2008-06-10
还是上频谱仪吧,只有仪器才能说明相位噪声是低还是高。
离线BG7KH
发帖
4815
只看该作者 37楼 发表于: 2008-06-10
各位饶了楼主吧,他都不敢出声了.
离线一异
发帖
868
只看该作者 38楼 发表于: 2008-06-10
实际上这儿成了我和mf35_的战场了。
pwm把占孔比始终设成50%不就行了?
算了不说了,没什么意思。
离线BG7IBQ
发帖
21205
只看该作者 39楼 发表于: 2008-06-10
哈,世界独创的战场