I—S——S——N———10—0—9——-3—0—44 E—mail:kfyj@cccc.net.ca http://www.dnzs.net.en Tel:+86—55 1-5690963 5690964 Computer Knowledge and Technology电脑知识与技术 Vo1.8,No.10,April 2012. CAN总线技术在通信控制中的应用 高焘 ,叶春明 (1.海军驻武汉四三八厂军事代表室,武汉海字第144386号;2.海军驻中南地区光电代表室,武汉海字第14384号) 摘要:该文介绍了CAN总线技术在通信控制中的应用。利用CAN控制器,收发器和51单片机构成简单的控制通信系统。CAN总 线较普遍使用的rs232/485等通信方式,具有传输距离远,传输稳定可靠等优点,且电路实现简单。能够在高稳定性的控制通信领域 实现数据的交换、传输,应用前景广阔。 关键词:CAN总线;CAN控制器;SJAIO00 中图分类号:TP271 文献标识码:A 文章编号:1009—3044(2012)10—2384—02 现场总线(Field Bus)IS]是当前工业控制系统发展的新方向。CAN(Controller Area Network)总线是重要的现场总线之一,从1986 年2月CAN诞生起,其高可靠性能以及灵活的设计倍受人们的重视,应用越来越广泛。多年来,CAN总线技术一直应用于汽车工 业,经过不断的研究与发展,目前在国内的电力、石化、航天、空调等不同行业均已有应用。CAN总线控制器支持8位、16位单片机, 支持许多嵌入式系统,目前许多片上系统(soc)都已经集成有CAN通信控制器,使用非常灵活方便。 即便如此CAN在全球市场上仍然处于起始点。在以往国内的测控领域,大多选择RS485作为通信总线,但它的特点是一主多 从,无冗余,数据通信为命令响应,传输率低,错误处理能力弱等,而CAN总线技术则可以很好的解决上述问题171。CAN总线波特率 与传输距离对照表如表1所示。 表1 CAN总线波特率与传输距离对照表 1电磁铁控制通信原理图 图1为一控制电磁铁吸合状态的电路原理图,CPU为89S52单片机、控制器为SJA1000、收发器选用TJA1050、6N167为光耦隔 离器、单片机的工作晶振频率为11.0592MHZ。采用CAN总线进行通信控制,上位机经过USBCAN接口发送数据报文,单片机利用 SJAIO00控制器来接受报文数据,再由P1.5口来控制电磁铁的工作状态。程序通过串口下载给单片机,电磁铁的两根线通过一个 CON2插件与NPN型晶体管的集电极连接。控制命令通过光耦隔离器6N137后与晶体管的基极相连。 2 CAN通信控制器SJA1000 CAN的通信协议主要由CAN控制器完成。SJA1000[']是一种CAN控制器,它是PHILIPS公司的PCA82C200控制器的替代产 品。与PCA82C200相比,除在引脚及电气特性上与之完全兼容外,SJA1000还增加有PeliCAN工作方式,扩展了验收滤波器和错误 检测处理等 。采用CAN总线进行数据交换,其本质则是对CAN控制器操作,通过对控制器内寄存器的读写来进行数据收发工作。 数据是以报文进行存储和发送,总线节点可以通过设置验收代码和验收屏蔽码来对报文进行灵活的接收或者放弃。验收代码 代表了每个节点的代码,是每个节点的唯一代号。验收屏蔽码代表了对各个节点的接收选择,通过对屏蔽码的设置来对节点的报 文信息进行选择或者放弃。 3 CAN收发器 CAN收发器采用TJA1050,原理图如图2所示。TJA1050是NXP公司的的后继产品,能够为控制器提供不同的接收性能,完全 收稿日期:2012—02—12 作者简介:高焘(1983一),男,吉林长春人,海军驻武汉四三八厂军事代表室助理工程师,主要研究方向为船舶制造,船舶特种装备仪 器;叶春明(1984一),男,湖北黄冈人,海军驻中南地区光电军事代表室助理工程,主要研究方向为光电技术。 2384 计算机工程应用技术 本栏目责任编辑:梁书 第8卷第10期(2012年4月) Computer Knowledge and Technology电脑知识与技术 图1通信控制电路原理图 符合ISO一11898标准,至少可以连接110个节点。在电路设计中,为防止干扰通常配合光耦隔离器使用 】。 TJA1050 — TXD s 一 懈RXD 懈GND CA NTI臣;/ 图2 TJA1050原理图 4调试接口 该文的硬件电路构成了CAN网络的一个节点,可以与网络中的其它节点进行数据交换,我们把微机作为上位机,采用USBCAN 转换器来进行通信控制。USBCAN转换器可以理解为微机的接口,它通过USB口与普通电脑相连,把电脑出来的数据信息转换为报 文形式传输到CAN总线上。另外,USBCAN转换器也是一个很好的调试工具,可以在线进行数据报文的读写,观测工作。可以在操 作界面上进行数据格式编写,自由地设置验收代码,验收滤波设置等 。下图3为USBCAN的软件操作界面,其中帧ID是指上位机 的节点号。屏蔽码、采样频率等参数可以在“参数设定”菜单栏进行设置。8个字节字节数据表示一次发送的报文信息。软件界面 的空白信息栏用来显示工作时USBCAN接收或者发送的报文信息。 . 图3 USBCAN软件操作界面 (下转第2411页) 本栏目责任编辑:梁书 计算机工程应用技术 2385 第8卷第1oH(2012年4月) ComputerKnowledge and 曲nD 电脑知识与壤术 后设定发送优先级,启动MCP2515发送即可!下面是一个发送数据帧的发送子程序! Send_data() mep2515一f setRegisterS(MCP_TXBOCTRL+6,sendbuL4); 写发送缓冲器0的数据区,4个字节 , 一setRegister(MCPJXBOCTRL+5,4); mcp2515wfitecanid(MCP_TXBOSIDH,0,OxOOO); _mcp25 15——填写要发送的字节数 / 设置ID号为:0x000,标准格式¥/ mcp2515一ModifyRegister(MCP_TXBOCTRL,0x0B,OxOB); TXBOCTR低四位为:1011,缓冲0发送,优先级为:11,最高 / d0 { ReadRegister(MCPJXBOCTRL); 读发送缓存0控制寄存器 / res=res&0x08; ,木观察发送请求位¥/ res=mep2515_1while(ms); } 若为1,说明仍在发送,断续等待 / 3)数据接收函数 接收子程序负责节点报文的接收,可以有中断方式和查询方式接收!在通讯实时性要求不高的情况下可以用查询方式接收!下 面以中断方式为例介绍一下接收子程序! Ree data() { erreount=mep2515一ReadRe ster(MCP_REc)); 接收错误计数 / ModifyRegister(MCP_CANINTF,OxO1,OxO0); 清零接收缓冲0中断标志位 , len=mcp25 15ReadRegister(McP RXBOCTRL+5); ,木读取数据长度 / for(i-0;i<len;i++) ,丰读出接收到的数据 , mep2515一一reebutli】=mcp2515一ReadRegister(MCP.-RXB0CTRL+6+i); } 4结束语 该文介绍的基于MCP2515的CAN总线通讯模块的设计。它显著减少了系统的连线,简化了系统的设计,具有较高的抗干扰能 力。模块经过测试,可以稳定正常地运行。MCP2515本身提供了许多的功能,模块的SPI的接口留有扩展引脚,方便在实现基本功 能的基础上,根据具体的应用需要再进行功能扩展。 参考文献: [1]Microchip Technology Inc.MCP2515 data sheet,2005. 【2】国际标准化组织.IS011898标准【s】.北京:中国标准出版社,2001. [3】杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用[M].北京:电子工业出版社,2007. [4]Philips Semiconductors.TJA1050 data sheet,1999. [5饶运涛,5]邹继军,郑勇芸.现场总线CAN原理与应用技术【M].北京:北京航天航空大学出版社,2003. [6]梁金芝.CAN总线协议在嵌入式系统中的应用[J].电脑知识与技术,2011(20). (上接第2385页) 5结束语 通过该文的设计电路我们可以看出,CAN总线通过CPU、控制器、收发器和一些简单的分立电子元器件就可以构成一个完整的 通信控制系统,实现高可靠,高稳定的通信控制。这使得这项技术经过2O余年的高速发展,已从原先专业应用于汽车工业控制的总 线技术拓展到了如今的各个领域,然而,CAN总线技术的底层协议,上层协议(CANOPEN等),网络通信等等仍然处在不断的发展 中,CAN总线技术也正在不断的完善 。但它表现出来的生命力和潜在价值是显而易见的,这项技术必将在电子通信等领域发挥出 巨大的作用。 参考文献: 【1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996. [2邹继军,2]饶运涛.CAN控制 ̄SJAIO00验收滤波器原理与应用[J1. [3史久根.3】CAN现场总线系统设计技术[M1.北京:国防工业出版社,2004. [4]饶运涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007. [5】杨春杰,王曙光,亢红波.CAN总线技术[M】.北京:北京航空航天大学出版社,2010. 本栏目责任编辑:梁书 计算机工程应用技术 241 1