历史上的今天
今天是:2025年06月15日(星期日)
2021年06月15日 | BER(比特误码率)测量 - 32 GBd 以上的实时误码检测
2021-06-15 来源:eefocus
本文详细说明了如何使用 BER 测试解决方案中的 M8070A 系统软件,控制 M8045A 码型发生器和 DSAZ634A Infiniium Z 系列示波器来执行 BER(比特误码率)测量。推出此解决方案的目的是实现 32 GBaud 以上数据速率的 BER 测量。本文解释了这种方法与传统 BER 测量方法之间的基本差别,两者都使用相同的 M8045A PG 来生成数据流,但传统方法使用 M8040A 高性能 BERT(比特误码率测试仪)来执行测量。文中首先说明了这个测试装置的硬件和软件配置,其中使用实时示波器作为码型捕获前端。接下来讨论了 BER 的测量细节,包括各种数据速率下的 BER 变化,完成测量所需的时间,以及实时示波器的输入灵敏度。最后,我们详细对比了 BERT 和基于实时示波器的方法之间的差异。
使用实时示波器和 M8070A 软件进行比特误码率 BER 测量的配置
最低要求
为了将实时示波器与M8070A 软件成功整合,必须保证满足以下要求。
– 支持的示波器型号:
– DSOZ634A
– DSAZ634A
– DSOX96204Q
– DSAX96204Q
– 示波器固化软件版本:06.10.00614 或更高版本
– 示波器需要以下许可证
– N5384A 串行数据分析(SDA)
– N8827A PAM-4 测量(PM4)
– N5461A 均衡(DEQ)
– M8070A 软件版本:4.0 或更高版本
硬件
在本应用指南中,使用码型发生器(PG)和示波器之间的直接环回配置来测量 BER,而没有使用真正的 DUT;因此,示波器直接获得由码型发生器生成的比特码型。此装置所需的硬件组件包括:上面提到的示波器型号之一、M8040A BERT 系列仪器中的 M8045A 码型发生器(PG)和电缆附件。M8045A PG 通道 1 及其远程前端 M8057A 的差分输入通过 M8057A 连接到 DSAZ634A 示波器的 RealEdge 输入。
必须使用合适的电缆,以保证信号质量。我们建议使用 M8045A-801 1.85 mm(阳头)至 1.85 mm(阳头)短电缆、11900B 阴头至阴头适配器以及 M8046A-802 2.4 mm 0.85 m 长配套电缆对的组合来连接远程前端和示波器。示波器和装有 M8045A PG 的 AXIe 机箱都必须通过 USB 或 HiSLIP 端口连接到装有 M8070A 软件(4.0 或更高版本)的控制 PC。

图 1. 连接设置:由 M8070A 控制的实时示波器
软件
首次设置
首次进行设置时,我们需要采取一些额外的步骤。将实时示波器连接到 PC 后,从 IO Libraries Suite(IO 程序库套件)打开 Connection Expert,并检查是否显示示波器。如果连接成功,则应显示出示波器。单击左侧图标,右侧将显示示波器的所有详细信息。请将此仪器的签证别名更改为以下之一:RTS_PROXY, RTS_PROXY、RTS_PROXY_1、 RTS_PROXY_2、RTS_PROXY_3 或 RTS_PROXY_4。完成此操作后,仪器即可成功集成到 M8070A 软件中。下面的图 2 显示了这一过程。

图 2. IO 程序库套件中的 Connection Expert
正常设置
在 BER 测量期间以这种方式修改接口,不需要使用示波器的用户界面。M8070A 软件中包含了所有必要的控件。完成硬件连接后,启动 M8045A PG(AXIe 机箱)和示波器。两种仪器都需要经过一定的预热时间,才能达到正常的工作状态。在预热完它们之后,可以启动 M8070A 软件。在初始化过程中,该软件将配置 M8045A PG 和示波器。在深入探讨 BER 测试的细节之前,我们先来快速了解一下 M8070A 软件中包含的示波器 控件。

