单片机和嵌入式系统linux的区别

合集下载

单片机和linux嵌入式操作系统区别

单片机和linux嵌入式操作系统区别

单片机和linux嵌入式操作系统区别随着嵌入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的 CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的成本等各个方面给您提供一个参考,并从技术角度分析单片机和带操作系统的系统的软件开发的异同点。

● 1.单片机与ARM等新处理器的价格比较● 2.带操作系统与不带操作系统的软件开发的区别● 2.1.驱动开发的区别● 2.2.应用程序开发的区别1. 单片机与ARM等新处理器的价格比较表1自己不熟悉的芯片和技术,最后的成本也可能更高。

2. 带操作系统与不带操作系统的软件开发的区别用通俗的话来说,一个处理芯片不运行操作系统,我们就把它称为单片机,而单片机编程就是写裸板程序,这个程序直接在板子上运行;相对的,另一种程序就是基于操作系统的程序,说得简单点就是,这种程序可以通过统一的接口调用“别人写好的代码”,在“别人的基础上”更快更方便地实现自己的功能。

2.1. 驱动开发的区别驱动开发的区别我总结有两点:能否借用、是否通用。

2.1.1 能否借用基于操作系统的软件资源非常丰富,你要写一个Linux设备驱动时,首先在网上找找,如果有直接拿来用;其次是找到类似的,在它的基础上进行修改;如果实在没有,就要研究设备手册,从零写起。

而不带操作系统的驱动开发,一开始就要深入了解设备手册,从零开始为它构造运行环境,实现各种函数以供应用程序使用。

举个例子,要驱动一块LCD,在单片机上的做法是:①首先要了解LCD的规格,弄清楚怎么设置各个寄存器,比如设置LCD的时钟、分辨率、象素②划出一块内存给LCD使用③编写一个函数,实现在指定坐标描点。

比如根据x、y坐标在这块内存里找到这个象素对应的小区域,填入数据。

基于操作系统时,我们首先是找到类似的驱动,弄清楚驱动结构,找到要修改的地方进行修改。

