版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、硬件工程师到底值不值钱,推荐一篇文章附下:一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身
2、为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G10或10G1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。 2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择
3、,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。 3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。 以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科 二、嵌入式系统的分层与专业的分类。 嵌入式系统分为层,硬件层、驱动层、操作系统层和应用层。 1、硬
4、件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。 2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时
5、间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。 驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法
6、、操作系统原理、编译原理都要十分精通了解。 3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。 4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及J
7、ave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。 三、目标与定位。 先有目标,再去定位。 学ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上
8、基于API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。 因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。 如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe操作系统下的EVC应用开发(与windows下的VC相类
9、似),如果想再有突破就往某些音视频类的协议上靠,比如VOIP领域的基于SIP或H.323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。 对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。 四、开发系统选择。 很多ARM初学者都希望有一套自己能用的系统,但他们住住会产生一
10、种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为ARM9与ARM7好,我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。 在某种意义上请,ARM7与9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286和386。对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。 ARM7比较适合于那些想从硬件层面上走
11、的人,因为ARM7系列处理器内部带MMU的很少,而且比较好控制,就比如S3C44B0来讲,可以很容易将Cache关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD单步命令行指令都可以控制起来,基于51单片机的思想很容易能把他搞懂,就当成个32位的单片机,从而消除很多51工程师想转为嵌入式系统硬件ARM开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。 而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源,你接触外部资源越多,越熟悉他们那你以后就业成功
12、的机率就越高,这就是招聘时所说的有无“相关技能”,因为一个人不可能在短短几年内把所有的处理器都接触一遍,而招聘单位所用的处理器就可能是我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计,在软件上讲是操作系统方面相关接口驱动及应用开发经验。我从业近十年,2000年ARM出现,我一天始做ARM7,然后直接跑到了Xscale(这个板本在ARM10-11之间),一做就是五年,招人面试都不下数百人,在这些方面还是深有体会的。 我个人认为三星的S3
13、C44b0对初学者来说比较合适,为什么这么说哪?因为接口资源比较丰富,技术成熟,资料较多,应该十分适合于初学者,有问题可能很容易找人帮且解决,因为大多数人都很熟悉,就如同51类的单片机,有N多位专家级的人物可以给你帮忙,相关问题得以很快解答,所然业界认为这款ARM都做用得烂了,但对于初学者来,就却是件好事。 因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。 五、如何看待培训。 首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站在嵌入式系统行业前沿,设计过多款高端嵌入式系统平台产品并为众多公司提供过解决方案,离职前为从事VOIP的美资公
14、司设计IP-PBX,历任项目经理、项目主管、技术总监、部门经理,积累众多人脉,并集多年经验所得,考虑到学生就业与公司招人的不相匹配,公司想招人招不到,而学生和刚毕业的工程师想找份工作也不太容易,于此力创知天行科技有限公司,开展嵌入式系统教育培训。 因一线的科研人员和一线的教师不相接触,导至国内嵌入式人才缺乏,国外高校的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远领先于高校。为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学生在就业竞争中打造一张王牌,并为业界工程师快速提升实现自我创造机遇,我就这样辞去了外企年薪20多万的职位,做嵌入式系统方面的培训了。 对于培训来讲
15、,是花钱来买时间,很多工程师都喜欢自己学,认为培训不值,这也是有可能的,纯为赚钱的培训当然不会太有价值,但对于实力型的培训他们可能就亏大了,有这样一笔帐不知他们算过没有,如果一个一周的培训,能带给他们自学两年后才能掌握的知识,在培训完后他们用三个月到半年时间消化培训内容,这样他会省约至少一年半的时间来学其它的或重新站在另一个高度上工作,那么他将最迟一年后会拿到他两年后水平所对应的工资,就是在工资与水平对应的关系上比同批人缩短一年,每月按最少1千计,再减去培训费用至少多1.0万,同时也省了一年时间,不管是休闲也好,再继续提高也好,总之是跑到了队伍的前面了。 另一层面上讲,对于新人的培训相当于他们
16、为自己提前买了份失业保险,有师傅会带领他们入道,我今年暑假时班里最年轻的一个学生是大二的,今年才上大三,这学期才刚学单片机,但现在ARM方面的编程工作已经搞得有声有色了,再过一年多毕业,他还会失业吗? 再者通过培训,你可以知道很多业界不为常人所知的事,同时也为自己找了个师傅,就比如说,两个工程师分别用S3C2410和PXA255来做手持设备,同样两人都工作四年,再出去找工作,两人工资可能最多可相差一倍,为什么?这就是业界不为常人所知的规则,2410属于民品,被业界用烂了,做产品时成本特敏感,当然也对人才成本敏感了,PXA255是intel的东西,一个255 CPU能买三个2410,一直被业界定
17、义为贵族产品,用的公司都是大公司或为军方服务的公司,不会在乎成本,只要把东西做好,一切都好说,但这方面做的人也少啊,因为开发系统贵啊。 对于说为自已找了个好师傅,我想是这样的,因为同级工程师间存在着某此潜在的竞争关系,有很多人不愿意把自己知道的东西教给别人,这意味着他将要失业,就是所说的教会徒弟,饿死师傅,但对于我们这些人就不存在这样的关系了,我是在嵌入式系统平台设计上走到了一定程序,目前在国内这块的技术上已经是自己很难再突破自己,因此很多东西我对大家都是OPEN的,就比如说下面那部分关于接口设计中所提到的时序接口东西,我要是不讲,却使是高级硬件工程师我想也几乎只有10%的人能知道吧。 六、成
18、为高级嵌入式系统硬件工程师要具备的技能。 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通,或去网站看看。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模
19、拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。 另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类,国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键
20、的是看时序,而不是简单的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或是Xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。 一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到
21、一个工程师把方案中的5V变1.8V的DC芯片,直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力
22、还是原理图设计PCB绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。 总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头
23、脑。 那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如ProtelORCADPowperPCBMaplux2ISE、VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工程师了。 硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。 把一个月前想写的东西,今天终于用一上午的进间整理完了,希望对喜爱嵌入式系统开发的工程师和学生们有所帮助SPI(DSPI)1. SPI概况1.1 SPI简介串行外设接口(SPI,Serial Peripheral Interface)是Fre
24、escale公司推出的一种同步串行通讯接口,用于微处理器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。目前,各半导体公司推出了大量带有SPI接口的芯片,如RAM、EEPROM、A/D转换器、D/A转换器、LED/LCD显示驱动器、I/O接口芯片、实时时钟、UART收发器等,为用户的外围扩展提供了灵活而廉价的选择。SPI一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和从机选择线。SPI(DSPI)的框图如下所示:1.2 工作模式DSPI支持下列操作模式,可以被分为两类:模块专用模式:主机模式从机模式模块禁止模式MCU专用模式扩展停止
25、模式调试模式当主机写一个SDPI寄存器时,DSPI进入模块专用模式。MCU专用模式由引脚控制,并可扩展到SDPI。MCU专用模式就是一个MCU可以进入与DSPI模块专用模式不同的模式。1.3引脚说明这部分提供了DSPI的引脚说明。下表罗列了一些引脚,它们可以根据需要进行相应地连接。 DSPI引脚描述引脚描述IOPCS0/SS主机模式:外设芯片选择0输出从机模式:从机选择输入I/OPCS1-PCS3主机模式:外设芯片选择1-3从机模式:无用OPCS4主机模式:外设芯片选择4从机模式:无用OPCS4/PCSS主机模式:外设芯片选择5,外设芯片选中脉冲OSIN串行数据输入ISOUT串行数据输出OSC
26、K主机模式:串行时钟(输出)从机模式:串行时钟(输入)I/O2.功能描述串行外设接口(DSPI)提供了一种全双工、同步串行通信用来连接MCU机器外设。所有的通信都是工作于类SPI协议。DSPI具有以下的配置:1.SPI可以配置为处于基本SPI或者队列SPI模式;DSPI模块配置寄存器(MCR)的DCONF字段用来决定DSPI的配置。参见DSPI配置值。CTARn寄存器具有时钟和传输属性。SPI配置允许选择在帧中使用哪一个CTAR通过设置SPI命令的字段。参看DSPI时钟与传输属性寄存器来获得详细的信息。典型的主从之间的连接如下图所示。但执行一个数据传输操作时,数据会被串行地移入到一个预设的位置
27、。因为模块是连接的,因此数据就可以在主机与从机之间进行交换。在主机移位寄存器的数据现在不被移到了从机的移位寄存器,反之亦然。在传输的结束,SR寄存器的TCF位被置位,以表示一个传输的完成。串行协议框图通常情况下,会有多余一个的从机设备连接到DSPI主机。DSPI主机的6个PCS引脚可以被用于选择到底是和哪个从机通信。那个三个DSPI配置共享传输协议及时序,这部分被独立地在传输格式中单独介绍。传输俗语及延迟设定在“DSPI波特率及时钟延迟产生”章节有详细描述。2.1 串行外设接口配置SPI配置串行地传输数据通过使用一个移位寄存器及可编程的传输属性的选择。当MCR寄存器的DCONF字段为0b00时
28、,DSPI处于SPI模式。SPI帧可以达到32比特长。主机CPU或者DMA控制器传输来自于DSPI的RAM队列的待传输队列缓冲区(TX FIFO)数据。接收到的数据存储在接收队列缓冲区(RX FIFO)的实体内。主机CPU或者DMA控制器传输来自于接收队列的数据到DSPI的外部内存。队列缓冲区的操作描述详见“传输队列缓冲区机制”以及“接收队列缓冲区基址”。中断及DMA请求条件描述在“中断/DMA请求”。SPI配置支持两种不同的特定模式主机模式和从机模式。队列操作在两个模式下是相似的。主要的不同在于在主机模式下DSPI初始化并控制传输,通过接收队列实体的命令字段。在从机模式下,DSPI只需要对由
29、总线时钟开始的传输进行回复。SPI命令字段空间被用来16个最重要的传输数据的比特。2.1.1 主机模式在SPI主机模式下,DSPI通过控制串行时钟(SCK)以及外设芯片选择引脚(PCS)来初始化串行传输。在执行的发送队列实体内的SPI命令字段决定了CTAR寄存器是被用于设置传输属性及来置位哪个PCS引脚奥。命令字段同样包含不同的比特用来帮助队列管理及传输协议。可以看PUSHR寄存器来了解SPI命令字段的详细信息。发送队列实体的数据字段被装载到移位寄存器并且通过SOUT引脚移出去。在SPI主机模式下,每一个要传输的帧都具有一个命令,以允许传输属性通过不同帧来控制帧。2.1.2 从机模式在SPI从
30、机模式下,DSPI回复由SPI总线主机发起的传输。DSPI不会初始化一个传输。特定的传输属性如时钟极性、时钟相位及帧号必须与其要通信的SPI主机设置成功。SPI从机模式下,传输属性被设置在CTAR0寄存器内,数据以高位先移出。2.1.3 队列禁止操作队列禁止机制允许SPI不使用发送队列或者接收度列进行传输。当队列被禁止时,DSPI以一种双缓冲区的机制进行操作。接收与发送队列是被分别禁止的。设置MCRDIS_TXF位来禁止发送队列,设置MCRDIS_RXF位来禁止接收队列。2.2 DSPI波特率和时钟延迟产生系统时钟的频率除以一个预定标器然后加上双倍波特率除以定标器,这样得到了串行传输的串行时钟
31、频率和延迟的值。下图概念地显示串行通信时钟频率信号时如何产生的。通信时钟预定标器和定标器2.2.1. 波特率的产生波特率是串行通信时钟(SCK)的频率。系统时钟由预定标器(PBR)和定标器(BR)划分来产生有可能使定标器减半划分的SCK。在CTAR寄存器中,DBR,PBR和BR领字段用BR领字段描述中的公式来选择SCK频率。2.2.2 传输格式SPI串行通信被串行通信时钟(SCK)信号和PCS信号控制。主设备提供的SCK信号在交换输入和交换输出引脚上进行同步传输和数据采集。PCS信号作为从设备的使能信号。在主模式下,时钟和传输属性寄存器中的CPOL和CPHA位选择串行时钟的极性和相位,SCK。
32、l CPOL-选择SCK空闲状态的极性l CPHA-假如交换输出上的数据在第一个SCK边沿上或之前有效,选择即使总线从设备没有控制SCK信号,在从模式中这些值必须与主设备设置完全相同,这样确保正确的传输。在SPI从模式中,只使用CTAR0。DSPI支持四种不同的传输格式:l 典型的SPI使用CPHA=0l 典型的SPI使用CPHA=1l 改进的传输格式使用CPHA=0l 改进的传输格式使用CPHA=1支持一种改进的传输格式来允许高速通信使用需要更长准备时间的外围设备。DSPI可以在周期的后半段采集输入数据给外围设备更多的准备时间。MCR中的MTFE位在典型的SPI格式和改进的传输格式之间选择使
33、用。典型的SPI传输格式(CPHA=0)在图2-1显示的传输格式是用来与第一个数据位在第一个时钟边沿可用的外围SPI从设备通信。在这种格式中,主机和从机对奇数SCK边沿上的交换输入引脚取样,并且交换偶数SCK边沿上的交换输出引脚上的数据。图2-1DSPI传输时间图(MTFE=0,CPHA=0,FMSZ=8)主机通过将它的第一位数据位放在SOUT引脚上并且判断相应的外围引脚选择信号在从设备上来启动传输。从机以将它的第一位数据位放在SOUT引脚上作为回应。tCSC延迟结束后,主机输出SCK的第一个边沿。主从设备利用这个边沿来采样他们的串行数据输入信号的第一个输入数据位。在SCK的第二
34、个边沿,主从设备将他们的第二个数据位放在他们的串行数据输出信号上。对于其余的帧,主机和从机采样奇数时钟边沿上的SIN引脚到,交换偶数时钟边沿上的SOUT引脚上的数据。最后的时钟边沿出现后,tASC延迟在主机对PCS信号取反之前插入。在新的帧传输能被主机启动之前tDT延迟会被插入。典型的SPI传输格式(CPHA=1)在图2-2显示的传输格式是用来与要求第一个数据位之前的第一个SCK边沿在从机SOUT引脚上变成可用的外围SPI从设备通信。在这种格式中,主机和从机交换奇数SCK边沿上的交换输出引脚上的数据,并且对偶数SCK边沿上的交换输入引脚上的数据举例。主机通过判断PCS信号在从机上
35、来启动传输。tCSC延迟结束后,主机产生第一个SCK边沿,同时将有效的数据放在SOUT引脚上。从机通过将它的第一位数据位放在从机的SOUT引脚上来回应第一个SCK边沿。图2-2 DSPI传输时间图(MTFE=0,CPHA=1,FMSZ=8)在SCK的第二个边沿,主机和从机采样他们的SIN引脚。对于其余的帧,主机和从机交换奇数时钟沿上的SOUT引脚上的数据,采样偶数时钟沿上的SIN引脚。最后的时钟边沿出现后,tASC延迟在主机对PCS信号取反之前插入。在新的帧传输能被主机启动之前tDT延迟会被插入。 连续选择格式在每个传输之间一些外围设备必须被取消。另外一些外围设备在一些连续的串行
36、传输中必须保持选定状态。连续选择格式提供了处理以下情况的灵活性。连续选择格式通过设置SPI命令中的CONT位启用SPI配置。配置中的PCS信号的行为是完全相同的,所以只有SPI配置会被描述。当位CONT =0,DSPI驱动判断引脚选择信号到帧之间的空闲状态。引脚选择信号的空闲状态被MCR中的PCSISn位选择。图2-3是2个四位传输带条件CPHA=1和CONT=0。图2-3 不连续格式举例(CPHA=1,CONT=0)当位CONT=1,PCS信号保持两个传输的时间有效。传输间的延迟(tDT)在传输间不被插入。图2-4显示了两个四位传输,CPHA=1和CONT=1的时机图。图2-4 连续格式举例
37、(CPHA=1,CONT=1)当用连续选择格式使用DSPI时需遵循下列规则:l 所有的传输命令必须有相同的PCSn位编程l 被传输命令选择的CTARs必须用相同的传输属性编程。只有FMSZ字段可以在这些CTARs中不同地编程。3 SPI模块底层驱动构件编程3.1 初始化SPI函数void SPIInit(void);对SPI进行初始化,一般有以下几个步骤:(1)将有SPI功能的引脚复用为SPI功能。(2)设置SPI时钟与传输属性寄存器寄存器,定义SPI总线波特率,传输相位,极性。(3)设置SPI控制寄存器,选择主机/从机模式。(4)设置SPI状态寄存器,使能传输队列FIFO满标志位。(5)设置
38、SPI中断请求选择及使能寄存器,禁止中断。3.2 主机发送一个字节void SPIDataSend(uint16 Data);(1) 设置SPI控制寄存器为主机模式,HALT位置0,开始传输。(2) 将所要发送数据存放到发送队列寄存器中,注意时钟与传输属性选择位的选择。(3) 将SPI控制寄存器HALT位置1,结束传输。3.3 从机接收一个字节uint8 SPIDataRec(uint32 Data);(1)设置SPI控制寄存器为从机模式,HALT位置0,开始接收。(2)当接收队列溢出标志被置位时,将接收数据存放到接收队列寄存器中。(3)将SPI控制寄存器HALT位置1,结束传输电源电路单元前
39、 面介绍了电路图中的元器件的作用和符号。一张电路图通常有几十乃至几百个元器件,它们的连线纵横交叉,形式变化多端,初学者往往不知道该从什么地方开始, 怎样才能读懂它。其实电子电路本身有很强的规律性,不管多复杂的电路,经过分析可以发现,它是由少数几个单元电路组成的。好象孩子们玩的积木,虽然只有十 来种或二三十种块块,可是在孩子们手中却可以搭成几十乃至几百种平面图形或立体模型。同样道理,再复杂的电路,经过分析就可发现,它也是由少数几个单元电 路组成的。因此初学者只要先熟悉常用的基本单元电路,再学会分析和分解电路的本领,看懂一般的电路图应该是不难的。按单元电路的功能可以把它们分成若干类,每一类又有好多
40、种,全部单元电路大概总有几百种。下面我们选最常用的基本单元电路来介绍。让我们从电源电路开始。一、电源电路的功能和组成每 个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是 用电池。但电池有成本高、体积大、需要不时更换(蓄电池则要经常充电)的缺点,因此最经济可靠而又方便的是使用整流电源。电 子电路中的电源一般是低压直流电,所以要想从 220 伏市电变换成直流电,应该先把 220 伏交流变成低压交流电,再用整流电路变成脉动的直流电,最后用滤波电路滤除脉动直流电中的交流成分后才能得到直流电。有的电子设备对电
41、源的质量要求很高, 所以有时还需要再增加一个稳压电路。因此整流电源的组成一般有四大部分,见图 1 。其中变压电路其实就是一个铁芯变压器,需要介绍的只是后面三种单元电路。二、整流电路整流电路是利用半导体二极管的单向导电性能把交流电变成单向脉动直流电的电路。( 1 )半波整流半波整流电路只需一个二极管,见图 2 ( a )。在交流电正半周时 VD 导通,负半周时 VD 截止,负载 R 上得到的是脉动的直流电( 2 )全波整流全波整流要用两个二极管,而且要求变压器有带中心抽头的两个圈数相同的次级线圈,见图 2 ( b )。负载 R L 上得到的是脉动的全波整流电流,输出电压比半波整流电路高。( 3
42、)全波桥式整流用 4 个二极管组成的桥式整流电路可以使用只有单个次级线圈的变压器,见图 2 ( c )。负载上的电流波形和输出电压值与全波整流电路相同。( 4 )倍压整流用多个二极管和 电容器可以获得较高的直流电压。图 2 ( d )是一个二倍压整流电路。当 U2 为负半周时 VD1 导通, C1 被充电, C1 上最高电压可接近 1.4U2 ;当 U2 正半周时 VD2 导通, C1 上的电压和 U2 叠加在一起对 C2 充电,使 C2 上电压接近 2.8U2 ,是 C1 上电压的 2 倍,所以叫倍压整流电路。三、滤波电路整流后得到的是脉动直流电,如果加上滤波电路滤除脉动直流电中的交流成分,
43、就可得到平滑的直流电。 ( 1 )电容滤波 把电容器和负载并联,如图 3 ( a ),正半周时电容被充电,负半周时电容放电,就可使负载上得到平滑的直流电。 ( 2 )电感滤波 把电感和负载串联起来,如图 3 ( b ),也能滤除脉动电流中的交流成分。 ( 3 ) L 、 C 滤波 用 1 个电感和 1 个电容组成的滤波电路因为象一个倒写的字母“ L ”,被称为 L 型,见图 3 ( c )。用 1 个电感和 2 个电容的滤波电路因为象字母“ ”,被称为 型,见图 3 ( d ),这是滤波效果较好的电路。 ( 4 ) RC 滤波 电感器的成本高、体积大,所以在电流不太大的电子电路中常用电阻器取代
44、电感器而组成 RC 滤波电路。同样,它也有 L 型,见图 3 ( e ); 型,见图 3 ( f )。四、稳压电路 交流电网电压的波动和负载电流的变化都会使整流电源的输出电压和电流随之变动,因此要求较高的电子电路必须使用稳压电源。 (1 )稳压管并联稳压电路 用一个稳压管和负载并联的电路是最简单的稳压电路,见图 4 ( a )。图中 R 是限流电阻。这个电路的输出电流很小,它的输出电压等于稳压管的稳定电压值 V Z 。 (2 )串联型稳压电路 有放大和负反馈作用的串联型稳压电路是最常用的稳压电路。它的电路和框图见图 4 ( b )、( c )。它是从取样电路( R3 、 R4 )中检测出输出电
45、压的变动,与基准电压( V Z )比较并经放大器( VT2 )放大后加到调整管( VT1 )上,使调整管两端的电压随着变化。如果输出电压下降,就使调整管管压降也降低,于是输出电压被提升;如果输出电压上升,就使调整管管压降也上升,于是输 出电压被压低,结果就使输出电压基本不变。在这个电路的基础上发展成很多变型电路或增加一些辅助电路,如用复合管作调整管,输出电压可调的电路,用运算放 大器作比较放大的电路,以及增加辅助电源和过流保护电路等。 ( 3 )开关型稳压电路 近年来广泛应用的新型稳压电源是开关型稳压电源。它的调整管工作在开关状态,本身功耗很小,所以有效率高、体积小等优点,但电路比较复杂。 开
46、关稳压电源从原理上分有很多种。它的基本原理框图见图 4 ( d )。图中电感 L 和电容 C 是储能和滤波元件,二极管 VD 是调整管在关断状态时为 L 、 C 滤波器提供电流通路的续流二极管。开关稳压电源的开关频率都很高,一般为几几十千赫,所以电感器的体积不很大,输出电压中的高次谐波也不多。 它的基本工作原理是 : 从取样电路( R3 、 R4 )中检测出取样电压经比较放大后去控制一个矩形波发生器。矩形波发生器的输出脉冲是控制调整管( VT )的导通和截止时间的。如果输出电压 U 0 因为电网电压或负载电流的变动而降低,就会使矩形波发生器的输出脉冲变宽,于是调整管导通时间增大,使 L 、 C
47、 储能电路得到更多的能量,结果是使输出电压 U 0 被提升,达到了稳定输出电压的目的。 ( 4 )集成化稳压电路 近年来已有大量集成稳压器产品问世,品种很多,结构也各不相同。目前用得较多的有三端集成稳压器,有输出正电压的 CW7800 系列和输出负电压的 CW7900 系列等产品。输出电流从 0.1A 3A ,输出电压有 5V 、 6V 、 9V 、 12V 、 15V 、 18V 、 24V 等多种。 这种集成稳压器只有三个端子,稳压电路的所有部分包括大功率调整管以及保护电路等都已集成在芯片内。使用时只要加上散热片后接到整流滤波电路后面就行了。外围元件少,稳压精度高,工作可靠,一般不需调试。
48、 图 4 ( e )是一个三端稳压器电路。图中 C 是主滤波电容, C1 、 C2 是消除寄生振荡的电容 ,VD 是为防止输入短路烧坏集成块而使用的保护二极管。五、电源电路读图要点和举例 电源电路是电子电路中比较简单然而却是应用最广的电路。拿到一张电源电路图时,应该: 先按“整流 滤波 稳压”的次序把整个电源电路分解开来,逐级细细分析。 逐级分析时要分清主电路和辅助电路、主要元件和次要元件,弄清它们的作用和参数要求等。例如开关稳压电源中,电感电容和续流二极管就是它的关键元件。 因为晶体管有 NPN 和 PNP 型两类,某些集成电路要求双电源供电,所以一个电源电路往往包括有不同极性不同电压值和好
49、几组输出。读图时必须分清各组输出电压的数值和极性。在组装和维 修时也要仔细分清晶体管和电解电容的极性,防止出错。 熟悉某些习惯画法和简化画法。 最后把整个电源电路从前到后全面综合贯通起来。这张电源电路图也就读懂了。 例 1 电热毯控温电路 图 5 是一个电热毯电路。开关在“ 1 ”的位置是低温档。 220 伏市电经二极管后接到电热毯,因为是半波整流,电热毯两端所加的是约 100 伏的脉动直流电,发热不高,所以是保温或低温状态。开关扳到“ 2 ”的位置, 220 伏市电直接接到电热毯上,所以是高温档。 例 2 高压电子灭蚊蝇器 图 6 是利用倍压整流原理得到小电流直流高压电的灭蚊蝇器。 220
50、伏交流经过四倍压整流后输出电压可达 1100 伏,把这个直流高压加到平行的金属丝网上。网下放诱饵,当苍蝇停在网上时造成短路,电容器上的高压通过苍蝇身体放电把蝇击毙。苍蝇尸体落下后,电容器又被 充电,电网又恢复高压。这个高压电网电流很小,因此对人无害。 由于昆虫夜间有趋光性,因此如在这电网后面放一个 3 瓦荧光灯或小型黑光灯,就可以诱杀蚊虫和有害昆虫。 例 3 实用稳压电源 图 7 是一个实用的稳压电源。输出电压 3 9 伏可调,输出电流最大 100 毫安。这个电路就是串联型稳压电源电路。要注意的是 : 整流桥的画法和图 2 ( c )不同,实际上它就是桥式整流电路。 这个电路使用 PNP 型锗
51、管,所以输出是负电压,正极接地。 用两个普通二极管代替稳压管。任何二极管的正向压降都是基本不变的,因此可用二极管代替稳压管。 2AP 型二极管的正向压降约是 0.3 伏, 2CP 型约是 0.7 伏, 2CZ 型约是 1 伏。图中用了两个 2CZ 二极管作基准电压。 取样电阻是一个电位器,所以输出电压是可调的。能够把微弱的信号放大的电路叫做放大电路或放大器。例如助听器里的关键部件就是一个放大器。 放大电路的用途和组成 放大器有交流放大器和直流放大器。交流放大器又可按频率分为低频、中源和高频;接输出信号强弱分成电压放大、功率放大等。此外还有用集成运算放大器和特殊 晶体管作器件的放大器。它是电子电
52、路中最复杂多变的电路。但初学者经常遇到的也只是少数几种较为典型的放大电路。 读放大电路图时也还是按照“逐级分解、抓住关键、细致分析、全面综合”的原则和步骤进行。首先把整个放大电路按输入、输出逐级分开,然后逐级抓住关键进行 分析弄通原理。放大电路有它本身的特点:一是有静态和动态两种工作状态,所以有时往往要画出它的直流通路和交流通路才能进行分析;二是电路往往加有负反 馈,这种反馈有时在本级内,有时是从后级反馈到前级,所以在分析这一级时还要能“瞻前顾后”。在弄通每一级的原理之后就可以把整个电路串通起来进行全面综 合。 下面我们介绍几种常见的放大电路。 低频电压放大器 低频电压放大器是指工作频率在 2
53、0 赫 20 千赫之间、输出要求有一定电压值而不要求很强的电流的放大器。 ( 1 )共发射极放大电路 图 1 ( a )是共发射极放大电路。 C1 是输入电容, C2 是输出电容,三极管 VT 就是起放大作用的器件, RB 是基极偏置电阻 ,RC 是集电极负载电阻。 1 、 3 端是输入, 2 、 3 端是输出。 3 端是公共点,通常是接地的,也称“地”端。静态时的直流通路见图 1 ( b ),动态时交流通路见图 1 ( c )。电路的特点是电压放大倍数从十几到一百多,输出电压的相位和输入电压是相反的,性能不够稳定,可用于一般场合。 ( 2 )分压式偏置共发射极放大电路 图 2 比图 1 多用
54、 3 个元件。基极电压是由 RB1 和 RB2 分压取得的,所以称为分压偏置。发射极中增加电阻 RE 和电容 CE , CE 称交流旁路电容,对交流是短路的; RE 则有直流负反馈作用。所谓反馈是指把输出的变化通过某种方式送到输入端,作为输入的一部分。如果送回部分和原来的输入部分是相减的,就是负反馈。图中基极 真正的输入电压是 RB2 上电压和 RE 上电压的差值,所以是负反馈。由于采取了上面两个措施,使电路工作稳定性能提高,是应用最广的放大电路。( 3 )射极输出器 图 3 ( a )是一个射极输出器。它的输出电压是从射极输出的。图 3 ( b )是它的交流通路图,可以看到它是共集电极放大电
55、路。 这个图中,晶体管真正的输入是 V i 和 V o 的差值,所以这是一个交流负反馈很深的电路。由于很深的负反馈,这个电路的特点是:电压放大倍数小于 1 而接近 1 ,输出电压和输入电压同相,输入阻抗高输出阻抗低,失真小,频带宽,工作稳定。它经常被用作放大器的输入级、输出级或作阻抗匹配之用。 ( 4 )低频放大器的耦合 一个放大器通常有好几级,级与级之间的联系就称为耦合。放大器的级间耦合方式有三种: RC 耦合,见图 4 ( a )。优点是简单、成本低。但性能不是最佳。 变压器耦合,见图 4 ( b )。优点是阻抗匹配好、输出功率和效率高,但变压器制作比较麻烦。 直接耦合,见图 4 ( c
56、)。优点是频带宽,可作直流放大器使用,但前后级工作有牵制,稳定性差,设计制作较麻烦。功率放大器 能把输入信号放大并向负载提供足够大的功率的放大器叫功率放大器。例如收音机的末级放大器就是功率放大器。 ( 1 )甲类单管功率放大器 图 5 是单管功率放大器, C1 是输入电容, T 是输出变压器。它的集电极负载电阻 Ri 是将负载电阻 R L 通过变压器匝数比折算过来的: RC= ( N1 N2 ) 2 RL=N 2 RL 负载电阻是低阻抗的扬声器,用变压器可以起阻抗变换作用,使负载得到较大的功率。 这个电路不管有没有输入信号,晶体管始终处于导通状态,静态电流比较大,困此集电极损耗较大,效率不高,大约只有 35 。这种工作状态被称为甲类工作状态。这种电路一般用在功率不太大的场合,它的输入方式可以是变压器耦合也可以是 RC 耦合。( 2 )乙类推挽功率放大器 图 6 是常用的乙类推挽功率放大电路。它由两个特性相同的晶体管组成对称电路,在没有输入信号时,每个管子都处于截止状态,静态电流几乎是零,只有在有信号输入 时管子才导通,这种状态称为乙类工作状态。当输入信号是正弦波时,正半周时 VT1 导通 VT2 截止,负半周时 VT2 导通 VT1 截止。两个管子交替出现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年酒店健身房改造升级投资预算方案
- 机械工程教案
- 皮肤科疱疹病毒感染防治方案
- 淋巴瘤免疫治疗指南
- 企业创新与创业精神培养指南
- 弘扬雷锋精神 绽放青春风采
- 胫骨骨折术后康复训练方案
- 2025年公务员(环境保护实务)试题及答案
- 神经内科中风患者康复训练计划
- 水自然知识科普
- 部编人教版小学4四年级《道德与法治》下册全册教案
- 歌词:半生雪(学生版)
- 2025高考数学一轮复习-7.6-利用空间向量求空间角、距离-专项训练【含解析】
- 《 大学生军事理论教程》全套教学课件
- 反推装置 (1)课件讲解
- 英文科技论文写作
- XX县群文阅读课题中期成果报告:县域性推进小学群文阅读教学实践研究中期研究成果报告课件
- LY/T 2271-2014造林树种与造林模式数据库结构规范
- GB/T 38658-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备型式试验有效性的延伸导则
- GB/T 19409-2013水(地)源热泵机组
- GB/T 15856.4-2002六角法兰面自钻自攻螺钉
评论
0/150
提交评论