图 3. M8070A 软件中集成的 Infiniium Z 系列示波器控件
成功启动 M8070A后,转到 Modules View 选项卡,如上所示。我们可以看到 INF1 作为一个单独的模块显示,将示波器当成 M8040A 模块(例如 M8045A PG 或 M8046A ED)。
如图 3 所示,控件分为两个选项卡:Common 和 Data In。在 Common 选项卡中设置通用测量参数。如上所示,我们可以看到 Common 选项卡包含 Acquisition 和 Horizontal 等子选项卡。Acquisition 子选项卡控制采集相关参数,如采样率、存储器深度等,还可以通过 Reconfigure 选项来重新配置示波器。如果将外部参考时钟应用于示波器,则 Horizontal 子选项卡可以选择激活或取消激活此类参考输入。Data In 选项卡控制与示波器输入相关的参数。它包括 Acquisition、Clock、Equalization、Line Coding、Compar-ator 和 CDR(时钟数据恢复)等子选项卡。需要注意的一个重要特性是 Auto Alignment (自动校准)功能(在图 3 中 BER 结果旁边显示)。实时示波器没有此功能。此功能与 M8040A 系列 BERT 的自动校准功能不完全相同,后者用于搜索最宽的眼图开启度,其电压阈值和采样点(时延)在眼图上方呈阶梯状显示。此处的自动校准功能可优化采样阈值、时延和均衡器。在开始测量之前或更改任何上述测量参数(例如数据速率、线路编码类型等)时,必须进行自动校准。例如,在一开始按照需要设置完所有选项后,点击自动校准,软件将通过调整时延和电压阈值自动找到开启度最宽的眼图,并将生成尽量低的 BER 测量结果。如果对输入数据执行均衡,则自动校准将首先优化未均衡的信号以找到最宽的眼图开启度,然后使用给定的参数集(例如抽头和预抽头)优化均衡过程,最后将重新优化均衡信号,以找到最宽的眼睛开启度。通过这种方式,自动校准可保证最佳的采样点和均衡器设置。我们还可以在 Comparator 和 Equalization 子选项卡中选择单独自动校准,以单独优化眼图开启度(时延和阈值)或均衡。
BER (比特误码率) 测量
使用 M8040A BERT
传统的 BERT 使用较为直接的比特误码测试方法,即发送已知的比特码型并检查实时接收的比特,通过两者对比来计算误码率。然后由码型发生器、DUT 或时钟恢复单元为误码检测器提供时钟。
使用实时示波器(独立)
PAM-4 信号的 BER(比特误码率)和 SER(符号误码率)测量在采集中不但需要时钟恢复,还需要同样重复的比特码型的至少两个无误码副本。通常使用 PRBS 测试码型。示波器将这些副本存储到存储器中,然后将后面测得的比特码型与这些保存的码型进行比较,从而确定 BER。此功能不适用于 NRZ 码型,而且采集存储器也限制了码型的长度。BER 测量分为两种方式:单次采集 BER:每次采集输入比特码型时的 BER 值;累积 BER:到目前为止所有采集的总 BER 值。
使用由 M8070A 控制的实时示波器
这种方法使用 M8070A 软件来控制实时示波器。在这种情况下,实时示波器仅用于捕获信号并将其转换为符号级(相当于数字化仪),与预期码型的比较由 M8070A 完成。与使用示波器作为误码检测器的方案相比,这种方法的主要优点是:
1. 与预期码型比较而不是与存储的码型比较(如果使用实时示波器,那么存储的码型可能已经存在系统误码)。
2. 它也适用于较长的 PRBS 码型(例如 PRBS 2^31 或 QPRBS31)。
3. 它既适用于 NRZ,也适用于 PAM-4(实时示波器仅支持 PAM-4)。
4. 它可以使用 M8070A 中的所有测量功能,例如抖动容限测量。
在讨论了测量 BER 的方法之后,现在让我们看看如何使用 M8070A 软件控制实时示波器进行 BER 测量。
测量 BER 比特误码率的关键设置(单次采集)
成功启动 M8070A 软件后,我们需要按照正确的顺序使用实时示波器进行 BER 测量。
第 1 步 — PG 设置:
在 M8070A 软件的 M8045A PG 部分下
– 将码型设置为 PAM-4(仅限本例)
– 将数据速率调整为 26 GBaud(这是默认的速率设置)
– 将码型设置为 PRBS 2^15-1
– 将输入信号幅度设置为 300 mVpp
– 最后,启动输出放大器。
要检测 PAM-4 信号,还应根据 PG 配置示波器的时钟和线路编码类型。
第 2 步 — 实时示波器设置:
– 重新配置示波器(单击 Acquisition 选项卡下的 Reconfigure 选项)以刷新设置。
– 设置参数,包括时钟频率(在本例中默认为 26 GHz)、线路编码(PAM-4)、采集深度(128000)、环路带宽除数为 5000(在 Data In 选项卡的 CDR 部分下,在NRZ 情况下建议设置为 1667)。
– 从序列编辑器中选择必要的码型(在本例中为 PRBS 2^15-1),并保证它与 PG 的码型相同。
– 打开全局输出。
– 在 M8070A 软件的示波器 Common 选项卡下,将示波器的采集状态设置为 ON。
第 3 步 — 自动校准:
– 单击 Auto Alignment 执行自动校准,如第 5 页的图 3 所示。
完成自动校准后,我们应该在 M8070A 前屏幕的右下角看到 BER 0。
– 请注意,这个比特误码率 BER 0(在屏幕上显示)是单次采集的 BER 而不是累积 BER,并且是在 26 GBaud 的数据速率下评测的。点击 Auto Alignment 后,我们可以在示波器上看到与零 BER 相对应的清晰开眼,它也在 M8070A 屏幕上显示。随着我们逐渐提高数据速率,可以看到 BER 保持在 0,直到数据速率超过 50 GBaud 时开始出现误码,导致眼图变得极窄。要解决这个问题,建议在符号速率高于 50 GBaud 时,在直接环回配置中使用均衡功能。对实际 DUT 进行测量时,应在符号速率超过 45 GBaud 时就使用均衡功能。
– 如前所述,均衡功能也包含在 Data In 部分下的 Equalization 选项卡 这个部分使我们可以自由设置参数,例如 FFE(前馈均衡)抽头数和预抽头数。它还允许选择自动设置均衡器抽头。我们可以手动设置均衡的抽头,但如果我们增加抽头数量,测量速度会大大降低。默认情况下,均衡器设置为 5 个抽头和 1 个预抽头。应用均衡的常规程序很简单;选择抽头数(本例仍然是默认的 5 个抽头)并打开均衡。打开之后,均衡将应用于输入数据,之后我们可以看到开启度很大的优质眼图。必须进行自动校准才能保证设置均衡参数后,眼图张开得很宽。在示波器上可以看到这个眼图。通过均衡,我们可以在最高 58 GBaud 的符号速率下实现 0 BER。符号速率超过 58 Gbaud 后,信号失真过大,因此建议不要超过此限制。图 4 显示了在 56 GBaud 数据速率下使用和不使用均衡(9 抽头 FFE 和 3 个预抽头)的眼图。在图中我们可以清楚地看到,使用均衡后信号质量得到显著改善。

