首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 尾页

中国人的z893要与德国人的CAN一较高低之四 点击:15543 | 回复:188



米d.

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:8帖 | 61回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2003年8月30日
发表于:2004-03-02 13:38:00
楼主
CAN 具有共亨广播的功能,但是德国人没有认真地研究透它, 就慌慌张张地定义在总线上了, 犯了一个大错, 而且是个致命的错。 z893就不一样了,它将共亨广播的功能定义为4个字节, 0100h、0101h、0102h、0103h, 并且将它组态到[引导帧]的固定位置, 即引导码的第3-7字节, z893称之为[高速信息通道]或是[高速公路]。 任何工作站向这四个字节写入了一个数据, 这个数据便会自动地在下个启动周期内, 更新引导码的第3-7字节, 在[软猫]的安排下, 收录在工作站的固定寄存器内[指在网的全部工作站]。 不需要任何线程的安排, 属准静态特性。 前者需线程的安排, 后者却不需要; 更为麻烦的是,由于CAN 是定长帧, 完全没有空间让它作这种升级, 真要升级, 恐怕就要重新制定CAN 3.0 的新标准了。 如果真打个比仿来说明两者之间的差别, 我只能说: CAN 好比是原始人刚刚发明了用绳子节算东西, 而z893已是春秋战国的秦始皇。[说过头了一点,别见怪,开个玩笑!] 为了加深对它的理解,我们下面结合一个实例看看, 假定某[老总]应[长虹总老总]的要求,派有这样一个设计: 需要通过PC显示屏上的一个菜单, 去控制[某未来星]彩电的音量。 *********************************************** 软件工程师接到这个任务之后,他将按下列流程编程: (1)约定[某未来星]的音量口地址=0101h单元, (2)约定d=#0ffh为最大,d=#00h为最小, (3)当[音量+]按扭按下后执行下面程序之一即可:[注]win98me 用Delphi5.0_汇编语言编写的这段程序。 asm lea ebp, d1300 mov al,04h mov [ebp+1],al //操作码=04h[加] mov al,01h mov [ebp+2],al //地址H=01h mov al,01h mov [ebp+3],al //地址L=01h mov al,01h mov [ebp+4],al //长度=1h mov al,00h mov [ebp+5],al //in:长度=0h mov al,01h mov [ebp+6],al //out:长度=1h [注]每次增量的数据已存d1500[0]单元 call a100 //[注]软猫子程序:启动交换,置音量+ end; 用高级语言编写的这段程序。 d1300[1]:=04h; //操作码=04h[加] d1300[2]:=01h; //地址H=01h d1300[3]:=01h; //地址L=01h d1300[4]:=01h; //长度=1h d1300[5]:=00h; //in:长度=0h d1300[6]:=01h; //out:长度=1h [注]每次增量的数据已存d1500[0]单元 a100; //[注]软猫子程序:启动交换,置音量+. *********************************************** 硬件工程师接到这个任务之后,他将按下列流程编程: (1)假定[某未来星]执行的cpu模块为51系列兼容的某单片机, (2)约定38H寄存器为音量控制工作区, [D/A] (3)约定d=#0FFH为最大,d=#00H为最小, 下面用ICExplorer.51汇编语言编写这段程序: MOV 38H, 65H ; 65H寄存器=[高速通道][数据库#0101H], 仅一条传送语句啊! RET *********************************************** 比较以上例程不难发现,勿论采用何种语言, emdos编程仅仅是个[贴字软件], 不仅非常简单, 而且在整个项目开发中: (1)软件工程师是采用何种方法置[音量+]或者是[音量-], 他不需要对硬件工程师加以说明; (2)硬件工程师采用何种单片机,使哪个寄存器, 他也不需要向软件工程师频频通报。 双方都具有相对的兼容性和灵活性。使用[高速通道],连程序都简化了。 如果用CAN ,或者其它的方式来实现,恐怕就要复杂多了。 在一个实际的工程中, 修改总是经常的, 软硬分家会极大地降低工程费用。 *********************************************** 小插曲: 硬件工程师是个[鬼],他连一句程序都想不写, 只将ROM地址0201单元内的#0FFH改写成#38H, OK! 竟然也能控制成功。 *********************************************** 是什么原因?留在下贴讲。 [后续] 米d. QQ158326068



wmye1974

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年12月08日
发表于:2006-12-08 17:30:00
181楼
我对CAN的一个问题有点困惑:
 
“错误被动”的节点对CAN总线的影响?
 
我的理解是:
 
1、可以收、可以发,但发的时候多一段“发射挂起”延时。
 
2、“错误被动”的节点如果接收了一些正确的消息后,可以有条件的变为“错误主动”。
 
3、“错误被动”的节点在发错误帧的时候,它所发的错误标志为隐性位。
 
这个地方我有点不理解,它所发的错误标志为隐性位,是不是意味着它发送和接收的失败,对总线没有影响?
 
是不是也意味着:假设总线上有三个节点,一个“错误被动”,两个“错误主动”。我让一个“错误主动”的节点发射消息,假设另一个“错误主动”的节点接收正确,并且正确给出了应答位。但是错误被动的节点,接收中发现错误,由于它发射的错误标志为隐性位,所以没有对总线上出现的错误给出标志,这也就是说,这次实际有错误的发射,没有被CAN系统发现。

SQINGBO

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2004年7月22日
发表于:2006-12-16 14:49:00
182楼
米d先生:
         您好!
     
   我想了解一下z893现场总线。
         请给我发一份z893的资料及演示程序,谢谢!
     
   信箱:sqingbo@163.com

LN2000分散控制系统

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 228回
  • 年度积分:0
  • 历史总积分:448
  • 注册:2005年4月20日
发表于:2006-12-28 17:30:00
183楼
提前祝大家元旦快乐!
顶!!!

LN2000分散控制系统

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 228回
  • 年度积分:0
  • 历史总积分:448
  • 注册:2005年4月20日
发表于:2006-12-28 17:37:00
184楼
 提前祝大家元旦快乐!
顶!!!

山伯孤蝶

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年9月10日
发表于:2007-09-10 10:19:00
185楼
米d先生:
       您好!
       请给我发一份z893的资料.
       zhangrenbai@163.com  
        同时也非常敬佩您的大公无私.
             祝您健康如意.    
             谢 谢!

发言

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 77回
  • 年度积分:0
  • 历史总积分:105
  • 注册:2007年3月28日
发表于:2007-09-18 18:27:00
186楼
给我也来一份!谢谢 tzy_383157323@qq.com 

ppp2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2004年8月28日
发表于:2007-09-18 20:43:00
187楼
米d先生:
         您好!
     
   我想了解一下z893现场总线。
         请给我发一份z893的资料及演示程序,谢谢!
     
   信箱:peipei02431@163.com

兜兜里有糖

  • 精华:1帖
  • 求助:1帖
  • 帖子:13帖 | 222回
  • 年度积分:0
  • 历史总积分:382
  • 注册:2006年6月19日
发表于:2007-09-20 11:23:00
188楼
横跨4年的帖子 能给我发一份吗 米D老师
zhang996138@163.com
希望你能看到毕近4年的时间了

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 尾页