下面是单片机操作LCD的代码:①初始化:void Tft_Lcd_Init(int type){/** 设置LCD控制器的控制寄存器LCDCON1~5* 1. LCDCON1:* 设置VCLK的频率:VCLK(Hz) = HCLK/[(CLKVAL+1)x2]* 选择LCD类型: TFT LCD* 设置显示模式: 16BPP* 先禁止LCD信号输出* 2. LCDCON2/3/4:* 设置控制信号的时间参数* 设置分辨率,即行数及列数* 现在,可以根据公式计算出显示器的频率:* 当HCLK=100MHz时,* Rate =1/[{(VSPW+1)+(VBPD+1)+(LIINEVAL+1)+(VFPD+1)}x* {(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)}x * {2x(CLKVAL+1)/(HCLK)}]* = 60Hz* 3. LCDCON5:* 设置显示模式为16BPP时的数据格式: 5:6:5* 设置HSYNC、VSYNC脉冲的极性(这需要参考具体LCD 的接口信号): 反转* 半字(2字节)交换使能*/LCDCON1 = (CLKVAL_TFT_320240<<8) | (LCDTYPE_TFT<<5) | \(BPPMODE_16BPP<<1) | (ENVID_DISABLE<<0);LCDCON2 = (VBPD_320240<<24) |(LINEVAL_TFT_320240<<14) | \(VFPD_320240<<6) |(VSPW_320240);LCDCON3 = (HBPD_320240<<19) | (HOZVAL_TFT_320240<<8) | (HFPD_320240);LCDCON4 = HSPW_320240;// LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | \// (HWSWP<<1);LCDCON5 = (FORMAT8BPP_565<<11) |(HSYNC_INV<<9) | (VSYNC_INV<<8) | (VDEN_INV << 6) | \(HWSWP<<0);/** 设置LCD控制器的地址寄存器LCDSADDR1~3* 帧内存与视口(view point)完全吻合,* 图像数据格式如下:* |----PAGEWIDTH----|* y/x 0 1 2 239* 0 rgb rgb rgb ... rgb* 1 rgb rgb rgb ... rgb* 1. LCDSADDR1:* 设置LCDBANK、LCDBASEU* 2. LCDSADDR2:* 设置LCDBASEL: 帧缓冲区的结束地址A[21:1]* 3. LCDSADDR3:* OFFSIZE等于0,PAGEWIDTH等于(240*2/2)*/LCDSADDR1 = ((LCDBUFFER>>22)<<21) |LOWER21BITS(LCDBUFFER>>1);LCDSADDR2 = LOWER21BITS((LCDBUFFER+ \(LINEVAL_TFT_320240+1 )*(HOZVAL_TFT_320240+1)*2)>>1);LCDSADDR3 = (0<<11) | (LCD_XSIZE_TFT_320240*2/2);/* 禁止临时调色板寄存器 */TPAL = 0;fb_base_addr = LCDBUFFER;bpp = 16;xsize = 320;ysize = 240;}②描点:/** 画点* 输入参数:* x、y : 象素坐标* color: 颜色值* 对于16BPP: color的格式为0xAARRGGBB (AA = 透明度),* 需要转换为5:6:5格式* 对于8BPP: color为调色板中的索引值,* 其颜色取决于调色板中的数值*/void PutPixel(UINT32 x, UINT32 y, UINT32 color){UINT8 red,green,blue;switch (bpp){case 16:{UINT16 *addr = (UINT16*)fb_base_addr + (y * xsize + x);red = (color >> 19) & 0x1f;green = (color >> 10) & 0x3f;blue = (color >> 3) & 0x1f;color = (red << 11) | (green << 5) | blue; // 格式5:6:5*addr = (UINT16) color;break;}case 8:{UINT8 *addr = (UINT8 *)fb_base_addr + (y * xsize + x);*addr = (UINT8) color;break;}default:break;}}下面是在Linux的LCD驱动里修改的地方(arch\arm\mach-s3c2440\mach-smdk2440.c):/* 320x240 */static struct s3c2410fb_mach_info smdk2440_lcd_cfg__initdata = {.regs = {.lcdcon1 = S3C2410_LCDCON1_TFT16BPP | \S3C2410_LCDCON1_TFT | \S3C2410_LCDCON1_CLKVAL(0x04),.lcdcon2 = S3C2410_LCDCON2_VBPD(1) | \S3C2410_LCDCON2_LINEVAL(239) | \ S3C2410_LCDCON2_VFPD(5) | \S3C2410_LCDCON2_VSPW(1),.lcdcon3 = S3C2410_LCDCON3_HBPD(36) | \S3C2410_LCDCON3_HOZVAL(319) | \S3C2410_LCDCON3_HFPD(19),.lcdcon4 = S3C2410_LCDCON4_MVAL(13) | \S3C2410_LCDCON4_HSPW(5),.lcdcon5 = S3C2410_LCDCON5_FRM565 |S3C2410_LCDCON5_INVVLINE |S3C2410_LCDCON5_INVV |S3C2410_LCDCON5_INVVDEN |S3C2410_LCDCON5_PWREN |S3C2410_LCDCON5_HWSWP,},.gpccon = 0xaaaa56aa,.gpccon_mask = 0xffffffff,.gpcup = 0xffffffff,.gpcup_mask = 0xffffffff,.gpdcon = 0xaaaaaaaa,.gpdcon_mask = 0xffffffff,.gpdup = 0xffffffff,.gpdup_mask = 0xffffffff,.fixed_syncs = 1,.type = S3C2410_LCDCON1_TFT,.width = 320,.height = 240,.xres = {.min = 320,.max = 320,.defval = 320,},.yres = {.max = 240,.min = 240,.defval = 240,},.bpp = {.min = 16,.max = 16,.defval = 16,},};这并不表示代码Linux的驱动程序就比单片机的驱动程序好写,怎么在几万个文件中找到要修改的代码,这也是需要艰苦的学习的。

一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!

一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!

一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。

但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。

所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。

然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。

MCU俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。

因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。

而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年单片机市场份额占有率巨大。

ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。

DSP叫做数字信号处理器,它的结构与MCU不同,加快了运算速度,突出了运算能力。

可以把它看成一个超级快的MCU。

低端的DSP,如C2000系列,主要是用在电机控制上,不过TI公司好像称其为DSC(数字信号控制器)一个介于MCU和DSP之间的东西。

高端的DSP,如C5000/C6000系列,一般都是做视频图像处理和通信设备这些需要大量运算的地方。

FPGA叫做现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计(它的所有过程都是硬件,包括VHDL和Verilog HDL程序设计也是硬件范畴,一般称之为编写“逻辑”。

)。

如果你够NB,你可以把它变成MCU,也可以变成DSP。

由于MCU和DSP的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,所以比较而言速度最快。

那么为什么MCU、DSP和FPGA会同时存在呢?那是因为MCU、DSP的内部结构都是由IC设计人员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。

嵌入式系统与单片机的区别

嵌入式系统与单片机的区别

嵌入式与单片机的异同及其发展趋势如果说微型机的出现,使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。

嵌入式计算机系统走上了一条独立发展的单芯片化道路。

它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。

按照历史性、本质性、普遍性要求,嵌入式系统定义为:“嵌入到对象体系中的专用计算机系统”。

“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。

对象系统则是指嵌入式系统所嵌入的宿主系统。

嵌入式系统的特点与定义不同,由定义中的三个基本要素衍生出来的。

不同的嵌入式系统其特点会有所差异。

与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。

与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。

与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。

与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。

嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。

嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。

因此,嵌入式系统作为一个专用计算机系统(满足对象系统要求的计算机应用系统),要不断向计算机应用系统发展。

单片机开创了嵌入式系统独立发展道路.嵌入式系统虽然起源于微型计算机时代,然而,微型计算机的体积、价位、可靠性都无法满足广大对象系统的嵌入式应用要求,因此,嵌入式系统必须走独立发展道路——芯片化道路。

嵌入式Linux笔试题库和答案

嵌入式Linux笔试题库和答案

嵌入式Linux笔试题库和答案一.选择题1.Linu某的创始人是谁()A、Turbolinu某B、AT&TBellLaboratryC、UniverityofHelinkiD、LinuTorvald2.在Linu某中,命令解释器是哪个()A、管道B、分级文件系统C、字符型处理器D、hell3.Linu某安装程序提供了两个引导装载程序()A、GROUP和LLTOB、DIR和COIDC、GRUB和LILOD、以上都不是4.如果当前目录是/home/ea/china,那么“china”的父目录是哪个目录()A、/home/eaB、/home/C、/D、/ea5.在Linu某中,要删除abc目录及其全部内容的命令为:()A、rmabcB、rm-rabcC、rmdirabcD、rmdir-rabc6.假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1分区加载到/win目录()A、mount-twindow/win/dev/hda1B、mount-f=mdo/dev/hda1/winC、mount-win/dev/hda1/winD、mount–tvfat/dev/hda1/win7.显示用户的主目录的命令是什么()A、echo$HOMEB、echo$USERDIRC、echo$ECHOD、echo$ENV8.系统中有用户uer1和uer2,同属于uer组。

在uer1用户目录下有一文件file1,它拥有644的权限,如果uer2用户想修改uer1用户目录下的file1文件,应拥有()权限。

A、744B、664C、646D、7469.如何查看一个RPM软件包是否安装()A、rpm-Vcpotfi某B、rpm-qpotfi某C、rpm--changelogpotfi某D、rpm-q—changelogpotfi某10某.在Linu某中,提供TCP/IP包过滤功能的软件叫什么(C)A、rarpB、routeC、iptableD、filter11.nf服务的配置文件是什么?()/etc/mtabB、/etc/fatbootC、/etc/ftabD、/etc/e某port12.用命令l-al显示出文件ff的描述:-rw某r-某r--1rootrootCec1017:12ff由此可知文件ff的类型为:()A、普通文件B、硬连接C、目录D符号连接13.Linu某操作系统中的hell是()A、命令解释器B、程序设计语言C、脚本编辑器D、编译器14.能实现文件系统远程挂载的是()。

ARM与单片机的区别

ARM与单片机的区别

一、软件方面这应该是最大的区别了。

引入了操作系统。

为何引入操作系统?有什么益处嘛?1)方便。

