DSP与ARM技术比较

合集下载

深入理解DSP、ARM、FPGA的区别与联系

深入理解DSP、ARM、FPGA的区别与联系

深入了解DSP与ARM的区别与联系这些天正准备找工作的事,对于一些理论上的,或者说表面上的知识需要梳理下,所以有空整理了这篇简陋的比较,权当从另一个侧面理解下这两款主流处理器的特点了吧!DSP:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。

其主要应用是实时快速地实现各种数字信号处理算法。

根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

PLC,DSP,ARM,单片机有什么区别

PLC,DSP,ARM,单片机有什么区别

自二十世纪六十年代美国推出可编程逻辑控制器(Programmable Logic Controller,PLC)取代传统继电器控制装置以来,PLC得到了快速发展,在世界各地得到了广泛应用。

同时,PLC的功能也不断完善。

随着计算机技术、信号处理技术、控制技术网络技术的不断发展和用户需求的不断提高,PLC在开关量处理的基础上增加了模拟量处理和运动控制等功能。

今天的PLC不再局限于逻辑控制,在运动控制、过程控制等领域也发挥着十分重要的作用。

作为离散控的制的首选产品,PLC在二十世纪八十年代至九十年代得到了迅速发展,世界范围内的PLC年增长率保持为20%~30%。

随着工厂自动化程度的不断提高和PLC市场容量基数的不断扩大,近年来PLC在工业发达国家的增长速度放缓。

但是,在中国等发展中国家PLC的增长十分迅速。

综合相关资料,2004年全球PLC的销售收入为100亿美元左右,在自动化领域占据着十分重要的位置。

PLC是由摸仿原继电器控制原理发展起来的,二十世纪七十年代的PLC只有开关量逻辑控制,首先应用的是汽车制造行业。

它以存储执行逻辑运算、顺序控制、定时、计数和运算等操作的指令;并通过数字输入和输出操作,来控制各类机械或生产过程。

用户编制的控制程序表达了生产过程的工艺要求,并事先存入PLC的用户程序存储器中。

运行时按存储程序的内容逐条执行,以完成工艺流程要求的操作。

PLC的CPU内有指示程序步存储地址的程序计数器,在程序运行过程中,每执行一步该计数器自动加1,程序从起始步(步序号为零)起依次执行到最终步(通常为END指令),然后再返回起始步循环运算。

PLC每完成一次循环操作所需的时间称为一个扫描周期。

不同型号的PLC,循环扫描周期在1微秒到几十微秒之间。

PLC用梯形图编程,在解算逻辑方面,表现出快速的优点,在微秒量级,解算1K逻辑程序不到1毫秒。

它把所有的输入都当成开关量来处理,16位(也有32位的)为一个模拟量。

一文带你了解CPLD、FPGA、DSP之间的区别与联系

一文带你了解CPLD、FPGA、DSP之间的区别与联系

一文带你了解CPLD、FPGA、DSP之间的区别与联系ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。

ARM也是单片机。

ARM 架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。

由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。

目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用。

51、arm、dsp区别

51、arm、dsp区别

应该从价格,编写程序的难易度,执行效率,外围电路这几个方面去回答。

广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。

客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。

DSP因为数字处理与通信领域的空前发展而火暴,MP3 射象头,应用面很广。

FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。

而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。

C51 是传统的方法,其技术已经是比价成熟的;DSP:主要是面对数字信号方面的处理,其针对性有速度快,精度高等优点;ARM:主要是目前的热点,其核心主要是应用Thumb指令,进行一定的程序设计,是SOC的一个分支;FPGA,CPLD:主要是可编程器件,其主要是应用一些编程语言,如VHDL,Verilog language进行程序编程,下载实现功能;ASIC:其主要是专用集成电路设计,主要是根据客户的需求,进行一定的设计,应用vhdl ,verilog language。

51应用广,价格便宜,运算能力,内部资源在做稍大控制时表现不足.不过它的布尔处理器是独有的.ARM是介于微处理器与微控制器之间的.运算能力接近DSP,控制模块同与普通单片机相同.而DSP强调的较大的数据处理能力,如在运行控制,图像处理方面,优势较大.我想这个问题的出发点应该是:作为Processor,这几种器件有什么有优缺点。

