嵌入式系统的CAN总线设计

发布者:幸福之星最新更新时间:2011-12-05 关键字:嵌入式系统  CAN总线 手机看文章 扫描二维码
随时随地手机看文章
  CAN总线概述

  CAN(Controller Area Network)总线即控制器局域网络,是现场总线之一,由德国Bosch公司为汽车的监测、控制系统而设计的总线式串行通讯网络,适合于工业过程控制设备和监控设备之间的互联。是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面。CAN具有下下列主要特性:①低成本;②远距离传输(长达lOKm);③高速的数据传输速率(高达1Mbit/s);④可根据报文的ID决定接收或屏蔽该报文;⑤可靠的错误处理和检错机制;⑥发送的信息遭到破坏后,可自动重发;⑦节点在错误严重的情况下具有自动退出总线的功能。

  2 嵌入式系统的CAN接口电路

  基于ARM7架构嵌入式系统的CAN接口硬件模块包括Samsung公司的嵌入式微处理器S3C44BOX和Philips公司的CAN控制器芯片SJAl000和CAN总线收发器PCA82C250。

  2.1 Samsung S3C44BOX的结构及特点

  8KB Cache、 Samsung S3C44BOX微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI CPU核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:外部存储器控制器、LCD控制器、4个DMA通道、2通道异步UART单元、1个同步串行口(SIO)、1个多主12C总线控制器、1个I Is总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。

  2.2 CAN总线控制器

  CAN总线控制器选用PHILIPS公司的SJAl000。 SJAl000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络(CAN)。它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品。而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN2.0B协议。SJA1000是新一代CAN控制器,有如下特点:①和PCA82C200独立CAN控制器引脚兼容及电气兼容;②SJA1000有两种工作模式:基本CAN模式(BASIC CAN)和增强CAN模式(PELI CAN),支持CAN2.0A/B协议;③同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能;④扩展的接收缓冲器(64字节、先进先出FIFO),增强的环境温度范围(-40-+125℃);⑤检错和纠错能力加强;⑥支持带电插拔。

  SJA1000方框图如图1所示。其中接口管理逻辑IML负责连接外部主控制器,该控制器可以是微型控制器或其它任何控制器。接口管理逻辑IML接收来自微控制器的命令,分配控制信息缓存器发送缓存器TBF、接收缓存器RBF0和RBF1,并为微控制器提供中断和状态信息。发送缓存器TBF由10个字节存贮单元组成,存贮由微控制器写,将被发送至CAN总线网络的报文。接收缓存器0和1(RBF0、RBF1)均由10个字节组成,交替存贮从总线接收的报文,当一个缓存器分配给CPU,位流处理器可以对另一个进行写操作。位流处理器是一个控制发送缓存器和接收缓存器(并行数据)与CAN总线(串行数据)之间数据流的序列发生器。位定时逻辑将SJA1000同步于CAN总线上的位流。验收滤波器支持11位和29位标识符的滤波,所有收到的报文由验收滤波器验收并存储在接收FIFO。错误管理逻辑按照CAN协议完成错误界定。


  2.3 CAN总线收发器

  CAN总线收发器选用Philips公司PCA82C250产品。CAN总线收发器是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动接收能力,有很强的抗电磁干扰(EMI)的能力,至少可挂110个节点。

  2.4 嵌入式系统的CAN接口电路

  图2是嵌入式微处理器S3C44BOX的CAN接口电路图。如图所示,ARM和SJA1000以总线方式连接,由于ARM信号为3.3伏,而CAN总线控制器电平为5伏,所以所有信号之间均需要电平转换,本例中使用了QS34X245作为电平转换芯片。QS34X245为80引脚的双例直插芯片,它既有电平转换功能(5V变到3.3V),又是一个总线开关和隔离器件。QS34X245内提供一组32位高速CMOS兼容的总线开关,当输出使能端OEn(n为1~4)为低电平时,开关通,连能总线A和总线B;当输出使能端OEn为高电平时,则开关断开,总线A和总线B隔离。OE1控制总线A和总线B的低8位(即A7~A0和B7~B0),OE2控制A15~A8和B15~B8,OE3控制A23~A16和B23~B16,OE4控制A31~A24和B31~B24。由于ARM总线非复用,而SJA1000总线复用,所以必须通过逻辑产生地址锁存信号ALE,在本例中该信号由芯片GAL22V10产生。SJA1000的片选、读写信号均采用ARM总线信号,ALE信号由读写信号和地址信号通过GAL产生。在写SJA1000寄存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过GAL产生。此外,CAN总线需要在两线问加一个120欧电阻。


  3 系统软件的设计

  CAN控制器对于主控制器(CPU)来讲是一个存储器映象的I/O设备,SJA1000的功能配置和行为由主控制器的程序执行,主控制器和SJA1000之间的数据交换经过一组寄存器(控制段)和一个RAM(报文缓存器)完成。RAM部分的寄存器和地址窗口组成了发送缓存器和接收缓存器,其中控制段由CPU在初始化时设置,需要发送的数据由CPU填入发送缓存器中。接收缓存器有两个,对于CPU而言两者地址是相同的,当CPU读取一个缓存器时,另一个可同时在接收数据,两者替工作。SJA1000初始化程序图3所示。


  SJA1000控制段寄存器包括控制寄存器CR、命令寄存器CMR、状态寄存器SR、中断寄存器IR、接收代码寄存器ACR、接收屏蔽寄存器AMR、总线定时寄存器BTR0及BTRl、输出控制寄存器OCR、测试寄存器TR。控制寄存器用来控制中断、复位和同步方式。命令寄存器用来控制发送、终止发送、缓冲区释放、清除过载状态、睡眠、唤醒和接收方式。状态寄存器用于指示CAN控制器的当前工作状态,包括接收缓冲区状态、数据是否超载、发送缓冲区状态、发送是否结束、接收是否正在进行、发送是否正在进行、错误状态和总线是否关闭。中断寄存器用来指示各中断源状态,包括接收中断、发送中断、出错中断、超载中断和唤醒中断。接收代码寄存器存放用于接收帧识别的代码。接收屏蔽寄存器说明对应于接收代码的哪些位参与接收帧识别。总线定时寄存器用来设定总线通信速率。输出控制寄存器用来控制输出驱动器的输出方式。测试寄存器仅用于芯片内部测试。

  控制CAN总线时首先初始化各寄存器,以设定通信参数(如:模式、位速率、验收码、屏蔽码、字段长、总线定时、输出模式等),BASIC CAN方式控制段共10个字节。发送数据时首先置位命令寄存器,然后将被发送的报文写入发送缓冲区,最后置位请求发送,由SJAl000完成发送。接收通过查询状态寄存器,读取接收缓冲区获得信息,然后释放接收缓冲器。