主要表此刻后期的开发,即在操作系统上直接开发应用程序。

不像单片机一样一切都要从头写。

前期的操作系统移植工作,仍是要专业人士来做。

2)安全。

这是LINUX的一个特点。

LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引发系统死掉。

这在单片机的软件开发中没见到过。

3)高效。

引入进程的管理调度系统,使系统运行加倍高效。

在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。

二、硬件方面此刻的8位单片机技术硬件发展的也超级得快,也出现了许多功能超级壮大的单片机。

可是与32ARM相较仍是有些差距吧。

ARM芯片大多把SDRAM,LCD等控制器集成到片子当中。

在8位机,大多要进行外扩。

总的来讲,单片机是个微控制器,ARM显然已是个微处置器了。

arm是单片机的一种,51也是,但arm的ROM和RAM远大于51,而且IO口功能和处置速度也是两个级别的,arm能上很多操作系统,51只能勉强上极为简单的实时操作系统,所以arm常常利用来开发等多媒体产品,51只能完成有限的实时控制功能,形象一点说,51和arm的品级不同就像和个人电脑的品级不同。

arm此刻分为A R M三个系列,A面向高端,M主要面向低端,或说白了就是单片机,此刻比较流行的cortex-m3,区别的话,应该在于高端低端,和性能上面;stm32(cortex-m3内核)的低端的价格可以低到10块钱以下,价格非常的低廉,性能很强,而且有库函数的支持,开发的流程简化很多,理论上应该会替代,但是其他的单片机也有自己的优势,比如:51也有自己的优势,简单,使用的人多,价格更低,开发工具更多,MSP430的低功耗,各有各的优势,取不取代还要看市场,公司的推广ARM与单片机其实没有什么区别的,ARM就是集成了各类模块,可以不像51单片机那样还要买什么芯片所需要的功能,ARM自身就集成了,直接写寄放器就哦了~~当然ARM的功耗低,实现的功能强大就不说了~~我感觉ARM最大的优点就是移植操作系统了!!这个是学习ARM的大方向吧,呵呵~~第一,处置速度块、处置能力强、贮存容量大、给用户带来便利传统的51单片机为8为处置器,而ARM芯片为32位处置器,简单的说,51单片机就是前期咱们应用的“赛扬”式电脑,而ARM芯片就是我们此刻应用的“双核”式电脑。

嵌入式系统的分类

嵌入式系统的分类

嵌入式系统的分类1、以硬件划分1.1嵌入式微控制器(Microcontrol lerUnit,也称MCU)单片机就属于嵌入式微控制器,单片机机心由ROM(或EPROM)、总线、总线逻辑、定时器(或计数器)、Watch Dog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等组成,它属于单片式设计,体积小、功耗低、成本小、可靠性高的特点,该类型的品种、数量都是最多的,目前嵌入式系统中,MCU在70年代就已经研制出来,但由于以上的特点,直到现在,它依然占有70%的市场份额。

1.2嵌入式微处理器(MicroProcessor Unit,又称MPU)嵌入式微处理器是根据计算机的CPU演变来的,然而与计算机处理器不同的是,它要求性能高、功耗低、体积小、成本小、重量轻、可靠性高的特点,以满足嵌入式环境下的特殊需求,如ARM系列广泛应用于手机终端,PowerPC系列广泛应用于航空系统。

1.3嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,又称EDSP)DSP的算法理论在70年代就已经出现,那时还没有专门的DSP 处理器,只能用MPU的分立元件实现,然而处理的速度无法满足DSP算法要求,1982年,首枚DSP处理器诞生,它是专门用于处理信号的处理器,以信号处理的特殊要求在系统结构处理、算法上进行专门设计的处理器,它具有很高的编译效果与执行速度的功能。