图 4. 在 56 GBaud 下使用均衡的眼图(下图)和没有使用均衡的眼图(上图)
测量累积 BER 比特误码率
如上所述,累积 BER 比特误码率是到当前测量为止所有采集的 BER 比特误码率之和。为了保证我们的系统能够将 BER 保持在特定阈值以上,需要定义一个目标 BER。目标 BER 是仪器(DUT)预期实现的指定 BER。换句话说,它是以特定值为目标的 BER;如果测量得出的 BER 小于目标 BER,即表示系统达到了规定的 BER。详细的 BER 测量方法侧重于在各种参数下测量 BER,由于它们都把重点放在测量指定时间间隔甚至是无限时间间隔的 BER,因此可以被视为累积 BER 测量的一部分。
有三种方法可以进行详细的 BER 比特误码率 测量:完整持续时间的 BER 测量、合格/不合格类型的 BER 测量,以及给定比特数的 BER 测量。所有这些选项都可以在 Accumulation End 子选项卡下找到。在完整持续时间 BER 测量中,您可以进行测量,并绘制指定时间范围内(累积持续时间)的结果图形。在合格/不合格测量中,您可以指定目标 BER,然后一直执行 BER 测量,直至达到指定目标 BER 的指定置信度。所实现的置信度与相比较的比特数之间存在统计关系(目标 BER 为 1E-6 时达到大约 95% 的置信度需要检查 300 万比特)。随着比较的比特数增加,置信度也会升高,直到遇到误码。如果遇到了误码,置信度会降低,同时测量继续执行。如果误码太多,以至于永远无法达到指定的置信度(换句话说,测得的 BER 大于目标 BER),则认为测量失败。通过指定累积持续时间,也可以限制这种 BER 测量的时间长度。在这种情况下,如果在指定的时间间隔内未能达到要求的置信度,则此测量也被认为失败。在第三种 BER 测量中,比较指定数量的比特并显示 BER 比特误码率。
本部分将详细说明合格/不合格类型的 BER 测量。要开始目标 BER 测量,我们需要从 Measurement 菜单中选择 BER 测量。点击它后,屏幕上会打开一个新窗口,其中显示了详细的 BER 测量参数。要设置目标 BER,请转到 Acquisition Parameters 下的 Accumulation End 子选项卡,然后选择其类型为 pass / fail。设置必要的参数,例如目标置信度(本例中为 95%)和目标BER(本例中为 1E-6)。然后我们准备用指定的参数测量 BER。目标 BER测量窗口如图 5 所示。建议将累积间隔设置为 3 秒。