关键字:嵌入式系统  CAN总线 引用地址:嵌入式系统的CAN总线设计

上一篇:液晶显示器TCON接口液晶面板
下一篇:嵌入式系统的以太网接口设计及linux驱动

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

嵌入式系统中CMOS图像传感器接口技术
背 景 目前数字摄像技术,主要采用两种方式:一种是使用CCD(电容耦合器件)图像传感器,另一种是使用CMOS(互补金属氧化物半导体)图像传感器。 CCD图像传感器具有读取噪声低、动态范围大、响应灵敏度高等优点。但CCD技术难以与主流的CMOS技术集成于同一芯片之中。因而CCD图像传感器具有体积大、功耗高等缺点。 CMOS 图像传感器是近些年发展较快的新型图像传感器,由于采用了CMOS技术,可以将像素阵列与外围支持电路(如图像传感器核心、单一时钟、所有的时序逻辑、可编程功能和模数转换器)集成在同一块芯片上。因此与CCD相比,CMOS图像传感器将整个图像系统集成在一块芯片上,具有体积小、重量轻、功耗低、编程方便、易于控制等优点。
[单片机]
<font color='red'>嵌入式系统</font>中CMOS图像传感器接口技术
简析单片机与嵌入式系统异同
  什么是单片机呢?一般我们将单片微型计算机简称为单片机,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。是一种典型的嵌入式微控制器。那么,什么是嵌入式系统?嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。对于单片机与嵌入式系统这两者又有什么区别与联系呢(嵌入式操作系统功能)?下面就让我们不一起来探讨学习一下吧。    单片机与嵌入式系统组成结构对比   (1)单片机基本结构   单片机由运算器、控制器、存储器、输入输出设备构成。   (2)嵌入式系统成部
[单片机]
简析单片机与<font color='red'>嵌入式系统</font>异同
嵌入式系统中串口通信帧的同步方法
引 言 串口通信是日前单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与PC机有很大的不同。若嵌入式系统中.中断服务子程序在系统运行过程中占用了较多的时间,就有可能在中断眼务子程序正运行时,又产生一个同类型或其他类型的中断,从而造成主程序得不到执行或后续中断数据丢失。所以,嵌入式系统中的串口通信虽然看似简单,但其中仍有许多问题值得研究,例如串口通信过程中的帧同步问题。本文针对该问题给出了逐次比较、基于FIFO队列和基于状态机的
[嵌入式]
uCOS II嵌入式系统在C8051F060上的应用
随着集成电路的高速发展和CMOS工艺水平的不断提高,系统级芯片SOC已经开始成为设计的主流。C8051F060单片机由美国Cygnal公司设计并制造,是一款完全集成的混合信号片上系统SOC,具有与MCS51内核及指令集完全相同的微控制器。在传统的单片机开发工作中,经常遇到程序跑飞或是陷入死循环,尤其是其中牵扯到复杂的计算,只有耗费大量时间来慢慢分析。如果在系统中嵌入uCOS II实时操作系统,将使得调试程序变得简单,并大大增强系统的稳定性和可靠性。 1 uCOS II系统在C8051F060上的应用 要应用uCOS II系统,首先要做的就是在C8051F060上移植该系统;其次,在运行稳定正常的系统上进行开发。另外,还需要一个
[单片机]
在Nexar上如何实现RTOS51的嵌入式系统
构建基于RTOS51操作系统的嵌入式软件工程     在Nexar中创建基于RTOS的嵌入式系统工程,需要创建一个嵌入式工程,其中包括一个用户配置文件(user.oil),用户设计源文件(*.c,*.h);并在系统配置选项中设定编辑,编译,链接及调试环境参数。当修改用户配置文件(user.oil),系统将会在目标代码中重建RTOS库。完成嵌入式系统工程编译后,TASKING调试器可以利用ORTI协议(OSEK实时接口协议)完成嵌入式系统的实时调试。同时,在Nexar中支持软件的仿真调试功能。     以下我们将结合一个实例来简要介绍一下如何在Nexar上实现一个完整的基于RTOS51的嵌入式系统设计过程。 首先:创建一
[嵌入式]
基于CAN总线车载故障诊断仪设计
本文提出了一种基于车载 CAN总线 故障诊断 仪设计方案。本方案成本低廉,携带方便,具有很强的灵活性与适应性。 1 方案设计 系统总体设计框图如图l所示。系统分为发射端和接收端两部分。 由于采用 射频技术 ,使汽车CAN总线数据采集部分和CAN总线数据诊断部分得以分离,无需连线,不受空间场地限制,安装携带方便。按照ISO有关标准, CAN总线传输速率最高可达1 Mbps;但由于汽车内部特殊环境,车载CAN总线速率一般在250 kbps。本系统中射频速率最高可达l Mbps,可以很好地满足数据传输要求。 发射端采用USB作为接收模块和PC接口。USB与RS232或PCI接口相比,具有用户使用方便,设备自动识别,自动安装驱动
[单片机]
基于<font color='red'>CAN总线</font>车载故障诊断仪设计
ARM7嵌入式系统中启动程序的实现
在我们研制开发基于ARM7的嵌入式系统过程中,发现技术难点主要在于系统启动程序的编写,为此本文详细论述了在arm7基础上开发嵌入式系统时启动程序的实现。 1.启动程序流程 嵌入式系统的资源有限,程序通常都是固化在ROM中运行。ROM中程序执行前,需要对系统硬件和软件运行环境进行初始化,这些工作由用汇编语言编写的启动程序完成。 启动程序是嵌入式程序的开头部分,应与应用程序一起固化在ROM中,并首先在系统上运行。它应包含进各模块中可能出现的所有段类,并合理安排它们的次序。 写好启动程序是设计好嵌入式程序的关键,系统启动程序所执行的操作依赖于正在开发其软件的系统,一般流程如下: 进入应用程序主循环 2.详细步骤 ⑴设置入口指针 启动程序
[单片机]
CAN总线技术在矿井安全生产监控系统中的应用
  我国的矿井安全生产监控系统经历了从无到有,从简到繁,从一体机到网络化,从二级网络到多级网络的综合监控的过程。经过十几年的应用表明,矿井安全生产监控系统为我国煤矿安全生产和现代化管理起到了显著作用。但是,由于现有的监控系统几乎都采用各自专用的通信协议,所以,很难找到两个相互兼容的系统。目前,信息传输系统的兼容性已成为装备监控系统的各局、矿进一步扩充系统功能的制约因素。因此,寻找一种解决系统兼容性问题的途径,对促进矿井监控技术的发展和系统的推广应用均具有十分重要的意义。   矿井安全生产监控系统中采用通信协议的现状   通信协议是在网络中用于规定信息的格式以及信息如何发送和接收的一套规则。处于网络中的节点必须遵循双方约定的
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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