其实C51,ARM,DSP都不是单独作为芯片来提供给用户的,都要加一些外围电路来支持。

例如:memory controller,interrupt controller,timer,UART,SPI,I2C 等等。

所以要比较最好从processor的角度来比较他们。

(1). C51是8位的;ARM是32位的;DSP有16位的,也有更高的。

DSP、MCU、CPLD、ARM、FPGA芯片的区别

DSP、MCU、CPLD、ARM、FPGA芯片的区别

DSP、MCU、CPLD、ARM、FPGA芯片的区别1,单片机小型电脑处理器,最小可以到8个脚,价格便宜,最便宜2块钱2,PLC可变逻辑控制器,主要用在工业控制,里面是类似一个加强的单片机。

对输入输出均有做处理(抗干扰能力、带负载能力都增强).例如抗干扰,增加带负载驱动能力3,DSP 数字信号处理芯片,这个用途可做信号处理,例如图像处理,数据采集处理,它比单片要快很多,比单片机功能要强大4,FPGA、CPLD可变逻辑控制,这个做逻辑处理控制,小型的CPLD是没有中央处理器的,大型可以嵌入系统,功能在单片机之上,适合做大型的数据处理,逻辑控制。

其价格不便宜。

但是他和单片机有本质的区别。

例如单片机有内嵌外设AD,DA转换等,CPLD则需要通过控制其他外设IC。

要想诠释清楚,也非三言两语能道明,还是多看看书本吧学习可以以单片机为先,其次是FPGA,CPLD,DSP。

PLC比较简单,学会前面后面只要了解一周一般都会了一家之言,欢迎指证:DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理算法的执行效率。

MCU:微控制器,主要用于控制系统,工作频率一般来说比DSP低,硬件上具有多个IO端口,同时也集成了多个外设,主要是便于在控制系统中的应用。

至于ARM处理器,个人认为是MCU的高级版本,ARM本身只是一个内核,目前已经有多个版本。

CPLD:复杂可编程逻辑器件FPGA:现场可编程门阵列后两者都是可编程器件,CPLD目前一半采用FLASH技术,而FPGA采用SRAM技术,这就决定了FPGA需要采用特定的配置技术。

同时FPGA的规模要比CPLD大得多,但CPLD应用起来相对要简单的多.DSP主要用做运算,如语音,图像等信号的运算处理,但基本不用做控制.MCU,FPGA,ARM主要用做控制,MCU低价低功耗,但门限很少,结构简单,不能实现复杂控制.ARM控制能力较强,但运算能力相对较弱。

CPU;MPU;MCU三者,以及ARM,DSP,FPGA三者的区别

CPU;MPU;MCU三者,以及ARM,DSP,FPGA三者的区别

CPU ⇒MPU ⇒MCU1 CPU(Central Processing Unit,中央处理器) (1)1.1 CPU的组成 (1)1.2 CPU的工作原理 (1)2 MPU(Microprocessor Unit,微处理器) (3)2.1 MPU的组成 (3)2.2 MPU的分类 (3)2.3 MPU的体系结构:冯.诺伊曼结构和哈佛结构 (3)2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) (4)3 MCU(Microcontroller Unit,微控制器/单片机) (5)3.1 MCU的概念 (5)3.2 MCU的概述 (5)3.3 MCU的分类 (6)3.4 MCU的架构:CISC架构和RISC架构 (6)3.5 常见的MCU (6)3.6 MCU的典型代表:ARM (9)4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) (10)5 FPGA(Field Programmable Gate Array,现场可编程门阵列) (10)6 DSP,ARM,FPGA的区别 (10)1 CPU(Central Processing Unit,中央处理器)中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。

1.1 CPU的组成CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。

运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。

控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。

复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。

寄存器:用来存放操作数、中间数据及结果数据。

1.2 CPU的工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。

DSP和ARM通信

DSP和ARM通信

DSP与ARM之间的通信
1.CAN总线:
CAN通信是串行通信。

这图为买来2812板子上面的CAN的模块。