80年代中期,诞生出基于CMOS工艺的DSP处理器,它的储容量和运算速度与前代相比都有飞跃性的提高、现在随着DSP处理器的不断发展,它的集成度更高、应用范围更广。

1.4嵌入片上系统(SystemOnChip,又称SOC)嵌入片上系统追求包容性最强的集成器件,它使现了软硬件无缝结合,在处理器片上直接嵌入操作系统的代码模块,因此具有很高的综合性。

使用SOC,SOC一般是专用的芯片,它具有系统简洁、体积小、功耗小、可靠性高、生产效率高的特点。

单片机及计算机区别

单片机及计算机区别

singlechip单片机是将多种接口芯片集成到一片芯片的微办理器,这类方式称之为单片电路。

单片机的目的是使单个芯片实现更多的功能,应用更方便、体积更小巧,尽可能不用扩大或许少用外设电路。

适适用于控制独立工作的电器或设施。

2、微机指的是微型计算机也称个人计算机,是多年从前的称呼,此刻称为电脑。

计算机发展早期计算机主要用于计算,以后被发展到各样应用领域,当时有大型计算机和小型计算机之分,为划分随后出现的个人用计算机故此称为微机。

此刻一般的微机都是32位或64位,采纳拥有海量运算能力的通用中央办理器CPU,采纳冯诺依曼构造,也就是数据和程序储存在同一个储存空间中。

一般采纳RISC指令集,还有一些特别的指令集。

而单片机有4、8、16、32等几种,中央办理器的运算能力一般不如微机,并且好多单片机采纳哈佛构造,也就是将储存空间分为程序储存器和数据储存器两部分,数据/程序不可以随意搁置。

指令集既有CISC,也有RISC。

单片机的专用性更强,对环境的适应力比微机好,相对电路也简单,能够用在要求不高的控制场合。

最重点的差异是储存构造的差异。

单板机是好久从前的称号,那时集成电路发展刚起步没多久,不可以将好多的东西集成在一同。

以后,跟着大规模集成电路(ic)的出现,能够把cpu、串口、DA、时钟等功能模块集成在一块芯片中,也就是此刻说的单片机(unit/micro-control-unit/MCU--- 单片机).单片机将过去单板机上的大多数需要依赖好多独立元件的功能模块集成在一块芯片之中了,(单板机上的非IC器件一般无法集成)。

集成后,我们再进行设计时,就能够省略好多外头的器件,由于一片单片机就集成了从前单板机上好多元件的功能啦。

单片机,常用的英文减小是MCU--也即micro-control-unit。

从这个名称就能够看出,它是一个拥有完好的功能的控制模块了。

将单片机与外头电路组成的就是单片机系统了。

这个单片机系统就是一个小型的计算机系统了。

嵌入式操作系统ucos与linux比较

嵌入式操作系统ucos与linux比较

ucos2与linux的比较随着嵌入式计算机技术的迅猛发展,嵌入式操作系统的应用领域逐步扩大,嵌入式计算机已经深入到人类日常生活和生产的各个角落。

这次通过阅读相关资料,进一步加深了对嵌入式操作系统的了解,以下着重对ucos2和linux进行比较,谈谈对嵌入式操作系统的理解。

首先linux和ucos都是免费使用,源代码公开的操作系统,可供用户自由进行裁剪,添加,移植。

Linux是分时多任务多用户操作系统,ucos是实时多任务操作系统。

两者都可运行于多种平台,适应性好,linux不仅可以运行于32位机,也可运行于64位机,单核,多核也同样适用。

uCOS 2已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。

内核Ucos内核包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分,能够维持系统基本工作的部分都在这里。

而linux内核包括进程管理,内存管理,设备管理,网络管理四部分。

Ucos没有提供输入输出管理,文件系统,网络等服务。

这些功能可由用户自行添加实现。

Ucos内核支持抢占,即在进行内核服务函数时,允许被中断服务中断,并且中断结束后可以重新进行任务调度。

Linux是非抢占式内核,实时性差。

当进程运行在用户态时,可以被优先级更高的进程抢占,但当他进入核心态时,优先级再高也不能抢占它。

实时性实时任务分为软实时和硬实时,硬实时对响应时间要求较高,且时间不被满足时会导致致命的错误,软实时随对响应时间有要求,但不是强制,不会给系统造成致命错误。

Ucos是一个基于优先级调度的抢占式的实时内核,不仅内核支持抢占,同时支持任务的抢占式调度,优先级低的任务可以被高优先级任务抢占,也可被中断服务抢占。

这就保证了系统可以尽可能快的对外部事件做出响应。

通用Linux主要考虑调度的公平性和吞吐量等指标,尽管系统可以通过把实时事件赋予高优先级的方法来实时响应实时事件,但效果有限,对于响应时间要求比较高的硬实时任务,无法满足要求。

单片机—百度百科

单片机—百度百科
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端[1]的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机芯片单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

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的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

开发板、单片机、ARM区别及简介

开发板、单片机、ARM区别及简介

开发板、单片机、ARM区别及简介1、开发板●开发板(demoboard)是用于嵌入式系统开发的电路板,包括一系列硬件组件,例如中央处理器,内存,输入设备,输出设备,数据路径/总线和外部资源接口。

●开发板通常由嵌入式系统开发人员根据开发需要定制,也可以由用户进行研究和设计。

开发板供初学者了解和学习系统的硬件和软件。

