当前位置:文档之家› 硬件开发工程师入门宝典

硬件开发工程师入门宝典

硬件开发工程师入门宝典
硬件开发工程师入门宝典

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html,

ARM嵌入式系统开发综述ARM开发工程师入门宝典

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 前言

嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。

嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM嵌入式系统开发流程。

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html,

目录

前言 (2)

1 嵌入式开发平台 (4)

1.1 ARM的开发平台: (4)

1.2 器件选型 (7)

2 工具选择 (11)

3 编译和连接 (13)

3.1 RVCT的优化级别与优化方向 (16)

3.2 Multifile compilation (21)

3.3调试 (22)

4 操作系统 (23)

4.1 哪里可以得到os 软件包 (Open Source and Linux

Kernel) (25)

4.2 安装镜像 (26)

4.3 交叉编译 (26)

总结 (27)

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 1 嵌入式开发平台

通常嵌入式开发的平台主要包括基于SoC或MCU开发板,板上提供常用的外设、接口和其他功能模块,开发者一般根据自己的应用需要选择适合自己板级开发平台。在这样的平台上开发者可以进行硬件的扩展,操作系统移植和应用软件的开发、调试及固化,并最终形成自己的产品推向市场。但是基于该平台的软件开发工作往往需要等到硬件平台完成后才能开展,这显然不利于缩短TTM (Time to Market),同时调试的过程也是需要反复迭代和修改设计的过程,因此硬件方案的变动在所难免。因此在系统方案没有最终定型前,急于搭建硬件平台不仅费时费力,而且也会造成系统开发成本的提高。因此在进行方案设计的时候,利用CPU或者其他外设的模型进行早期的评估是非常必要的。

1.1 ARM的开发平台:

! ARMulator仿真平台

这是一套最基础的ARM指令集仿真器,内嵌于ADS和RVDS中,是每一位ARM 开发者的很好的起点。ARMulator可以模拟执行开发人员编写的C或汇编程序,支持源代码调试,帮助开发者确定代码编写的正确性。另一方面,ARMulator 还能大致统计出,诸如:代码执行周期数,Cache命中率,存储器访问等利于我们优化代码的信息。但ARMulator是基于CPU的模拟,缺点在于比较难于模拟整个芯片系统的行为。

! RealView Integrator-CP平台

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, https://www.doczj.com/doc/87140463.html,/products/DevTools/IntegratorFamily.html

RealView Integrator-CP平台(RealView Integrator Compact Platform)可以整合Core Module。Core Module FPGA 还整合了ARM PrimeCell 系列周边器件和内存控制器,包括LCD,MMC卡,音频解码,以及客户自己开发AHB接口器件。

! Versatile PB/AB平台

https://www.doczj.com/doc/87140463.html,/products/DevTools/VersatileFamily.html

Versatile Platform Baseboard(Versatile PB)是一个可以开发软硬件的PCB平台,可以用LogicTile,AnalyzerTile进行扩展,用来连接用户开发的器件,逻辑分析仪等。而Versatile Application Baseboard(Versatile AB)主要区别是硬件扩展功能有限,因而主要用来进行软件应用开发。

! Emulation Baseboard(EB)

https://www.doczj.com/doc/87140463.html,/products/DevTools/EB.html

EB平台有一块相对大的FPGA(Xilinx Virtex2 XC2V6000)可以放下用户设计的周边器件,EB可以通过CoreTile 和LogicTile进行扩展,使用户做原型验证更加方便。

! ESL虚拟平台

https://www.doczj.com/doc/87140463.html,/products/DevTools/RealViewCREATE_Family.html ARM ESL虚拟平台利用SystemC模型构建整个SoC系统,可以基于两种模型构建:时钟精确型(CA)和时钟近似型(CX),CA模型提供了和实际硬件时钟节拍一直的精确度,利用ESL SoC Designer工具在ESL CA模型构建虚拟

获取更多权威电子书 请登录https://www.doczj.com/doc/87140463.html,

仿真平台上,SoC 硬件工程师利用ESL 工具提供的强大的诸如Core 运行状态监视、Bus Profiling 、Cache 工作状态和Memory Mapping 等可视化插件对系统性能观测和分析,定位系统性能的瓶颈,实现硬件的性能优化和功能划分。

此外,对于嵌入式软件开发工程师而言,ESL 虚拟平台带来的最大好处是让软件开发在更早的阶段开展,而不必等到在硬件平台上进行此工作。这样以来软硬件开发工作可以并行提高,缩短产品上市时间,软硬件的协同开发还可以尽早发现系统bug ,降低开发风险和成本。同时该虚拟平台还提供了ARM 软件开发调试工具接口同步进行软件调试,在ESL 虚拟平台上实现软硬件的协同仿真,可以实现优化软件的目的。

从图1看,传统流程中容易引起反复的环节,而对引入ESL 的开发流程,可将诸如驱动开发调试等,提前放置到虚拟开发平台上进行,实现系统设计的优化、

缩短开发周期等。而且仿真环境所能提供的调试手段,是FPGA 平台所无法比拟的。

图1 传统和引入ESL 工具的SoC 开发流程

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, ! RTSM

https://www.doczj.com/doc/87140463.html,/products/DevTools/RealTimeSystemModel1176.html RTSM(实时系统模型)是对整个芯片系统在指令集层面上的仿真,它能提供快速、准确的指令仿真,以及与RealView Debugger的无缝连接。大型应用程序的开发可以使用 RTSM模拟技术来完成。 RTSM模拟包括LCD显示器、键盘和鼠标等外设的仿真。不到5s,就可以利用PC在ARM处理器上对OS的启动过程进行模拟,用户可以在ARM提供的RTSM上进行快速的软件仿真。这是OEM在开发软件系统时成本最低的方法。想象一下,芯片公司不用等到芯片生产出来,也不用把缓慢的FPGA板交给方案厂商或OEM;只需要将整个芯片的模型交付,下游厂家就可以尽早尽快地将软件方案开发完毕。最终产品几乎可以从芯片生产出来就准备上市。

1.2 器件选型

器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。ARM处理器是最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。而且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。从图2

给出了常见的ARM处理器的架构和支持的操作系统。目前在业内广为人知的ARM处理器主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必要了解一下最新的ARM11和ARM Cotex系列处理器。

获取更多权威电子书 请登录

https://www.doczj.com/doc/87140463.html,

图2 ARM 体系结构

ARM7系列

ARM7TDMI 是ARM7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb 指令集和EmbeddedICE 观察点硬件。ARM7TDMI 属于ARM v4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz 性能。不过ARM7TDMI 没有MMU (Memory Management Unit )和Cache ,所以仅支持那些不需要MMU 和Cahce 的小型实时操作系统,如VxWorks 、uC/OS-II 和uLinux 等RTOS 。其他的ARM7系列内核还有ARM720T 和ARM7E-S 等。

ARM9系列

ARM9TDMI 相比ARM7TDMI ,将流水级数提高到5级从而增加了处理器的

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能,平均可达1.1DMIPs/Mhz,但是ARM9TDMI仍属于ARM v4T体系结构。在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T 增加了MPU(Memory Protect Unit)和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9(方便进行CPU实时trace),从而更好的支持象Linux 和WinCE这样的多线程、多任务操作系统。

ARM9E系列

ARM9E系列属于ARM v5TE,在ARM9TDMI的基础上增加了DSP扩展指令,是可综合内核,主要有ARM968E-S、ARM966E-S、ARM946E-S和

ARM926EJ-S(v5TEJ指令体系,增加了Java指令扩展),其中ARM926EJ-S 是最具代表性的。通过DSP和Java的指令扩展,可获得70%的DSP处理能力和8x的Java处理性能提升。另外分开的指令和数据Cache结构进一步提升了软件性能;指令和数据TCM(Tightly Couple Memory:紧耦合存储器)接口支持零等待访问存储器;双AMBA AHB总线接口等。ARM926EJ-S可达250Mhz 以上的处理速度,很好地支持Symbian OS、Linux、Windows CE和Palm OS 等主流操作系统。

ARM11系列

ARM11系列主要有ARM1136、ARM1156、ARM1176和ARM11 MP-Core 等,它们都是v6体系结构,相比v5系列增加了SIMD多媒体指令,获得1.75x 多媒体处理能力的提升。另外,除了ARM1136外,其他的处理器都支持AMBA 3.0-AXI总线。ARM11系列内核最高的处理速度可达500Mhz以上(其中90nm

获取更多权威电子书 请登录https://www.doczj.com/doc/87140463.html,

工艺下,ARM1176可达

到750Mhz )以及600DMIPS 的性能,请参考和图3相关描述。

