基于ARMCANopen现场总线设备通信研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARMCANopen现场总线设备通信研究

基于ARMCANopen现场总线设备通信研究   [摘 要]CAN总线是国际上应用最广泛的现场总线之一。CANopen协议是基于CAN总线的高层应用层协议,是为标准的嵌入式网络开发而设计的,是具有灵活配置能力的开放式协议,其应用进一步提高系统的通讯效率及灵活性, 而且可以使产品具有很好的兼容性。   [关键词]现场总线 CANopen S3C440BX 网络通信   中图分类号:TM121.1.3 文献标识码:B 文章编号:1009-914X(2015)25-0052-01   现场总线通讯协议是现场总线技术的核心,它的结构是根据国际标准化组织提供的ISO/OSI模型来制定的。标准ISO/OSI模型有七层框架,但根据工业控制的特点,多数总线协议都是采用了其中的物理层、数据链路层和应用层,这样可以保证实时通信,在此基础上已经发展起来了FF、LonWorks 、CAN、Profibus、ControlNet等总线协议[4]。其中的CAN(Controller Area Network)即控制器局域网络,是世界上应用最广泛的现场总线之一,能有效支持分布式控制和实时控制。因其可靠性高、抗干扰性强、开发简单、造价低廉及其短帧传输和无破坏仲裁技术等优点而被广泛应用,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。   1 CAN总线通信介质访问控制方式   在现场总线系统中,节点间通过公共传输介质传输数据,因而数据链路层是总线的核心部分。CAN总线数据链路层的通信介质访问控制方式为事件触发,采用带优先级的随机载波侦听方式(CSMA/CD)。只要总线空闲,任何节点都可以主动向网络上其它节点发送数据。协议规定CAN报文具有最低二进制数值的标识符优先级别最高。   CAN总线上用“显性”和“隐性”两个互补的逻辑值表示“0”与“1”,采用“线与”机制,当在总线上出现同时发送显性和隐性位时,其结果是总线数值为显性。当总线空闲时,呈“隐性”状态,当有任何一个节点发送“显性”位时,总线进入“显性”状态。每个节点发送报文前,都会检查总线是否处于空闲状态。如果总线空闲,该节点就成为总线主控节点并发送报文。在该节点发送第一个发送位时,其他节点就切换到接收模式。当正确接收报文后,每个总线节点都会检查报文标识符,如果需要的话就存储该报文,否则便丢弃。   2 CAN总线数据收发程序设计   CAN总线数据收发部分是应用程序设计中最核心关键的部分,对CANopen设备的测试和配置都是通过将信息组成CAN报文,然后发送到CAN总线上进行传输通信来完成的。   CAN作为CANopen的底层协议,主要实现报文传输、仲裁及错误检测等功能。为了保证CAN报文能正常传输,在程序中构造了CAN_MSG结构体。   typedef struct   {   INT16U ID; // Message Identifier   INT8U LEN; // Data length (0-8)   INT8U BUF[8]; // Data buffer   } CAN_MSG;   在CAN总线数据收发电路中起主要控制作用的是CAN控制器SJA1000。SJA1000有BasicCAN和PeliCAN两种工作方式 ,设计中SJA1000工作于PeliCAN工作方式。由于在PeliCAN工作方式下,传输的帧有标准帧和扩展帧之分。在发送和接收数据前需判断该帧为标准帧还是扩展帧。   3 测试通信参数程序设计   当捕获到键值为0的消息时,对CANopen设备进行测试,读取其对象字典中的参数信息。测试CANopen通信参数包括五部分,分别是测试基本通信参数、RPDO通信参数、TPDO通信参数、RPDO映射参数和TPDO映射参数。代码如下:   void Test_Task (void *ID)   {   Request_Basic(); //测试基本通信参数   Request_RPDOCom(); //测试RPDO的通信参数   Request_TPDOCom(); //测试TPDO的通信参数   Request_RPDOMap(); //测试RPDO的映射参数   Request_TPDOMap(); //测试TPDO的映射参数   POSMSG pmsg;   for(;;)   {   if(GerKey()==0)   {   pmsg=OSCreateMessage(OSM_KEY);   if(pmsg)   SendMessage(pmsg);   }   }   }   基本通信参数是指设备型号、错误寄存器、支持的PDO个数、节点标识符、节点保护时间,以及主节点和

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档