图 5. 目标BER 测量以 1 E-6 作为目标 BER,置信度为 95%
如果要开始测试,应先设置好所有参数,然后单击左上角的绿色箭头开始。测试开始后,示波器将把输入的数据信号数字化,M8070A 开始检查接收到的比特,我们可以在结果的 Compared Bits(比较的比特数) 和 Errored Bits(误码的比特数)部分看到比较结果。示波器会以 3 秒间隔(每个累积间隔)更新比较的比特数和所达到的置信度,两者显示,参与比较的比特数和置信度都在增加。这将持续到示波器达到 95% 置信度,然后示波器会显示最终结果。如果在这个时间范围内出现误码,那么置信度将降低(如上所述)。我们当然可以将其设置得更低(<1E-6)来扩大目标 BER 的测量窗口,但随着设置越来越低,必须检查的位数也会增加,最终会使 BER 测量非常耗时。
如果不使用均衡,在 50 GBaud(在测量实际 DUT 时为 45 GBaud)以下,可以执行环回BER测量(即单次采集)以及详细的 BER 测量。一旦超过这一速率,则必须结合使用均衡,以确保 BER 保持为 0。默认 FFE 参数有 5 个 抽头和 1 个预抽头。但是当我们接近 56 到 58 GBaud 时,即使这样做还不够,我们应该增加参数值,例如将其设置为 9 个抽头和 3 个预抽头,以便扩大均衡窗口。结合均衡可保证在 58 GBaud 以内,系统 BER 保持为 0,但随着我们增加均衡水平,示波器需要更多时间来产生均衡的数字化信号(对接收信号应用均衡,然后将其数字化),从而极大地降低了测量速度。
使用 NRZ 信号时也一样,我们建议使用高达 58 GBaud 的解决方案,虽然这样做过度编程会导致符号速率高达 64 Gb/s,但无需在直接环回装置中添加均衡。我们必须相应地改变设置(线路编码改为 NRZ,环路带宽除数建议改为 1667)。
误码插入
到目前为止,我们看到的是没有插入误码的 BER 测量。为保证正确地测量 BER,我们可以使用 M8045A(PG)提供的误码插入功能对其进行交叉检查。图 6 显示了用于 M8045A PG 模块的 M8070A 软件界面中的误码插入窗口。