CAN的控制部分已经在2812芯片内部。

SN65HVD230是一个电平转换器。

简单的说就是讲逻辑的0和1表达在CANH和CANL上。

CANH 和CANL有电压差的时候代表逻辑1.
这图是ARM上面的CAN接口。

DSP和ARM的can模块都差不多。

电路比较简单
个人看法:
简述:电路简单,编程简单。

串行口通信,实时性稍微比较差。

假如只有DSP和ARM两个芯片,就浪费了CAN这个功能了,假如后期假如了更多的芯片,CAN总线的功能能更好体现。

2.HPI通信
HIP通信是并行通信,占用的端口比较多。

下图是ARM和DSP的HIP通信。

这种方式的速度比较快,但是实验室买的2812似乎不支持HIP通信。

所以这个方法可以ban掉了。

看法:似乎不大可行
3.采用CPLD通信
在CPLD中划出一部分作为RAM缓存。

这个是并行通信,可以在2812中实现。

原理自己都想的清楚。

看法:实时性比较高。

由于从未涉及过CPLD,编程CPLD会比较麻烦。

接口比较多,辅助,这个也提高了编程难度。

4.SPI通信
SPI通信也是串行口通信。

具体的还没看完。

待定…,似乎也是一个好方法…..
参考文献
都是知网上一搜索就出的文件!待定。

FPGA和ARM和STM32和DSP区别

FPGA和ARM和STM32和DSP区别

FPGA和ARM和STM32和DSP区别2012-12-02|分享越详细越好,谢谢大侠们10分钟内有问必答前往下载满意回答1.FPGA:是可编程逻辑阵列,常用于处理高速数字信号,不过随着科技的发展,现在很多FPGA CPLD可以集成mcu内核,甚至具备了ARM DSP的功能2.ARM,是一类内核的称谓,就像51一样,具体到芯片的话,会有很多不同的厂家不同等级,诸如三星、易法、飞利浦、摩托罗拉等等,其中STM32是易法半导体的一款面向工控低功耗内核为Cortex M3内核的ARM芯片3.DSP顾名思义就是数字信号处理,厂家主要是德州仪器(TI)主要用于数字型号处理等对运算速度有特殊要求的场合,诸如音频视频算法,军工等领域,但同时dsp有2000 5000 6000等系列也可满足不场合需要!其他想要了解,可以追问,相互探讨哈!追问他们主要的应用领域,那个应用广泛点呢回答应用领域的话1.FPGA一般不会用来做复杂的系统,只用来做些简单的系统如状态机实现的自动售货机...展开>等,多少还是用来做信号的高速变换和处理,毕竟它只是可编程逻辑阵列。

2.ARM和DSP就各有千秋了;ARM的系列从V3 V5 V7 V9 XSCALE,从thumb指令到arm指令(thumb arm也可同时实现),可以说遍布机会所有的领域,只要你接的价格可以接受(其实许多arm并不是很贵的),单片机所有的功能基本他都能实现,我就不用举例子,特别是现在与各种RTOS结合更是开发方便功能强大。

DSP相对arm价格要贵些,这也是可能个体厂家使用较少的一个原因吧,2000系列主要用于工控特别是2812这个用的人比较多,5000 6000主要用于手持设备、PDA、通信等领域;DSP还有一个特色就是对一些特殊算法的支持如快速福利叶变换等,所以对运算速度有特殊要求的场合一般会选择DSP;DSP因其性能和功能比较好,还广泛用于军工领域!<收起。

嵌入式系统DSP、ARM之间的区别与联系

嵌入式系统DSP、ARM之间的区别与联系

华清远见嵌入式培训官网:/嵌入式系统DSP、ARM之间的技术特点与区别在嵌入式开发领域,ARM是一款非常受欢迎的微处理器,其市场覆盖率极高,DSP则是作为嵌入式开发的协处理器,协助微处理器更好的实现产品功能。

那二者的技术特点以及区别是什么呢?下文就此问题略做了总结。

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。

ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。

由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。

目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址华清远见嵌入式培训官网:/总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

DSP与ARM技术比较

DSP与ARM技术比较

DSP:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。

