打印

关于单片机与嵌入式

[复制链接]
3994|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdc0124|  楼主 | 2014-9-1 17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zdc0124|  楼主 | 2014-9-2 11:26 | 只看该作者
是我分不够还是说的不够明白?

使用特权

评论回复
板凳
chen_jhhb| | 2014-9-2 12:35 | 只看该作者
这个问题有点不好回答。单片机可以是嵌入式的,嵌入式不一定都是单片机,ARM,X86等等都可以

使用特权

评论回复
地板
feilusia| | 2014-9-2 13:26 | 只看该作者
广义地说单片机就是嵌入式中的一种。
嵌入式系统一般是指上大型系统(比如安卓、linux)的电子设备。
单片机系统一般是指上小型系统(比如ucos、rt-thread)或者裸机的电子设备。

公司一般都是要既能简单移植,又能做应用的,重点是在应用,而做应用是计算机专业的强项。
你很难找到一个专门做驱动的工作,公司都是要有实际项目经验的。
所以我不建议你在家自学,我建议你去培训。
其实我就是在家自学后出来找嵌入式工作碰壁的··

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zdc0124 + 3 感谢
5
zdc0124|  楼主 | 2014-9-3 10:27 | 只看该作者
feilusia 发表于 2014-9-2 13:26
广义地说单片机就是嵌入式中的一种。
嵌入式系统一般是指上大型系统(比如安卓、linux)的电子设备。
单片 ...

不知道学完单片机对嵌入式有没有帮助,如果想学嵌入式要去培训机构吗

使用特权

评论回复
6
xunchangreng| | 2014-9-3 10:46 | 只看该作者
本帖最后由 xunchangreng 于 2014-9-4 17:52 编辑

有的单片机可以跑操作系统,所以可以算嵌入式系统的一部分
常用来做嵌入式设计的32位ARM内核的芯片,也可以当成单片机使用,只不过这样一来是牛刀当成菜刀使用



常见的ARM嵌入式学习问答,设计者和学习者最关心的11个问题:
1.          ARM嵌入式是学习硬件好还是学习软件好?
2.          嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要?
3.        学完51单片机后,想买ARM开发板继续学习,是买ARM7还是ARM9?
4.        到底是学习哪种内核:ARM7、CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8还是CORTEX-A9?
5.        目前ARM的内核众多,应该如何选择芯片型号?
6.        学习ARM主要学习啥?
7.        是先学习基于操作系统的应用层程序的编程,还是先学习基于操作系统的驱动程序的编程?
8.       为何要学习linux,而不是其他的嵌入式操作系统?
9.        一定要学习GUI界面设计吗?
10.        买哪种ARM开发板?
11.        电磁兼容号称黑色艺术,请问如何学习硬件设计中的电磁兼容设计?


1.          ARM嵌入式是学习硬件好还是学习软件好?
      答:
         学习硬件好还是软件好,如果你能精通其中的任何一个,都好!
       学硬件,绝大多数人大学毕业后都可以做硬件设计,这时候大家是一个差不多的水平线上,所以感觉上好像没有门槛!但是电子产品设计的难点是稳定性,尤其是电 磁兼容性的设计。N年之后,也许三年,也许五年,也许八年,总之年数不等,这时候水平上就有了高低之分:有些人设计出来的电子产品就是不怎么出问题,有些 人设计出来的电子产品就是一直有问题。硬件的设计,是设计经验和理论再学习的结合:电磁场与电磁波、微波与天线、高速信号处理、信号完整性、PCB布线的 实际措施、系统电磁兼容的处理措施、电路调试的能力与解决电路故障的能力,等等,
    学软件,很多人大学毕业后都无法从事这个设计工作,因为大家在学校的努力程度不同,很多人实际上还没有进入编程的门槛内。但是进入门槛后,绝大多数人的水平 会处于差不多相同的水平线上,极个别的水平高一些,体现在程序的稳定性和程序运行效率上。软件的设计,主要体现在这两点
    单片机的硬件和软件,因为主频太低,很少出现稳定性的问题,软件的工作量也小,很多单位的软硬件都是一个人做。但是到了主频很高的32位微处理器后,硬件的稳定性特别容易出问题,功能复杂度增大,硬件设计的难度增加了,软件编程的工作量加大了,所以多数公司的软件和硬件开始有多人分开设计。树叶有专攻!大树叶负责系统设 计,各种小树叶有的做硬件设计,有的做软件编程。宗旨就是发挥各自的强项!完成最后的系统功能设计
   另外一个需要强调的是,学习硬件还是软件,还要看个人对硬件感兴趣,还是对软件感兴趣?

