双端口RAM在ARM 与DSP通信系统中的应用

发布者:笑脸猫最新更新时间:2013-01-04 来源: 维库开发网关键字:双端口RAM  ARM  DSP  通信系统 手机看文章 扫描二维码
随时随地手机看文章

  后PC 时代,由于网络技术和集成电路技术的迅速发展,利用嵌入式系统进行数字信号处理与传输成为可能。在ARM 和DSP 构成的双处理器系统中,嵌入式作为主设备,主要完成数据处理、存储与网络传输工作,而DSP 作为从设备需要负责复杂的算法实现。

  在此高速数据采集和处理系统中,随着采样数据量的增大和处理任务的增加,对数据的传送要求越来越高,如果在两个系统端口之间没有能够高速传送数据的接口,将会造成数据传送的阻塞,严重影响系统的实时性与处理数据的能力,因此此系统设计的重点之一是主从设备之间的数据通信。本文介绍用双端口RAMIDT70261 完成TMS320C6211DSP 与嵌入式ARM920T之间的数据通信。

  1 IDT70261双端口RAM功能简介

  IDT70261 是美国IDT 公司生产的高速16K×16 的双端口SRAM,其典型功耗为750mW,它具有两个等级的存取时间:商业级有 15/20/25/35/55 ns (max),工业级有20/25/35/55ns (max)。双端口RAM 有两个完全独立的端口,它们各自有一套相应的数据总线、地址总线和控制总线,允许两个控制器单独或异步的读写其中任意一个存储单元。两个端口具有同样的对双端口RAM 的读写操作能力,但是当两个端口同时对同一地址进行读写操作时,会因为数据的冲突而造成存储或读取的错误。对同一存储单元的操作存在以下四种情况:

  (1) 两个端口不同时对同一地址单元进行读写数据。

  (2) 两个端口同时对同一地址单元进行读出数据。

  (3) 两个端口同时对同一地址单元进行写入数据。

  (4) 两个端口同时对一个地址单元,一个写入数据,另一个读出数据。

  前两种情况不会造成对双端口RAM的读写错误,第三种情况会造成写入数据的错误,第四种情况会造成读出错误。为了避免对双端口RAM 造成读写错误,IDT70261 有以下几种仲裁控制方法。

  1.1 遇忙逻辑控制

  当双端口同时对同一地址单元进行控制时,IDT70261 提供一种/BUSY 控制机制。双端口不对同一地址单元进行控制时,两个端口的/BUSY 引脚都为高,左右两个端口均可正常访问存储空间。当两个端口对同一地址单元进行存取时,一个端口的/BUSY 引脚为高(允许对存储空间的读写操作),另一个端口的引脚为低(禁止对存储空间的读写操作),哪一个请求信号在前,其端口引脚为高,另一个为低。两个端口请求读写的时间差最小为5ns,当时间小于5ns 时,系统会自动允许一个引脚读写,屏蔽另外一个引脚,防止出现对同一地址单元的读写错误。

  1.2 中断控制机制

  IDT70261 具有中断输出功能,中断工作时,双端口RAM 的两个最高地址单元3FFE、3FFF 作为"邮箱"来传递相应的命令。当中断功能不使用时,3FFE、3FFF两个单元作为正常的存储单元使用。下面介绍中断工作原理。

  左端口写地址单元3FFF,/INTR 变为有效(低电平),向右端口发送中断请求,右端口响应中断请求后,可向3FFF 地址单元执行一次读操作,清除中断标志(/INTR 变为高电平)。同理,右端口写地址单元3FFE,/INTL 变为有效(低电平),向左端口发送中断请求,左端口响应中断请求后,可向3FFE 地址单元执行一次读操作,清除中断标志(/INTL 变为高电平)。

  1.3 令牌传递原理

  IDT70261 内部有8 个独立于双端口RAM 的逻辑锁存单元,用来标明共享的双端口RAM 是否正在使用。在此工作模式下,/SEM 用作锁存器的"片选"信号,地址线A2~A0 用来寻址8 个标志锁存器,数据线D0用来标志锁存器的状态。

  端口向锁存器写入0 表示申请控制权,写入1 表示放弃使用权。当左端口要使用双端口RAM 时,先写入0 到标志锁存器,然后读出标志锁存器的状态,若读出的值为0,则左端口获得该存储单元的使用权;若读出的值为1,表明右端口正在使用该存储单元。

  此时,左端口要么循环检测锁存器状态,直到右端口使用结束,要么向锁存器写入1,撤销请求。同理,若右端口使用双端口RAM 时,仍按照上述步骤进行操作[1,2].

