首页 上一页 1 2 下一页 尾页

can总线应用 点击:11515 | 回复:33



whm

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:30帖 | 39回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2002年3月09日
发表于:2003-06-01 10:17:00
楼主
基于CAN的工业微机测控网络 方案综述:1、概 述   1.1微机测控系统的发展   微机在工业测控领域中的应用可大致划分为以下几个阶段:(1)以单个控制器为核心的嵌入式测控系统(ECS);(2)多台下位机与一台上位机之间进行通信的集散式测控系统(DCS);(3)多控制器之间互连构成网络的现场总线测控系统(FCS〉。FCS是新一代分布式控制结构,它采用二层结构(工作站现场总线智能现场仪表)即可完成DCS中的3层结构(操作站——控制站一一现场总线仪表)功能,降低了成本,提高了可靠性,而且可实现真正的开放式互连系统结构,FCS代替DCS已经成为必然趋势。目前比较流行的现场总线产品有: LONWORKS、FF、PROFIBUS、CAN等。   1.2CAN总线技术的应用现状   CAN是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。目前CAN总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel ,Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC〉、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN来满足上述功能。在工业过程控制领域,CAN也得到了广泛的应用。   1.3CAN网络的技术特点   国内传统的工业测控系统通信方式一般都采用BITBUS和R$485,其缺点是:   (1)无法构成多主结构,主节点任务繁忙,一旦主节点出现故障就可能引起系统瘫痪;   (2)数据通信方式为命令响应式,数据传输效率降低,同时当下端出现异常时,数据不能立即上传,灵活性极差,不适于实时性要求较高的场合;   (3)物理层采用较陈旧的RS485规范,链路层为SDLC协议,总体来讲效率较低,灵活性差,尤其是错误处理能力不强。   与上述通信方式相比,CAN具有以下特点:   (1)采用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等;   (2)采用非破坏性基于优先权的总线仲裁技术,具有暂时错误和永久性故障节点的判别及故障节点的自动脱离功能,使系统其它节点的通信不受影响;同时CAN具有出错帧自动重发功能,可靠性高;   (3)信号传输用短帧结构(8字节),实时性好;   (4)不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;   (5)采用统一的标准和规范,使各设备之间具有较好的互操作性和互换性,系统的通用性好;   (6)通讯介质可采用双绞线,无特殊要求;现场布线和安装简单,易于维护,经济性好。 总之,CAN总线具有实时性强、可靠性高、结构简单、互操作性好、价格低廉等优点,克服了传统的工业总线的缺陷,是一种有效的解决方案。 2、CAN在工业微机测控中的研究   2.1总体方案设计   首先定义各节点的功能,确定各节点检测或控制量的数目、类型、信号特征。这是进行微机测控系统网络化的第一步。原则是尽量避免重复测试。   其次,选择各节点控制器和相应的CAN适配元件。由于各测控节点功能相对单一,数据量少,因此对CPU的要求大大降低,一般采用8051系列单片机即可满足要求。CAN 总线适配器件主要有:控制器接口、总线收发器和I/O器件。采用Philips公司生产的82C200CAN控制器和与其配套的82C250CAN收发器。82C200具有完成高性能通信协议所要求的全部必要特性。具有简单总线连接的82C200可完成物理层和数据链路层的所有功能。   最后,按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN网络。如图1所示。为进一步提高系统的可靠性,需要考虑系统的冗余设计。双绞屏蔽线可设两套,在两套介质上同时进行信息传输,接收方只用一个介质。在冗余和非冗余段的连接临界点处进行总线切换。   2.2PhiHps 82C200 CAN控制器介绍   82C200控制器是适用于汽车和一般工业环境的高集成度CAN控制器。输入时钟频率为16MHh时钟输出可编程控制。由以下几部分构成:接口管理逻辑、发送缓存器、接收缓存器、位流处理器、位定时逻辑、收发逻辑、错误管理逻辑、控制器接口逻辑。其地址分配如下:   基地址+00Hz控制段(由控制寄存器、命令寄存器、状态寄存器、中断寄存器、接收码寄存器、接收屏蔽寄存器、总线定时寄存器、输出控制寄存器和测试寄存器构成);   基地址+0AHz发送缓存器   基地址+14Hz接收缓存器   基地址+1FH:时钟驱动寄存器   2.3PC机的CAN适配卡设计   CAN适配卡通过PC总线把PC机与CAN总线相连,任务是将PC机内的数据和命令传送给指定的CAN网络节点,同时将各CAN网络节点的数据传输给PC机以做进一步处理。适配卡上的微处理器(8031)极大的减轻了PC机的通信负担,而且可以运行用户复杂的通信任务。   (1)硬件(见图2)适配卡由以下部分组成:微控制器8031;82C200 CAN控制器和82C250 CAN收发器;双口RAM。适配卡中的微控制器主要承担节点与PC机数字通信的协调工作,对其I/O控制、A/D和高速捕获等功能并无其他要求,选择了功能相对较少,但价格低廉的8031。适配卡中设置2K的双口RAM实现数据共享和双向传输。   其中,82C200是CAN总线控制器,具有多主结构、总线访问优先权、成组与广播报文功能及硬件滤波功能。与此配套的CAN收发器82C250可以提供总线的差动发送和接收能力,传输距离为40m时最高传输速率可达1Mbps,有较强的抗干扰能力,最多节点数可达110个。   这部分电路负责CAN节点与PC机之间的数字通信和协调管理,当8751把数据和控制字标志送给82C200后,由82C200自动完成一帧数据的发送和接收。82C200由8751的P2.7口线选通;双口.RAM由8751的P2.3口线选通。82C200和82C250之间采用光电隔离,用于保护适配卡,提高抗干扰能力。82C200通过双绞线和CAN总线其它节点相连,在网络终端接1200的匹配电阻。82C200的INT端与8751的INT1端相连,使单片机能够实时响应CAN的中断请求。   (2)软件设计适配卡软件主要由两部分构成:一是PC端应用程序接口(API)函数,负责完成PC端与双口RAM之间的通信,采用Borland C++语言编写;二是单片机端程序设计,负责单片机与双口RAM以及CAN控制器之间的通信,采用汇编语言ASM51编写。PC机向适配卡上的双口RAM发送的数据主要包括控制命令、发送数据命令和请求数据命令,由不同的标识表示。适配卡与节点之间的通信主要有两个任务:一是适配卡向子节点转发PC机的命令,二是子节点将数据实时传送给适配卡。   CAN适配卡的设置模块主要负责设置CAN适配卡占用端口的波特率、工作方式等。数据的发送模块根据用户制定的应用层协议,将要发送的数据分类、拆解、合并,确定发送对象,再根据CAN的数据链路层协议填写到CAN数据帧的各个场,然后发送出去。接收模块则与发送相反,首先进行接收滤波,确认该帧数据是否接收,如果接收,先按照数据链路层协议拆解数据包,将数据场的数据提取出来,再根据应用层协议确定数据的具体含义,进行相应的处理。CAN信息帧共有4种:数据帧,远程帧,出错帧和超载帧。其中,数据帧将数据由发送器传至接收器。一个数据帧由7个不同位场构成。其中促裁场由标识符ID和RTR(Remote Transmission Request——远程发送请求)构成。   用户应用程序中卡的初始化、数据的发送接收都可以通过调用编写的API函数来完成。以CAN适配卡为例简要说明CAN通信程序的实现。简化的程序流程图如图4所示。其中: 函数canInitHW()的功能是初始化适配卡的硬件(包括单片机8031和CANmemo)。   CanConfig(CAN_STRUCT can)功能是控制CAN端口的接收码、接收屏蔽和总线定时寄存器的设置和输出控制方式。   CanSend(DATA_STRUCT send_data)端口发送数据函数。   CanReceive(DATA_STRUCT*data_ptr)端口发送数据函数。   CanExitHW()能是释放CAN模块的设置。 3、CAN与工厂级LAN的互连   80年代以来,计算机数据通信技术得到了突飞猛进的发展。目前计算机网络已将各种型号的计算机互连,并将散布于世界各地的PC机互连成网。随着计算机技术和集成电路技术的发展,工业测控系统已取得巨大进步,并成为计算机应用领域中最具活力的一个分支,其应用需求已不再满足于单一的网络环境,而需要将现场测控网络与高级管理网络互连,以便于实时管理和控制现场的操作。   因此要在现场CAN网络基础上进一步发展,向上与适合企业管理的事物处理计算机系统相连构成工厂级管控一体化系统。一般应包括如下功能:丰富的采集和控制功能;友好的人机界面;灵活的信息传输功能,通过通信网络,系统上级工作站可观察到任何一个下级控制站,直到现场信号的实时信息;整体的综合信息管理和处理功能,包括生产调度、系



whm

  • 精华:1帖
  • 求助:0帖
  • 帖子:30帖 | 39回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2002年3月09日
发表于:2003-05-30 13:41:00
21楼
你好远方: 首先谢谢你为我的辩护,我的CAN总线项目因为一些原因被迫于去年下旬中止,我做的样板已经实现了通讯,协议也作出了。但没有转化成产品和做进一步实验就结束了,我觉得十分遗憾。但我想以后还会有机会的。下面我谈一下我的感受: 我觉得如果我们的技术人员,多一些坦诚,多一些沟通,多一些给予,我想不仅能使我们得到共同提高和发展,而且还能为净化目前国内的不良风气作出表率。当然,这可能很难,但作为一个技术人员,我决心从自我做起。如果我还有什么资料和心得的话,我一定还会一如既往的发表出来供大家参考,共同体高。因为我知道,在我的付出的同时,我也一定能得到大家的帮助。 在我做CAN总线项目的时候,曾带给我两个疑惑: 1. CAN总线的优点很多,但我对它在国内的市场应用点和市场前景还很不清楚,它的市场在那里,为什么不能很好的推广。其实我的项目就是因为市场目标不明确而被迫中止的。 2. 对于协议,最初我一直准备用DEVICENET标准协议,但经过一段时间的努力,我发现我钻进了一条死胡同,越来越糊涂。项目中止后,我总结出问题所在:东西并非必须要追求最好,只要它能满足你的要求,越简单越好。其实具我了解,对于协议,绝大多数人都是自己制定,极少有人按照标准协议(如DEVICENET协议)来制定。归根接底是这些标准协议过于复杂,而且对产品又有很强的针对性,因此很难满足你的设计要求,而且还需耗费大量时间去研究它,得不偿失。因此我觉得标准协议可以参考,但决不能照搬,应灵活应用。 大家如果谁对CAN总线的应用和前景了解以及对它的一些见解,希望能发表出来供大家参考。

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-05-30 16:20:00
22楼
WHM: 不用客气,其实也不是辩解,只是我一直很想说的话而已! 对于你提到的两个问题我想说一说我的想法: 1、关于应用推广的问题: 首先我想这应该来自CAN的背景,CAN的最初需求来自欧洲的汽车制造商,而到目前为止,CAN用得最多的仍然是在高档的汽车上,如奔驰等档次很高的轿车,而国内在汽车制造水平极低,而高档车的制造方面基本是空白,所以也是CAN总线无法在国内运用于汽车行业的原因。 其次,工业自动化方面,目前看来,国内企业还没有几家有能力把自己的所有工厂控制流程全部升级为最新最先进的控制系统,我觉得我一个同学的说法多少有些代表性,她以前在武钢自动化所,以前有听说过她们所要用到设备网,现在她已经不在了,前两天突然问到她当时使用设备网的情况,她说当时有这个想法,但没有人敢去碰,因为对这个东西太不了解。 第三我想也是对中国的大学教育的一点不满,我倒是觉得现在LonWorks用得很多的,因为Lonworks有一个强大的开发平台,许多觉样的研究生差不多就是用Lonworks开发几个节点连起来搞一个简单的抄表系统什么的,而在学校里做CAN开发的研究生不多,毕业后自然从事此项开发的人就少,由此产生恶性循环,开发的少了,应用就少了,老板用的信心也小了。 2、对于基于CAN的应用层协议,比较典型的是CANOpen和DeviceNet,DeviceNet不是必须的,也不是万能的,之所以有DeviceNet协议的产生是因为各个厂商的产品需要互联,不然大家的产品无法一起使用在同一网络上,其实就是为达成产品通讯的统一,但针对于一个全部用CAN实现的局部专用网络,并不需要与别的厂家的产品实现互联,因为所有的节点都是自己开发的,自然定义的应用层协议也一样,而你定义的应用层协议也不需要像DeviceNet一样让其它的开发商知道(除非是你的OEM厂商)。因此,决定的因素在于实际的应用。

whm

  • 精华:1帖
  • 求助:0帖
  • 帖子:30帖 | 39回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2002年3月09日
发表于:2003-05-30 16:50:00
23楼
远方: 谢谢你,按照你的说法,是否CAN总线在工业上就没有什么发展前景了?其实国内有许多大型的企业可以用上总线技术,但进入的最大难度就是让企业接受和认可它。我们国内总线技术目前还不规范,在技术规模上没有形成太大的影响力。企业的思想目前仍停留在传统、保守的状态,对于新技术的接受能力较差。在技术上我们并不比国外差,目前我们的差距就是能把总线技术推向一个正常的轨道,使其产品规模化、规范化。

wust

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 22回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2003年1月13日
发表于:2003-05-30 16:58:00
24楼
拜读大作,实感荣幸,虽然我们做的项目是采用的can总线,可是我还是没有搞清楚!不过有一点我想说的是,达到标书的要求就够了,谁还去在乎呢!

郁闷的CAN新手

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2002年8月02日
发表于:2003-06-01 00:14:00
25楼
前景看来真是黯淡啊,我还在校学CAN呢,要不要趁早改方向呢?

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-01 00:18:00
26楼
我个人觉得国内的企业要能够有本质上的对现有的控制概念升级,必须要有一种力量促使他们进行结构的重组,从根本上打破掉常规的一切概念,再用一种新的思维方式重新组织起来。我觉得等国外的企业完全把他们打败得七零八乱的时候可能时间就到了,记得曾经和同事说起过为什么国企很多都没有钱来对现有的设备及技术做改造,同事在国企做过一些时间,听我说后长长叹口气:“钱都被吃喝贪污了,哪里还有钱?”我无语。

flycat

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 6回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2003年5月03日
发表于:2003-06-01 10:13:00
27楼
各位高手,我现在在做CAN通信时遇到这样一个问题,上位机使用pc104+can通信板,下位机是dsp+can通信板,通信板是我们自己做的,sja1000t+82C250. pc104和pc104之间通信没问题。 但是当和dsp之间通信时,如果104发送的数据都是相同的贞(即固定值,如00,28,01,01,01,01,01,01,02,03)时,通信正常。但是如果发送变化的数据是,即每一帧都在变,DSP端就会死机,DSP是16位的,即每次操作是双字节。百思不的其解,望各位不吝赐教!!!感激ing!!!

flycat

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 6回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2003年5月03日
发表于:2003-06-01 10:17:00
28楼
对了。我的接收是中断方式。发送变化的数据时,有时中断就会没了。这就是问题所在。怎么办???是不是16位数据操作有什么讲究

xuezhongmei

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2005年6月08日
发表于:2005-06-08 11:30:00
29楼
大家好!我是CAN总线技术的初学者,我也看书了,看到那么多协议,感觉很闷,希望各位高手能给我指点迷津,使我能较快的进入状态,首先在此感谢大家!还有,咱们这个集体有没有集体QQ聊天号,有的话,各位告诉我一下,我也很想加入。谢谢!

xuezhongmei

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2005年6月08日
发表于:2005-06-08 11:30:00
30楼
大家好!我是CAN总线技术的初学者,我也看书了,看到那么多协议,感觉很闷,希望各位高手能给我指点迷津,使我能较快的进入状态,首先在此感谢大家!还有,咱们这个集体有没有集体QQ聊天号,有的话,各位告诉我一下,我也很想加入。谢谢!

chenronglin

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年9月10日
发表于:2009-06-07 07:15:08
31楼
sdasdasdasdasdasd

xbpeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2009年6月08日
发表于:2009-06-08 09:53:41
32楼
引用 whm 的回复内容: 你好远方: 首先谢谢你为我的辩护,我的CAN总线项目因为一些原因被迫于去年下旬中止,我做的样板已经实现了通讯,协议也作出了。但没有转化成产品和做进一步实验就结束了,我觉得十分遗憾。但我想以后还会有机会的。下面我谈一下我的感受: 我觉得如果我们的技术人员,多一些坦诚,多一些沟通,多一些给予,我想不仅能使我们得到共同提高和发展,而且还能为净化目前国内的不良风气作出表率。当然,这可能很难,但作为一个技术人员,我决心从自我做起。如果我还有什么资料和心得的话,我一定还会一如既往的发表出来供大家参考,共同体高。因为我知道,在我的付出的同时,我也一定能得到大家的帮助。 在我做CAN总线项目的时候,曾带给我两个疑惑: 1. CAN总线的优点很多,但我对它在国内的市场应用点和市场前景还很不清楚,它的市场在那里,为什么不能很好的推广。其实我的项目就是因为市场目标不明确而被迫中止的。 2. 对于协议,最初我一直准备用DEVICENET标准协议,但经过一段时间的努力,我发现我钻进了一条死胡同,越来越糊涂。项目中止后,我总结出问题所在:东西并非必须要追求最好,只要它能满足你的要求,越简单越好。其实具我了解,对于协议,绝大多数人都是自己制定,极少有人按照标准协议(如DEVICENET协议)来制定。归根接底是这些标准协议过于复杂,而且对产品又有很强的针对性,因此很难满足你的设计要求,而且还需耗费大量时间去研究它,得不偿失。因此我觉得标准协议可以参考,但决不能照搬,应灵活应用。 大家如果谁对CAN总线的应用和前景了解以及对它的一些见解,希望能发表出来供大家参考。


任何一种现场总线技术的优缺点都要结合应用而言,对于简单的、小型的、专用的网络,你直接用CAN的物理层加链路层加上你自己定义的应用层,那当然是可以的。但是对于那些大型复杂的应用,自己设计的应用层往往很难兼顾到各个方方面面:可靠性,可扩展性,可维护性等等。也就是说你自己定义的CAN网络能用到别的场合吗?这也就是为什么要用DeviceNet了,它的应用层是经过精心设计的,无数工业现场应用检验过的。总之,适合自己的才是最好的。

现场总线的标准已经够乱的了,大家自己再不停的定义新的标准,......

xbpeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2009年6月08日
发表于:2009-06-08 10:04:52
33楼
引用 whm 的回复内容: 远方: 谢谢你,按照你的说法,是否CAN总线在工业上就没有什么发展前景了?其实国内有许多大型的企业可以用上总线技术,但进入的最大难度就是让企业接受和认可它。我们国内总线技术目前还不规范,在技术规模上没有形成太大的影响力。企业的思想目前仍停留在传统、保守的状态,对于新技术的接受能力较差。在技术上我们并不比国外差,目前我们的差距就是能把总线技术推向一个正常的轨道,使其产品规模化、规范化。

现在的趋势是系统和集成,企业往往用的自动化厂商(如Rockwell Automation, Siemens, ABB, Schneider等等)的控制系统(PLC, HMI, Drive, 传感器, 软件等等),通讯已经是控制系统的一部分了,如Rockwell Automation的EtherNet/IP, ControlNet, DeviceNet, 西门子的ProfiNet, Profibus,哪能指望企业会再用另外一套总线技术呢?

我们的总线技术的前途也许在于“农村包围城市",从小的作坊、工厂做起,等技术成熟了再推向大企业。而不是硬拼大企业。

技术我想不单单是用80C250 + SJA1000做个CAN节点吧,不得不承认我们系统设计,协议设计,可靠性设计等等方面还是有差距的,一起努力吧。

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页