ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于Qseven核心板与RZ/G1M的工业HMI项目实战记录

基于Qseven核心板与RZ/G1M的工业HMI项目实战记录 去年接了一个工业HMI项目的预研任务产品要求10到15年的生命周期主控供货必须稳定性能还得能扛住1080p人机界面加上基础视频解码。兜了一圈最后把平台锁在了Qseven标准上核心板选用了一款搭载Renesas RZ/G1M的模块项目代号叫Sports。整块核心板只有70mm见方却把双核Cortex-A15、PowerVR图形核心、H.264硬解、USB3.0、PCIe这些家当全塞了进去载板部分完全由我们自己设计。这篇文章不是产品说明书的复述而是我从项目立项、核心板硬件架构、载板接口规划到Yocto BSP搭建、系统启动调试再到高低温老化验证的完整记录。踩过的坑、查过的寄存器、改过的设备树都会尽量写清楚。适合准备用RZ/G1系列做产品或者正在做Qseven核心板/载板的硬件工程师和嵌入式软件工程师参考。1. 为什么最终锁定了Qseven RZ/G1M这个组合1.1 Qseven到底解决了什么问题嵌入式产品开发里有个经典矛盾主芯片平台迭代快但产品生命周期长。两年前选定的SoC两年后可能已经停产或收到EOL通知而客户还在要求继续供货。Qseven这个标准的本质就是把“计算核心”和“业务接口”拆开。处理器、内存、存储、电源管理全部集成在70mm×70mm的核心板上业务板载板通过标准的MXM连接器把核心板插上去。以后主芯片升级只要新核心板还符合Qseven引脚定义载板几乎不用动产品就能平滑换代。Qseven标准由SGET组织维护核心特征很明确尺寸固定70mm×70mm比一张名片还小。采用MXM 3.0连接器早期版本230pin新版本扩展到270pin间距0.5mm。单5V供电核心板上的所有电压都由模块自己产生载板只需要提供高质量的5V。接口覆盖PCIe、USB2.0/3.0、SATA、LVDS、eDP、HDMI/DP、HDA、I2C、SPI、LPC、GPIO等工业产品常用的外设基本都有。和COM Express相比Qseven尺寸更小、功耗更低、成本更友好适合对空间和成本敏感、又不希望被单一SoC绑死的中小批量产品。和直接把SoC贴在业务板上相比Qseven给了你一个可更换的计算模块同时把DDR布线、电源时序这些高难度设计隔离在核心板内部载板工程师的压力小很多。1.2 RZ/G1M这颗芯片的真实定位Renesas的RZ/G1系列源自R-Car车规处理器RZ/G1M是其中基于R-Car M2的中端型号。它的定位很直白面向工业、医疗、网络、POS这些需要长期供货的场景把车规级技术下放同时承诺10年以上的长期供货。具体到规格RZ/G1M的核心配置CPU双核ARM Cortex-A15最高1.5GHz。这是它最大的亮点算力在同功耗等级的工业处理器里排在第一梯队。GPUPowerVR SGX544MP2双核图形核心支持OpenGL ES 2.0跑HMI界面、做简单3D特效完全够用。视频H.264硬解码部分型号支持编码做视频播放和录制不需要额外加芯片。内存DDR3/DDR3L32位×2通道带宽能支撑1080p显示和编解码需求。外设USB3.0×2、PCIe Gen2×1、SATA、EtherAVB千兆以太网、CAN×2、多种显示输出。除了硬件本身Renesas为RZ/G系列维护了一套基于Yocto的Linux BSP内核长期更新还参与了CIP这类工业级Linux生态项目。这意味着用这套平台做产品软件的可维护性是有保障的不会出现芯片厂商撒手不管的情况。1.3 和i.MX6、瑞芯微、Tegra的取舍对比选型时免不了横向对比。我的结论是单看性能、生态、成本各有胜负但把“供货周期工业可靠性资料开放程度”放在一起RZ/G1M在Sports项目这个需求下最有说服力。方案核心优势主要顾虑RZ/G1M Qseven模块车规血统、供货稳定、BSP规范社区资料少问题排查靠自己NXP i.MX6资料极多、案例丰富生命周期进入中后期算力偏弱瑞芯微RK系列性能强、Android生态好工业级供货和文档偏弱NVIDIA TegraGPU性能强功耗高、工业场景性价比低i.MX6是我最早考虑的资料确实多但算力跑1080p HMI加视频解码已经有点吃力而且产品线偏老。瑞芯微性能没问题但严格的工业长生命周期承诺和车规级可靠性背书不如瑞萨。最终Sports项目锁定RZ/G1M核心板加自研载板的架构也让软硬件可以并行开发软件团队从第一天开始调BSP整体进度提前了差不多一个月。2. 核心板硬件设计70×70mm里的系统级工程2.1 模块架构怎么搭Qseven核心板虽然小但它本身是一台完整的计算机。Sports核心板的硬件架构大致是主处理器Renesas RZ/G1M。内存2GB DDR3L双通道32bitBGA颗粒贴在核心板背面。存储8GB eMMC加一颗16MB SPI NOR存放启动固件。电源管理一颗PMIC搭配多路DC-DC输入5V输出CPU核、DDR、IO等各路电源。时钟24MHz系统晶振和32.768kHz RTC晶振PCIe参考时钟按Qseven规范从连接器引出。外设引出通过MXM连接器接出PCIe、USB3.0/2.0、SATA、LVDS、eDP、I2C、SPI、UART、GPIO、SDIO。这里有个容易被忽略的点Qseven规范要求核心板能从单一5V电源工作板上所有电压都由核心板自己产生。这对核心板设计者意味着电源自主可控对载板设计者更是好事——载板只需要提供干净的5V和5V待机电源电源设计工作量直接少了一大半。2.2 电源树与功耗估算RZ/G1M这类SoC对电源时序很敏感核电压要先于IO电压DDR供电要跟着DDR控制器的时序。当时的设计是这样处理的5V输入经过滤波和防反接电路后进入PMIC。PMIC按固定时序输出先VDDCPU核再VDDQDDR最后是各路IO电压。RZ/G1M支持DVFS动态调频调压PMIC需要提供可调电压接口给CPU的DVFS控制器。这一步在一些低成本设计里容易被跳过导致系统只能跑固定频率功耗优势发挥不出来。功耗方面实测双核Cortex-A15满载时核心板整板功耗在6到9W之间待机可以压到2W以内。这个功耗在Qseven里算中等散热设计必须认真对待。我们在核心板背面预留了大面积散热焊盘配合载板上的导热垫和金属外壳高负载测试时SoC温度控制在85℃以内。2.3 DDR3L布局和阻抗控制DDR是核心板设计里最头疼的部分。RZ/G1M的DDR控制器是32位×2通道意味着两套独立的DDR3L总线。我们选了两颗16bit DDR3L芯片组成一个通道共4颗组成2GB容量。布线上的几个关键点数据线按字节通道分组组内等长控制在±10mil以内。地址和控制线做fly-by拓扑末端预留终端电阻位置。差分时钟走线要短、要直远离其他高速信号。DQS组内等长必须严格。阻抗按单端50欧姆、差分100欧姆控制DDR走线层紧邻完整参考地平面。这些做不好最直接的表现是DDR初始化不稳定、系统随机死机、甚至特定温度下丢数据。我们第一版DQS组内等长差了15mil常温下跑memtester完全没问题温度升到75℃以上就开始出随机错误后来重新调整等长才解决。DDR的问题必须在核心板阶段消灭因为到了载板应用层你完全没法干预DDR布线。3. 载板设计把模块能力真正变成产品接口3.1 从MXM引脚到产品接口的规划有了核心板剩下就看载板怎么把能力引出来。Sports的HMI产品需要这些外部接口千兆以太网核心板上集成PHYMDI差分对直接引到载板载板侧放RJ45座和网络变压器。双路LVDS接10.1英寸和12.1英寸两种屏量产时按客户配置选其一LVDS差分对从MXM连接器直接引出到FPC座。USB3.0一个Type-A口接外部存储一个Type-C口做调试和数据传输。USB3.0差分对走线要100欧姆差分阻抗且必须有完整参考平面。串口预留两路UART一路RS232做调试一路RS485接PLC。CAN两路CAN连接器用工业常见的弹簧端子。GPIO8路隔离输入输出用于按钮、指示灯和传感器信号采集。特别提醒一点Qseven的MXM连接器引脚间距只有0.5mm载板走线不可能全走表层至少4层板才勉强够用。我们的载板做到6层关键信号都有参考平面和包地处理。3.2 供电、保护与EMC设计载板供电是外围设计中出错率最高的地方。Qseven核心板要求5V主供电和5V待机载板根据产品场景做了以下处理外部输入设计为9~36V宽压DC-DC兼容工业现场24V和车载12V系统先过防反接、TVS和共模电感再降压到5V。5V主供电与待机电源之间用负载开关控制由核心板的电源管理信号决定何时从待机切换到运行状态。所有引出到外部的接口都做ESD防护USB和CAN在插拔时最容易被打坏TVS阵列必加。实测中载板DC-DC纹波控制的优先级甚至高于效率。RZ/G1M的PCIe、USB3.0这类高速接口对电源纹波很敏感。我们把5V输出纹波控制在50mV以内开关频率选在2.2MHz以上避开音频和高速接口的敏感频段。3.3 上电前检查清单每次拿到新载板我习惯按这个顺序做检查能省掉大量无效调试时间目检MXM连接器有没有连锡、虚焊电源走线是否符合规划。阻抗检测用万用表量5V、3.3V、1.8V对地阻抗排除短路重点检查LVDS、USB、PCIe这类长走线的差分对。单板供电先不给核心板供电单独给载板DC-DC上电确认各路电压正常。插上核心板用可调电源限流上电观察静态电流是否符合预期。正常应在0.5A以内超过1A大概率是短路或电源时序问题。接调试串口逐步引导启动。这套流程看起来基础但我见过太多人跳过前两步直接把核心板插上冒烟了才开始查。硬件调试越往前置越省钱这是不变的道理。4. 系统启动与BSP适配实录4.1 启动链路拆解RZ/G1M上电后的启动过程大致分四步SoC内部BootROM根据MODE引脚电平选择启动介质。BootROM从SPI NOR固定偏移读取SPL也就是U-Boot的二阶段引导程序。SPL完成基础时钟、电源和DDR初始化再从SPI NOR或eMMC加载完整U-Boot。U-Boot读取内核和设备树跳转执行内核挂载文件系统完成启动。BSP默认启动介质是SPI NORU-Boot主体放在里面。开发阶段我会把环境变量配置成从TFTP加载内核和设备树这样每次改内核不用反复烧写eMMC调试效率高很多。生产阶段则固化到eMMCSPI NOR只放SPL和U-Boot主体内核、设备树、根文件系统都在eMMC里。启动日志正常情况下大致是这个样子U-Boot SPL 2018.09renesas U-Boot 2018.09renesas Hit any key to stop autoboot: 3 setenv bootargs consolettySC3,115200 root/dev/mmcblk0p2 boot
返回列表