最新日志

发表于:2007-5-30 12:24:03
标签:无标签

0

[[[转贴]]]PCB软件比较

[[[转贴]]]

PCB软件比较!!!!

 

 

现在市面上流通的eda软件比较多,而且优劣不一,我们只谈谈用的最多最广的几种吧

1、protel

无疑是最早接触的eda软件了,在大部分大学里都有protel软件的课程,但是不得不承认,protel在eda软件家族中的确是最低端的软件之一,制作单面板,两层板尚能得心应手,但是4层就开始感觉到不好用了,更多层就更不必说了,如果面对高频高速的多层板,能用protel做出高质量的板子的人是相当不错的:)

protel在未来的日子会不会被淘汰不好说,现在使用protel的人还是有相当的市场的.学习PROTEL是学习高端PCB软件的基础.

2、pads

即powerpcb,我把它称作低端中的无冕之王,它是我认为在所有低端的pcb软件中最优秀的一款,好用,易上手,做出的板子质量不会比wg,allegro等逊色,现在市场上使用范围最广的一款eda软件,适合大多数中小型企业的需求

3,orcad

orcad的pcb比protel还要差,但是orcad的原理图设计部分capture CIS被业界视为最优秀的原理图工具之一,界面好看,易上手,操作方便,仿真等功能强大,如果和dxdesigner相比在使用方面,我觉得是占上风的,只是dx有非常好的管理功能,集成环境,原理图复用等功能

4、wg

mentor公司的产品,最新出了WG2005,基于windows平台,在中高端的几个软件在功能方面没有很大优劣差别的情况下,只有拉线爽的软件才是好软件,而WG2005正是拉线最爽的软件,被誉为拉线之王,它的自动布线功能非常强大,布线规则设计非常专业,expeditionPCB是WG的pcb核心部分,WG2005包含了DX,DC,DV,LIB,EXP等部分部分.

5、en

同为mentor公司的产品,最新推出的EN2004,因为是基于unix平台的产品,而且市面上没有中文教材,软件学习难度较大,令很多人望而却步;它的专业程度决定了它不适合中小型企业,特别是小型企业,因为没有这个需要,一碗水就能熄灭的火干吗要爬山走远路去更远的河里去取,对不对,况且这个软件本来就是为大型企业设计的,因此没有这个需要的朋友不必去费心费力的,如果工作需要的话就另当别论了,原理图是epd2004,基本上,它最重要的是集成管理体系.

6、allegro

高速板设计中实际上的工业标准!

点击此处查看原文 >>

系统分类: PCB   |    用户分类: 无分类    |    来源: 转贴

评论(1) | 阅读(484)
发表于:2006-10-17 18:01:40
标签:无标签

4

ARM开发软件及实用工具介绍ZZ

ARM 开发软件及实用工具介绍

更新日期:2006.07.16  www.mcu123.net
   

以下软件均可在www.mcu123.com/down下载中心下载(HTTP高速)



一、编译器介绍
1、ADS1.2

    ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。
ADS的编译器调试器较SDT都有了非常大的改观, ADS1.2提供完整的WINDOWS界面开发环境。C编译器效率极高,支持c 以及c++,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT-ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。ADS1.2需要硬件支持才能发挥强大功能。目前支持的硬件调试器有Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE。而简易下载电缆不能支持ADS1.2

版本:ADS1.2

软件大小:130M

本站下载地址:  http://www.mcu123.com/down/view.asp?id="39"

2、ARM REALVIEW DEVELOPER SUITE
    RealView Developer Suite工具是ARM公司是推出的新一代ARM集成开发工具。支持所有ARM 系列核,并与众多第三方实时操作系统及工具商合作简化开发流程。开发工具包含以下组件:

· 完全优化的ISO C/C++编译器
· C++ 标准模板库
· 强大的宏编译器
· 支持代码和数据复杂存储器布局的连接器
· 可选 GUI调试器
· 基于命令行的符号调试器(armsd)
· 指令集仿真器
· 生成无格式二进制工具、Intel 32位和Motorola 32位ROM映像代码的指令集模拟工具
· 库创建工具
· 内容丰富的在线文档

官方网址:

版本:ARM.RealView.Developer2.2

软件大小:500M

本站下载地址:  http://www.mcu123.com/down/view.asp?id="52"

3、IAR EWARM

    Embedded Workbench for ARM 是IAR Systems 公司为ARM 微处理器开发的一个集成开发环境(下面简称IAR EWARM)。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。

IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.30。这里提供的是32k 代码限制、但没有时间限制的Kickstart版。

EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM 内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法。

IAR EWARM 的主要特点如下:
1、高度优化的IAR ARM C/C++ Compiler
2、IAR ARM Assembler
3、一个通用的IAR XLINK Linker
4、IAR XAR 和XLIB 建库程序和IAR DLIB C/C++运行库
5、功能强大的编辑器
6、项目管理器
7、命令行实用程序
8、IAR C-SPY 调试器(先进的高级语言调试器

版本:IAR EWARM 4.40a

软件大小:93M

本站下载地址:  http://www.mcu123.com/down/view.asp?id="53"

4、KEIL ARM-MDKARM

   
  
Keil uVision调试器可以帮助用户准确地调试ARM器件的片内外围功能(I2C、CAN、UART、SPI、中断、I/O口、A/D转换器、D/A转换器和PWM模块等功能)。ULINK USB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。通过使用Keil uVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。

    支持PhilipsSamsungAtmelAnalog DevicesSharpST等众多厂商ARM7内核的ARM微控制器。

高效工程管理的uVision3集成开发环境
* Project/Target/Group/File的重叠管理模式,并可逐级设置;
* 高度智能彩色语法显示;
* 支持编辑状态的断点设置,并在仿真状态下有效。
高速ARM指令/外设模拟器
* 高效模拟算法缩短大型软件的模拟时间;
* 软件模拟进程中允许建立外部输入信号;
* 独特的工具窗口,可快速查看寄存器和方便配置外设;
* 支持C调试描述语言,可建立与实际硬件高度吻合的仿真平台;
* 支持简单/条件/逻辑表达式/存储区读写/地址范围等断点。
多种流行编译工具选择
* Keil高效率C编译器;
* ARM公司的ADS/RealView 编译器;
* GNU GCC 编译器;
* 后续厂商的编译器。

官方网址:www.keil.com

版本: MDKARM V3.10A

软件大小:53M

本站下载地址:  http://www.mcu123.com/down/view.asp?id="38"

5、WINARM (GCCARM)
  WINARM  是一个免费的开发工具。
  WinARM 可以在 http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/ 下载得到,里面除了包含 C/C++ 编译器——GCC,汇编、连接器——Binutils,调试器——GDB等工具,也包括了通过 GDB 使用 Wiggler JTAG 的软件——OCDRemote。所以,所需要的工具都包括在了这个 WinARM 发行版中,就可以比较省心了。

官方发布网址:http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/

软件大小:90M

下载地址:WinARM 20060606 zip-Archive here
  
          http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/WinARM-20060606.zip

 WINARM简易使用说明:http:/www.mcu123.com/product/lpc214x/winarm_user_cn.pdf

 


更多软件添加中。。。。敬请关注!

二、相关开发工具介绍

1、简易的JTAG制作:
  
原理图及PCB(protel99)下载

本站下载: http://www.mcu123.com/software/wiggler/wiggler.rar



2、H-JTAG调试代理
 
   H-JTAG是一个免费的ARM调试代理,程序没有任何限制,希望能给ARM的爱好者提供一
个简单实用的学习工具。欢迎访问作者的BLOG: http://twentyone.blogchina.com
blog提供了安装程序的下载,同时,也提供了常见的Q&A.

  0. 支持ARM7/ARM9,支持自动检测和手动指定内核
  1. 使用RDI接口,支持SDT,ADS,REALVIEW和IAR
  2. 支持ADS1.2和SDT2.51和RREAL VIEW
  3. 支持个硬件断点或者数量不限的软件断点
  4. 支持ARM/THUMB模式
  5. 支持LITTLEENDIAN & BIGENDIAN
  6. 支持SEMIHOSTING
  7. 支持WIGGLER SDTJTAG和自定义接口

3、LPC2000系列ISP工具
   a、飞利普官方网站下载工具
   b、

4、Macraigor Systems Wiggler 调试工具

5、J-LINK

    IAR公司的J-LINK是一款小巧的ARM JTAG硬件调试器,它是通过USB口与PC机相连。
IAR的J-LINK与该公司的嵌入式开发平台紧密结合,且完全支持即插即用。

主要特征:

1)支持所有ARM7和ARM9 
2)下载速度高达600KB/sec
3)  无需电源供电,可直接通过USB取电
4)JTAG速度是8MHz
5)自动辨速
6)监控所有的JTAG管脚信号,测量电压
7)20pin标准JTAG连接器
8)配带USB口和20pin插槽
9)  支持Windows 2000 和Windows XP