图3 ARM11系列内核

基于ARMv6架构的ARM11系列处理器是根据下一代的消费类电子、无线设备、网络应用和汽车电子产品等需求而制定的。其的媒体处理能力和低功耗特点使它特别适合于无线和消费类电子产品;其高数据吞吐量和高性能的结合非常适合网络处理应用;另外,在实时性能和浮点处理等方面ARM11可以满足汽车电子应用的需求。

ARM Cotex 系列

Cortex 系列是ARM 公司目前最新内核系列,属于v7架构,主要有

Cortex-A8、Cortex-R4、Cortex-M3和Cortex-M1等处理器,其中A8是面向高性能的应用处理器,最高可达1Ghz 的处理速度,更好的支持多媒体及其他高性能要求,最高可达2000DMIPS ;R4主要面向嵌入式实时应用领域(Real-Time ),7级流水结构,相对于上代ARM1156内核,R4在性能、功耗和面积(PPA :Performance ,Power and Area )取得更好的平衡,>1.5DMIPS/Mhz 和高于400Mhz 的处理速度。而M3主要是面向低成本和高性能的MCU 应用领域,相比ARM7TDMI ,M3面积更小,功耗更低,性能更高。Cortex-M3处理器的核心

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 是基于哈佛架构的3级流水线内核,该内核集成了分支预测,单周期乘法,硬件除法等众多功能强大的特性,使其在Dhrystone benchmark上具有出色的表现(1.25 DMIPS/MHz)。根据Dhrystone benchmark的测评结果,采用新的Thumb?-2指令集架构的Cortex-M3处理器,与执行Thumb指令的

ARM7TDMI-S?处理器相比,每兆赫的效率提高了70%,与执行ARM指令的ARM7TDMI-S处理器相比,效率提高了35%。

目前已经有Cortex系列内嵌的产品问世,如TI公司推出的基于Cortex-A8内核的OMAP3430,TI、ST和Luminary也推出了基于Cortex-M3内核的低成本高性能32位MCU,更多详情请登陆这些公司的主页查询。

2 工具选择

根据开发目标平台的不同,ARM提供不同的工具解决方案。

MDK-ARM

RealView Microcontroller Development Kit(MDK) 支持基于ARM7,

ARM9,Cortex-M3微控制处理器,例如Atmel,Freescale,Luminary,NXP,OKI,Samsung,Sharp,ST,TI等厂家的产品。MDK提供工业标准的编译工具和强大的调试支持。MDK是专为MCU的用户开发嵌入式软件而设计的一套开发工具。包括根据器件定制的调试仿真支持,丰富的项目模版,固件示例以及为内存优化的RTOS库。MDK上手容易,功能强大,适合微控制器应用程序开发。

RVDS

获取更多权威电子书 请登录https://www.doczj.com/doc/87140463.html,

正如前面所介绍RVDS 是专为SOC ,FPGA 以及ASIC 用户开发复杂嵌入式应用程序或者和操作系统平台组件接口而设计的开发工具。RVDS 支持器件设计,支持多核调试,支持基于所有ARM

和Cortex 系列CPU 的程序开发。RVDS 还可以和第三方软件进行很好的连接。

图4 RVDS 和RV-MDK

如上图表示:MDK 主要是为终端客户提供价格低廉,功能强大的开发工具。集成了RealView 编译工具,Keil uVision 开发环境,支持基于

ARM7,ARM9,Cortex-M1,Cortex-M3产品的仿真,提供非常高效的RTOS

Kernel ,除此,提供的Real-Time 库还有TCP/IP 网络套件,Flash 文件系统,USB 器件接口,CAN 总线接口等,方便终端用户进行应用开发。因此对于MDK 用户来说,他们得到的就是可以对MCU 进行仿真和调试,容易使用又没有冗余的功能,关键是价格实惠,而且用户可以先试用再购买。

对于芯片设计公司以及相关解决方案提供商来说,需要的是更加强大的工具,可以进行多核调试,需要更加先进的调试和分析功能,可以支持多种操作系

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 统,可以进行IP整合开发,可以结合ESL工具进行架构评估,系统软硬件划分等,那么选择RVDS可以提供完整解决方案。

3 编译和连接

ARM RealView 编译工具已经发展了16年,一直致力于为客户提供最好的编译器。RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具,目前最高版本是3.1。它由RealView编译器(RVCT)、RealView汇编器(armasm)、RealView连接器(armlinker),以及RealView调试器(RVDebugger)三部分组成。

RVDS对代码密度的提升、代码执行速度的提高,都可以由ARM开发工具自动实现,而不需要软件开发人员花费过多的时间手动优化高级语言代码。这是RVDS的优势所在。

先前版本中的编译器armcc,tcc,armcpp,tcpp 已经整合成一个编译器armcc,可以将标准的C或C++语言源程序编译成32位ARM指令代码或者16位Thumb指令代码或者Thumb-2指令代码。

编译器输出的ELF格式的目标文件,包含调试信息。除此之外,编译器可以输出所生成的汇编语言列表文件。

RVDS的编译器根据最新的ARM架构进行特别的优化,针对每个ARM架构都提供最好的代码执行性能,最优的代码密度。可以根据需要选择调试信息级别,以及不同的代码优化方向和优化级别。

RVCT中C和RogueWaveC++库包括

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, ! 完整ISO标准C语言库

标准C语言函数集,C语言库需要的支持函数以及在Semihosted执行环境中需要的目标相关的函数。

C语言库结构使用户很容易定义目标相关函数,以适应特定的目标环 ARM

境。

! 浮点函数库使用ARM在IEEE754标准(二进制浮点算法)上实现的浮点环境。

! RogueWaveC++库

RogueWaveC++库包含标准C++函数,编译器需要的支持函数。

