10分钟教会你看眼图,太有用了!!

4 篇文章 0 订阅

10分钟教会你看眼图,太有用了!!-面包板社区

●搜寻了不少资料,如果追溯历史,大约47年前,眼图就已经开始广泛应用。在1962年-2002的40年间,眼图的测量方法是基于采样示波器的传统方法,2002年后,力科发明了基于连续比特位的方法来测量眼图的方法。

●眼图是一系列数字信号在示波器上累积而显示的图形,它包含了丰富的信息,从眼图上可以观察出码间串扰和噪声的影响,体现了数字信号整体的特征,从而估计系统优劣程度, 因而眼图分析是高速互连系统信号完整性分析的核心。

●上图是一幅理想化的眼图,主要是用来和工程师聚聚们说明一下眼图的各项指标名称。以下把一些常用的指标罗列出来,供大家参考。

●幅度测量:

    眼高(Eye Height)

    眼交叉比(Eye Crossing Percentage)

    眼幅度(Eye Amplitude)

    眼电平(Eye Level)逻辑1电平,逻辑0电平

    眼信噪比(Eye SNR)

    眼垂直张开度(Vertical Eye Opening)

    眼水平张开度(Horizontal Eye Opening)

    质量因素(Q因子)

●时间测量:

    眼宽(Eye Width)

    眼上升时间(Eye Rise Time)

    眼下降时间(Eye Fall Time)

    峰对峰抖动(Peak-to-Peak Jitter)

    随机抖动(Random Jitter)

    精确抖动(Deterministic Jitter)

●上图是一幅实际的眼图,对应的各个参数指标已经标记出来,工程师聚聚们可以对照参考一下。

眼图形成的原理,是由于示波器显示的余辉特性,将扫描所得的每一个码元波形重叠在一起,从而形成的一种图形。眼图中包含了丰富的信息,能整体上反映出数字信号的特征,分析眼图的参数可以直观的分析出码间串扰和噪声的影响,从而可以估计整个数字系统设计的好坏。

●一般而言,生成眼图需要通过测量大量的数据,然后再从其中恢复得到。示波器在测量眼图的过程中,经过前期的数据采集,其内存中可以保存完整的数据记录。然后,利用硬件或者软件对时钟进行恢复或者提取得到同步时钟信号,用此时钟信号与数据记录中的数据同步到每个比特,通过触发恢复的时钟,把数据流中捕获的多个1UI(单位间隔,相当于一个时钟周期)的信号重叠起来,就是将每个比特的数据波形重叠,最后得到我们需要的眼图。

●由眼图可以观察信号间干扰和噪声的影响,具体描述如下:

    眼张开度(Eye opening),反映了信号上的噪声,即眼图的“眼睛”张开的大小反映了信号间串扰的强弱。“眼睛”张开越大,且眼图越正,表示信号间串扰越小,反之表示信号间串扰越大。

    上冲和下冲,是指信号第一个峰值和谷值和下一个峰值和谷值,由于信号路径的中断产生的峰值失真,主要表现为一个尖端脉冲,过分的过冲能导致电路元器件的失效。

    眼交叉比代表着信号的抖动,抖动如果很大就会造成误码率(BER)增加,反之则代表信号质量越好,误码率(BER)越低。

    眼图闭合度(Eye closure),即眼顶、眼底和转换区域宽表明接收器判断灵敏度降低。因为噪声将叠加在信号上,观察到的眼图的线迹会变得模糊不清。

●上面几幅眼图或多或少都是反映了一些问题的,要么是过冲尖峰,要么是逻辑电平有噪声还有图像缺失等等。针对这些问题,工程师聚聚们要从哪些方面着手整改眼图中反映出来的问题呢:

    PCB走线长度:不是说所有走线越短越好,但是走线短意味着损耗低。

    走线宽度或者说阻抗匹配:强调这个就是想说,设计高速系统的时候,一定要考虑信号在介质中的趋肤效应,我们要做的就是减少趋肤效应。

    减小板材的介电常数:出发点还是为了降低损耗,但是可能增加成本。

    信号预加重处理:通过对跳变位预加重(pre-emphasis)处理来补偿线路上因信号跳变产生的针对高频分量的损耗。

    接收端均衡处理:比如端接电阻等等。

Vue3中可以使用watch函数来监听Pinia的值变化。在Pinia中,我们可以通过使用$subscribe方法来订阅监听。首先,需要导入所需的Pinia store,并创建store实例。然后,使用ref函数创建一个响应式的变量,用于保存需要监听的Pinia的值。在$subscribe的回调函数中,可以获取到mutation和state,通过state可以获取到需要监听的值。在回调函数中,可以对新旧值进行处理或执行相应的逻辑。以下是一个示例代码: ```javascript import { useMapStore } from '@/store/index.js' import { ref } from 'vue' const mapStore = useMapStore() const bgurl = ref('') mapStore.$subscribe((mutation, state) => { bgurl.value = state.currentSkin === 'dark' ? 'url(\'../light-dark.svg\')' : 'url(\'../light-white.svg\')' }) // 在这里,bgurl变量会根据currentSkin的变化而更新 ``` 在上述代码中,我们首先导入了所需的Pinia store,并创建了store实例。然后,使用ref函数创建了一个名为bgurl的响应式变量。接下来,通过调用$subscribe方法,传入一个回调函数来订阅监听。在回调函数中,我们可以获取到mutation和state。通过state.currentSkin可以获取到需要监听的Pinia的值,然后根据其变化对bgurl进行更新。这样,在Pinia的值变化时,bgurl变量会得到相应的更新。123 #### 引用[.reference_title] - *1* *2* [vue3 watch 监听多值以及深度监听用法](https://blog.csdn.net/m0_67401761/article/details/123433510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [Vue3组件不发生变化,如何监听pinia中数据变化?](https://blog.csdn.net/weixin_58195668/article/details/129275407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值