同时,一些开发板还提供了基本的集成开发环境以及软件源代码和硬件原理图。

常见的开发板包括51,ARM,FPGA和DSP开发板。

●简而言之,它指的是用于学习的许多单芯片外围设备的集成,例如LED灯,数字管,按钮,行和行按钮,步进电机,伺服电机,LCD显示器等。

实验,开发等。

开发板是一种实验设备(SCM编程)。

2、单片机●单片机不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。

它等效于微型计算机。

与计算机相比,单芯片计算机仅缺少I/O设备。

●简而言之:芯片变成了计算机。

它体积小,重量轻,价格低廉,为学习,应用和开发提供了便利的条件。

同时,学习使用单片机是理解计算机原理和结构的最佳选择。

●MCU开发板在官方ARM开发板的基础上增加了外围设备后,配备了许多功能接口,例如扩展的TFT-LCD,LVDS接口,触摸屏,VGA,矩阵键盘,外部总线接口,CAN,SPI,PWM,高速USBHOST\Device,SD卡、RS232\RS485串行端口,音频,MIC等常用接口,国内领先的嵌入式解决方案制造商经常使用具有多个核心平台的ARM开发板,因此各种技术公司的研发工程师可以轻松测试ARM开发板,而R&D公司产品可以通过开发板中的数据文件快速开发公司产品并缩短研发周期。

●在批量生产产品之前,单片机就用于产品的设计和开发,当我们有一定的理论基础研究知识时,单片机开发板就是我们的实用工具(PIC单片机)),通过单片机开发板,我们可以做一些实验来掌握学到的知识。

●单片机的应用领域非常广泛,例如智能仪表,实时工业控制,通讯设备,导航系统,家用电器等。

arm和单片机的区别

arm和单片机的区别

ARM和单片机的区别首先,在指令上的区别:51单片机的指令格式是8位的,arm汇编的指令是32位的,而且arm还支持16位的指令。

2, arm是单周期指令,而51单片机要多arm是单周期指令,要多个机器周期才执行完一条指令。

其次,说说嵌入式系统,是指嵌入式硬件和嵌入式软件,ARM准确来说是一个软核,别的公司购买这个授权后就可以生产ARM处理器如三星的44b0,2410,2440,单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

在使用范围中:单片机:适用于简单的测控系统,功能相对简单,价格较低,单片机的工作ARM和dsp都能作,只是它便宜(而且有些单片机可靠性比arm和dsp都要强,比如工业控制用的单片机),主要当作简单的控制器来使用,比如工业中的温度控制等。

ARM:具有强大的事务处理功能,可以配合嵌入式操作系统使用,ARM是通用处理器,和x86一样,可以在上面跑各种操作系统。

单片机的应用可以很广,不是你理解的简单测控系统,现在航空上的使用器件也有不少是"简单"的单片机控制的..即使说到8位的单片机, 目前大部分工控如果做的还可以的话,都够用了。

单片机是指采用超大规模集成电路技术把中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块芯片上,构成独立的的计算机系统。

因此从概念来讲51系列和arm系列都属于单片机。

51单片机出现比较早,现在还大量应用,厂家很多、芯片类型丰富,应用非常广泛。

ARM出现比较晚,但功能强大,功耗低,产品系列也很丰富,现在应用也非常多。

其次,单片机和arm的区别在于它的单位时钟频率不同, 这2个都可以配合操作系统使用.. 能完成的功能和他外围的设计相关,arm是用来跑系统,做事务调度的;单片机一般认为就是微控制器,侧重于控制,数据处理能力很弱。

嵌入式系统的定义及特点

嵌入式系统的定义及特点

嵌入式系统的定义及特点定义:嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。

特点:(1)嵌入式系统是面向特定应用的。

嵌入式系统中的CPU是专门为特定应用设计的,具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于整个系统设计趋于小型化。

(2)嵌入式系统涉及先进的计算机技术、半导体技术、电子技术、通信和软件等各个行业。

是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

(3)嵌入式系统的硬件和软件都必须具备高度可定制性。

(4)嵌入式系统的生命周期相当长。

嵌入式系统和具体应用有机地结合在一起,其升级换代也是和具体产品同步进行的。

(5)嵌入式系统本身并不具备在其上进行进一步开发的能力。

在设计完成以后,用户如果需要修改其中的程序功能,必须借助于一套专门的开发工具和环境。

(6)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存贮于磁盘等载体中。

3.与通用计算机相比,嵌入式系统有哪些特点?答:与通用计算机相比,嵌入式系统有以下特点:(1)嵌入式系统通常是面向特定应用的;(2)嵌入式系统的硬件和软件必须高效率地设计,做到量体裁衣、去除冗余;(3)有实时操作系统的支持;(4)嵌入式系统具有较长的生命周期;(5)嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储在磁盘等载体中;(6)具有专门的开发工具支持。

操作系统在嵌入式系统中所起的作用EOS负责嵌入系统的全部软、硬件资源的分配、调度作,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。

嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。

嵌入式系统是以应用为中心,整合了计算机软件、硬件技术,通信技术和微电子技术,嵌入式操作系统(嵌入式linux学习)的功能嵌入式操作系统除具备了一般操作系统(嵌入式linux系统)最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下两个方面的功能:1.构成一个易于编程的虚拟机平台嵌入式操作系统构成一个虚拟机平台,EOS把底层的硬件细节封装起来,为运行在它上面的软件(如中间件软件和各种应用软件)提供了一个抽象的编程接口。

