DND论坛 你的意见 设为首页 加入收藏 联系远方

系统主菜单

新闻更新

CAN&CANopen

DeviceNet

开发笔记

DND论坛 

本站留言 

网络链接

精彩文集

关于DND

热点文章点击

黑客故事之第八军团 2003-12-28[20173] 

简单的DeviceNet开发实验网络搭建(一) 2004-01-04[12953] 

CAN总线浪涌保护的简单方法 2005-06-06[10662] 

關於新增sunny為版主的公告 2009-02-20[8970] 

DeviceNet—开发者指南(远方译自CIA) 2004-01-04[7905] 

最新回复文章

DeviceNet中的对象概念 2003-12-29[5162] 

DeviceNet—开发者指南(远方译自CIA) 2004-01-04[7905] 

简单的DeviceNet开发实验网络搭建(一) 2004-01-04[12953] 

Producer/Consumer网络通讯模型 2004-01-04[4145] 

关于CAN物理层协议的探讨(远方译) 2005-03-16[7666] 

路,在脚下延伸……我坚定而执着地走着!

你的位置:DND首页 > DeviceNet > 阅读文章


 

基于IC1220从站芯片的DeviceNet产品设计

时间:2016-07-10 阅读750次

 

 

前言
DeviceNet现场总线是由美国Rockwell公司开发,并由ODVA(Open DeviceNet Vendor Association)公益组织维护升级的一种工业通讯系统。DeviceNet的底层通讯基于成熟的CAN技术,具有较好的抗干扰能力和现场适应性,上层采用CIP通讯协议,可以将各种工业设备连接到总线,实现及时可靠的数据交换。
DeviceNet总线定义了产品间的互操作性,保证了众多供应商之间的产品可以互相联结交换数据,减少了配线和安装工业设备的成本和时间,同时标准的通讯协议还提供了各产品间强大的诊断功能,让系统的维护更简单易行。
DeviceNet是一种简单有效的现场级设备互联网络,大量应用于工厂自动化控制系统,如汽车生产线,机器人控制等,因此,开发DeviceNet接口可以提高设备的工业连网能力,将设备快速接入DeviceNet控制系统,提升产品的市场竞争力。

1. DeviceNet开发方案介绍

由于DeviceNet是一种先进的工业通讯网络,因此通讯协议也相当复杂,开发DeviceNet设备是一件很有挑战的工作。目前可行的方案分为如下几种,下面进行说明。

1.1 自行开发

自行开发DeviceNet接口可以先向ODVA组织购买协议,在充分阅读理解协议后,建立开发测试环境,并开始设计相关硬件和固件程序,随后进行测试,有条件时可以购买一致性测试工具,对所开发产品进行测试,通过一致性测试的产品,才具有较好的协议兼容性,可以上市销售。
此种方案基于对协议的阅读理解基础上从0开始开发,难度相当大,就算开发完成,也需要较长时间的测试及市场检验方能稳定运行,耗时耗力,如果总线产品对于公司来说是非主力产品,则不建议此种开发模式。

1.2 商业协议栈

对于很多企业来说,如果具有一定的开发能力,而产品的销量也比较大,则购买商业协议栈是一个不错的选择。一般的商业协议栈包括DeviceNet协议的功能源代码,需要用户自己开发好硬件平台,通过修改协议栈中的硬件相关部分代码,进行移植,大多数商业协议栈的供应商可以协助你进行移植(可能会收费)。
此种方案需要一次性购买协议栈源代码,费用较高,但后面的产品出货不会再产生成本,对于企业规模较大,且产品出货数量大的公司比较合适。

1.3 嵌入式模块

对于规模小,出货零散的公司来说,嵌入式模块是一种快速实现DeviceNet接口的方式,嵌入式模块将DeviceNet协议集成到一颗芯片,并已经将芯片运行周边必须的硬件元件设计好,封装成一个模式,用户只需要使用简单的串口通讯对模块进行必要的参数设置,就可以启动模块进行总线通讯。
嵌入式模块的单体成本相对较高,因此适合出货量小,但对成本要求不高的场合。

