发动态
图文
列表
当电子产品的时钟频率突破百兆赫兹,数字信号的边沿变化进入纳秒甚至皮秒级时,电路板的角色便发生了根本性的转变。它不再仅仅是元器件之间的电气连接载体,而演变为一个复杂的分布式参数系统。高速板Layout设计的核心,正是要驯服这些高速信号,确保它们在传输过程中保持清晰、准确和准时,这其中的复杂性远超常规设计,每一个细节都可能成为系统性能的瓶颈。在高速领域,信号完整性是首要且贯穿始终的课题。信号的反射、串扰、损耗和时序偏移从潜在问题变成了必须精确计算的显性约束。例如,一条简单的走线,其长度直接关联传播延迟,工程师必须对关键网络,如时钟和高速数据总线,进行严格的等长布线,以满足建立时间和保持时间的要求。同时,走线间的串扰随着速率提升而加剧,这要求通过增加间距、采用差分对结构或引入保护地线等手段进行主动隔离。更复杂的是,高频信号在介质中传输会产生损耗,其幅度和相位都会畸变,这迫使设计者必须考虑使用低损耗材料,并对走线长度和过孔数量进行苛刻的限制。所有这些,都使得布线从“连接”的艺术升级为“控制”的科学,需要借助前仿真工具在布局前预判,并在布线后验证。与信号完整性互为表里的,是严格的阻抗控制和电源完整性设计。整个高速通道的阻抗必须保持连续一致,任何因线宽变化、层间换层或连接器介入导致的阻抗不连续点,都会引发信号反射,劣化眼图质量。因此,精准的叠层计算、受控的线宽线距以及过孔的优化设计变得至关重要。另一方面,为高速芯片供电的电源网络面临巨大挑战。芯片在开关瞬间需要极大的瞬态电流,如果电源分配网络阻抗过高或响应不及时,就会导致电源电压塌陷,引发逻辑错误。解决之道在于构建一个低阻抗的电源输送体系,这包括使用完整的电源/地平面、在芯片周围合理配置不同容值的去耦电容以覆盖宽频段需求,以及可能采用专门的电源模块层。电源的纯净与否,直接决定了系统噪声基底的高低。此外,高速信号本身也是最主要的电磁干扰源。优秀的高速Layout必须在追求性能的同时,将电磁兼容性融入设计基因。合理的叠层规划可以为高速信号提供紧耦合的返回路径,有效控制环路面积,从而抑制辐射。对板边、连接器处的能量泄露进行规划与控制,以及对敏感模拟电路进行区域隔离与屏蔽,都是确保产品通过EMC认证的必要设计动作。可以说,一个忽视EMC的高速设计,即使功能正常,也难以真正走向市场。综上所述,高速板Layout是一个融合了电磁场理论、传输线原理、材料学及工艺制程的系统工程。它要求设计师不仅具备扎实的理论基础和丰富的实战经验,更需要严谨的工程方法和协同设计思维。从叠层规划、元器件布局到每一根线的布线策略,都需要在性能、成本与可制造性之间寻求精妙平衡。面对日益提升的速度与密度,唯有深入理解这些物理本质,并借助专业的仿真工具与设计流程,才能驾驭高速设计的复杂性,最终将精妙的电路构思转化为稳定可靠的高性能产品。上海凝睿电子科技有限公司提供专业PCB设计,电路板开发,电路板生产制造,逆向工程,PCBA批量制造,SMT贴片,芯片解密,BGA返修等技术服务,欢迎来电咨询186-2109-5758! #PCB设计# #layout#
高速板Layout设计的核心技术要点与挑战解析
技术沙龙
罗技(Logitech)继 2012 年 K760 之后再次回归光能供电设计,推出太阳能键盘 Signature Slim Solar Plus K980,售价 99.99 美元(约合 711.3 元人民币)。在数字化办公时代,无线键盘已成为职场人士的标配。传统电池供电方案不仅需要定期更换,更带来了环保隐忧。微能量采集技术的出现,正悄然改变这一局面。 #太阳能# #蓝牙键盘# 太阳能键盘的2大核心优势免维护长续航:采用微能量采集技术的太阳能键盘,只需通过环境光(包括室内灯光)即可持续供电。罗技最新发布的Signature Slim Solar+无线键盘,甚至取消了USB接口,完全依赖光线充电,充满电后可续航四个月,即使在完全黑暗环境中也能正常工作。成本优势:尽管微能量采集方案前期投入略高,但在长达20年的使用周期内,维护成本为零。当传统电池方案经历第3次、第4次昂贵的更换循环时,微能量采集方案的成本优势将呈指数级扩大。MF9005:微能量采集的"智能管家"米德方格推出的微能量采集PMIC芯片MF9005专为低功耗物联网设备设计,是太阳能键盘等消费电子产品的理想选择。随着欧盟电池法案的实施,以及全球对环保要求的不断提高,微能量采集技术正从"可选"变成"必选"。MF9005不仅适用于太阳能键盘,还可广泛应用于电子价签、智能遥控器、无线传感器等低功耗物联网设备。在智慧零售、智能家居、工业监测等领域,MF9005正助力构建更绿色、更可持续的物联网生态系统。
太阳能键盘"永不断电"?试试微能量采集方案
硬创社
相信不少前端同学对 Chrome 扩展插件并不陌生:比如能屏蔽广告的 Adblock、自定义标签页的 Infinity 新标签页、格式化 JSON 的开发小工具、截图工具,甚至还有 Vue.js devtools、Redux DevTools 这样的调试利器。很早以前,我也被这些插件的强大功能吸引,暗自立下目标,一定要掌握扩展插件开发。但实际动手后发现,Chrome 插件的开发门槛并不低,权限机制、构建流程、清单配置……这些问题让我一度搁置。直到后来,我接触到了油猴(Tampermonkey) 脚本开发。它让我重新燃起了对网页增强脚本的兴趣:同样可以实现丰富的浏览器功能,但上手却要简单许多。借助 HTML、CSS 和 JavaScript,便能快速开发出媲美插件的实用功能,而且部署和调试都非常灵活。正因如此,我花了很多时间研究油猴脚本的各种能力,从简单的界面增强,到跨域数据请求、页面劫持,再到摄像头识别、画中画等进阶玩法,这些都可以仅靠一个脚本实现。也正是在这个过程中,我写下了《油猴脚本实战指南》这本小册,分享我一路走来的经验一些技术分享。这本小册上线已近一个月,期间我也遇到了很多志同道合的开发者,他们和我一样,在原本有限的时间里,通过脚本开发打开了新的成长路径。如果你也是一名前端开发者,渴望提升能力却苦于时间有限,不妨试试油猴脚本开发。它不仅能帮你解决日常工作中的小痛点,还能训练你的综合编程能力。对我来说,这是性价比极高的一种前端进阶方式。希望你也能从中收获惊喜。什么是油猴脚本油猴(Tampermonkey)是一款浏览器插件,允许用户在网页加载时注入自定义的 JavaScript 脚本,来增强、修改或自动化网页行为。通俗地说,借助油猴,你可以将自己的 JavaScript 代码“植入”任意网页,实现自动登录、抢单、签到、数据爬取、广告屏蔽等各种“开挂级”功能,彻底掌控页面行为。分享一些我实现的有趣网页脚本手势识别实现网页控制人脸识别实现”人脸版黄金旷工“小游戏接口拦截工具:修改CSDN博客数据接口返回值Vue路由一键切换:开发效率起飞任意元素双击实现画中画:摸鱼超级助手掘金后台自动签到助手解除文本复制、网页复制、一键下载为MD主题切换助手它能给你带来什么提高互联网体验通过用户脚本,我们可以为网页添加各种实用功能,显著提升浏览效率和使用体验。比如在阅读时,我们可以实现一键翻译、自动展开全文、解除复制限制、去除广告干扰;在观看视频时,可以开启 VIP 视频解析、倍速播放,甚至自动跳过片头片尾;对于学习和工作场景,还能自动刷题、辅助答题、自动播放课程;而在购物或资源获取方面,脚本也能帮你自动抢购、快速下载网页中的音视频内容。所有这些功能,只需我们动动手写几行JavaScript,就能一劳永逸!提升工作效率在日常工作中,我们经常会遇到一些重复、耗时又低效的操作,比如:每天手动输入账号密码登录某个网页、反复填写相似的表单内容、开发中费尽周折从网页中提取数据、频繁刷新 token 以保持页面正常访问,在多路由项目中不断的手动切换页面路径……这些看似“习以为常但不可避免”的操作,实则完全可以通过脚本解决。提高工作竞争力在公司工作中,很多重复、低效的流程其实完全可以通过脚本来优化。如果你能主动用脚本解决这些问题,不仅能提升团队效率,更能显著增强你在公司的核心竞争力。以我自己的经历为例:我们公司的前端项目采用的是 Qiankun 微前端架构。在本地开发子应用时,由于缺乏主应用的数据支持,调试过程经常变得非常麻烦。为了解决这个问题,我编写了一个脚本工具,能够将主应用的数据无缝注入本地环境,同时也支持将本地子应用嵌入到线上主应用中进行联调。这极大地提升了开发调试的效率。后来,这个脚本在公司内部广泛推广,并被评为“最佳提效工具”,也为我在职级晋升中加分不少。所以,如果你能通过脚本解决公司一些业务痛点,很容易提升你的核心竞争力。增加面试亮点果你在简历中写到:“通过脚本解决了开发过程中的 XXX 问题,优化了业务流程中的 XXX 环节,节省了 XX 小时的人力成本”——那你的简历一定会脱颖而出,更容易通过面试。毕竟,几乎所有面试官和管理者都欣赏那种善于发现问题、主动用技术解决问题,并能为团队带来实实在在价值的人。变现利用脚本变现有多种途径,效果因人而异。你可以在 GreasyFork 等平台发布实用脚本,获得用户打赏;也可以承接定制开发项目,实现接单变现;此外,脚本还能帮助你降低其他互联网变现方式的运营成本,从而实现效益的最大化。机-会技术大厂,前端-后端-测试,全国均有机-会,感兴趣可以试试。待遇和稳定性都还不错~学习难度用户脚本本质上是通过 JavaScript 增强网页功能或操作页面 DOM,所以对于前端同学而言,你只需掌握油猴的开发规则和几个关键 API,就能快速上手。借助本小册基础篇的内容,你甚至可以在 2 到 4 小时内完成脚本的入门学习,轻松实现脚本编写与快速发布。但是,如果不懂CSS+HTML+JavaScript ,你需要提前学习这些前置知识。此外,你甚至能零成本将一个油猴脚本打包成一个原生谷歌浏览器插件,YYDS!——转载自:石小石Orz
为什么推荐前端学习油猴脚本开发?
开源硬件平台
OM6629是一款针对蓝牙低功耗和专有2.4 GHz应用优化的真正片上系统(SoC)解决方案。它集成了高性能、低功耗的RF收发器、蓝牙基带以及丰富的周边I/O扩展。OM6629还集成了电源管理单元(PMU),以提供高效的电源管理。它针对2.4GHz蓝牙低功耗系统、专有2.4 GHz系统、人机界面设备(键盘、鼠标和遥控器)、体育和休闲设备、手机配件以及消费电子产品。OM6629片上蓝牙系统兼容版本5.4。该芯片集成了最高96 MHz高性能MCU、DMA、GPIO、SPI、UART、定时器、看门狗,支持32 MHz外部晶振,并集成了多用途最高12位 ADC。OM6629集成了片上256K SRAM、512位EFUSE,并支持用户定义的IDE片上SFLASH MCU开发以及JTAG软件升级。主要特性RF收发器1Mbps GFSK 时灵敏度 : -100dBm2Mbps GFSK时灵敏度:-97dBm发射功率(TX Power):-45至+10dBmRSSI(1dB分辨率)CPU和调试接口ARM Cortex-M4(带浮点单元,最高96 MHz)SWD接口存储器EFUSE:512位SRAM:256KB串行闪存(Serial Flash):1MBI-Cache RAM:8KB时钟32MHz和32.768 kHz晶振振荡器32MHz和32.768 kHzRC振荡器链路控制器BT 5.4 LE PHY、链路控制器专有2.4GHz链路控制器电源管理单电源供电电压:1.71V~3.6VRX模式峰值电流:3.7mATX模式峰值电流(0dBm):4.2mA睡眠模式电流:1.4μA(保留16KRAM,32kHz RC OSC)睡眠模式电流:2.2μA(保留128K RAM,32 kHz RC OSC)睡眠模式电流:3.0μA(保留256K RAM,32 kHz RC OSC)集成DCDC BUCK转换器货架模式电流:200nA软件兼容Bluetooth 5.4支持数据速率:1Mbps、2Mbps、长距离 500kbps、125kbps(BLE)多配置空中数据速率从25Kbps到2Mbps(2.4G)支持ESL支持网状网络示例应用和配置文件支持OTA外围设备最多38个通用I/O引脚8通道通用DMA(GPDMA)1×UART(带FIFO)1×UART(带FIFO和流控制)1×UART(带FIFO和LIN)2×I2C接口(主/从)1×I2S2×SPI接口(主/从)1×QSPI接口(用于外部闪存)1×QSPI接口(用于LCD显示)1×USB2.0全速1×QDEC1×LED PWM1×32位定时器/计数器(带4个比较/捕获/PWM通道)2×16位定时器/计数器(带4个比较/PWM通道)1×32位实时时钟(带3个比较通道)1×16位低功耗定时器(带4个比较/PWM通道)1×看门狗定时器1×PMU定时器8通道单端或4通道差分12位1Msps GPADC1×音频ADC(16位ADC,SNR 96dB)1×DMIC(数字麦克风)1×AMIC(模拟麦克风)采样率:32kHz、16kHz、8kHz嵌入式IR发射器安全性AES硬件加密支持AES-256/AES-128密钥SHA256硬件真随机数生成器安全启动安全调试封装和工作环境OM6629C:QFN48封装6mm×6mm工作温度:-40℃~+85℃封装图示OM6629 是一款实用可靠的无线芯片,它结合了低功耗和高性能的特点,能很好地满足蓝牙低功耗和 2.4 GHz 应用的需要。无论是用于键盘鼠标、健身设备还是手机配件,它都能提供稳定的连接和高效的电源管理。开发者可以用它快速构建产品,支持 OTA 更新和安全功能。未来,OM6629 会继续帮助更多设备实现无线互联,值得一试。
OM6629—蓝牙低功耗及 2.4 GHz 专有协议片上系统
立创商城
场景同样的接口,同样的前缀,只是后端地址不一样,怎么同时代理多个地址呢?也就是一个前端,怎么连接多个后端的地址?一个前端,需要同时和N个后端联调一个需求里有若干个模块,分别给不同的后端开发,前端需要和N个后端联调测试环境在测其他模块,合并发布太麻烦,所以本地开启一个端口给测试,然后你需要去做其他的需求,但是其他的需求需要连接另一个后端接口其他情况,总之:1个前端 VS N个后端上述场景,都是一个前端,联调N个后端的场景,你可能没遇到过,但是确实存在上述的场景。尤其是第三种最为常见,你会一直等测试完了、再去换一个后端代理地址接着开发吗?当然不能,这样做很浪费时间,说明你不是一个合格的牛马,牛马的觉悟不够,牛马是不会让自己闲着的。那么,怎么办呢?和A联调时proxy指向url-A,和B联调时proxy指向url-B……换其他人联调时,你是把本地项目关掉,然后换个proxy代理、再重启一下吗?当然可以,如果你不嫌麻烦的话!那么有没有好办法呢?这个问题问得好,当然有了!解决方案本例以vue2的vue-cli方式【webpack】为例 如果你们公司用的是vue3可以跳过思路既然vue.config.js能代理一个proxy,那么能不能代理多个proxy呢?当然能!本文先讲解传统模式的代理,以后写一个函数式代理 vite有更好的代理方式,暂且不表实现步骤创建项目创建一个空的vue2项目 vue create project-name 默认情况下,npm run serve会启动8080端口目标我希望不同的端口,指向不同的后端代理proxy地址,如:8100端口,代理后端7001端口8105端口,代理后端7002端口没毛病吧?本文以代理2个后端为例,其余的大家自行补充前端配置安装cross-env yarn add cross-env cross-env是nodejs设置环境变量的工具,它解决了不同操作系统之间环境变量设置语法不一致的问题,具体可自行搜索配置vue.config.js const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true, // webpack-dev-server 相关配置 devServer: { host: '0.0.0.0', port: process.env.PORT || 8100, open: false, proxy: { '/api': { target: getProxyTarget(process.env.PORT), changeOrigin: true, pathRewrite: { '^/api': '' } } }, }, }) function getProxyTarget(port) { switch (port) { case '8100': return 'http://127.0.0.1:7001' case '8105': return 'http://127.0.0.1:7002' default: return 'http://127.0.0.1:7001' // 默认代理地址 } } 上述代码,默认设置启动端口为8100,并且getProxyTarget函数可以根据不同的端口,指向不同的代理地址。配置package.json { "name": "more-proxy", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "serve:8005": "cross-env PORT=8105 vue-cli-service serve", "build": "vue-cli-service build" }, "dependencies": { "cross-env": "^7.0.3", "vue": "^2.6.14" }, "devDependencies": { "@vue/cli-service": "~5.0.0", "vue-template-compiler": "^2.6.14" }, "browserslist": [ "> 1%", "last 2 versions", "not dead" ] } 上述代码,重点是serve:8005这行,就是你要代理哪个端口,这里需要你在vue.config.js写对应的映照proxy机-会技术大厂,前端-后端-测试,全国均有机会,感兴趣可以试试。待遇和稳定性都还不错~#技术干货#测试上述配置已经实现了我们的需求,那么,具体测试一下吧。本地启动两个nodejs服务,分别为7001和7002端口,内容如下 /// 7001端口 const http = require('http'); const hostname = '127.0.0.1'; const port = 7001; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('my port is 7001!'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); javascript 体验AI代码助手 代码解读 复制代码 /// 7002端口 const http = require('http'); const hostname = '127.0.0.1'; const port = 7002; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('my port is 7002!'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 然后前端把上面的2个端口启动,写一个测试函数 mounted() { fetch('/api').then(() => {}) } 效果如下: 8100已经成功代理7001了 同样的,8105也代理了7002 其余的vue3,react,也可以用类似的思路如果感兴趣,可以点一下关注,后续会出函数式1前端 VS N后端,更加优雅如果有其他更好的方案,可以评论留言。——转载自:前端没钱
1个前端同时联调多个后端,牛马的顶级觉悟
开源硬件平台
社区数据
今日帖子
-
今日互动量
-
在线人数
-
帖子总量
-
用户总量
-
推荐话题 换一批
#DIY设计#
#嘉立创PCB#
#嘉立创3D打印#
#嘉立创免费3D打印#
#技术干货#
#嘉立创EDA#
#扩展API#
#狼黑工具#
查看更多热门话题
功能讨论
()
主题
打赏记录
服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区