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

电子硬件工程师要求掌握的东西
第一部分:硬件知识
一、 数字信号
1、 TTL和带缓冲的TTL信号
2、 RS232和定义
3、 RS485/422(平衡信号)
4、 干接点信号
二、 模拟信号视频
1、 非平衡信号
2、 平衡信号
三、 芯片
1、 封装
2、 7407
3、 7404
4、 7400
5、 74LS573
6、 ULN2003
7、 74LS244
8、 74LS240
9、 74LS245
10、 74LS138/238
11、 CPLD(EPM7128)
12、 1161
13、 max691
14、 max485/75176
15、 mc1489
16、 mc1488
17、 ICL232/max232
18、 89C51
四、 分立器件
1、 封装
2、 电阻:功耗和容值
3、 电容
1) 独石电容
2) 瓷片电容
3) 电解电容
4、 电感
5、 电源转换模块
6、 接线端子
7、 LED发光管
8、 8字(共阳和共阴)
9、 三极管2N5551
10、 蜂鸣器
五、 单片机最小系统
1、 单片机
2、 看门狗上电复位电路
3、 晶振瓷片电容
六、 串行接口芯片
1、 eeprom
2、 串行I/O接口芯片
3、 串行AD、DA
4、 串行LED驱动、max7129
七、 电源设计
1、 开关电源:器件的选择
2、 线性电源
1) 变压器
2) 桥
3) 电解电容
3、 电源的保护
1) 桥的保护
2) 单二极管保护
八、 维修
1、 电源
2、 看门狗
3、 信号
九、 设计思路
1、 电源:电压和电流
2、 接口:串口、开关量输入开关量输出
3、 开关量信号输出调理
1) TTL―>继电器
2) TTL―>继电器(反向逻辑)
3) TTL―>固态继电器
4) TTL―>LED(8字)
5) 继电器―>继电器
6) 继电器―>固态继电器
4、 开关量信号输入调理
1) 干接点―>光耦
2) TTL―>光耦
5、 CPU处理能力的考虑
6、 成为产品的考虑:
1) 电路板外形:大小尺寸、异形连接器、空间体积
2) 电路板模块化设计
3) 成本分析
4) 器件的冗余度
1. 电阻的功耗
2. 电容的耐压值等
5) 机箱
6) 电源的选择
7) 模块化设计
8) 成本核算
1. 如何计算电路板的成本?
2. 如何降低成本?选用功能满足价格便宜的器件
十、 思考题
1、 如何检测和指示RS422信号
2、 如何检测和指示RS232信号
3、 设计一个4位8字的显示板
1) 电源:DC12
2) 接口:RS232
3) 4位3”8字(连在一起)
4) 亮度检测
5) 二级调光
4、 设计一个33位1”8字的显示板
1) 电源:DC5V
2) 接口:RS232
3) 3排 11位8字,分4个、3个、4个3组,带行与行之间带间隔
4) 单片机最小系统
5) 译码逻辑
6) 显示驱动和驱动器件
5、 设计一个PCL725和MOXA C168P的接口板
1) 电源:DC5V
2) 接口:PCL725/MOXA 8个RS232
1. PCL725,直立DB37,孔
2. MOXA C168P,DB62弯
3) 开关量输出信号调理:6个固态继电器和8个继电器,可以被任何一路信号控制和驱动,接口:固态继电器5.08直立,继电器3.81直立
4) 开关量输入调理:干接点闭合为1或0可选,接口:3.81直立
5) RS232调理:
1. LED指示
2. 前4路RS232全信号,后4路只需要TX、RX、0
3. 无需光电隔离
4. 接口形式:DB9(针)直立
第二部分:软件知识
一、 汇编语言
二、 C51
该部分可以从市场上买到的N种开发板上学到,至于第一部分,需要人来带吧。
为什么要掌握这些知识?
实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂成本越低、市场上对相应的东东的需求越大,就越成功。这就是电子工程师的自身的价值。从成本到产品售出,之间的差价就是企业的追求。作为企业的老板,是在市场上去寻找这样的应用;对电子工程师而言,是将老板提出的需求或者应用按照一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大等)在最短的时间内完成。最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有关。这就是电子工程师的价值将电子产品抽象成一个硬件的模型,大约有以下组成:
1) 输入
2) 处理核心
3) 输出
输入基本上有以下的可能:
1) 键盘
2) 串行接口(RS232/485/can
bus/以太网/USB)
3) 开关量(TTL,电流环路,干接点
4) 模拟量(4~20ma、 0~10ma、0~5V(平衡和非平衡信号))
输出基本上有以下组成:
1) 串行接口(RS232/485/can
bus/以太网/USB)
2) 开关量(TTL、电流环路、干接点、功率驱动)
3) 模拟量(4~20ma, 0~10ma,0~5V(平衡和非平衡信号))
4) LED显示:发光管、八字
5) 液晶显示器
6) 蜂鸣器
处理核心主要有:
1) 8位单片机,主要就是51系列
2) 32位arm单片机,主要有atmel和三星系
51系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一的一件事情,做多了,不如使用arm来做;还可以在arm上加一个操作系统,程序既可靠又容易编写最近三星的arm受到追捧,价格便宜,以太网和USB的接口也有,周立功的开发系统也便宜,作为学习ARM的产品来说,应该是最好的;作为工业级的控制,是不是合适,在网友中有不同的看法和争议。本公司使用atmel ARM91系列开发的1个室外使的产品,在北京室外使用,没有任何的通风和加热的措施,从去年的5月份到现在,运行情况良好。已经有个成功应用的案例。
但对于初学者来说,应该从51着手,一方面,51还是入门级的芯片,作为初学者练手还是比较好的,可以将以上的概念走一遍;很多特殊的单片机也是在51的核的基础上增加了一些I/O和A/D、D/A;也为今后学习更高一级的单片机和ARM打下基础
再说了,哪个老板会将ARM级别的开发放在连51也没有学过的新手手中在51上面去做复杂的并行扩展是没有必要的,比如,扩展I/O口和A/D、D/A等等,
可以直接买带有A/D、D/A的单片机;或者直接使用ARM,它的I/O口线口多。可以使用I2C接口的芯片,扩展I/O口和A/D、D/A,以及SPI接口扩展LED显示,例如MAX7219等芯片
市面上一些比较古老的书籍中还有一些并行扩展的例子,如:RAM、EPROM、A/D、D/A等,我觉得已经没有必要去看了,知道历史上有这些一回事就行了
这些知识,是所有产品都具备的要素。所以要学,再具体应用。

随机推荐

  1. Java基础知识笔记第一章:入门

    java的地位: java具有面向对象,与平台无关,安全,稳定和多线程等优良特性,是目前软件设计中优秀的编程语言. java的特点: 1.简单 2.面向对象 3.平台无关 jre(java runti ...

  2. Hibernate框架报错:org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.mikey.hibernate.domain.Person.pid

    报错信息 org nate.PropertyAccessException:IllegalArgumentException在调用com.mikey.Hibernate.domain.Person.p ...

  3. nginx的access的阶段的access模块、auth_basic模块、auth_request模块及satisfy指令介绍

    access 模块 示例从上向下匹配 location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 200 ...

  4. 从零构建以太坊(Ethereum)智能合约到项目实战——第25章 Embark FrameWork

    P109 .1-Embark Framework 开发入门篇P110 .2-Embark Framework 去中心化存储 (IPFS)

  5. 吴裕雄--天生自然PythonDjangoWeb企业开发:学员管理系统- 前台

    开发首页 做一个简单的用户提交申请的表单页面. 首先在student/views.py文件中编写下面的代码: # -*- coding: utf-8 -*- from __future__ impor ...

  6. 吴裕雄--天生自然ORACLE数据库学习笔记:其它数据对象

    create index emp_deptno_index on emp(deptno) pctfree tablespace users; create bitmap index emp_salar ...

  7. java模式之单例

    懒汉式:需要实例的时候new public class Singleton_Lazy { private static Singleton_Lazy mSingleton; private Singl ...

  8. 【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ

    题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他 ...

  9. web-pc项目中index页面分析

    先上HTML代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

  10. 中山Day5——普及

    今天题目真是贼难呐...才38... 收获:树状数组单个修改 树状数组区间修改 T1:旅行 题意:有n个数,问;从中取任意个数,他们的和为质数的方案数是多少?(n<=50) 暴力模拟即可,这里不 ...