DSP接口论文

2024-05-08

DSP接口论文(精选9篇)

DSP接口论文 第1篇

关键词:Blackfin,BF532,TFTLCD

TFT LCD液晶显示器与数码管和点阵液晶相比具有体积小巧、控制简单、可以显示丰富多彩的图像视频信息。文中以ADSP_BF532为例介绍了一种Blackfin DSP处理器与TFT LCD液晶显示器的接口设计,在Blackfin DSP的系统设计中具有一定的参考价值。

1 Blackfin DSP处理器与TFT LCD液晶屏简介

Blackfin DSP处理器是基于ADI公司和Intel公司联合开发的微信号架构(MSA)的一种16位定点DSP处理器,具有较强的数据处理能力,能够完成视频、图像、音频和通信数据的数字化处理等。同时还具有综合控制能力,单芯片即可完成通常由DSP+控制器完成的功能。Blackfin DSP处理器可广泛应用在各种嵌入式设备、仪器中,完成系统控制和数据处理。

PPI(Parallel Port Interface)接口是Blackfin DSP处理器的并行数据接口,主要用于数据的高速传输。它包括16位数据线,3个同步信号和一个时钟信号。PPI接口直接与DMA通道整合,数据传输宽度可灵活配置,支持8位、10~16位等多种数据宽度。PPI的工作模式有两种:通用模式(GP模式)和ITU-656模式,其中通用模式下可方便地与数字液晶屏连接。

Blackfin DSP处理器的DMA传输可以是内部与外部存储器之间,也可以是内部或外部存储器与SPI口、SPORT口、UART口、PPI口之间。

Blackfin DSP处理器的DMA传输可基于描述符配置,也可基于寄存器配置。基于描述符的DMA传输使用存放在存储器内的一组参数来初始化一个DMA传输。基于描述符的DMA传输允许多个DMA序列链接在一起,一个DMA传输完成后紧接着进行下一个DMA传输。基于寄存器的DMA传输允许处理器通过对控制寄存器编程来启动一个DMA传输。一次DMA传输完成后,可以用原来设置的值自动更新控制寄存器,连续传输数据[1,2]。

Blackfin DSP处理器支持二维DMA传输,特别适合于视频数据传输。二维DMA的相关控制寄存器如下[1]:

配置寄存器(DMAx_CONFIG/MDMA_yy_CONFIG):设置二维DMA使能方式,中断产生方式。

内部循环计数寄存器(DMAx_X_COUNT/MDMA_yy_X_COUNT):保存二维DMA内层循环的数目(应≥2)。

内层循环地址增量寄存器(DMAx_X_MODIFY/MDMA_yy_X_MODIFY):保存每一次内层循环计数器加1后DMA操作地址在内存中的增量,此增量应该是二维DMA操作的数据单元长度的整数倍。

外层循环计数寄存器(DMAx_Y_COUNT/MDMA_yy_Y_COUNT):保存外层循环的数目。

外层循环地址增量寄存器(DMAx_Y_MODIFY/MDMA_yy_Y_MODIFY):保存每一次外层循环计数器加1后DMA操作地址在内存中的增量,可以是负值,此增量应该是二维DMA操作的数据单元长度的整数倍。

AT070TN83 V.1是群创生产的一款数字液晶显示屏,屏幕尺寸为7英寸(17.78 cm),分辨率800×480,23行消隐行[3]。采用5 V(背光)和3.3 V(I/O)双电源供电。该液晶具有DE模式和HV模式,考虑Blackfin PPI的接口特点,本系统采用HV模式进行数据传输。

液晶时序如图1和图2所示。

图1和图2中相应的参数参照AT070TN83 V.1手册。液晶同步时序可以看做是满足一定要求的PWM波,可利用Blackfin DSP的定时器支持PWM输出的特性输出此信号。

2 系统总体设计

该液晶屏的输入格式为RGB666格式,而ADSP-BF532的PPI接口数据线只有16位,根据人眼的视觉特性(对绿色最敏感),将红色和蓝色的最高位和最低位分别接在一起,其他数据线对应连接。

液晶所需的同步信号HS和VS分别由ADSP-BF532的定时器1和定时器2产生。通过配置ADSP-BF532定时器的相关寄存器可以精确地控制输出PWM波的有效沿,周期和占空比,完全匹配液晶时序。

显示所用的时钟信号可以由外部的独立晶振产生,分别输入液晶和DSP的PPI口。也可以由DSP的输出时钟分频产生,再分别输入液晶和DSP的PPI口。本系统使用独立的25 MHz晶振将时钟信号直接输给液晶和PPI[5]。

该液晶内部没有显存,因此在使用时系统需要扩展SDRAM,在SDRAM中开辟一块区域作为显示缓存,将需要显示的数据写入缓存,再由DMA传送到PPI口进行显示[3]。

系统总体设计框图如图3所示。

在外部25 MHz时钟的驱动下DSP按照寄存器的配置输出相应的同步信号,同时将SDRAM对应区域中的数据从PPI口输出。

3 软件设计

(1)显示缓存数据的存储。

该液晶每行800点,每个点对应16位数据,因此每行需要800×2 bit。每屏需要525行,包括前消隐23行,中间480行有效数据,后消隐22行,因此开辟显示缓存大小为525×800×2 bit。为了操作方便,可定义一个二维数组,二维数组中的数据与TFT LCD上的点具有对应关系(数组中每两个字节对应LCD上的一个点)。由于需要将显示缓存定义在SDRAM中,因此在工程中需要添加ldf文件,将显示缓存指定存储在SDRAM中。

缓存数组的定义如下

section(“SDRAM0”)char DisplayBuffer[525][800*2]

(2)定时器初始化。

使用定时器1和定时器2分别作为行同步信号和场同步信号,根据液晶时序配置定时器寄存器,包括输出时钟周期,脉冲宽度,有效沿,PWM模式输出等。为了与液晶同步,使用PPI的输入时钟驱动定时器。

Blackfin定时器寄存器设置如下

*pTIMER_DISABLE=TIMDIS1 | TIMDIS2;//先禁止输出

/*行同步*/

*pTIMER1_PERIOD=928;//行周期

*pTIMER1_WIDTH=48;//起始脉冲宽度

*pTIMER1_CONFIG=0x00a9;//定时器配置(具体参考DSP手册)

/*场同步*/

*pTIMER2_PERIOD=525*928;//场周期

*pTIMER2_WIDTH=928*2;//起始脉冲宽度

*pTIMER2_CONFIG=0x00a9;//定时器配置(具体参考DSP手册)

(3)PPI初始化。

使用通用模式(GP模式)输出数据,两个外部帧同步信号,PPI_FS1和PPI_FS2下降沿有效,PPI_DELAY设置延时时钟个数(行同步变高到数据输出间的时钟个数)。

Blackfin PPI寄存器设置如下

*pPPI_DELAY=45;//输出数据前的延时

*pPPI_COUNT=800*2-1;//每行传输字节数,比实际值小1

注意:AT070TN83 V.1手册中给出的输出数据前的延时参数为40个时钟周期,但实际使用中发现设为40时屏幕显示图像左偏,说明延时不够,经试验应为45个时钟周期。

(4)DMA初始化。

使用PPI输出数据时必须使用DMA传输。采用寄存器配置模式,配置DMA传输的起始地址、传输的数据个数、地址增量和传输方式。本系统设置为二维传输方式,行地址增量设置为2(16位传输,2 bit),纵向地址增量设置为2(上一行最后传输的地址与下一行起始地址差,2 bit),DMA传输模式设置为自动缓冲模式。

Blackfin DMA寄存器设置如下

*pDMA0_START_ADDR=& DisplayBuffer[0][0];//DMA传输起始地址

*pDMA0_X_COUNT=800;//每行传输个数(16位传输)

*pDMA0_X_MODIFY=2;//行递增量

*pDMA0_Y_COUNT=525;//行数

*pDMA0_Y_MODIFY=2;//行递增量

*pDMA0_CONFIG=0x1034;//DMA配置寄存器

(5)主程序流程图,如图4所示。

主程序中首先初始化DSP(包括SDRAM,EBIU等),定时器,PPI 寄存器和PPI DMA寄存器配置的先后顺序要求不是绝对的,但是PPI DMA和定时器的使能必须在最后,因为定时器使能后将触发DMA开始传输数据,所以必须在使能PPI DMA之后再使能定时器。需要改变显示内容时改变对应数组中数据即可。

4 结束语

经调试,液晶正确显示,并且屏幕稳定无闪烁,成功应用在某仪器系统中。由于Blackfin系列处理器的内核都是相同的,接口操作类似,因此文中介绍的方法对Blackfin系列处理器的液晶接口设计具有参考价值。

参考文献

[1]Blackfin Conproation.ADSP.BF533Blackfin Processor Hard.ware Reference[Z/OL].(2009.04.14)[2009.12.05]ht.tp://www.analog.com.