其主要应用是实时快速地实现各种数字信号处理算法。

根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

三分钟了解 ARM、DSP及FPGA的区别

三分钟了解 ARM、DSP及FPGA的区别

三分钟了解ARM、DSP及FPGA的区别ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。

ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。

由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。

目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。

ARM,单片机,FPGA,嵌入式,DSP

ARM,单片机,FPGA,嵌入式,DSP

简单的说,嵌入式是嵌入式系统的简称,所谓嵌入式系统是指嵌入到应用对象中的专用计算机系统。

这里的对象就是指产品,比如日常使用的冰箱、空调、洗衣机,或者手机、游戏机等。

这些产品中都有计算机系统,这类计算机系统就是嵌入式计算机系统。

至于单片机、ARM、FPGA、DSP等都是实现嵌入式系统的硬件平台。

根据对象体系的功能复杂性和计算处理复杂性,提供的不同选择。

对于简单的家电控制嵌入式系统,采用简单的8位单片机就足够了,价廉物美,对于手机和游戏机等,就必须采用32位的ARM和DSP等芯片了。

FPGA是一种更偏向硬件的实现方式。

所以要学习嵌入式,要从单片机开始,然后学习ARM和DSP之类我个人认为你说的刚好相反。

不是别的,FPGA就是自己构建硬件电路,而DSP有内嵌的硬件乘法模块。

单片机应该是偏软的,比如说吧, 现在基本上可以完全用高级语言(如C)来编写单片机程序,而DSP 确还是要用到汇编。

你要知道,汇编可以说就是硬件语言。

呵呵,希望对你有用————ARM、FPGA和DSP的特点和区别是什么?发布时间:2009-5-8 14:25 发布者:ARM 阅读次数:833 DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

单片机全面介绍(8051,avr,pic,msp430,arm,dsp)

