LoNg wAy tO Go
觉得一个电子工程师/硬件工程师应该有下面的能力:
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等,我觉得已经没有必要去看了,知道历史上有这些一回事就行了
这些知识,是所有产品都具备的要素。所以要学,再具体应用。
随机推荐
- 工具,Linux - tree命令,显示程序树型结构
sudo apt-get install tree tree --help
- 开发中,GA、Beta、GA、Trial到底是什么含义
前言 用过maven的都应该知道,创建maven项目时,其版本号默认会以SNAPSHOT结尾,如下: 通过英文很容易就可以知道这是一个快照版本.但是,在开发中,或者使用别的软件的时候,我们常常会见到各 ...
- 通过getGeneratedKeys获取记录的主键
Connection con=null; PreparedStatement ps=null; ResultSet rs=null; try { //建立连接 con= JDBCUtils.getCo ...
- leetcode刷题-- 5. 动态规划
动态规划思路 参考 状态转移方程: 明确「状态」-> 定义dp数组/函数的含义 -> 明确「选择」-> 明确 base case 试题 53最大子序和 题目描述 53 给定一个整数数 ...
- 1 CSS简介&语法&选择器及优先级&背景&文本&字体&链接&列表&表格
什么是CSS? Cascading Style Sheets层叠样式表,样式定义如何显示HTML元素 样式通常存储于样式表中,外部样式表通常存储在CSS文件中 多个样式定义可层叠为1,样式对网页中元素 ...
- Css——设置input输入框光标颜色
在使用 input 输入框时,我们可能会遇到需要给其设置光标颜色的情况.谷歌浏览器的默认光标颜色是黑色的,GitHub 上的光标却是白色,那么这个用 CSS 怎么改变呢? 上面描述的情景有两种实现方式 ...
- 第2节 Scala中面向对象编程:12、13、14、15、16、trait
6.4. Scala中面向对象编程之trait 6.4.1. 将trait作为接口使用 Scala中的trait是一种特殊的概念: 首先先将trait作为接口使用,此时的trait就与Java ...
- Systemverilog for design 笔记(三)
转载请标明出处 用户自定义和枚举数据类型 1. 用户自定义类型(typedef) 局部typedef定义:只用于设计的特定部分时,typedef的定义可在module或interface中 共享typ ...
- Go 开发者平均年薪 46 万?爬数据展示国内 Go 的市场行情到底如何
随着云原生时代的到来,拥有高并发性.语法易学等特点的 Golang 地位逐渐凸显,在云原生编程中占据了主导地位.在近期出炉的 TIOBE 10 月编程语言排行榜中,Golang 从前一个月的 16 位 ...
- 读取json文件
//读取json文件 var obji = File.ReadAllText(@"E:\test.json"); var resultdata = JsonConvert.Dese ...