ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
假设您接到一项事变任务,计划一套由 DSP 与DAC与ADC等模仿器件构成的信号处理惩罚体系。要是您思量到几个紧张因素,事变就会非常大略。下面就来谈谈计划事变中应该思量的这几个因素。
细致相识应用范例
第一步必要相识应用范例。对付控制型应用,既必要应对突发的大量数据处理惩罚情况,也要思量间歇的闲置状态;而对付音频应用,则必要处理惩罚连续数据流的本领。相识应用的详细需求将有助于选择得当的接口和精确的数据读取要领。
评估体系速率
第二步必要相识数据采样的速率。举例来说,音频体系大概是一部 CD 播放机,采样率为 96 kHz,也大概是德律风语音体系,采样率仅为 8 kHz。固然,也大概是其他体系,如 ADSL 质量丈量应用,采样速率高达 10 MSPS,大概是称重应用,每秒只要 16 次采样就充足了,但请求具备较高的辨别率(如 24 位)。相识此方面信息,将有助于开展下一步事变,即选择精确的 DSP 接口。
选择精确的 DSP 接口
相识了应用及速率请求后,就对采取哪种 DSP 接口有了肯定的了解。大多数音频配置均利用特定范例的串行接口,不过高速应用则请求并行接口。当采样速率为 10 MSPS、辨别率
为 12 位时,要是采取串行接口,其端口的速率要到达 120 MHz 才华从转换器向 DSP 发送数据。这一请求大大高出了大多数50 MHz 串行端口的处理惩罚本领。若利用并行接口,则总线上信号互换的频率为 10 MHz,速率明显低落,因此处理惩罚起来非常大略。
在选择接口时,还要思量的另一题目便是,并行总线可否餍足所需的数据速率请求,大概说并行总线芯片在餍足步伐与系数请求后是否已经到达了满负荷。要是是的话,没干系思量在 DSP 与转换器之间插入 FIFO。
确定握手模式
一旦选择了 DSP 接口,下一步就要思量转换器与 DSP 之间的握手模式 (handshake mode)。大多数转换器在发出新的数据字之前都市给出某种范例的转换结束 (EOC) 信号。处理惩罚器利用上述信号的方法有两种:一是轮询 (poll);二是用其作为停止。
利用 EOC 信号作为停止具有肯定上风,由于 CPU 不会被轮询标记占用,因此在得到数据前不会打断 CPU 的正常事变。不过,要是转换器等待处理惩罚特定的协议来读取数据,比如转换器发出转换结束信号后又必要读取下令来检索数据,每个读取下令都市触发新的停止,那么就会导致过多的开销,得不偿失。在这种环境下,轮询的要领就具有明显的上风了。
要是停止时延非常紧张的话,那么利用轮询方法就更具上风。轮询可确保信号相应速率更快,这比进入停止办事例程要快得多。要是数据检索有短临时隙 (narrow timeslot),那么采取轮询方法也是有利的。
确定传输模式
下一步便是实际网络数据的事变了。网络数占据两种要领,半斤八两。第一种要领是采取 DSP 的 DMA(直接存储器存取)控制器,可使传输与转换器的转换结束标记同步,并使 CPU 不消包袱传输事变,由于数据阵列的添补是在背景完成的,传输完成后再关照 CPU。不过,这种要领只有在举行直接传输的环境下才有效。要是数据转换器在检索数据时必要某些巨大的机制,那么 DMA 就不太有效了。
在这种环境下,应让 CPU 参加传输事变。只管屈从特别的协议相称大略,但必须利用大量的 CPU资源来网络数据。要是停止率非常高,那么 CPU 大概很难偶然间再去实行数据网络之后的算法了。
是否采取数据猝发
假设数据转换器连接至 DSP 的并行总线,该并行总线在存储器存取(读取正在实行的数据)和 I/O 存取(读取采样)之间必要几个周期的转换,并且数据转换速率非常高,因此,转换通常是必须的,险些每次采样读取都要举行转换。
要是一步就能读取多个数据字,且不消每次都举行数据总线互换,肯定黑白常有代价的。在这种环境下,没干系思量在数据转换器与 DSP 之间采取 FIFO。一旦 FIFO 到达肯定的程度即停止 DSP,到达肯定命量的数据字一步完成传输,这就大大低落了总线转换的开销。
针对变量选择精确的数据范例
数据转换器针对所用的数据采取差别的格局。有的利用标准二进制(即无标记二进制)数据范例,有的则采取带标记的二进制数据范例,这便是题目的巨大地点。要是有一个 12 位数据转换器,那么在带标记二进制数据环境下,怎样利用将是一个题目。标记位占据最紧张的位置,即第“11”位(这里的肇始位是第“0”位)。要是将此数据字付与“C”变量,宽度为“16”位,那么假定“C”标记位为第“15”位。要是从转换器读取的数字为负,那么 DSP 就不克不及辨认其为负值,由于标记位的位置错误。怎样办理这一题目呢?第一种要领是在读取数据时举行数据位移。不过,这只有在 CPU 读取数据时才有大概,由于 DMA 控制器不大概在传输时举行数据位移。另一种要领是在数据块完全传输后在环路中将数据位移至精确的位置。不过这必须利用 CPU,并请求分外的 MIPS。
要是变化连接后转换器的第“11”位恰好连接至 DSP 数据总线的第“15”位,那么标记位从首位算起恰好位于精确的位置,这就能实现基于DMA 的传输,并且也不消再举行数据位移。
确保处理惩罚的是精确数据
如今,数据已经进入体系,数据字存储在阵列中,数据大小也符合,于是开始处理惩罚数据,但没有得到预期的结果,这时必要思索到底出了什么题目。起首应该查抄 DSP 的高速缓存,DMA 传输数据进入存储器时是否启用高速缓存,在这种环境下,高速缓存很大概保存拷贝的旧数据,并在算法事变中利用它们。要是产生了此类题目,就必须细致高速缓存相干性与转储打扫题目,大概是存储新数据的高速缓存区失效。如许就能确保 CPU 处理惩罚的数据是传输完成后的最新数据。
要是用 C 语言编程应分派易失关键字
在调试嵌入式体系时,采取变量查问外设的状态后,发明 CPU 所用变量
值是错误的,这时就要思索到底那边出了题目。先看看下面这个布局:
unsigned int *pControl = (unsigned int *)0x00COFFEE; file://错误
while (*pControl == 0); file://等待一个外部变乱
这里的 *pControl 指向一个外设。通过 while 循环,盼望 EOC 能从“0”转换为“1”。但在大多数环境下,恐怕得不停等下去,由于编译器以为它已经完全控制了变量及与其相干的存储器,只加载 *pControl 指向的存储器位置的内容一次,就会对其举行循环测试。但题目在于,由于不会重新读取存储器内容,也就不克不及结束循环。
办理这一题目的要领便是将 *pControl 的声明作一下修改,关照编译器其指向的存储器位置可由外部变乱修改,而每次利用该变量时都必须重新加载,如下所示:
volatile unsigned int *pControl = (unsigned int *)0x00COFFEE; file://精确
while (*pControl == 0); file://等待一个外部变乱
确保采样等距
要是要在频域中处理惩罚采样数据,那么还要提到一点:不是全部转换器都有启动新转换的自身时基。在这种环境下,应采取外部时基或 DSP 定时针 (timer pin) 。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号