更强的几点:
1、支持ADS,KEIL,IAR,WINARM,RV等几乎所有开发环境;并且可以和IAR无缝连接
2、支持FLASH软件断点,可以设置2个以上断点(无限个断点),极大的提高调试效率;
3、带J-Link TCP/IP server,允许通过TCP/ IP 网络使用J-Link
4、支持几乎所有ARM7,ARM9,暂时不支持XSCALE;
* ARM7TDMI(Rev 1)
* ARM7TDMI(Rev 3)
* ARM7TDMI-S(Rev 4)
* ARM720T
* ARM920T
* ARM926EJ-S
* ARM946E-S

官方网站:http://www.segger.com/

6、U-LINK
  
概述
    ARM7 TDMI结构的Keil开发套件采用最新设计的超豪华uVision3集成开发环境,内嵌C编译器/汇编器/工程管理器/调试器等功能功能模块,是一款稳定/可*/高效的开发工具,适用于不同层次的的用户,完全满足从专业的应用开发工程师到初学嵌入式软件开发的学生的所有使用要求。类似于8051的智能平台将大幅度缩短您的开发周期,各大半导体厂商的所有ARM型号将逐一得到全面支持。

    Keil uVision调试器可以帮助用户准确地调试ARM器件的片内外围功能(I2C、CAN、UART、SPI、中断、I/O口、A/D转换器、D/A转换器和PWM模块等功能)。ULINK USB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。通过使用Keil uVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。

    支持PhilipsSamsungAtmelAnalog DevicesSharpST等众多厂商ARM7内核的ARM微控制器。
    特点
 高效工程管理的uVision3集成开发环境
* Project/Target/Group/File的重叠管理模式,并可逐级设置;
* 高度智能彩色语法显示;
* 支持编辑状态的断点设置,并在仿真状态下有效。
 高速ARM指令/外设模拟器
* 高效模拟算法缩短大型软件的模拟时间;
* 软件模拟进程中允许建立外部输入信号;
* 独特的工具窗口,可快速查看寄存器和方便配置外设;
* 支持C调试描述语言,可建立与实际硬件高度吻合的仿真平台;
* 支持简单/条件/逻辑表达式/存储区读写/地址范围等断点。
 多种流行编译工具选择
* Keil高效率C编译器;
* ARM公司的ADS/RealView 编译器;
* GNU GCC 编译器;
* 后续厂商的编译器。
 JTAG仿真器ULINK
* USB通讯接口高速下载用户代码;
* 存储区域/寄存器查看;
* 快速单步程序运行;
* 多种程序断点;
* 片内Flash编程 。
 支持器件

官方网站:http://www.keil.com/ulink
 


更多工具添加中。。。。敬请关注!

点击此处查看原文 >>

系统分类: ARM   |    用户分类: 无分类    |    来源: 无分类

评论(1) | 阅读(1652)
发表于:2006-10-12 11:05:15
标签:无标签

2

转载:ARM简介及BootLoader介绍(尊重原作者版权)

ARM简介及BootLoader介绍
黄大荣 2006-09-29

ARM基本常识(1)
    目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器。
    ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

ARM基本常识(2)
    1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
    ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM处理器状态(1)
    ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。 

ARM处理器状态(2)
    进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
    进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。

ARM处理器模式(1)
    ARM微处理器支持7种运行模式,分别为:
用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

ARM处理器模式(2)
    ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
    除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

ARM寄存器
    ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。
关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。

异常处理
    当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:

进入异常处理的基本步骤:
将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。
根据异常类型,强制设置CPSR的运行模式位。
强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。

如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
ARM微处理器对异常的响应过程用伪码可以描述为:
R14_ = Return Link
SPSR_= CPSR
CPSR[4:0] = Exception Mode Number
CPSR[5] = 0 ;当运行于 ARM 工作状态时
If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常
CPSR[6] = 1
PSR[7] = 1
PC = Exception Vector Address

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
将连接寄存器LR的值减去相应的偏移量后送到PC中。
将SPSR复制回CPSR中。
若在进入异常处理时设置了中断禁止位,要在此清除。


................................................................................
BootLoader简介
    简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
    Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
   
    基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。在系统加电后,CPU 将首先执行 Boot Loader 程序。
大多数 Boot Loader 都包含两种不同的操作模式:“启动加载”模式和“下载”模式 :
启动加载(Boot loading)模式:Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。
下载(Downloading)模式:Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。

BOOT的一般步骤为:

        设置中断向量表
        初始化存储设备
        初始化堆栈
        初始化用户执行环境
        呼叫主应用程序

设置中断向量表
    ARM要求中断向量表必须放置在从0地址开始,连续8X4字节的空间内。
每当一个中断发生以后,ARM处理器便强制把PC指针置为向量表中对应中断类型的地址值。因为每个中断只占据向量表中1个字的存储空间,只能放置一条ARM指令,使程序跳转到存储器的其他地方,再执行中断处理。
中断向量表的程序实现通常如下表示:
AREA Boot ,CODE, READONLY
ENTRY
B??? ResetHandler
B??? UndefHandler
B??? SWIHandler
B??? PreAbortHandler
B??? DataAbortHandler
B
B?? ?IRQHandler
B??? FIQHandler
其中关键字ENTRY是指定编译器保留这段代码,因为编译器可能会认为这是一段亢余代码而加以优化。链接的时候要确保这段代码被链接在0地址处,并且作为整个程序的入口。?

初始化存储设备
    存储器端口的接口时序优化是非常重要的,这会影响到整个系统的性能。因为一般系统运行的速度瓶颈都存在于存储器访问,所以存储器访问时序应尽可能的快;而同时又要考虑到由此带来的稳定性问题。
在不同的板子上处理芯片、存储设备以及其接口差异很大,应根据不同的情况来配置。

初始化堆栈
    因为ARM有7种执行状态,每一种状态的堆栈指针寄存器(SP)都是独立的。因此,对程序中需要用到的每一种模式都要给SP定义一个堆栈地址。方法是改变状态寄存器内的状态位,使处理器切换到不同的状态,然后给SP赋值。注意:不要切换到User模式进行User模式的堆栈设置,因为进入User模式后就不能再操作CPSR回到别的模式了,可能会对接下去的程序执行造成影响。

   这是一段堆栈初始化的代码示例:
mrs     r0,cpsr  ;读取cpsr寄存器的值
bic     r0,r0,#MODEMASK ;把模式位清零
orr     r1,r0,#UNDEFMODE|NOINT
msr     cpsr_cxsf,r1  ;UndefMode
ldr     sp,=UndefStack
其他模式的堆栈的初始化也类似。

堆栈地址的定义一般如下:
 ^ (_ISR_STARTADDRESS-0x1400)
    
UserStack # 1024 ;#=field,定义一个数据域,长度为1024
SVCStack # 1024
UndefStack # 1024 
AbortStack # 1024 
IRQStack # 1024 
FIQStack # 0

初始化用户执行环境
    一个ARM映像文件由RO,RW和ZI三个段组成,其中RO为代码段,RW是已初始化的全局变量,ZI是未初始化的全局变量。
映像一开始总是存储在ROM/Flash里面的,其RO部分即可以在ROM/Flash里面执行,也可以转移到速度更快的RAM中执行;而RW和ZI这两部分是必须转移到可写的RAM里去。所谓应用程序执行环境的初始化,就是完成必要的从ROM到RAM的数据传输和内容清零。
   
    编译器使用下列符号来记录各段的起始和结束地址:
|Image$$RO$$Base| :RO段起始地址
|Image$$RO$$Limit| :RO段结束地址加1
|Image$$RW$$Base| :RW段起始地址
|Image$$RW$$Limit| :ZI段结束地址加1
|Image$$ZI$$Base| :ZI段起始地址
|Image$$ZI$$Limit| :ZI段结束地址加1
这些标号的值是根据链接器中设置的中ro-base和rw-base的设置来计算的。 
    初始化用户执行环境主要是把RO、RW、ZI三段拷贝到指定的位置。

呼叫主应用程序
    当所有的系统初始化工作完成之后,就需要把程序流程转入主应用程序。最简单的一种情况是:
IMPORT main
B????? main
直接从启动代码跳转到应用程序的主函数入口,当然主函数名字可以由用户随便定义。

以上介绍的都只是相关知识点的概要,如果需要详细了解请上网查询。Thanks


 

点击此处查看原文 >>

系统分类: ARM   |    用户分类: 无分类    |    来源: 无分类

评论(2) | 阅读(1076)
发表于:2006-9-19 22:29:30
标签:无标签

3

多谢keil_justin ,现在相册能添加相片了!

重复一下keil_justin 的添加相片的方法:先在相册管理里添加相册分类,然后再选择在某个类里添加picture就OK了!

呵呵

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 无分类

评论(1) | 阅读(813)
发表于:2006-9-18 17:54:09
标签:无标签

0

为什么我一在相册里添加相片就会出现这种错误呢?

如下所示:

很抱歉,您要访问的页面出现未处理的异常。

  1. 请检查您输入的网址是否正确。
  2. 请检查您提供的检索条件是否正确。
  3. 如果您不能确认您输入的网址,请浏览 首页 页面,来查看您所要访问的网址。
  4. 您输入的内容包含非法字符。

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 无分类

评论(2) | 阅读(793)
发表于:2006-9-14 15:32:00
标签:有关DSP  

2

转发一篇关于DSP的文章

一个DSP开发者的感受

