从这些宏定义可以看到C语言是如何支持硬件编程的。
以#define IMR (volatile unsigned int )0x0004 为例:
1)0x0004,这个容易理解,是一个十六进制的常数
2)再看(volatile unsigned int ),这是一个强制转换,将0x0004转换成(volatile usigned int )
3)现在解释volatile usigned int 是什么。 表示指针(地址),这个指针指向一个 usigned int的数。最前面的volatile有特殊含义:这个指针必须保存在RAM中(不是FLASH或DSP寄存器中)
4)综合上面1)2)3)可知: (volatile unsigned int )0x0004 的含义是:
0x0004是一个地址,在这个地址内保存的是一个unsigned int 类型的整数。这个地址存在于RAM
5)(volatile unsigned int )0x0004 最左边多一个,表示取地址指向单元的内容。综合起来的意思是:从0x0004地址单元中取出一个usigned int 类型的数据值
6)#define IMR (volatile unsigned int )0x0004 的意思是,将从0x0004地址单元中取出一个usigned int 类型的数据值定义为IMR
7)根据DSP硬件,在DSP中RAM中的 0x0004地址单元恰好是中断管理寄存器!
8)绕了半天,#define IMR (volatile unsigned int )0x0004 的意思是:在C语言程序中,定义了一个宏标示符 IMR 来表示DSP中的中断管理寄存器。在程序中,可以通过这个宏标示符来使用这个寄存器:
unsigned int v = IMR; //取出中断管理寄存器的值并赋给v
1总的来说,单片机和DSP都是嵌入式系统的一种芯片。
2单片机是最基础的课,主要用汇编语言或C语言进行编程,在学校用的单片机一般都是89C51,这种单片机价格便宜,当然,实现的功能也比较简单。不过,也有别的单片机,像avr、pic。
3DSP,也就是数字信号处理。用的芯片是FPGA或CPLD,功能强大,价格也贵一点。编程语言是Verilog或VHDL,硬件编程语言。
4不管是单片机还是dsp,那个学好了,都很有前途。
5如果经济允许,买块开发板,自己练。
dsp: digital signal processor 数字信号处理器
PLC: programmable logic controller 可编程逻辑控制器
单片机
DSP 可以理解为一个快速的,计算功能强大的单片机,他的架构和单片机类似,区别在于内部有强大的高速硬件运算器。
PLC 是数字电路控制器,可以进行编程,主要用于工业控制,具有工业标准。可靠性高,通用性好。速度不如DSP快。
简单的讲,DSP用于数字信号处理,PLC用于工业控制系统,单片机二者都能用,但是用于数字信号处理速度低,资源也不一定够,PLC的介绍:>
FPGA是一种可编程的硅芯片,DSP是数字信号处理,当系统设计人员在项目的架构设计阶段就面临到底采用FPGA还是DSP的重要问题。本文将首先分别介绍FPGA和DSP的特点,然后再从内部资源、编程语言、功能多个角度解析两者的不同。

