ARTICLE DETAIL

资讯详情

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

君正T32 4K监控方案:RISC-V协处理器与硬件设计实战

君正T32 4K监控方案:RISC-V协处理器与硬件设计实战 1. 为什么偏偏是君正T32一颗被低估的4K监控主控做视频监控方案选型这些年我经手过的主控平台不算少从早期的海思3516系列到后来的瑞芯微RV1126再到君正的T31、T41每一代芯片都有它最适合的战场。但当我第一次拿到君正T32的规格书时还是愣了一下——这颗芯片在4K监控这个价位段上给的配置确实有点超出预期。先说最核心的几项。T32搭载的是双核RISC-V架构的CPU主频能跑到1.2GHz以上同时集成了专用的视频编码加速单元。这意味着什么意味着它能在不占用CPU资源的情况下独立完成H.265/H.264的4K30fps编码。我实测过在4K分辨率下跑H.265编码CPU占用率能控制在15%以内这个数据在同类方案里相当能打。但真正让我决定用它来做这套监控系统的是它内置的RISC-V协处理器。这个协处理器不是摆设它是一颗可以独立编程的实时核专门用来处理那些对实时性要求极高、但又不需要主CPU介入的任务。比如移动侦测、区域入侵检测、简单的图像预处理这些活儿完全可以丢给协处理器去干主CPU该干嘛干嘛。提示很多刚接触T32的朋友会忽略协处理器的存在直接在主核上跑所有逻辑结果发现4K编码一开稍微加点智能分析就卡顿。协处理器用好了等于白捡一颗CPU。从成本角度看T32的BOM成本控制得相当不错。它内置了DDR控制器支持DDR3/DDR3L/DDR4这意味着你可以根据项目预算灵活选择内存方案。我这次搭建的系统用的是DDR4 2GB的配置跑4K编码加基础智能分析绰绰有余。如果只是做纯录像功能1GB的DDR3L也能跑起来成本能再压一截。再说说接口。T32提供了MIPI CSI输入接口最高支持4K30fps的传感器输入这一点很关键。市面上不少号称支持4K的芯片实际上MIPI输入带宽不够只能跑4K15fps或者1080P60fps。T32的MIPI接口带宽是实打实够用的我接IMX415这颗4K传感器30帧满帧跑下来没有任何丢帧。网络方面T32内置了百兆PHY但如果你要做4K视频流的网络传输百兆肯定不够用。所以我的方案是外挂一颗千兆PHY芯片通过RGMII接口连接。这里有个细节要注意T32的RGMII接口时序需要仔细调我在PCB设计阶段就因为等长没做好导致千兆网络跑起来丢包严重后来重新调整了走线才解决。存储方面T32支持SD卡和SPI NAND Flash启动。我的建议是如果做产品用SPI NAND Flash做系统盘SD卡只做录像存储。因为SD卡的读写寿命和稳定性在长时间录像场景下是个隐患我见过太多项目因为SD卡损坏导致录像丢失的案例。最后说说开发环境。君正提供了完整的SDK基于Linux内核编译工具链是RISC-V的GCC。如果你之前做过海思或者瑞芯微的方案迁移过来大概需要一周左右的适应期主要差异在RISC-V的汇编和启动流程上。但整体来说君正的SDK文档还算齐全社区也有不少人在用遇到问题基本能搜到答案。2. 硬件选型与最小系统搭建从传感器到电源的完整清单2.1 核心板与传感器的搭配逻辑搭建这套4K监控系统的第一步是确定核心板和传感器的组合。我选的是T32核心板加IMX415传感器的方案。IMX415是一颗1/2.8英寸的CMOS传感器有效像素约800万最高支持4K30fps输出MIPI CSI-2接口四通道数据传输。这颗传感器在安防领域用得很多性价比高驱动也成熟。为什么不用IMX317或者IMX334IMX317虽然也是4K但它的低照度表现不如IMX415夜间监控效果会打折扣。IMX334尺寸更大低照度更好但价格也上去了而且对镜头的要求更高。综合考虑成本和效果IMX415是这个价位段最均衡的选择。核心板这边我选的是带DDR4 2GB内存的版本。为什么是2GB因为4K编码的码流缓冲区、智能分析的模型加载、Linux系统的运行这些加起来1GB会比较紧张。我实测过1GB内存跑4K编码加移动侦测内存占用率会到85%以上系统响应会变慢。2GB的话占用率在60%左右留有余量。电源部分需要特别注意。T32的核心电压是0.9VDDR4是1.2VIO电压是3.3V和1.8V。这几个电压的上电时序有严格要求如果时序不对芯片可能无法正常启动。我的做法是用一颗PMIC芯片来管理所有电压轨通过I2C接口配置上电时序。具体时序参数在T32的数据手册里有详细说明这里就不展开了但一定要严格按照手册来。2.2 千兆网络与存储的硬件设计要点千兆网络这部分我外挂的是RTL8211F这颗PHY芯片。它通过RGMII接口和T32连接支持10/100/1000M自适应。这里有几个设计要点需要强调。第一RGMII接口的TX和RX数据线需要做等长处理误差控制在5mil以内。我第一版PCB就是因为没注意这个导致千兆模式下丢包率高达10%。后来重新布线把等长做好丢包率降到了0.01%以下。第二PHY芯片的时钟需要从T32的REF_CLK输出或者用独立的25MHz晶振。我用的是独立晶振方案因为这样时钟抖动更小网络稳定性更好。第三网络变压器的选型不能马虎。我用的是一颗支持千兆的集成变压器共模抑制比要高否则EMC测试会很难过。存储方面SPI NAND Flash我选的是W25N01GV容量1Gb足够放Linux系统和应用程序。SD卡接口用于录像存储我建议用Class 10以上的卡最好是工业级。普通消费级卡在长时间写入后容易出现坏块导致录像文件损坏。2.3 最小系统的启动验证硬件焊接完成后第一步是验证最小系统能否启动。你需要准备一个USB转TTL串口模块连接到T32的调试串口。上电后串口应该输出BootROM的启动信息。如果没有任何输出先检查电源电压是否正常再检查晶振是否起振。启动信息正常输出后你会看到它尝试从SPI NAND Flash加载系统。如果Flash是空的它会进入USB烧录模式。这时候用君正提供的烧录工具把编译好的固件烧进去。烧录完成后重新上电系统应该能正常启动到Linux命令行。注意第一次烧录时一定要确保USB线连接稳定。我遇到过烧录到一半USB松动导致Flash里数据损坏芯片再也无法启动的情况。后来是用短接Flash的CS引脚强制进入烧录模式才救回来。系统启动后先检查几个关键点dmesg看内核启动日志有没有报错ifconfig看网络是否正常ls /dev看视频设备节点是否存在。这几个都正常最小系统就算搭建完成了。3. 4K视频采集与编码的软件链路打通3.1 从传感器到V4L2的完整数据流T32的SDK里视频采集是基于V4L2框架的。IMX415的驱动已经包含在SDK里你只需要在设备树里配置好MIPI CSI的通道数和时钟频率就行。设备树里有个关键参数叫>
返回列表