*注:此文专为21IC而著,可以转载,但需保留本说明,否则将可能导致版权追究
Proteus可能是本版面最受争议的软件之一,我骂他,同时也因为骂他而受别人骂,所以今天我就来告诉新同学们为什么Proteus是菜鸟杀手(老鸟请自觉跳过本帖,你们用不用Proteus都是那么回事)。
严重声明:本人与地球上任何销售软/硬件仿真器的公司、组织、利益团体或个人没有任何利益瓜葛。本文观点仅代表个人见解,不承担围观者因本帖而导致的任何技术错误、软硬件损失、经济损失、精神损失;因新同学围观本文导致的仿真软/硬件设计、制造和利润下滑情况与本人无关!
为什么老鸟用Proteus与我无关,因为他们知道什么是硬件,而菜鸟不知道。为了说明这个问题,我们先跑题到达芬奇画鸡蛋的故事上去,这个故事告诉我们,世界上没有两个长相完全一样的鸡蛋。
OK,现在我要告诉你,世界上同样没有两个长相完全一样的硬件系统。不信么?你找一张光盘,把它复制一张,然后用计算机程序来校验,程序会告诉你,他们完全一致(说俗一点就是他们上面0和1的排列顺序是一样的)。那么现在请你找两只电阻,两只标称阻值都是10k的电阻,请你量一下他们的阻值相同么?什么?你说相同?那是因为你的3位半万用表不够精确,你用10位半的量一下呢,但是在电路图上,他们都是10k,或者至多再标个±5%之类,Why?这就是硬件——世界上没有两个完全一样的硬件。
可以说,当一个软件被编写完成之后,他的一切行为就是确定的了(具有事件驱动架构的程序除外,本括号仅为避免被其他老鸟痛批,新同学请无条件跳过),烧录进10000个单片机去,都是同一个软件。但是当一个单片机产品被设计出来后,生产线上所加工出的每一个产品,都有着不同的特性。比如三端稳压器7805,不是每一个的输出电压都在5.000000000V上的,有5.01的,有5.03的,如果你的单片机系统有设计缺陷,对5.01V的可以工作,对5.03V的就要出错,这就是硬件的特点——离散性!
硬件设计中很大的一部分工作就是在“容差”,就是说我们明知道构成系统的每一个元器件都有误差,却能够通过概率统计、理论计算,让系统工作起来,这是一项很繁杂的工作,有很多老鸟在设计中会用“经验”二字来代替计算,这通常是没有什么问题的,放生产实践上看,出个万分之一的废品率也就不得了了,但是对正在学习工程思想的菜鸟就是毁灭性的。
如果你不服上面的话,请自己看21IC的帖子,有多少菜鸟在把Proteus设计移植到现实中发生了困难!我甚至还见过LED数码管不加限流电阻就在Proteus里点的。
如果你还是坚定不移的认为Proteus是神圣不可侵犯的话,我再给你说一个:
单片机从休眠状态唤醒,对晶体和匹配电容的要求是很高的,如果激励不足,将导致无法唤醒,设计上除了要选择激励功率合适的晶体和仔细匹配晶体所需的匹配电容,还要在高、低电源电压,高、低环境温度的组合中做休眠唤醒实验以确认激励合适。
请问哪一个仿真软件可以完成上述工作?元器件这么多自然属性(精度、温漂、离散、老化、寄生参数)请问哪个仿真软件可以对每个元件建立精确的数学模型?
最后,再说下Proteus是拿来干什么的。应该说这个软件是给老鸟偷懒用的,比如调个串口通讯,写个I2C时序啥的还成,因为老鸟要的只是功能验证,硬件容差的原理他们已经在N年前就知道了。不过这个软件的作者也不厚道,起码应该在启动界面里做个“**”的标志吧!
末了,诊断自己是否菜鸟的方法是:问实际电路能运行,Proteus里不能仿真之类问题的是老鸟,反之,是菜鸟。
菜鸟请远离Proteus,老老实实去拿烙铁吧!