[2]Analog Conproation.ADSP.BF531/ADSP.BF532/ADSP.533Embedded Processor Data Sheet(Rev.F)[Z/OL].(2008.05.06)[2009.10.05]http://www.analog.com.

[3]Analog Conproation.Interfacing TFT LCD Panels to ADSP.BF533Blackfin(Processors via PPI[Z/OL].(2004.03.30)[2009.12.01]http://www.analog.com.

[4]Innolux,Inc.AT070TN83V·1Data Sheet[Z].USA:In.nolux,Inc,2004.

基于DSP平台的USB接口设计 第2篇

摘要:DSP的高速运算性能使它在数字信号的处理上有着独一无二的优势,但是通常数字信号的数据量非常庞大,需要一种非常方便、高速的接口来实现与PC机的接插。本文给出一种基于DSP平台的低成本高速USB接口方案。它采用Philips公司的PDIUSBD12接口芯片,实现DSP图像采集系统与PC机的`高速数据传输。最后作出的接口,其数据传输速率达580KB/s以上,效果很好。

关键词:USB DSP PDIUSBD12 图像传输 接口设计

引言

USB接口(Universal Serial Bus)是一种通用的高速串行接口。它最主要的特点是它的高速传输特性。USB1.1理论速度极限可以达到12Mb/s,USB2.0可达到480Mb/s。这样,它可以很好解决大数据量的数据在嵌入式系统与PC机之间的互传问题;同时,它支持热插拔,并且最多同时支持127个外设,非常适合嵌入式系统的应用。

本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有:

①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;

②通过USB接口,实现PC机对DSP图像采集系统的操作与控制;

③实现图像数据在DSP摄像系统与PC机之间高速的双向传输。

基于以上几点可以看出,本方案最主要的特点是成本低廉且传输速度高。

1 硬件方案选择与设计

1.1 方案选择

对于基于DSP平台的USB接口设计,经过综合考虑了几种方案之后决定,采用一个不带MCU内核的USB接口芯片PDIUSBD12(成本非常低,一片PDIUSBD12的价格仅为20元),再加上简单的外围电路和时序调整电路。

这种芯片仅仅完成USB底层的数据链路级交换,并提供给本地微控制器一个并行的接口,但是它并不完成协议层的工作。协议层的工作需要对微控制器编程,控制USB接口芯片来实现USB协议。所以,开发难度相对来说大一些,要做的编程工作也多一点。但是这套方案的成本非常低,而且由于直接用DSP作为微控制器,没有原单片机的瓶颈限制,所以可以实现很高的数据传输速率。该系统的原理框图如图1所示。

由于PDIUSBD12的并行接口时序较慢,只能达到2MB/s。这个速度相对于DSP来说比较低,而且有些地方不是简单地在程序中加入延时就可以调整,所以需要一个时序调整电路来完成它们之间的配合。

图2 TMS320C2XX写时序

1.2 PDIUSBD12芯片

DSP接口论文 第3篇

CAN总线以其可靠、实时、低成本优势已在汽车、机械等工业控制领域广泛应用。TMS320F2812是TI公司最具代表性的低成本、低功耗和高性能的定点DSP芯片,具有强大的事件管理能力和嵌入式控制能力。其内嵌的增强型CAN总线控制器(ECAN)模块,完全兼容CAN 2.0B协议,邮箱数量增加至32个,并增加了时间戳、消息过滤和超时发送功能,提高了应用CAN通信的灵活性。

ADM3053是ADI公司2011年推出一款集成信号和电源隔离功能的CAN收发器。本文采用集成ECAN模块的TMS320F2812和ADM3053来设计CAN节点。该设计将内嵌ECAN模块的DSP作为节点主控制器,同时采用ADM3053芯片有效替代了传统CAN收发器、信号隔离、供电隔离三部分电路,有效实现了模块小型化、低功耗、低成本。

本接口模块能够实现正常的CAN通信,通信控制更加灵活。采用CAN通信监控卡和专用示波器CANScope对该接口的数据包、电平特性、眼图进行分析,结果显示信号品质良好。

1 硬件设计

1.1 硬件系统设计

典型的工业控制中CAN总线接口模块硬件原理框图如图1所示,它由智能处理器、CAN协议控制器、信号隔离、收发器及供电隔离组成。智能处理器负责总线数据收发,CAN协议数据的解析和管理,响应上位机命令并反馈接口健康状态;CAN总线控制器功能是实现数据链路层功能,包括位时序逻辑、错误管理逻辑、验收滤波器、收发缓冲管理等;CAN总线收发器功能是实现物理层功能,主要是收发信号与总线差分电平的相互转换;隔离电路包含信号隔离和电源隔离两部分,实现控制器与收发器之间的完全电气隔离。

传统的CAN总线接口电路是由采用独立的接口管理CPU、CAN控制器、收发器及隔离电路搭建,这种方法占用板面积大、接口逻辑复杂、成本高。本设计应用了ADI公司最新发布的ADM3053芯片,该芯片集成了CAN收发器、信号隔离及供电隔离三部分功能,见图1中虚线方框部分。应用ADM3053有以下优势:

(1)功耗低体积小。采用了基于电磁隔离原理的iCouple信号隔离专利技术。功耗相当于同数据传输率下传统光电隔离器的1/10。同时采用了基于高频开关的芯片级变压技术isoPower实现供电隔离。在CAN协议控制器与物理层总线之间创建一个完全隔离的接口。使得元器件数量减少,节约电路空间,简化了接口设计,降低了设计复杂度;

(2)性能更高。在时序精度、瞬态共模抑制力、通道间匹配性能均优于传统光电隔离器;

(3)产品成本更低。每个通道成本相当于传统光电隔离器的40%。

1.2 ECAN模块结构

ECAN的接口与结构电路如图2所示。ECAN具有32位内部结构,包括协议内核(CPK)和消息控制器。

在协议内核CPK收到一个来自总线的消息后,消息控制器中的接收控制单元确定是否把接收的消息存储到32个消息邮箱RAM中的某一个中。接收控制单元要检验消息的状态、标识符和消息对象的屏蔽来决定邮箱的位置。接收的消息经过滤波后存放到第一个邮箱中。如果接收控制单元不能找到任何一个存储接收消息的邮箱,则消息被丢弃。

一个消息有11位或29为标识符、一个控制域和最多8个字节的数据构成。当要发送一个消息时,消息控制器把这个消息发送到CPK的发送缓冲区中,以便在下一个总线空闲状态时开始发送消息。当多于一个消息要被发送时,最高优先级的消息将被消息控制器发送到CPK中,如果两个消息的优先级相同,则大序号的邮箱首先发送。

1.3 接口电路设计

本文使用的接口管理CPU为TMS320F2812,使用其内部集成的ECAN模块,因此只需要连接CAN总线收发器模块和隔离器件即可实现CAN总线接口功能。

ECAN接口电路图如图3所示。

ADM3053的左侧为逻辑端,逻辑端管脚接线如下:

(1)RXD和TXD分别接DSP的ECANRX和ECAN TX引脚;

(2)VCC接逻辑端VCC(+5 V)电源;

(3)VIO接DSP的IO供电电压VIO;

(4)GND管脚接逻辑端地线端GND_LOG。

ADM3053的右侧为总线端,总线端的管脚接线如下:

(1)CANH和CANL之间与CAN物理总线相连,且确保总线两端并联120Ω端接电阻;

(2)总线端电压输入VISOIN接隔离电压输出VI-SOUT,并通过滤波电容接地;

(3)CANH和CANL连接共模电感ACT45B-510-2P,滤除总线上的共模信号;

(4)CANH和CANL并联TVS管PESD1CAN,作为瞬态抑制保护,防止总线上的瞬变干扰。

2 软件设计

2.1 ECAN的存储器映射

ECAN的寄存器被映射到片内存储器的外设帧1区域,CPU用这些寄存对CAN的消息对象进行配置和控制,控制和状态寄存器只允许32位存取。ECAN提供了32个消息邮箱,每个邮箱可以配置为发送或接收邮箱。消息是一块RAM区域,映射到DSP的RAM存储器,每个邮箱RAM的地址分配如图4所示。消息邮箱用来存储接收到的CAN消息或存放等待发送的CAN消息。当邮箱不用于存储CAN消息时,CPU可以将消息邮箱RAM空间当成通用存储器使用。ECAN模块寄存器和消息RAM空间如图4所示。

2.2 通信软件

2.2.1 系统初始化

ECAN模块初始化在初始化模式下才能进行,初始化模式和正常操作模式之间的转换时通过CAN网络同步实现的,也就是说,CAN控制器在改变模式之前,要检测总线空闲状态(等于11个接收位),如果产生支配总线错误,CAN控制器将不能检测到总线空闲状态,因此也不能完成模式切换。将CCR寄存器置1,使CAN模块工作于初始化模式,而且只有CCE寄存器设置为1时,才能执行初始化操作。完成上述设置后,才能操作ECAN模块配置寄存器。ECAN模块的初始化流程如图5所示。

2.2.2 消息发送

根据系统初始配置,将待发送的数据写入ECAN模块相应消息邮箱的数据区,这里需要注意数据字节顺序DBO寄存器的设置。当DBO=0时,数据读写从CAN-MDL寄存器的最低有效位开始,到CANMDH寄存器的最高有效位结束。当DBO=1时,数据读写从CANMDL寄存器的最高有效位开始,到CANMDH寄存器的最低有效位结束。置发送命令字CANTRS.n=1,启动发送操作,ECAN模块将自动置响应命令字CANTA.n=1。最后手动清发送命令字和响应命令字。消息发送流程如图6所示。

2.2.3 消息接收

根据系统初始配置,ECAN模块接收邮箱中接收到总线上的消息时,相应的接收消息等待寄存器CAN-RMP.n被置位,此时CPU应该核对消息丢弃标志寄存器RML。如果RML为1,说明邮箱中的消息已被覆盖,CPU可以选择向源节点请求重发,本次接收流程结束。当RML为0时,CPU可以从邮箱数据区读取数据,同时清RMP.n,然后进入等待接收状态(RMP=0,RML=0)。消息接收流程如图7所示。

2.2.4 过载处理

如果CPU的速度不能快速地处理重要消息,出现消息过载情况,这种情况可以通过增加备份邮箱来解决,即配置多个相同标识符的邮箱。对于ECAN模块,每个消息对象有自己的屏蔽LAM(n)。为了保证不会丢失消息,将备份消息对象的覆盖保护寄存器OPC标志位置位,从而防止未读取的消息被覆盖。如果ECAN模块需要存储接收到的消息,则先查看备份邮箱,如果备份邮箱为空则存储消息。如果备份邮箱的RMP标志被置位,说明消息未被读取。由于备份邮箱数据无法被覆盖,故将消息数据存储在原始邮箱,此时产生的一个中断可以用来读取备份邮箱的重要数据。

本文设计的CAN智能总线接口模块经物理环境下多节点收发测试,结果显示硬件电路工作稳定,数据收发功能正常,总线电平特性和眼图如图8所示。

由图8可以看出总线信号(CANH,CANL)规整,差分后信号波形平滑,眼图显示接口通信品质良好。

3 结论

应用ADM3053芯片可有效缩小电路板面积,符合小型化原则,可以有效降低CAN总线接口模块的成本,具有广阔的应用前景。

摘要:提出了基于DSP内嵌增强型CAN控制器(ECAN)模块的智能总线接口设计方案。该设计创新性地采用了ADI公司最新发布的ADM3053芯片作为ECAN接口驱动,该芯片集成了CAN收发器、信号隔离、DC/DC供电隔离,达到了接口小型化、低功耗、低成本的目的。给出了ECAN模块系统架构和总线接口硬件电路。在软件设计上,重点论述了ECAN模块内部寄存器和邮箱结构,给出了软件初始化、消息发送、消息接收流程,最后给出了CAN总线消息过载的处理方法。经实测表明,该智能总线接口模块工作稳定,信号品质良好,满足工业控制需求。

关键词:总线接口,DSP,ECAN模块,ADM3053

参考文献

[1]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].2版.北京:北京航空航天大学出版社,2007.

[2]Bosch.Bosch CAN specification(Version 2.0)[R].Germany:Bosch,1991.

[3]TI.TMS320x281x,280x DSP enhanced controller area network(eCAN)reference guide EB/OL].[2011-05-01].www.docin.com/p-193248986.

[4]阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2003.

[5]史久根.CAN现场总线系统设计技术[M].北京:国防工业出版社,2004.

[6]王黎明.CAN现场总线系统的设计与应用[M].北京:电子工业出版社,2008.

[7]周立功,陈明计,王祖麟,等.项目驱动:单片机应用设计基础[M].北京:北京航空航天大学出版社,2011.

[8]ADI.Signal and power isolated CAN transceiver with integratedisolated DC-to-DC converter sheet[R].USA:Analog Device,Inc,2011.

[9]宁改娣,曾翔君,骆一萍.DSP控制器原理与应用[M].2版.北京:科学出版社,2008.

DSP接口论文 第4篇

摘要:在采用CCD对非透明薄板厚度的测量系统设计中,采用高速A/D和DSP等器件进行电路设计可以确定CCD的像点位置。由于A/D转换器的采样速率和DSP的工作时钟频率相差非常大,为了提高DSP的工作效率,避免数据丢失和控制方便,采用小容量的FIFO作为两者之间的接口可以产生很好的效果。

关键词:A/D;DSP;FIFO

1 前言

在使用CCD对非透明薄板厚度的测量系统设计中,笔者采用高速A/D和DSP等器件设计信号采集和处理电路来确定CCD的像点位置。其具体电路如图1所示,该信号采集和处理电路由CCD驱动电路、加法电路、滤波放大等信号预处理电路、A/D转换电路、FIFO、DSP电路、时序与逻辑控制产生电路、USB总线接口电路等组成。其中DSP芯片选用TI公司生产的TMS320C6211高速数字信号处理芯片?它主要用于对A/D转换后的数据进行插值和重心算法处理,从而确定CCD上像元的位置,然后把处理后的数据通过USB总线传输到PC机进行厚度计算、结果显示、存储等后续处理。该电路所需的时钟信号和采样逻辑控制时序由一片FPGA芯片产生。

当模拟信号由ADC转换成数字信号后,往往都需要输入DSPs的CPU作进一步处理。但A/D转换后数据输出与DSP的读外部数据的时钟很难精确地配合。即使DSP能读取到外部总线上的数据,由于A/D速率是4MHz,DSP外部存储器时钟为90MHz,为了读到总线上的数据,DSP外部存储器读写时钟也必须控制在4MHz,这样就大大降低了DSP的使用效率,同时再加上DSP处理数据也需要一定的时间,而不能一味地读取外部数据。所以,为了控制方便,避免数据丢失,设计时应采用小容量的FIFO作为两者之间的接口。本设计选用的FIFO芯片是Cypress公司的CY7C425-25ns。该芯片容量为1k×9bit,存取时间最大为25ns,读写周期最小为35ns。该器件具有半满(HF)、全满(FF)和空(EF)三个标志位输出,可以同时满足深度和宽度级联的需要。

图1

2 DSP与FIFO芯片的工作原理

2.1 FIFO读写过程

FIFO的一次读写过程如图2所示,由于FIFO是顺序读取数据,因此?只需提供读写和其它控制信号线,而不需要一般RAM所需的地址线。若将两路A/D输出的.数据存入FIFO中,每片FIFO用8bit?两片FIFO即可级联构成16bit的数据宽度。由于FIFO采用的是5V供电,所以经电压转换器件74LVTH244可将5V数据信号电平转换成3.3V,然后与DSP的16Bit外部数据总线相连。(本网网收集整理)再由FIFO的半满信号HF作为外部中断信号,当FIFO存储器半满时,便可由HF经逻辑处理后向DSP发出中断申请INT4。由于外部FIFO占用着DSP的CE0空间,所以读信号的逻辑关系为:R=CE0+ARE,启动DSP 的EDMA(Enhanced Direct Memory Access)通道传输,可将FIFO中的数据读入内部RAM中,这样,在FIFO输出数据的同时,也将A/D转换的数据写入了FIFO中,从而达到了同时读写的目的。使用EDMA方式传输数据的好处在于:EDMA控制器可以独立于CPU工作,从而可方便地实现片内存储器、片内外设以及外部存储空间之间的数据转移。由外部中断INT4启动EDMA传输,可以大大提高传输速率和CPU的工作效率。DSP读完2048个数据后即开始处理,处理完后便可以在一次扫描结束与下一次扫描尚未开始的时间内将16Bit计算结果数据输出,总的处理时间为一个帧周期。FIFO的写信号可由FPGA产生,并可在A/D转换结束后向FIFO写数据。另外,在每一帧处理之后,还应由FPGA输出控制信号以对FIFO进行初始化,然后重新输入下一帧数据。

2.2 DSP的读时序设计

DSP可以通过硬件的ARDY信号和软件设置来达到与异步外设之间进行通讯的目的。DSP工作时,硬件ARDY信号应始终有效。而如果采用软件设置方法,则设计时需要考虑以下几点:

(1)SETUP≥1;

(2)STROBE≥?tacc+tsu)ECLK;

(3)STOBE≥trp ECLK;

(4)SETUP+STROBE+HOLD≥trc ECLK;

其中,SETUP、STROBE和HOLD是需要在EMIF CE0空间控制寄存器中配置的读信号的三个状态信号;tacc是FIFO的存取时间(≤25ns),tsu是数据建立时间(≥15ns),trp是读脉冲宽度(≥25ns),trc是FIFO的读周期(≥35ns)。由于本设计中DSP的内部时钟为150MHz,外设时钟ECLK为90MHz,所以,最后设定SETUP=1、STROBE=2、HOLD=2来满足DS

P与异步FIFO接口的要求。

2.3 软件设计

图3所示是该系统中DSP的软件流程图。由于TMS320C6211采用ROM加载的芯片自举模式,因此,在芯片复位过程中,EDMA将从位于外部CE1空间的EEPROM中拷贝1kB数据到地址0处,并在传输结束后,使CPU退出复位状态,同时从地址0处开始执行指令。由于主程序大小要大于1kB,所以需要编写BOOT LOAD(大小小于1kB)程序,以使其在复位后将程序从外部EEPROM拷贝到内部程序RAM中运行。在图3所示的主程序流程图中,当系统上电复位后,首先应进行DSP的初始化,接着进行EDMA的中断使能和初始化,然后由FIFO的半满信号启动EDMA传输和由其触发中断程序。当传输完一组2048个数据后,再根据重心算法求出CCD像点的位置,之后便可开始下一次循环。

3 结束语

DSP接口论文 第5篇

数字信号处理器(Digital signal processor,DSP)是一种用于实时数字信号处理的专用微处理器,具有高速的运算能力,可对复杂的控制算法进行实时运算,还提供丰富的外设接口,以便用户根据实际工程需要搭建各种信号处理系统[1]。

以太网是局域网最通用的通信协议标准,该标准定义了局域网中采用的电缆类型和信号处理方法。以太网在互联设备之间的传输速率可以达到10 Mb/s、100 Mb/s、1 000 Mb/s甚至10 Gb/s。以太网交换芯片可以提供多个以太网接口,并在内部集成微处理器,用以实现以太网接口之间的转发[2]。

对于复杂系统,单个DSP的处理能力有限,往往不能满足系统需求,通常采用多个DSP构成功能强大的DSP阵列,这就需要考虑多个DSP之间如何通信的问题。常见的DSP通信接口包括通用异步收发传输器(Universal asynchronous receiver/transmitter,UART)、多通道缓存串行口(Multichannel buffered serial port,McBSP)、串行外设接口(Serial peripheral interface,SPI)等窄带接口[3],不能满足大流量通信。此外,通信系统的发展趋势是IP技术,诸如协议处理等应用都需要以太网接口,因此提供窄带接口的DSP种类并不多,不易推广,目前基本上所有DSP都会提供以太网接口。文章设计了一种基于以太网技术的DSP阵列系统,该系统可扩展成不同规模的DSP阵列,满足各种场合的通信需求,同时提供一种链路检测机制,确保DSP阵列系统的可靠通信[4]。

1 系统硬件设计

文章设计的DSP阵列通信系统主要由若干个DSP载板和1个GE HUB板组成,其中DSP载板由主控CPU、DSP、快速以太网(Fast ethernet,FE)交换芯片、DSP阵列子卡和1个逻辑处理单元组成。主控CPU提供Local Bus接口、外部中断IRQ,负责配置管理所有DSP和FE以太网交换芯片;DSP包括1个主机接口(Host port interface,HPI)[5]和介质无关接口(Media independent interface,MII)[6],每个DSP可以根据需要加载不同的程序完成语音编解码、图像处理等功能;FE交换芯片包括管理数据输入输出(Management data input/output,MDIO)接口、8个FE接口和1个千兆以太网(Gigabit ethernet,GE)接口,完成DSP之间的以太网通信;DSP阵列子卡包括1片FE以太网交换芯片和8个DSP,其中FE以太网交换芯片包含8个FE和1个GE,每个DSP都出1个100 M全双工以太网接口MII和主机接口HPI,每个DSP通过MII接口与交换芯片的1个FE口相连,阵列子卡DSP之间通过FE以太网交换芯片通信,FE以太网交换芯片的1个GE口作为DSP阵列子卡的外部通信口,DSP阵列子卡可通过GE口与GE HUB板互连,实现DSP阵列子卡之间的通信;逻辑处理单元主要完成DSP HPI和FE以太网交换芯片MDIO接口的读写时序以及DSP的中断处理逻辑。

GE HUB板包括1个24个GE口的GE以太网交换芯片,负责DSP阵列子卡之间的数据转发,每个GE口可以接1个DSP阵列子卡。GE HUB板与DSP载板可配置在1个机框内,组成更大规模的DSP阵列系统。文章设计的DSP阵列通信系统框图如图1所示。

2 系统通信方法

2.1 地址分配

根据DSP序号以及槽位信息给每个DSP分配不同的IP地址和MAC地址。每个DSP都有1张ARP表,主要保存与本端DSP有通信关系的所有对端DSP的IP地址和MAC地址的对应关系。每个ARP表项都有老化时间,如果本端DSP在老化时间内没有与对端DSP通信过,则主动删除该表项。每个表项都有1个状态标志,分为可用和不可用,状态可用表示该表项对应的DSP状态正常,可以通信;状态不可用表示该表项对应的DSP状态不正常,不能通信。状态标志由DSP之间的链路检测结果决定。

通信双方DSP在发起通信前,首先要获取对端DSP的地址解析协议(Address resolution protocol,ARP)表项[7],并检测通信链路是否正常。链路检测报文是双向流程,链路检测通过后,DSP双方都在对应ARP表现中设置可用状态。ARP表项示意图如图2所示。

每个表项包括DSP的MAC地址、IP地址、老化时间和状态标志,本系统配置MAC地址的前3个字节固定为00:12:34,后3个字节根据DSP序号和DSP载板的槽位信息确定为AAAAAAAA:BBBBCCCC:DDDDDDDD,其中8位A代表机框号、4位B代表DSP载板所在槽位号、4位C代表DSP插槽号、8位D表示DSP序号,机框号和槽位号可以通DSP载板所在机框的背板获得,DSP序号由主控CPU与DSP的片选决定。IP地址默认以130开头,支持用户配置,后面3个字节与MAC地址的后3个字节相同。根据这种算法算出的DSP MAC和IP地址不会出现冲突。

ARP表项中的老化时间位域AGE表示老化时间t2的计数器。DSP设置老化时间后,启动定时器,定时周期为T。每个定时周期AGE减1,当AGE递减到0时,删除此ARP表项。老化时间t2=AGE/T,例如定时器周期T=1 s,欲设置老化时间为30 s,则AGE=30。DSP更新ARP表项时,重新设置AGE。老化时间t2根据交换芯片的转发表(Forward database,FDB)老化时间t3确定,要求t2<t3,以避免交换芯片因FDB表老化导致的未知报文。

2.2 数据传输

本系统中DSP状态用“1”表示状态可用,用“0”表示状态不可用。DSP发送数据处理流程如图3所示。

首先根据源IP地址搜索ARP表,根据是否存在ARP表项分2种情况:

(1)如果存在ARP表项,并且状态可用,发送业务报文;如果状态不可用,发送网络控制报文协议(Internet control message protocol,ICMP)请求报文。如果本端DSP时间t1内接收不到对端DSP的应答报文,再次发送ICMP请求报文,如果连续3次接收不到对端的应答报文,则触发主机中断[8](Host interrupt,HINT)向主控CPU告警,并且删除对端DSP的ARP表项。如果收到对端DSP的应答报文,设置可用标志,发送业务报文。

(2)如果不存在ARP表项,发送ARP请求报文。如果本端DSP在时间t1内接收不到对端DSP的应答报文,再次发送ARP请求报文,如果连续3次接收不到对端的应答报文,则触发HINT中断向主控CPU告警。如果发送DSP接收到对端DSP的应答报文,在ARP表中增加对端DSP的ARP表项,并且设置老化时间t2和可用标志。

发送DSP每发送1帧以太网数据,都要确认对端DSP状态是否可用。因此当ARP表项老化后,DSP自动停止发送,再次启动ARP协议获取对端DSP的ARP表项,这样可以避免单向数据流导致以太网交换芯片中出现未知报文。DSP接收数据处理流程如图4所示。

主要分以下几种情况:

(1)如果报文类型是ARP请求报文,发送ARP应答报文;

(2)如果报文类型是ARP应答报文,更新ARP表项的老化时间;

(3)如果报文类型是ICMP请求报文,发送IC-MP应答报文;

(4)如果报文类型是ICMP应答报文,更新ARP表项的老化时间;

(5)如果是业务报文,进行业务处理,并且更新ARP表项,否则丢弃。

3 链路检测机制

由于任何1个通信节点故障都会导致通信中断,因此系统设计中必须考虑可靠的链路检测机制,出现通信故障时,能够快速发现故障节点,以便硬件维修以及软件实现冗余设计。

在本通信系统中,主控CPU可以触发任意2个DSP之间的链路检测,这2个DSP可以在不同的DSP阵列子卡上,也可以在不同的DSP载板上。只要知道对端DSP的槽位信息,主控CPU就可以触发本端DSP与对端DSP之间的链路检测。主控CPU触发的任意2个DSP之间的链路检测流程如图5所示。

首先确定链路检测的方向,发送检测报文的DSP称为源DSP,接收检测报文的DSP称为目的DSP。具体流程为:

(1)确定源DSP和目的DSP的机架号、机框号、子卡序号和DSP序号;

(2)选择源DSP所在DSP载板的主控CPU把目的DSP的机架号、机框号、子卡序号和DSP序号写入源DSP的内存中的消息缓存区;

(3)主控CPU触发源DSP的HPI中断通知源DSP启动检测流程;

(4)源DSP接收到HPI中断后,从消息缓存区中获取目的DSP的机架号、机框号、子卡序号和DSP序号;

(5)源DSP根据DSP MAC地址和IP地址的配置方法,设置目的IP地址和目的MAC地址,发送1个ICMP请求报文;

(6)目的DSP收到ICMP请求报文后,会返回ICMP应答报文。如果源DSP在时间t1内接收不到目的DSP的应答报文,再次发送ICMP请求报文,如果连续3次接收不到目的DSP的应答报文,则触发HINT中断向主控CPU告警检测失败;

(7)如果源DSP接收到目的DSP的应答报文,触发HINT中断通知主控CPU检测成功。

中断处理逻辑把DSP载板上所有DSP的中断线HINT“相与”共享主控CPU同1个外部中断线IRQ。IRQ采用低电平触发方式,只要有1个DSP拉低HINT引脚,就会触发主控CPU的IRQ中断。

DSP上报HINT中断的主要流程为:

(1)判断主控CPU是否清除HINT中断标志位,如果未清除,等待时间t(可配置),如果超时,放弃触发中断。

(2)如果主控CPU清除了HINT中断标志位,DSP把需要上报的消息放到内存的消息缓冲区,主控CPU和DSP事先确定好消息的格式,然后置位HINT中断标志位,拉低HINT中断线,触发HINT中断。

主控CPU处理HINT中断的主要流程为:

(1)轮询所有DSP的HINT中断标志来寻找中断源,如果某DSP的HINT中断标志置位,则通过HPI接口到该DSP的消息缓冲区取出消息。

(2)通过HPI接口清除该DSP的HINT中断标志位。

4 结束语

文章提出了一种采用以太网接口的DSP整列系统设计方法,实现了多DSP之间的高速通信、资源共享、实时检测。文章所述方法和装置,与现有技术相比,采用以太网接口替代了窄带接口,硬件结构更加通用,单个DSP的通信能力可达到100 Mb/s全双工;在系统架构上,通过交换芯片灵活组网,而软件不需要改动;在通信方法上,采用以太网交换,并且增加链路检测功能,原理简单,通信可靠。在实际应用中,可以根据实际需要,灵活搭建系统架构,每个DSP都采用以太网报文通信,但是可以分别承载不同的业务,特别适合实现3G移动通信系统中协议处理、语音编解码等功能。

摘要:设计一种基于以太网技术的数字信号处理器(DSP)阵列系统,采用以太网交换芯片作为交换中枢,每个DSP有独立的MAC地址和IP地址,通过以太网交换芯片交互数据。硬件架构可根据需要随意扩展DSP的个数,DSP软件实现了链路检测方法,保证了通信的可靠性。

关键词:数字信号处理器阵列,以太网,交换芯片,MAC地址,IP地址

参考文献

[1]孙进平.DSP/FPGA嵌入式实时处理技术及应用[M].北京:北京航空航天大学出版社,2011.

[2]敖志刚.万兆位以太网及其实用技术[M].北京:电子工业出版社,2007.

[3]陈峰.Blackfin系列DSP原理与系统设计(第2版)[M].北京:电子工业出版社,2010.

[4]徐荣.电信级以太网[M].北京:人民邮电出版社,2009.

[5]陶伟.DSP嵌入式无线通信系统开发实例精讲[M].北京:电子工业出版社,2009.

[6]张太镒,任宏.TI.DSP在通信系统中的应用[M].北京:电子工业出版社,2008.

[7]孙社文,张铭伯.基于DSP技术和以太网卡的数据传输方案[J].通信技术,2008,41(07):98-100.

DSP接口论文 第6篇

在雷达、声纳、通信等应用中,实时记录数据并可以回放是工作设备很重要的一项功能。记录设备的种类可以是模拟式,也可以是数字式。数字式记录仪由于具有抗干扰能力强,存储介质容易保存和后续处理方便等优点渐渐地成为了高速大容量数据记录设备的首选。

本文介绍的数据记录设备是美国METRUM公司的数字记录/回放仪BUFFERED VLDS(BVLDS)[1]。该数字记录/回放仪BVLDS具有串行输入记录方式和串行输出回放方式,能够同时进行语音记录,能够把记录的数据通过并行口或转存卡输出到微机。需要记录的数据源是水听器阵列输出的信号经数字化后的数据流。如图1所示,当系统处于记录方式时,水听器阵列数据流首先进入DSP数据集散模块,然后由集散模块分发数据,一路进入记录仪,另一路要输入阵列数字信号处理机其他模块中。当系统处于回放方式时,记录仪回放数据,使其经过集散模块输入到阵列信号处理机中进行处理,此时集散模块具有交叉开关的作用,不再接受水听器阵列的数据流。SHARC阵列信号处理机接收从数据采集模块传来的数据,然后进行高速数字信号处理。

2系统体系结构设计

SHARC(ADSP-21060)是第一款超级哈佛结构的数字信号处理器(DSP)[2]。SHARC的体系结构被设计为流水线并行处理器。它具有32位单精度IEEE浮点处理器内核,运算速度为40MIPS,浮点运算峰值为120MFLOPS。同时处理器内部还集成了4Mbit零等待SRAM,用作程序和数据存储区。它还具有共享并行总线(Cluster bus)和多处理器的统一编址的设计。最具特色的是SHARC多种形式的外部接口,其中包括六个并行连接口(LinkPort),两个串行连接口(Serial Port),串行口时钟速率可调,最高可达40MHz;这些接口受独立的I/O控制器控制,具有经优化的DMA和中断传输机制,使外部的数据交换与内核的运算过程相互独立,两者可以并发运行,极大增强了处理器与外部设备的数据交换能力。

阵列信号处理机有多块数字信号处理板组成。该数字信号处理板是本试验室自行开发出的一款集成了四片SHARC的6U板,其原理示意图如图2所示。SHARC A、B、C、D以多处理器总线相互连接,组成Cluster结构。彼此之间可以利用总线进行数据读写和DMA操作,并且共享挂在总线上的其他资源,如SRAM、双口RAM、Flash ROM等。各片SHARC芯片之间均有一个Link 口两两互连,这样每片处理器共分配三个Link 口与其他处理器进行通信。每片SHARC芯片各有两个LinkPort和一个SPORTx接到前面板(其中一个LinkPort和SPORTx共用一个插座,由跳线决定插座定义),以及一个LinkPort和一个SPORTx接到底板插座XP1和XP2上。

如图1所示,阵列信号处理机中的第一块数字信号处理板完成数据集散和录音回放接口的功能。其中DSP A片完成数据集散功能,DSP D片完成录音回放功能,DSP A片和DSP D片通过Linkport相连,DSP D片与录音接口转换板通过串口连接。DSP A片通过自定义总线从AD板中读取多通道数据,然后在处理机内通过LinkPort分发。其中一个路径是发向DSP D片,DSP D片再通过串口及相应的转换接口板与METRUM BVLDS 连接,实现记录功能。当数据回放时,该路径完成回放功能,将数据回送到数据集散模块DSP A片上,然后数据再由DSP A向其他发送路径发送。

3数据记录和回放接口的硬件设计

SHARC的两个同步串行口(SPORT0和SPORT1)相互独立。每个串口都拥有独立的控制寄存器和数据缓冲区,能够独立的完成发送和接收功能,即具有全双工的功能。两个串口支持可变的串行时钟和帧同步,它们能兼容各种系列的串行通信协议。这两个串行口的信号都是TTL电平标准。METRUM公司的BVLDS提供串行记录和回放接口,最高记录和回放速率不大于32MHz。并且所有串口信号都是PECL电平标准。

使用SHARC的一个串行口的相互独立的发送和接收功能就可以实现阵列信号处理机与BVLDS的记录和回放功能的对接。但是两者的对接需要进行电平转换和协议约定,电平转换是系统框图1中接口板的主要作用。串行记录回放的接口硬件连接如图3所示。图中的TB5T1是TTL和PECL的电平转换芯片[3]。当数据记录时,SHARC串口的发送部分工作,采用DSP内部产生连续时钟的工作方式,即TCLK0发出时钟信号,并且由DSP内部产生发送帧同步信号TFS0,这种帧同步信号必须在串口控制寄存器中设置为与数据相关的滞后类型。信号时序如图4所示。BVLDS接收由TCLK0和TFS0合成的CLOCKI 和DATAI信号,实际上就是将门控时钟TCLK0信号作为自己的记录时钟对数据DT0进行采样记录。当数据回放时,SHARC串口的发送和接收部分同时工作,串口发送TCLK0以产生BVLDS回放数据所需要的时钟信号,此时BVLDS的接收口只接收TCLK0时钟信号,而不接收DT0的发送数据。BVLDS根据外部收到的TCLK0时钟产生回放时钟CLOCKO和数据信号DATAO,时序如图5所示。此时,SHARC的串口接收部分工作,采用由DSP外部提供连续时钟的工作方式,将CLOCKO作为自己的输入时钟RCLK0信号,对DATAO进行采样输入。此时不需要接收帧同步信号,但接收帧同步管脚应该接至高电平,以保证串口接收功能正常工作。

4串行数据编解码设计

4.1串行数据记录时的编码

来自数据集散模块的每一数据帧含有50通道一次采样的数据,数据位数是16位,共含有800位比特。记录仪记录和回放的数据都是串行数据流。为此在每一组数据发送到BVLDS记录仪之前,必须要填充帧头和帧尾。如图6(a)所示,帧头结构为三个16进制的数0x0、0x0、0x1(0x代表十六进制)。帧尾为一个16进制0xFFFF。这样一帧数据共有864比特。这里只对帧头和帧尾作出了规定,不再对各通道数据本身进行8B/10B等形式的编码。这样编码的考虑是基于因素:①在记录时,应尽量保持水声数据的原貌以保证其频带内的成分不丢失。②因为是实时记录,需要减小减少数据量。③实时记录时不可能实现错误重发,所以也没有奇偶校验标志。④PECL电平传输可以实现减少传输线路中直流分量的存在,可以不必进行8B/10B等形式的编码。

4.2串行数据回放时解码

记录仪回放数据是串行比特流,回放点可以是记录的串行比特流中随机的位置。回放比特流在SHARC接收串口移位寄存器中被截成独立16位的字,因为回放的初始位置不是固定的帧头的首字0x0,所以SHARC接收到每个字都不是实际每个通道的内容。如果不经过解码恢复原有每个比特位的相对位置,那么各个通道内容会发生极大变化,所以需要进行回放数据的解码。回放时必须要先找到帧头和帧尾,根据帧头和帧尾的位置计算出由于随机回放而造成的各个通道数据的字偏移和位偏移,然后根据两个偏移量将各通道数据还原。该解码的原理如图6所示。回放时记录仪的时钟由SHARC给出,每次SHARC提供一帧所需的864个时钟,即取出864个比特位流。对于这样一帧信号,帧头可能在数据包中间的某一个位置,帧头首字0所处的位置相对于数据包中第一通道数据的16位字的偏移量就是字偏移;同时原有帧头的0x1在经过串口移位寄存器截取也可能不再是0x1,原来帧头中的1所在新的16位数据字中的位置就是位偏移。假设原有的帧内容是重复的0x12345,共有40组0x12345。如果随机回放,那么读入SHARC内存的16位数据可能就是图6(b)和图6(c)所示的内容。因为向记录仪发送数据时已经给每一个数据包装上了帧头和帧尾,因此利用帧头和帧尾可以确定字偏移和位偏移这两个变量。在实际应用中,因为模拟电路的自噪声的存在,模拟信号经过模数转换后连续出现0xFFFF和0x0,0x0,0x1的情况的概率非常低,所以使用帧头必须含有连续的47位零的特征寻找帧头位置以确定字偏移和位偏移。如果记录仪的随机回放点落在帧头的0x0,0x0,0x1 中间,可以较容易地根据具体情况找到字偏移和位偏移量。找到这两个偏移量后就可以通过移位计算获得原始的数据结构了。

5软件设计

录音回放模块SHARC的软件任务分为两个循环。一个是记录循环,另一个为回放循环。记录循环包括①从完成数据集散功能的SHARC处接收收数据;②将数据编码;③从串口发送给录音机。回放循环包括①从记录仪接收数据;②数据解码还原;③将还原后的数据发送给数据集散的SHARC。本程序采用嵌入式系统编程的多任务轮询机制,采用中断驱动的并行处理方式[4]。程序的流程图如图7所示。

6结束语

本文详细介绍了用于SHARC阵列数字信号处理机与大容量高速数据记录设备BVLDS接口的设计方案和实现。对于实时高速串行记录,该设计方案充分利用了SHARC串行口的特性,因此具有软硬件实现简便的优点。该方案在实际使用中稳定可靠。

参考文献

[1]METRUM-DATATAPE Incorporated.,METRUMTechnical Manual—Instructions for Buffered VLDS recorder/reproducer,1998.

[2]Analog Devices.Incorporated.,ADSP-2106x SHARC User s Manual,1995.

[3]Texas Instruments Incorporated.,TB5T1—5V Dual Full-Duplex PECL Transceiver Datasheet.,2004.

DSP接口论文 第7篇

关键词:USB接口,DSP,程序下载软件

1 引言

USB是一种新型的计算机总线接口技术, 随着计算机处理数据的能力越来越强, 我们对数据的传输速率也要求越来越高, 而USB的诞生, 也有助于解决数据传输速度慢的难题。USB设备的开发, 我们需要对USB总线结构的每个部分进行代码的编写和整合之后, 再组合成一个整体的开发。要谨慎搭建基于USB的开发环境, 所选用的开发环境最好具有针对USB的软件和硬件的调试, 因为在开发过程中涉及到USB固件和驱动的开发, 应用软件的设计和硬件调试平台。最后要进行USB设备综合调试, 测试所有的功能是否完善以及总结所需要修改的地方, 进一步完善, 完成USB设备的开发。

2 硬件设计

2.1 DSP芯片

本文所选用的DSP芯片为TMS320C6713, 其时钟频率高达300MHz, 是浮点运算能力最强的一款32位高速浮点型DSP芯片。

HPI-16是HPI接口的升级增强版, 是该芯片的主机口, 最重要的特征是DSP的整个片内空间可以被主机访问。HPI接口与主机的数据通信主要通过HPI控制器 (HPIC) 、地址寄存器 (HPIA) 、数据寄存器 (HPID) 和HPI内存块来实现。

2.2 USB芯片

本文所采用的USB芯片是CYPRESS公司的EZ-USB FX2系列芯片CY7C68013, 特点是主机上就存储这其芯片固件, 这样容易使代码直接通过网络升级。它的休眠模式比较特殊, 具有低功耗的效果, 减少资源的损耗, 有利于更好的保护器件, 避免长时间通电遭到损坏。

2.3 硬件电路连接

本设计采用CY7C68013-128PVC与TMS320C6713的HPI模块接口相连接, 工作模式设置为GPIF模式。硬件电路连接如图1所示。

3 软件设计

3.1 USB固件程序设计

固件程序的开发环境选择KEIL C51。固件函数库提供了许多函数, 该函数都与USB协议相关, 可以在不熟悉USB协议的情况下, 利用固件框架进行所需功能的程序编写。寄存器初始化、电源管理、重枚举等功能已经设计完整, 可以直接使用。固件程序流程框图如图2所示。

整个执行过程是一个相对简单的循环过程。第一步, 优先初始化内部变量;然后, 调用TD_Init () 函数进行寄存器的初始化工作;TD_Init () 函数执行结束之后, 使USB接口处于位配置状态, 并开中断, 检测端口0是否接受到一个SETUP包, 否则端口0执行延时重枚举操作。

初始化函数TD_Tint () 函数负责完成初始化芯片的寄存器, 设置适当的参数, 通常在固件运行时开始调用。该函数首先CPUCS寄存器进行初始化操作, 设置48MHZ的时钟频率;然后分别配置端点2作为IN输入bulk状态、端点6使其工作于OUT传输状态, 而端点4、8暂时没有使用, 所以设置为无效状态;之后调用Gpif Iint () 函数, 以初始化GPIF的相关寄存器, 进入工作模式。

调度函数TD_Poll () 函数在固件代码中循环执行, 以负责完成用户指定的功能。该函数首先判断检测传输是否完成、CY7C68013的GPIF的接口是否处于空闲、端点2缓冲区是否为空闲状态, 当这些条件均成立时, 将马上启动GPIF写传输。另外, 在USB高速传输状态时, GPIF能够一次读取4096字节的数据, 适合处理庞大的数据;而在USB全速传输时, GPIF一次只能读取64字节数据, 处理速度比较慢, 适宜处理数据量比较小的情况。

TD_Suspend () 函数, 从固件框架中可以看出, 该函数只有在USB处于空闲状态是, 才执行。在例程当中, 只有简单的一句return TRUE代码, 开发者可以根据实际需要, 添加相应的代码以完成相关的功能, 还可以配置设备的工作状态, 一般设置为低功耗状态, 以减少对电源的消耗, 其最终结果返回真值, 反馈给用户。

TD_Resume () 函数, 当执行完TD_Suspend () 函数之后, 若返回的是真值, 程序会进入挂起状态, 然后开始执行TD_Resume () 函数, 该函数也只有return TRUE一句代码, 当外部需要执行唤醒中断或者USB总线需要执行数据传输等操作, 就会对处理器进行重新启动, 开始下一个循环。

3.2 应用程序设计

使用Lab Windows/CVI支持的VISA的库函数和堪比VC++的控制件库能够轻松设计出美观且符合用户要求的应用程序界面。用Lab Windows/CVI设计的应用程序界面, 如图3所示。

按钮是界面设计中常用到的控件, 该应用程序主要由打开设备、复位和程序下载三部分组成。

4 总结

本文设计了USB接口与DSP系统的结合使用, 设计出一套基于USB接口的DSP程序下载软件, 提供了一种新的数据传输解决方案。总体上, 整个软件基本能完成打开设备、复位和代码下载的功能。

参考文献

[1]张冠英.基于USB2.0的DSP与PC通信接口的设计与实现[D].内蒙古大学, 2010.

[2]刘向宇.DSP嵌入式常用模块与综合系统设计实例精讲[M].北京:电子工业出版社, 2009.

DSP接口论文 第8篇

VME(Versa Module Eurocard)总线是一种采用主/从结构、异步非复用传输模式的计算机总线结构,支持16位、24位、32位寻址及8位、16位、24位、32位数据传输[1]。自1981年推出之后,由于具有严格的技术规范和强大的兼容性、并行性和高可靠性[2]一直是实时嵌入式系统的首选机型,而被广泛应用于航空电子、雷达信号处理及光刻设备等其他有高可靠性特殊要求的大规模并行多处理器系统中。在实际VME从板设计时,为了缩短设计周期,一般都选用专业公司现成的接口芯片,如Cypress公司的VIC068A或Tundra公司的Universe SCV64作为总线桥控制芯片,但是它们都需要外围逻辑电路配合、局部总线的接口转换。所以采用专业公司的IC,不仅价格昂贵,开发周期不一定短[3]。

因此,开发基于VME总线的应用模块,特别是从设备,自主设计接口通信模块成为了一种相对高效、简单的途径[4]。西安电子科技大学的柳兵,苏涛等学者就自行设计FPGA桥接电路[5],采用外置双口RAM实现了VME总线和多DSP处理器的数据交换,但由于RAM外置,需要额外的逻辑控制电路,集成度不高,通用性欠佳。文中基于IP核思想采用FPGA芯片完成了VME从接口设计,实现了数据读写、中断控制、以及地址译码接口逻辑功能,简化了DSP处理器与VME总线的连接,为开发通用的DSP从设备接口提供了新思路。

1 通信接口总体设计

1.1 系统输入输出信号的确定

VME总线系统的功能结构可以分为4类:数据传输总线(DTB)、DTB仲裁总线、优先中断总线和实用总线。每一类都包括一条总线以及与之相关的功能模块,它们共同完成某一确定的功能。但作为从板接口的设计,有些信号是可以不实现的。根据DSP外部总线的特点(以DSP2812为例),采用的通信方式是A24/D16(24位地址/16位数据宽度),进而对总线中的部分信号进行精简,只保留目标设备所必需的信号:地址信号A0~23,数据信号D0~15,地址修改信号AM0~5,地址有效信号AS,数据有效信号DS0~1,总线报错信号BERR,数据宽度控制信号LWORD,数据应答信号DTACK,读写控制信号WRITE,系统复位信号SYSRESET,中断申请IRQ4。DSP方主要涉及的信号为:外部地址总线,外部数据总线,区域片选信号,读写控制信号。

1.2 接口逻辑方案设计

根据VME总线设备接口电路功能设计要求,接口板卡数据总线宽度为16位,地址总线宽度为24位。VME总线与DSP之间的通信通过操作系统内部的双口RAM来完成,接口需要实现的逻辑功能包括:VME总线读写;DSP外部总线读写;中断申请与处理。根据以上思路,总体功能结构及模块划分关系如图1所示。

整个接口逻辑主要包括:VME总线读写控制、DSP读写控制、中断逻辑控制、地址译码、地址比较和总线数据控制等几个部分。地址比较模块负责对VME总线上传输的地址进行配置,判断是否被选中;中断控制器负责DSP中断的申请及根据VME总线上传来的IACK信号、地址前三位A1~3判断是否进入中断响应周期;读写控制器则根据中断控制器、地址比较器的输出,在VME读写控制信号的配合下,管理地址译码器的译码及数据缓冲过程,操作双口RAM完成数据交换及中断处理过程。

2 接口逻辑功能的实现

2.1 双口RAM核操作时序分析

由于Xilinx开发软件支持RAM软核,故在ISE软件环境下直接调用即可生成双口RAM。其操作时序如图2所示,整个读写过程在时钟CLK信号下同步完成,而DSP对外部存储器的读写操作和VME总线的读写操作都是异步的。所以,对此双口RAM进行读写操作时需要完成异步向同步的转换。

2.2 读写控制逻辑设计

2.2.1 DSP外部总线读写控制逻辑设计

DSP的读写时序如图3所示。读操作时,数据需在读信号上升沿前有效,即DSP读写模块应在此前准备好数据(完成对双口RAM的读取);写操作时,由于数据在上升沿后保持一段时间,即DSP读写模块可在此时刻获取DSP总线数据,并向双口RAM进行存储。根据上述思路,设计的DSP读写状态转移图如图4所示。

整个状态机主要分为:DSP_idle,DSP_Read,DSP_Ready,DSP_Wr_ready, DSP_Write五个状态。其中各个状态的转换条件输入如图4所示,RAM读写同步时序钟的上升沿在DSP_Read,DSP_Write输出。

2.2.2 VME总线读写控制逻辑设计

VME总线的数据在主控设备和从设备中传送时,主设备控制着传输地址。从设备通过匹配地址线上传输的地址来判断是否被选中,未被选中从设备则不需要应答,读写时序如图5所示。

传输过程中,主要涉及四种相关的数据总线:数据总线D0~31;地址修改线AM0~5;地址总线A01~31;读写控制线AS,DS0~1,DTACK,WRITE,LWORD。此次设计过程中以A24/D16传输模式为例,参照VME总线标准[1],读写控制线的正确译码应为AM0~5=39或AM0~5=3D,DS0~1=0,LWORD= 0。其中AS为地址有效信号,由主设备拉低代表地址准备好,从设备可以读取。DS0~1为数据有效信号,在VME写操作时由主设备拉低,代表总线上的数据已准备好,从设备可以读取;在VME读操作时由主设备拉低,代表总线上的数据总线已空闲,从板可以驱动数据总线。DTACK为数据传输应答信号,在VME读操作时由从板拉低,表示数据准备完成,VME总线可以读取;写操作时,由从板拉低代表数据写入完成。故RAM读写同步时序钟的上升沿应在DS拉低后,DTACK拉低前给出。

根据上述时序分析,对整个读写过程进行状态划分,读写控制状态机逻辑转换情况如图6所示,整个模块主要由两个环路组成:数据读写环路,该模块实现标准VME总线访问时序到双RAM访问时序的逻辑转换,控制VME总线地址译码和访问模式译码,以及VME总线到双口RAM数据地址线的驱动逻辑控制;中断响应环路,负责在中断响应周期给VME主机提供中断状态识别码,以便主机进入相应的中断服务程序,完成从模块VME总线中断的发送和响应过程。其中INT_OUT信号由中断控制器给出,AMSEL、EQ_OUT信号由地址比较器给出,判断总线地址和地址模式是否匹配。

2.3 中断申请及处理

VME总线系统中断信号线主要包括中断请求信号线IRQ1~IRQ7、中断认可线IACK和中断菊花链信号线IACKIN/IACKOUT。整个中断申请及处理过程为:DSP在接收外部中断时,向RAM中存储中断识别码后,通过拉低DSP_INT信号线发送中断请求,中断控制器待进入中断申请状态则拉低IRQ信号线(实验过程中以IRQ4为例)进行VME中断申请。当总线进入中断响应周期,且中断认可码A01~03匹配成功,则进入中断状态码的上传,完成中断响应操作。

整个功能的实现主要由中断控制器来完成,其内部逻辑如图7所示。

图中,转换状态分为:INT_Other_ir,INT_Idle,INT_Ready,INT_Begin,INT_Iack, INT_IRQ,INT_data_Ready。INT_Idle为空闲状态,等待地址有效信号AS;INT_Begin为中断匹配状态,根据中断菊花链信号线IACK判断是中断响应周期还是数据传输周期;INT_Iack为中断确认状态,匹配中断认可码判断是否进入中断响应状态;INT_Ready为中断响应状态,表示从设备中断申请被响应,从设备可以传输中断状态码;INT_Other_ir为中断传递状态,表示该周期为中断响应周期但不是本设备的中断申请,从设备不须响应,同时传递IACKOUT下降沿;INT_data_Ready为数据传输状态,表明该周期为数据传输周期,是否进入数据传递则需要由地址比较器决定是否被选中。

3 系统测试与仿真结果

FPGA部分设计的软件平台选用Xlinx ISE 10,系统综合后时序仿真结果如图8所示,涉及中断申请与响应及数据读写过程。

在完成逻辑功能程序设计和通过综合后仿真,采用VG5型主控板(CPU:MPC7457)、自制Spartan3接口板、TMS320F2812控制板,在嵌入式实时操作系统VxWorks 5.5下进行板卡调试,通过ChipScope Analyzer获得的在线时序结果如图9所示。

4 结 语

实验结果表明,40 MHz时钟下,接口的数据传输速率可以达到6 MB/s。实现了VME总线与DSP通信功能,为基于VME总线的DSP从板通信接口设计提供了一种高效、灵活的方法。

摘要:VME总线作为最早的国际通用开放式总线,已广泛应用到工业过程控制、军事应用等各个领域。但是由于VME总线的结构复杂,在开发基于VME总线的DSP工控系统中,DSP与VME总线的通信接口设计成为了瓶颈问题。为此,根据VME总线协议要求,采用FPGA完成了VME总线与DSP通信接口的IP核设计,并进行了电路板研制和通信功能的测试,实现了DSP处理器与VME总线的数据传输。

关键词:VME总线,DSP,FPGA,双口RAM

参考文献

[1]VME Bus International Trade Association.ANSI/VITA17-1998 American national standard for front panel dataport specifications[S].USA:VME Bus InternationalTrade Association,1999.

[2]汪小燕,王峻峰,徐文.VME总线数据上行中断传输及从设备接口设计[J].微电子学与计算机,2007,24(3):207-209.

[3]王敏,吴顺君.VME总线桥控制器主模块和从模块的设计[J].系统工程与电子技术,2004,26(7):954-957.

[4]赵建辉,黄皓.基于FPGA的VME总线Slave接口设计[J].测控技术,2007,26(2):50-53.

[5]柳兵,苏涛.多DSP局部总线与VME总线的接口设计[J].现代电子技术,2007,30(11):87-89.

DSP接口论文 第9篇

随着仪器仪表技术的发展, 市场对仪器仪表整体功能的需求越来越多样化, 既需要仪器仪表有很好的界面和通信能力, 也要求仪器仪表有很高的计算能力。基于高级操作系统的单个ARM在人机界面、通信以及多任务处理上有着很好的表现, 但是其计算能力还是有所不足。基于单任务操作系统的DSP虽然有着很强的计算能力, 但在人机交互、网络通信方面有着较大的应用难度。因此, 现在出现很多把ARM和DSP结合起来使用的系统, 但设计这样的系统面临一个问题, 就是如何让ARM和DSP进行高效的数据交换, 并且能充分利用2个处理器的功能特性。

目前, ARM与DSP的通信方式主要有总线方式、HPI方式和外部RAM方式。总线方式可以使用SPI、IIC等总线, 电路简单, 但总线占用率比较高, 传输速度慢, 不稳定, 适用于ARM与DSP间只有少量数据交换的场合。HPI方式使用的是DSP的HPI接口, ARM可以通过该接口装载DSP应用程序, 接收DSP的运行结果或者判断DSP的状态并进行相应的动作[1]。HPI方式可以更好地使用DSP, 但逻辑复杂, 应用起来比较困难。外部RAM方式一般使用双口RAM进行数据交互, 逻辑简单, 但成本稍高。

笔者参与的便携式振动分析仪开发项目中, 便携式振动分析仪需要传输大量的数据, 并且要求传输速度快, 因此, 选用了双口RAM的方案, 也就是本文要介绍的基于双口RAM的ARM与DSP通信接口。

1 接口硬件设计

基于双口RAM的ARM与DSP通信接口是以Samsung公司生产的S3C2440为主处理器, 它主要负责Linux系统的运行、人机界面的显示、联网等任务;以TI公司生产的TMS320C6000系列DSP芯片为协处理器, 它主要负责数据的采集、计算和处理等任务。双口RAM选用IDT70V25L25, 该芯片是大小为8 KB、位宽为16位的静态RAM;有84脚PGA陶瓷封装、84脚PLCC封装和100脚的TQFP封装3种封装方式;运行的典型功率为380 mW, 在未使能的情况下会进入节能模式, 此时其功耗仅有660 μW。

IDT70V25L25提供左右2个独立片选、地址、数据总线、读写控制线, 允许2个CPU总线独立或者异步地读写片上存储地址;提供3个左右逻辑交互接口, 分别是BUSY、INT和SEM信号线。使用者可以选择其中一种信号线, 将其它两种信号线置成高电平;具有3种使用模式, 分别为中断模式、BUSY模式、信号模式。本设计选用中断模式。双口RAM的中断模式是一种相对简单的模式, 具体的使用方法是当右侧处理器在右侧信息位0X1FFE写入数据时, 会触发左侧中断INTL。而左侧处理器在左侧信息位0X1FFF写入数据时, 会触发右侧中断INTR[2]。需要特别注意的是, 如果接收中断的一方没有读取信息位的数据, 那么这个中断不会再次被触发。

基于双口RAM的ARM与DSP通信接口原理如图1所示。

2 接口软件设计

2.1 通信方案

基于双口RAM的ARM与DSP通信接口的通信方案:由ARM负责DSP任务的管理和调度工作, DSP只负责完成ARM下发的复杂数据计算及处理工作, 两者通过双口RAM交换数据, 如图2所示。 这样的通信方式可以充分发挥ARM上Linux系统多线程的优势, 使ARM与DSP间的通信协议简单明了, 简化了DSP的编程思路, 并且具有很好的扩展性。该方案中, 同一时间DSP只执行一个任务, ARM会等待DSP完成任务返回后再下发下一个任务。

2.2 Linux系统中DSP任务管理线程

Linux系统上的DSP任务管理线程是本设计的核心部分, 它需要完成DSP任务的管理和下发。Linux系统上的其它线程需要DSP帮助完成时 (例如完成一个傅里叶变换) , 都可以通过任务管理线程提供的接口提交任务, 然后等待DSP完成任务的中断, 在双口RAM中取任务结果。

DSP任务管理线程的核心结构是一个优先级队列priority_queue<>[4], 它向外提供4个接口函数:DspQueue_size、DspQueue_push、DspQueue_TopandPop、DspTask_download。DspQueue_size的功能为取任务队列的大小。DspQueue_push的功能为任务添加, 其它线程可以通过该函数添加DSP任务。DspQueue_TopandPop的功能为取优先级最高的任务, 并且删除已完成的任务。DspTask_download的功能为任务下发。可以自行定义具体任务队列中任务的数据类型及优先级的排列方法。DSP任务管理线程程序流程如图3所示。

2.3 DSP端程序设计

从图3可看出, DSP端的程序设计非常简单, 只需要一个主循环, 判断是否有任务标志位即可。任务标志位由ARM下发的中断触发, 其主要程序体为一个大的switch函数, 负责处理ARM下发的不同任务, 并返回结果。DSP端的程序流程如图4所示。

3 结语

基于双口RAM的ARM与DSP通信接口使ARM与DSP间的协作方式简单清晰:Linux系统上的主程序在需要DSP进行运算处理或者其它工作时, 调用DSP任务管理线程的接口, 添加DSP任务, 然后等待任务返回;而DSP上的程序只需要等待中断, 根据任务类型进行相应的处理即可;需要DSP处理新的任务时, 只需要在ARM端添加新的任务类型, 在DSP端添加相应的处理函数即可, 有着很好的扩展性。实际应用表明, 该接口运行稳定、可靠, 数据传输速度快。

参考文献

[1]王彬.ARM与DSP的通信接口研究和设计要点[J].工业控制计算机, 2007, 20 (2) :23-24.

[2]Integrated Device Technology Inc..IDT70V25S/L Datasheet[EB/OL]. (2000―05―09) [2011-10-11].http://www.idt.com.

[3]RUBINI A, CORBE J.Linux设备驱动程序[M].2版.魏永明, 骆刚, 姜君, 译.北京:中国电力出版社, 2008.

[4]LINPPMAN S B, LAJOIE J, MOO B E.C++Primer中文版[M].4版.李师贤, 蒋爱军, 梅晓勇, 等译.北京:人民邮电出版社, 2009.

上一篇:再生回用水下一篇:表格结构