2.          嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要?
       答:
     刚进入职场时,一般来说嵌入式软件的待遇会稍高一些。因为之前说了,很多人没有进入软件设计的门槛内。但是软件毕竟是青春性的职业,随着年龄的增加和设计经验、设计能力的增加,硬件设计的待遇水涨船高,慢慢会与软件职位的待遇相同甚至高于软件的职位。
     至于谁更重要,硬件相当于躯体,软件相当于血液,缺一不可,没有谁更重要的说法。如果从产品的角度看,硬件更重要一些。因为在产品中出了问题,硬件的稳定性问题基本上只有找高手重新设计,如果是电路原理上的问题还可以直接增加或者减少元件来解决。软件上不稳定问题基本上可以通过修改程序设计并重新下载程序到芯片中来解决。如果从设计的角度看,系统设计更重要,因为系统设计要求懂一些软件的基本设计,更要对硬件设计有相当的造诣,这样他才能把握住系统设计的要求,正确提出设计方案。

3.        学完51单片机后,想买ARM开发板继续学习,是买ARM7还是ARM9?
      答:
        如果你对单片机动手编程能力比较强,建议直接买ARM9的板子,跑linux系统的,学习嵌入式linux软件编程,
       如果你的单片机动手编程能力比较一般,建议先购买CORTEX-M3的开发板,先学习32位ARM的编程(支持轻量级的操作系统,比如UCOS),锻炼实际的动手编程能力。有了一定的编程能力后,再买ARM9的板子,跑linux系统的,学习嵌入式linux软件编程。
       总之就是多动手,遇到问题多了慢慢积累起来,就能够融会贯通了!

4.        到底是学习哪种内核:ARM7、CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A5、CORTEX-A、CORTEX-A8还是CORTEX-A9?
      答:
        如果是学习硬件设计,CORTEX-M0、CORTEX-M0+、CORTEX-M3、CORTEX-M4内核的芯片,主频较低,信号完整性和电磁兼容的要求不高,硬件设计相对来说简单一些; ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9内核的芯片,主频高,对信号完整性和电磁兼容的要求也高,硬件设计相对来说复杂得多。
        如果是学习嵌入式软件应用编程设计,ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9内核都差不多,因为应用软件编程基本上脱离开底层硬件的。
        首先说明基于ARM7内核的芯片现在已经很少了,大部分公司都陆续停产了。而且价格没有优势,主频也不高,只能跑UCOS或者Uclinux系统。所以不建议花大量的时间去玩这种ARM7内核的芯片
        CORTEX-M3内核的芯片是目前用量比较大的32位ARM芯片,主频约70MHz到120MHz之间,比如STM32F103、LPC1768等型号。CORTEX-M4内核的芯片支持DSP指令功能,主频100MHz到200MHz之间,比如STM32F4等型号。这两种内核的芯片可以基于库函数进行编写程序,或者基于寄存器直接编写程序,可以跑轻量级的操作系统,比如UCOS等。此类芯片只适合设计不太复杂的产品,对网络协议有一定要求的产品不建议使用该芯片。
      ARM9内核的芯片,是目前市场上运行嵌入式操作系统(linux、wince)主流的32位ARM芯片,主频约180MHz到500MHz之间。
      CORTEX-A8和CORTEX-A9内核的芯片,可以运行多种嵌入式操作系统(linux、wince、android)。Cortex-A8处理器的速率可以在600MHz到超过1GHz的范围内调节,能够满足那些需要工作在300mW以下的功耗优化的移动设备的要求。Cortex-A9处理器的速率可以到1GHz以上,支持多核。
     如果是初学者,学习库函数编程的或者寄存器编程的,建议学习基于CORTEX-M3内核的芯片的开发;如果是学习linux的嵌入式软件编程,建议学习基于ARM9内核的芯片的开发板;如果是学习Android的嵌入式软件编程,建议学习基于CORTEX-A8和CORTEX-A9内核的芯片的开发板;

