当前位置:首页 > 单片机 > 单片机
[导读]1 引言   在ff、lonworks、profibus、can、hart等主流现场总线工业通讯技术之中,can(controller area network,又称控制器局域网)总线除了具备现场总线的开放式、互操作性、数字化通讯等特点外,还具有以下特点

1 引言
  在ff、lonworks、profibus、can、hart等主流现场总线工业通讯技术之中,can(controller area network,又称控制器局域网)总线除了具备现场总线的开放式、互操作性、数字化通讯等特点外,还具有以下特点:(1)以多主机方式工作;(2)can上的节点信息分不同的优先级,可满足不同的实时要求;(3)采用非破坏性总线仲裁技术,节省了总线冲突仲裁时间;(4)采用短帧结构,传输时间短,受干扰率降低,具有极好的检错效果;(5)每帧信息都有crc校验及其它检错措施,数据出错率极低;(6)通信介质可灵活地选择;(7)can上的节点数高达110个;(8)有很高的可靠性和性能价格比等。can总线的这些特点使得其能同时满足过程控制和制造业自动化的需求,[1]因而can总线的研究与应用已成为工业数据总线领域的热点。在总线系统中,传统的4-20ma的模拟输入信号被数字信号取代,设备状态、故障、参数等信息通过现场总线传送给上位机完成远程控制及远程参数化,具有can总线接口的各种仪器、仪表设备通过can适配卡可实现与上位机的can总线通讯。

2 硬件设计
  can通信的核心芯片是can控制器,can的通信协议主要是由它完成的,它可以实现物理层和数据链路层的所有功能。can控制器有许多芯片结构,独立芯片的例如philips的sja1000,西门子的82c900等,还有和微处理器做在一起的嵌入型结构。本项目根据智能化、可靠性高、抗干扰能力强、成本低等原则,can控制器采用microchip公司的pic18f458单片机内嵌can控制器方案。pic18f458功能强大,1536k片内数据ram、3个16位定时/计数器、1个8位看门狗wdt定时器、8路模拟输入的片内adc。看门狗wdt定时器用来监视程序的运行状态,一旦cpu由于意外原因偏离正常程序之外,wdt将强行把cpu复位,使其返回正常程序。pic18f458can模块除遵循can总线的协议,同时也有自己的特点,主要包括:(1)支持can协议can2.0a、can2.0b;(2)支持标准帧、扩展帧、远程帧、过载帧、错误帧等;(3)2个接收缓冲器、3个发送缓冲器;(4)6个接收过滤器;(5)2个屏蔽过滤器。选用功能强大的pic18f458单片机,大大简化了电路设计,节省了成本。
  can收发器即总线驱动器是can控制器与物理总线之间的接口,可以提供对总线的差动发送和接受功能,can总线驱动器种类有82c250/251、tja1040、tja1050等多种,适用于不同场合。philips公司的高速总线驱动器82c50,它采用双线差分驱动,抗干扰强。can总线驱动器与单片机接线如图1所示,为实现总线上节点之间的电气隔离 can驱动器通过高速光藕6n137与pic18f458进行相连。在can总线两端的can接头上接入120欧匹配电阻,以消除阻抗不连续时的反射现象,总线与地各自并联一个30pf的小电容,以防电磁辐射和抗高频干扰[2]。注意在实际应用中,节点之间的电源也要隔离,+5v隔离后才能接vcc,否则也会有干扰。

图1 82c250与pic18f458接线图

3 软件设计
  软件采用mplab ide7.5开发平台及mcc18软件,为了有利于程序的移植和修改可将程序设计成能相对独立的子程序。can总线的各种协议已经被集成在pic18f458的can模块里面,只要对相应的寄存器进行操作就可完成can系统通信。pici8f458的can通信程序主要包括can初始化、接受子程序、发送子程序等。can初始化主要对can进行配置,设置发送邮箱、接收邮箱标识符及初始化数据,设置波特率、can工作模式,初始化接受滤波器和接受屏蔽。接受使用中断方式,发送采用查询方式。在can总线上的所有节点必须有相同的波特率,设波特率fosc=4mhz,同步时间段sync_seg=1tq,传输时间段prop_seg=1tq,相位缓冲时间段1phase_seg1=3tq,相位缓冲时间段2phase_seg2=3tq,标称位时间=8tq,位率=0.125mhz。在can总线通讯中,can的初始化非常重要[3]。
3.1 can初始化子程序
  void intcan()
  {trisb=(trisb|0x08)&0xfb; /* 设置rb2为输出,rb3为输入*/
  cancon=0x80; /*请求配置*/
  while((canstat&0x80)==0) /*配置方式*/
  {
  ;
  } /*等待进入配置模式*/
  brgcon1=0x01; /*设置波特率*/
  brgcon2=0x90;
  brgcon3=0x42;
  txb0con=0x03; /*设置优先级*/
  txb0sidl=can_biaosf_l&0xe0; /*标准标识符*/
  txb0sidh= can_ biaosf _h ;
  txb0dlc=0x08; /*数据长度1字节*/
  txb0d0=0x00;
  txb0d1=0x00;
  rxb0sidl= can_ biaosf _l&0xe0;/*标准标识符*/
  rxb0sidh= can_ biaosf _h ;
  rxb0con=0x20; / *接受有效的标准标识符信息*/
  rxb0dlc=0x08; /*数据长度1字节*/
  rxb0d0=0x00; /*初始数据*/
  rxb0d1=0x00;
  rxb0d2=0x00;
  rxf0sidh=can_ biaosf _h;/*初始化接受滤波器和接受屏蔽*/
  rxf0sidl=can_ biaosf _l;
  rxm0sidh=0xff;
  rxm0sidl=0xe0;
  cancon=0x40; /*正常模式*/
  while((canstat&0x40)!=0) /*检测配置完成*/
  {
  ;
  }
  pir3=0x00; /*初始化can中断*/
  pie3=0x01;
  ipr3=0x01;
  }
3.2 接收中断子程序
  void interruphandlerhigh()
  {
  if(pir3bits.rxb0if==1) /*接收can中断*/
   {
   can_flag=1; /*置接收中断标志*/
   pir3bits.rxb0if=0; /*清接收中断标志*/
  rxb0conbits.rxful=0; /*接收*/
  }
  }
3.3 发送子程序
  void fasong()

  txb0d0=clz; /*clz为发送数值*/
  txb0con=txb0con|0x08; /*发送*/
  }
  写好这三部分程序,就很容易写出通讯程序了。

4 结束语
  本项目设计可用于各种电气设备形成can接口,也可在此基础上继续开发,加入设备的控制算法,对设备进行总线化智能化改造。利用pic18f458设计的can总线接口进行了dkj直行程电动执行机构的智能化改造,与上位机实现了can总线通讯,试验效果理想。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