干货 | PCB设计经验之模拟电路和数字电路区别为何那么大

工程领域中的数字设计人员和数字电路板设计专家在不断增加,这反映了行业的发展趋势。尽管对数字设计的重视带来了电子产品的重大发展,但仍然存在,而且还会一直存在一部分与模拟或现实环境接口的电路设计。模拟和数字领域的布线策略有一些类似之处,但要获得更好的结果时,由于其布线策略不同,简单电路布线设计就不再是最优方案了。


本文就旁路电容、电源、地线设计、电压误差和由PCB布线引起的电磁干扰(EMI)等几个方面,讨论模拟和数字布线的基本相似之处及差别。 

1 模拟和数字布线策略的相似之处

旁路或去耦电容


在布线时,模拟器件和数字器件都需要这些类型的电容,都需要靠近其电源引脚连接一个电容,此电容值通常为0.1uF。系统供电电源侧需要另一类电容,通常此电容值大约为10uF。


这些电容的位置如图1所示。电容取值范围为推荐值的1/10至10倍之间。但引脚须较短,且要尽量靠近器件(对于0.1uF电容)或供电电源(对于10uF电容)。

  

upfile

 

图1


在电路板上加旁路或去耦电容,以及这些电容在板上的位置,对于数字和模拟设计来说都属于常识。但有趣的是,其原因却有所不同。


在模拟布线设计中,旁路电容通常用于旁路电源上的高频信号,如果不加旁路电容,这些高频信号可能通过电源引脚进入敏感的模拟芯片。一般来说,这些高频信号的频率超出模拟器件抑制高频信号的能力。如果在模拟电路中不使用旁路电容的话,就可能在信号路径上引入噪声,更严重的情况甚至会引起振动。

在模拟和数字PCB设计中,旁路或去耦电容(0.1uF)应尽量靠近器件放置。供电电源去耦电容(10uF)应放置在电路板的电源线入口处。所有情况下,这些电容的引脚都应较短。

 

upfile

图2 

在图2此电路板上,使用不同的路线来布电源线和地线,由于这种不恰当的配合,电路板的电子元器件和线路受电磁干扰的可能性比较大。

upfile

图3 

在图3此单面板中,到电路板上器件的电源线和地线彼此靠近。此电路板中电源线和地线的配合比图2中恰当。电路板中电子元器件和线路受电磁干扰(EMI)的可能性降低了679/12.8倍或约54倍。  

对于控制器和处理器这样的数字器件,同样需要去耦电容,但原因不同。这些电容的一个功能是用作“微型”电荷库。


在数字电路中,执行门状态的切换通常需要很大的电流。由于开关时芯片上产生开关瞬态电流并流经电路板,有额外的“备用”电荷是有利的。如果执行开关动作时没有足够的电荷,会造成电源电压发生很大变化。电压变化太大,会导致数字信号电平进入不确定状态,并很可能引起数字器件中的状态机错误运行。


流经电路板走线的开关电流将引起电压发生变化,电路板走线存在寄生电感,可采用如下公式计算电压的变化:V = LdI/dt。其中:V = 电压的变化,L = 电路板走线感抗,dI = 流经走线的电流变化,dt =电流变化的时间。  

因此,基于多种原因,在供电电源处或有源器件的电源引脚处施加旁路(或去耦)电容是较好的做法。

电源线和地线要布在一起


电源线和地线的位置良好配合,可以降低电磁干扰的可能性。如果电源线和地线配合不当,会设计出系统环路,并很可能会产生噪声。

电源线和地线配合不当的PCB设计示例如图2所示,此电路板上,设计出的环路面积为697cm²。采用图3所示的方法,电路板上或电路板外的辐射噪声在环路中感应电压的可能性可大为降低。

  

2模拟和数字领域布线策略的不同之处

地平面是个难题


电路板布线的基本知识既适用于模拟电路,也适用于数字电路。一个基本的经验准则是使用不间断的地平面,这一常识降低了数字电路中的dI/dt(电流随时间的变化)效应,这一效应会改变地的电势并会使噪声进入模拟电路。


数字和模拟电路的布线技巧基本相同,但有一点除外。对于模拟电路,还有另外一点需要注意,就是要将数字信号线和地平面中的回路尽量远离模拟电路。这一点可以通过如下做法来实现:将模拟地平面单独连接到系统地连接端,或者将模拟电路放置在电路板的最远端,也就是线路的末端。这样做是为了保持信号路径所受到的外部干扰最小。


对于数字电路就不需要这样做,数字电路可容忍地平面上的大量噪声,而不会出现问题。

 

upfile

图4

