单片机与嵌入式区别

合集下载

嵌入式系统的起源、分类、与通用计算机和单片机的区别

嵌入式系统的起源、分类、与通用计算机和单片机的区别

嵌入式系统的起源、分类、与通用计算机和单片机的区别一、现代计算机的技术发展史 (包括通用计算机系统与嵌入式计算机系统)1.始于微型机时代的嵌入式应用电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计算的大型昂贵设备。

直到20世纪70年代,微处理器的出现,计算机才出现了历史性的变化。

以微处理器为核心的微型计算机以其小型、价廉、高可靠性特点,迅速走出机房;基于高速数值解算能力的微型机,表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。

例如,将微型计算机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统。

这样一来,计算机便失去了原来的形态与通用的计算机功能。

为了区别于原有的通用计算机系统,把嵌入到对象体系中,实现对象体系智能化控制的计算机,称作嵌入式计算机系统。

因此,嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。

2.现代计算机技术的两大分支由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。

通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。

而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。

早期,人们勉为其难地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。

然而,对于众多的对象系统(如家用电器、仪器仪表、工控单元……),无法嵌入通用计算机系统,况且嵌入式系统与通用计算机系统的技术发展方向完全不同,因此,必须独立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。

单片机和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的驱动程序就比单片机的驱动程序好写,怎么在几万个文件中找到要修改的代码,这也是需要艰苦的学习的。

单片机原理及应用复习内容

单片机原理及应用复习内容

单片机原理及应用复习内容单片机原理及应用复习内容第1章复习内容1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。

而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。

2. AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。

3. 单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少?答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。

4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。

答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去了编程器。

在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。

5. 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”?答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。

但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。

目前“嵌入式系统”还没有一个严格和权威的定义。

目前人们所说的“嵌入式系统”,多指后者。

6. 嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何不同?答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。

嵌入式系统概述及与单片机区别说明

嵌入式系统概述及与单片机区别说明