我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开始接触DSP,那时DSP开发在国内高校刚刚开始,一台DSP开发器接近一万还是ISA总线的,我从206开始240、2407A都作过产品,对5402、2812、5471在产品方案规划制定和论证时也研究过。由于方向所限对6X、8X系列没有接触。  我发现在国内无论在公司或高校许多地方为了加快开发周期往往把一个产品开发分为硬件和软件两个相对独立部分,由不同的人完成。这在具有一定技术和管理基础的公司,由总设计师统一规划协调,分任务并行完成的情况下是可行的,也是符合现代产品开发规律的。但是在高校人员的流动很大,研究生的有效科研时间很短、基础差(许多研究生起步时对电熔、电阻、三极管的分类和选型都很困难,我也是这样过来的)更不用说系统规划设计了,况且许多老板自己也不太懂,师兄有自己的任务,他们搞明白时也毕业了。在许多高校做DSP就是找一个算法加到自己的主程序里,在板子上跑一下,基本达到效果就可以了,至于可靠性是次要的,产业化无从谈起,这已经算不错的了。其实我觉得一个系统的完成,系统的规划是最重要的,在规划时对硬件设计的知识和认识是决定性的,它可以让你知道什么是可行的,什么是不可行的,当你同时具有软件设计能力时,就可以合理的分配系统功能,完成使用VHDL进行系统行为描述-—系统功能划分—— 系统子结构设计这样的自顶向下的设计规划流程,成为系统设计专家、项目经理,否则只是硬件工程师、软件工程师。无论作51、196、还是DSP都是这样。  下面分别谈谈我对硬件和软件设计的感受 硬件设计是系统设计的关键,国内和国外产品的差距往往是硬件设计水平高低决定的,任何软件设计思想没有可靠的物理载体都是空中楼阁,纸上谈兵。学校的研究生很多都想避开硬件设计,对于一个全新的设计与其说不屑不如说不敢。试想一下烧几个片子的压力要比跑飞几段程序的压力大的多,尤其是功率器件,一旦烧掉,弄不好火光冲天,人的自信都没了。况且改一次板周期长,经费高,还不知行不行。其实在国外实力一般的公司也是尽量避免硬件的更新设计,产品一旦定型往往通过软件升级,这是公司的发展策略,对个人而言物以希为贵,培养一个硬件设计师往往要比软件设计师时间长花费多。在设计dsp硬件时,开始设计最小系统板,系统按功能分板设计调试,注意分板电路的稳定性可能不如整板电路,要多加入抗干扰环节,分板间的引线包括电源线地线要短,尽量在10公分以内,实在不行加入光耦隔离、采用隔离电源。切记电源线、地线的干扰远比信号干扰对系统的危害大得多,又常常被人忽视。电路板工作正常的先决条件就是电源正常!当分板电路正常后再更居情况设计整板电路。在调试时发现的问题一定要找到原因解决,即使是飞线,割线,不要寄希望于下一板改了再看,除非原理性错误。每一个功能环节多准备几套方案。  DSP的选型要根据系统功能而定,2000是一个功能比较全的控制器,但运算性能相对低,但目前大部分控制类、家电类包括中低层次的工业总线通信产品足够了,281X不错但太贵,而且开发技术不成熟。54XX更像一个协处理器,其实高端产品5471就很好,功能完*,但BGA封装对产品的开发有一定难度。如果没有从事过嵌入式系统开发的朋友其实可以从51看起,许多思想是共通的,51很经典没有哪一款微处理器像51那样使用持久和普遍。在硬件设计时更多的精力放在外围电路设计上,外围电路设计的灵活性要比DSP本身高得多,难度大得多。建议多考虑CPLD。  软件设计上,着眼点不要仅局限于某种算法和控制策略,而是软件系统框架的制定,即操作系统的选择和实现,算法和控制策略只是其中技巧性很强的子程序和子程序间参数相互关系,建议设计软件时能具有操作系统、数据结构和编译原理方面的知识,特别是使用C。  对DSP的内部硬件结构一定要掌握,特别是中断结构和流程、流水线操作,不然飞都不知道怎么飞的。在语言选择上我当时是这么给自己规定的先编20个左右的汇编程序,每个代码量超过4K,使用语句范围覆盖全部语句的60%-70%,在此基础上使用C。现在发现用C构建程序的主体框架(操作系统)比较快而其不容易出错,(我现在正在用ASM根据UCOSII的思想重写自己的操作系统)但对系统实时性影响比较大的运算算法一般采用MATLAB——C——ASM的办法仿真调试优化,这里的优化不单单是利用优化器优化,而是根据数据的特点改变运算方法,以除法为例C里的/号其实掩盖了许多技巧,当除数为常数时就可以放大倒数移位相乘移位的办法进行,精度高速度快。这些办法只有掌握了ASM语言并用ASM语言思考才会熟练应用。另外我想告诉一些作算法特别是控制算法的朋友,千万不要随意评判一个算法的优劣,在程序中程序和代码优化的程度往往影响了控制效果好坏,而不是算法本身的思想。其实在实际中往往PID甚至PI、PD就够了,神经元、模糊、小波适用于研究和写论文,模糊在实际中用的多一点,主要是小日本用的比较成熟,我再恨日本人,这点也服气,小日本就是滑,许多物理现象搞不透,就用这法,还管用,题外话。  最后我想说的是,当我们面对市场要求时,产品往往考虑的是可靠性、性能、价格而不是你用的什么芯片,在满足性能的基础上结构越简单就越可靠,芯片越通用价格就越低,能用51就不用196,能用2407就不用2812,除非把芯片本身作买点利用高成本赢取高利润。无论2000还是5000、6000系列都有市场前景,关键是要做深做透获取知识的方法、处理项目的能力是相通的,具体的说就是不要把目光盯在做硬件还是做软件上,用ASM还是C,要勤动手打好基础,提高自己对系统总体设计的能力,从系统的眼光看问题。为什么都是做DSP的有的毕业拿3000,有的5000、8000,除了运气和关系外,重要的是你对事物的认识深度和高度。我一直都记住这句话:有前途的人做什么都有前途,没前途的人做什么都没前途。 [color=#191970][此贴子已经被作者于2005-7-29 11:20:27编辑过][/color]

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 无分类

评论(4) | 阅读(990)
总共 , 当前 /