图 6. 用于 PG 模块的 M8070A 软件中的误码插入窗口
我们可以看到误码率选项。我们可以选择想要在数据路径中引入的误码率。如果我们选择误码率为 1E-4 并启动误码插入,那么就可以看到屏幕上显示的采集 BER(M8070A 屏幕右下角的 BER)也显示了 E-4 量级的 BER,它指示出现了误码并将其显示出来。如果我们关闭误码插入,则 BER 再次变回 0。这证明插入误码后,M8070A 软件可以准确地检测到它,因此可以可靠地用于 BER 测量。该误码插入方法经过 PAM-4 和 NRZ 线路编码信号的测试。
应当指出的是,在我们的例子中,目标 BER 阈值设置为 1E-6。因此,如果我们以小于 1E-6 的速率插入误码,那么系统将会忽略误码,不会检测出来。例如,在上述示例中,如果我们将误码插入率改为 1E-8(<1E-6),M8070A 软件将不会检测到它。为了使其能够检测小于 1E-6 的误码率,我们必须将目标 BER 的阈值降低到小于 1E-6。
测量灵敏度
实时示波器的灵敏度是指示波器可以检测到的输入信号的最小峰峰值幅度。如果是 PAM-4 信号,相关幅度是数据输入的单端峰峰值幅度。
所有上述 BER 测量均在 300 mVpp 的输入幅度下完成,即使数据速率发生变化,该幅度也保持不变。示波器上的灵敏度测量是在设置了特定的目标 BER 后进行的。在我们的例子中,我们将目标 BER 限制在 1E-6;因此,下文讨论的灵敏度测量对于 1E-6 的目标 BER 是有效的。对于 PAM-4 线路编码,我们在示波器上进行灵敏度测量时,发现在高达 45 GBaud 的数据速率下,示波器具有非常好的灵敏度,最低达到 50 mVpp(单端,没有插入任何误码或抖动,未使用均衡)。数据速率超过 45 GBaud 时,对灵敏度的要求应根据所应用的均衡进行分类。
在未应用任何均衡的情况下,示波器的灵敏度要求随着数据速率的增加而提高。 在 50 GBaud 时,示波器需要 63 mVpp 来检测输入数据信号。在 56 GBaud 时则需要 150 mVpp,在 58 GBaud 时更是需要高达 250 mVpp。高于 58 GBaud 时,建议不要使用示波器进行 BER 测量。如果我们继续提高到 60 GBaud,其灵敏度要求为 250 mVpp。继续提高速率,相应的要求也会波动,例如在 61 GBaud 时灵敏度要求约为 450 mVpp, 62 GBaud 时则为 350 mVpp。
使用均衡(9 抽头 FFE)后,我们发现直到 56 GBaud 时,灵敏度要求仍低至 50 mVpp,之后会逐渐增加。在 58 GBaud 时,需要的灵敏度为 63 mVpp,在 60 和 61 GBaud 时急剧增加到 350 mVpp 和 450 mVpp。与未使用均衡器的情况一样,数据速率超过 61 GBaud时,灵敏度要求也会出现波动,例如在 62 GBaud 时需要大约 425 mVpp。考虑到这两种情况,我们可以得出结论:灵敏度要求通常随着数据速率的增加而增加,在更高的数据速率下可以使用均衡保持低灵敏度值(直到 58 GBaud),从而改善性能。以上所有数据在下面的图 7 中汇总:

