发表于:2003-11-23 12:50:00
81楼
回复颠颠:
您好!您贴子上的信箱我发不进,我又改发您注册的信箱了,请查收。其它的朋友ok!
回复wsgjyq:
您好!
CAN的[出错及纠错]原理是有点意思,它在其内部设置了一个出错计数器,
就如同我们给系统安置了一个看门狗一样,所不同的是看门狗是对固定的时间脉冲计数,称之为[线性]参数,
CAN采用的是[非线性]参数,即它将出错的来源分为N级,普通级为1,严重级为N,当然N>1;
因而发生严重错误时,能比看门狗获得更短的报井时钟。[wsgjyq先生认为这是一个卖点]
我们接着往下看:
[当计数器达到255时,该节点脱离总线,且只有在硬件复位后,才能恢复工作状态。]
_摘自《今日电子2003.5.P31》Dallas/Maxim集成产品公司Gert N. Helles(丹麦)
用另一句话讲,该节点被[蒸发]了,在[局部网]上消失得无影无踪了。这种处理结果为毕是个好办法。
在一个实际的应用系统中,会带来一些不良的后果:
其一网络菅理员可能难以发现这个节点已出故障。
其二由这个节点引发的系统参数而产生的二次调节有可能产生灾难的后果,
麻烦的是由于不知[为何原故],容易导致网络菅理员采取错误的对策。
其三现场维护处理带来盲目性:
1.将复位重新合上,[通常都是这样做的]如果好了,大家欢喜,也可以获得老板的好评,
“某某就是行,几秒钟就解决问题!”
2.如果引发了更严重问题,他自己也[沙]了,还会遭到老板的[训斥],
“怎么搞的,你就那么毛!”
3.如果又跳了,甚至换一块新板也始终连不上网,您就会跳起脚来,大骂芯片的设计者,
完全没有考虑现场维护的基本测试要求,老板也会背后[滴沽],
“要不要请高手来?”言意之下,您是低手了。[设备没修好之前,老板象孝子,是不敢得罪人的]
其实大家都是[盲]人,当然出毛病多了,[久病出良医]那是另一会事。
wsgjyq您是搞过维护的,这种胡里糊涂的方式,您也认为是一种卖点吗?
可测试性和可预井性是一个好的网络所追求的目标,它不仅会给产品研制方带来好处,
也会给下游的销售商及用户都带来好处,至少维护这一块就会少许多银子。
z893_emdos是这样处理的:
在操作系统中,设置了许多[软件陷井],通这些[软件陷井]对网络中由硬件及[应用软件]所引发的错误加以分析,
以代码的方式记录在案,并以广播的方式通知在线的所有节点。[详见附录2.在本栏的中间]
这种故障的发生,是以次为计算的,它保留了7次历史记录,从而告诉了网络管理员,
这是一个孤立的突发事件,还是一个不可逆事件,
由操作员或预先安排的程序作出相应的决策,而不一定是需要[在线蒸发],
比如当CAN某节点是处理汽车上的[气压]参数,如果[蒸发]了,会带来什么样的后果?!
下面简单地介绍一下z893代码报井表中的[02设备号错]功能,以供同行们设计参考:
[02设备号错]
1.一个正确的z893指令,具有确定的时间周期:
一个节点,在串行输入7个字节的时间之内,同时通过串行输出口发出5个字节的应答周期,
少于5个字节为无效周期,因此它是全双工的,实时的。
emdos在out7个字节之后,其间没有收到正确的应答信号,就将接着启动下一个7字节周期,
中间没有设置任何等待时间,用示波器看去:一个一个信号,象流水一样,没有间断。
由于emdos在发布指令周期的同时,串行输入口已预读了需要执行的指令周期,故名[全双工流水线]。
[全双工流水线]能够极大地提高[现场总线]的效率。
2.如果节点输出了>1字节的信号,
emdos就要[比对]该字节[1]是否与out字节中的[1]信号相等,不等就置[02设备号错],
巧妙的在于节点应答的不是[原码],而是[反码],
这就可以检测出包括线路在内的所有节点RAM的硬件状况,任意Bt的错误都不能获得正确的执行,
都将引起[02设备号错],并将无条件返回,形式跟[蒸发]一样,但是它是[受控]的。
举例讲:
emdos输出的节点地址如果是#55H的话,节点回答的应是#55H的反码#0AAH,
如果线路上有干扰,或者是串行有输入输出短路,或者是芯片中的RAM有毛病,
都将使#0AAH发生异变而产生报井,
报井的性质码[02]置显示通道01EAH单元,
报井的设备号[55]置显示通道01EBH单元,
所有的节点都将会收到该报井而作出相应的对策。
wsgjyq先生,这种报井不是更有[卖点]了吗?!
我觉得报井只能算个[小]事,因为报井总是少的,它也可由其它方式来保证,
我们不能期望某个系统老出毛病,那样的话,用户就会叫生产厂家下不了台,
我以为一个现场总应该是价廉、好用,能够兼容主流操作系统,比如PC-windows,
可能您又不喜欢听了,886!!
med. 2003.11.23
附录3 《显示工作区中的特殊标志》
[数据库显示工作区] [@EA]=[报井的性质码.@38]
[数据库显示工作区] [@EB]=[报井的设备号.@39]
[数据库显示工作区] [@EC]=[显示指针.@2C]
[数据库显示工作区] [@ED]=[高速指针.@2E]
[数据库显示工作区] [@EE]=[低速转高速指针.@28]
[数据库显示工作区] [@EF]=[高速设备号范围.@29]
[数据库显示工作区] [@F0-@FF]=[设备在线的设备号.#0-F标识]