嵌入式系统概述及与单片机区别说明嵌入式的全称是嵌入式系统,英文是Embeded system,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电器工程师协会(U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。

从这里我们可以看出两点,第一,嵌入式并不是一个通用的设备。

第二,嵌入式必须和具体的应用相结合,设计上具有针对性。

所以可以看出来嵌入式是一个系统,嵌入式是需要把这个系统嵌入到设备中去,比如手机主板上的芯片就是嵌入到手机上的一个系统,整合了电脑的主板、CPU、硬盘、内存、网卡、显卡、电源的所有功能。

也就是说嵌入式系统主要是从芯片的使用时的组织形态来命名的,更通俗的解释就是只要是被嵌入到设备中的芯片都可以叫做嵌入式系统。

嵌入式系统这个定义太广泛了,所以我们平时所讲的嵌入式更多的是从狭义上讲的,狭义上讲,嵌入式是为了区别于单片机。

我们经常把芯片中不带MMU(memory management unit)从而不支持虚拟地址,只能跑裸机或RTOS(典型如ucos、华为LiteOS、RT-Thread、freertos等)的system叫单片机(典型如STM32、NXP LPC系列、新的NXP imxRT1052系列等),而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android 这样的操作系统的system叫嵌入式。

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

嵌入式系统设计的基础知识

嵌入式系统设计的基础知识

嵌入式系统设计的基础知识嵌入式系统是指嵌入到其他设备中,完成特定功能的计算机系统。

常见的嵌入式系统包括智能手机、数字电视机顶盒、汽车电子、工业自动化等领域。

因为嵌入式系统通常空间、能耗、成本要求都非常严苛,所以它们和通用计算机相比有很多不同之处。

本文将从嵌入式系统设计的角度,介绍嵌入式系统设计的基础知识。

一、嵌入式系统的硬件设计基础知识嵌入式系统的硬件设计是指对嵌入式系统的各个硬件组成部分进行设计、选型、集成、排布的过程。

嵌入式系统的硬件设计必须考虑以下几个方面。

1.芯片选型单片机(MCU)是嵌入式系统常用的芯片,由于嵌入式系统对芯片的集成度要求很高,常用的MCU都集成了很多模拟和数字外设如模数转换器(ADC)、通用异步收发器(UART)、同步串行收发器(SPI)、I2C接口等,可以很方便地与外部设备进行通讯。

当然,其他器件如FPGA、DSP等也可以作为嵌入式系统的芯片。

2.电源选择嵌入式系统的电源选择不仅要考虑芯片的输入电压特性,还要考虑嵌入式系统的整体功耗和稳定性,特别是对于多电压需求的系统更要注意电源的设计。

3.尺寸和布局嵌入式系统的尺寸和布局既要考虑外部尺寸限制,又要考虑内部线路的布局和信号的传输特性。

因为一旦系统原型被制作出来,改动就会变得十分困难,这就要求硬件设计人员对布局的精确把握和对参数的准确计算。

4.时钟电路嵌入式系统内的各个部件需要同步,通常需要一个精确的时钟电路驱动。

在时钟电路的设计中,要考虑功耗、抗干扰性等因素。

二、嵌入式系统的软件设计基础知识嵌入式系统的软件设计是指嵌入式系统的固件设计、操作系统选择和软件架构的设计等多个方面。

在开发嵌入式系统时,软件设计是非常重要的一个环节。

1.固件设计在开发嵌入式系统时,需要编写固件程序,这是嵌入式系统的基础软件。

固件程序通常被编写在C语言或某些汇编语言中。

编写固件程序时,需要考虑程序的规模、执行速度、可维护性、代码安全性等多重因素。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机与嵌入式的区别之学习感悟

单片机与嵌入式的区别之学习感悟

单片机与嵌入式的区别之学习感悟单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。

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

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

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

实际上也就是一个cpu。

一直记得上单片机的第一节课上,老师介绍单片机时,是这样说的:单片机姓单。

为什么要强调这一点呢?方便容易分不清的童鞋,以后每次想问这个问题的时候都想想这句话。

了解的人其实很容易分开它们,实际上他们也没有什么可比性。

首先,见过单片机的人,都知道,其实单片机只是一块芯片,里面有运算器、存储器等组成的一个具有逻辑、运算、通信等功能的单元。

说的再具体点,实际一个CPU。

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

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

其次,单片机可以完成很多的任务处理,但一般都是跟一定的外围设备进行协作,比如,添加LED灯,实现交通灯系统;添加液晶屏,实现动画播放等。

(当然很多同学都已经在大学期间自己完成过一个最小系统)最后,我们来总结一下单片机,单片机是完成运算、逻辑控制、通信等功能的单一模块。

相信我的上述讲解中,大家发现到了,单片机真的就是姓单(这个字读dan)。

针对嵌入式的概念是有些模糊定义的,一般情况下指的都是嵌入式系统。

正因为这个概念有些模糊,所以会导致很多人对该概念的模糊认识。

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

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

单片机、DSP、PLC、CPLD、FPGA、嵌入式的区别

单片机、DSP、PLC、CPLD、FPGA、嵌入式的区别

81632DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理算法的执行效率。

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

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

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

同时FPGA的规模要比CPLD大得多,但CPLD应用起来相对要简单的多单片机单片机是集成了CPU ,ROM ,RAM 和I/ O 口的微型计算机。

它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU) 。

它与通用处理器不同,它是以工业测控对象、环境、接口等特点出发,向着增强控制功能,提高工业环境下的可靠性、灵活方便地构成应用计算机系统的界面接口的方向发展。

所以,单片机有着自己的特点。

品种齐全,型号多样自从INTEL 推出51 系列单片机,许多公司对它做出改进,发展成为增强型51 系列,而且新的单片机类型也不断涌现。

如MOTOROLA 和PHIL IPS 均有几十个系列,几百种产品。

CPU 从8 ,16 ,32 到64 位,多采用RISC 技术,片上I/O 非常丰富,有的单片机集成有A/ D ,“看门狗”,PWM ,显示驱动,函数发生器,键盘控制等,它们的价格也高低不等,这样极大地满足了开发者的选择自由。

低电压和低功耗随着超大规模集成电路的发展,NMOS 工艺单片机被CMOS代替,并开始向HMOS 过渡。

供电电压由5V 降到3V ,2V 甚至到1V ,工作电流由mA 降至μA ,这在便携式产品中大有用武之地。