各种源文件经过ARM编译器编译后生成ELF格式的目标文件。这些目标文件和相应的C/C++运行时库经过ARM连接器处理后,生成ELF格式映像文件。 ARM连接器可以去除使用不到的代码段和函数,这样可以减少内存的使用。 ARM连接器可以将不同的指令代码和数据代码放置到不同的内存地址范围。(https://www.doczj.com/doc/87140463.html,/support/faqdev/1245.html)

通常在嵌入式系统中,指令和数据代码会固化在非易失性存储器中(ROM 或Flash),可以从这些地方上电启动。从运行速度方面考虑,部分指令和数据代码会在启动后搬运到易失性存储器(RAM)中,因此连接器可以使用一些方法机制来配置调度。

这种分散装载(scatterloading)的机制可以让把不同的指令和数据分散的放到不同的地址,而且这些地址在系统启动和系统运行可以是不同的映射。

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 详细的地址分配可以是用参数来指定,或者用一个描述文件来作为连接器的参数。使用描述文件会使维护起来非常简单,而且如果要改变地址分配,不需要把整个项目完全重新来做,只要把项目中需要的目标重新连接即可。

一个scatterloading文件的示例:

LOAD_FLASH 0x04000000 0x80000 ; 启动地址和长度

{

EXE_FLASH 0x04000000 0x80000

{

init.o (Init, +First) ;

* (+RO) ;

}

32bitRAM 0x0000 0x2000

{

vectors.o (Vect, +First) ;

int_handler.o (+RO)

}

16bitRAM 0x2000 0x80000

{

* (+RW,+ZI) ;

}

}

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, ! 本文件定义了启动区域和三个执行区域。在大括号外面定义了启动区域(LOAD_FLASH),里面三个定义了执行区域

(EXEC_FLASH,32bitRAM,16bitRAM)。

! 为了提高运行速度,异常向量(在vectors.s)和异常句柄(在int_handler.c)被重新放置到32bitRAM的零地址开始的地方。

! 可以读写的变量被复制到16bitRAM的0x2000地址开始的地方。

! 零初始化的数据和可读写数据放在16bitRAM内。

! 其他不需要搬运的代码只需要还放在Flash里就好。

3.1 RVCT的优化级别与优化方向

提到RVCT就不能不提armcc的四个优化级别和两个编译选项,-O1、-O2、-O3、-O4,以及-Otime、-Ospace。

-Ospace与-Otime负责给编译器提供代码优化的大方向,告知编译器编译任务的主要目标是代码密度(-Ospace)还是代码性能(-Otime)。而-O1、-O2、-O3、-O4则分别代表4种逐次递进的不同优化级别。

OSpace 还是OTime?

显然代码密度与代码执行速度在很多情况下是一对矛盾。以下面的代码为例。例1中左右两段代码可以完成相同的任务,但是左边的有较高的代码密度,右边的则有较高的执行速度。因为当expr = 0时,标志循环结束时,右边的代码可以顺序执行下去;而左边代码必须先跳转至循环体首部判断expr的值,随

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 后再跳转道循环体尾,继续执行下一条指令。

例1代码速度与尺寸的对比

do

(expr)

while

(expr) if

{ { do

}

body;

body; {

while (expr);

} }

那么我们什么时候使用Otime 什么时候使用Ospace呢?Otime与Ospace 需要开发人员根据系统实际需求来决定,最好的情况是在两者之间找到一个合适的平衡点,而不是单纯的追求速度或者代码尺寸的缩小。即,将不同的代码模块根据其特性分别使用不同的编译选项。

此外,RVCT编译器支持很多非常有用的编译选项,如--no_inline(取消所有代码的内联函数)、--split_ldm(限制LDM/STM指令的最大操作寄存器数目)、--split_sections(将每个函数,而不是源文件,作为一个编译单元进行操作)等等。

编译器的所有这一切都可以严格根据开发者的要求,帮助开发人员得到系统真正需要的优化过了的代码。

O3还是O2?

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 老的开发工具,如ADS1.2中,只有3种递进的代码优化级别,对应3种编译选项,即-O0(Minimum optimization)、-O1(Restricted optimization)、-O2(High optimization )。

使用-O0编译选项时,RVCT编译器只对代码作最基本的优化操作,编译结束后用户得到的代码与用户手写源代码之间的差距很小,这种特性的主要作用是为了方便用户在程序开发阶段的调试工作,避免由于优化而产生的调试屏障。此外,很多资深软件工程师偏向于手写优化代码,在这种情况下,由于代码已经被优化过,可以使用-O0编译选项减少RVCT的工作量,节省编译链接的时间。

-O1与-O2则分别是相对于-O0更加高级别的编译优化选项,前者提供有限的优化;后者则会对代码进行较大程度的优化改进操作。

RVDS中新增加了-O3(Maximum optimization)编译选项,它可以最大程度的发挥RVCT编译器的优势,将代码编译成最优。O3与O2都是较高级别的编译优化选项,但-O3相比较于-O2,主要优势有以下几点。当用户使用-O3选项时:

――编译器会自动对代码进行髙阶标量优化。所谓的高阶标量优化就是编译器对根据代码特点,针对循环、指针等进行髙阶优化。

――编译器会把尽可能多函数的编译为内联(inline)函数;

――Multifile compilation功能被自动使能。

对于循环与指针的髙阶优化(High-level scalar optimizations)

当编译选项为-O3 –Otime时,RVCT会根据代码的具体情况,针对循环、

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, 指针等部分作髙阶优化工作:循环解开(Loop unrolling)、融合(fusion)、位置调整(interchange)、指针优化等等。以例2的函数为例。例2是一段简单的C 循环函数,在循环中含有数组指针调用。

例2

CodeA

void increment(int *restrict b, int *restrict c)

{ int i;

for (i = 0; i < 100; i++)

{

c[i] = b[i] + 1;

}

}

CodeB

void increment(int *b, int *c)

{

int i;

int *pb, *pc;

int b3, b4;

pb = b - 1;

pc = c - 1;

b3 = pb[1];

获取更多权威电子书请登录https://www.doczj.com/doc/87140463.html, for (i = (100 / 2); i != 0; i--)

{

b4 =*(pb +=2);

pc[1] = b3 + 1;

b3 = pb[1];

*(pc += 2) = b4 + 1;

}

}

仔细观察可以发现,CodeA与CodeB可以完成同样的功能,即将数组b的每个成员加1赋值给数组c对应成员。但是CodeB与CodeA相比,有较高的执行速度。主要体现在以下几点:

――循环100次变成了循环50次(loop unrolling),减少了跳转次数;

――数组变成了指针,减少每次计算数组偏移量的指令;

――微调了不同代码操作的执行顺序,减少了流水线stall的情况;

――循环从++循环变成了――循环。这样可以使用ARM指令的条件位,为每次循环减少了一条判断指令。

很多程序员就是这样,通过这种手写不同的C代码,再实现相同任务的情况下,提高了代码执行效率。

在RVDS中,使用-O3 –Otime编译选项,RVCT会自动帮助程序员进行这些髙阶标量优化,即,RVCT会直接将CodeA优化成以前由CodeB才能得到的汇编代码。虽然优化之后函数的代码尺寸大于原先的函数,但是执行速度却有大

顶尖电子工程师笔记(不看后悔)

电子工程师必备基础知识(一) 运算放大器通过简单的外围元件,在模拟电路和数字电路中得到非常广泛的应用。运算放大器有好些个型号,在详细的性能参数上有几个差别,但原理和应用方法一样。 运算放大器通常有两个输入端,即正向输入端和反向输入端,有且只有一个输出端。部分运算放大器除了两个输入和一个输出外,还有几个改善性能的补偿引脚。 光敏电阻的阻值随着光线强弱的变化而明显的变化。所以,能够用来制作智能窗帘、路灯自动开关、照相机快门时间自动调节器等。 干簧管是能够通过磁场来控制电路通断的电子元件。干簧管内部由软磁金属簧片组成,在有磁场的情况,金属簧片能够聚集磁力线并使受到力的作用,从而达到接通或断开的作用。 电子工程师必备基础知识(二) 电容的作用用三个字来说:“充放电。”不要小看这三个字,就因为这三个字,电容能够通过交流电,隔断直流电;通高频交流电,阻碍低频交流电。 电容的作用如果用八个字来说那就:“隔直通交,通高阻低。”这八个字是根据“充放电”三个字得出来的,不理解没关系,先死记硬背住。 能够根据直流电源输出电流的大小和后级(电路或产品)对电源的要求来先择滤波电容,通常情况下,每1安培电流对应1000UF-4700UF是比较合适的。 电子工程师必备基础知识(三) 电感的作用用四个字来说:“电磁转换。”不要小看这四个字,就因为这四个字,电感能够隔断交流电,通过直流电;通低频交流电,阻碍高频交流电。电感的作用再用八个字来说那就:“隔交通直,通低阻高。”这八个字是根据“电磁转换”三个字得出来的。 电感是电容的死对头。另外,电感还有这样一个特点:电流和磁场必需同时存在。电流要消失,磁场会消失;磁场要消失,电流会消失;磁场南北极变化,电流正

硬件工程师要求

电子硬件工程师要求掌握的东西 第一部分:硬件知识 一、数字信号 1、 TTL和带缓冲的TTL信号 输出高电平>,输出低电平<。在室温下,一般输出高电平是,输出低电平是。最小输入高电平和低电平:输入高电平>=,输入低电平<=,噪声容限是。 2,CMOS电平: 1逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。 3,电平转换电路: 因为TTL和COMS的高低电平的值不一样(ttl 5v<==>cmos ),所以互相连接时需要电平的转换:就是用两个电阻对电平分压,没有什么高深的东西。哈哈 4,OC门,即集电极开路门电路,OD门,即漏极开路门电路,必须外界上拉电阻和电源才能将开关电平作为高低电平用。否则它一般只作为开关大电压和大电流负载,所以又叫做驱动门电路。 5,TTL和COMS电路比较: 1)TTL电路是电流控制器件,而coms电路是电压控制器件。 2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。 3)COMS电路的锁定效应: COMS电路由于输入太大的电流,内部的电流急剧增大,除非切断电源,电流一直在增大。这种效应就是锁定效应。当产生锁定效应时,COMS的内部电流能达到40mA以上,很容易烧毁芯片。 防御措施:1)在输入端和输出端加钳位电路,使输入和输出不超过不超过规定电压。 2)芯片的电源输入端加去耦电路,防止VDD端出现瞬间的高压。 3)在VDD和外电源之间加线流电阻,即使有大的电流也不让它进去。

硬件工程师面试题集(含答案-很全)