单片机全面介绍(8051,avr,pic,msp430,arm,dsp)
PSEN 外部程序存储器读选通信号:在读外部 ROM 时 PSEN 低电平有效,以实现外 部 ROM 单元的读操作。
1、内部 ROM 读取时,PSEN 不动作; 2、外部 ROM 读取时,在每个机器周期会动作两次; 3、外部 RAM 读取时,两个 PSEN 脉冲被跳过不会输出; 4、外接 ROM 时,与 ROM 的 OE 脚相接。 参见图 2—(8051 扩展 2KB EEPROM 电路,在图中 PSEN 与扩展 ROM 的 OE 脚相 接) EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU 读取内部程序存储器(ROM) 扩展外部 ROM:当读取内部程序存储器超过 0FFFH(8051)1FFFH(8052)时自动 读取外部 ROM。 2、接低电平时:CPU 读取外部程序存储器(ROM)。 在前面的学习中我们已知道, 8031 单片机内部是没有 ROM 的,那么在应用 8031 单片机时,这个脚是一直接低电平的。 3、8751 烧写内部 EPROM 时,利用此脚输入 21V 的烧写电压。
ALE/PROG 地址锁存控制信号:在系统扩展时,ALE 用于控制把 P0 口的输出低 8 位 地址送锁存器锁存起来,以实现低位地址和数据的隔离。(在后面关于扩展的课程中我们就 会看到 8051 扩展 EEPROM 电路,在图中 ALE 与 74LS373 锁存器的 G 相连接,当 CPU 对外部进行存取时,用以锁住地址的低位地址,即 P0 口输出。ALE 有可能是高电平也有可 能是低电平,当 ALE 是高电平时,允许地址锁存信号,当访问外部存储器时,ALE 信号负 跳变(即由正变负)将 P0 口上低 8 位地址信号送入锁存器。当 ALE 是低电平时,P0 口上 的内容和锁存器输出一致。关于锁存器的内容,我们稍后也会介绍。

dsp芯片和arm芯片区别

dsp芯片和arm芯片区别

dsp芯片和arm芯片区别DSP芯片和ARM芯片在应用上有很大的差异。

DSP芯片是专门设计用于数字信号处理(Digital Signal Processing,DSP)的芯片,而ARM芯片是一种基于RISC架构的通用微处理器,被广泛用于移动设备、嵌入式系统和消费电子产品中。

首先,DSP芯片和ARM芯片的设计目标不同。

DSP芯片的设计目标是处理快速、复杂的数字信号处理操作,例如音频和视频编解码,图像处理,语音识别等。

DSP芯片通常具有高性能数字信号处理核心和大容量的存储器,用于处理大量的数据。

而ARM芯片的设计目标是提供通用的计算和控制能力,具有更高的灵活性和可编程性。

其次,DSP芯片和ARM芯片在指令集架构上有所不同。

DSP芯片通常采用定制的指令集架构,以加速数字信号处理任务。

这些指令集包括各种算术运算、滤波器和变换器等专门设计的指令。

而ARM芯片采用了精简指令集计算(RISC)架构,具有相对简单的指令集,但也具有高效的性能。

此外,DSP芯片和ARM芯片在功耗和性能方面也有所不同。

DSP芯片通常采用低功耗设计,以满足移动设备和嵌入式系统的需求。

它们通常具有多核心架构和专门的功率管理单元,可以实现在低功耗下高效处理数字信号。

ARM芯片则具有更广泛的功耗和性能范围,从低功耗的微控制器到高性能的多核处理器。

最后,DSP芯片和ARM芯片的软件支持也存在差异。

DSP芯片通常使用特殊的开发工具和编程语言,例如MATLAB和Simulink等,以便开发者可以轻松进行数字信号处理算法的设计和优化。

而ARM芯片通常使用C/C++等通用编程语言,并具有丰富的开发工具和操作系统支持,如GNU工具链和Android操作系统等。

总的来说,DSP芯片和ARM芯片在应用领域、指令集架构、功耗和性能以及软件支持等方面存在差异。

DSP芯片专注于数字信号处理应用,具有定制的指令集和低功耗设计;而ARM芯片具有更广泛的应用范围,采用RISC架构,具有更高的灵活性和通用性。

CPU和DSP区别和联系

CPU和DSP区别和联系

DSP与CPU的区别和联系李钦钦通信101 10172108一.概念DSPDSP(digital signal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。

根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

学DSP、FPGA、ARM,哪个更有前途?

学DSP、FPGA、ARM,哪个更有前途?

学DSP、FPGA、ARM,哪个更有前途?1、这世界真是疯了,貌似有人连原理是什么都不知道就开头来学习FPGA了。

2、就是一个命令比较独特的处理器。

它虽然是通用处理器,但是事实上不怎么“通用”。

技术很牛的人可以用DSP做一台电脑出来跑windows,而事实上真正这么干的绝对是蠢材。

用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。

而且信号处理的代码普通需要对算法很精通的人才干真正写好。

数据结构里面的时光复杂度和空间复杂度在这里是一把很严酷的尺子。

3、FPGA只不过披着软件的外衣,事实上是硬件。

FPGA内部有两层相对自立的。

用法者“编码->编译”后生成一个映像,这个映像作用于第一层电路。

这层电路之际上就是一个0,1的开关矩阵,这个开关矩阵用来控制其次层工作电路,将其次层工作电路配置成一个相应的处理器。

理论上FPGA可以配置成任何需要的处理器,而事实上为了尽量少出bug,FPGA开发都用法已经开发好的“库文件”,也就是把人家能稳定工作的拿过来。

因此,对大多数FPGA开发者来说,FPGA内部有几个核基本上只能从库文件里面选——除非你有能力自己设计核心内部的电路和核间——ram和rom也是用宏来配置,自己只需要改改外部的专用电路和接线方式等等。

甚至外部的专用电路都有库文件,搭个积木就完事了。

玩FPGA真正挣钱的人是做积木的人,你原创几个积木并且能申请专利,迫使人家给你交专利费,那你这辈子可以衣食了。

4、FPGA区分于ASIC设计属于硬件设计的范畴,ASIC是硬件全定制,FPGA是硬件半定制。

详细来说:ASIC囫囵电路都由设计师设计的,用多少资源设计多少资源,普通多用于产品设计。

而FPGA资源事先由厂商给定,例如、等都提供不同系列的FPGA芯片,设计师可以在给定资源下做硬件设计开发。

第1页共4页。

DSP 、单片机以及嵌入式微处理器区别

DSP 、单片机以及嵌入式微处理器区别

DSP 、单片机以及嵌入式微处理器都是嵌入式家族的一员。

最大区别是DSP能够高速、实时地进行数字信号处理运算。

数字信号处理运算的特点是乘/加及反复相乘求和(乘积累加)。

为了能快速地进行数字信号处理的运算,(1)DSP设置了硬件乘法/累加器,(2)能在单个指令周期内完成乘/加运算。

(3)为满足FFT、卷积等数字信号处理的特殊要求,目前DSP大多在指令系统中设置了“循环寻址”及“位倒序”寻址指令和其他特殊指令,使得寻址、排序的速度大大提高。

DSP完成1024复点FFT的运算,所需时间仅为微秒量级。

高速数据的传输能力是DSP高速实时处理的关键之一。

新型的DSP设置了单独的DMA总线及其控制器,在不影响或基本不影响DSP处理速度的情况下,作并行的数据传送,传送速率可达每秒百兆字节。

DSP内部有流水线,它在指令并行、功能单元并行、多总线、时钟频率提高等方面不断创新和改进。

因此,DSP与单片机、嵌入式微处理器相比,在内部功能单元并行、多DSP核并行、速度快、功耗小、完成各种DSP算法方面尤为突出。

单片机也称微控制器或嵌入式控制器,它是为中、低成本控制领域而设计和开发的。

单片机的位控能力强,I/O接口种类繁多,片内外设和控制功能丰富、价格低、使用方便,但与DSP相比,处理速度较慢。

DSP具有的高速并行结构及指令、多总线,单片机却没有。

DSP处理的算法的复杂度和大的数据处理流量更是单片机不可企及的。

嵌入式微处理器的基础是通用计算机中的CPU(微处理器)。

是嵌入式系统的核心。

为满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。

与工业控制计算机相比,嵌入式微处理器具有体积小、质量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。

在应用设计中,嵌入式微处理器及其存储器、总线、外设等安装在专门设计的一块电路板上,只保留和嵌入式应用有关的母板功能,可大幅度减小系统的体积和功耗。

ARM+DSP、AVR与C51的比较

ARM+DSP、AVR与C51的比较

件 ;3 大量使用寄存 器 , 令执行 速度更 快 ;4 大多数 数 () 指 () 据操 作都 在寄存器 中完成 ; 5 寻址方 式灵 活简 单 , () 执行 效
率 高 ;6 指令长度固定。 () 2 2 2 A M 处 理 器 的优 点 . . R A M是微处 理器 行业 的一家知名 企 业 , 计 了大量 高 R 设 性能 、 价格 低 、 能 低 的 RS 耗 IC处 理 器 、 关 技 术 及 软 件 。 相
内操作 的多 个硬 件地 址产 生器 ; 7 可 以并 行执 行 多个 操 () 作 ; 8 支持流水线操作 , 取指 、 码和执 行等操作 可 以重 () 使 译
22 1 采用 R S .. IC架构 的 A M 单片机的优点… R
() 1 体积小 、 低功 耗 、 成 本 、 性 能 ; 2 支 持 T u b 低 高 () hm (6位) A M(2位 ) 1 /R 3 双指令集 , 能很好 地兼 容 8位/ 6位器 1
以下特点 : 1 在一个指令周期 内完成 一次 乘法 以及 一次加 () 法 ;2 程 序 和数据 空 间分 开 , 以同时 访 问指 令和 数据 ; () 可 ( ) 内具有快速 R M, 3片 A 通常可通过独立的数据 总线 在两块 中同时访 问;4 具有低开销或无 开销循环及 跳转 的硬 件支 () 持 ;5 快速 的中断处理和硬件 IO支持 ;6 具有在 单周期 () / ()
1 单片机 的 介绍
单片微型 计算 机 ( ig -hpMi orcs r 是微 型计 S l C i c poes ) ne r o 算机 ( coo p t , Mi cm u r简称微机 ) r e 的一个重 要分支。单片微型 计算机简称单片机 , 别适用 于工业控制 领域 , 特 因此又 称为 微控制器 ( ir ot l r 。它的体积小 , Mco nr l ) c oe 质量轻 , 价格便宜 , 为学 习 , 应用和开发提供 了便利条件 。单片机作为控制部分
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。

一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。

DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。

也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。

另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。

其主要应用是实时快速地实现各种数字信号处理算法。

根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

DSP优势在于其有独特乘法器,一个指令就可以完成乘加运算,但GPP(通用处理器)处理一般是用加法代替乘法,要n多cpu周期,尽管cpu主频很快,但还是要相当时间,这一点现在的GPP已经基本上可以做到内部单周期运算乘加指令了。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用ARM:ARM ( Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。

目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。

ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。

目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了。

基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。

ARM与DSP的比较:区别:由于两大处理器在各自领域的飞速发展,如今两者中的高端或比较先进的系列产品中,都在弥补自身缺点、且扩大自身优势,从而使得两者之间的一些明显不同已不再那么明显了,甚至出现两者部分结合的趋势(如ARM的AMBA总线,可以把DSP或其他处理器集成在一块芯片中;又如DSP中的两个系列OMAP 和达芬奇系列,就是直接针对两者的广泛应用而将两者结合在一起,从而最大发挥各自优势),另外,两者各自不同系列的产品侧重点也不尽相同,所以这里讨论的是一些传统意义上比较。

总的来说主要区别有:ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面;而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。

由于其在控制算法等方面很擅长,所以适合用在对控制要求比较高的场合,比如军用导航、电机伺服驱动等方面。

如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。

另外:内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。

详细来说:DSP的优势主要是速度,它可以在一个指令周期中同时完成一次乘法和一次加法,这非常适合快速傅立叶变换的需求。

DSP有专门的指令集,主要是专门针对通讯和多媒体处理的;而ARM使用的是RISC指令集(当然ARM的E系列也支持DSP指令集)是通用处理用的。

存储器架构和指令集特点不一样单片机为了存储器管理的方便(便于支持操作系统),一般采用指令、数据空间统一编码的冯·诺依曼结构。

DSP为了提高数据吞吐的速度,基本上都是指令、数据空间独立的哈佛结构。

单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令(FFT时特别有用,不是ARM的那种逆序),块重复指令(减少跳转延时)等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成(比如一指令作一个乘法,把结果累加,同时将操作数地址逆序加1),极大的提高了信号处理的速度。

由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。

DSP为提高数字计算效率,牺牲了存储器管理的方便性,对多任务的支持要差的多,所以DSP不适合于作多任务控制作用。

1 对密集的乘法运算的支持GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。

而DSP处理器使用专门的硬件来实现单周期乘法。

DSP 处理器还增加了累加器寄存器来处理多个乘积的和。

累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。

同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构传统上,GPP使用冯.诺依曼存储器结构。

这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。

通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。

它们有两组总线连接到处理器核,允许同时对它们进行访问。

这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。

在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。

从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。

然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。

与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。

在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中(CMD文件的编写)。

程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。

这是因为DSP的典型数据是数据流。

也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。

所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1(逆序加减指令)。

与此相反,GPP的循环使用软件来实现。

某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算大多数DSP使用定点计算,而不是使用浮点。

虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。

定点机器比起相应的浮点机器来要便宜(而且更快)。

为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

发展趋势:DSP是否将作为手机的心脏生存下去,目前的争论非常激烈。

今天的手机生产采用的是双核方式:DSP芯片处理通信,如调制解调器功能和语音处理等;一块通用处理器(通常是ARM设计的RISC处理器)负责处理手机上运行的各种程序,如用户界面和控制协议堆栈等。

随这两种处理器的功能日益强大,或许它们中的一方将会接管另一方目前执行的功能。

但问题在于:是ARM取代DSP,还是DSP挤掉ARM?如果将这三者结合起来,即由DSP结合采样电路采集并处理信号,由ARM 处理器作为平台,运行Linux操作系统,将经过DSP运算的结果发送给用户程序进行进一步处理,然后提供给图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥三者所长。

扩展了解FPGA:FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。

相关文档
最新文档