2 基于IDT70261的接口电路

  本系统为视频数据采集处理系统,当摄像头采集后的数据经DSP 压缩编码后输入到双端口RAM 芯片中,ARM 处理器接收到数据请求后,接收图像数据,对数据进行存储和传输工作,最终将图像经过解码显示在终端PC 机上。

  基于IDT70261 的接口电路图如图1 所示,此系统采用中断控制机制,双端口RAM 的一些功能引脚并不需要全部使用。双端口RAM 的左端是ARM920T芯片,右端是TMS320C6211 DSP 芯片。双端口RAM两个独立的数据线D0L-D15L 和D0R-D15R 分别与ARM920 芯片和DSP 芯片连接,地址线A0L-A13L 和A0R-A13R 也分别与上述两芯片连接。/CE 为芯片使能引脚,R/W 为读写控制引脚,/OE 为输出使能引脚,/INT 为中断标志引脚,/BUSY 为遇忙控制引脚,其连接电路如图1 所示。

图1 接口电路

图1 接口电路[page]

  3 数据通信的软件实现

  本系统采用中断控制方式来实现对双端口RAM的读写操作。DSP 主要负责图像数据压缩工作,压缩后的数据传送给双端口RAM.传送数据时,DSP 向信令字单元3FFF 写入\'55H\',在ARM 方产生中断后,ARM 读信令字单元3FFF,如果是\'55H\',说明数据正在传输,读完数据后,向信令字单元3FFE 写入\'AAH\',代表读完数据。DSP 接收到中断后,读信令字单元3FFEH,如果为\'AAH\',表示传输数据成功。

  ARM完成整个系统的实时控制,对双端口RAM的图像数据进行读取然后经过网络传递给PC 机,因此需要驱动程序来实现双端口RAM与ARM之间的数据通信。驱动程序是应用程序与硬件之间的接口,用户可以通过驱动程序来间接的实现对硬件的读写控制操作。双端口RAM 的驱动程序主要任务是读双端口RAM 数据到用户空间、把用户空间命令写入双端口RAM 相应地址以及相应双端口RAM 产生的中断。在驱动程序中,最主要的结构便是file_operation,在里面包含了对文件的打开、关闭、读写和其他控制函数,file_operation 结构如下:

  在使用设备之前需要对设备进行初始化,包括配置ARM 接口寄存器、注册设备、申请中断和分配虚拟地址空间等。配置寄存器和注册申请工作在加载模块时实现,分配资源工作在dualram_open 函数内实现。

  配置接口寄存器,AT91RM9200 具有一个EBI 接口,可以方便的连接各种存储设备,可以使用EBI 接口中的SMC 来控制读写,由CS4 接口来控制双端口RAM 的使能信号,通过向相应寄存器内写入控制字来实现ARM 对双端口RAM 的端口初始化工作。

  在初始化函数init_dualram 中,用register_chrdev将双端口RAM 注册为一个字符型设备,用request_irq为设备申请相应的中断资源,函数如下:

  myirq=request_irq(AT91RM_IRQ1,dualport_inter,SA_INTERRUPT,"dualram",NULL)

  在装载驱动时进行注册和申请,在卸载模块时必须进行注销,即在dualram_exit 内执行unregister_chrdev 和free_irq 来释放资源。

  Linux 无法直接访问某一物理地址空间,必须通过虚拟地址空间的映射机制来完成访问。映射工作在dualram_open 函数内完成,因此每次打开设备都会完成此工作。所要用到的地址资源和数据结构定义如下:

  #define dualram_base_addr 0x60000000

  #define dualram_size ox3fff

  u16 *remaddr

  通过使用函数remaddr = ioremap (dualram_base_addr ,dualram_size);进行虚拟地址映射,此后就可以使用remaddr 来完成对实际双端口RAM 空间的访问了。

  为了有效的提高数据传输效率,驱动程序与应用程序之间采用异步通知的机制,这样上层应用程序便可以知道RAM 中的数据量是否达到阈值,而不用采用轮询的方式,占用处理器资源。异步通知机制分三步完成,首先需要让内核知道驱动程序与哪个进程通信,当进程使用系统函数fcntl 执行F_SETOWN 命令时,设备文件拥有者(owner)的ID 号会被记录在flip->f_owner 中,此时内核知道了与驱动进行通信的进程,然后应用程序调用fcntl 的F_SETFL 命令来激活异步通知机制,这样新数据到达时输入文件便可发送一个SIGIO 信号到flip->f_owner 中指定的进程。

  图像数据到达后,Linux 内的应用程序完成对数据的读写操作,写操作函数为:dualram_write,就是利用copy_from_user 把用户空间的数据写入到双端口RAM中,读操作函数:dualram_read,就是利用copy_to_user把双端口RAM 中的数据读入到用户空间中[5,7].

  4 测试结果

  视频监控系统的测试环境是ARM 920T 与TMS320C6211 通过网络与PC 互连构成一个简单的局域网。通过网络抓包软件可以统计网络的数据流量,通过CCS 分析工具分析系统的实时性。系统的量化阶距越高,图像的压缩比率越大,所获得的图像质量越差,本系统设置的量化阶距设置为75.经测试本系统的主要参数如下:图像的压缩格式为JPEG,分辨率为BMP(240×160),最大编码速度为15 帧/秒,数据流量为50-200kbps,网络采用UDP/IP 协议,网络接口为RJ-45 100Mbps.

  5 结语

  本文结合了嵌入式图像数据采集系统的设计,介绍了通过双端口RAM 实现ARM920T 与 TMS320C6211 DSP 之间的通信。利用双端口RAM 的强大功能可以实现各种形式的处理器之间的高速数据通信。在信号处理领域和高速数据采集中,利用双端口RAM的几种不同仲裁机制,可以完成不同的数据传送要求。

  用它构成的接口电路具有传送速率高、实时性好、可靠性高、电路简单等优点。

