0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔RK3506 DSMC实战,Local Bus高速互联

米尔电子 2026-04-16 08:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

212a100a-3928-11f1-ab55-92fbcf53809c.png

工业控制场景中,芯片间的高速数据交互是一个核心需求。传统方案要么依赖串口/网络等低速通道,要么需要昂贵的共享内存架构。米尔RK3506核心板的DSMC接口提供了一种新选择——通过Local Bus协议,用少量引脚实现跨芯片的高速地址空间访问。

2131f040-3928-11f1-ab55-92fbcf53809c.jpg

本文基于MYD-YR3506 Host+MYD-YR3506 Slave的实板联调验证,确认DSMC Local Bus链路能够稳定建立,并在512B、8-bit模式持续压测中达到了16.77 GB累计校验数据量、误码率为0的结果。DSMC在米尔RK3506核心板(MYC-YR3506)的Local Bus应用场景下已具备明确的工程应用价值——既能承担寄存器通知与控制交互,也能提供可重复验证、可量化性能的数据访问通道。

214a3420-3928-11f1-ab55-92fbcf53809c.png

米尔基于RK3506核心板开发板

第一章:DSMC是什么?

名词预先了解:

DSMCDouble Data Rate Serial Memory Controller,双倍速率串行存储器控制器

Local BusDSMC的一种应用模式,用于与另一颗Rockchip芯片的Slave DSMC组成主从访问链路

PSRAMDSMC的另一种模式,作为存储器控制器为系统提供外部存储空间

CS/regionCS为片选(最多4个),region为CS下的访问窗口(每个CS可分1/2/4个region)

DSMC全称Double Data Rate Serial Memory Controller,用于实现Host侧对外部从设备地址空间的访问。它采用命令、地址、数据线分时复用的方式,并支持DDR(双沿)数据传输,核心优势:引脚数量少、带宽较高

在米尔RK3506核心板(MYC-YR3506)平台上,DSMC有两种典型用法:

215fbc28-3928-11f1-ab55-92fbcf53809c.png

本文重点介绍Local Bus模式。DSMC接口支持x8和x16两种位宽,同一CS下的位宽必须统一,属于接口设计阶段需要首先确定的基础参数。

1.1 DSMC的系统定位

DSMC既不是普通内存,也不是上层通信协议,而是一条面向对端地址空间的硬件访问通道:

216d3c7c-3928-11f1-ab55-92fbcf53809c.png1.2DSMC vs 常见访问方式2178c84e-3928-11f1-ab55-92fbcf53809c.png

核心区别:Host与Slave运行在独立地址空间和独立内存系统中,数据通过硬件链路、FIFO和寄存器机制完成传递,而非通过共享地址空间直接访问。

第二章:Local Bus空间模型

2.1 两个基本维度

DSMC的地址空间组织围绕两个维度展开:

CS(片选)CS0~CS3共4个片选入口,每个CS可连接一个从设备

region(访问窗口)当外设类型为Local Bus时,一个CS的访问空间可以继续划分为多个region,由设备树(DTS)决定哪些region生效

2.2 四类region类型

在rk3506.dtsi中预定义了4个region的属性模板:

218442f0-3928-11f1-ab55-92fbcf53809c.png

典型实践:采用"region0传输数据+region3控制握手"的划分。region0为双向数据通路,双方的数据同步通过region3中的控制寄存器完成通知与应答。

2.3 硬件地址体系

218b618e-3928-11f1-ab55-92fbcf53809c.png

该地址空间为硬件固定映射,Host侧DSMC窗口起始地址固定为0xC0000000,软件仅能在既定地址范围内进行配置与访问。

FIFO路径回压机制RDYN信号用于表征FIFO满/空状态,Master需根据该信号进行传输等待或恢复。FIFO路径受硬件流控约束,并非简单内存复制。

第三章:FIFO与Register的协作机制

3.1 两类访问通路

Local Bus主从交互可划分为两类:

FIFO访问当region属性为Merged FIFO或No-MergeFIFO时,Host访问的是数据通路,数据经Slave侧FIFO后最终写入Slave内存

Register访问:当region属性为Register时,Host访问的是Slave CSR寄存器窗口,用于主从控制信息交互

3.2 双向寄存器通知

Local Bus提供两组寄存器,实现主从双向中断通知:

219823f6-3928-11f1-ab55-92fbcf53809c.png

在region3中,Host侧地址映射:

21a484e8-3928-11f1-ab55-92fbcf53809c.png第四章:板级配置与DTS适配

4.1 硬件连接

米尔RK3506开发板上,DSMC信号通过特定排针引出,Host与Slave之间需要连接以下信号:

数据线DSMC_DATA[7:0](8-bit模式)或DSMC_DATA[15:0](16-bit模式)

控制线:CLK、CS、RDYN、DSMC_CMD等

中断线:用于主从中断通知

注意两块板的GND必须可靠连接。8-bit模式下,数据线只需连接DSMC_DATA[7:0];16-bit模式需连接全部16根数据线。同一CS下的位宽必须统一。

4.2 Host侧DTS配置

/* Host 侧 DSMC 节点 */&dsmc { status ="okay"; rockchip,ranges = <0x0 0xc0000000 0x0 0x2000000>;/* CS0 配置为 Local Bus, 8-bit 模式 */cs0 { status ="okay"; rockchip,cs-type= ; rockchip,bus-width = <8>; }; };


4.3 Slave 侧 DTS 配置

/* Slave 侧 DSMC 节点 */&dsmc { status ="okay";/* 配置 memory-region 和中断 */memory-region = <&dsmc_region>; interrupts =; };


4.4 启动日志确认

正确配置后,启动时会在内核日志中看到以下关键信息:

DSMC: init cs0 LB device DSMC: cs0 byte dll delay line result0x2d DSMC: clk_sys: Enabled, frequency:196608000Hz DSMC: CS0: LB device DSMC: CS0 virt: (ptrval), phys:0xc0000000, size:0x2000000


第五章:用户态访问方式

5.1 设备节点

驱动加载后,会在/dev/dsmc/下创建用户态访问节点:

/dev/dsmc/cs0/region0 #FIFO数据窗口/dev/dsmc/cs0/region3 #Register控制窗口


5.2 FIFO 数据读写

通过region0进行数据读写的核心流程:

intfd =open("/dev/dsmc/cs0/region0", O_RDWR);/* 写入数据到 Slave 内存 */write(fd, write_buf, write_size);/* 从 Slave 内存读取数据 */read(fd, read_buf, read_size);close(fd);


5.3 Register 控制交互

数据通过mmap映射region3后,以寄存器方式完成主从握手:

intreg_fd = open("/dev/dsmc/cs0/region3", O_RDWR); volatile uint32_t *reg = mmap(NULL,0x1000, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_LOCKED, reg_fd,0); /* Host 写 LBC_CON0,下发控制请求 */ reg[LBC_CON(0) /4] = request_value; /* Host 读 APP_CON0,获取 Slave 应答 */ ack = reg[APP_CON(0) /4]; munmap((void*)reg,0x1000); close(reg_fd);


关键细节:APP_CON0偏移为0x0000,LBC_CON0偏移为0x0100。由于reg按uint32_t访问,因此使用"寄存器偏移/4"作为数组下标。

第六章:性能实测

6.1 测试条件

21b2406a-3928-11f1-ab55-92fbcf53809c.png

6.2 测试结果

21bfbb6e-3928-11f1-ab55-92fbcf53809c.png

结论在512B+8-bit参数组合下,链路能够支持长时间、大规模重复访问而不出现误码,平均写速率约340 MB/s,平均读速率约344 MB/s

6.3 驱动核心文件

21ca16f4-3928-11f1-ab55-92fbcf53809c.png总结与展望

本文围绕米尔RK3506核心板DSMC的Local Bus应用进行了完整说明与验证,涵盖接口定义、空间模型、板级连接、驱动配置、用户态访问以及性能测试。

从测试结果来看,DSMC已能够同时支撑FIFO数据面传输和Register控制面交互。Host可通过/dev/dsmc/cs0/region0直接访问Slave侧落地内存,也可通过 region3完成寄存器通知与控制握手,形成一条兼具数据访问与控制交互能力的跨芯片通信通道