嵌入式与单片机的区别、对比

嵌入式与单片机的区别、对比
功能较单一的裸板程序可以不考虑进程调度内存和文件管理但设备驱动必须要有即驱动硬件的那些
嵌入式与单片机的区别、对比
嵌入式是一项技术,单片机是处理器的一种。 嵌入式开发以是否挂载系统分为单片机裸机开发ቤተ መጻሕፍቲ ባይዱ在xxx系统下的开发。
对比两者在编程上的不同: 1、单片机裸板程序:
2、挂载linux系统的
其中操作系统负责进程调度、设备管理、内存管理、文件管理等。 注意:功能较单一的裸板程序可以不考虑进程调度、内存和文件管理,但设备驱动必须要有(即驱动硬件的那些.c/.h文 件)。

如何从51单片机转到linux嵌入式开发

如何从51单片机转到linux嵌入式开发

如何从51‎单片机转到‎l inux‎嵌入式开发‎首先从st‎m32f4‎07,买个开发板‎,学习液晶怎‎么驱动,点亮像素和‎填充矩形的‎函数(也就是液晶‎的最底层驱‎动函数)怎么写,触摸中断处‎理函数,触摸校正及‎去抖滤波算‎法怎么写,再学sd卡‎u sb口s‎r am、flash‎(也就是st‎m32的f‎s mc 静态‎存储器扩展‎接口)怎么初始化‎和读写数据‎。

这里要指出‎,单片机上的‎代码一般都‎是做以下的‎工作,即外设初始‎化,端口初始化‎,端口置1置‎0,以及简单的‎在spi或‎串口上发送‎极少量的字‎节。

而arm会‎涉及到传送‎大量数据和‎文件。

硬件及底层‎驱动代码搞‎清楚以上这‎些就可以了‎。

因为买的a‎r m开发板‎,都带有现成‎的驱动,不用你去写‎,拿来直接用‎就行。

arm更偏‎重于软件,可以说你在‎a rm 开发‎板上做的9‎0%工作都是软‎件,这也是单片‎机转到ar‎m时让很多‎人迷茫的原‎因,有些人去研‎究arm芯‎片的dat‎a shee‎t,stm32‎f407z‎g t6有1‎44引脚,corte‎x-a8有几百‎个引脚,datas‎h eet上‎千页,片上外设很‎多,外设寄存器‎几百个,单靠一个人‎的力量根本‎没发看完,那是给专门‎做驱动的人‎看的,开发板买来‎都是现成的‎,所以说只学‎习一下st‎m32上的‎液晶和sr‎a m读写这‎样简单的就‎可以,corte‎x-a8上的就‎不用学了,直接拿来主‎义。

我们把主要‎精力放在软‎件上。

接下来开始‎,在stm3‎2上学uc‎g ui移植‎,调用其中函‎数,做一个简单‎界面。

再接下来学‎u cos ii,把这个最基‎本的操作系‎统搞透,需要花大量‎精力和时间‎,不要怕费劲‎,他是一劳永‎逸的,之后在ar‎m a8上用l‎i nux 操‎作系统,就会非常容‎易上手,否则直接学‎l inux‎相当难啃。

移植uco‎s,添加任务,运行成功后‎,接下来学习‎文件系统移‎植,能读U盘中‎的图片,并显示到液‎晶上。

详细剖析嵌入式和单片机的区别

详细剖析嵌入式和单片机的区别

详细剖析嵌入式和单片机的区别什么是单片机首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

比如最经典的51系列单片机,外观只是一块一个拇指大小的长方体芯片,共40个引脚,里面包含了逻辑运算单元。

实际上也就是一个cpu。

在最开始接触单片机的时候,还曾经有过一个疑问,为什么单片机是黑色的而不可以是别的颜色,后来才知道是单片机材料的限制。

对单片机而言,其实一个芯片就是全部,其他的比如单片机最小系统都是为了单片机的正常运作而加入其他元件,比如晶振,5v电源,电感电阻等。

当然最小系统只能保证单片机正常运行,几乎实现不了基于单片机的任何应用。

为了使单片机实现应用,必须要加入其他外设。

比如按键,led灯,led 屏,蜂鸣器,各种sensor。

这也就是市面上很多公司都在做的单片机开发板。

总结,单片机就是完成运算、逻辑控制、通信等功能的单一模块。

也就是单片机真的姓“单”。

DSP芯片也可以认为是一个单片机。

当然它们性能很强大,但是功能依然很单一,总之就是处理数据、逻辑。