DSP 芯片DSP 又叫数字信号处理器。

顾名思义,DSP 主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。

单片机嵌入式操作系统选择指南 适合你的系统

单片机嵌入式操作系统选择指南 适合你的系统

单片机嵌入式操作系统选择指南适合你的系统在嵌入式系统领域,单片机是一种重要的组成部分,而选择合适的操作系统对于单片机的功能和性能起着决定性的作用。

本文将介绍一些常见的单片机嵌入式操作系统,并针对不同应用场景提供一些建议,以帮助选择适合你的系统。

一、嵌入式操作系统的重要性嵌入式系统通常用于控制和管理各种设备,如智能家居、医疗设备、交通工具等。

选择合适的嵌入式操作系统可以提升系统的稳定性、安全性和性能。

以下是一些常见的嵌入式操作系统。

二、常见的嵌入式操作系统1. 实时操作系统(RTOS)实时操作系统(RTOS)是一种专门设计用于处理实时任务的操作系统。

它具有以下特点:高度可靠、响应时间短、实时性强。

常见的RTOS有嵌入式Linux、FreeRTOS、uC/OS等。

2. 裸机编程裸机编程是指直接在单片机上编写程序,不依赖于操作系统。

这种方式效率高,资源占用少,但对开发者的要求较高。

3. 嵌入式Linux嵌入式Linux是一种基于Linux内核的操作系统,具有强大的功能和广泛的应用领域。

它支持多线程、网络连接、文件系统等特性,适用于对功能要求较高的嵌入式系统。

4. uC/OSuC/OS是一种采用优先级调度算法的实时操作系统,具有较小的内存占用和快速的响应时间。

它适用于对实时性要求较高的系统,如工业自动化和航空航天。

5. FreeRTOSFreeRTOS是一种开源的实时操作系统,具有小巧、高效、可靠的特点。

它适用于资源受限、对实时性要求较高的系统,如传感器节点和嵌入式设备。

三、选择适合的操作系统在选择嵌入式操作系统时,需要考虑以下几个因素:1. 功能需求首先需要明确系统的功能需求,包括任务调度、网络连接、文件系统等。

根据需求选择适合的操作系统。

2. 系统的资源限制考虑系统的处理能力、内存大小等资源限制。

对于资源受限的系统,选择轻量级的操作系统或裸机编程可能更为合适。

3. 开发人员的经验和技术开发人员的经验和技术能力对选择操作系统也起着关键的作用。

单片机嵌入式图像处理

单片机嵌入式图像处理

单片机嵌入式图像处理在当今科技发展的时代中,嵌入式系统成为了重要的一部分。

嵌入式系统的应用领域非常广泛,其中图像处理是嵌入式系统中非常重要的一个方向。

本文将探讨单片机嵌入式图像处理的相关内容。

一、单片机嵌入式系统概述嵌入式系统是将计算能力集成到一个特定的系统中,以实现特定的功能。

单片机是一种被广泛应用于嵌入式系统中的集成电路芯片,具有体积小、功耗低、成本低等优点。

单片机嵌入式系统可以操控外部设备,实现各种功能。

二、嵌入式图像处理概述嵌入式图像处理是指利用嵌入式系统对图像进行处理和分析的过程。

在现实生活中,我们常常需要对图像进行处理,如图像采集、图像传输、图像识别等。

而单片机作为嵌入式系统的核心,可以通过编程实现对图像的处理。

三、嵌入式图像处理的应用1. 图像采集与处理:单片机可以通过外部传感器或摄像头采集图像数据,并通过图像处理算法对图像进行处理,如滤波、增强等。

2. 图像传输:通过单片机与通讯设备的结合,可以实现图像数据的传输和显示,如利用无线通信技术将图像传输到移动设备上进行显示。

3. 图像识别与分析:通过对图像进行处理和分析,可以实现图像识别和分析,如人脸识别、车牌识别等。

四、嵌入式图像处理的编程实现单片机嵌入式系统的图像处理需要通过编程实现,常用的编程语言有汇编语言、C语言等。

在编程的过程中,需要掌握基本的图像处理算法和相关的数学知识,并根据具体应用需求进行算法的优化。

