|
Analog Devices Blackfin处理器技术问答精选 |
问:BF-53x系列处理器可以进行32位乘法吗?
答:BF在一个周期内只有两个单元进行两个16位乘法,因而可以在一个周期内进行32位乘法。不过, BF-53x支持多周期的32位 MAC(乘加器)指令,即:
Dreg *=Dreg.请参考EE-186。如果你需要32位乘法,你应该考虑用SHARC或TigerSHARC 处理器,因为它们是设计用于单周期内32位乘法和累加的。
问:Blackfin 处理器处理视频数据,特别是视频ALUs的速率是多大?
答:相对于PPI,最大视频输入速率是66.5M 16Bit。所以CCIR656 27M 8 可以直接通过PPI。 Blackfin内核在一个周期内可以处理4个8位
ALU(算术逻辑单元),因此1秒内600Mips可以处理 600M 4 8Bit个8位ALU。Blackfin 还给用户提供详细的视频指令,比如运动估计指令、平均指令、剪贴指令等。
问:如何使用Blackfin和暂存器(scratchpad)SRAM?
答:当速度很重要时,使用暂存数据存储器。例如:堆栈应该映象到暂存数据存储器,以便在中断处理时实现最快的内容切换。同时堆栈可以由暂存器来实现。注意暂存数据存储器仅可由
DSP 内核访问,不能由DMA控制器访问。
问:ADSP-21532的数据表,它的数据表与ADSP-BF532的一样吗?ADSP-BF532 EZ-Kit的原理图?
答:ADSP-BF532的数据与先前的ADSP-21532一样,请参考ADSP-BF532的数据表。如你所知,ADSP-BF533、
ADSP-BF532 和 ADSP-BF531的代码和管脚完全兼容,所以请参考BF533 EZ-KIT手册后面的原理图进行设计。
问:不使用PPI可以捕捉CIF未压缩图像吗?
答:可以,但你的外部总线必须使用FIFO连接,不过建议你最好使用PPI。
问:介绍一下多片处理器级联使用的功能?
答:在同一个系统中,像SHARC和TS这样的ADI DSP可以分享外部SDRAM、SRAM和主端口。DSP的判优机制允许任何一个DSP使用共享总线。DSP之间也可以使用链接端口传输数据。
问:如何在BF-535上实现PPI功能?
答:PPI 可以设置为CCIR656和通用PPI。因而使用CCIR656模式时,不需要使用Hsynsc和Vsync就可以将视频编码器直接连上。你也可以用GP模式,使用3个同步管脚。PPI
数据可以直接传送到SDRAM 和内部SRAM。
问:如何在ADSP-21535中使用8位视频ALU?
答:在包括BF535(以前的21535) 和BF531/2/3 的Blackfin 平台上,有一些特殊的视频指令使用视频ALU。你可以参考Blackfin的指令集来使用视频ALU,比如:SAA、BYTEOP16P等。
问:能否再详细一点介绍MSA结构?它是如何将DSP和CPU融合在一起的?
答:MSA是一个崭新的内核,该体系结构的核心有两个16位乘加器(MAC),两个40位算术逻辑单元(ALU),四个8位专用视频ALU和一个40位单桶形移位器,具有两个数据地址产生器(DAG),这是基于DSP的。MSA体系结构支持多种长度指令。它能将16位控制指令与32位DSP
指令在混合一起并链接进64位的长指令组中,使内存分组最大。采用这种体系结构,可以最大效率地处理8位、16位和32位字长的数据。它可以支持8位、16位、32位整数和16位、32位小数数据类型,支持任意的位和位域操作、插入和抽取;它可以同时读取一条指令和两个单独的数据单元;循环计数器允许嵌套零开销循环;它具有统一的4GB内存空间,混合的
16位和32位指令编码,具有最佳的代码密度,这是基于CPU的。更详细的介绍,你可参考ADI Blackfin的硬件手册。
问:如果只是想把数据线上送一个数(16bit),且不要影响地址线,最好的解决办法是什么?用C语言的哪条指令?
答:Blackfin有两条32位片上数据总线,当你在数据总线上写16位数据时,其中一条总线传输这个值,但另一条总线不受影响,其它总线根本不会使用。如果地址与外部存储器一致,那么外部地址总线要受影响。在C语言中,处理它们的最好办法如下:
volatile int *address ;
address = (int)0x20000 ; 20000是地址
然后赋一个值, 如 (*address) = val;
上述C代码运行很好。
问:在ADSP-BF535 EZ-KIT中,BF535与 PSD 闪存连接。我们想用普通的闪存代替PSD闪存,如何实现接口?
答:我们用一个例子来回答你的问题,将39vf160与 ADSP-BF533连接。尽管PSD闪存更为复杂,但你也可以用EZ-KIT作参考。以下是我的建议,注意仅是建议而已,它不是实际的设计,仅供参考。
ADSP-BF533 39vf160 flash
DATA[15:0] DQ[15:0]
ABE0 A0
ADDR[19:1] A[19:1]
AMS0;CE
AWE;WE
AOE or ARE OE
详细内容请参阅ADSP-BF533 EBIU 关于异步存储器操作的章节。
问:用ADSP21535做系统设计时,在PWM模式中如何用通用定时器产生波形?
答:在PWM模式中使用通用定时器,请参考附件的代码范例,我在VDSP++仿真器中测试过,运行良好。另外,请注意;
1.你可以从任何一个TIMERx_STATUS寄存器中读取定时器的状态,但是必须写到合适的寄存器上。
2.定时器工作时,不要改动TIMERx_CONFIG 寄存器状态。
3.对于32位的定时器,高/低字的一致性在读操作时不受保护,请检查软件中的值是否正确。
问:我们从您的网站上知道有eMedia 平台。我们正在作视频压缩卡,想知道它的价格,什么时候能买到?另外,在eMedia 平台上对微软的
WM9有优化吗?如何得到使用WM9的许可证?它与eMedia平台捆绑销售吗?
答:ADI 与微软密切合作使WM9在eM10 平台上运行,100k数量的eM10单价是11.95美元 。这个价格包括了对使用WM9的许可费用。不过,客户/最终用户需要先与微软公司签署WM9
许可协议,ADI才能发货。
问:Blackfin可以直接处理来自VGA CMOS传感器的数据吗?如何得到em10许可证?是免费的吗?
答:CMOS传感器是一个数字接口,它可以直接连到Blackfin PPI接口上。EM10许可证不是免费的,它是微软公司的产品,你需要得到微软的许可,许可费用包括在芯片价格内。
问:与xilinx或 altera 公司的FPGA DSP 性能相比,ADI的产品有什么优势?
答:FPGA 和DSP处理器的主要不同是:FPGA是硬件编程,而DSP全部是软件编程,更灵活,更易于修改和升级。你可以使用C语言这样的高级语言进行DSP处理器编程,这样可以缩短你的开发时间。
问:可以在一块ADSP-BF532上完成MPEG4编码和解码吗?
答:由于内核容量,你可以在一个BF532上同时完成MPEG4编码和解码,但是你应该考虑视频输出和输入通道,因为在BF53x上只有一个PPI。所以,如果你不需要同时运行它们,会更容易。
问:我将BF535的复位信号连接于CPLD,但上电复位后无法从ROM内读出程序,必须手动复位,请问是什么原因?
答:应该是你的系统复位时间有问题,请参照26页的数据表,确认你的复位时间满足CPLD的规定。如果满足不了要求,就会有问题,需要手动复位。如果仍有问题,请联系我们:dsp.support@analog.com
问:如果用BlackFin Dsp 进行MPEG4解码工作, 是否能用?
答:Blackfin 可以完成编码工作,解码工作很容易。对CIF格式,你可以用BF531完成解码,BF531仅售5美元。
Blackfin处理器用于多媒体时有很好的性能。使用Blackfin BF532和 BF535可以完成 MPEG4 CIF (352
288) 格式的编码。在Blackfin 上需要180 MIPS来完成上述算法。这意味着由于BF535有350 MIPS,还剩余 170
MIPS可用于其他任务。至于运行速度为400MHz的 BF532,仍剩下 220 MIPS。当然,对有外部存储器的实时系统,需要考虑附加的等待时间。
问:在Blackfin上做MPEG4的编码需要做哪些具体的工作?
答:首先,你应该具备硬件(自行设计或购买)和 C源代码,然后你才可以在Blackfin 平台上优化程序。你应该首先在Blackfin
上设计编程的架构,比如如何使用存储器,如何使用视频输入和输出接口。你可以向我们的第三方伙伴购买库文件,这样可以缩短你的产品的上市时间。
问:如何在DSP中放操作系统?哪儿可以找到这方面的知识?
答:Blackfin上已经放了许多操作系统,下面是其中一些的详细说明:1. 可视DSP核(Visual DSP Kernel) -
这个操作系统不是很成熟,只是一个小小的内核程序,可以作线程开关、给出共享存储器、事件、队列等工作,这个操作系统随 VDSP++ 3.0
工具免费附送;2. 嵌入式Linux ,可以从 Metro Werks得到;3. CMX操作系统;4. 线程X;5. Fusion;6.
Nucleas 等。详情请联系我们:dsp.support@analog.com
问:能详细介绍一下Blackfin在无线连接方面的性能和应用吗?
答:Blackfin处理器也可用于无线领域。它的速度是600MHz并且具有微控制器的特性。这意味着用户可以用一个 Blackfin处理器代替DSP和微控制器的两芯片解决方案。另外,Blackfin专用的指令如VIT_MAX
使之适用于通信领域;Blackfin 还具有进行多媒体应用的特性。
我们还有一些能在ADI公司的Blackfin 上实现的语音编译码器,可以以不同的价格提供给消费者。详情请联系: dsp.support@analog.com
问:我想请教一下关于flush函数的意义及用法。
答:Blackfin 处理器上有一个高速缓存。对数据缓存来说,典型情况下你想清洗掉一些高速缓存中已有的数据,用新值代替它。如果你想从存储映象终端读取数据,你需要进行这些操作。上述操作在Blackfin处理器中由flush指令支持,你可以在希望清洗的高速缓存中指定地址。
问:FB的代码能防复制吗?
答:Blackfin代码是从内存执行的,内存采用的是SRAM。可以通过执行从内存到外存的DMA(直接存储器存取)指令,从内部SRAM读取代码,因此,没有代码的安全性可言。同时,如果你有多个线程在运行,假如一些线程总在覆盖其它一些线程的内容,Blackfin有内置的保护可以处理这个问题。
问:在中断向量表中,怎样写跳转到用C写的主程序中。
答:有几种办法来处理这种情况:
1. 如果你想在C程序中安装中断处理程序,可以使用Visual DSP提供的中断函数,如:interrupt、 interruptf。我们的手册中有关于它们的详细解释。你可以使用上述函数用C语言或汇编语言定义自己的中断服务程序。
2. 如果你已经有自己的汇编中断程序,并且想进行C函数调用,我们定义了一组C调用规范,你可以初始化用于C运行时间库的一些寄存器,然后仅发送一个命令
_CProgr_function,C程序就从那儿执行。
|
|