1.4 专用芯片

与嵌入式模块相对,专用芯片的成本将会低很多。DeviceNet专用芯片将协议集成到一颗芯片内,用户根据芯片厂家的参考电路自行设计硬件,将芯片运行必须的周边元件一起设计到自己的电路板上,未来生产时,只需要购买专用芯片即可。
专用芯片在让用户快速实现总线接口的同时,能大大降低单体采购成本,功能与嵌入式模块相同,是出货量在中小规模的公司首选的总线接口实现方式。
本文重点介绍使用Wisgem的IC1220从站芯片实现DeviceNet接口的方法。

2. IC1220从站芯片介绍

IC1220芯片是上海智曜(WISGEM)推出的一款DeviceNet从站芯片,较小的封装非常容易集成到用户的电路板上,同时厂家提供了完整的参考电路,以保证用户设计的DeviceNet接口满足协议的物理层要求。
IC1220芯片规格如下:

芯片型号: IC1220
芯片封装: LQPF48
供电电压: 3.3V
总线接口: CAN
总线协议: DeviceNet Group 2 only connection,Polled IO connection
接口类型:
MIF-用于参数配置
SCI-用于参数配置和IO数据交换
SSC-用于移位寄存器连接
接口协议: Modbus RTU,
IO数据: 输入128字节,输出128字节

IC1220芯片集成了DeviceNet Group 2 only连接协议,可以与主站建立连接并交换数据,MIF接口和SCI接口是异步串行接口,可以通过单片机的UART口,使用Modbus协议与IC1220芯片进行通讯,对芯片的参数进行设置,并启动芯片运行。SSC接口是同步串行接口,可以连接外部移位寄存器,如HC595,HC165等,自动实现数字量输入输出功能。
IC1220外观如下图所示:

IC1220采用LQFP48封装,其引脚定义如下图:


3. 从站设计

使用IC1220来设计一个DeviceNet从站产品,用户不需要过多的了解DeviceNet协议相关的内容,只要了解一些基础信息即可,如波特率,站号,IO数据长度等。用户可以选择任何一款带UART串口的单片机或ARM等,即可实现从站功能。

3.1 硬件设计

单片机与IC1220芯片的连接如下:


由上图可知,一般单片机可以使用UART异步串口与IC1220的SCI接口连接,因为SCI接口即可以实现参数配置,也可以实现总线IO数据交换,使用比较方便。对于DeviceNet接口设计,IC1220芯片内置了CAN模块,用户只需要参考厂商提供的参考电路,就可以轻松实现CAN驱动电路,CAN的驱动电路也就是DeviceNet总线的接口电路,可以设计成隔离的,也可以是非隔离的。
另外,DeviceNet从站通常使用一个8位DIP开关来设置站号和波特率,也可以使用2个旋转开关,同时还有两颗红绿双色指示灯MS和NS,IC1220芯片集成了开关和LED灯的输出功能,用户只需要使用芯片的SSC接口,外接一颗HC165连接8位开关,一颗HC595连接MS和NS灯,IC1220就可以自动读取开关值来设置总线站号和波特率,同时也能自动输出LED状态,用户不需要再设计程序去处理这部分。
如果条件允许,可以在芯片的RUN脚位上接一颗LED,如果灯亮,表示芯片启动成功,处于运行状态。
关于详细的电路设计,可以参考厂商提供的参考电路。

3.2 软件设计

