基于ARM7处理器的CAN总线网络设计

发布者:浅唱梦幻最新更新时间:2011-11-19 关键字:ARM7处理器  CAN总线网络 手机看文章 扫描二维码
随时随地手机看文章
  引言

  can(controller area network)即控制器局域网络,最初是由德国bosch公司为解决汽车监控系统中的自动化系统集成而设计的数字信号通信协议,属于总线式串行通信网络。由于CAN总线自身的特点,其应用领域由汽车行业扩展到过程控制、机械制造、机器人和楼宇自动化等领域,被公认为最有发展前景的现场总线之一。

  can总线系统网络拓扑结构采用总线式结构,其结构简单、成本低,并且采用无源抽头连接,系统可靠性高。本设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等持点。

  2  系统总体方案设计

  整个can网络由上位机(上位机也是网络节点)和各网络节点组成(见图1)。上位机采用工控机或通用计算机,它不仅可以使用普通pc机的丰富软件,而且采用了许多保护措施,保证了安全可靠的运行,工控机特别适合于工业控制环境恶劣条件下的使用。上位机通过can总线适配卡与各网络节点进行信息交换,负责对整个系统进行监控和给下位机发送各种操作控制命令和设定参数。


  图1 can总线网络系统结构

  网络节点由传感器接口、下位机、can控制器和can收发器组成,通过can收发器与总线相连,接收上位机的设置和命令。传感器接口把采集到的现场信号经过网络节点处理后,由can收发器经由can总线与上位机进行数据交换,上位机对传感器检测到的现场信号做进一步分析、处理或存储,完成系统的在线检测,计算机分析与控制。本设计can总线传输介质采用双绞线。

  3 can总线智能网络节点硬件设计

  本文给出以ARM7tdmi内核philips公司的lpc2119芯片作为核心构成的智能节点电路设计。该智能节点的电路原理图如图2所示。该智能节点的设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等特点,下面分别对电路的各部分做进一步的说明。


  图2 can总线智能网络点

  3.1  lpc2119处理器特点

  lpc2119是philips公司推出的一款高性价比很处理器。lpc2119是基于一个支持实时仿真和跟踪的16/32位arm7tdmi-stm cpu,并带有128kb嵌入的高速flash存储器。独特的加速结构使32位代码能够在最大时钟速率下运行,对代码规模有严格控制的应用可使用16位thumb模式将代码规模降低超过30%,而性能的损失却很小。实行流水线作业,提供embedded ice逻辑,支持片上断点和调试点,具有先进的软件开发和调试环境。

  lpc2119具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、2路can、pwm通道、多个串行接口,包括2个16c550工业标准uart、高速i2c接口(400 khz)和2个spi接口,46个gpio以及多达9个外部中断使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。

  lpc2119内部集成2个can控制器,每一个can控制器都与独立can控制器sja1000有着相似的寄存器结构。其主要的区别在于标识符接收过滤的编程操作上,篇幅有限这里不作详述。它的主要特性有:单个总线上的数据传输速率高达1mb/s;32位寄存器和ram访问;兼容can2.0b,iso11898-1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供full can-style自动接收。

  3.2 数据采集和人机接口

  传感器接口的选用应根据实际系统所要实现的功能而定,由传感器将被测量转化成电量。由于测试环境的电磁干扰、传感器和放大器自身的影响,往往使信号中含有多种频率成分的噪音,直接从传感器输出的信号需要经过信号调理电路作进一步的处理才能使后续电路得以正常工作。经过调理后的信号输入到lpc2119的模拟信号输入端p0.27-p0.30,lpc2119内有4路10位adc,转换时间低至2.44μs。

  人机接口利用lpc2119丰富的gpio接口采用led显示输出和键盘输入,如图2所示。本设计采用4个led分别表示节点电源、数据通信状态、联机指示和错误指示。键盘设计了6个按键用来设置节点的报文滤波、节点的波特率及节点复位等功能。

  3.3 CAN总线接口

  根据图2所示,can接口部分包括lpc2119(内置can控制器)、光电耦合器和总线收发器。can总线遵循iso的标准模型,分为数据链路层和物理层。在工程上通常由can控制器和收发器来实现。收发器选择philips公司的tja1050高速收发器,它符合iso11898标准。can控制器主要完成can的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等。收发器tja1050则是实现can控制器和通讯线路的物理连接,提高can总线的驱动能力和可靠性。

  为了进一步提高系统的抗干扰能力,lpc2119引脚tx1、rx1与收发器tja1050并不是直接相连的,而是通过高速光耦6n137后与tja1050相连。电路中可采用隔离型DC/DC模块向收发器电路供电。dc/dc模块采用金升阳的b0505s-1w定电压输入隔离非稳压单输出型dc/dc模块,隔离电压≥1000vdc。这样就可以很好地实现总线上各接点的电气隔离,这部分电路虽增加了复杂性,但却保证了稳定性和安全性。

  tja1050与can总线的接口部分也采用了一定的安全和抗干扰措施,canh和canl与地之间并联了两个小电容ch和cl可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。电容值须由节点的数量和波特率决定,当tja1050 的输出级阻抗大约是20ω,总线系统有10个节点速度是500kbps,则电容的值不应该超过470pf。另外在两根can总线接入端与地之间分别反接了一个保护二极管,当can 总线有较高的负电压时通过二极管的短路可起到一定的过压保护作用。根据tja1050的特性,本设计中can终端电阻使用了分裂终端,即总线端节点的两个终端电阻都被分成两个等值的电阻,用两个60ω的电阻代替一个120ω的电阻,这样可以有效的减少辐射。由于使用了分裂终端,tja1050的emc性能得到优化而且不会产生扼流。

  4 can总线应用层通信协议的制定

  can总线应用层协议制定的总体目标是最大限度地发挥can总线的优异性能,使通信更加规范、可靠,提高实时性,降低总线负载率。在设计系统的应用层通信协议时,需要考虑以下两个方面的内容:

  (1)结合系统的设计要求,分析通信中所有信息对象,确定需要支持的通信传输模式;

  (2)确定标识符的分配方案,定义帧格式。下面分别讨论之。

  4.1 确定通信的传输模式

  本系统要求实现广播式通信用来对全部从结点或部分从结点发布信息,同时主结点还要具备能够对单个结点进行操作的功能。因此定义以下三种传输模式:

  (1)支持全局/局部广播式通信。主结点向全部或部分结点发送信息,从结点接收信息后进行相应动作,不回送确认信息。

  (2)支持点对点式通信。主结点向某个从结点发送信息请求数据,从结点接收到请求后读取数据,并向主结点发送请求的数据。

  (3)支持点对点式通信。主结点向某个从结点发送信息,从结点接收到信息后执行相应操作,但不回送确认信息。

  4.2 确定标识符的分配方案

  确定标识符的分配方案,定义帧格式。标识符是can总线实现仲裁的依据,也是协议的关键,其分配方案要满足个节点及信息对优先级的要求。本文在协议中定义了两种类型的帧:信息帧和数据帧。信息帧用来传送主结点对从结点的命令、配置信息以及通信中的连接响应信息等。而从结点向上传送过程数据则通过数据帧来实现。信息帧的优先级高于数据帧。

  设计中通信协议采用can2.0a标准帧格式,只用数据帧,不采用远程帧。报文的格式如表1所示。本文对11位id进行了重新定义。dlc用于表示数据域的长度0~7个字节;m/s用于表示报文的传播方向,0表示主站向从站发消息,1表示从站向主站发消息;b/p表示通信方式,0表示广播式通信,1表示点对点通信;m/d表示帧类型,0表示信息帧,1表示数据帧;id(7-0)用于表示报文标识符;type用于表示报文是单帧报文还是多帧报文,该位为0时表示单帧或结束帧,该位为1时表示多帧报文;cmd表示命令标识,包括:0a表示上传命令,0b表示下载命令,0c表示联机命令,0d表示报警命令等;data表示数据域。


  当上位机需要与子节点进行通信时,可用以上三种模式向can网络节点发送信息帧,can网络中的节点接收到信息帧后,通过判别标识符和命令标识来区别信息帧的类别,并将节点所需要的数据发送出去。当网络节点发生突发事件时,可随时向上位机报告,上位机同样也是通过标识符来识别数据类型。

  5 结束语

  本文基于can总线技术,以lpc2119为核心,重点介绍了网络节点的硬件电路设计以及应用层协议的制定。软件设计部分,在keil uvision3环境下,实现了can控制器的驱动程序和应用层协议,解决了现场传感器得到的测量信号利用下位机进行处理和存储,然后通过内置can控制器将数据发送到can总线上,完成与上位机的通讯。设计具有通用性,实时性,可扩展性强的特点,现已通过调试,性能稳定,可以移植到其他系统中。

