解决方案 Solutions
    推荐产品 / Products
    Solutions 方案定制

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

    日期: 2018-11-27 13:26:49
    浏览次数: 1619
    • 详细描述
    • 相关产品

    前言

      DeviceNet现场总线是由美国Rockwell公司开发,并由ODVAOpen 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专用芯片将协议集成到一颗芯片内,用户根据芯片厂家的参考电路自行设计硬件,将芯片运行必须的周边元件一起设计到自己的电路板上,未来生产时,只需要购买专用芯片即可。

    专用芯片在让用户快速实现总线接口的同时,能大大降低单体采购成本,功能与嵌入式模块相同,是出货量在中小规模的公司首选的总线接口实现方式。

    本文重点介绍使用WisgemIC1220从站芯片实现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接口是同步串行接口,可以连接外部移位寄存器,如HC595HC165等,自动实现数字量输入输出功能。

    IC1220外观如下图所示:

    1.jpg

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

    2.jpg

     

    3.  从站设计

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

     

    3.1  硬件设计

     

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

    3.jpg

     

    由上图可知,一般单片机可以使用UART异步串口与IC1220SCI接口连接,因为SCI接口即可以实现参数配置,也可以实现总线IO数据交换,使用比较方便。对于DeviceNet接口设计,IC1220芯片内置了CAN模块,用户只需要参考厂商提供的参考电路,就可以轻松实现CAN驱动电路,CAN的驱动电路也就是DeviceNet总线的接口电路,可以设计成隔离的,也可以是非隔离的。

    另外,DeviceNet从站通常使用一个8DIP开关来设置站号和波特率,也可以使用2个旋转开关,同时还有两颗红绿双色指示灯MSNSIC1220芯片集成了开关和LED灯的输出功能,用户只需要使用芯片的SSC接口,外接一颗HC165连接8位开关,一颗HC595连接MSNS灯,IC1220就可以自动读取开关值来设置总线站号和波特率,同时也能自动输出LED状态,用户不需要再设计程序去处理这部分。

    如果条件允许,可以在芯片的RUN脚位上接一颗LED,如果灯亮,表示芯片启动成功,处于运行状态。

    关于详细的电路设计,可以参考厂商提供的参考电路。

     

    3.2  软件设计

     

    由于IC1220芯片完全集成了DeviceNet从站协议,在此芯片基础上开发,软件部分的设计将非常简单,只要通过Modbus协议,设置一些必要的参数,并将芯片启动,就可以实现DeviceNet通讯,剩下的工作,就是从IO数据区读出主站送来的数据,并根据设备的需要处理这些数据,同时将从站要送回主站的数据写入IO数据区,芯片就会自动将数据回传给主站,这样就实现了一个完整的DevieNet从站功能。

    IC1220的参数使用Modbus命令来读写,关于Modbus命令的详细介绍,网络上有丰富的文章,这里就不再详细说明。SCI接口默认的通讯速率为4800bps,通讯协议为 <8N,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相关的参数,如果用户将NSMS灯连接到SSC接口,则此时芯片会自动输出LED状态,以指示总线运行状态。同时,如果在芯片RUN脚位上连接了LED,则此时LED会常亮,表示芯片已经成功启动并正在运行。

    芯片启动运行后,会启动DeviceNet通讯功能,此时会等待主站的连接命令,并与主站进行连接,如果成功与主站建立起连接,则NSMS灯都会亮绿灯,表示主从站通讯正常,此时可以使用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个字,本例写入的数据为5566H7788H

    单片机重复第7)和8)步,就可以不断的与芯片交换总线数据,从而实现主站对从站的控制与监视,实现设备的DeviceNet通讯功能。

    至此,基于IC1220从站芯片的DeviceNet产品开发完成。

     

    4.  总结

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

     

    faq / 其他方案
    
    Copyright ©2005 - 2013 上海智曜自动化设备有限公司
     技术支持:培文信息