硬件工程师面试题集 (DSP,嵌入式系统,电子线路,通讯,微电子,半导体) 1、下面是一些基本的数字电路知识问题,请简要回答之。 (1) 什么是Setup和Hold 时间? 答:Setup/Hold Time 用于测试芯片对输入信号和时钟信号之间的时间要求。建立时间(Setup Time)是指触发器的时钟信号上升沿到来以前,数据能够保持稳定不变的时间。输入数据信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个T就是建立时间通常所说的SetupTime。如不满足Setup Time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿到来时,数据才能被打入触发器。保持时间(Hold Time)是指触发器的时钟信号上升沿到来以后,数据保持稳定不变的时间。如果Hold Time 不够,数据同样不能被打入触发器。 (2) 什么是竞争与冒险现象?怎样判断?如何消除? 答:在组合逻辑电路中,由于门电路的输入信号经过的通路不尽相同,所产生的延时也就会不同,从而导致到达该门的时间不一致,我们把这种现象叫做竞争。由于竞争而在电路输出端可能产生尖峰脉冲或毛刺的现象叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。 (3) 请画出用D 触发器实现2 倍分频的逻辑电路 答:把D 触发器的输出端加非门接到D 端即可,如下图所示: (4) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? 答:线与逻辑是两个或多个输出信号相连可以实现与的功能。在硬件上,要用OC 门来实现(漏极或者集电极开路),为了防止因灌电流过大而烧坏OC 门,应在OC 门输出端接一上拉电阻(线或则是下拉电阻)。 (5) 什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别? 答:同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系.电路设计可分类为同步电路设计和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。异步电路具有下列优点:无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性。 (7) 你知道那些常用逻辑电平?TTL 与COMS 电平可以直接互连吗? 答:常用的电平标准,低速的有RS232、RS485、RS422、TTL、CMOS、LVTTL、LVCMOS、ECL、ECL、LVPECL 等,高速的有LVDS、GTL、PGTL、CML、HSTL、SSTL 等。 一般说来,CMOS 电平比TTL 电平有着更高的噪声容限。如果不考虑速度和性能,一般TTL 与CMOS 器件可以互换。但是需要注意有时候负载效应可能引起电路工作不正常,因为有些TTL 电路需要下一级的输入阻抗作为负载才能正常工作。 (6) 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、锁存器/缓冲器)

电子工程师必备基础知识手册

电子工程师必备基础知识手册 电阻 导电体对电流的阻碍作用称着电阻,用符号R表示,单位为欧姆、千欧、兆欧,分别用Ω、kΩ、MΩ表示。 一、电阻的型号命名方法: 国产电阻器的型号由四部分组成(不适用敏感电阻) 第一部分:主称,用字母表示,表示产品的名字。如R表示电阻,W表示电位器。 第二部分:材料,用字母表示,表示电阻体用什么材料组成,T-碳膜、H-合成碳膜、S-有机实心、N-无机实心、J-金属膜、Y-氮化膜、C-沉积膜、I-玻璃釉膜、X-线绕。 第三部分:分类,一般用数字表示,个别类型用字母表示,表示产品属于什么类型。1-普通、2-普通、3-超高频、4-高阻、5-高温、6-精密、7-精密、8-高压、9-特殊、G-高功率、T-可调。 第四部分:序号,用数字表示,表示同类产品中不同品种,以区分产品的外型尺寸和性能指标等。例如:R T11型普通碳膜电阻a1} 二、电阻器的分类 1:通用线绕电阻器、精密线绕电阻器、大功率线绕电阻器、高频线绕电阻器。 2、薄膜电阻器:碳膜电阻器、合成碳膜电阻器、金属膜电阻器、金属氧化膜电阻器、化学沉积膜电阻器、玻璃釉膜电阻器、金属氮化膜电阻器。 3、实心电阻器:无机合成实心碳质电阻器、有机合成实心碳质电阻器。 4、敏感电阻器:压敏电阻器、热敏电阻器、光敏电阻器、力敏电阻器、气敏电阻器、湿敏电阻器。 三、主要特性参数 1、标称阻值:电阻器上面所标示的阻值。 2、允许误差:标称阻值与实际阻值的差值跟标称阻值之比的百分数称阻值偏差,它表示电阻器的精度。 允许误差与精度等级对应关系如下:±0.5%-0.05、±1%-0.1(或00)、±2%-0.2(或0)、±5%-Ⅰ级、

硬件工程师必用的20个电子线路图

这20个电子线路图,硬件工程师一定用得上! 电子技术、无线电维修及SMT电子制造工艺技术绝不是一门容易学好、短时间内就能够掌握的学科。这门学科所涉及的方方面面很多,各方面又相互联系,作为初学者,首先要在整体上了解、初步掌握它。 无论是无线电爱好者还是维修技术人员,你能够说出电路板上那些小元件叫做什么,又有什么作用吗?如果想成为元件(芯片)级高手的话,掌握一些相关的电子知识是必不可少的。 普及DIP与SMT电子基础知识,拓宽思路交流,知识的积累是基础的基础,基础和基本功扎实了才能奠定攀登高峰阶梯!这就是基本功。 电子技术的历史背景: 早在两千多年前,人们就发现了电现象和磁现象。我国早在战国时期(公元前475一211年)就发明了司南。而人类对电和磁的真正认识和广泛应用、迄今还只有一百多年历史。在第一次产业革命浪潮的推动下,许多科学家对电和磁现象进行了深入细致的研究,从而取得了重大进展。人们发现带电的物体同性相斥、异性相吸,与磁学现象有类似之处。 1785年,法国物理学家库仑在总结前人对电磁现象认识的基础上,提出了后人所称的“库仑定律”,使电学与磁学现象得到了统一。 1800年,意大利物理学家伏特研制出化学电池,用人工办法获得了连续电池,为后人对电和磁关系的研究创造了首要条件。

1822年,英国的法拉第在前人所做大量工作的基础上,提出了电磁感应定律,证明了“磁”能够产生“电”,这就为发电机和电动机的原理奠定了基础。 1837年美国画家莫尔斯在前人的基础上设计出比较实用的、用电码传送信息的电报机,之后,又在华盛顿与巴尔的摩城之间建立了世界上第一条电报线路。1876 年,美国的贝尔发明了电话,实现了人类最早的模拟通信。英国的麦克斯韦在总结前人工作基础上,提出了一套完整的“电磁理论”,表现为四个微分方程。这那就后人所称的“麦克斯韦方程组”.麦克斯韦得出结论:运动着的电荷能产生电磁辐射,形成逐渐向外传播的、看不见的电磁波。他虽然并未提出“无线电”这个名词,但他的电磁理论却已经告诉人们,“电”是能够“无线”传播的。 对模拟电路的掌握分为三个层次: 初级层次 熟练记住这二十个电路,清楚这二十个电路的作用。只要是电子爱好者,只要是学习自动化、电子等电控类专业的人士都应该且能够记住这二十个基本模拟电路。 中级层次 能分析这二十个电路中的关键元器件的作用,每个元器件出现故障时电路的功能受到什么影响,测量时参数的变化规律,掌握对故障元器件的处理方法;定性分析电路信号的流向,相位变化;定性分析信号波形的变化过程;定性了解电路输入输出阻抗的大小,信号与阻抗的关系。有了这些电路知识,您极有可能成长为电子产品和工业控制设备的出色的维修维护技师。

一个电子工程师的行业感悟

一个电子工程师的行业感悟 要在竞争和解决问题中体会生活,研发和竞争是每个电子工程师不可避免的现实。大家每天都会遇到新的困难,可这才是电子工程师的生活,要轻松的活在这些问题之中,并体会其中的快乐和成功时刻的兴奋。很多电子工程师抱怨说做研发太累了,这里的“累”是一种心理的感受,电子工程师的职业就是不断的克服困难迎接新的挑战。我刚开始做研发时也整天愁眉不展,可现在同时做几个大的工程,同时面对几十个技术难题,我觉得自己每天因为能做这样的事情而感到非常的快乐和充实,如果哪天自己没事可做就会觉得很不适应,总要找些问题来思考。 全文开始:“电子工程师是科学家;电子工程师是艺术家;电子工程师也是思想家。”一位伟大的电子工程师曾经提出过这样的一段感言。不错,电子工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及出神入化的技术方案,许多人往往只看到了他们的瑰丽,而作为电子工程师则更应该看到设计的灵魂。因此我们应该深入的理解“电子工程师也是艺术家和思想家”。工程设计的本身就是一种艺术,也是电子工程师思想的结晶。一部精密的机械设备,一个高效而又健壮的程序,一个复杂而又无懈可击的电路,这些都反映着一些杰出电子工程师的思想和灵魂,有时你甚至会认为他们的生命已经融入到设计中。 成为一个杰出电子工程师最重要的因素就是“热爱自己的职业”。毕竟兴趣是最好的老师,许多优秀的电子电子工程师都是从小作为电子爱好者的。爱好不仅要体现在行动中更要深入内心甚至深入骨髓。有许多人问:“每天应该花多长时间在学习中和工作中。”可以肯定一份耕耘就会换来一份收获,但作为电子工程师和科学家想取得成功并不是比赛谁花的时间最多,而是看谁付出了更多的“思考”。不要以为一个学生坐在自习教室里看了多少小时的书就是“勤奋”,

电子硬件工程师要求掌握的东西

电子硬件工程师要求掌握的东西 电子硬件工程师要求掌握的东西2010-11-05 10:21(转载) 觉得一个电子工程师/硬件工程师应该有下面的能力: 1、模拟/数字电路的分析和设计。教科书上讲的都应该会,包括分离元件和运放的信号放大,滤波,波形产生,稳压电源,逻辑化简,基本触发器,基本计数器、寄存器,脉冲产生和整形,ADC、DAC,锁相环等。要能定性和定量的分析和设计电路的功能和性能,比如说稳定性、频率特性等。这些东西一般需要日积月累才能到见多识广,然后熟能生巧。 2、计算机组成原理和结构。现在的电子设备基本上没有不用到计算机的,所以对计算机一定要了解最好是熟悉。要明白计算机是怎么工作的,软件在计算机内是怎么运行的(最好自己写一写程序),要熟悉常用计算机系统的外围电路和接口,并且要明白CPU和外围电路是怎么协调工作的等等。最好能熟悉MCS-51,写程序不是问题,重要的是思路,但一定要做出来。 3、PCB。基本要求是4层板,要了解PCB对EMI、ESD的影响并想办法避免。PCB能做得既美观又没有问题是需要花时间来训练的。 4、VHDL。在国外这是要求掌握基本技能,在国内也正在普及。主要是用来开发FPGA/CPLD器件和逻辑仿真,还有IC设计也常用VHDL作输入。就目前来说,如果对自己要求不是很高的话可以不掌握。 如果时间和精力允许的话,可以学一学操作系统、数据结构等,当然首先必须掌握好C(C++)语言,以便将来可以做(软/硬件)系统方面的工作。但模电/数电基础一定要好,这是学习其他的基础。开始时一般从分析电路入手,要搞清楚一个电路的电流是怎么流的,电压是怎么产生的,电感、电容是怎么冲放电的等等。从简单到复杂,慢慢养成习惯,很多东西自然而然就明白了。

一个LED电子工程师的经验之谈

一个LED电子工程师的经验之谈 “工程师是科学家;工程师是艺术家;工程师也是思想家。”一位伟大的工程师曾经提出过这样的一段感言。不错,工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及出神入化的技术方案,许多人往往只看到了他们的瑰丽,而作为工程师则更应该看到设计的灵魂。因此我们应该深入的理解“工程师也是艺术家和思想家”。工程设计的本身就是一种艺术,也是工程师思想的结晶。一部精密的机械设备,一个高效而又健壮的程序,一个复杂而又无懈可击的电路,这些都反映着一些杰出工程师的思想和灵魂,有时你甚至会认为他们的生命已经融入到设计中。 成为一个杰出led工程师最重要的因素就是“热爱自己的职业”。毕竟兴趣是最好的老师,许多优秀的电子工程师都是从小作为电子爱好者的。爱好不仅要体现在行动中更要深入内心甚至深入骨髓。有许多人问:“每天应该花多长时间在学习中和工作中。”可以肯定一份耕耘就会换来一份收获,但作为工程师和科学家想取得成功并不是比赛谁花的时间最多,而是看谁付出了更多的“思考”。不要以为一个学生坐在自习教室里看了多少小时的书就是“勤奋”,也可能比呆在寝室里的学生还要“懒惰”。也就是说“勤奋”是大脑的勤奋,而不是身体和和形式上的勤奋。我学电子也差不多有15年了,也发现了很多问题。 一次别人问我你每天花多长时间来工作。我回答他:“每天除了吃饭睡觉几乎都在思考。”不夸张的说我的很多工程构想都是在梦境中诞生的。每天早起床后刷牙的时候、上班的路上、吃饭的时候甚至和别人谈话的空闲瞬间都有可能诞生灵感。当然热爱工程师职业的前提是一定要能领略到工程和自然科学中的美感。一个优秀的工程师同时也是一个热爱科学的人,从科学的常识到科学的精神都会渗透到他的生活中。一次我看到一位教研室里的老师安排答辩的顺序,尽管这位老师在机电领域写了很多的书也在所谓“理论领域”有很多建树,单从他安排这样一个简单的顺序来看,他并不是个理论很高的人。因为在我看来他的工作方法是效率极低的。换句话说就是在他的生活中没有科学的精神可言。 一个工程师和科学家在生活中也是工程师和科学家。这个问题引出后我们要提到的是培养自己的思维品质。包括思维的习惯,深度和广度,以及思维方式和思维素材的选取。成为一个工程师确实有很多品质是天生的和决定性的,学校的培养和自己的努力也只是一些辅助措施。一个人曾经问我一个关于感性负载的问题,其实我心理很清楚他并不理解这里面最基本的物理概念,首先对电感的认识就不是用语言和数学公式能解释得了的。所以物理学和数学的基础是对工程师有很高要求的,这里所提到的物理学和数学是指一种最基本的认识而不是停留于表面的文字和公式。我可以推断这个人不太适合作工程师,其实他提出的问题都真真切切的存在于生活中,抬头看看日光灯的启动,或者当你看到电源插头的放电瞬间。可这每一个瞬间都被示为理所应当的话就错了。那样当牛顿看到$$落地时也会感觉理所应当的。 每个人的思维着眼点和注意的方面都不相同,很多人从小就会将注意放在自然科学之上,这些孩子中有很多就是未来的工程师。比如一个10岁的小学生看到一幢大楼,他会马上考虑大楼是如何建造的,塔吊又是怎么一节一节接起来的,那么高的大楼外墙的玻璃是如何安装的。另一个孩子会想工程师真伟大,还会想到一些诗句来抒发内心的感受。显然两个孩子一个可能更适合作工程师另一个适合成为文学家。所以人们经常说,每个人都有自己的长处和优点。有些人的长处和思维方式在工程师职业中无法发挥,可中国教育的教条化却无法让每个人都能做自己喜欢的专业。我的一个大学同学是文学爱好者,对中国历史和社会有许多见解,阅读广泛文笔也好,可偏偏学了电子这个专业,这不是人才的浪费吗。所以工程师和科学家在生活中也是工程师和科学家,而不是工作时和端起书本时才是。很多学生很努力的去学习,可一直无法入门就是这个原因。当拿起书本时发现一个问题或者老师提出一个问题后他们会努力的解决,可放下书本就不会再自己提出问题和独立的思考了。

硬件工程师常用知识2

模电部分(基本概念和知识总揽) 1、基本放大电路种类(电压放大器,电流放大器,互导放大器和互阻放大器),优缺点,特别是广泛采用差分结构的原因。 2、负反馈种类(电压并联反馈,电流串联反馈,电压串联反馈和电流并联反馈);负反馈的优点(降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用) 3、基尔霍夫定理的内容是什么? 基尔霍夫定律包括电流定律和电压定律。 电流定律:在集总电路中,任何时刻,对任一节点,所有流出节点的支路电流代数和恒等于零。电压定律:在集总电路中,任何时刻,沿任一回路,所有支路电压的代数和恒等于零。 4、描述反馈电路的概念,列举他们的应用? 反馈,就是在电子系统中,把输出回路中的电量输入到输入回路中去。反馈的类型有:电压串联负反馈、电流串联负反馈、电压并联负反馈、电流并联负反馈。 负反馈的优点:降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。 电压(流)负反馈的特点:电路的输出电压(流)趋向于维持恒定。

5、有源滤波器和无源滤波器的区别? 无源滤波器:这种电路主要有无源元件R、L和C组成 有源滤波器:集成运放和R、C组成,具有不用电感、体积小、重量轻等优点。 集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限,所以目前的有源滤波电路的工作频率难以做得很高。 6、基本放大电路的种类及优缺点,广泛采用差分结构的原因。 答:基本放大电路按其接法的不同可以分为共发射极放大电路、共基极放大电路和共集电极放大电路,简称共基、共射、共集放大电路。共射放大电路既能放大电流又能放大电压,输入电阻在三种电路中居中,输出电阻较大,频带较窄。常做为低频电压放大电路的单元电路。共基放大电路只能放大电压不能放大电流,输入电阻小,电压放大倍数和输出电阻与共射放大电路相当,频率特性是三种接法中最好的电路。常用于宽频带放大电路。 共集放大电路只能放大电流不能放大电压,是三种接法中输入电阻最大、输出电阻最小的电路,并具有电压跟随的特点。常用于电压放大电路的输入级和输出级,在功率放大电路中也常采用射极输出的形式。 广泛采用差分结构的原因是差分结构可以抑制温度漂移现象。 ?7、二极管主要用于限幅,整流,钳位. ?判断二极管是否正向导通: 1.先假设二极管截止,求其阳极和阴极电位; 2.若阳极阴极电位差>UD ,则其正向导通; 3.若电路有多个二极管,阳极和阴极电位差最大的二极管优先导通;其导通后,其阳极阴极电位差被钳制在正向导通电压(0.7V 或0.3V );再判断其它二极管.

硬件工程师培训教程二

硬件工程师培训教程(二) 第二节计算机的体系结构 一台计算机由硬件和软件两大部分组成。硬件是组成计算机系统的物理实体,是看得见摸得着的部分。从大的方面来分,硬件包括(——中央处理器)、存储器和输入输出设备几个部分。 负责指令的执行,存储器负责存放信息(类似大脑的记忆细胞),输入输出设备则负责信息的采集与输出(类似人的眼睛和手)。具体设备如我们平常所见到的内存条、显卡、键盘、鼠标、显示器和机箱等。软件则是依赖于硬件执行的程序或程序的集合。这是看不见也摸不着的部分。 一、(冯. 诺依曼)体系结构 体系结构是以数学家的名字命名的,他在世纪年代参与设计了第一台数字计算机。体系结构的特点如下: ?一台计算机由运算器、控制器、存储器、输入和输出 设备大部分组成。 ?采用存储程序工作原理,实现了自动连续运算。存储程序工作原理即把计算过程描述为由许多条命令按一定顺序组成的程序,然后把程序和所需的数据一起输入计算机存储器中保存起来,工作时控制器执行程序,控制计算机自动连续进行运算。体系结构存在的一个突出问题就是,外部数据存取速度和运算速度不平衡,不过可以 通过在 一个系统中使用多个或采用多进程技术等方法来解决

是计算机的运算和控制中心,其作用类似人的大脑。不同的其内部结构不完全相同,一个典型的由运算器、寄存器和控制器组成。个部分相互协调便可以进行分析、判断和计算,并控制计算机各部分协调工作。最新的除包括这些基本功能外,还集成了高速(缓存)等部件。 三、存储器 每台计算机都有个主要的数据存储部件:主存储器、高速寄存器和外部文件存储器。主存储器通常是划分为字(典型的是位或位)或字节(每字含或字节)的线性序列。高速寄存器通常是一个字长的位序列。一个寄存器的内容可能表示数据或主存储器中数据或下一条指令的地址。高速缓存通常位于主存储器和寄存器之间作为从主存储器存取数据的加速器。外部文件存储器包括磁盘、磁带或日益普及的等,通常以记录划分,每个记录是位或字节的序列。 四、输入输出()设备输入设备类似人的眼睛、耳朵和鼻子,负责信息的采集,并提交给处理。具体产品如键盘、鼠标和扫描仪等。输出设备类似人的手,执行大脑()发出的指令,可完成一定的功能,输出计算机的运算结果。具体产品如打印机、显示器和音箱 五、总线微型计算机的体系结构有一个最显著的特征是采用总线结构。总线就像一条公共通路,将所有的设备连接起来,达到相互通信的目的。与并行计算机(各部件间通过专用线路连接)相比,采用总线结构的微型计算机简化了设计、降低了成本、缩小了

电子工程师PCB设计基础知识

电子工程师PCB设计基础知识 PCB于1936年诞生,美国于1943年将该技术大量使用于军用收音机内;自20世纪50年代中期起,PCB技术开始被广泛采用。目前,PCB已然成为“电子产品之母”,其应用几乎渗透于电子产业的各个终端领域中,包括计算机、通信、消费电子、工业控制、医疗仪器、国防军工、航天航空等诸多领域。 说了这么多,那么你知道PCB是如何设计出来的呢?立创电子小编告诉你: 1、前期准备 包括准备元件库和原理图。在进行PCB设计之前,首先要准备好原理图SCH元件库和PCB元件封装库。 PCB元件封装库最好是工程师根据所选器件的标准尺寸资料建立。原则上先建立PC的元件封装库,再建立原理图SCH元件库。 PCB元件封装库要求较高,它直接影响PCB的安装;原理图SCH元件库要求相对宽松,但要注意定义好管脚属性和与PCB元件封装库的对应关系。 2、PCB结构设计 根据已经确定的电路板尺寸和各项机械定位,在PCB设计环境下绘制PCB板框,并按定位要求放置所需的接插件、按键/开关、螺丝孔、装配孔等等。 充分考虑和确定布线区域和非布线区域(如螺丝孔周围多大范围属于非布线区域)。 3、PCB布局设计 布局设计即是在PCB板框内按照设计要求摆放器件。在原理图工具中生成网络表(Design→Create Netlist),之后在PCB软件中导入网络表(Design→Import Netlist)。网络表导入成功后会存在于软件后台,通过Placement操作可以将所有器件调出、各管脚之间有飞线提示连接,这时就可以对器件进行布局设计了。 PCB布局设计是PCB整个设计流程中的首个重要工序,越复杂的PCB 板,布局的好坏越能直接影响到后期布线的实现难易程度。 布局设计依靠电路板设计师的电路基础功底与设计经验丰富程度,对电路板设计师属于较高级别的要求。初级电路板设计师经验尚浅、适合小模块布局设计或整板难度较低的PCB布局设计任务。 4、PCB布线设计 PCB布线设计是整个PCB设计中工作量最大的工序,直接影响着PCB

电子硬件工程师要求

电子硬件工程师要求 基于实际经验与实际项目详细理解并掌握成为合格的硬件工程师的最基本...基本上就可以成为一个合格的电子工程师:第一部分:硬件知识一、数字信... 基于实际经验与实际项目详细理解并掌握成为合格的硬件工程师的最基本知识。 1)基本设计规范 2)CPU基本知识、架构、性能及选型指导 3)MOTOROLA公司的PowerPC系列基本知识、性能详解及选型指导 4)网络处理器(INTEL、MOTOROLA、IBM)的基本知识、架构、性能及选型 5)常用总线的基本知识、性能详解 6)各种存储器的详细性能介绍、设计要点及选型 7)Datacom、Telecom领域常用物理层接口芯片基本知识,性能、设计要点及选型 8)常用器件选型要点与精华 9)FPGA、CPLD、EPLD的详细性能介绍、设计要点及选型指导 10)VHDL和Verilog HDL介绍 11)网络基础 12)国内大型通信设备公司硬件研究开发流程 最流行的EDA工具指导 熟练掌握并使用业界最新、最流行的专业设计工具 1)Innoveda公司的ViewDraw,Power PCB,Cam350 2)CADENCE公司的OrCad,Allegro,Spectra 3)Altera公司的MAX+PLUS II 4)学习熟练使用VIEWDRAW、ORCAD、POWERPCB、SPECCTRA、ALLEGRO、CAM350、MAX+PLUS II、ISE、FOUNDATION等工具 5)XILINX公司的FOUNDATION、ISE 一.硬件总体设计 掌握硬件总体设计所必须具备的硬件设计经验与设计思路 1)产品需求分析 2)开发可行性分析 3)系统方案调研 4)总体架构,CPU选型,总线类型 5)数据通信与电信领域主流CPU:M68k系列,PowerPC860,PowerPC8240,8260体系结构,性能及对比6)总体硬件结构设计及应注意的问题 7)通信接口类型选择 8)任务分解 9)最小系统设计 10)PCI总线知识与规范 11)如何在总体设计阶段避免出现致命性错误 12)如何合理地进行任务分解以达到事半功倍的效果 13)项目案例:中、低端路由器等 二.硬件原理图设计技术 目的:通过具体的项目案例,详细进行原理图设计全部经验,设计要点与精髓揭密。 1)电信与数据通信领域主流CPU(M68k,PowerPC860,8240,8260等)的原理设计经验与精华;

硬件工程师面试题集(含答案,很全).docx

硬件工程师面试题集 (DSP,嵌入式系统,电子线路,通讯,微电子,半导体) ---ReaLYamede 1下面是一些基本的数字电路知识问题,请简要回答之。 ⑴什么是SetUP和HOld时间? 答:SetUP/Hold Time用于测试芯片对输入信号和时钟信号之间的时间要求。建立时间(SetUP Time)是指触发器的时钟信号上升沿到来以前,数据能够保持稳定不变的时间。输入数据信 号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间通常所说的SetUPTime。如不满足SetUP Time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿到来时,数据才能被打入触发器。保持时间(Hold Time)是指触发器的时钟信号 上升沿到来以后,数据保持稳定不变的时间。如果Hold Time不够,数据同样不能被打入 触发器。 (2) 什么是竞争与冒险现象?怎样判断?如何消除? 答:在组合逻辑电路中,由于门电路的输入信号经过的通路不尽相同,所产生的延时也就会 不同,从而导致到达该门的时间不一致,我们把这种现象叫做竞争。由于竞争而在电路输出 端可能产生尖峰脉冲或毛刺的现象叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒 险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。 (3) 请画出用D触发器实现2倍分频的逻辑电路 答:把D触发器的输出端加非门接到D端即可,如下图所示: OIJTPUT CLK (4) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? 答:线与逻辑是两个或多个输出信号相连可以实现与的功能。在硬件上,要用OC门来实现(漏极或者集电极开路),为了防止因灌电流过大而烧坏OC门,应在OC门输出端接一上拉电阻(线或则是下拉电阻)。 (5) 什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别? 答:同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系.电路设计可分类为同步电路设计和异步电路设计。同步电路利用时钟脉冲使其子系统同步运 作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号 使之同步。异步电路具有下列优点:无时钟歪斜问题、低电源消耗、平均效能而非最差效 能、模块性、可组合和可复用性。 ⑺你知道那些常用逻辑电平?TTL与CoMS电平可以直接互连吗? 答:常用的电平标准,低速的有RS232、RS485、RS422、TTL、CMOS、LVTTL、LVCMOS、ECL、ECL、LVPECL 等,高速的有LVDS、GTL、PGTL> CML、HSTL、SSTL 等。 一般说来,CMOS电平比TTL电平有着更高的噪声容限。如果不考虑速度和性能,一般TTL与CMOS器件可以互换。但是需要注意有时候负载效应可能引起电路工作不正常,因为有些

硬件工程师培训教程000006)

硬件工程师培训教程(二)第二节计算机的体系结构一台计算机由硬件和软件两大部分组成。硬件是组成计算机系统的物理实体,是看得见摸得着的部分。从大的方面来分,硬件包括CPU(Central Processing Unit ——中央处理器)、存储器和输入/输出设备几个部分。 CPU 负责指令的执行,存储器负责存放信息(类似大脑的记忆细胞),输入/输出设备则负责信息的采集与输出(类似人的眼睛和手)。具体设备如我们平常所见到的内存条、显卡、键盘、鼠标、显示器和机箱等。软件则是依赖于硬件执行的程序或程序的集合。这是看不见也摸不着的部分。 一、V on Neumann (冯. 诺依曼)体系结构 V on Neumann 体系结构是以数学家John V on Neumann 的名字命名的,他在20 世纪40年代参与设计了第一台数字计算机ENIAC 。V on Neumann 体系结构的特点如下: ·一台计算机由运算器、控制器、存储器、输入和输出设备5 大部分组成。 ·采用存储程序工作原理,实现了自动连续运算。存储程序工作原理即把计算过程描述为由许多条命令按一定顺序组成的程序,然后把程序和所需的数据一起输入计算机存储器中保存起来,工作时控制器执行程序,控制计算机自动连续进行运算。V on Neumann 体系结构存在的一个突出问题就是,外部数据存取速度和CPU 运算速度不平衡,不过可以通过在一个系统中使用多个CPU 或采用多进程技术等方法来解决。 二、CPU CPU 是计算机的运算和控制中心,其作用类似人的大脑。不同的CPU 其内部结构不完全相同,一个典型的CPU 由运算器、寄存器和控制器组成。3 个部分相互协调便可以进行分析、判断和计算,并控制计算机各部分协调工作。最新的CPU 除包括这些基本功能外,还集成了高速Cache(缓存)等部件。 三、存储器每台计算机都有3 个主要的数据存储部件:主存储器、高速寄存器和外部文件存储器。主存储器通常是划分为字(典型的是32 位或64 位)或字节(每字含4 或8 字节)的线性序列。高速寄存器通常是一个字长的位序列。一个寄存器的内容可能表示数据或主存储器中数据或下一条指令的地址。高速缓存通常位于主存储器和寄存器之间作为从主存储器存取数据的加速器。外部文件存储器包括磁盘、磁带或日益普及的CD-ROM 等,通常以记录划分,每个记录是位或字节的序列。 四、输入/输出(I/O )设备 输入设备类似人的眼睛、耳朵和鼻子,负责信息的采集,并提交给CPU 处理。具体产品如键盘、鼠标和扫描仪等。输出设备类似人的手,执行大脑(CPU)发出的指令,可完成一定的功能,输出计算机的运算结果。具体产品如打印机、显示器和音箱等。 五、总线微型计算机的体系结构有一个最显著的特征是采用总线结构。总线就像一条公共通路,将所有的设备连接起来,达到相互通信的目的。与并行计算机(各部件间通过专用线路连接)相比,采用总线结构的微型计算机简化了设计、降低了成本、缩小了体积,但在同等配置条件下,性能有所下降。总线又分用于传输数据的数据总线(Data Bus)、传输地址信息的地址总线(Address Bus)和用于传输控制信号、时序信号和状态信息的控制总线(Control Bus)。 六、操作集每台计算机都有一内部基本操作集与机器语言指令相对应。一个典型的操作集包括与内部数据类型相关的基本算术指令(即实数和整数加法、减法、乘法和除法等)、测试数据项性质(如是否为零,是正数或负数等)的指令、对数据项的某一部分进行存取和修改 (如在一个字中存取一个字符,在一条指令中存取操作数的地址等 )的指令、控制输入/输出设备的指令及顺序控制指令(如无条件跳转等)。 七、顺序控制在机器语言程序中下一条要被执行的指令通常是由程序地址寄存器(也称为指令计数器)的内容确定的。为了将控制权转到程序某处,程序员可使用一些操作修改该寄存器的内容。解释器作为一部计算机操作的核心,每次执行的都是简单的循环算法。而对于每次循环,解释器都会从程序地址寄存器取得下一条指令的地址(并增量寄存器的值为下一条指令的地址),从存储器取得指定的指令,对指令进行解码,分解为操作码和一组操作数并取得操作数(如果必要的话),使用操作数作为参数调用指定的操作。基本操作可能修改内存和寄存器中的数据,和输入输出设备进行通讯,通过修改程序地址寄存器的内容改变程序的执行流程。在执行基本操作后,解释器将重复上述循环。 八、数据存取除了操作码,每条机器指令还需要指定操作码所需的操作数。一般操作数可以被存

一个电子工程师的成长经历

一个电子工程师的成长经历——南方的老树 我是一个电子工程师,我把我原来写的关于电子工程师怎样成长的一个帖子改改放在这里。 实际上,技术这种东西的规律是大同小异的,虽然是电子工程师的成长的道路,但是,其它领域的技术人员,我想也是一样的。 因为我也是比较痛苦地用了较长的时间才完成了从初学者到一个系统工程师的转变,所以啊,将自己这点体会写出来,希望能起到一点微薄的作用。 作为一个初出校门的大学生,如果有高手带的话,实际上只需要大概6个月到1年的时间就能实现这个转变。 只要你够勤奋、善于沟通、人品好。 前2者大家都可以理解;人品好就是大家看着这个人顺眼,愿意帮他,什么都愿意跟他讲,相处不厌倦。 要是狗脾气、自私,谁爱理你?要知道,自私的人,也愿意跟人品好的人在一起。 一个电子工程师,或者说,一个电子系统设计工程师,需要有机会,这种机会是靠自己去争取,“哭着喊着要进步”,有这种精神,还需要明师带着,就可以。 可是,上了班,谁会带你?很少,或者没有。市场竞争激烈,过去还说:“教会徒弟饿死师父”,这种现象,国营单位或许严重一些,民营企业中你需要给老板创造效益,至于学习,是在工作中学,老板是不会让你不干活而学习的,只能边干边学。 我把技术人员的成长之路分成几个阶段: 1.入门 1~2年 2.登堂入室 3年 3.勤奋至卓越 4.沟通、协作 5.对某个行业深入理解,做出产品 5年 第一步入门-51核心和基本电路 中国人有10亿啊,每年有多少大学生毕业呢?我不知道。但是我看到有一张照片,招聘会上熙熙攘攘,人来人往,十分震撼。从来没有一个时刻让我感觉到中国的人力资源是如此的丰富。但是,从现在的大学毕业出来的学生学到了什么东西呢?一些理论,跟实际脱钩的理论。有没有用呢?有点用。但是,在企业中,需要的是实际干点事情出来,实际解决问题。所以说,很多企业不想要大学本科出来的大学生,说动手,没有动手能力,不知道电阻电容长得什么样子,能够做什么?但是又自视甚高,对工资的期望值比较高。等到能够干点事情了,又拍拍屁股跑了。所以企业现在喜欢使用大专中专甚至是职业学校培训出来的小孩,至少这些孩子们知道自己的份量,能够实实在在地做事。要知道,他们很多人的天赋并不差,很多人是家庭条件不好,打小就是苦孩子,没有条件接受良好的教育。一旦给机会,他们都比较珍惜。 现在的大学,误人子弟甚多。扩招是没有错,但是,实验室扩了吗?教室扩了吗?教师扩了吗?至少实验室是没有扩。老树认得的一个研究生说,只有到了一个阶段,才能到实验室作实验。很多导师就是把学生当奴隶一样干活,要是在干活中能够学到东西那就算是运气好的;运气不好的,直接就是导师的廉价的劳力了,学不到东西,活倒干了不少。 但是,既然学生要拿文凭,要应付考试,没有办法,那怎么自救? 在入门这个阶段,需要去学习大量的知识,摸清你所在的领域所需要的知识体系,从最基本的学起。 如果励志要做一名出色的电子工程师,老树可以谈谈自己的看法。 做一个电子工程师,先从51学起,这是得到公认的。不需老树饶舌。 首先,去买一个开发板,越便宜的越好,在上面可以练练keil C。最好再买一个仿真

硬件工程师培训教程(15个doc)5

硬件工程师培训教程(15个doc)5

硬件工程师培训教程(二) 第二节计算机的体系结构 一台计算机由硬件和软件两大部分组成。硬件是组成计算机系统的物理实体,是看得见摸得着的部分。从大的方面来分,硬件包括CPU(Central Processing Unit ——中央处理器)、存储器和输入/输出设备几个部分。 CPU 负责指令的执行,存储器负责存放信息(类似大脑的记忆细胞),输入/输出设备则负责信息的采集与输出(类似人的眼睛和手)。具体设备如我们平常所见到的内存条、显卡、键盘、鼠标、显示器和机箱等。软件则是依赖于硬件执行的程序或程序的集合。这是看不见也摸不着的部分。 一、Von Neumann (冯. 诺依曼)体系结构 Von Neumann 体系结构是以数学家John Von Neumann 的名字命名的,他在20 世纪40年代参与设计了第一台数字计算机ENIAC 。Von Neumann 体系结构的特点如下: ·一台计算机由运算器、控制器、存储器、输入和输出设备5 大部分组成。 ·采用存储程序工作原理,实现了自动连续运算。 存储程序工作原理即把计算过程描述为由许多条命令按一定顺序组成的程序,然后把程序和所需的数据一起输入计算机存储器中保存起来,工作时控制器执行程序,控制计算机自动连续进行运算。Von Neumann 体系结构存在的一个突出问题就是,外部数据存取速度和CPU 运算速度不平衡,不过可以通过在一个系统中使用多个CPU 或采用多进程技术等方法来解决。 二、CPU CPU 是计算机的运算和控制中心,其作用类似人的大脑。不同的CPU 其内部结构不完全相同,一个典型的CPU 由运算器、寄存器和控制器组成。3 个部分相互协调便可以进行分析、判断和计算,并控制计算机各部分协调工作。最新的CPU 除包括这些基本功能外,还集成了高速Cache(缓存)等部件。 三、存储器 每台计算机都有3 个主要的数据存储部件:主存储器、高速寄存器和外部文件存储器。主存储器通常是划分为字(典型的是32 位或64 位)或字节(每字含4 或8 字节)的线性序列。高速寄存器通常是一个字长的位序列。一个寄存器的内容可能表示数据或主存储器中数据或下一条指令的地址。高速缓存通常位于主存储器和寄存器之间作为从主存储器存取数据的加速器。外部文件存储器包括磁盘、磁带或日益普及的CD-ROM 等,通常以记录划分,每个记录是位或字节的序列。 四、输入/输出(I/O )设备 输入设备类似人的眼睛、耳朵和鼻子,负责信息的采集,并提交给CPU 处理。具体产品如键盘、鼠标和扫描仪等。输出设备类似人的手,执行大脑(CPU)发出的指令,可完成一定的功能,输出计算机的运算结果。具体产品如打印机、显示器和音箱等。 五、总线 微型计算机的体系结构有一个最显著的特征是采用总线结构。总线就像一条公共通路,将所有的设备连接起来,达到相互通信的目的。与并行计算机(各部件间通过专用线路连接)相比,采用总线结构的微型计算机简化了设计、降低了成本、缩小了体积,但在同等配置条件下,性能有所下降。总线又分用于传输数据的数据总线(Data Bus)、传输地址信息的地址总线(Address Bus)和用于传输控制信号、时序信号和状态信息的控制总线(Control Bus)。 六、操作集 每台计算机都有一内部基本操作集与机器语言指令相对应。一个典型的操作集包括与内部数据类型相关的基本算术指令(即实数和整数加法、减法、乘法和除法等)、测试数据项性质(如是否为零,是正数或负数等)的指令、对数据项的某一部分进行存取和修改 (如在一个字中存取一个字符,在一条指令中存取操作数的地址等 )的指令、控制输入/输出设备的指令及顺序控制指令(如无条件跳转等)。 七、顺序控制 在机器语言程序中下一条要被执行的指令通常是由程序地址寄存器(也称为指令计数器)的内容确定

电子工程师必备知识

电子工程师的设计经验笔记(经典) 关键字:电子工程师设计经验 电子工程师必备基础知识(一) 运算放大器通过简单的外围元件,在模拟电路和数字电路中得到非常广泛的应用。运算放大器有好些个型号,在详细的性能参数上有几个差别,但原理和应用方法一样。 运算放大器通常有两个输入端,即正向输入端和反向输入端,有且只有一个输出端。部分运算放大器除了两个输入和一个输出外,还有几个改善性能的补偿引脚。 光敏电阻的阻值随着光线强弱的变化而明显的变化。所以,能够用来制作智能窗帘、路灯自动开关、照相机快门时间自动调节器等。 干簧管是能够通过磁场来控制电路通断的电子元件。干簧管内部由软磁金属簧片组成,在有磁场的情况,金属簧片能够聚集磁力线并使受到力的作用,从而达到接通或断开的作用。 更多阅读:电容性负载的稳定性—具有双通道反馈的RISO(1) 电子工程师必备基础知识(二) 电容的作用用三个字来说:“充放电。”不要小看这三个字,就因为这三个字,电容能够通过交流电,隔断直流电;通高频交流电,阻碍低频交流电。 电容的作用如果用八个字来说那就:“隔直通交,通高阻低。”这八个字是根据“充放电”三个字得出来的,不理解没关系,先死记硬背住。 能够根据直流电源输出电流的大小和后级(电路或产品)对电源的要求来先择滤波电容,通常情况下,每1安培电流对应1000UF-4700UF是比较合适的。 电子工程师必备基础知识(三) 电感的作用用四个字来说:“电磁转换。”不要小看这四个字,就因为这四个字,电感能够隔断交流电,通过直流电;通低频交流电,阻碍高频交流电。电感的作用再用八个字来说那就:“隔交通直,通低阻高。”这八个字是根据“电磁转换”三个字得出来的。

相关主题
文本预览
相关文档 最新文档