关于DeviceNet开发环境的问题 点击:3468 | 回复:18



awa405

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-16 00:17:00
楼主
这几天有网友来电来信咨询关于DeviceNet开发环境的问题。就我本人而言,DeviceNet产品的开发和其他嵌入式系统开发有着共同之处,建议首先搭建一套适合于单片机或者更高层次CPU软硬件系统的环境,在开发单片机或者更高层次CPU的应用系统基础上再考虑追加DeviceNet产品的开发环境。 1. 首先,关心一下DeviceNet开发所涉及的芯片,下面我摘录ODVA China 2002年第1期Newsletter 的有关内容如下: DeviceNet 设备使用 CAN 芯片实现数据链路层功能,但 DeviceNet 协议是用附加的软件,在一另外的微处理器中实现的。较复杂的从站设备和主站/扫描器则使用单独的具有分立微处理器的 CAN 芯片。以下是专家针对不同用途的适当组件的建议(根据专家经验,并非完整列表): 主站应用:需要更强大的处理能力,建议使用具有分立微处理器的独立 CAN 芯片如下:  Intel 82527  Philips 82C200 (停产)  Philips XJA1000 (替代 82C200) 微处理器:  80186, 至少 25-40 MHz  80386, (选择此芯片前,应确认中断等待时间) 内存:  64K RAM ,(如可能,建议更多)复杂设备应用或远程/模块 I/O:典型使用分段报文传输(报文大于8个字节),并需要较之简单设备更强的处理能力和内存。可以选用上述推荐的组件,或使用下列高端的CAN微控制器:  Siemens C167CR  Philips XA-C3 简单设备:典型使用非分段报文传输(8 字节或更小的I/O),较低的 CPU 和内存要求。可使用下列低成本的 CAN 微处理器:  Philips 82C592 (replaced by XA-C3)  Philips XA-C3  Motorola 680HC705X4  Motorola 680HC705X16 (mask ROM)  Motorola 680HC705X32  Siemens C167CR  Siemens C515C8 我的应用体会是,仅限组2的从站设备,只要任一款带CAN接口的单片机(至少支持CAN2.0A)足亦,现在流行使用ISP技术的单片机,我觉得Atemel的T89c51cc01就可以,另外根据运算速度的需要可以选用三菱的H300系列的H3687,也是ISP编程,带CAN接口,16位的内核。要是做一些稍微复杂功能的CAN总线监控,选用Philips的SJA1000独立CAN控制器加一款通用的单片机就不错。 2. 其次是单片机的开发环境,那要根据单片机的型号来定,如果是CAN内嵌式的单片机最好是此单片机型号专用仿真器,这样就可以在调试环境里看到CAN的帧信息。值的一提的是,Keil 6.0以上版本支持针对内嵌式单片机部分型号的CAN信息的软仿真,这对于ISP编程的单片机来说,可以用不着仿真器了。 3. 最后就是DeviceNet的模拟主站和支持一致性测试软件的PC卡的选用了。这里首先要说的是,DeviceNet的模拟主站可以不单单是PC卡,也可以是其他设备,如PLC、与PC机以串口连接的适配器等,但一般在PC机上采用软件环境进行操控,如AB的RSlinx建立下的Rsnetworx环境,OMRON的DeviceNet Configurator 环境等。一般开发团队会选择PC卡,这是因为在建立模拟主站的同时,还考虑到一致性软件自我测试的问题。DeviceNet产品需要进行一致性测试,在提交认证实验室之前用一致性测试软件进行自测试是我们研发人员的一贯作风,毕竟这样可以确保心中有数,还有可以大大节省银子。 下面我就罗列一下支持DeviceNet一致性测试软件的PC接口CAN卡: 1) SST 5136 - DN 2) Softing CAN-AC1-PCI/DN 3) Softing CAN-AC2-PCI 4) Softing AC1 5) Softing AC2 6) Softing AC/527 7) Softing CANcard-SJA 8) Softing CANcard2 9) Huron NetWorks DN-PC2 10) IXXAT iPC-I165 11) IXXAT iPC-I320 12) IXXAT tinCAN 13) Allen Bradley 1784-PCD rev B or higher 这些接口卡大多是ISA插槽的,购买时一定注意,其中SST和IXXAT的国内都有代理,Huron需要到国外定购。另外需要注意的是目前使用的DeviceNet一致性测试软件版本是A15,只能在Windows3.1/95/98环境下,不能在WindowsNT或者更高版本操作系统下。ODVA即将推出的A16软件支持WindowsNT和XP,网站上有介绍,但是不知道什么时候可以购买。 4. 最后,开发DeviceNet产品需要一些成熟的DeviceNet主站、从站产品组建一个简单的DeviceNet网络,这个作用有两个方面,一是便于进行MAC ID重复检验功能的调试,另一方面也有利于检验产品的互操作性。一般的可以购买OMRON的CJ1做主站,这个相对比较便宜,另外可以购买一个简单的DeviceNet I/O模块,最好可以手动选择站号和波特率的,以便于调试,上海电器科学研究所的DT-ID16或者DT-OD16就可以。 2003-3-31



awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-03-31 09:54:00
1楼
对不起,以上文章中有个笔误:H300系列是Hitachi日立的芯片。

zff

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2003年5月27日
发表于:2003-05-28 10:42:00
2楼
其中SST和IXXAT的国内都有代理,在那里。找不到

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-05-29 09:05:00
3楼
支持! 最近正在写使用RSNetWorx组建一简单的实验网络的文章 有兴趣的朋友可以到http://xfspace.y365.com/dn_main.html查看 高手就可以免了:)

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-02 12:25:00
4楼
远方: 你的网页上的文章我读了,写的很好,继续写下去呀!

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-02 12:52:00
5楼
呵呵,谢谢 有时间就继续写,还没有完

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-03 08:42:00
6楼
远方: 我正在自己尝试开发类似SST的PCI主站卡,我的基本思路是开发一个基于Windows2000的PCI板卡,带DeviceNet接口,然后先开发一个简单的上位机软件环境,可以根据DeviceNet协议解析CAN报文,支持扫描机制,不知道你在这一方面有没有尝试?不管你有没有,给我一些建议。

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-04 14:54:00
7楼
呵呵,恭喜啊,这方面的尝试非常有意义,我没有完整的去规划和尝试过做一个模拟的主站,但在年初的时候,我的从站设备要上生产线时需要搭建一个测试流程,让生产线上的操作人员可以很方便的测试产品本身是否有问题,当时我就试着做了一个测试节点,此节点模仿主站与从站进行连接,并在建立POLL后与从站进行N次IO报文交换,此N值可以由用户指定,完成交换后会关闭连接,然后把从站的数据整理后发回PC,操作人员就可以看到测试的结果如何。 所以,做主站的难点我想不是与从站进行连接上,因为这都可以从别人的主站向从站连接的报文中清楚的看到,而对于如何用一个主站管理63个从站倒是一个大问题,要充分考虑到63个节点中,如果第一个都支持256bytes的IO数据,那你如何去映射这些地址到CPU的内存地址,然后如何高效的对各从站进行管理,如报文优先级的确定,然后每次扫描完总线所需要的时间,如何缩短此时间值等等。。。 由于我的主站项目还没有正式启动,所以我的准备还有不足,不过我觉得这样的讨论很有效,以后多多联系啊

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-05 09:20:00
8楼
远方: 如上所说对我帮助很大,能不能详细的告诉我主站如何与从站建立连接的,(在预定义主从设备中)

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-06 08:22:00
9楼
远方: 非常感谢你的指点,我现在是打算分两步走,先做简单的主站或者模拟主站,然后在此基础上追加功能,然后再寻求其他从站供应商一起组建小型系统,先用起来,最后再根据实际情况不断完善。 主站的工作量主要在于两个方面:一是板卡以及板卡基于WIN2000系统的驱动程序,二是测试环境和应用环境,也就是应用层代码的开发,这些都需要一定的工作量,随着不断的深入,估计少不了你的帮忙。

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-06 08:33:00
10楼
awa405:指点当然不敢当啦!一起讨论倒是真的,毕竟我也没有实际做过,但这也总是长久以来的理想,做DeviceNet开发,当然希望有机会开发主站,不管对公司,对国内市场还是对自己,都是一个挑战。我想我比较支持你的想法,关于你提及的两个方面,第二点没有问题,第一点是否可以先借助其它厂家的PCI接口卡来实现?毕竟不用花太多时间去研究PCI及其在2000系统的驱动等问题。 ieee: 你的问题一两句还说不清楚,且我想就算说清楚了对你也不会有大的帮助,因为你必须从总体上去知晓这种连接机制才可以完成你的开发,所以,你可以去看协议.如有问题可以一起讨论啊

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-06 08:44:00
11楼
远方: 实际上我们这里已经投入了一些兵力基于SST的板卡接口驱动程序在做事情,但是我觉得,用别人的板卡始终受制于人,而且如果就想做一个简单的,比如说节点少一点的,10个点,就没必要开发大而全的主站。另外,想深入做,就必须从基本做起,这样才有前途,而且,从目前的市场应用来讲,软件不值钱,除非你板卡硬件和主站软件一起做,才可能有一点市场份额。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-06 14:07:00
12楼
awa405: 我不知道自己算不算也是要做一个模拟的主站,我是开发电力监控系统软件的,目前软件需要支持devicenet协议,不过我只是使用软件来实现devicenet协议里的预定义主从体系结构,应该比较简单,但是有些问题还是搞不懂。比如:对于主站来说发送(或接收)IO信息和显示信息到底有什么不同,只是接收后的处理不同。一个主站(或者从站)允许同时发送多条报文吗?我认为可以,因为一个设备可以具有多个连接对象。请您多多指教。

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-06 16:25:00
13楼
1。“对于主站来说发送(或接收)IO信息和显示信息到底有什么不同,只是接收后的处理不同。” 对于主站来说,发送IO报文和显式报文从CAN报文结构来说是一样的,但是从功能角度来说,IO报文比较简单,以POLL格式为例,只要标识符(连接ID)+数据(从站的IO组合对象INPUT实例字节);如果同样的内容想用显式报文获得,需要标识符(连接ID)+服务代码+类代码+实例ID+属性ID,比较长的报文,另外,对于相同从站设备,主站发出的显式报文和IO报文的连接ID是不同的,你可以参照Specification第5章后面和第7张开始部分内容。 对应的接收肯定也是不同的,从站设备的显式报文是组2信息,IO报文的回应有可能是组1信息。这个具体内容也可参照Specification第5章和第7章。 2。“一个主站(或者从站)允许同时发送多条报文吗?我认为可以,因为一个设备可以具有多个连接对象。” 这里我不太明白你的意思,“同时”是指同一个连接ID吗?对于主站来说,肯定是有许多连接对象的,而一个从站设备,一般有两个连接对象:IO连接对象和显式连接对象。主站需要根据所有从站的连接对象的总数来开设网络需要的连接对象数目。 这一方面的问题可以看出,你还是对于Specificaion第一卷的内容没有看全,或者没有看懂。你如果要开发主站产品,我的建议,你应该仔细通读Specification的内容,不好走捷径的。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-08 08:30:00
14楼
awa405: 谢谢你,很抱歉我没有表达清楚我的意思。比如说一个从站一般有两个连接对象,那么在IO连接对象接收数据的同时,显示连接对象也可以接收数据(或者是发送数据)吗?我没有从规范中找到这点说明。

