RK3506 DSMC接口架构解析:Local Bus实现高速互联

发布时间:2026-04-16 阅读量:6016 来源: 发布人: suii

在工业控制场景中,芯片间的高速数据交互是一个关键需求,而传统方案往往在效率与成本上面临两难:一方面,串口或网络等协议传输速度有限,难以满足实时性要求;另一方面,基于共享内存的架构虽可提供高带宽,但硬件复杂、引脚占用多,整体成本较高。RK3506核心板集成的DSMC接口,为这一矛盾提供了新的解决思路——通过 Local Bus 协议,用少量引脚实现跨芯片的高速地址空间访问。


图片10.png

 

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

图片11.png 

图:基于RK3506核心板开发板


第一章:DSMC是什么?


名词预先了解

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


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


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


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


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


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


image.png


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


1.1 DSMC 的系统定位

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


image.png


1.2 DSMC vs 常见访问方式

图片12.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的属性模板:


image.png


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


2.3 硬件地址体系

image.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 提供两组寄存器,实现主从双向中断通知:


image.png


在 region3 中,Host 侧地址映射:


image.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 配置

image.png


4.3 Slave 侧 DTS 配置

image.png


4.4 启动日志确认

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

DSMC: init cs0 LB device DSMC: cs0 byte dll delay line result 0x2d DSMC: clk_sys: Enabled, frequency: 196608000 Hz 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 进行数据读写的核心流程:

int fd = 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 后,以寄存器方式完成主从握手:

int reg_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 测试条件

image.png


6.2 测试结果

图片13.png

 

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


6.3 驱动核心文件

image.png


总结与展望

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


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


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

 

参考资料:《Rockchip_Developer_Guide_DSMC_CN》



220x90
相关资讯
脑机接口新突破:猴子仅凭意念在 VR 世界中自由移动

三只恒河猴仅通过大脑信号,就在虚拟现实(VR)世界中控制自身运动

RK3576开发板+ JishuShell:软硬件协同实现OpenClaw“一键式”部署

随着端侧AI从技术探索进入量产应用阶段,部署效率成为产业落地的关键。我爱方案网推出“MYD-LR3576 核心板 + JishuShell”一体化部署方案,方案显著降低了端侧 AI Agent —— OpenClaw 在边缘设备上的部署门槛,助力高效、快速实现端侧AI应用落地。

新品MYD-YF13X V2.0.0发布!基于STM32MP135F安全芯实现系统、安全、功能全面升级

MYD-YF13X平台资料及SDK发布重要版本更新V2.0.0,在系统版本、安全能力和功能支持等方面均实现全面提升,标志着该平台迈入了更稳定、更安全、更强大的新阶段。

低相噪、高精度TCXO方案:以PPM级精度实现机器人整机性能跃迁

在机器人系统中,时间基准并非仅用于“提供频率”,而是贯穿于控制闭环、通信同步、数据采集与时间对齐等各个环节的底层基础。

低成本、低功耗雷达感知方案:实现高精度人体存在感知与微动检测的多场景应用

以毫米波雷达为核心的微动检测方案,能够在完全无光、非直视、复杂衣着覆盖甚至隔墙条件下,实现对目标生命体征与微弱运动的稳定捕获与量化分析。