找回密码
 立即注册
Qt开源社区 门户 查看内容

【干货收藏】嵌入式硬件设计:SoC开发、电源设计、人机交互设计

2019-5-17 15:39| 发布者: admin| 查看: 984| 评论: 0

摘要: 整理自《ARM9嵌入式系统硬件设计指南》第1章 嵌入式系统概述1.1 嵌入式系统嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了独立的 ...
整理自《ARM9嵌入式系统硬件设计指南》

第1章 嵌入式系统概述

1.1 嵌入式系统

嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路。由于嵌入式系统的诞生,现代计算机领域中出现了通用计算机与嵌入式计算机的两大分支。通用计算机按照高速、海量的技术发展;嵌入式计算机系统则为满足对象嵌入式智能化控制要求发展。不可兼顾的技术发展道路,造成了两大分支的相对独立。经独立的分工发展,20世纪末,现代计算机的两大分支都得到了迅猛的发展。

经过十几年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每种都具有自己独特的结构和功能。例如,MP3、数码相机与打印机就有很大的不同。

1.1.1 现实中的嵌入式系统

嵌入式系统多“嵌入”在产品内部,即使不可见,但几乎无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神舟飞船和长征火箭中有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。

在日常生活中,人们使用各种嵌入式系统,但未必知道它们。图1 1就是一些生活中比较常见的嵌入式系统。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑电饭煲……)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场所甚至健身设备中到处都有嵌入式系统。



图1-1 常见的嵌入式系统应用实例

1.1.2 嵌入式系统的定义特点

嵌入式系统诞生于微型计算机,是嵌入到对象体系中,实现对象智能化的微型计算机。由于通用计算机无法满足绝大多数对象体在体积、价位及可靠性等方面的要求,因此,嵌入式系统迅速走上了独立发展的单片机道路。首先是将计算机芯片化集成为单片微型计算机(SCMP),其后,为满足对象体系的应用要求,单片机不断从单片微型计算机向微控制器(MCU)与片上系统(SoC)发展。但无论怎样发展变化,都改变不了“微计算机”、“嵌入到对象体系中”、“满足对象智能化控制要求”的技术本质。

因此,我们可以将嵌入式系统定义成:“嵌入到对象体系中的专用计算机应用系统”。

随着网络、通信时代的到来,不少嵌入式系统形成了一些独立的应用产品,如手机、PDA、MP3、数码伴侣等,这些产品没有像电视机、电冰箱、空调、洗衣机、汽车等那样明显的嵌入对象,这时嵌入式系统定义中的“嵌入到对象体系中”含义,可以广义地理解成“內嵌有计算机”的含义。

1. 嵌入式系统的特点

按照嵌入式系统的定义,嵌入式系统有3个基本特点,即“嵌入性”、“专用性”与“计算机”。

“嵌入性”由早期微型机时代的嵌入式计算机应用而来,专指计算机嵌入到对象体系中,实现对象体系的智能控制。当嵌入式系统变成一个独立应用产品时,可将嵌入性理解为内部嵌有微处理器或计算机。

“计算机”是对象系统智能化控制的根本保证。随着单片机向MCU、SoC发展,片内计算机外围电路、接口电路、控制单元日益增多,“专用计算机系统”演变成为“内含微处理器”的现代电子系统。与传统的电子系统相比较,现代电子系统由于内含微处理器,能实现对象系统的计算机智能化控制能力。

“专用性”是指在满足对象控制要求及环境要求下的软硬件裁剪性。嵌入式系统的软、硬件配置必须依据嵌入对象的要求,设计成专用的嵌入式应用系统。

2. 嵌入式系统的相关技术

嵌入式系统应是计算机的一个重要分支。但是,作为一个重要的计算机工具,有不断完善的基础技术与在各个领域中的应用技术,并且依靠着多学科,如计算机学科、电子技术学科、微电子学科、集成电路设计等的交叉与综合。

1.1.3 嵌入式系统的技术前沿

目前,无论是嵌入式系统基础器件、开发手段,还是应用对象,都有了很大变化。无论是从事8位、16位、32位的嵌入式系统应用,都应该了解嵌入式系统的技术前沿。这些技术前沿体现了嵌入式系统应用的一些基本观念,它们是:基于集成开发环境的应用开发、应用系统的用户SoC设计、操作系统的普遍应用、普遍的网络接入、先进的电源技术以及多处理器SoC技术。

早在1990年之前,嵌入式系统通常是很简单的且具有很长的产品生命周期的自主设备。近些年来,嵌入式工业经历了巨大的变革。

产品市场窗口现在预计翻番的周期狂热到6~9个月;

全球重新定义市场的机会和膨胀的应用空间;

互联网现在是一个刚性需求而不是辅助性的,包括用有线和无线技术;

基于电子的产品更复杂化;

互联嵌入式系统产生新的依赖网络基础设施的应用;

微处理器的处理能力按莫尔定律(Moore’s L aw)预计的速度在增加。该定律认为集成电路和晶体管个数每18个月翻一番。

如果说过去的趋势能指明未来,那么随着技术的革新,嵌入式软件将继续增加新的应用,并产生更加灵巧的产品种类。根据人们对于自身虚拟运行设备的消费要求增加而不断壮大的市场,以及由Internet创造的无限的机会,嵌入式系统将不断地重新塑造未来的世界。

1.3 ARM简介

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片。而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。ARM公司利用这种双赢的伙伴关系迅速成为了全球性RISC微处理器标准的缔造者。这种模式也给用户带来巨大的好处,因为用户只需掌握了一种ARM内核结构及其开发手段,就能够使用多家公司相同ARM内核的芯片。

目前,总共有超过100家公司与ARM公司签订了技术使用许可协议,其中包括Intel、IBM、LG、NEC、Freescale、NXP(原PHILIPS)和NS这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。

ARM架构是ARM公司面向市场设计的第一款低成本RISC微处理器,它具有极高的性价比和代码密度以及出色的实时中断响应和极低的功耗,并且占用硅片的面积极少,从而使它成为嵌入式系统的理想选择,因此应用范围非常广泛,比如手机、PDA、MP3/MP4和种类繁多的便携式消费产品中。2004年ARM公司的合作伙伴生产了12亿片ARM处理器。

1.3.1 RISC结构特性

ARM内核采用精简指令集计算机(RISC)体系结构,它是一个小门数的计算机,其指令集和相关的译码机制比复杂指令集计算机(CISC)要简单得多,其目标就是设计出一套能在高时钟频率下单周期执行,简单而有效地的指令集。RISC的设计重点在于降低处理器中指令执行部件的硬件复杂度,这是因为软件比硬件更容易提供更大的灵活性和更高的智能化,因此ARM具备了非常典型的RISC结构特性:

具有大量的通用寄存器;

通过装载/保存(load-store)结构使用独立的load和store指令完成数据在寄存器和外部存储器之间的传送,处理器只处理寄存器中的数据,从而可以避免多次访问存储器;

寻址方式非常简单,所有装载/保存的地址都只由寄存器内容和指令域决定;

使用统一和固定长度的指令格式。

此外,ARM体系结构还提供:

每一条数据处理指令都可以同时包含算术逻辑单元(ALU)的运算和移位处理,以实现对ALU和移位器的最大利用;

使用地址自动增加和自动减少的寻址方式优化程序中的循环处理;

load/store指令可以批量传输数据,从而实现了最大数据吞吐量;

大多数ARM指令是可“条件执行”的,也就是说只有当某个特定条件满足时指令才会被执行。通过使用条件执行,可以减少指令的数目,从而改善程序的执行效率和提高代码密度。

这些在基本RISC结构上增强的特性使ARM处理器在高性能、低代码规模、低功耗和小的硅片尺寸方面取得良好的平衡。

从1985年ARM1诞生至今,ARM指令集体系结构发生了巨大的改变,还在不断地完善和发展。为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1~V7表示。

1.3.2 常用ARM处理器

ARM公司开发了很多系列的ARM处理器核,应用比较多的是ARM7系列、ARM9系列、ARM10系列、ARM11系列、Cortex-A8系列、Cortex-A9系列,还有针对低端8位MCU市场最新推出的Cortex-M3系列,其具有32位CPU的性能、8位MCU的价格。

1. Cortex™-M3处理器

ARM Cortex™-M3处理器是一个面向低成本,小管脚数目以及低功耗应用,并且具有极高运算能力和中断响应能力的一个处理器内核。其问世于2006年,第一个推向市场的是美国LuminaryMicro半导体公司的LM3S系列ARM。

CortexTM-M3处理器采用了纯Thumb2指令的执行方式,使得这个具有32位高性能的ARM内核能够实现8位和16位处理器级数的代码存储密度,非常适用于那些只需几K存储器的MCU市场。在增强代码密度的同时,该处理器内核是ARM所设计的内核中最小的一个,其核心的门数只有33K,在包含了必要的外设之后的门数也只为60K。这使它的封装更为小型,成本更加低廉。在实现这些的同时,它还提供性能优异的中断能力,通过其独特的寄存器管理并以硬件处理各种异常和中断的方式,最大程度的提高了中断响应和中断切换的速度。

与相近价位的ARM7核相比,CortexTM-M3采用了先进的ARMv7架构,具有带分支预测功能的3级流水线,以NMI的方式取代了FIQ/IRQ的中断处理方式,其中断延迟最大只需12个周期(ARM7为24~42个周期),带睡眠模式,8段MPU(存储器保护单元),同时具有1.25MIPS/MHz的性能(ARM7为0.9MIPS/MHz),而且其功耗仅为0.19mW/MHz (ARM7为0.28mW/MHz),目前最便宜的基于Cortex-M3内核的ARM单片机售价为1美元,由此可见Cortex-M3系列是冲击低成本市场的利器,但性能比8位单片机更高。

2. Cortex™-R4处理

Cortex™-R4处理器是首款基于ARM v7架构的高级嵌入式处理器,其目标主要为产量巨大的高级嵌入式应用方案,如硬盘,喷墨式打印机,以及汽车安全系统等等。

Cortex™-R4处理器在节省成本与功耗上为开发者们带来了关键性的突破,在与其他处理器相近的芯片面积上提供了更为优越的性能。Cortex™-R4为整合期间的可配置能力提供了真正的支持,通过这种能力,开发者可让处理器更加完美的符合应用方案的具体要求。

Cortex™-R4采用了90纳米生产工艺,最高运行频率可达400MHz,该内核整体设计的侧重点在于效率和可配置性。

ARM Cortex™-R4处理器拥有复杂完善的流水线架构,该架构基于低耗费的超量(双行)8段流水线,同时带有高级分支预测功能,从而实现了超过1.6 MIPS/MHz的运算速度。该处理器全面遵循ARMv7架构,同时还包含了更高代码密度的Thumb-2技术、硬件划分指令、经过优化的一级高速缓存和TCM(紧密耦合存储器),存储器保护单元,动态分支预测,64位的AXI主机端口,AXI从机端口,VIC端口等多种创新的技术和强大的功能。

3. Cortex™-R4F处理器

Cortex™-R4F处理器在Cortex™-R4处理器的基础上加入了代码错误校正(ECC)技术、浮点运算单元(FPU)以及DMA综合配置的能力,增强了处理器在存储器保护单元,缓存,紧密耦合存储器,DMA访问以及调试方面的能力。

4. Cortex™-A8处理器

Cortex™-A8是ARM公司所开发的基于ARMv7架构的首款应用级处理器,同时也是ARM所开发的同类处理器中性能最好、能效最高的处理器。从600MHz开始到1GHz以上的运算能力使Cortex™-A8能够轻易胜任那些要求功耗小于300mW的、耗电量最优化的移动电话器件;以及那些要求有2000 MIPS执行速度的、性能最优化的消费者产品的应用。Cortex™-A8是ARM公司首个超量处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEON™技术、以及能够支持JAVA和其他文字代码语言(byte-code language)的提前和即时编译的Jazelle® RCT(Run-time Compilation Target 运行时编译目标代码)技术。

ARM最新的Artisan® Advantage-CE库以其先进的泄漏控制技术使Cortex™-A8处理器实现了优异的速度和能效。

Cortex™-A8具有多种先进的功能特性,它是一个有序、双行、超标量的处理器内核,具有13级整数运算流水线,10级NEON媒体运算流水线,可对等待状态进行编程的专用的2级缓存,以及基于历史的全局分支预测;在功耗最优化的同时,实现了2.00MIPS/MHz的性能。它完全兼容ARMv7架构,采用Thumb2指令集,带有为媒体数据处理优化的NEON信号处理能力,Jazelle RC JAVA加速技术,并采用了TrustZong技术来保障数据的安全性。它带有经过优化的1级缓存,还集成了2级缓存。众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。

5. ARM7系列

ARM7TDMI是ARM公司1995年推出的第一个处理器内核,是目前用量最多的一个内核。ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbeddedICE JTAG软件调试方式,适合应用于更大规模的SoC设计中。其中ARM720T高速缓存处理宏单元还提供8KB缓存、读缓冲和具有内存管理功能的高性能处理器,支持Linux和Windows CE 等操作系统。

6. ARM9系列

ARM9系列于1997年问世,ARM9系列有ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。所有的ARM9系列处理器都具有Thumb压缩指令集和基于EmbeddedICE JTAG 的软件调试方式。ARM9系列兼容ARM7系列,而且能够比ARM7进行更加灵活的设计。

ARM926EJ-S发布于2000年,ARM9E系列为综合处理器,包括ARM926EJ-S和带有高速缓存处理器宏单元的ARM966E-S、ARM946E-S。该系列强化了数字信号处理(DSP)功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddedICE-RT逻辑(ARM的基于EmbeddedICE JTAG软件调试的增强版本),更好地适应了实时系统的开发需要。同时其内核在ARM9处理器内核的基础上使用了Jazelle增强技术,该技术支持一种新的Java操作状态,允许在硬件中执行Java字节码。

7. ARM10系列

ARM10发布于1999年,ARM10系列包括ARM1020E和ARM1022E微处理器核。其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等。

8. ARM11系列

ARM1136J-S发布于2003年,是针对高性能和高能效的应用而设计的。ARM1136J-S是第一个执行ARMv6架构指令的处理器,它集成了一条具有独立的load-store和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令多数据流(SIMD)扩展,采用特殊的设计以改善视频处理性能。

ARM1136JF-S就是为了进行快速浮点运算,而在ARM1136J-S增加了向量浮点单元。

9. Xscale

Xscale处理器将Intel处理器技术和ARM体系结构融为一体,致力于为手提式通信和消费电子类设备提供理想的解决方案。并提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令和集成数字信号处理(DSP)指令。

第2章 嵌入式SoC开发

2.1 嵌入式SoC

SoC是System on Chip的缩写,直译是“芯片级系统”,通常简称“片上系统”。因为涉及到“Chip”,SoC身上也会体现出“集成电路”与“芯片”之间的联系和区别,其相关内容包括集成电路的设计、系统集成、芯片设计、生产、封装、测试等等。跟“芯片”的定义类似,嵌入式SoC更强调的是一个整体,在嵌入式应用领域,给它的定义为:由多个具有特定功能的集成电路组合在一个模块上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。

嵌入式SoC有两个显著的特点:一是核心硬件设计难度大;二是软件比重大,需要进行软硬件协同设计。举个例子,比如城市相比农村的优势很明显:配套齐全、交通便利、效率高。

嵌入式SoC也有类似特点:在单个模块上集成了更多配套的电路,节省了集成电路的面积,也就节省了成本,相当于城市的能源利用率提高了;片上互联相当于城市的快速道路,高速、低耗,原来分布在电路板上的各器件之间的信息传输,集中到同一个模块中,相当于本来要坐长途汽车才能到达的地方,现在已经挪到城里来了,坐一趟地铁或BRT就到了,这样明显速度快了很多;城市的第三产业发达,更具有竞争力,而嵌入式SoC上的软件则相当于城市的服务业务,不单硬件好,软件也要好;同样一套硬件,今天可以用来做某件事,明天又可以用来做另一件事,类似于城市中整个社会的资源配置和调度、利用率方面的提高。

可见嵌入式SoC在性能、成本、功耗、可靠性,以及生命周期与适用范围各方面都有明显的优势。

2.1.1 嵌入式SoC设计思想

在嵌入式系统综合设计技术中,系统设计往往非常复杂,一般需要学习和了解非常多的技术相关知识,且需求、设计、修改一变则设计重来,牵一发而动全身。

模块化设计是嵌入式SoC的基础设计思想,嵌入式SoC技术设计应用电子系统的基本设计思想就是实现全系统的模块化设计。用户只须根据需要选择并更换各部分模块和嵌入结构,就能实现所需要的目标,而不必花时间熟悉特定的电路开发技术。模块化设计的优点就是系统能更接近理想系统,更容易实现设计目标。

2.1.2 嵌入式SoC设计重用技术

嵌入式系统应用越来越复杂化,且底层硬件驱动开发关系到整个系统的稳定性,如果从最底层的寄存器操作开始,一步一步地构建整个开发平台,必须投入大量的资金、人员和时间才有可能保证系统的可靠性,因此复杂的嵌入式产品推荐不要一切从头开始,要将设计建立在较高的层次之上。将更多的模块技术复用,只有这样,才能较快地完成设计,保证设计成功,快速满足市场需求。



图5 1 SoC 软件开发方式

嵌入式SoC设计再利用是建立在核心模块(CORE)基础上的,它是将己经验证好的复杂嵌入式软硬件系统,以便后续的设计利用。嵌入式SoC通常由两部分组成,一部分称为硬件模块化,具有复杂的,高性能的嵌入式处理的最小系统和特定功能,并被稳定性验证过,可被新设计作为特定的功能模块直接调用。

另外一部分是固件(firm core),是在固件的基础上开发的,如图5 1所示,开发工程师告别操作寄存器的开发模式,不需要了解ARM硬件功能,只需调用底层硬件驱动程序、OS、GUI、FAT文件管理系统、TCP/IP协议栈、CAN-bus高层协议......等固件的API函数,即可快速地开发出一个稳定、可靠的产品,这就是嵌入式SoC设计重用技术所要实现的目标。

2.2 跳过“0”阶段设计

企业最大的愿望和苦恼就是建立一个标准化的软硬件开发平台,这样可以规避从“阶段0”起步开始设计软硬件所带来的风险。因为产品开发失败不仅伴随着痛苦,而且带来的损失也是巨大的。实践证明,只有全新思维的变革才能达到脱胎换骨的效果,那就是只做买不到的技术!

如果什么都自己做,势必为此而付出巨大的代价,因为我们并非各个方面的专家。与此同时,企业与其花大量的金钱和时间去开发若干年后未必领先的基础工作,不如花较少的钱直接去购买目前最先进的产品和技术。

针对快速发展的嵌入式工控市场,广州致远电子股份有限公司推出了高性价比的TinyARM、MiniARM系列嵌入式工控模块,基于CortexTM-A8处理器的EPC/EPCM系列工控主板与数据采集板卡,将ARM最小系统、以太网/CAN/USB控制器、电子硬盘等功能模块高度集成于电路板上,提供配套的模块化电路参考设计,且预装WinCE、Linux操作系统、移植底层基础驱动函数库,构成了完整的嵌入式SoC智能平台。而用户只需要调用API函数,仅需要几行程序即可实现所要的功能。相比传统的开发模式,由于用户减少了“阶段0”的开发,有效降低研发成本,并大大缩短了开发周期,使产品研发效率至少提高2~4倍,为用户抢占市场先机提供有力保障。



图5.2 MiniARM硬件开发方式

第3章 嵌入式系统电源设计

3.1 电源设计重要性

电源网络为嵌入式系统的各个元器件提供电能。如果设计不当,系统将工作不稳定,发热量大,重启,甚至整个系统崩溃,带来巨大的经济损失。电源系统的重要性不言而喻。

实际项目中,有不少工程师并未掌握正确的电源设计方法。设计出的方案捉襟见肘,到产品打样后才发现电源地分割不合理,电源芯片过热、电源纹波太大、电源上电时序不正确等诸多问题。

3.2 电源设计主要参数

选择输入电源前,一定要先充分了解用电设备的用电情况,全面了解电源的应用是准确选型的前提。

一般来说电源选型首先要了解以下参数:

输入电压范围:电源的输入电压范围是多种多样的,国内市电供电范围是220VAC±20%,如果产品要在全球市电下都能使用,那么就需要选用85VAC~265VAC通用型的电源。常见直流输入的电压范围有9~18VDC,18~36VDC,36~72VDC,选择的电压范围和实际工作电压范围要匹配,电源才能提供稳定的输出,后级设备才能稳定工作。

输出电压:电源模块的输出电压就是设备的用电电压,有的设备可能需要多路电压,如+5V给MCU使用,±12V给运放使用,+24V给继电器使用等。

输出电流:知道每个设备需要每种电压提供多大的电流才能保证设备正常运作,如果选择偏小了设备不能正常运行,如果选着太大,电源的成本偏高,体积偏大,设备的整体用电效率可能偏低。

效率:Po/Pin×100%。由两条曲线来衡量,一条是负载为100%Po时,效率和输入电压的曲线,第二条是输入标称电压时,效率和负载的效率曲线。

功率因素:在交流电路中,电压与电流之间的相位差(Φ)的余弦叫做功率因数,用符号cosΦ表示,在数值上,功率因数是有功功率和视在功率的比值,即λ=P/S。

待机功耗:电源输入端连接到电网或供电电源上,输出端不连接负载不消耗功率状态下的输入有功功率。

电压精度:电压精度是在额定电压和额定负载下电源实际输出电压与标称电压的偏差。不同的应用对电压精度的要求不一样。

负载调整率:随负载变化时,输出电压有一定的变化幅度,这个参数越小越好。

线性调整率:输出电压随输入电压变化而发生变化,这个参数越小越好。

交叉调整率:指多路输出之间的相互影响。第一路负载为50%时,另一路负载从10%~100%变化时,引起第一路电压变化的百分比。

温度漂移:环境温度的变化影响元器件的参数的变化,从而引起电源输出电压变化。常用温度系数表示温度漂移的大小。


  • 绝对温度系数:温度变化1℃引起输出电压值的变化△UoT,单位是V/℃或mV/℃;

  • 相对温度系数:温度变化1℃引起输出电压相对变化△UoT/Uo,单位是V/℃或mV/℃;

  • 只在精度较高的电源中,才有温度系数和温度漂移两项指标。


纹波噪声:开关电源的输出波形不是一条理想的直线,而是在理想的直线上叠加有一定幅度的纹波,还有像毛刺一样的尖峰噪声。纹波噪声越小,对后面系统的干扰也就越小。还有在芯片的电源和地之间增加去耦电容可以有效减小对后面系统的影响。

响应时间:是指负载电流突然变化时,稳压器的输出电压从开始变化到达新的稳定值的一段调整时间。

隔离耐压:指输入和输出之间,输出和输出之间的耐压要求,常见的耐压等级有:1500VDC,3000VDC,6000VDC,2000VAC,3000VAC,4000VAC等。

环境温度:环境温度可能会受天气和其他因素影响变化,像在路灯上的温度,在盛夏会高于50℃,在冰雪的冬天会低于-30℃;在室内温度一般只在0~40℃之间。这对开关电源就有工作温度要求,过高的温度会缩短电源的使用寿命。常见的开关电源正常工作范围有:-40~85℃,-25~70℃,-40~70℃等。

电源的体积和安装方式:要考虑开关电源的大小、高度和安装是否合适。

3.3 电源设计分类

嵌入式硬件电源设计根据规模大小、主芯片等可分为板级设计和系统级设计。板级设计通常是指围绕嵌入式核心板的应用,为PCB内的每个功能电路设计电源电路的设计;系统级设计通常指引用现成核心板、隔离电源模块,再添加简单电路设计等外围电路设计。



图3.1 嵌入式系统电源设计流程图

如图3.1所示,板级设计以及系统级设计的主要区别在于时序设计和地线的分割。电源功耗计算、IC选型都是必须考虑的步骤。

板级设计通常地线分割较为简单,例如嵌入式ARM、DSP核心板通常只有一个数字电源地。稍微复杂的模块基本也只有2个地,例如隔离电源模块ZY0505系列、隔离CAN转换模块CTM1051等。但板级设计通常对电源时序的设计要求较高,因此在设计ARM9以上、DSP、中大规模FPGA时,电源时序的设计尤为重要。

系统级设计常常引用现成的ARM核心板、外部模块,综合考虑系统的输入、输出电源及板内某些特殊功能部件的供电要求,且对电源时序无要求。但是系统级PCB设计会涉及到AD采集、隔离通信接口、隔离IO口等,因此地线的分割将显得比电源时序设计更为重要。

在设计任务下单时,基本就确定了设计的类型,但更多的时候,为兼顾设计效率、可靠性及成本控制等多方面的因素,嵌入式电源经常是混合着系统电源和板级电源的设计。此时将电源时序设计、地线分割设计结合到一起考虑即可。

3.4 电源地分割设计

硬件设计阶段初步对地线的分割设计,有利于整体的布局优化和走线优化。若是在PCB设计阶段才考虑地线的分割,有可能会延长沟通时间甚至导致PCB设计的推倒重来。根据接地信号的作用进行分类,如图6.3所示。



图3.2 接地信号分类

防雷接地:PCB的防雷接地,主要是为了防止电源线、通讯线引入的感应雷。因此通常需要将电源、通讯接口和内部数字地隔离,并将通讯接口的金属部分和接大地。

保护接地:接地技术最早是在电网系统中,为了确保人或设备的安全,将地线直接接到大地上,嵌入式系统中通常将金属定位孔、外露的金属壳接到保护地上。

屏蔽接地:随着电子技术的发展,为了防止电子设备干扰其它设备或者被其它设备干扰,通常会将电子设备的金属外壳或线缆屏蔽层接地。

工作接地:为了电路工作正常,工作接地为电源或信号提供回流路径,并且作为基准电位。这也是嵌入式工程师经常遇到的数字地、模拟地、直流地、交流地。

根据图3.2所示,这个集中器的地被划分为4种,分别是金属定位孔和金属外壳的保护接地、系统工作的数字地、485隔离收发器的地,CAN隔离收发器的地。



图3.3 地线划分

3.5产品电源设计过程

3.5.1 系统级电源框图设计

系统级的电源设计,主要从整个系统的功能、产品的应用场合、开发周期、性价比等整体出发,综合评估系统前级、板内功能模块、对外供电接口、通讯接口、数据采集接口等对电源的需求及相应需达到的防护等级。在实际的工程应用中,市场机会稍纵即逝,往往留给产品的开发周期都很短,从产品的可靠性出发,系统级的电源设计,通常都尽量采用成熟的模块化电源来设计,降低风险,使产品尽早面世,占领市场。



图3.4 工控系统应用框图

以如图3.4所示的工控系统应用为例进行说明,系统较为复杂,包括了多种信号的数据采集、CAN、RS-485等现场总线、板内要求双电源供电的运放、电机驱动等多种功能。每个功能模块,对电源的要求都有所不同,且整个系统对EMS的要求达到工业四级。

3.5.2 产品功能框图设计

以一个工业现场使用的数据集中器为例,该系统使用M283邮票孔核心板,系统采用12V~24V供电,需要隔离的RS485,隔离CAN总线通信,画出系统框图,如图3.5所示。



图3.5 数据集中器系统框图

3.5.3 各电源电压的功耗估算

客户需求和功能框图确定以后。按照图6.2将对各器件的供电分类,计算出各电压的电流。

表3.1 电源电流计算表模板



以表3.1为模板,列出系统中用到几种电压,作为列标题。将耗电模块作为行标题,将系统中不耗电的部分去除,例如DB9插座,RJ45插座,JTAG接口等连接器。使用Excel表格建立如表6.2所示的表格,以方便电流的计算和排序。

以集中器的设计为例,各模块的电流消耗主要以查询数据手册为准,同时加以估算的手段进行填表。在绘制PCB时,PCB设计人员就可以根据模块消耗的电流,对大功率的模块进行特别关注。

表3.2 电源电流计算表



3.5.4 电源框图设计

集中器主板电源框图设计是将图3.1和表3.2整合在一起,这样能够清晰表达整板电源分布的图。是PCB电源布线的抽象设计。



图3.6 电源框图设计

3.5.5 处理器电源上电时序设计

由于处理器速度越来越快、功耗要求越来越低,不同的外设需要不同的电源域进行管理,因此常见的电源域有3.3V,1.8V,1.5V,1.2V,1.1V,0.9V。由于i.MX28x系列处理器内部集成了上电时序控制,因此不需要用户再设计电源时序。为了方便介绍,引用某半导体的一个Cortex-A8处理器的上电时序作为介绍上电时序的对象,如图3.7所示。



图3.7 一个处理器的上电时序

多电源处理器域出现的时候,由于缺乏设计经验,不少工程师设计出的产品要么不工作、要么工作不稳定。IC厂家看到了这种现象,推出了相应的电源时序管理IC,典型的就有ADI公司,但是这些时序控制IC提供的功能有限,与此同时还诞生了一些IC公司专门设计了电源管理芯片PMU。后来处理器厂商在推广处理器时,配套提供相对应的PMU, 推广CPU+PMU方案了。CPU+PMU的方案不仅解决了硬件工程师头痛的问题,而且有效地降低了系统的体积和功耗。

原厂配套的PMU一般价格比较贵,而且PMU的主要作用是动态功耗调整,上电时序只是一个小的功能。在一些并不需要动态功耗控制的应用,可以采用低成本分立元件搭建的RC延时电路 + DC-DC转换器的方法亦可以实现电源时序的控制。

根据图3.8将不同电压的电源、使能信号转换为如图6.6所示的上电时序,可以更加直观地从电压等级以及时间上看出时序的要求。



图3.8 转换后的上电时序

典型的RC延时电路,如图3.9所示。



图3.9 随供电电源延时



图3.10 随使能信号和电源信号信号延时

RC延时电路采用了电容充放电的原理,电容端电压Vc初始时刻为0V,DC-DC使能端电压要大于0.7V。根据电容充电公式

,图6.7中的上电延时时间为0.7ms。假定延时时间t,电容C,使能电压 ,计算R的值为:


。若延时要求为10us,使能电压为0.7V,电容选用0.01uF,计算出R值为6.6KΩ,选择6.8KΩ即可。

注意:一些厂商的ARM核心板要求底板的电源延迟上电,具体参照厂商数据手册。

3.6.1 AC-DC开关电源

AC-DC电源输入直接接电网,电网存在多种多样的干扰,某些干扰可以导致系统异常甚至损坏。广州致远电子股份有限公司在大部分AC-DC产品内部集成了高可靠防护电路,对于普通应用场合,仅需极少的外围电路即可满足要求,简化了系统设计、提高了系统可靠性。

AC-DC产品从输入类型区分,有85~265VAC通用输入型和特殊超宽范围输入型等,前者适用于大部分普通交流市电输入的场合,后者适用于电力集中抄表终端、路灯控制系统、UPS高压母线等场合。AC-DC产品从输出类型区分,有单路、双路、正负、多路等多种输出,主要输出电压有3.3V、5V、12V、24V、5V/12V、5V/24V、±12V、±15V、5V/±12V、5V/±15V等,对于需要同时给MCU和正负电源运放供电的系统,选择正负双路或三路带正负输出的电源产品,可以最大限度的降低电源系统复杂程度。

性能满足要求的情况下,推荐灌封模块式标准产品,产品体积小、便于嵌入PCB板安装,技术成熟、性能稳定、成本低廉,可降低开发成本、缩短开发周期。

3.6.2 DC-DC开关电源

DC-DC电源模块有隔离和非隔离两种。隔离DC-DC电源模块纹波噪声低、线性/负载调整率高、体积小、效率高、耐冲击、隔离特性好,集成欠压、过压、过流、短路保护等。非隔离DC-DC具有可持续短路保护、自恢复和过热保护等优点,引脚与LM78xx或LM79xx系列兼容,外壳材料阻燃耐热。

3.7.1 系统级电源的热设计

随着电子科技和电源行业的发展,从产品的开发周期和可靠性出发,实际的工程应用中系统级电源多为采用成熟的电源模块来设计,在社会的各个领域得到了广泛的应用。小型化,集成化将是未来电源的发展方向。由于功率密度越来越高,电源模块在使用过程中的将不可避免的遇到有关热设计方面的问题。尤其是AC/DC电源模块,因为有电解电容的存在,如果长期工作在温度较高的环境,不仅会使电解电容的使用寿命大大减少,甚至会烤干电解电容内的电解液,造成模块工作异常或引发安全事故。因此好的热设计不仅可延长电源模块和其周围元器件的使用寿命,还可使整个产品发热均匀,减少事故的发生。这里就将电源模块应用方面热设计的几种常用方法做以下简单的描述。

1.采用自然风冷

对于一些小型化,高功率密度的电源模块(主要是板载式电源模块)来说,由于体积、成本等因素的影响,其电源模块大部分采用自然风冷作为主要的散热方式。通常的板载式的电源模块的散热途径主要有以下几种,如图 6.11所示。

a. 通过自然对流的方式将热量从电源模块外壳和暴露表面传至空气中,如果电源模块与PCB之间有间隙,也会通过其中的沟道传到周围环境中;

b. 通过辐射由模块的暴露外壳表面辐射到周围物体表面或从模块的底部辐射到PCB板;

c. 通过传导方式经模块管脚传到PCB板上。



图3.11 安装在PCB板上的模块电源

这类电源模块在应用的过程中主要注意以下几个方面:

①、注意电源模块的通风

由于这类电源主要依靠自然对流和热辐射来散热,所以电源模块周围的环境一定要通风良好,便于热量的快速散发。有必要时可在使用电源模块的产品周围增加散热孔,且散热孔要对通,周围无大型元器件遮挡,便于空气流通。

②、注意相关发热器件的摆放

对于使用电源模块的产品中,可能电源模块不是唯一的发热源。对于这样拥有多个发热源的产品来说,各个发热源应尽量远离,避免相互之间的热辐射,加剧电源模块的热环境。

③、承载电源模块的PCB 板设计

对于板载式电源模块来说,PCB 板不仅起到支撑的作用,还是电源模块的一种散热途径。所以我们在PCB板方面设计时就要考虑到。如加大主回路的铜皮面积,降低PCB板上元器件的密度等,都可以在一定程度上改善电源模块的散热环境。

2.加散热片

对于一些无法靠自然风冷来进行散热的电源模块我们可以通过添加散热片的方式进一步降低电源模块的温度。

电源模块内部一般都填充有导热硅胶和树脂等,在自然散热情况下,外壳与周围环境之间的热阻远大于模块内部元器件与外壳之间的热阻,结果在电源体内,热分布是充分的,壳体差不多成为等热体。而模块的大多数热量是通过电源的暴露壁向外发出的。因此,此时电源模块的外壳面积直接影响到其散热效果。增加散热片其实就是增加对流和辐射的表面积从而大大地改善了电子器件的散热效果。

散热片的种类有很多种,我们选用散热片时主要参照以下几个方面:

①、采用导热性能好的材料(如铝,铜等)组成的散热片;

②、发热体表面积越大,与环境温差越大,其热辐射能力也愈强,所以一般选有有翅片或表面涂黑色(或有色)粗糙漆的散热片;

③、散热片应长而厚,便于散热。

在自然对流和辐射情况下,散热片安装的原则是尽量安放至电源模块外壳与外界温差最大的地方,且在散热片与模块之间涂一层导热脂或其他导热填充材料,使散热片与模块之间结合紧密,便于散热。

3.加强制性散热器风扇

许多应用系统中,即使加装了散热片,电源的工作条件也得不到很好的改善。在这种散热系统很困难的应用系统中,只有通过加装强制性散热器风扇作为主要的散热方式。用风扇来进行散热,能极大的降低电源模块的表面温度。但较大的风扇会使整个系统的体积变大,所以在风扇的体积和尺寸选择上,我们要选择适当。在一些风扇的体积和尺寸被限定的系统中,风扇的风速直接影响到散热的效果。风速越大的风扇所能提供的气流速度也越大,但噪声也会越大,反之会越小。使用时视具体的情况来选择合适的风扇,使其在散热效果和噪声之间得到比较好的平衡。

风扇安装的一般指导原则是,形状较长的电源模块,风扇吹风方向应该是水平的,沟道内的风扇吹风方向应该是垂直的以便于形成“烟囱效应”而有利于散热。另外还可在风扇与模块之间涂一层导热脂或其他导热填充材料,使风扇与模块电源外壳(或电源金属基板)之间的结合紧密以减少热阻,但不要因过紧而造成模块电源外壳(或电源金属基板)变形。

以上的几种电源模块应用热设计的常用方法,所针对的情况和使用环境各不相同,在具体应用中请根据实际情况选用适合的解决方案。

3.7.2 系统级电源的EMC设计

1、AC-DC电源的EMC设计

开关电源因高效、小型等特性而被越来越得到广泛的应用,是桥接用电设备和电网的电能转换器。在电子技术高速发展的现在,电磁环境也日益复杂,开关电源能否把来自输入端的干扰隔挡住,给用电设备提供干净的电能,是用电设备稳定可靠工作的基础。与此同时由于开关电源工作在开关模式,形成一个宽带的电磁发射源,反过来会干扰电网,连在电网上的其他用电设备就会受到干扰,功率越大干扰越严重,这种趋势导致了开关电源电磁兼容问题更加严重。

来自电网的干扰有浪涌、EFT,开关电源对电网的干扰只有通过传导方式干扰,按干扰信号的类型可以分为共模干扰和差模干扰。如图6.12所示电路是一个典型的AC-DC开关电源输入端EMC滤波电路的设计,在电源的输入端设计EMC滤波器是解决上面问题的重要手段。



图3‑12 AC-DC电源模块的典型EMC电路

一般AC-DC电源内部设计有EMC滤波电路,在一些情况下需要外加EMC电路,如虚线框中的电路。

MOV1:压敏电阻,用来钳位吸收来自L/N线的浪涌电压。

Cx:X电容,是安规电容,实际耐压远高于标称电压,用来吸收L/N线上的高频分量,滤除瞬态的高压尖峰。

LCM,CY1,CY2:共模电感LCM,Y电容CY1,CY2共同构成共模滤波器,从左向右吸收来自L/N线上的共模干扰。

从右往左,CY1,CY2给电源产生的的共模噪声提供回路,让共模噪声在电源的内部形成回路,不向外传播,LCM对开关电源产生的共模噪声表现为高阻抗,衰减共模噪声对电网的干扰。

2、DC-DC电源的EMC设计





图3‑13 DC-DC电源模块的典型EMC电路

如图6.13所示第1部分用于EMS测试,第2部分用于EMI滤波,用户可以依据实际需求情况使用。下面逐个解释元器件的作用:

FUSE:保险丝,在后面负载电流过大时断开,保护电路安全,根据实际工作电流的的大小进行选择,太小会误保护,太大会达不到保护效果。

MOV,TVS:它们是一种限压型保护器件。可以把端电压钳位在一个相对固定的电压。压敏电阻的响应时间是nS级,比空气放电管快,比TVS管慢一些。TVS管的钳位电压要比MOV的钳位电压稳定,但是TVS管能通过的能量通量较小。因此,先用压敏电阻吸收大部分的瞬态高压能量,剩余的能量经过LDM+C1形成的低通滤波电路滤波和延时,剩余小能量的高压尖峰则被TVS管吸收。

LDM+C1:形成低通滤波,滤除差模的瞬态高压。

因为开关电源的工作模式,开关电源的输入电流由很大的交流电流分量。如果交流在很长的输入线里流动,就会造成很强的电磁辐射。

C1,C2,C3和LCM的差模电感分量形成π型滤波器,靠近EUT放置,滤除EUT向输入线端的高频差模电流。

C4,C5和LCM组成共模滤波电路,滤除共模电流,不让共模电流向输入端传播,在输入线上形成辐射,阻止在同一组输入线上的其他电路被干扰。

3.7.3 通讯端口隔离电源设计

CAN-bus、RS-485、RS-232等通讯端口,为达到一定的EMS防护等级,保证系统不受外界干扰的影响,都需要进行隔离设计。通信端口有两种类型的信号:电源和数字信号,两种信号需要分别进行隔离,才能实现整个通信端口的隔离。

1.采用分立元件的隔离电路

实现通讯端口的隔离,可以使用隔离电源、隔离光耦等器件分别对通信端口的供电以及信号分别进行隔离。电源隔离最常用的方法就是采用隔离电源模块,隔离电源模块除了将系统地和通讯地隔开,有效抗干扰外,还具有电压转换的功能。隔离电源模块给隔离后的通讯接口供电,可有效阻隔干扰,保护系统前级电路。信号的隔离可以采用隔离光耦实现,使用隔离光耦可以满足速率较低的通信信号隔离,成本更为经济,如图3.14所示。为更好的抑制高频瞬态干扰,可在隔离电源模块的输入端并接一TVS 管。选择TVS 管时,应综合考虑TVS 管的耐压、钳位电压等参数,选择合适的型号。



图3.14 通讯端口隔离

适合通讯隔离使用的电源模块大都为定压输入隔离非稳压输出系列,如广州致远电子的ZY_FKS-1W 系列电源模块,此系列的模块品种齐全,型号众多,有SIP、DIP、贴片等多种封装供选择,用户可根据使用条件选择合适的型号,以满足对体积、重量、性能、便携性等各方面的要求。

2.采用隔离的通讯模块

使用分立器件对通信端口进行隔离设计,由于分立器件的数量多,体积大,单个通信端口的隔离便会占用很大的板面积。对于体积要求严格的应用场合,并不是最合适的方案。且受制于普通隔离光耦的带宽,通信速率也受到了一定的限制。

为更进一步的简化设计,减少隔离通讯接口占用PCB 板的面积,可采用隔离收发器模块实现电源和电气的隔离,如广州致远电子的CTM 系列隔离CAN 收发器模块,RS-485 系列隔离RS-485收发器模块,单模块集成电源隔离、电气隔离、收发器、总线保护功能等,简化设计,使系统更加稳定可靠。

(1)CTM 系列隔离CAN 收发器

使用CTM 系列隔离CAN 收发器模块的示例电路如图3.15所示。类似分立元件的电路,最好在输入电源的端口加一TVS 管,以提高对瞬态干扰的抵抗能力。当该节点处于网络终端时,电阻R1 是必需的,该电阻阻值为120Ω,称为终端电阻。对电磁兼容性和纹波电压有严格要求的客户,可以选择屏蔽电缆线,并在CAN 总线上串接共模扼流圈。当选择屏蔽电缆线时,屏蔽电缆线的屏蔽层可接FGND引脚,也可以将屏蔽层单点接地,其中R2及C2为耐高压的电阻、电容,具有滤波等作用。



图3.15 CTM隔离CAN通讯电路设计

(2)RSM 系列隔离RS-485 收发器

使用RSM485 系列隔离RS-485 收发器时,其示例电路如图3.16所示。外部电路跟CTM 系列隔离收发器的电路类似。



图3.16 RSM485系列隔离RS-485电路设计

3.7.4 运放供电电源设计

运算放大器应用电路,如图3.17所示。运算放大器OPA的输入电压与信号S-in有关,对于全摆幅运算放大器,V+取值大于等于S-in最大值;非全摆幅的运算放大器,参考运算放大器的数据手册。此处电源采用隔离DC-DC电源模块,可以隔离输入输出两个通道之间的联系,避免接地环路,保护系统电路免受外部网路的影响。



图3.17 运算放大器应用电路图

3.7.5 继电器驱动电源设计



图6.18 继电器应用电路图

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力下返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。

如图6.18所示,为继电器用于切换通讯方式的应用电路。继电器切换过程中的驱动电流会突变,所以需要在驱动电源的输出端加一定量的容性负载,例如电容C1。此处采用隔离DC-DC电源模块,可以避免继电器工作影响到外部电路,并为电路提供一个稳定的、高可靠性的电源。推荐电源型号如表6.6所示。

表6.6 推荐电源型号



第四章 嵌入式常见的人机交互设计

4.1 嵌入式输入设备设计

嵌入式系统可以对各种数据信息进行快速计算、分析、输出,即完成对数据的处理。但计算机系统无法主动产生数据和结果。对数据的处理结果做出何种决策和反应,很多时候就需要用户“告诉”系统如何执行下一步动作,或是给出决策的依据。这时,就需要使用输入设备将用户的“指示”或“依据”传递给嵌入式系统。

常见的人机交互输入设备包括按键、触摸屏、麦克风及其他各类用户可控输入的传感器等。随着科技的发展,不仅我们常见的交互输入设备出现了新的形态,而且也出现了不少新的交互输入方式。比如,现在手机中的电容按键及重力感应传感器、距离传感器。现在的交互设备不仅体现在硬件设备的复杂性上,而且在相关数据的复杂性上也与以往有了较大的增加。比如,可用于语音输入的麦克和可用于人脸识别的摄像头,为了完成这些人机交互输入,除了硬件输入设备对信息采集外,还需要后台进行大量的数据处理,以帮助系统“理解”用户的“输入信息”。

下面我们详细介绍最常用的两种输入设备:键盘/按键、触摸屏。

4.1.1 键盘

键盘是嵌入式应用的常用外部设备之一。键盘是由若干个按键组成的开关矩阵,它是最简单的数字量输入设备。对系统而言,键盘上不同的按键代表着不同的含义(一般来说,按键的含义可通过软件定义)。用户通过按动键盘的按键,输入数据或命令,实现简单的人机交互。

1.键盘的基本电路

键盘的基本电路是一个接触开关,通、断两种状态分别表示逻辑“0”和“1”。如图7.1所示,当开关打开时,处理器检测到相应引脚为高电平,表示逻辑“1”;当开关闭合时,处理器检测到相应引脚为低电平,表示逻辑“0”。

2.键盘的分类

按键排布的方式,键盘可分为可分成独立式按键键盘和矩阵式按键键盘;按读入键值的方式,可分为直读方式和扫描方式;按编码方式,可分成非编码方式和硬件编码方式;按微处理器响应方式可分为中断方式和查询方式。以上各种方式组合可构成不同硬件结构和接口的键盘。以下介绍较为常用的两种方式。

(1)、独立式

独立式按键键盘是指将每个独立按键按一对一的方式直接接到微处理器的I/O输入端口,如图4.1所示。读键值时,处理器可以检测相应I/O输入端口的状态,判定输入电平,确定输入的逻辑值。按键之间在硬件和读取方式上均相互独立,所以习惯称这种按键为独立式按键。这种方式在软硬件上实现均比较简单,但每一个按键都占用一个I/O端口,占用的资源较多,一般在按键数量较少,微处理器I/O资源充足时采用。



图4.1 键盘模型及按键抖动示意图

(2)、矩阵式

矩阵式键盘是用n条I/O线组成行输入口,m条I/O线组成列输出口,在行列线的每一个交点上设置一个按键。如图7.2(b)所示,为一个4行4列的矩阵键盘。矩阵式键盘读取键值一般采用逐行扫描的方式,即输出口按位轮换输出低电平,再从输入口读入信息,最后计算各次从输入口读取的信息,获得键码。例如,将row0~3配置为输出模式,col0~3配置为输入模式;现将row0输出低电平,row1~3输出高电平,读取col0~3;如果此时第0行0列的按键有按下,则col0检测到输入为低电平,其他列为高电平。这种方式占用I/O线较少,在按键较多的应用中采用较多。

设计键盘时,通常小于4个按键的应用,可以使用独立式接口。如果按键较多,为了减少微处理器的I/O端口的占用,可以使用矩阵式键盘。



图4.2 独立键盘与矩阵键盘

另外,如果使用处理器I/O直接与矩阵键盘接口相连,上述矩阵键盘的检测方式需要处理器不断对接口扫描检测。对速度较快的处理器来说,这种检测方式是对处理器的极大浪费。所以实际应用中建议使用专门的矩阵键盘的驱动芯片或I/O扩展芯片,来实现对矩阵键盘的检测,比如ZLG7290、CAT9555等扩展芯片。使用驱动或I/O扩展芯片,可以将处理器从简单但频繁的键盘扫描动作中解放出来。如图7.3为ZLG7290实现矩阵键盘应用的基本电路,该芯片支持2×8个I/O扩展,采用I2C接口与处理器连接,并支持中断输出,最大可扩展8×8的矩阵键盘。



图4.3 ZLG7290矩阵键盘电路

4.2 嵌入式输出设备设计

4.2.1 LED

LED是Light Emitting Diode的缩写,即发光二极管,是一种应用非常广泛的半导体发光/显示元件。发光二极管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是PN结。因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。在正向电压下,电子由N区注入P区,空穴由P区注入N区,进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。通过使用不同的材料及工艺,LED可以发出红色、绿色、黄色、白色、蓝色、橙色等光。

在市面上,LED产品有发光二极管、数码管、米字管、符号管、点阵显示屏、LED背光、LED照明灯等,参考如下图所示。事实上,数码管、米字管、符号管、点阵显示屏……中的每个发光单元都是一个发光二极管。



图4‑14 常见LED显示模块

1.LED特性分析

使用不同材料(管芯材料)的LED,其正向电压也有所不同,在设计电路前要先了解一下它们的基本特性,参考如表4.1所列。

表4.1 常用发光二极管基础特性表

类型

发光颜色

最大工作电流IFM(mA)

典型工作电流IF(mA)

正向压降VF(V)

Gap红色LED

红色

50

10

2.0~2.5

Gap绿色LED

绿色

50

10

2.0~2.5

GaAsp红色LED

红色

50

10

1.5~2.0

GaAsp绿色LED

绿色

50

10

2.0~2.5

SiC黄色LED

黄色

50

10

5.5~6.0


注意:设计LED电路时,工作电流最好小于0.6 IFM,这样LED使用寿命会更长。

2.独立LED灯驱动电路

①、电源指示灯



图4‑15 5V和3.3V电源指示灯电路

D1采用红色LED灯(GaAsp管芯),封装形式由产品要求决定。工作电流计算如下:


If = (VCC – 1.7) / R1


常规设计,If要在0.5~3mA范围内,减少电源指示灯对电能的消耗。对于5V电源,限流电阻R1推荐采用3K;对于3.3V电源,限流电阻R1推荐采用1K。

②、状态指示灯

对于单片机,其I/O灌电流可达20mA(具体芯片要以数据手册为准),可以直接使用I/O控制LED灯作为状态指示。



图7‑16 独立LED灯驱动--灌电流方式

当相应的I/O输出0时LED灯点亮,输出1时LED灯熄灭。电流计算公式如下:


If = (VCC – Vf) / R1 其中GaAsp红色LED的Vf为1.7V

GaAsp绿色LED的Vf为2.3V


常规设计,If要在2~15mA范围内。当驱动多个LED时要注意,由于CPU对总电流限制,比如100mA,所以要保证多个LED同时点亮的电流要小于总电流。如果使用了绿色的LED灯,由于绿色LED正向压降比红色的大,所以其限流电阻要小一点。

对于单片机,其I/O可以设置为推挽输出模式,驱动电流可达20mA,这类CPU可以采用拉电流的方式驱动,如图4‑17所示。



图4‑17 独立LED灯驱动—拉电流方式

当相应的I/O输出1时LED灯点亮,输出0时LED灯熄灭。电流计算公式如下:


If = (Voh – Vf) / R1 其中GaAsp红色LED的Vf为1.7V

GaAsp绿色LED的Vf为2.3V


通常设I/O的Voh等于VCC。常规设计,If要在2~15mA范围内。当驱动多个LED时要注意,由于CPU对总电流限制,比如100mA,所以要保证多个LED同时点亮的电流要小于总电流。对于其它类型的CPU(如3.3V的ARM),根据其I/O特性,也可以采用这两种驱动方式。

对于2引脚的双色LED,其驱动方式如图7‑18所示。对于I/O可以设置为推挽输出模式的CPU,可以直接使用I/O直接驱动;对于标准51单片机,则需要外加驱动电路,如2个非门。当一个口输出1,另一个口输出0时,其中一个LED灯点亮;如果两个控制口均输出1或均输出0,则LED灯熄灭。



图7‑18 2引脚双色LED灯驱动电路

③、LED背光灯

使用LED作为背光灯或照明灯时,由于需要的亮度一般比较高,通常会采用多个LED串联或并联的工作模式,工作电压/电流会较大,不能直接使用CPU的I/O来控制。

多个LED灯串联,其特点是电流较小,亮度控制方便(控制电流),但驱动电压较大,通常会使用恒流源来给LED供电,参考电路如图7‑19所示。恒流源输出电压要大于串联LED正向压降总和,如5个红色的L

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了