关键字:双端口RAM  ARM  DSP  通信系统 引用地址:双端口RAM在ARM 与DSP通信系统中的应用

上一篇:基于Zigbee无线传感器网络的智能灯光跟随系统
下一篇:基于ARM11的无线视频监控系统

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

基于ARM处理器S3C2440的VGA显示系统设计
  目前很多SOC厂商的微处理器芯片都集成了LCD控制器,如三星公司的S3C2410.S3C2440,Intel的Xscale系列等。大多数嵌入式系统也采用流行的LCD显示技术。但是在需要大屏幕显示、对分辨率要求不高的场合,如车间、厂房,采用大屏幕LCD则成本过高。另一方面,VGA显示技术因为技术发展成熟,成本低廉,仍在被大量使用,直到今天它仍是所有显示终端最为成熟的标准接口。如果让嵌入式处理器直接支持VGA显示器,则能很大地利用现有资源,节约系统成本。   1 基于S3C2440的VGA显示技术分析   通过分析VGA显示技术的时序逻辑与S3C2440内部集成LCD控制器驱动TFT LCD的时序逻辑,找出它们的共同点,分析在
[单片机]
基于<font color='red'>ARM</font>处理器S3C2440的VGA显示系统设计
基于DSP的SPWM变频电源数字控制
数字信号处理器(DSP)已广泛应用在高频开关电源的控制,采取DSP作为变频电源的控制核心,可以用最少的软硬件实现灵活、准确的在线控制。数字信号处理器TMS320LF2407既有一般DSP芯片的特点,还在片内集成了许多外设电路,使其可以很方便地实现变频电源控制。本文中,控制系统采用了工程应用较多的正弦脉宽凋制技术,该技术具有算法简单,硬件实现容易,谐波较小等优点,可以充分发挥DSP的高速性、实时性、可靠性等方面的特点,结合相应的软件,应用一些改进的算法实现了SPWM调制,输出了质量较好、频率和幅值可任意改变的控制信号。 1 系统的结构 图l为变频电源基本控制电路硬件框图。变频电源采用高频SPWM技术和通用电压型单相全桥逆变电路,
[电源管理]
基于<font color='red'>DSP</font>的SPWM变频电源数字控制
ARM单片机超声波监测预警系统电路设计
随着信息化、智能化、网络化的发展,嵌入式系统技术获得广阔的发展空间,工业控制领域也进行着一场巨大的变革,以32位高端处理器为平台的实时嵌入式软硬件技术将应用在工业控制的各个角落。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化 进程、提高生产率等方面起到了极其重要的推动作用。 障碍物距离检测电路的设计 在本系统中超声波测距电路是由MICROCHIP的PIC16C57设计而成的,选用的超声波传感器是T/R40-16压电陶瓷传感器。在工作中,主控器PIC16C57发出信号使发射端的超声波换能器发
[单片机]
<font color='red'>ARM</font>单片机超声波监测预警系统电路设计
基于ARM的嵌入式计算机系统的低功耗设计与实现
0 引言 绿色环保节能是全球化的热潮,而嵌入式计算机系统被广泛应用于便携式和移动性较强的产品,低功耗设计不仅是绿色环保的要求,也是嵌入式计算机系统体积和质量的约束。随着市场对嵌入式计算机系统在体积和性能方面要求的不断提升,小体积、高性能与有限的电池能量之间的矛盾曰益突出,系统低功耗设计是解决这一矛盾的有效手段。基于ARM的嵌入式计算机系统在保证系统性能的情况下通过硬件和软件两方面低功耗的设计来最大限度地降低嵌入式计算机系统的功耗。 1 系统组成 嵌入式计算机系统采用ARM9微处理器PXA270为核心,外围扩展了许多标准的IO接口来实现系统功能,如显示、数据采集、定位、通信等功能。系统主要由处理器子系统、存储器子系统、电源管理
[单片机]
基于<font color='red'>ARM</font>的嵌入式计算机系统的低功耗设计与实现
Arm Linux系统调用流程详细解析
Linux系统通过向内核发出系统调用(system call)实现了用户态进程和硬件设备之间的大部分接口。 系统调用是操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的执行让用户程序陷入内核,该陷入动作由swi软中断完成。 1、用户可以通过两种方式使用系统调用: 第一种方式是通过C库函数,包括系统调用在C库中的封装函数和其他普通函数。 第二种方式是使用_syscall宏。2.6.18版本之前的内核,在include/asm-i386/unistd.h文件中定义有7个_syscall宏,分别是: _syscall0(type,name) _syscall1(type,name,type1,a
[单片机]
飞思卡尔DSP技术助力中兴通讯高度灵活的多标准无线基站
电信设备和网络解决方案提供商中兴通讯,已经选择飞思卡尔半导体的6核MSC8156数字信号处理器(DSP)为其软件定义无线电(SDR)基站提供灵活的基带平台。使用高度可编程的飞思卡尔DSP,中兴通讯可以开发能够支持大量无线标准的无线基站,这些标准包括3G-LTE、TD-SCDMA、WiMAX和WCDMA标准。 中兴通讯是部署SDR基站的全球先锋,通过简单的软件升级就可以实现从3G到 4G标准的升级。 基于SDR的解决方案大大简化了无线网络演进,并为多模式无线网络提供了一个坚实的基础。支持SDR 的高度可编程DSP帮助无线运营商降低资本投资并实现无缝网络演进。 飞思卡尔高级副总裁兼网络及多媒体部总经理Lisa S
[网络通信]
采用数字信号处理器TMS320C6201构成的视频跟踪警戒装置
    摘要: 介绍了一种以高速数字信号处理器TMS320C6201为核心器件构成的视频跟踪警戒装置。该视频跟踪警戒装置,即可自成一个小系统,独立进行工作;也可作为一个子系统,装在其它光电测量跟踪系统中工作。     关键词: 电视跟踪 匹配跟踪 图像处理 数字信号处理器     在光电测量跟踪系统的实际应用中,对其视频器量跟踪部分,提出了越来越高的要求。例如,有越来越多的应用场合,要求光电测量跟踪系统对更大区域的视频图像具有实时匹配跟踪(相关跟踪)的功能。在匹配跟踪(相关跟踪)过程中,如果需要匹配处理的图像区域较大,则运算量非常可观。在视频跟踪当中,为了能够在有限的时间(如20毫秒时间内)实现大量的运算处理
[测试测量]
方舟科技授权获得ARM926EJ-S处理器,用于消费电子产品SoC开发
方舟科技将受益于业界广泛支持的 ARM 结构,设计具有复杂软件要求的、功能丰富的消费电子产品解决方案,并缩短产品上市时间 ARM 公司 今天宣布:中国领先的无晶圆集成电路设计公司方舟科技有限公司通过授权获得了 ARM926EJ-S TM 处理器。该授权协议使方舟科技不仅能受益于领先的 ARM 处理器技术,还将得到业已形成的围绕着 ARM 架构的生态系统的支持,加速为消费电子市场设计具有更强功能的先进 SoC 解决方案。 随着消费者对智能手机、 MP3/MP4 播放器、个人媒体播放器和电子书等消费电子产品的功能提出越来越高的要求,消费电子产品 SoC 设计的软件复杂
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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