1、FPGA与DSP的特点
FPAG的结构特点
片内有大量的逻辑门和触发器,多为查找表结构,实现工艺多为SRAM。规模大,集成度高,处理速度快,执行效率高。能完成复杂的时序逻辑设计,且编程灵活,方便,简单,可多次重复编程。许多FPAG可无限重复编程。利用重新配置可减少硬件的开销。缺点是:掉电后一般会丢失原有逻辑配置;时序难规划;不能处理多事件;不适合条件 *** 作。
DSP的结构特点
1、 采用数据和程序分离的哈佛结构和改进的哈佛结构,执行指令速度更快。
2、 采用流水线技术,减少每条指令执行时间。
3、 片内多总线,可同时进行取指及多个数据存取 *** 作。
4、 独立的累加器及加法器,一个周期内可同时完成相乘及累加运算。
5、 有DMA通道控制器及串行通信口等,便于数据传送。
6、 有中断处理器及定时控制器,便于构成小规模系统。
7、 具有软硬件等待功能,能与各种存储器接口。
DSP作为专门的微处理器,主要用于计算,优势是软件的灵活性。适用于条件进程,特别是复杂的多算法任务。DSP通过汇编或高级语言(如C语言)进行编程,实时实现方案。因此,采用DSP器件的优势在于:软件更新速度快,极大地提高了系统的可靠性、通用性、可更换性和灵活性。缺点:受到串行指令流的限制;超过几MHZ的取样率,一个DSP 仅能完成对数据非常简单的运算;研发周期长。
2、内部资源
FPGA侧重于设计具有某个功能的硬件电路,内部资源是VersaTiles(ActelFPGA)之类的微小单元,FPGA的内部单元初始在编程前都是使用的是HDL语言实现硬件电路的设计描述。FPGA内部的连线资源将这些功能模块的内部和模块之间的信号连接起来,构成较大的模块。FPGA可以内部实现ALU,加法器,乘法器,累加器,FIFO,SRAM,DDRcontroller,FFT,HDLC,DMA,PWM等等数字电路,也就说我们要用其实现一个特定的或是通用的硬件功能一个或是多个模块,这些模块的各个细节都要要用HDL来描述设计实现。
目前的FPGA都可以直接内嵌诸如ARM7,CoretexM1,Core8051等微处理器,用于FPGA的软核的,也有的FPGA厂商将一些硬件模块直接做到FPGA中,这些是FPGA内部的硬核。传统的FPGA都是实现纯数字电路的,业界只有Actel的FPGA实现了数模混合的PSC单芯片技术,真正的提升和扩大了FPGA的应用功能和领域。
此外,多数FPGA都有PLL,DLL之类的锁相环,Slew可调,Actel的还内建了OSC,RTC,Powermanager之类的硬件单元,甚至Actel的Fusion系列还内建了600kbps的12bit的ADC以及MOSFETDriver之类模拟接口,内部有UserFlashMemeory,FlashROM等资源可以实现真正的PSC,Bootloader之类的功能。
DSP主要是算法处理,内部资源主要是乘法器,加法器之类的资源,有SPI接口,UART接口,接受一定的指令集,内部的资源基本上都是现成的,需要客户的需要而重新配置,方便于客户的使用,但是相对来讲其功能是有局限性的,所以主要用于某些特定的领域。DSP也有内嵌的锁相环,计数器,Baudrate发生器,有的DSP也有ADC模拟接口。
3、编程语言
FPGA主要使用HDL,包括VHDl,Verilog,还有数模混合的描述语言Verilog-AMS等。(课程推荐:FPGA培训)
DSP使用C,汇编语言编程。(课程推荐:C6000 DSP培训)
4、功能角度
FPGA普遍用于实现数字电路模块,基本上能实现所有的数字电路,传统的数字功能模块,以及客户产品特定需求的数字处理模块。FPGA的IO桥接种类繁多,不同种类的级别的FPGA支持的IO标准和协议都不尽相同,但是这些IO的驱动能力或是电压都是可编程配置的。任何数字功能电路的实现,高速信号的处理,控制领域的信号处理,桥转换协议的实现,Actel的Fusion还能用于电流/电压检测,温度的检测,MOSFETdriver,电源管理,其独特的Flash工艺技术可以依靠电池供电工作,和掉电实时保存数据,超低功耗,多种工作模式(Static,Sleepmode),尤其IGLOO芯片的功能在Sleepmode下功耗只有5uW。这样的功耗用于手机,GPS之类的移动手持设备中能发挥更大的功能应用。
除此之外,用FPGA实现ASIC的前期的设计验证,FPGA实现DSP的功能,实现CPU的功能,MCU的功能,内存控制器,用于工业的PWM,SVPWM,Clarke,Park的正逆变换的实现,VGA控制,数据的编解码,解复用,高达上Gbps的信号的处理,协议的转换实现等等等等功能,都是DSP难以胜任的。
DSP内部有很多现成的硬件模块和接口以及控制器,但是需要软件编程设定,可以实现PWM控制,接口控制,UART接口,SPI接口等功能。但是由于受指令集的时钟周期的限制,DSP不能处理太高的信号,至于说上Gbps的信号,LVDS之类的信号就很难以涉及了。所以相应的应用领域会有所限制。但是不同的领域客户的设计方案不同,考虑的侧重点不同,有些领域设计者也是爱好使用DSP的,诸如算法实现,协议的处理等等如果换作FPGA来处理那就得不偿失。
5、适用的场合
DSP适用于系统较低取样速率、低数据率、多条件 *** 作、处理复杂的多算法任务、使用C语言编程、系统使用浮点。)适合于较低采样速率下多条件进程、特别是复杂的多算法任务。
FPAG适用于系统高速取样速率(≥几MHZ)、高数据率、框图方式编程、处理任务固定或重复、使用定点。) 适合于高速采样频率下,特别是任务比较固定或重复的情况以及试制样机、系统开发的场合。
区别:
1、应用场景不同。
单片机是一种系统设计方案,将计算机的CPU,定时器和多种接口集成在一片芯片上,可以满足多种应用场合。现在的小家电,比如说电磁炉,电冰箱,洗衣机这些产品都是有单面机开发而成的。
DSP也是一种系统设计方法,它主要用在数字信号处理算法上面,音视频数据的解码,这样需要速度非常快的处理,普通的单片机达不到这么快的处理速度。
2、结构不同。
单片机的内部结构是由CPU、ROM、RAM、32条I/O口线(111条指,大部分为单字节指令)、21个专用寄存器、2个可编程定时/计数器、5个中断源,2个优先级(52有6个)等组成。
而DSP采用改进的哈佛结构,指令和数据空间完全分开,并且有多个指令和数据空间,提高了数据的运算速度,DSP还设有专门的一些运算处理器,这样很大程度上提高了dsp的运算速率。
3、工作原理不同。
51单片机的工作由相应的指令的代码来完成一步一步的 *** 作,并对系统做出知识与信号。
而DSP工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
联系:
二者都可以编程,DSP可以说是单片机的升级形式。一般而言,单片机指的是8位或16位微控制器。DSP是数字信号处理,着重与运算,特别是浮点运算,是32位微处理器。
扩展资料:
51单片机的部分功能如下:
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O口:四个8位并行I/O口,既可用作输入,也可用作输出
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统:一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。
参考资料来源:百度百科-51单片机功能
以上就是关于dsp的程序问题。解释一下dsp c 语言的问题全部的内容,包括:dsp的程序问题。解释一下dsp c 语言的问题、谁能给具体介绍下单片机,DSP,嵌入式系统的区别、DSP,PLC,单片机的联系与区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)