图4 (左)将数字开关动作和模拟电路隔离,将电路的数字和模拟部分分开。 (右) 要尽可能将高频和低频分开,高频元件要靠近电路板的接插件。

 

upfile

图5

图5在PCB上布两条靠近的走线,很容易形成寄生电容。由于这种电容的存在,在一条走线上的快速电压变化,可在另一条走线上产生电流信号。    

 

upfile

图6

图6如果不注意走线的放置,PCB中的走线可能产生线路感抗和互感。这种寄生电感对于包含数字开关电路的电路运行是非常有害的。

元件的位置


如上所述,在每个PCB设计中,电路的噪声部分和“安静”部分(非噪声部分)要分隔开。一般来说,数字电路“富含”噪声,而且对噪声不敏感(因为数字电路有较大的电压噪声容限);相反,模拟电路的电压噪声容限就小得多。


两者之中,模拟电路对开关噪声最为敏感。在混合信号系统的布线中,这两种电路要分隔开,如图4所示。

PCB设计产生的寄生元件


PCB设计中很容易形成可能产生问题的两种基本寄生元件:寄生电容和寄生电感。


设计电路板时,放置两条彼此靠近的走线就会产生寄生电容。可以这样做:在不同的两层,将一条走线放置在另一条走线的上方;或者在同一层,将一条走线放置在另一条走线的旁边,如图5所示。  

在这两种走线配置中,一条走线上电压随时间的变化(dV/dt)可能在另一条走线上产生电流。如果另一条走线是高阻抗的,电场产生的电流将转化为电压。  

快速电压瞬变最常发生在模拟信号设计的数字侧。如果发生快速电压瞬变的走线靠近高阻抗模拟走线,这种误差将严重影响模拟电路的精度。在这种环境中,模拟电路有两个不利的方面:其噪声容限比数字电路低得多;高阻抗走线比较常见。  

采用下述两种技术之一可以减少这种现象。最常用的技术是根据电容的方程,改变走线之间的尺寸。要改变的最有效尺寸是两条走线之间的距离。应该注意,变量d在电容方程的分母中,d增加,容抗会降低。可改变的另一个变量是两条走线的长度。在这种情况下,长度L降低,两条走线之间的容抗也会降低。  

另一种技术是在这两条走线之间布地线。地线是低阻抗的,而且添加这样的另外一条走线将削弱产生干扰的电场,如图5所示。  电路板中寄生电感产生的原理与寄生电容形成的原理类似。也是布两条走线,在不同的两层,将一条走线放置在另一条走线的上方;或者在同一层,将一条走线放置在另一条的旁边,如图6所示。

在这两种走线配置中,一条走线上电流随时间的变化(dI/dt),由于这条走线的感抗,会在同一条走线上产生电压;并由于互感的存在,会在另一条走线上产生成比例的电流。如果在第一条走线上的电压变化足够大,干扰可能会降低数字电路的电压容限而产生误差。并不只是在数字电路中才会发生这种现象,但这种现象在数字电路中比较常见,因为数字电路中存在较大的瞬时开关电流。  

为消除电磁干扰源的潜在噪声,最好将“安静”的模拟线路和噪声I/O端口分开。要设法实现低阻抗的电源和地网络,应尽量减小数字电路导线的感抗,尽量降低模拟电路的电容耦合。

3结语


数字和模拟范围确定后,谨慎地布线对获得成功的PCB至关重要。布线策略通常作为经验准则向大家介绍,因为很难在实验室环境中测试出产品的最终成功与否。因此,尽管数字和模拟电路的布线策略存在相似之处,还是要认识到并认真对待其布线策略的差别。