五、单片机嵌入式图像处理的挑战与解决方案1. 硬件资源受限:由于单片机的硬件资源有限,可能无法满足一些复杂的图像处理需求。

解决方法可以是对算法进行优化,减少计算量,或者利用外部硬件设备进行辅助处理。

2. 实时性要求:某些嵌入式图像处理的应用需要具备实时性,即处理速度要求快。

可以通过算法的优化和硬件的加速等手段来提高实时性。

3. 低功耗要求:嵌入式系统的特点之一就是功耗低,对于一些移动设备或无源供电设备来说,功耗的控制显得尤为重要。

嵌入式系统中单片机的作用和优势

嵌入式系统中单片机的作用和优势

嵌入式系统中单片机的作用和优势在现代科技的快速发展中,嵌入式系统成为了各种电子设备中不可或缺的核心部件。

而作为嵌入式系统的核心之一,单片机在其中扮演着重要的角色。

本文将介绍单片机在嵌入式系统中的作用和优势,以及它在各个领域中的应用。

一、单片机的作用在嵌入式系统中,单片机起到了控制和处理器的作用。

它集成了CPU、内存、IO接口和时钟等各种必需的电子组件,完全可以独立运行。

单片机可以根据外部输入信号进行计算和控制,实现各种功能,如数据采集、数据处理、通信控制等。

同时,单片机可以与其他外部设备相连接,通过IO口进行数据传输和控制,实现与外界的互动。

二、单片机的优势1. 低成本:单片机具有体积小、重量轻、功耗低等优势,使得嵌入式系统的制造成本更低。

相较于传统的大型计算机或控制器,单片机在实现相同功能的情况下,占用更少的空间和资源。

2. 高集成度:单片机内部集成了多个功能模块,如CPU、存储器、IO接口等,使得电路结构简单,减少了外部器件的数量和复杂性。

同时,单片机还可以通过编程来实现不同的功能,提高了系统的灵活性和可扩展性。

3. 实时性强:嵌入式系统常常需要对外部环境进行实时监测和响应,而单片机具有较高的运算速度和响应能力,能够满足对实时性要求较高的应用场景。

例如,单片机可以实时监测温度、湿度等参数,并根据设定的条件进行相应的控制。

4. 抗干扰性好:嵌入式系统常常工作在复杂的环境中,如电磁干扰、温度变化等。

而单片机常通过硬件设计和软件算法来提高抗干扰性能,保证系统的稳定工作。

这使得嵌入式系统能够在恶劣环境下可靠地工作。

5. 易于开发和调试:单片机的开发工具和调试工具相对成熟,并且有着丰富的开发资源和社区支持。

开发人员可以通过编写程序和调试工具,快速实现系统功能,并进行相应的测试和调试,提高开发效率。

三、单片机的应用领域单片机广泛应用于各个领域的嵌入式系统中,下面列举几个常见的应用领域:1. 家电控制:单片机被广泛应用于电视机、洗衣机、冰箱等家用电器中,实现各种控制和功能,如遥控操作、温度调节等。

CPUMPUMCUSoCDSP的简单比较

CPUMPUMCUSoCDSP的简单比较

CPUMPUMCUSoCDSP的简单比较CPU与MPU在微机中,CPU被集成在一片超大规模集成电路芯片上,称为微处理器(MPU),微处理器插在主板的cpu插槽中。

MPU嵌入式微处理器是由通用计算机中的CPU演变而来的。

与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。

以上两种定义,一个是PC中的MPU、一个是嵌入式中的MPU 。

暂时来看,MPU 略等于CPU CPU与MPU、MCU、DSP、SoCCPU(Central Processing Unit)中央处理器MPU(Microl Processor Unit)微处理器MCU(Microl Control Unit)微控制器DSP(Digital Signal Processor )数字信号处理器SoC(System on Chip)系统级芯片CPU是一台计算机的运算核心和控制核心,由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。

MPU是微机中的中央处理器(CPU)称为微处理器(MPU)MCU又称单片微型计算机(Single Chip Microcomputer)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。

DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。

其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

SoC是集成规模极大(几百万到几千万个门电路)的芯片。