由于IC1220芯片完全集成了DeviceNet从站协议,在此芯片基础上开发,软件部分的设计将非常简单,只要通过Modbus协议,设置一些必要的参数,并将芯片启动,就可以实现DeviceNet通讯,剩下的工作,就是从IO数据区读出主站送来的数据,并根据设备的需要处理这些数据,同时将从站要送回主站的数据写入IO数据区,芯片就会自动将数据回传给主站,这样就实现了一个完整的DevieNet从站功能。
IC1220的参数使用Modbus命令来读写,关于Modbus命令的详细介绍,网络上有丰富的文章,这里就不再详细说明。SCI接口默认的通讯速率为4800bps,通讯协议为 <8,N,1>,波特率可以自动侦测,站号默认为1。
一般的DeviceNet从站,用户只需要设置如下几个参数即可。本例假设用户开发的从站与主站的IO数据交换长度都为4字节,即主站到从站的输出数据长度为4字节,从站到主站的输入数据长度也为4字节。
1)将4写入6001,设定输出IO长度总长
发送:010660010004C7C9 接收:010660010004C7C9
2)将4写入601C,设定SCI输出长度(主站->从站)
发送:0106601C000457CF 接收:0106601C000457CF
3)将4写入6007,设定SCI输入IO长度(从站->主站)
发送:01066007000427C8 接收:01066007000427C8
4) 将4写入7002,设置从在DeviceNet网络上的站号为4,如果使用SSC连接8位开关则此步忽略
发送:0106700200043309 接收:0106700200043309
5)将1写入7005,设置波特率为250Kbps,如果使用SSC连接8位开关则此步忽略
发送:01067005000142CB 接收:01067005000142CB
6)将1写入5001,启动从站芯片
发送:01065001000108CA 接收:01065001000108CA

需要说明的是,如果用户按3.1节的连接方式,将8位开关连接到SSC接口,则从站的DeviceNet站号和波特率由开关设定,可以忽略上述步骤中的第4)和5)步。执行完上述步骤中的第6)步后,IC1220芯片将会启动,自动初始化DeviceNet相关的参数,如果用户将NS和MS灯连接到SSC接口,则此时芯片会自动输出LED状态,以指示总线运行状态。同时,如果在芯片RUN脚位上连接了LED,则此时LED会常亮,表示芯片已经成功启动并正在运行。
芯片启动运行后,会启动DeviceNet通讯功能,此时会等待主站的连接命令,并与主站进行连接,如果成功与主站建立起连接,则NS和MS灯都会亮绿灯,表示主从站通讯正常,此时可以使用Modbus命令与芯片交换IO数据。

单片机可以使用下面的命令与芯片交换IO数据:
7)读取主站->从站的IO数据
发送:010310000002C0CB 接收:010304112233444BC6
由于本例中,主从站间交换的输入输出数据都是4字节,因此主站发给从站的数据,将存入地址1000H开始的寄存器,故读取1000H地址,长度是2个字,就可以读到4字节的IO输出数据,从接收的数据包中可以得出,主站传送的4字节数据为11 22 33 44

8)写入从站->主站的IO数据
发送:011000000002045566778825EA,接收01100000000241C8
从站回传给主站的数据也是4字节,将存入地址0000H开始的寄存器,故从站要回传主站的数据,必须写入0000H地址开始的寄存器,长度是2个字,本例写入的数据为5566H和7788H。
单片机重复第7)和8)步,就可以不断的与芯片交换总线数据,从而实现主站对从站的控制与监视,实现设备的DeviceNet通讯功能。
至此,基于IC1220从站芯片的DeviceNet产品开发完成。

4. 总结

IC1220从站芯片高度集成了DeviceNet从站通讯协议,将复杂的总线协议固化在芯片内,再提供简单易用的串行接口,采用工业控制中最普遍的Modbus协议,简单的设置几个相关参数后,即可以启动DeviceNet功能,并实时交换数据,快速实现设备的DeviceNet通讯接口开发,短时间就能让产品走向市场,提升产品的市场竞争力。因此,在DeviceNet总线产品开发中,这是一颗非常值得推荐的芯片。

 

 

 
 

姓 名:   密 码: 注册 修改

 

论坛最新贴子

ODVA核心成员













Copyright © 2003 DnDev.com  All Rights Reserved.
DND-DeviceNet 开发网  版权所有

制作维护:远方   Email:yuanfangjy@163.com