嵌入式系统的CAN总线设计

发布者:AngelicJourney最新更新时间:2013-03-18 来源: dzsc关键字:嵌入式系统  CAN总线  S3C44BOX 手机看文章 扫描二维码
随时随地手机看文章

  1 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欧电阻。[page]

  

  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总线  S3C44BOX 引用地址:嵌入式系统的CAN总线设计

上一篇:AVR单片机定时器的要点
下一篇:TKScope仿真/烧录BootLoader方法

推荐阅读最新更新时间:2024-03-16 13:20

基于FPGA的CAN总线通信节点设计
摘要:以FPGA代替传统的单片机和外围扩展芯片,给出了CAN总线通信节点的详细设计方案。其中以SJA1000为CAN总线控制器、FPGA为主控制器,设计实现通信节点的硬件接口电路。基于对CAN总线控制器的功能分析,并应用Verilog语言进行软件设计,从而实现CAN节点之间的通信功能。 0引言 CAN总线允许高达1Mbit/s通讯速率,支持多主通讯模式,有高抗电磁干扰性而且能够检测出通信过程中产生的任何错误,已被广泛应用到各自动化控制系统中。在项目的特殊环境要求下,CAN总线通信要求使用FPGA作为系统中的主控制器,较之传统设计使用的单片机,FPGA能够在速度和体积上有更好的适应性。FPGA一方面减少了电路板的复杂程度,缩
[工业控制]
基于CMOS图像传感器的纳型卫星遥感系统设计
  纳型卫星是指质量在1~10kg 之间的卫星。与微型卫星相比, 纳型卫星对遥感系统在质量、体积、功耗等方面的要求更加苛刻。目前广泛用于微型卫星遥感系统的电荷耦合器件CCD很难满足纳型卫星的使用要求。CMOS图像传感器采用标准的CMOS 技术, 继承了CMOS 技术的优点, 如静态功耗低、动态功耗与工作频率成比例、噪声容限大、抗干扰能力强、特别适合于噪声环境恶劣条件下工作、工作速度较快、只需要单一工作电源等。虽然 CMOS 器件的研究还未完全成熟, 如电离环境下暗电流稍大等问题还没有很好地解决,还不能完全取代CCD, 但不可否认CMOS 器件将是未来遥感传感器的发展方向。本文设计了一套纳型卫星CMOS 遥感系统, 并对其进行了热循
[工业控制]
基于MC9S08DZ60的CAN总线振动传感器设计
1 引言 随着人们安全意识的不断提高设备的安全监测显得越发重要。各种在线监测设备层出不穷,但大多都受到传统总线速率较低,传输精度不高的限制。CAN总线以其在汽车行业内实时、可靠、灵活的应用而备受瞩目,进而不断有其他领域的CAN总线应用产品出现,基于CAN 总线的振动传感器正是其中一种,组网后的传感器能够很好地实现大型装置的在线监测,为企业的安全生产奠定了基础。 2 器件简介 2.1 MC9S08DZ60单片机 飞思卡尔公司的MC9S08DZ系列单机片内嵌 CAN的微控制器,并将内嵌的CAN、EPROM和片上仿真/调试模块组合在一起,集成了所有的功能,设计人员可以便捷地转向其设计流程。 MC9S08DZ60型单机片可提供60
[单片机]
基于MC9S08DZ60的<font color='red'>CAN总线</font>振动传感器设计
基于STWD100xP WTD嵌入式系统抗EMC技术
摘要:随着嵌入式技术的发展,嵌入式系统对系统稳定性、可靠性、抗干扰性等要求逐渐增高。在此详细分析嵌入式系统EMC产生的原因和途径,在不增加CPU额外开销情况下,采用了意法半导体公司硬件看门狗集成电路STWD100,提高了系统可靠性和稳定性,并给出了STDW100与CPU应用原理图。实验证明,采用STDW100硬件看门狗使嵌入式系统具有很强的抗EMC能力,在实际应用中使系统具有相当高的可靠性和稳定性。 关键词:嵌入式系统;EMC;可靠性;看门狗;STDW100 1 EMC的特点 嵌入式系统EMC(Electro Magnetic Compatibility)即嵌入式系统电磁兼容性,指嵌入式系统在复杂电磁环境中抵抗其他系统所产
[工业控制]
基于STWD100xP WTD<font color='red'>嵌入式系统</font>抗EMC技术
C8051F040的车用CAN总线智能节点设计
电气与电子系统是车辆的重要组成部分,其工作状态直接影响车辆的性能。按照传统设计思想设计车辆电气系统时,往往采取堆积各种子系统的途径来提高系统的性能,因此车辆内部各子系统之间单纯面向任务而不考虑与全局的关系。随着子系统及装置数量不断增加,传统设计方法遇到了一系列问题:线路增多、布线复杂、电磁干扰增加、系统可靠性下降、检查维修困难等。为了解决上述问题,现代车辆采用了综合电子系统。总线是综合电子系统的基础,通过总线节点,综合电子系统可采集、使用、分配和共享车内所有电子系统的各种信息,达到弱化矛盾、增强整体功能的目的。CAN总线由于具有性价比高、可靠性高、实时性好、灵活性强等特点,得到广泛应用。本文针对CAN总线,提出了一种基于C8051
[单片机]
C8051F040的车用<font color='red'>CAN总线</font>智能节点设计
上海通用汽车如何一分钟找到CAN总线的问题节点
上一篇《一分钟找到CAN总线的问题节点》引起了诸多CAN应用者的共鸣,上海通用汽车用这个功能,进行焊接机器人的日常维护,监测机器人CAN通信的信号质量,及时更换有隐患的节点。如图1所示。因为焊接机器人工作在比较严酷的电磁环境中,其CAN通信好坏直接影响汽车生产的效率和品质。所以快速找到问题节点并且予以更换是非常重要的。 图 1 上海通用焊接机器人 CANScope分析仪广州致远电子股份有限公司研发的一款综合性的CAN总线开发与测试的专业工具,集海量存储示波器、网络分析仪、误码率分析仪、协议分析仪及可靠性测试工具于一身,并把各种仪器有机的整合和关联;重新定义CAN总线的开发测试方法,可对CAN网络通信正确性
[汽车电子]
上海通用汽车如何一分钟找到<font color='red'>CAN总线</font>的问题节点
基于PLD的嵌入式系统外存模块设计
在嵌入式系统中,由于设计成本和体积等因素的限制,往往会使CPU(包括DSP、单片机等)存在地址空间不足的问题。很多文献(如参考文献[1]都有相关的存储器扩展方法的介绍, 目前已有的方法通常是借助于CPU的I/0接口产生片选或者高位地址信号,利用这些信号将内存分页,但当页间跳转时将给程序设计带来不便。对于没有内部存储器并且采用统一编址的CPU,如80C196KC20[1],这种页间切换将造成CPU无法继续执行当前程序而产生错误(见图1)。在CPU执行页面切换操作后,本应该继续执行页面1的指令,可是却错误地执行了页面2中的相应指令,这种结果不是所需要的。因此寻找一个有效的存储器扩展方法是实际应用中亟待解决的问题。 1 存储器扩展方
[单片机]
基于PLD的<font color='red'>嵌入式系统</font>外存模块设计
CAN总线车载网络通讯组件的研究和实现
   1 引言   目前,汽车电子正朝着网络化的方向发展,车载网络成为汽车电子领域的最大热点。提高控制单元间通讯可靠性并且降低导线成本的网络总线应用中的关键技术包括CAN、LIN、FlexRey、MOST、IDB1394 等。对于汽车整车厂来说,CAN 网络设计是应用CAN 网络通讯的关键。纵观现有的设计技术,可以将其分为两类:一类是以仿真和测试为主的传统设计方法;另一类是以协议设计为主的方法。传统方法将每个节点对协议的要求拼凑起来,通过仿真、测试的方法检验协议的正确性,最终得到通讯协议。新方法通过系统设计技术,用理论方法对系统的时序建模,分析设计系统的通讯协议,保证系统的实时性能以及协议的正确性,最终发布正确的通讯协议。本文
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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