可以理解为MCU的进化版。

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

一单片机嵌入式系统概述

一单片机嵌入式系统概述

一、单片机嵌入式系统概述嵌入式系统一、一、嵌入式系统1、什么是嵌入式系统按计算机的非嵌入式应用和嵌入式应用将其分为通用计算机系统和嵌入式计算机系统。

PC机电梯控制柜通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现,并应用在社会的各个方面。

现在我们在办公室里、家庭中,最广泛普及使用的PC机就是通用计算机其最典型的代表。

而嵌入式计算机则是以嵌入式系统的形式隐藏在各种装置、产品和系统中的。

在许多的应用领域中,如工业控制、智能仪器仪表、家用电器、电子通信设备等电子系统和电子产品中,对计算机的应用有着不同的要求。

这些要求的主要特征为:(1)面对控制对象。

面对物理量传感器变换的信号输入;面对人机交互的操作控制;面对对象的伺服驱动和控制。

(2)嵌入到应用系统。

体积小、低功耗、价格低廉,可方便地嵌入到应用系统和电子产品中。

(3)能在工业现场环境中可靠运行。

(4)优良的控制功能。

对外部的各种模拟和数字信号能及时地捕捉,对多种不同的控制对象能灵活地进行实时控制。

我们将具备高速计算能力和海量存储,用于高速数值计算和海量数据处理的计算机称为通用计算机系统。

而将面对工控领域对象,嵌入到各种控制应用系统、各类电子系统和电子产品中,实现嵌入式应用的计算机系统称之为嵌入式计算机系统,简称嵌入式系统。

2、嵌入式系统的特点与应用(1)嵌入式系统就是指用于实现独立功能的专用计算机系统。

(2)嵌入式系统是以应用为核心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、安全性、成本、体积、重量、功耗、环境等方面有严格要求的专用计算机系统。

(3)嵌入式计算机系统在应用数量上远远超过了各种通用计算机系统。

(4)通用计算机系统和嵌入式计算机系统形成了计算机技术的两大分支。

二、嵌入式系统的种类嵌入式计算机系统的构成,根据其核心控制部分的不同可分为几种不同的类型:(1)各种类型的工控机(2)可编程逻辑控制器PLC(3)以通用微处理器或数字信号处理器构成的嵌入式系统(4)单片嵌入式系统(5)FPGA嵌入式系统以单片机作为控制核心的单片嵌入式系统大部分应用于专业性极强的工业控制系统中。

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

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

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

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

详细剖析嵌入式和单片机的区别什么是单片机首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器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试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

嵌入式系统的分类

嵌入式系统的分类

嵌入式系统的分类嵌入式系统的分类由于嵌入式系统由硬件和软件共同组成,所以分类也可以根据硬件和软件两个方面来划分。

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

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

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

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

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

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

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

● 1.单片机与ARM等新处理器的价格比较● 2.带操作系统与不带操作系统的软件开发的区别● 2.1.驱动开发的区别● 2.2.应用程序开发的区别1. 单片机与ARM等新处理器的价格比较表1型号架构资源价格(元)4AT89S518051 最高频率33MHz4KB Flash128B内部RAM32个可编程IO引脚两个16bit的计数器一个UART口35SST89E564RD8051 最高频率40MHz64KB Flash1KB内部RAM32个可编程IO引脚三个16bit的计数器一个UART口一个SPI接口21STM32F103 CORTEX-M3 最高频率72MHz64KB或128BK Flash20KB SRAM80个可编程IO引脚2个12bit的ADC7通道DMA控制器标准调试口(SWD和JTAG)7个定时器USB接口2个I2C接口3个UART2个SPI接口80HI3510ARM9+DSP双核最高工作频率240MHz视频处理单元,支持多种协议的实时编解码从表1里面各种芯片的资源,大概就可以猜知它们的应用场合。

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

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

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

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

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_IN V<<8) | \// (HWSWP<<1);LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VS YNC_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_T FT_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 * x size + 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 * xsi ze + 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的驱动程序就比单片机的驱动程序好写,怎么在几万个文件中找到要修改的代码,这也是需要艰苦的学习的。

相关文档
最新文档