关键字:ARM7处理器  CAN总线网络 引用地址:基于ARM7处理器的CAN总线网络设计

上一篇:简化PCI总线协议的实现以及FPGA驱动设计
下一篇:基于LVDS总线的高速长距数据传输的设计

推荐阅读最新更新时间:2024-05-02 21:43

如何将μClinux移植到ARM7体系微处理器S3C4510B上
Linux是一种支持多种体系结构处理器的操作系统,有很强的移植性。描述了将μClinux移植到基于S3C4510B处理器目标板上的方法与过程。首先介绍了S3C4510B处理器和μClinux,并简单说明了如何搭建移植环境,然后着重讨论了在该开发板上Bootloader的设计实现以及μClinux内核的移植方法,最后对在这种基于μClinux的嵌入式系统环境下如何开发应用程序做了简单说明。 1引言 ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用A
[单片机]
如何将μClinux移植到<font color='red'>ARM7</font>体系微<font color='red'>处理器</font>S3C4510B上
ARM9处理器ARM7处理器比较
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。本文主要介绍它们与ARM7TDMI的结构以及性能比较。 以手机应用为例,2G手机只需提供语音及简单的文字短信功能,而目前的2.5G和未来的3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。主要包括:(1)无线网络设备:手机上网、电子邮件及其他定位服务等功能;(2)PDA功能:含有用户操作系统(Windows CE、Symbian OS、Linux等)及其他功能;(3)高性能功能:音频播放器、视频电话、手机游戏等。在2.5G和3G的应用中ARM9已经全面替代了ARM7。因为ARM9的新特性能够满足各种新需求的同时减少
[单片机]
ARM9<font color='red'>处理器</font>与<font color='red'>ARM7</font><font color='red'>处理器</font>比较
利用ARM7处理器对无刷电机实施磁场定向控制
  电机驱动能效不论提高多少,都会节省大量的电能,这就是市场对先进的电机控制算法的兴趣日浓的部分原因。三相无刷电机主要指是交流感应异步电机和永磁同步电机。   这些电机以能效高、可靠性高、维护成本低、产品成本低和静音工作而著称。感应电机已在水泵或风扇等工业应用中得到广泛应用,并正在与永磁同步电机一起充斥家电、空调、汽车或伺服驱动器等市场。推动三相无刷电机发展的主要原因有:电子元器件的价格降低,实现复杂的控制策略以克服本身较差的动态性能成为可能。   以异步电机为例。简单的设计需要给定子施加三个120°相移的正弦波电压,这些绕组的排列方式能够产生一种旋转磁通量。利用变压器效应,这个磁通量在转子笼内感应出一股电流,然后产生转子磁通量。
[单片机]
利用<font color='red'>ARM7</font><font color='red'>处理器</font>对无刷电机实施磁场定向控制
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved