嵌入式硬件设计:SoC开发、电源设计、人机交互设计

Semiconductor 专栏收录该内容
33 篇文章 10 订阅

整理自《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设计重用技术

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

 

图2 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倍,为用户抢占市场先机提供有力保障。

 

图2.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.1AC-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.2DC-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个红色的LED,则电压要大于5×1.7=8.5V。恒流源输出电流要在5mA以上,如果要求背光亮度可调节,则此恒流源要设置为输出可控的。

 

图4‑19 串联LED驱动--恒流式

 

LED串联工作,当某一个LED烧坏(断路),则所有LED都不能点亮。为了解决这个问题,可以在每一个LED并联一个稳压二极管(如上图的WD1~WD5),当某一个LED烧坏(断路),由与它并联的稳压二极管保持电流回路。稳压二极管的电压值要小于LED的正向压降Vf。

 

多个LED灯并联,其特点是驱动电压低,电流较大,如果要控制亮度,每一个分支的LED电流都需要独立控制,电路较为庞大。所以LED并联工作通常只用于亮度不要求可调整的应用中。LED并联工作,VCC电压只要比单个LED的正向压降Vf大0.5V以上即可,LED的亮度由串接的阻流电阻决定,参考如图4‑20所示。由于总电流很大,控制开关需要选用低阻抗、大电流的MOS管实现。

 

图4‑20 并联LED驱动

 

④、白光LED驱动

 

手持式设备的液晶通常是使用白光LED背光,为了更方便控制背光亮度,LED采用串联模式。LED串联,其驱动电压要比较高,所以驱动电路要使用专用的DC/DC芯片,如恒流输出的CAT32,电路如图7‑21所示。

 

该电路是CAT32的典型应用图,其/SHDN引脚是用来控制打开或关闭白光LED,此脚连接到一个具有PWM功能的I/O上,即可控制LED的亮度。CAT32是恒流输出的,其电流控制是由R2控制的,即:

 

图4‑21 白光LED驱动—CAT32

4.2.2 蜂鸣器

 

1、蜂鸣器原理概述

 

蜂鸣器(Buzzer)是一类常见的电声器件,具有结构简单、紧凑、体积小、重量轻、成本低等优点,发声范围一般有数百Hz到十几kHz,广泛应用于各种电子设备当中(空调、洗衣机、电脑等内部都有蜂鸣器)。蜂鸣器在电路中电路图形符号用字母“H”或“HA”(旧标准用“FM”、 “LB”、“JD”等)表示。

 

2、电磁式蜂鸣器和压电式蜂鸣器

 

蜂鸣器从发声原理上可分为电磁式蜂鸣器和压电式蜂鸣器两大类。电磁式蜂鸣器主要由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成,在通电后振荡器产生交变电流流过线圈,线圈产生交变磁场,然后在磁铁和振动膜片的共同作用下发出声响,发声频率等于振荡信号的频率。压电式蜂鸣器是利用特殊的压电陶瓷材料特性工作的,主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及外壳等组成,在通电后振荡器起振,推动压电蜂鸣片发声。

 

图7‑22 电磁式蜂鸣器

 

图7‑23 压电式蜂鸣器和压电片

 

3、有源蜂鸣器和无源蜂鸣器

 

从驱动方式分类,有源驱动和无源驱动,有源蜂鸣器又称为直流蜂鸣器,其内部已经包含了一个多谐振荡器,只要在两端施加额定直流电压即可发声,具有驱动、控制简单的特点,但价格略高。无源蜂鸣器又称为交流蜂鸣器,内部没有振荡器,需要在其两端施加特定频率的方波电压(注意并不是交流,即没有负极性电压)才能发声,具有可靠、成本低、发声频率可调整等特点。

 

有源蜂鸣器与无源蜂鸣器有什么区别: 这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它。 有源蜂鸣器往往比无源的贵,就是因为里面多了个震荡电路。

 

4、如何判定蜂鸣器是有源的还是无源

 

方法一:从外观上看这两种蜂鸣器区别不大,但是在细节上还是稍有差别的,首先一般的有源蜂鸣器在其正面贴有一片胶纸,而无源蜂鸣器则没有。再观察有引脚的那一面,有源蜂鸣器的两个引脚一高一低,而无源蜂鸣器的两个引脚的高度一样。另外有源蜂鸣器除了引脚露出外,其余部分都是封闭的,而无源蜂鸣器的引脚面可以看到有绿色的电路板。

 

方法二:使用电源来判别蜂鸣器的有源和无源:找个5V左右的稳压电源,将电源正极连接到蜂鸣器标有“+”符号的引脚上,用电源的负极以一定频率不断地碰触蜂鸣器的负极引脚,发出“咔咔”声的是无源蜂鸣器,发出“嘀嘀”声的是有源蜂鸣器。

 

方法三:使用数字表判别蜂鸣器的有源和无源:用数字表的1K以下的欧姆档测量蜂鸣器两脚间的电阻,如果电阻只有几十欧,并且颠倒数字表的表笔测量出来的电阻一样,那么可以判断为无源蜂鸣器,如果两脚间电阻大于1K,那么可以判断是有源蜂鸣器。

 

5、常见蜂鸣器电路(一)

 

蜂鸣器是电路设计中常用的器件,广泛用于工业控制报、机房监控、门禁控制、计算机等电子产品,作为预警发声器件,驱动电路也非常简单。然而很多人在设计时往往随意设计,导致实际电路中蜂鸣器不发声、轻微发声和乱发声的情况发生。

 

下面我们从EasyARM-i.MX283开发套件入手,就3.3V NPN三极管驱动有源蜂鸣器设计,从实际产品中分析电路设计存在的问题,提出电路的改进方案,使读者能从小小的蜂鸣器电路中学会分析和改进电路的方法,从而设计出更优秀的产品,达到抛砖引玉的效果。

 

图4‑24 错误接法1

 

图4‑24为典型的错误接法,当BUZZER端输入高电平时蜂鸣器不响或响声太小。当I/O口为高电平时,基极电压为3.3/4.7*3.3V≈2.3V,由于三极管的压降0.6~0.7V,则三极管射极电压为2.3-0.7=1.6V,驱动电压太低导致蜂鸣器无法驱动或者响声很小。

图4‑25 错误接法2

 

图4‑25为第二种典型的错误接法,由于上拉电阻R2,BUZZER端在输出低电平时,由于电阻R1和R2的分压作用,三极管不能可靠关断。

 

图4‑26 错误接法3

 

图4‑26为第三种错误接法,三极管的高电平门槛电压就只有0.7V,即在BUZZER端输入电压只要超过0.7V就有可能使三极管导通,显然0.7V的门槛电压对于数字电路来说太低了,在电磁干扰的环境下,很容易造成蜂鸣器鸣叫。

 

图4‑27 错误接法4

 

图4‑27为第四种错误接法,当CPU的GPIO管脚存在内部下拉时,由于I/O口存在输入阻抗,也可能导致三极管不能可靠关断,而且和图4‑26一样 BUZZER端输入电压只要超过0.7V就有可能使三极管导通。

 

图4‑28 NPN三极管控制有源蜂鸣器常规设计

 

图4‑28为通用有源蜂鸣器的NPN三极管控制有源蜂鸣器常规设计驱动电路。电阻R1为限流电阻,防止流过基极电流过大损坏三极管。电阻R2有着重要的作用,第一个作用,R2相当于基极的下拉电阻,如果输入端悬空则由于R2的存在能够使三极管保持在可靠的关断状态,如果删除R2则当BUZZER输入端悬空时则易受到干扰而可能导致三极管状态发生意外翻转或进入不期望的放大状态,造成蜂鸣器意外发声。第二个作用,R2可提升高电平的门槛电压。如果删除R2,则三极管的高电平门槛电压就只有0.7V,即A端输入电压只要超过0.7V就有可能导通,添加R2的情况就不同了,当从A端输入电压达到约2.2V时三极管才会饱和导通,具体计算过程如下:

 

假定β=120为晶体管参数的最小值,蜂鸣器导通电流是15mA,那么集电极电流IC=15mA,则三极管刚刚达到饱和导通时的基极电流是:

 

 

流经R2的电流是:

 

 

流经R1的电流:

 

 

最后算出BUZZER端的门槛电压是:

 

 

图7‑28中的C2为电源滤波电容,滤除电源高频杂波。C1可以在有强干扰环境下,有效的滤除干扰信号,避免蜂鸣器变音和意外发声。在RFID射频通讯、Mifare卡的应用中,这里初步选用0.1uF的电容,具体可以根据实际情况选择。

 

在NPN 3.3V控制有源蜂鸣器时,在电路的BUZZER输入高电平,让蜂鸣器鸣叫,检测蜂鸣器输入管脚(NPN三极管的C极)处信号,发现蜂鸣器在发声时,向外发生1.87KHZ,-2.91V的脉冲信号,如图4‑29所示。

 

图4‑29 蜂鸣器自身发放脉冲

 

在电路的BUZZER输入20Hz的脉冲信号,让蜂鸣器鸣叫,检测蜂鸣器输入管脚处信号,发现蜂鸣器在发声时,在控制电平上叠加了1.87KHz,-2.92V的脉冲信号,并且在蜂鸣器关断时出现正向尖峰脉冲(≥10V),如图4‑30所示。

 

图4‑30 蜂鸣器自身发放脉冲

 

图7‑30中1.87KHz,-2.92V的脉冲信号应该是有源蜂鸣器内部震荡源释放出来的信号常用有源蜂鸣器主要分为压电式、电磁震荡式两种,i.MX283开发板上用的是压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成,而多谐震荡器由晶体管或集成电路构成,我们所用的蜂鸣器内部含有晶体管震荡电路(有兴趣的朋友可以自己拆开看看)。

 

有源蜂鸣器产生脉冲信号能量不是很强,可以考虑增加滤波电容将脉冲信号滤除。消除蜂鸣器EMI辐射后改进电路图如图4‑31所示,在有源蜂鸣器的两端添加一个104的滤波电容后,脉冲信号削减到-110mV,如图4‑32所示,但顶部信号由于电容充电过慢,有点延时。

 

图4‑31 NPN有源蜂鸣器控制电路改善后电路图

 

图4‑32 减少蜂鸣器自身发放脉冲

 

第五章 嵌入式系统的数字量输入输出设计

 

5.1 数字量相关概念

 

数字输出传感器与数字信号驱动的其它激励器一样,常用于各类工业应用中。我们可很容易的找到数字输出的各类传感器,包括温度、流量、压力、速度等,它们具有各种格式的数字信号输出。

 

数字传感器是一种仅产生二值输出的传感器,相比于模拟输出传感器输出一定范围内连续变化的值,数字输出仅为“0”或“1”。数字传感器最简单的例子是触点开关。典型的触点开关是一个无限电阻的开路电路,当按下开关后则变为阻抗为零的电路。

 

5.2 常见输入类型

 

5.2.1 干节点(通断信号)

干接点(Dry Contact),相对于湿接点而言,也被称之为干触点,是一种无源开关,具有闭合和断开的2种状态,2个节点之间没有极性,可以互换。 常见的干节点信号有:

 

  • 各种开关如:限位开关、行程开关、脚踏开关、旋转开关、温度开关、液位开关等;

  • 各种按键;

  • 各种传感器的输出,如环境动力监控中的传感器:水浸传感器、火灾报警传感器、玻璃破碎、振动、烟雾和凝结传感器;

  • 继电器、干簧管的输出。

 

5.2.2 湿节点(电压信号)

湿接点(Wet Contact),相对于干接点而言,也被称之为湿触点,是一种有源开关,具有有电和无电的2种状态,2个接点之间有极性,不能反接。工业控制上,常用的湿节点的电压范围是DC0~30V,比较标准的是DC24V,AC110~220V的输出也可以是湿节点,但这样做比较少。常见的湿节点信号有:

 

  • 如果把干节点信号,接上电源,再跟电源的另外一极,作为输出,也是湿节点信号;

  • NPN三极管的集电极输出和VCC;

  • 达林顿管的集电极输出和VCC;

  • 红外反射传感器和对射传感器的输出。

 

5.2.3 源极输入

源极输入用于连接漏极输出设备,如图8‑1所示。

 

图5‑1 源极输入示意图

 

漏极输出设备提供电源到地的电流通道,图8‑2所示的NPN集电极开路为典型的漏极输出设备。当需要输出低电平时,三极管处于饱和状态,等效于输出端与地接通;输出高电平时,三极管处于截至状态,等效于输出端与地断开(输出端悬空)。

 

图5‑2 漏极输出示意图

 

源极输入设备的信号源(漏极输出)只能提供到地的驱动能力。

 

5.2.4 漏极输入

漏极输入用于连接源级输出设备,如图5‑3所示。

 

图5‑3 漏极输入示意图

 

源极输出设备提供电源或正电压,等效于连接到电源的开关,如图8‑4所示。当输出“逻辑1”时,

 

图5‑4 源极输出示意图

 

5.2.5 差分输入

单端输入时,输入信号均以共同的地线为基准。这种输入方法主要应用于输入信号电压较高(高于1 V),信号源到模拟输入硬件的导线较短(低于4.5米),且所有的输入信号共用一个参考地。如果信号达不到这些标准,此时应该用差分输入。对于差分输入,每一个输入信号都有自己的参考地,通过两个信号线之间的电压差确定逻辑电平。

 

差分信号和普通的单端信号走线相比,最明显的优势体现在以下三个方面:

 

  • 抗干扰能力强,因为两根差分走线之间的耦合很好,当外界存在噪声干扰时,几乎是同时被耦合到两条线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消。

  • 能有效抑制EMI,同样的道理,由于两根信号的极性相反,他们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。

  • 时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。目前流行的LVDS(low voltage differential signaling)就是指这种小振幅差分信号技术。

 

典型的差分输入模块用于连接编码器,如图5‑5所示。

 

图5‑5 差分输入示例

 

5.3 数字量常用参数

 

5.3.1 上升时间与下降时间

上升时间(Rise time) (trise) 是指信号从低电压向高电压变化时,从20%上升到80%所需的时间,下降时间Fall time) (tfall) 是指信号从高电压向低电压变化时,从80%下降到20%所需的时间,如图8‑6所示。

 

图5‑6 数字IO上升时间及下降时间示意图

 

5.3.2 稳定时间

稳定时间(Settling time) (tS)是指放大器、继电器、或其它电路达到稳定操作模式的时间,如图8‑7所示。

 

图5‑7 数字IO稳定时间示意图

 

5.3.3 占空比

对于脉冲信号而言,占空比(Duty cycle)指波形高电平时间与波形周期的比例,占空比越低,其高电平时间越短,如图8‑8所示。

 

图5‑8 脉冲信号占空比实例

 

对计数、测频模块,需要标明被测信号最小占空比要求。对于PWM输出模块,需要标明能产生的占空比范围。

 

5.3.4 电压等级

1、单端数字IO电压等级

对于单端数字信号而言,电压等级通常是指驱动高电平信号或驱动低电平信号时输出端子上的电压;以及为了识别高电平或低电平时输入端子上所需的电压。一般而言,单端数字IO电压等级定义如下:

 

  • 输出高电平(Generation Voltage High Level) (VOH) :数字量输出IO在输出逻辑1时在输出端口上产生的电压值;

  • 输出低电平(Generation Voltage Low Level) (VOL):数字量输出IO在输出逻辑0时在输出端口上产生的电压值;

  • 输入高电平(Acquisition Voltage High Level) (VIH) :数字量输入IO判定输入为逻辑1时,输入端口上需要出现的最小电压值;

  • 输入低电平(Acquisition Voltage Low Level (VIL) :数字量输入IO判定输入为逻辑1时,输入端口上需要出现的最大电压值;

  • IOH:数字量输出IO输出为高电平时的最大负载电流(为拉电流);

  • IOL:字量输出IO输出为低电平时的最大负载电流(为灌电流);

  • IIH:数字量输入IO输入为高电平时从外部吸取的最大电流(为灌电流);

  • IIL:数字量输入IO输入为低电平时从外部吸取的最大电流(为拉电流)。

 

常见的逻辑电平电压等级如图5‑9所示。

 

图5‑9 常见逻辑电平电压标准

 

在将数字量IO设备相连时,必须考虑两个设备的电压等级是否兼容,数字量输入设备与输出设备的电压等级关系如所示。

 

图5‑10 数字量输入输出设备电压等级关系

 

输入输出设备连接要能正常工作,必须满足如下条件:

 

输出设备VOH ≥ 输入设备VIH

输出设备VOL ≤ 输入设备 VIL

输出设备 IOH ≥ 输入设备 IIH

输出设备 IOL ≥ 输入设备 IIL

 

2、噪声容限

能保证正常识别数字信号所允许出现的噪声极限称为噪声容限(noise immunity margin, NIM),噪声容限越大说明容许的噪声越大,抗干性越好。

 

NIM代表能正常识别数字信号所能允许的最大噪声幅度,计算公式如下:

NIM = [ min ( |输出设备VOH - 输入设备VIH |, |输入设备 VIL - 输出设备VOL | ) ]

 

当数字量输入、输出使用长距离信号线或工作现场有强干扰时,我们需要考虑噪声容限,必要时可以考虑使用屏蔽信号线。对于应用于工业场合的数字量IO设备,应该尽量提高其噪声容限,对输出设备而言,可以提高VOH,降低VOL;对于输入设备则可降低VIH,提高VIL。

 

5.3.5 灌/拉输出

灌、拉是定义控制直流电流在负载中流向的术语,是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数。

灌和拉是与实现操作的元器件(如晶体管、机械继电器等)独立的概念。它适用于任何DC电路,而实现电路的元器件可能各异。

 

1、灌电流设备

提供电流至接地端的通路,和设备供电无关。描述灌电流设备的术语有: NPN、集电极输出、常高及IEC负逻辑。

 

图8‑11 灌电流输出传感器

 

2、拉电流设备

拉电流设备提供电源或正电压。该类设备从负载上拉电流。描述拉电流设备的术语有:PNP, 发射极输出, 常低及IEC正逻辑。

 

图8‑12 拉电流输出传感器

5.4 工控产品数字量输出常见电路

 

在工业现场往往需要使用数字量信号来驱动外部的执行机构、显示灯等负载,数字量输出的含义是指这种类型的输出信号只有简单的两种状态:不是高电平就是低电平,也可以理解为开(ON)或者关(OFF)两种状态。

 

对于工业现场所需要的数字量信号,也具有多种电压等级,这就需要通过不同的输出驱动电路来实现。同时采用不同的输出器件可以使数字量输出信号具有不同的输出形式,如三极管输出,机械继电器输出、固态继电器输出、双向可控硅输出等。

 

根据输出信号与输出电路是否需要共地,可以采用非隔离或者隔离输出的方式,下面分别一一介绍。在设计数字量输出电路时,必须根据输出信号的类型选用合适的电路,例如输出信号的电压等级,输出信号的负载能力,输出触点类型。

 

5.4.1 非隔离型数字量输出电路

 

如图5-13所示为最常用的非隔离数字量输出电路为三极管集电极开路输出电路,三极管通常除了用作放大器,但是也可以用来作为有效开关。三极管可以在基极电流的控制下完成截止状态和饱和状态之间的切换操作,并以此实现开关的功能。

 

图5-13 集电极开路输出电路

 

注意:集电极开路输出电路必须外接上拉电阻才能正常工作,当内部输出端DO为低电平时,则三极管Q1截止,DO_P引脚被上拉至高电平;当内部输出端DO为高电平,则三极管Q1导通。如果基极电流足够大的话,则三极管将会达到饱和状态。在理想状态下,集电极与地之间为短路状态。一般来说,集电极与地之间的压降约为0.3V,因此在等效电路中,集电极的输出为零电压,DO_P引脚输出为低电平信号。

 

当将多个集电极开路输出电路并在一起时,则实现“线与”的功能,并且输出电压是由外接电源来决定的,但外接电源受到三极管额定VCEO 的限制,比如,SS8050的额定VCEO 为25V,所以外接电源的最大电压为25V。

 

5.4.2 隔离数字量输出电路

 

“隔离型”数字量输出电路与“非隔离型”的主要区别在于输出信号是否与输出电路共用“信号地”,在隔离型输出电路中,由于增加了隔离电源模块和光耦隔离器件,因此可以实现信号的隔离输出,详见图5‑14。

 

图5-14 光耦隔离数字量输出电路

 

U1隔离电源模块隔离出两个不同的信号地GND和GND_1,DO_P、DO_N端分别为输出信号的正端和负端。当内部输出端DO为高电平时,则输出回路的光电接收管不导通,此时三极管Q1的基极为高电平,即三极管Q1导通,如果基极电流足够大,则三极管将会达到饱和状态。在理想情况下,集电极与地之间为短路状态。一般来说,集电极与地之间的压降约为0.3V,因此在等效电路中,集电极的输出为零电压,DO_P引脚输出为低电平信号。当内部输出端DO为低电平时,则输出回路光电接收管导通,此时三极管Q1的基极为低电平,即三极管Q1截止,DO_P引脚被上拉至高电平。注意:这里输出三极管对输出状态起到了反相的作用。

 

电路中使用的DC-DC隔离电源模块ZY0505BLS-1W的隔离电压为2000V,光电耦合器TCMT1107的隔离电压为2500V,因此可以适用于绝大多数严酷的工业场合。

 

由于上述电路的最大输出频率只有10KHz,因此可以通过选用更小的电阻R1改善光耦的导通时间,并相应的减少R2电阻减少光耦的关断时间。当R1和、R2分别为300Ω和1KΩ时,则上述电路的最大输出频率可以达到50KHz。但是R1取值不能过小,因为DO端口直接连接到MCU,因为过小的电阻会导致灌电流过大,可能会烧毁MCU的管脚。

 

当输出频率超过100KHz的时,可以采用磁耦隔离器件来代替光耦隔离器件,磁耦隔离数字量输出电路详见图8‑15。

 

图5-15 磁耦隔离数字量输出电路

 

由于SS8050三极管在输出频率提高时的退饱和时间过长,从而将会严重地影响输出信号,因此直接去掉了三极管采用磁耦器件输出。该磁耦器件U2有两个输入端口DO1和DO2,当DO1或DO2超过U2高电压门限值时,则DO1_P或DO2_P输出高电平;当DO1或DO2低于U2的低电平门限值时,则DO1_P或DO2_P输出低电平。

 

上述电路中的DO1和DO2可以直接连接MCU的输出管脚,当MCU的输出电流为4mA的时,电路的最大输出频率可以达到10MHz。

 

5.4.3 继电器输出电路

 

上面提到的全是电压型数字量输出信号,但在很多的实际应用场合中,常常也需要无源触点型的输出信号,电磁继电器就是一种最常用的能够提供触点开关的器件。

 

电磁继电器是通过控制输入线圈的电流来完成内部机械开关的切换。电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。

 

图5-16 继电器等效示意图

 

如图8‑16所示为继电器等效示意图,PN侧是控制端,而ABC边是被控制侧。当PN边的线圈通电后,将会对G处的簧片产生吸引力,从而使簧片切换到左侧,使得AC开关导通。由图可以看到两边的线路只是通过磁场进行联系,并没有电联系,因此继电器输出同样是一种隔离型的开关信号输出。

 

根据电磁继电器的原理可以设计出如图8‑17所示的继电器输出电路。由于继电器的线圈一般需要较大的电流,因此输出端DO控制信号通过三极管Q1放大后驱动继电器的线圈。当内部输出端DO为低电平时,三极管Q1截止,继电器的线圈没有电流,继电器的输出开关不动作。内部输出端DO为高电平,三极管Q1导通,继电器的线圈有电流,使继电器的输出开关动作,完成输出的开关状态切换。二极管D1作为续流二极管,给继电器线圈提供续流通道,避免由于三极管Q1由导通进入截止状态时,继电器线圈的感性特性对输出电路造成影响,甚至于损坏输出电路。

 

图5-17 继电器输出电路

 

电路中使用的二极管D1必须要有很快速的导通和关断特性,因为当线圈断电时二极管还没有及时导通巨大的反向电动势就可能已经将外围电路损坏了,所以电路中使用了具有快速恢复特性的肖特基二极管起到了很好的保护作用。

 

5.4.4 多通道数字量输出电路

 

上述电路都是单通道的数字量输出电路,但在实际的工业场合也会有多通道的数字量输出应用,如图5‑18所示为一个8通道隔离数字量输出电路。

 

图5-18 8通道隔离数字量输出电路

 

MCU的输出信号D[7:0]通过74LVC574调理后控制光耦的开关,光耦的输出信号直接连到ULN2803。ULN2803内部集成了8个达林顿管每个通道可以输出最大200mA的电流,其输出方式为集电极开路,作为数字量方式输出的时候必须外接上拉电阻。

 

上述电路为8路的隔离数字量输出电路,如果不需要隔离的时候可以将光耦去掉,当需要高速隔离输出的时候可以采用磁耦代替光耦。

 

5.4.5 多通道隔离数字信号模块

 

通过上述介绍的电路可以看出,使用分立器件构成的数字量输出电路,不仅器件多、占用PCB面积较大,而且多器件所带来的可靠性、加工的复杂度与后期的维护都将导致成本的增加,于是2路、4路和8路多通道隔离数字信号模块应运而生,详见表5.1。

 

表5.1 多通道隔离数字信号模块

产品系列号

输入电压(V)

隔离电压 (VDC)

通道数目

波特率(bps)

备注

IDP1202LD

4.75-5.25

2500

2

9600

低速

IDP1202HD

4.75-5.25

2500

2

1M

高速

IDP1404LD

4.75-5.25

2500

4

9600

低速

IDP1404HD

4.75-5.25

2500

4

1M

高速

IDP1808LD

4.75-5.25

2500

8

9600

低速

IDP1808HD

4.75-5.25

2500

8

1M

高速

 

现以IDP1202HD为例来介绍信号模块特性,它的内部集成了电源隔离与信号隔离功能部件,1W的隔离电源可给外部电路供电,信号传输速度高达1Mbps(NRZ),隔离耐压高达2500VDC,工作温度范围在-40℃ ~ +85℃,主要应用于I/O口 隔离,时钟信号隔离,数字信号隔离等场合。

 

如图所示是使用隔离数字信号模块组成的输出电路,其提供了两路隔离电机控制电路,可以直接驱动三级管,D1、D2为继电器续流电路,防止继电器关断时产生的高压烧毁三极管,通过IDP1202HD的隔离可以有效地抑制电机及继电器开关对MCU的干扰。

 

图5-19 IDP1202HD数字隔离输出电路

 

5.5 工控产品数字量输入常见电路

 

数字量输入信号是工业现场最常见的信号之一,数字量输入信号可以分为“电压型数字量信号”和“无源触点型数字量信号”又称“湿节点数字量信号”和“干节点数字量信号”,详见图5‑20。电压型数字量信号一般为传感器的输出信号,例如接近开关的输出;无源触点型信号一般为继电器的输出、按钮开关输出等。

 

图5-20 数字量输入信号分类

 

常见的电压型数字量输入信号按照电压等级可以划分为:直流5V、12V、24V、48V。因此在处理开关量输入信号时,需要根据电压等级采用合适的电路进行处理,例如如果输入信号电压等级较高则需要进行变换后,再通过输入电路进行采集。数字量输入信号逻辑定义详见表8.2。对于不同电压等级的数字量信号,其高、低电平范围一般是不同的,需要根据具体情况进行规定。

 

根据输入信号与输入电路是否需要共地,可以采用“非隔离输入”或者“隔离输入”的方式,下面分别介绍。在设计数字量输入电路时,必须根据外部输入信号的类型选用合适的电路,例如输入信号的电压等级,输入信号的高低电平范围,是否为无源开关信号。

 

表5.2 数字量输入信号逻辑定义

输入信号类型

信号定义

电压型

数字量信号

高电平信号

状态 1

低电平信号

状态0

无源触点型

数字量信号

开路触点信号(OFF状态)

状态1

闭合触点信号(ON状态)

状态0

 

5.5.1 非隔离数字量输入电路

 

如图8‑21所示为非隔离的数字量输入电路,其输入信号与输入电路共用信号地,此电路可以同时支持干节点和湿节点。对于电压型输入信号,当外部输入信号为高电平时,输入端二极管D1不导通,输入端DI+被上拉为高电平;当外部输入信号为低电平时,输入端二极管D1导通,输入端DI+被拉至低电平。对于无源触点型信号,当开关触点闭合时,输入端二极管D1导通,输入端DI+被拉至低电平;当开关触点断开时,输入端二极管D1截止,输入端DI+被拉至高电平。

 

图5-21 非隔离数字量输入电路

 

上述电路中输入最大电压由二极管D1的最大反向耐压VRRM 决定的,IN5819的VRRM 为40V,所以允许的最大输入电压为45V,同时IN5819具有快速恢复的特性可以提高输入电压信号的频率特性。

 

5.5.2 隔离数字量干节点输入电路

 

如图8‑22所示为隔离数字量干节点输入电路,其中的DIN+、DIN-连接到触点开关的两端,U1隔离电源模块隔离出两个不同的信号地GND_2和GND_1,DI+端和DI-端分别为输入信号的正端和负端,电容C5起到一定的滤波作用,电阻R1起到限流的作用并保证足够大的驱动电流能够使光耦输入、输出回路导通。当开关闭合时,光耦U2输入回路二极管导通,输出回路光电接收管导通,输入端DI+为低电平;当开关断开时,光耦U2输入回路二极管截止,输出回路光电接收管截止,输入端DI+被电阻R3上拉为高电平。

 

图5-22 隔离数字量干节点输入电路

 

在实际的应用中,为了保护隔离电源U1的输出不至于过流而被损坏,在U1的输出端串接自恢复保险丝F1来防止过流。

 

为了保证上述干节点输入电路正常工作,当外接开关量传输距离过长时还必须要考虑线缆的传输电阻。如图8‑23所示,传输电缆的长度为500m,其等效传输电阻为R4和R5,TCMT1107光耦在常温下的导通电流为1mA,当外接开关闭合时,如果要使光耦正常导通则R1+R4+R5的电阻总和必须小于4 KΩ,所以适当的减小R1电阻可以提高干节点的有效传输距离,但是光耦的导通电流有一个最大的上限值,因此R1电阻不能过小否则会烧坏光耦器件。

 

图5-23 干节点传输电缆示意图

 

5.5.3 隔离数字量湿节点输入电路

 

如图5‑24所示为光耦隔离数字量湿节点输入电路,DIN+、DIN-端分别为电压型数字量输入信号的正端和负端,注意此电路没有使用隔离电源模块,因为光耦的输入回路的二极管完全是由外部输入电压控制的,其输入电路和输入信号的地仍为不同的地,所以此电路具有隔离的作用。二极管D1用于防止输入信号的反接损坏输入端口,电阻R1保证在高电平信号输入时限制输入电流大小,并保证足够大的驱动电流能够使光耦输入,电容C1可以起到对输入信号中高频干扰信号的滤出作用。当输入信号为高电平时,光耦U1输入回路二极管导通,输出回路光电接收管导通,输入端DI+为低电平;当输入信号为低电平时,光耦U1输入回路二极管截止,输出回路光电接收管截止,输入端DI+被电阻R3上拉为高电平。

 

图5-24 光耦隔离数字量湿节点输入电路

 

上述电路中输入电压的最大值由光耦的最大导通电流IF、R1电阻值以及D1二极管的反向耐压VRRM决定,其中TCMT1107的最大导通电流是60mA,R1为1 KΩ,输入60V的电压可以保证光耦器件不损坏,但是IN5819的最大反向耐压只有40V,因此允许输入的最大电压为40V。

 

图8-25 磁耦隔离数字量湿节点输入电路

 

上述电路最大的输入电压的频率只有10KHz,如果需要采集更高频率的输入电压,可以用磁耦隔离器件代替光耦隔离器件,如图8‑25所示为磁耦隔离数字量湿节点输入电路。

 

为了提高输入频率特性去掉了二极管D1和电容C1直接采用磁耦器件作为输入器件。该磁耦器件U2有两个输入端口DI1和DI2,当DI1或DI2超过U2高电压门限值DI1_P或DI2_P输出高电平,当DI1或DI2低于U2的低电平门限值DI1_P或DI2_P输出低电平。

 

由于受磁耦器件ADUM1200的限制,上述电路的输入电压最大值只有5V。当输入电压的驱动电流超过4mA时其最大的输入频率可以达到10MHz。

 

5.5.4 干节点/湿节点二合一电路

 

如图8‑26所示为隔离数字量干节点/湿节点二合一电路,DIN0+和DIN0-分别为湿节点的两个输入端,DIN1+和DIN1-分别为干节点的两个输入端,J1为干湿节点选择的跳线帽。

 

当J1将A和B短接后就是标准的干节点输入电路,将B和C短路后就变成了标准的湿节点输入电路,其中二极管D1的作用——防止湿节点输入接反时导致U2的发光二极管损坏。

 

在实际的应用中,为了保护隔离电源U1的输出不至于过流而被损坏,在U1的输出端串接自恢复保险丝F1来防止过流。

 

图5-26 隔离数字量干节点/湿节点二合一电路

 

电路中使用跳线帽来切换干湿节点,但是跳线帽在一些对振动性要求很高的工业场合并不适用,在一些严酷的工业环境下可以采用拨码开关或者数字开关来代替跳线帽使用。

 

5.5.5 多通道数字量输入电路

 

上述电路都是单通道的数字量输入电路,在实际的工业场合也会有多通道的数字量输入应用,如图8‑27所示为一个8通道非隔离数字量输入电路。输入信号DIN经过输入电路调理后通过74HC245连接到单片机,通过读输出端口数据即可获得输入信号状态。

 

上述电路为8通道非隔离数字量输入电路,如果需要隔离可以在输入端口加入光耦或者磁耦器件。

 

图5-27 8通道非隔离数字量输入电路

 

多通道信号隔离数字信号模块不仅可以构成输出电路,同样也可以构成输入电路,使用双通道数字隔离器件IDP1202 HD构成的典型数字信号输入应用电路详见图 5‑28。该电路包括有源数字量输入和无源数字量输入,无源设备按键通过IDP1202HD自带的隔离电源为其供电。如果输入信号为有源设备,则需要保护端口,根据输出电压适当的选择R2、R3的阻值,D1选择5.1V的稳压二级管,通过对输入信号隔离之后,则可以有效地减小外部信号对MCU的干扰。

 

图5-28 IDP1202HD数字隔离输入电路

嵌入式硬件设计:SoC开发、电源设计、人机交互设计

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值