什么是嵌入式那么什么是嵌入式呢,一般说嵌入式都是指嵌入式系统,IEEE(InsTItuteof Electrical and ElectronicsEngineers,美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。

通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。

单片机与嵌入式区别-推荐下载

单片机与嵌入式区别-推荐下载

● 1.单片机与 ARM 等新处理器的价格比较 ● 2.带操作系统与不带操作系统的软件开发的区别 ● 2.1.驱动开发的区别 ● 2.2.应用程序开发的区别
1. 单片机与 ARM 等新处理器的价格比较
表1
型号 AT89S51 SST89E564RD STM32F103
HI3510
架构 8051 8051 CORTEX-M3
举个例子,要驱动一块 LCD,在单片机上的做法是:
① 首先要了解 LCD 的规格,弄清楚怎么设置各个寄存器,比如设置 LCD 的时钟、分辨率、象素 ② 划出一块内存给 LCD 使用 ③ 编写一个函数,实现在指定坐标描点。比如根据 x、y 坐标在这块内存里找到这个象素对应的小区域, 填入数据。
基于操作系统时,我们首先是找到类似的驱动,弄清楚驱动结构,找到要修改的地方进行修改。
在具体工作中,怎么选择这些芯片呢?一句话:成本!进行任何产品的开发都要考虑性价比,一切应该从 “成本”出发。成本不仅包括芯片的价格,也包括整个系统的硬件、软件设计及维护的难易。
芯片价格可以在电子市场问到,也可以在 上找到有卖这种芯片的柜台,然后 电话咨询。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

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、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机和嵌入式系统linux的区别随着嵌入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的成本等各个方面给您提供一个参考,并从技术角度分析单片机和带操作系统的系统的软件开发的异同点。

● 1.单片机与ARM等新处理器的价格比较● 2.带操作系统与不带操作系统的软件开发的区别● 2.1.驱动开发的区别● 2.2.应用程序开发的区别1. 单片机与ARM等新处理器的价格比较表1从表1里面各种芯片的资源,大概就可以猜知它们的应用场合。

51单片机通常被用来做一些比较简单的控制,比如采集信号、驱动一些开关。

AT89S51的Flash只有4K,一个稍微复杂的程序就不止4K了。

SST89E564RD是一种扩展的51单片机,它的Flash达到64KB,可以外接最多64KB的SRAM。

在SST89E564RD上的程序可以写得更复杂一些,但是它对外的接口也比较少。

CORTEX-M3系列的处理器,对外接口极其丰富,这使得它的应用面更广,但是限于它的Flash、内存还是比较小,一般不在上面运行操作系统,它算是一个性能非常突出的单片机。

HI3510 是海思半导体公司的一款用于监控设备的芯片,一般上面运行Linux 系统,通过摄像头采集数据、编码,然后通过网络传输。

另一端接收到数据之后,再解码。

在上面运行的程序非常复杂,有漂亮的图片界面、触摸屏控制、数据库等等。

对声音图像的编解码更是用到DSP核。

S3C2440 是一款通用的芯片,它与“高级单片机”STM32F103相比,多了存储控制器和NAND控制器──这使得可以外接更大的Flash、更大的内存;多了内存管理单元(MMU)──这使得它可以进行地址映身(虚拟地址、物理地址之间的映射)。

可以在S3C2440上运行Linux系统,运行更大更复杂的程序。

在具体工作中,怎么选择这些芯片呢?一句话:成本!进行任何产品的开发都要考虑性价比,一切应该从“成本”出发。

成本不仅包括芯片的价格,也包括整个系统的硬件、软件设计及维护的难易。

芯片价格可以在电子市场问到,也可以在上找到有卖这种芯片的柜台,然后电话咨询。

基于不同的应用,处理器和其他外设的选择是要统一考虑的,如果要实现一个简单的U盘读写功能,那么可以选择带USB控制器的CORTEX-M3芯片,也可以选择8051外接一个USB控制器比如SL811,就看哪种方案成本更低。

进行芯片选型时,必须基于整个系统来考虑。

员工的偏好和知识结构也是一个很重要的因素,如果他对ATMEL的芯片比较熟,他就不会倾向于三星;如果他不会Linux等操作系统,那么选型时就不会有操作系统的概念。

选择自己不熟悉的芯片和技术,最后的成本也可能更高。

2. 带操作系统与不带操作系统的软件开发的区别用通俗的话来说,一个处理芯片不运行操作系统,我们就把它称为单片机,而单片机编程就是写裸板程序,这个程序直接在板子上运行;相对的,另一种程序就是基于操作系统的程序,说得简单点就是,这种程序可以通过统一的接口调用“别人写好的代码”,在“别人的基础上”更快更方便地实现自己的功能。

2.1. 驱动开发的区别驱动开发的区别我总结有两点:能否借用、是否通用。

2.1.1 能否借用基于操作系统的软件资源非常丰富,你要写一个Linux设备驱动时,首先在网上找找,如果有直接拿来用;其次是找到类似的,在它的基础上进行修改;如果实在没有,就要研究设备手册,从零写起。

而不带操作系统的驱动开发,一开始就要深入了解设备手册,从零开始为它构造运行环境,实现各种函数以供应用程序使用。

举个例子,要驱动一块LCD,在单片机上的做法是:①首先要了解LCD的规格,弄清楚怎么设置各个寄存器,比如设置LCD的时钟、分辨率、象素②划出一块内存给LCD使用③编写一个函数,实现在指定坐标描点。

比如根据x、y坐标在这块内存里找到这个象素对应的小区域,填入数据。

基于操作系统时,我们首先是找到类似的驱动,弄清楚驱动结构,找到要修改的地方进行修改。

下面是单片机操作LCD的代码:①初始化:void Tft_Lcd_Init(int type){/** 设置LCD控制器的控制寄存器LCDCON1~5* 1. LCDCON1:* 设置VCLK的频率:VCLK(Hz) = HCLK/[(CLKVAL+1)x2]* 选择LCD类型: TFT LCD* 设置显示模式: 16BPP* 先禁止LCD信号输出* 2. LCDCON2/3/4:* 设置控制信号的时间参数* 设置分辨率,即行数及列数* 现在,可以根据公式计算出显示器的频率:* 当HCLK=100MHz时,* Rate = 1/[{(VSPW+1)+(VBPD+1)+(LIINEVAL+1)+(VFPD+1)}x * {(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)}x* {2x(CLKVAL+1)/(HCLK)}]* = 60Hz* 3. LCDCON5:* 设置显示模式为16BPP时的数据格式: 5:6:5* 设置HSYNC、VSYNC脉冲的极性(这需要参考具体LCD的接口信号): 反转* 半字(2字节)交换使能*/LCDCON1 = (CLKVAL_TFT_320240<<8) |(LCDTYPE_TFT<<5) | \(BPPMODE_16BPP<<1) |(ENVID_DISABLE<<0);LCDCON2 = (VBPD_320240<<24) |(LINEVAL_TFT_320240<<14) | \(VFPD_320240<<6) | (VSPW_320240);LCDCON3 = (HBPD_320240<<19) |(HOZVAL_TFT_320240<<8) | (HFPD_320240);LCDCON4 = HSPW_320240;// LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | \// (HWSWP<<1);LCDCON5 = (FORMAT8BPP_565<<11) |(HSYNC_INV<<9) | (VSYNC_INV<<8) | (VDEN_INV << 6) | \(HWSWP<<0);/** 设置LCD控制器的地址寄存器LCDSADDR1~3* 帧内存与视口(view point)完全吻合,* 图像数据格式如下:* |----PAGEWIDTH----|* y/x 0 1 2 239* 0 rgb rgb rgb ... rgb* 1 rgb rgb rgb ... rgb* 1. LCDSADDR1:* 设置LCDBANK、LCDBASEU* 2. LCDSADDR2:* 设置LCDBASEL: 帧缓冲区的结束地址A[21:1]* 3. LCDSADDR3:* OFFSIZE等于0,PAGEWIDTH等于(240*2/2)*/LCDSADDR1 = ((LCDBUFFER>>22)<<21) |LOWER21BITS(LCDBUFFER>>1);LCDSADDR2 = LOWER21BITS((LCDBUFFER+ \(LINEVAL_TFT_320240+1)*(HOZVAL_TFT _320240+1)*2)>>1);LCDSADDR3 = (0<<11) | (LCD_XSIZE_TFT_320240*2/2); /* 禁止临时调色板寄存器*/TPAL = 0;fb_base_addr = LCDBUFFER;bpp = 16;xsize = 320;ysize = 240;}②描点:/** 画点* 输入参数:* x、y : 象素坐标* color: 颜色值* 对于16BPP: color的格式为0xAARRGGBB (AA = 透明度), * 需要转换为5:6:5格式* 对于8BPP: color为调色板中的索引值,* 其颜色取决于调色板中的数值*/void PutPixel(UINT32 x, UINT32 y, UINT32 color){UINT8 red,green,blue;switch (bpp){case 16:{UINT16 *addr = (UINT16 *)fb_base_addr + (y * xsize + x);red = (color >> 19) & 0x1f;green = (color >> 10) & 0x3f;blue = (color >> 3) & 0x1f;color = (red << 11) | (green << 5) | blue; // 格式5:6:5*addr = (UINT16) color;break;}case 8:{UINT8 *addr = (UINT8 *)fb_base_addr + (y * xsize + x);*addr = (UINT8) color;break;}default:break;}}下面是在Linux的LCD驱动里修改的地方(arch\arm\mach-s3c2440\mach-smdk2440.c):/* 320x240 */static struct s3c2410fb_mach_info smdk2440_lcd_cfg __initdata = {.regs = {.lcdcon1 = S3C2410_LCDCON1_TFT16BPP | \S3C2410_LCDCON1_TFT | \S3C2410_LCDCON1_CLKVAL(0x04),.lcdcon2 = S3C2410_LCDCON2_VBPD(1) | \S3C2410_LCDCON2_LINEVAL(239) | \S3C2410_LCDCON2_VFPD(5) | \S3C2410_LCDCON2_VSPW(1),.lcdcon3 = S3C2410_LCDCON3_HBPD(36) | \S3C2410_LCDCON3_HOZVAL(319) | \S3C2410_LCDCON3_HFPD(19),.lcdcon4 = S3C2410_LCDCON4_MVAL(13) | \S3C2410_LCDCON4_HSPW(5),.lcdcon5 = S3C2410_LCDCON5_FRM565 |S3C2410_LCDCON5_INVVLINE |S3C2410_LCDCON5_INVV |S3C2410_LCDCON5_INVVDEN |S3C2410_LCDCON5_PWREN | S3C2410_LCDCON5_HWSWP, },.gpccon = 0xaaaa56aa,.gpccon_mask = 0xffffffff,.gpcup = 0xffffffff,.gpcup_mask = 0xffffffff,.gpdcon = 0xaaaaaaaa,.gpdcon_mask = 0xffffffff,.gpdup = 0xffffffff,.gpdup_mask = 0xffffffff,.fixed_syncs = 1,.type = S3C2410_LCDCON1_TFT,.width = 320,.height = 240,.xres = {.min = 320,.max = 320,.defval = 320,},.yres = {.max = 240,.min = 240,.defval = 240,},.bpp = {.min = 16,.max = 16,.defval = 16,},};这并不表示代码Linux的驱动程序就比单片机的驱动程序好写,怎么在几万个文件中找到要修改的代码,这也是需要艰苦的学习的。

相关文档
最新文档