awa405

  • 精华:4帖
  • 求助:0帖
  • 帖子:17帖 | 63回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2002年12月13日
发表于:2003-06-09 08:12:00
15楼
在IO连接对象接收数据的同时,显示连接对象也可以接收数据,也可以发送数据

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-10 09:06:00
16楼
远方:你所说的“要充分考虑到63个节点中,如果第一个都支持256bytes的IO数据,那你如何去映射这些地址到CPU的内存地址,然后如何高效的对各从站进行管理,如报文优先级的确定,然后每次扫描完总线所需要的时间,如何缩短此时间值等等。。。”我不是很懂,能不能再解释清楚一些。因为我目前开发主机应用层的代码,急需要这方面的内容,很需要你的帮助。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-10 09:17:00
17楼
还有一个问题就是上面的回答“在IO连接对象接收数据的同时,显示连接对象也可以接收数据,也可以发送数据."可是我又在想,显示对象发送数据可以,它应该不会接收数据,应为总线的仲裁机制总会让一条报文先到,另一条报文后到,不知我的理解对不。是不是可以这么说:devicenet机制使得在应用层我们可以认为两个不同的连接对象可以同步的接收(或发送)报文,那么我就不知道在自己开发主机应用程序时,是让其具备可以同时接收两种类型的报文呢,还是按照以前的逻辑一条一条的接收呢?真的希望各位高手帮帮我

scarecrow

  • 精华:1帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2001年12月13日
发表于:2003-06-16 00:17:00
18楼
报文是一条一条收到的啊,收到一条回复一条,I/O报文和显式报文的报头不一样,分别处理就可以了。

热门招聘
相关主题

官方公众号

智造工程师