5.        目前ARM的内核众多,应该如何选择芯片型号?
答:
  CORTEX-M0+、CORTEX-M0内核芯片,主频低,主要面向代替8位单片机编程的低端产品,比如家电、小家电等
CORTEX-M3内核芯片,主频约50-120MHz左右,性价比高,适合不需要大型操作系统的产品设计,比如电机控制、音频处理、工业控制等。
CORTEX-M4内核的芯片,主频约80-180MHz左右,比M3内核多了DSP浮点处理能力,Cortex-M4内核芯片的DSP性能比16位DSP芯片要好,但不及32位DSP芯片。Cortex-M4微控制器的目标应用包括复杂的电机控制、汽车电子、嵌入式音频以及工业自动化。

  ARM9内核的芯片,主频约140-500MHz,支持运行linux、wince操作系统,支持一定的图形界面处理,适合网络传输、视频处理、工业控制等产品的设计

CORTEX-A5内核的芯片,主频约500MHz-800MHz,8级整数流水线,低功耗,可以运行linux、android、wince嵌入式操作系统。CORTEX-A5双核的性能相当于CORTEX-A7单核的性能,主要面向入门级智能手机、低成本智能移动终端、工业设备等。

CORTEX-A7内核的芯片,支持多核,支持图形处理,主频约800MHzHz-1.2GHz ,13级整数流水线,可以运行linux、android、wince嵌入式操作系统,低功耗,主要面向智能手机等对功耗要求苛刻的产品

CORTEX-A8内核的芯片,单核,主频约600MHzHz-1GHz ,13级整数流水线,可以运行linux、android、wince嵌入式操作系统,主要面向电力系统、数控行业、汽车电子、机器人视觉、媒体处理无线应用、数字家电、车载设备、通信设备、网络终端等产品

CORTEX-A9内核的芯片,有单核、双核、四核,支持图形处理,主频约1GHz-2GHz ,8级整数流水线,可以运行linux、android、wince嵌入式操作系统,CORTEX-A9双核的性能相当于CORTEX-A7四核的性能,主要面向智能手机、上网本、电子阅读器,数字电视、高清播放机等产品

CORTEX-A15内核的芯片,支持多核,支持图形处理,主频约1.5GHz-2.5GHz ,可以运行linux、android、wince嵌入式操作系统,主要面向智能手机、平板电脑、移动计算、高端数字家电、服务器等产品

  ST公司:基于CORTEX-M0内核的芯片STM32F0系列、基于CORTEX-M3内核的芯片STM32F1系列、基于CORTEX-M4内核的芯片STM32F4系列,是目前最流行的CORTEX-M系列内核的芯片。

  NXP公司:基于CORTEX-M3内核的芯片LPC1768、LPC1788、基于CORTEX-M0+内核的芯片LPC800系列,ARM9内核的芯片LPC3250,在设计中的认可率都比较高。

     ATMEL公司:多年采用ARM内核技术, ARM9内核的芯片做了很多年才开始升级更高的内核,旨在打造稳定的工业级芯片,不追求主频上的卓越,但求性能更加的可靠的工业级芯片。能克服各种恶劣的环境,及各种干扰,功耗低,让工业控制能更加稳定有条不紊的进行。现在的ARM9内核芯片有AT91SAM9260、AT91SAM9263、AT91SAM9G45,CORTEX-A5内核芯片SAM5D3X等

     Freescale公司:该公司的芯片稳定性也极高,多用于工业控制和汽车电子等。CORTEX-M3内核的芯片K系列,ARM9系列的芯片IMX.28,CORTEX-A8内核芯片I.MX53系列、CORTEX-A9内核芯片I.MX6系列等

       德州仪器TI: 一直致力于研究处理速度更快,功能更加强大的芯片。更是采用ARM最新技术Cortex A8来提升芯片的性能。使得一些芯片的处理速度与X86架构的MCU不分伯仲。但是最近OMAP系列芯片据说被裁了,可能会退出市场。这让选择TI芯片的人心里有点害怕!而且,TI的芯片更新速度太快,让选择他们芯片的厂家也无所适从。现在的CORTEX-A8内核芯片有AM3358、AM3359等。

        SAMSUNG半导体: SAMSUNG生产ARM内核芯片的超高性价比是无人能敌的。正因为这点, 其芯片也得到很多厂家的亲睐。例如S3C2440性价比极高,一般消费电子产品中应用较多,不适于在严苛的工控环境中使用。现在的ARM9内核芯片有S3C2440、CORTEX-A8内核芯片S5PV210、CORTEX-A9内核芯片Exynos-4412等。

      另外国内比较热一些的CORTEX-A内核的芯片厂家如下:瑞芯微的CORTEX-A9内核芯片RK3066、RK3188;全志的CORTEX-A7内核芯片A31、A31S;晶晨的CORTEX-A9内核芯片GM8126-MX、S802;

     最近老是看到不少个人和厂家宣传:使用三星的2440或者三星公司的其他型号设计为工控产品,而且我听到不少厂家说芯片的工作温度都做过老化试验,低温可以到零下40度。这个低温的实验条件只是工业级的一个强制性温度试验条件,并不是在这个低温下正常工作就是工控级芯片。工控级的应用真正难以实现的是在各种恶劣电磁环境下的稳定工作,稳定性是工控级应用的第一要素,这也就是为何ATMEL的芯片很多型号一卖就是十几年,他们的芯片做的就是稳定。比如AT91RM9200、AT91SAM9260、AT91SAM9G45等.

6.        学习ARM主要学习啥?
答:
   在硬件上主要学习ARM内核芯片的电路设计及其附加外围电路(USB、SDIO、CAN、485、SPI、PCI等)设计以及高速数字信号处理、信号完整性设计、电磁兼容设计,说白了就是学习如何设计出高稳定的ARM系统电路。ARM内核(CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8、CORTEX-A9等)的芯片,主频越来越高,实现稳定性的设计难度越来越大。
     软件上主要学学习基于操作系统的应用层程序的编程和基于操作系统的驱动程序编程或者基于库函数的裸机程序编程等等。CORTEX-M0+、CORTEX-M0、CORTEX-M3、CORTEX-M4内核的芯片,可以运行裸机程序或者轻量级的UCOS系统,软件上主要学习裸机程序的编程或者轻量级操作系统的编程; ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9内核的芯片,可以运行linux操作系统、android操作系统、wince操作系统等,学习基于嵌入式操作系统的应用程序编程 和 驱动编程


常见的嵌入式学习和ARM芯片选型,请下载:
常见的嵌入式linux学习和如何选择ARM芯片问答.pdf (227.26 KB)

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zdc0124 + 3 非常感谢
7
feilusia| | 2014-9-3 10:47 | 只看该作者
zdc0124 发表于 2014-9-3 10:27
不知道学完单片机对嵌入式有没有帮助,如果想学嵌入式要去培训机构吗

有帮助,但是帮助不大。
你自己去看看培训机构的课程就知道单片机做的内容占多少比例了。
不是说自学理论知识难度有多大,而是手头没有项目可以做,没办法自学达到企业要求。
很多公司一般也就招一两个有经验的嵌入式工程师,然后招一堆单片机。
面试的时候就又会给你单片机岗位,给你画个大饼说会给你机会接触嵌入式。
即使你说不要工资白干,人家也会有个技术保密的考虑。

只有大公司才会招一堆驱动工程师去搞驱动,否则一般的公司只需要简单移植,然后重点工作都在应用。
到时候你就会发现自己的单片机可能白学了。
去培训有项目做,找到嵌入式工作的机会更大。所以我建议要么去培训,要么继续做你的单片机。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zdc0124 + 3 感谢
8
zdc0124|  楼主 | 2014-9-3 11:13 | 只看该作者
feilusia 发表于 2014-9-3 10:47
有帮助,但是帮助不大。
你自己去看看培训机构的课程就知道单片机做的内容占多少比例了。
不是说自学理论 ...

谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

64

帖子

0

粉丝