首页 上一页 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网络基础上进一步发展,向上与适合企业管理的事物处理计算机系统相连构成工厂级管控一体化系统。一般应包括如下功能:丰富的采集和控制功能;友好的人机界面;灵活的信息传输功能,通过通信网络,系统上级工作站可观察到任何一个下级控制站,直到现场信号的实时信息;整体的综合信息管理和处理功能,包括生产调度、系



互用

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2002年3月05日
发表于:2002-03-19 17:28:00
1楼
若有采用T89C51CC02 or T89C51CC01 作为开发CAN总线方案的同行, 希望能与您多联系.sxxpsun@263.net

lilylaw

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2002年3月11日
发表于:2002-04-04 09:36:00
2楼
你好!我是can的初学者,您的文章对于我来说真是受益非浅.我对出错处理有点不解,还望您能赐教!

enoch

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2002年6月24日
发表于:2002-06-24 17:28:00
3楼
非常感谢! 描述的非常清楚,如有51的程序就更加好了!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-10-19 11:05:00
4楼
在中断服务入口程序段中: Ldb cl,ir         Jbs cl,2,error;转出错子程序         Jbs cl,3,overrun;转超载子程序         Jbs cl,8015h         Jbs cl,4,transmit;转发送子程序   第4,5句怎么理解,是否有错?

409

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 86回
  • 年度积分:0
  • 历史总积分:86
  • 注册:2001年4月26日
发表于:2002-10-20 14:51:00
5楼
CAN的通讯距离最长可以超过10KM吗?

CARPENTER

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2002年8月23日
发表于:2002-10-22 15:04:00
6楼
研祥智能股份http://www.evoc.com FAQ论坛

郁闷的CAN新手

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2002年8月02日
发表于:2003-01-24 14:03:00
7楼
“③CAN采用非破坏性瞅瞅技术”中“瞅瞅”是什么意思?

microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2003-01-27 20:53:00
8楼
CAN的通讯距离最长500米

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-01-28 21:23:00
9楼
WHM先生,我是初次接触Divecenet,但苦于手头没有协议,请问您能给我E-mail一份Divicenet协议吗?我很感谢你,我的E-mail是:dreamwk@163.com

wuxinhui98

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2003年4月10日
发表于:2003-04-22 15:04:00
10楼
您好!请问能给我一份有关82C250方面的资料吗?谢谢!我的emil:wangyanjuan@sac-china.com

技术爱好者

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 11回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2002年12月25日
发表于:2003-04-22 19:59:00
11楼
can总线传输距离可以大于10km。

caucbyg

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2003年4月06日
发表于:2003-05-22 08:26:00
12楼
好像不够完整

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-05-22 08:51:00
13楼
好文,值得参考

whm

  • 精华:1帖
  • 求助:0帖
  • 帖子:30帖 | 39回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2002年3月09日
发表于:2003-05-22 15:14:00
14楼
以上内容是我从网上下载收集的一些与CAN总线应用相关的技术文章,我觉得对大家应该有参考价值的。我也是出学者,希望大家能共同交流。记住:只有付出才有收获。 远方,好久不见了,你的网站发展的怎样了?

789654

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2002年2月28日
发表于:2003-05-23 15:56:00
15楼
can的直接通信距离最远可达10km(速率5kbps以下);最高为1Mbps(此时的通信距离为40m)

曹军义

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2003年8月12日
发表于:2003-05-23 21:58:00
16楼
总结的很好。我有一个调试窍门:就是针对sja1000,看是否初始化成功,sja1000的第七个引脚CLKOUT,初始化时允许输出,一旦设置成功,通过示波器可以看到准确的方波。即便不设置输出频率,初始化通过后,可以看到系统频率Fosc/2的方波。由此可见CLKOUT可做检测端口,也可做MCU的系统时钟,此时只需接单片机一个引脚即可。 多多交流!多多益善!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-05-27 20:33:00
17楼
为什么程序不能给的完整与可用,如果不愿意共享,完全不必贴出,但还是有帮助的

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-05-28 08:29:00
18楼
whm:呵呵,是好久不见了,你的项目还顺利吧?DND发展比较缓慢,时间实在是紧啊:( bizi:不完全贴出自然有一定的原因,BBS上的讨论一般针对每一个细节的问题进行详细的分析,而不是像网络教学一样一手一脚教会你去做一样东西,如果看看几篇教学文章就可以开发出一个产品,那这样的开发实际上已经变得不重要了,觉得whm的那句话还是有点味道:只有付出了才会有收获! 一直觉得此论坛里大家都抱着一种来获取东西的心态,似乎为别人提供信息不属于自己份内的事,那你可知道别人为什么要免费的为你提供服务呢?那是因为大家都有交流的需要,在为你提供服务的同时自己有所提高,所以建议大家都把自己的心得与体会还有收集的资料都贴出来,这样一方面可以活跃论坛的气氛,另一方面通过讨论也许你对以前自己的理解会有不同的看法。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-05-28 14:26:00
19楼
是有道理,但总感觉网上很多有用的东东,但每每都存在这一些陷阱,还是要你自己去发现,但对个人的思路开阔,还是很有帮助的。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-05-29 16:48:00
20楼
请教:在sja1000的几种针对错误的中断内,如何进行系统的优化或是系统的维护?当发生busoff故障,可以点亮CAN工作的led进行工作状态的指示,表明sja不能工作。但不知提供的这几种有关故障的中断的用处在什么地方。例如:仲裁位丢失,那么我以后就不使用这一位参与仲裁?

热门招聘
相关主题

官方公众号

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