图 7. 实时示波器 DSAZ634A 使用和未使用均衡器时的灵敏度
对于不同的目标 BER,例如 1E-7 甚至是 1E-8,我们发现需要在较低的数据速率下增加幅度。例如在目标 BER 为 1E-8 时,在 55 GBaud 时,我们需要保持 63 mVpp 的最小幅度,然后在 56 GBaud 时急剧增加到 463 mVpp。
如果是 NRZ,可能直到 58 GBaud(过度编程可达到 64 GBaud,但不推荐)时灵敏度仍低至 50 mVpp(单端峰峰值)。
抖动容限测试
本章将讨论抖动容限测试的基础知识,以及通过 M8070A 软件(使用 BERT 和实时示波器)进行测试的方法。
Jitter:抖动:推测的周期性信号与真实周期性信号的偏差,通常与参考时钟信号有关1。简单来说,它是数据跳变瞬间(1 到 0 或 0 到 1)相对于其预期位置的变化。应避免过度抖动,因为它会导致眼图闭合,从而使数据流出现误码,BER 增加。
根据其码型,抖动可以分为多种类型,诸如随机抖动和确定性抖动等。确定性抖动可进一步分为周期性抖动、数据相关抖动(甚至进一步分类为占空比失真和符号间干扰)和有界不相关抖动。引起抖动的部分来源包括热噪声(随机抖动)、串扰(有界不相关抖动)、长或短比特(符号间干扰)等。总体抖动是导致数据破坏的所有单独抖动之和。

图 8. 抖动的分类
抖动容限:了解系统抖动容限的相关知识,将有助于您深刻理解数字设计电路。每个接收机的设计都能容忍一定量的抖动。抖动容限是指接收机容忍或处理接收信号上的抖动,以便成功接收码型符号并解释它们的能力。大多数接收机标准都定义了一定的抖动容限,即在特定的抖动调制范围内允许一定量的抖动。在详细讨论抖动容限之前,让我们仔细研究一下注入数据流以便实施抖动容限测量的正弦抖动。
正弦抖动是周期性抖动,其抖动函数遵循正弦曲线。这意味着跳变事件相对于其理想位置的变化将是正弦型的。下图显示了 Infiniium 采样示波器 DCA-X 86100D 在 28 GBaud 数据速率下显示的抖动 NRZ 信号。从直方图中,我们可以清楚地看到,最后的两个峰类似于正弦函数。在本例中,我们使用 M8045A PG 注入 1 MHz 的低频正弦抖动,其幅度为 700 mUI。

