您的位置:控制工程论坛网论坛 » 职业交流 » 中国人的z893要与德国人的CAN一较高低

vankingwh

vankingwh   |   当前状态:在线

总积分:8328  2024年可用积分:0

注册时间: 2009-03-02

最后登录时间: 2020-03-06

空间 发短消息加为好友

中国人的z893要与德国人的CAN一较高低

vankingwh  发表于 2010/8/10 10:08:18      570 查看 0 回复  [上一主题]  [下一主题]

手机阅读

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 ,或者其它的方式来实现,恐怕就要复杂多了。
  
  在一个实际的工程中,
  修改总是经常的,
  软硬分家会极大地降低工程费用。
1楼 0 0 回复