总体来看,DSMC在米尔RK3506核心板Local Bus场景下已具备明确的工程应用价值,可为工业控制等场景中的低延迟控制交互和中高频数据交换提供可靠支撑。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54568

    浏览量

    470452
  • 米尔电子
    +关注

    关注

    2

    文章

    201

    浏览量

    1144
  • RK3506
    +关注

    关注

    0

    文章

    103

    浏览量

    1037
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    米尔瑞芯微多核异构低功耗RK3506核心板重磅发布

    近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三核Cortex-A7+单核Cortex-M0多核异构设计,不仅拥有丰富的工业接口
    发表于 05-16 17:20

    米尔基于RK3562与RK3506开发板有什么区别?

    、可靠性的严苛需求。米尔电子基于该系列芯片打造的开发板(MYD-YR3506J &amp; MYD-YR3562J)凭借工业级的宽温运行、丰富的高速接口、多种外设资源,成为国产工业芯片落地
    发表于 07-11 09:32

    米尔RK3506国产开发板评测试用】开箱体体验

    很高兴今天收到了米尔科技的RK3506开发板,下面是开箱体验,后期的测试使用中将会做详细的测试和试用。 1.开箱,包含以下: RK3506开发板1 USB_TYPEC1 10Pin连接端子1 快速
    发表于 07-30 01:06

    资源受限下HMI2秒启动系统,米尔RK3506开发板×LVGL Demo演示

    到界面显示时间过长,在流水线场景完全不合格。 先认识一下今天的主角:MYD-YR3506 米尔基于RK3506核心板开发板 米尔RK3506
    发表于 04-24 15:12

    RK3506各型号间有什么差异?

    RK3506单板机(卡片电脑)是一款高性能三核Cortex-A7处理器,内部集成Cortex-M0核心,RK3506单板机具有接口丰富、实时性高、显示开发简单、低功耗及多系统支持等特点,非常适合于工业控制、工业通信、人机交互等应用场景。
    的头像 发表于 12-05 16:39 3423次阅读
    <b class='flag-5'>RK3506</b>各型号间有什么差异?

    低成本解决方案,RK3506的应用场景分析!

    RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。
    的头像 发表于 12-11 15:26 2806次阅读
    低成本解决方案,<b class='flag-5'>RK3506</b>的应用场景分析!

    RK3506到底有多香?抢先看核心板详细参数配置

    RK3506到底有多香?触觉智能已推出RK3506核心板,抢先了解核心板详细参数配置!
    的头像 发表于 01-18 11:33 4129次阅读
    <b class='flag-5'>RK3506</b>到底有多香?抢先看核心板详细参数配置

    触觉智能RK3506核心板,工业应用之RK3506 RT-Linux实时性测试

    触觉智能RK3506核心板,工业应用方案分享之RT-Linux实时性测试
    的头像 发表于 04-27 19:27 2360次阅读
    触觉智能<b class='flag-5'>RK3506</b>核心板,工业应用之<b class='flag-5'>RK3506</b> RT-Linux实时性测试

    米尔基于瑞芯微RK3506核心板开发板

    MYC-YR3506核心板及开发板新一代入门级国产工业处理器RK3506,3核A7+单核M0多核异构RK3506B:3*Cortex-A7@1.5 GHz,Cortex-M0@200MHz
    发表于 05-15 16:00 15次下载

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3
    的头像 发表于 06-19 08:04 1338次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微<b class='flag-5'>RK3506</b>开发板免费试用

    有奖丨米尔 瑞芯微RK3506开发板免费试用来啦!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额增加啦
    的头像 发表于 07-10 08:03 1280次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微<b class='flag-5'>RK3506</b>开发板免费试用来啦!

    RK3506开发板Linux开发板极致性价比之选

    RK3506开发板Linux开发板极致性价比之选瑞芯微RK3506开发板,3核Cortex-A7@1.5GHz+Cortex-M0,Linux+RT-Thread系统支持,128MB超大
    的头像 发表于 09-11 16:26 4022次阅读
    <b class='flag-5'>RK3506</b>开发板Linux开发板极致性价比之选

    如何让RK3506流畅刷图,用好RGA?

    本文基于触觉智能RK3506核心板/开发板,介绍RGAIM2D进行图像处理,包括相关编译与测试方法。
    的头像 发表于 10-29 10:00 1731次阅读
    如何让<b class='flag-5'>RK3506</b>流畅刷图,用好RGA?

    RK3506 MIPI转HDMI显示开发实战:从硬件到驱动全解析

    从 0 入门 Linux 嵌入式开发!RK3506 开发板实战教程系列开篇 在嵌入式设备开发中,MIPI DSI接口(移动行业处理器接口)广泛用于连接LCD屏,而HDMI则是高清显示输出的主流标准
    的头像 发表于 01-06 07:09 1277次阅读
    <b class='flag-5'>RK3506</b> MIPI转HDMI显示开发<b class='flag-5'>实战</b>:从硬件到驱动全解析

    瑞芯微RK3506实现64通道高速ADC并行采集,QT二次开发SDK,基于触觉智能方案

    本文基于触觉智能RK3506核心板/开发板,介绍RK3506+64通道高速ADC采集+QT显示方案,具备低成本、高实时、低抖动特性。
    的头像 发表于 04-21 10:17 220次阅读
    瑞芯微<b class='flag-5'>RK3506</b>实现64通道<b class='flag-5'>高速</b>ADC并行采集,QT二次开发SDK,基于触觉智能方案