图 9. 在 Infiniium DCA-X 上看到的正弦抖动
基本的抖动容限测试方法:测试抖动容限的基本方法包括将正弦抖动注入到码型发生器产生的码型中,然后通过环回路径测量 BER。可以选择抖动容限测量的目标 BER。在不同的抖动调制频率和各种抖动幅度上进行 BER 测量。测试首先会注入特定频率(起始频率)的正弦抖动,然后抖动幅度发生变化(取决于所选算法增加或减少),直到 BER 超过设置的目标 BER,然后测量转移到下一个抖动调制频率值(取决于所选算法,转移到更高或更低频率)。这样,您就可以绘出抖动频率与抖动幅度图,这就是抖动容限测试的结果。对抖动幅度和抖动调制频率进行自动扫描,有助于尽量缩短抖动容限测量的持续时间。
接下来我们更详细地看一下 M8070A 中的抖动容限测试窗口。
图 10. 抖动容限测量窗口
如图 10 所示,在此窗口中有 BER Setup、Graph、Instruments 和 Measurement Setup等选项卡。我们将详细讨论各个选项卡。
BER Setup:子选项卡包括
– Target BER:设置所需的目标 BER
– Confidence Level:它决定了 BER 测量的可靠性。置信度越高,为实现目标 BER 设置而进行比较的比特数量就越多
– Frequency Relax Time:测量跳到下一个抖动频率之前等待的持续时间
– Amplitude Relax Time:测量在跳到同一频率上的下一个抖动幅度之前等待的持续时间
Graph:该选项卡下包含多个子选项卡,这些子选项卡与以图形方式显示的抖动容限结果有关。它有四个子选项卡,分别是 Template Limits、Points、Compliance Limits 和 Show All Points。子选项卡的意义不言而喻。
Instruments:此选项卡指出了测量中涉及的设备。它有两个子选项卡,分别是 Genera-tor 和 Analyzer。使用 M8045A PG 时,Generator 有两个选项可供选择:通道 1 或通道 2。通过这个选项卡可以更改这些设置。
Measurement Setup:这是最重要的选项卡,用于在配置 JTOL 测试时设置所有必要的参数。子选项卡包括:
Start and Stop Frequencies: 它们指示抖动容限测量的开始和停止频率。取决于算法,我们可以选择从高频到低频或从低频到高频的测量类型。
Number of Points:这是测量从开始抖动频率执行到停止抖动频率过程中将采用的跳频数。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:10 编辑 由快速电梯和视觉同盟共同举办的“60年后的电梯”创意设计大赛正在如火如荼进行中,许多参赛的作品都非常能够表现出节能、环保和未来的理念。以下是精彩参赛作品欣赏,分享给大家: 作品名称: ...… 查看全部问答> |
|
开关电源原理与设计(连载31)推挽式开关电源变压器参数的计算 0.4.推挽式开关电源变压器参数的计算 推挽式开关电源使用的开关变压器有两个初级线圈,它们都属于励磁线圈,但流过两个线圈的电流所产生的磁力线方向正好相反,因此,推挽式开关电源变压器属于双激式开关电源变压器;另外,推挽式开关电源变压器 ...… 查看全部问答> |
|
In function \'LoadDATA\':../src/aa.c:95: error: number of arguments doesn\'t match prototype 出现的啦上面提示的错误 !!!!! 经过分析 大家主要你的函数的名字要 不要超过13个字母或数字 void A ...… 查看全部问答> |
|
1. 系统设计与设备选型 a. 分析你所控制的设备或系统。PLC最主要的目的是控制外部系统。这个系统可能是单个机器,机群或一个生产过程。 b. 判断一下你所要控制的设备或系统的输入输出点数是否符合可编程控制器的点数要求。(选型要求) ...… 查看全部问答> |
|
apue 11-4中pthread_cleanup_push函数是如何清理的? 我在运行apue11-4的程序中运行通了,但是对函数不大理解,程序清单如下: #include \"apue.h\" #include void cleanup(void *arg) { printf(\"cleanup:%s\\n\",(char *)arg); } void thr_fn1(void *arg) { & ...… 查看全部问答> |
|
用了不少方法都不行 ExtractIcon编译不通过 GetClassLong失败 SendMessage(hwnd,WM_GETICON,(WPARAM)ICON_SMALL,0); 也是失败 用了这个帖子最后回复中的方法http://topic.eeworld.net/t/20061030/15/5119437.html 还是不行,该帖l ...… 查看全部问答> |
|
我想知道在WINCE的环境下如何实现TrueType字体的显示 初开始学习WINCE, 我想知道在WINCE的环境下如何实现TrueType字体的显示 最重要是将思路写出给我,最好附代码或者一部分主要的代码. 谢谢! 万分感激!… 查看全部问答> |
|
AT指令+CPBF查找电话本记录,对于查找汉字有点不明白 比如说电话本内有条记录是+CPBR: 2,\"13519154544\",129,\"5F207389\" 如果我想找到这条记录应该怎么写CPBF的参数呢 用超级终端测试的时候用AT+CPBF=\"5F20\"查找,如果AT+CSCS=\"GSM”,返 ...… 查看全部问答> |