### 回答1: Spark Streaming 和 Flink 都是流处理框架,但在一些方面有所不同。 1. 数据处理模型 Spark Streaming 基于批处理模型,将流数据分成一批批进行处理。而 Flink 则是基于流处理模型,可以实时处理数据流。 2. 窗口处理 Spark Streaming 的窗口处理是基于时间的,即将一段时间内的数据作为一个窗口进行处理。而 Flink 的窗口处理可以基于时间和数据量,可以更加灵活地进行窗口处理。 3. 状态管理 Spark Streaming 的状态管理是基于 RDD 的,需要将状态存储在内存中。而 Flink 的状态管理是基于内存和磁盘的,可以更加灵活地管理状态。 4. 容错性 Flink 的容错性比 Spark Streaming 更加强大,可以在节点故障时快速恢复,而 Spark Streaming 则需要重新计算整个批次的数据。 总的来说,Flink 在流处理方面更加强大和灵活,而 Spark Streaming 则更适合批处理和数据仓库等场景。 ### 回答2: Spark Streaming 和 Flink 都是流处理框架,它们都支持低延迟的流处理和高吞吐量的批处理。但是,它们在处理数据流的方式和性能上有许多不同之处。下面是它们的详细比较: 1. 处理模型 Spark Streaming 采用离散化流处理模型(DPM),将长周期的数据流划分为离散化的小批量,每个批次的数据被存储在 RDD 中进行处理,因此 Spark Streaming 具有较好的容错性和可靠性。而 Flink 采用连续流处理模型(CPM),能够在其流处理过程中进行事件时间处理和状态管理,因此 Flink 更适合处理需要精确时间戳和状态管理的应用场景。 2. 数据延迟 Spark Streaming 在处理数据流时会有一定的延迟,主要是由于对数据进行缓存和离散化处理的原因。而 Flink 的数据延迟比 Spark Streaming 更低,因为 Flink 的数据处理和计算过程是实时进行的,不需要缓存和离散化处理。 3. 机器资源和负载均衡 Spark Streaming 采用了 Spark 的机器资源调度和负载均衡机制,它们之间具有相同的容错和资源管理特性。而 Flink 使用 Yarn 和 Mesos 等分布式计算框架进行机器资源调度和负载均衡,因此 Flink 在大规模集群上的性能表现更好。 4. 数据窗口处理 Spark Streaming 提供了滑动、翻转和窗口操作等灵活的数据窗口处理功能,可以使用户更好地控制数据处理的逻辑。而 Flink 也提供了滚动窗口和滑动窗口处理功能,但相对于 Spark Streaming 更加灵活,可以在事件时间和处理时间上进行窗口处理,并且支持增量聚合和全量聚合两种方式。 5. 集成生态系统 Spark Streaming 作为 Apache Spark 的一部分,可以充分利用 Spark 的分布式计算和批处理生态系统,并且支持许多不同类型的数据源,包括Kafka、Flume和HDFS等。而 Flink 提供了完整的流处理生态系统,包括流SQL查询、流机器学习和流图形处理等功能,能够灵活地适应不同的业务场景。 总之,Spark Streaming 和 Flink 都是出色的流处理框架,在不同的场景下都能够发挥出很好的性能。选择哪种框架取决于实际需求和业务场景。 ### 回答3: Spark Streaming和Flink都是流处理引擎,但它们的设计和实现方式有所不同。在下面的对比中,我们将比较这两种流处理引擎的主要特点和差异。 1. 处理模型 Spark Streaming采用离散流处理模型,即将数据按时间间隔分割成一批一批数据进行处理。这种方式可以使得Spark Streaming具有高吞吐量和低延迟,但也会导致数据处理的粒度比较粗,难以应对大量实时事件的高吞吐量。 相比之下,Flink采用连续流处理模型,即数据的处理是连续的、实时的。与Spark Streaming不同,Flink的流处理引擎能够应对各种不同的实时场景。Flink的实时流处理能力更强,因此在某些特定的场景下,它的性能可能比Spark Streaming更好。 2. 窗口计算 Spark Streaming内置了许多的窗口计算支持,如滑动窗口、滚动窗口,但支持的窗口计算的灵活性较低,只适合于一些简单的窗口计算。而Flink的窗口计算支持非常灵活,可以支持任意窗口大小或滑动跨度。 3. 数据库支持 在处理大数据时,存储和读取数据是非常重要的。Spark Streaming通常使用HDFS作为其数据存储底层的系统。而Flink支持许多不同的数据存储形式,包括HDFS,以及许多其他开源和商业的数据存储,如Kafka、Cassandra和Elasticsearch等。 4. 处理性能 Spark Streaming的性能比Flink慢一些,尤其是在特定的情况下,例如在处理高吞吐量的数据时,在某些情况下可能受制于分批处理的架构。Flink通过其流处理模型和不同的调度器和优化器来支持更高效的实时数据处理。 5. 生态系统 Spark有着庞大的生态系统,具有成熟的ML库、图处理库、SQL框架等等。而Flink的生态系统相对较小,但它正在不断地发展壮大。 6. 规模性 Spark Streaming适用于规模小且不太复杂的项目。而Flink可扩展性更好,适用于更大、更复杂的项目。Flink也可以处理无限制的数据流。 综上所述,Spark Streaming和Flink都是流处理引擎,它们有各自的优缺点。在选择使用哪一个流处理引擎时,需要根据实际业务场景和需求进行选择。如果你的业务场景较为复杂,需要处理海量数据并且需要比较灵活的窗口计算支持,那么Flink可能是更好的选择;如果你只需要简单的流处理和一些通用的窗口计算,Spark Streaming是更为简单的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值