📄 83.htm
字号:
启动程序,所以我认为这也是降低设备可靠性的一个原因。 <br>
为此,对嵌入式操作系统一直持怀疑态度。最近因为想到了解决 <br>
的方法,才开始考虑嵌入式系统这个方案了。 <br>
: 我的天哪,如果每个做工控的人都这么考虑自己的设备,工控岂不是比PC还好搞? <br>
: 不好意思,我还真没搞过工控,门外汉,不多嘴了^_^ <br>
工控好不好搞,我举一个你最熟悉的例子。XX做的大型集装箱检测系统,为什么现在 <br>
装备的不多,一个很重要的原因,就是因为XX的系统在自己的公司,检测什么问题都 <br>
没有,可是一装到人家那里,先是设备不工作,接着就是三天两头出问题,以至于要 <br>
请我认识的一个人,去现场指导,而我认识的这个人,其实是个销售,因为看的多了, <br>
有很丰富的实际经验。人家问我,说为什么XX做的东西,你们自己都搞不定! <br>
我无言以对! <br>
工控和PC最大的区别是,工控是一个随时随地都要保证可靠工作的东西,而PC是一个 <br>
随时随地都可能死机的东西。 <br>
就好像我做的这个东西,随时随地都得考虑,它是不是能稳定可靠的工作,死机了 <br>
怎么办,出故障怎么办?PC很好办,重启,大不了按电源,可是好多设备,尤其是 <br>
军用的,工控的,医用的,你不能这么办? <br>
这也就是为什么学生时候做的东西,被人称之为“玩意”,而不是产品,一个真实的 <br>
产品,它可能很简单,但是为了得到这个简单的设计,可能几代人的努力,仅仅只是 <br>
为了得到它! <br>
说得太多了,别见怪啊! <br>
愚人之见! <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br>
发信人: wangyyff (郁闷的大面瓜), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 12:34:42 2001) <br>
<br>
<br>
原来中断处理主要是因为程序跳转引起的总线信号变化而使得系统不稳定呀! <br>
那么你的所说的没有中断的顺序执行就是按存储器地址由低到高的一个指令一个指令 <br>
地运行罗?这样好像是不错哦。 <br>
不过当程序运行到最高地址时,是不是就停着了?还有如果程序里有for呀,if呀等等 <br>
类似的需要跳转的语句时是不是也容易造成程序跑飞呀?那我们是不是应该尽量避免 <br>
这些语句呀?不过如果没有这些语句好像程序很难编呀,大侠你是怎么解决的呀? <br>
<br>
<br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 为了搞清楚这个问题,我曾经把图书馆里所有相关的书籍,都翻了个编,然后把 <br>
: 手头上ADC的光盘中的所有应用资料与之相关的部分,都看了一遍。EMC问题可以 <br>
: 说是电路里最复杂的问题,虽然我一直都在这个问题上不断收集资料,但是仍然 <br>
: 不敢说就对这个问题有很好的理解,只能说入了一点门吧。 <br>
: 可能普通人很难想象,你的电路板放到一个大电动机旁边,平常工作的很好,但是 <br>
: 在大电动机启动瞬间,或者电磁继电器阵列开启瞬间,你的电路板总线上全是1, <br>
: 还有,如果你使用地址线的低位,做地址选通,你可能经常访问不了你的外设, <br>
: 因为经常这些位在随机翻动。 <br>
: 其实原因很简单,Ldi/dt,一个小的电感,任何导线,或者说电路中的任何东西都 <br>
: 有电感,而i=q/t=cu/t,di/dt=cdu/dt,任何电路中的东西都有电容,自己有节 <br>
: 电容,寄生电容,耦合电容,对其他东西有分布电容,或各种各样的杂散电容, <br>
: ................... <br>
<br>
-- <br>
===================================================================== <br>
新域名启动: <br>
英文版:http://www.cfly.org <br>
中文版:http://wangyunfei.yeah.net <br>
<br>
ARM (32位RISC) + RTEMS (完全FREE的军用操作系统), <br>
<br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 203.93.105.209] <br>
发信人: psun (sam), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 12:47:24 2001) <br>
<br>
你说系统的抗干扰性能,这没错,但是不是就那么绝对, <br>
比如用嵌入式操作系统,系统的抗干扰性能就不好,不用就好, <br>
如果真象你说的那么严重的话,即使程序是顺序执行的, <br>
读指令还是会读错吧,读写数据还是会出错吧,那我们大家什么都不用搞了, <br>
EMC问题不是这么就可以解决的。 <br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 为了搞清楚这个问题,我曾经把图书馆里所有相关的书籍,都翻了个编,然后把 <br>
: 手头上ADC的光盘中的所有应用资料与之相关的部分,都看了一遍。EMC问题可以 <br>
: 说是电路里最复杂的问题,虽然我一直都在这个问题上不断收集资料,但是仍然 <br>
: 不敢说就对这个问题有很好的理解,只能说入了一点门吧。 <br>
: 可能普通人很难想象,你的电路板放到一个大电动机旁边,平常工作的很好,但是 <br>
: 在大电动机启动瞬间,或者电磁继电器阵列开启瞬间,你的电路板总线上全是1, <br>
: 还有,如果你使用地址线的低位,做地址选通,你可能经常访问不了你的外设, <br>
: 因为经常这些位在随机翻动。 <br>
: 其实原因很简单,Ldi/dt,一个小的电感,任何导线,或者说电路中的任何东西都 <br>
: 有电感,而i=q/t=cu/t,di/dt=cdu/dt,任何电路中的东西都有电容,自己有节 <br>
: 电容,寄生电容,耦合电容,对其他东西有分布电容,或各种各样的杂散电容, <br>
: ................... <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 203.93.105.209] <br>
发信人: click (click), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 12:55:11 2001) <br>
<br>
<br>
其实在cpu的实现中,中断和普通的branch,jump指令并没有什么区别, <br>
<br>
都只是改变一下次的取指地址,然后设置某些特殊寄存器,在一个同步 <br>
<br>
cpu中,所有的寄存器改变都是由时钟同步的,在沿触发之前都必须有 <br>
<br>
一定的setup稳定时间的。因此我想没有你所说的积存器突然翻转的问题, <br>
<br>
除非你的电路本身就不符合cpu的时序要求。 <br>
<br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 为了搞清楚这个问题,我曾经把图书馆里所有相关的书籍,都翻了个编,然后把 <br>
: 手头上ADC的光盘中的所有应用资料与之相关的部分,都看了一遍。EMC问题可以 <br>
: 说是电路里最复杂的问题,虽然我一直都在这个问题上不断收集资料,但是仍然 <br>
: 不敢说就对这个问题有很好的理解,只能说入了一点门吧。 <br>
: 可能普通人很难想象,你的电路板放到一个大电动机旁边,平常工作的很好,但是 <br>
: 在大电动机启动瞬间,或者电磁继电器阵列开启瞬间,你的电路板总线上全是1, <br>
: 还有,如果你使用地址线的低位,做地址选通,你可能经常访问不了你的外设, <br>
: 因为经常这些位在随机翻动。 <br>
: 其实原因很简单,Ldi/dt,一个小的电感,任何导线,或者说电路中的任何东西都 <br>
: 有电感,而i=q/t=cu/t,di/dt=cdu/dt,任何电路中的东西都有电容,自己有节 <br>
: 电容,寄生电容,耦合电容,对其他东西有分布电容,或各种各样的杂散电容, <br>
: ................... <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.156.181] <br>
发信人: hongchen (kissing-fire), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 19:32:55 2001) <br>
<br>
<br>
【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br>
: 原来中断处理主要是因为程序跳转引起的总线信号变化而使得系统不稳定呀! <br>
: 那么你的所说的没有中断的顺序执行就是按存储器地址由低到高的一个指令一个指令 <br>
: 地运行罗?这样好像是不错哦。 <br>
: 不过当程序运行到最高地址时,是不是就停着了?还有如果程序里有for呀,if呀等等 <br>
: 类似的需要跳转的语句时是不是也容易造成程序跑飞呀?那我们是不是应该尽量避免 <br>
: 这些语句呀?不过如果没有这些语句好像程序很难编呀,大侠你是怎么解决的呀? <br>
我当然不是说所有需要跳转的指令都不可以用,我觉得你有点钻牛角尖。 <br>
中断这种方式CPU到底是怎么取指的,CPU芯片内部电流怎么流的,我也不知道,但是可以 <br>
肯定的是,中断方式取指与平常的跳转肯定不是一样的。一定会在芯片内部产生不同于 <br>
平常程序指针只是简单的增加所产生的电磁波,而且此时由于节电容和各种杂散电容导致 <br>
的IO电流变化,肯定不同于普通的跳转。 <br>
我曾经用一个很简单的程序去试过。查询方式就是比中断方式稳定。 <br>
我在前一篇文章里也曾经说过,如果你只是做民用的东西,你不必在意。 <br>
<br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br>
发信人: hongchen (kissing-fire), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 19:43:02 2001) <br>
<br>
<br>
<br>
【 在 psun (sam) 的大作中提到: 】 <br>
: 你说系统的抗干扰性能,这没错,但是不是就那么绝对, <br>
: 比如用嵌入式操作系统,系统的抗干扰性能就不好,不用就好, <br>
我不是说不用就好,也没有说用就好,什么问题都不是绝对的,而且对于民用 <br>
的东西,追求的是界面的个性化以及美观,即便经常死机,你也能忍受。Windows <br>
老死机,你不也经常在用吗?也没有见你去用linux吧! <br>
: 如果真象你说的那么严重的话,即使程序是顺序执行的, <br>
: 读指令还是会读错吧,读写数据还是会出错吧,那我们大家什么都不用搞了, <br>
但是二者出错的概率会是一样的,那你怎么解释使用嵌入式操作系统的监护仪 <br>
在医院倒一次闸的时候,一次死机18台呢?而另一家医院用的是一个根本不使用 <br>
嵌入式系统的单片机系统的监护仪,却200台很少坏,也很少死机。 <br>
: EMC问题不是这么就可以解决的。 <br>
EMC问题当然不是这样就可以解决的,EMC问题是一个综合问题,所以在我的新系统 <br>
里,即便使用Vxworks,也还是会使用工控里最老土的方法,来提高系统的稳定性。 <br>
但是不可否认的是,使用顺序执行的程序,同时辅以外部的监控,可以有效地保证 <br>
程序不跑飞,而且即便跑飞,也可以迅速回到上一个程序块。 <br>
我再举一个实际的例子。如果你的程序ROM没有用满,你怎么办? <br>
日本的一个仪器的做法,是将程序分片,在片间加上判断语句,如果程序是跑飞的, <br>
可以根据引导自动返回最近的程序块,整个程序依据顺序执行而分成若干片。 <br>
人们都说,汇编语言是不可以结构化的,可是任何语言都可以结构化编程,关键在于 <br>
你会不会动脑筋。 <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br>
发信人: hongchen (kissing-fire), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 19:48:57 2001) <br>
<br>
<br>
【 在 click (click) 的大作中提到: 】 <br>
: 其实在cpu的实现中,中断和普通的branch,jump指令并没有什么区别, <br>
: 都只是改变一下次的取指地址,然后设置某些特殊寄存器,在一个同步 <br>
: cpu中,所有的寄存器改变都是由时钟同步的,在沿触发之前都必须有 <br>
: 一定的setup稳定时间的。因此我想没有你所说的积存器突然翻转的问题, <br>
: 除非你的电路本身就不符合cpu的时序要求。 <br>
我不这么认为,在VHDL语言中,用FPGA实现CPU的功能,如北大和中科院的做法, <br>
那实现的只是CPU的功能,而不是真正的CPU,真正CPU的内部,在中断、取指和跳转, <br>
以及普通程序指针累加的过程中,内部电流怎么流的,内部各种节电容,杂散电容 <br>
电量导致的瞬间电流变化,怎么会是一样的。如果是一样的,那么就没有必要设计 <br>
EMC的单片机了。 <br>
而且你说的是CPU按时序动作,如果CPU一切都按你设计的那样,那么它怎么可能死机? <br>
<br>
<br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br>
发信人: wheregone (猫猫), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 20:46:34 2001) <br>
<br>
还是自己用三极管搭CPU吧,这样放心了 <br>
<br>
<br>
<br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 我不这么认为,在VHDL语言中,用FPGA实现CPU的功能,如北大和中科院的做法, <br>
: 那实现的只是CPU的功能,而不是真正的CPU,真正CPU的内部,在中断、取指和跳转, <br>
: 以及普通程序指针累加的过程中,内部电流怎么流的,内部各种节电容,杂散电容 <br>
: 电量导致的瞬间电流变化,怎么会是一样的。如果是一样的,那么就没有必要设计 <br>
: EMC的单片机了。 <br>
: 而且你说的是CPU按时序动作,如果CPU一切都按你设计的那样,那么它怎么可能死机? <br>
<br>
<br>
-- <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -