基于SHARC DSP与SJA1000的CAN总线接口设计

发布者:Harmonious222最新更新时间:2012-02-15 来源: dzsc关键字:SHARC  DSP  SJA1000  CAN总线 手机看文章 扫描二维码
随时随地手机看文章
  引言

  当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。

  SJA1000简介

  SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的控制器局域网络(CAN)。它是Philips公司早期CAN控制器PCA82C200(Basic CAN)的替代品,而且增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新功能的CAN2.0B协议。

  SJA1000与微处理器的接口主要由8根数据和地址分时复用线完成:AD0~AD7、ALE/AS、、/E、、、MODE和,其中MODE为接口方式选择信号,可设置成Intel方式或Motorola方式。两者的区别在于:Intel模式下,处理器对SJA1000写时,用、作为读、写数据信号,ALE下降沿锁存地址(此时地址信号要保证基本的建立保持时间),仅在读、写数据时为低;Motorola模式下,读、写信号用区分(高电平读、低电平写),用/E选通数据(下降沿锁存),AS和CS类似于Intel的ALE和。目前流行的MCS51/96系列单片机提供了方便快捷的直接Intel方式接口,出于普遍性的考虑,本文以下的接口设计都是基于Intel模式的。

  DSP的接口信号和时序

  与早期的处理器不同,DSP芯片的片外引脚都采用地址线和数据线分离的设计方法,不再使用地址数据分时复用线,也没有ALE信号,这样就给CAN控制器与DSP的接口带来一定困难,且不同的DSP外部引脚和时序也略有区别。要设计CAN控制器与DSP的接口,首先必须比较DSP与CAN控制器的时序。

  本文选用的DSP为ADSP21062,主频为40MHz,单周期(零等待)访问存储器时,要求存储器的响应(读或写)周期小于17ns,但许多存储器或外设的响应速度没有这么快,于是就要通过加等待来延长访问时间。ADSP2106x支持两种等待方式,即内等待(软等待)和外等待(硬等待)。

  SJA1000和CAN总线的连接

  选择82C250作为收发器,选择6N137高速光电隔离器实现系统和CAN总线的隔离。其连接方法如图1所示。这种设计既能做好电气隔离,又能保证数据的传输速度。

图1 SJA1000和CAN总线的连接

  CAN控制器与DSP的接口设计方法

  SJA1000的数据和地址信号为分时复用,而DSP为数据、地址信号分离的结构,而且DSP不提供ALE信号,设计的关键就是DSP要把SJA1000的地址当成数据写入并同时产生ALE信号。分析读写信号所要求的最短有效时间,由于读低电平到数据有效的时间最长为50ns,所以要保证读信号有效时间至少50ns,ADSP21062在用2个软等待时,其低电平时间为62.5ns(25ns/2+2×25ns),刚好能满足要求。

  ADSP21062和SJA1000接口的简化设计

  在外围设备连接不多的情况下,接口电路可以使用几个逻辑门实现。由于访问外部数据时,数据总线的低16位未用,所以使用的数据线从DATA16起始。当Flag1=1时,SJA1000的WR始终为1,其ALE为DSP的WR的反向,当DSP把地址当成数据写入SJA1000时,低电平DSP的WR信号会转换成高电平的ALE,并在ALE的下降沿把数据锁存。当Flag1=0时,ALE始终为0,无地址锁存操作。SJA1000的WR直接受DSP的WR信号控制。由Flag2直接控制CS。其连接如图2所示。 

[page]

  ADSP21062和SJA1000简化接口设计的相应程序如下:

       1) #define CANADDR 0x400000
  2) bit set mode2 FLG1O|FLG2O;
  //设置Flag1,Flag2为输出
  3) r1=0x00047800; dm(SYSCON)=r0;
  //设置外部空间大小
  4) r0=0x21a8c429;dm (WAIT)=r0;
  //用2个软等待访问MS0
  5) bit set aSTat ASTAT_FLG1;
  //Flag1=1,
  6) r0=addr;dm(CANADDR)=r0; //写入要访问的SJA1000的内部地址
  7) bit clr astat ASTAT_FLG1;
  //Flag1=0
  8) bit clrastat ASTAT_FLG2;
  //Flag2=0,CS=0
  9) i0=CANADDR;r0=dm(i0,0);
  //读取SJA1000相应地址的数据
  10) r1=3;dm(i0,0)=r1;
  //写入数据到SJA1000相应地址
  11) bit set astat ASTAT_FLG2;
  //Flag2=1,CS=1,5

 

  为说明方便,对各条指令编号。运行指令5、7、8、11各花费25ns,运行指令6、9、10各花费100ns,所以完成一次读或写需300ns。

  基于CPLD的ADSP21062和SJA1000接口设计

  在连接多个外围设备时,其译码电路比较复杂,可以使用CPLD完成逻辑译码控制。利用地址数据信号产生CAN的ALE、CS等信号。其优点在于使用多个总线设备时,可用一片CPLD完成所有总线设备的译码,这种方法有更好的适用性。其连接方法如图3所示。

图3 基于CPLD的ADSP21062和SJA1000设计图

  DSP的程序设计如下:

       1) #define CANNCS 0x400100
  //清CANCS的地址,对此地址操作使CAN的CS无效
  2) #define CANCS  0x400200//置CANCS的地址,对此地址操作使CAN的CS有效
  3) #define CANALE 0x400500
  //置CANALE的地址,对此地址操作使CAN的ALE可变化
  4) #define CANNALE 0x400600
  //清CANALE的地址,对此地址操作使CAN的ALE恒为低
  5) #define CANRW 0x400900
  //对此地址操作完成CAN数据的读、写
  6) r1=0x00047800; dm(SYSCON)=r0;//设置外部空间大小

7) r0=0x21a8c429;dm (WAIT)=r0;
  //用2个软等待访问MS0
  8) r7=0x07;dm(CANALE)=r7;
  //ALEhigh=1,CANALE为CANWE的取反
  9) r4=addr;dm(CANRW)=r4;
  //写入要访问的SJA1000的内部寄存器空间地址
  10) r7=dm(CANNALE);
  //ALEhigh=0,CANALE总为0
  11) r7=0x07;dm(CANCS)=r7;
  //CANCS=0
  12) r3=dm(CANRW);
  //读取SJA1000相应地址的数据
  13) r1=3;dm(CANRW)=r1;
  //写入数据到SJA1000相应地址
  14) r7=dm(CANNCS);
  //CANCS=1

  运行指令8、9、11、13各花费100ns,运行指令10、12、14各花费75ns,所以完成一次读或写需525ns。速度比前文的简化设计要慢一点,但这种设计更利于扩展,适合于多个外设接口,同时节省了两个Flag引脚。当SJA1000工作在最大传输速度1Mbit/s时,由于在一个数据帧中会插入约42bit其它帧信号,所以完成8bit传输的时间约为50s。前两种设计的速度分别是其167倍和95倍。所以这两种设计都能满足SJA1000的传输速度要求。

  CPLD程序设计

图4 CPLD的逻辑图

  图4中,用74138进行译码,生成ALE、CS等信号。当执行指令6时,设置了外部空间的大小,在访问地址0x400000~0x4fffff时会使能MS0,74138的G2AN将有效。当地址A11~A8=0001,Y1N=0,CANCS的清零由DSP的RD控制,RD信号的低电平将使CANCS=0,指令11完成此功能。当地址A11~A8=0010,数据D19~D16=1000,则Y2N=0,DSP的WR信号的将使CANCS=1,指令14完成此功能;当地址A11~A8=0101,数据D19~D16=0111,则Y5N=0,DSP的WR信号沿将使ALEhigh=1,此时CANWE始终保持1,CANALE为WR取反,指令8完成此功能;当地址A11~A8=0110,则Y6N=0,RD信号的低电平将使ALEhigh=0,此时CANALE始终保持0,CANWE为WR,指令10完成此功能。

  ADSP21062仅有3个外部中断,在挂多个外设时就显得资源紧张。图4中,低电平有效或下降沿有效的中断信号可以用与的关系连接到一个中断上,DSP在响应中断后,读相应的多个外设,判断是来自哪一个外设,这样就可以扩展更多的中断。

  结语

  SJA1000接口为地址/数据复用模式,DSP处理器通常为地址/数据总线分离的结构,本文提供了两种不同接口的思路和方法。测试表明,这种方法确实可行,传输效率高。

关键字:SHARC  DSP  SJA1000  CAN总线 引用地址:基于SHARC DSP与SJA1000的CAN总线接口设计

上一篇:基于12C总线接口的智能温度传感器TMPl01的设计
下一篇:高带宽嵌入式应用中SoC微控制器的总线设计

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

CAN总线在风力发电控制系统中的应用
  1  引言   风力发 电机 组的 控制系统 是综合性控制系统,控制系统不仅要监视机组运行参数,对机组进行并网与脱网控制,而且还要根据风速与风向的变化,对机组进行优化控制。CAN总线是一种支持分布式控制系统和实时性控制的串行通信网络。其以多主机方式工作,通信速率可达1mbps。   can总线的上述特点正适用于风力发电机控制系统的独特要求,因此,本文提出一种基于can总线架构的风力发电控制系统。控制系统中各模块之间通过can总线实时交换数据,实现主控系统及各控制节点间的实时通信与数据交换。文章在分析了can协议及can独立控制器sja1000工作原理和读写逻辑的基础上,设计了can接口,给出了硬件原理图,分析了can通讯程序
[单片机]
加速端对端单波100G光连接的演进,全新DSP解决方案诞生
Credo (默升科技),高性能,低功耗100G、200G 与 400G 埠连接解决方案全球创新领导者,今日宣布将于2018中国国际光博会中展示实现单波100G光连接的100G单信道速率混合信号数字讯号处理(Digital Signal Processing ,DSP)解决方案。展会于今日在深圳市福田区福华三路的深圳会展中心开幕,会展将于9月5号至8号举办。 “当100G端对端单通道技术成熟时,大型数据中心将会受益良多,”Credo业务发展部副总裁Jeff Twombly说到。”我们今天的展示将明确证明光连接将于今年大规模量产并将在近几年后向100G单通道连接迈进。” “100G单信道连接是数据中心的关键的技术与基石,更是
[电源管理]
基于CAN总线和传感器实现自攀爬机器人控制系统的软硬件设计
1、引言 随着机器人技术的发展,高层建筑幕墙自动化清洗成为可能。“复杂弧面幕墙清洗机器人开发”为863计划资助项目,机器人设计任务是清洗位于北京长安街的国家大剧院金属和玻璃顶棚。该剧院地处北京市中心,必将成为北京的标志性建筑之一,加之北方的气候条件恶劣,剧院外露墙面的清洗非常重要。 机器人系统应用于高层幕墙清洗作业,工作条件恶劣,面向工程使用无疑要求系统具有更高的安全性和可靠性。因此机器人需要好的控制系统。本文针对曲面高空作业特点,在介绍自攀爬式机器人的机构组成的基础上详细介绍机器人控制硬件系统和结构。 2、国家大剧院结构特点及机器人设计 剧院主体外形呈半椭球形,外墙由玻璃和钛合覆盖,总表面面积达到36000m2
[机器人]
基于WinCE的智能车载仪表设计
       设计一款基于WinCE操作系统的智能车载仪表,通过CAN总线接收汽车各个部件的ECU的信息,并将其显示在液晶显示屏中。以ARM9内核的S3C2440微处理器为核心,设计了外围硬件以及CAN总线在WinCE中的底层驱动和上位应用程序。   引言   随着高性能电子显示技术的发展,汽车仪表电子化的程度越来越高。国内外已开发出了多功能全电子显示仪表、平视显示仪表、汽车导航系统、行车记录仪等高技术产品。未来,车用电子化嵌入式仪表具有以下优点:提供大量复杂的信息,使汽车的电子控制程度越来越高;满足小型、轻量化的要求,使有限的驾驶空间更人性化;高精度和高可靠性实现汽车仪表的电子化,降低了故障的发生率;设有在线故障诊断系统,一
[嵌入式]
基于CAN总线EPB驻车电流采集节点系统电路设计
  电子驻车制动系统(EPB)指将行车过程中的临时性制动和停车后的长时性制动功能整合在一起,并且由电子控制方式实现停车制动的技术。为了能够获取各车辆已施加的理论驻车压力,并监控各车辆一体化执行机构的工作状态,防止驻车电机长时间工作在大电流状态,防止驻车电机过热烧毀,EPB一般配有驻车车电流采集节点,并通过CAN总线将驻车电流发送给中央控制节点(ECU)。文中主要介绍了基于AD574A的驻车电流采集节点的接口设置。    1 系统硬件设计   驻车电流采集节点的硬件电路设计包括CAN总线通讯电路设计与车速采集电路设计两部分,如图1所示。    1)CAN总线通讯电路设计   CAN总线通讯电路设计时,CAN控制器使用由CTM1
[电源管理]
基于<font color='red'>CAN总线</font>EPB驻车电流采集节点系统电路设计
TM1300 DSP系统以太网接口的设计
  1 概述 本文引用地址: http://www.eepw.com.cn/article/266272.htm   随着网络技术、多媒体技术的飞速发展,基于IP网络的多媒体应用越来越广泛。 TM1300 是Philips公司推出的一款高性能多媒体数字信号处理器芯片,适合于实时性强的音视频处理应用,可广泛应用于会议电视、可视电话、远程图像监控等应用场合。具有广阔的应用前景。   根据具体的基于IP网络上的多媒体应用系统的需要,采集的音视频数据经压缩处理后,一般要传送到远程终端或控制中心,这时就需要解决 DSP 应用系统与IP网络接口的问题。   考虑到国内局域网大部分是以太网,随着交换式网络、宽带网络的发展,使得基于以太网接入
[嵌入式]
TM1300 <font color='red'>DSP</font>系统以太网接口的设计
基于DSP的数码望远相机的研究与设计
  近年来,随着半导体制造技术的发展和计算机体系结构等方面的改进,数字信号处理技术得到了迅速的发展和运用,DSP芯片的功能越来越强大,数字信号处理已成为信号处理技术的主流。结合光学仪器向光、机、电、算一体化和智能化现代光学仪器发展的趋势,设计了一款基于高性能DSP芯片的同步可调式双筒望远数码相机。    1 设计的基本思路与基本原理   分立采光,按照望远物镜与数码照相镜头的入瞳直径相匹配的原则,设计计算出数码镜头与望远镜对3 m~无穷远目标望远数码相机的数码照相系统与望远系统相对独立,进行成像的离焦对应曲线,采用中调手轮转动带动望远镜和数码镜头实现同步调焦,使远方同一景物目标通过望远物镜和数码镜头的成像同时同步清晰,使望远镜
[嵌入式]
ADSP系列数字信号处理器件的应用
    摘要: ADSP是AD公司生产的浮点式DSP系列产品,文中对几种ADSP系列产品的特点作了综合描述,指出了它们各自系列的特性和数据处理能力。最后给出了ADSP系列产品应用于数字滤波器的实现方法和程序。     关键词: 超哈佛结构  ADSP  多功能指令  自动缓冲  数字滤波器 DSP(Digital Signal Processing)芯片也称数字信号处理器,它是一种特别适合于进行数字信号处理运算的微处理器,其主要特点是能够实时快速地实现各种数字信号处理算法。自1980年以来,DSP芯片得到了突飞猛进的发展,现在DSP芯片的应用越来越广泛。美国模拟器件公司(Analog Devisces,简称
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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