DSMC通信协议理解,以及如何在FPGA上实现DSMC从设备(1)

本篇文章用来记录自己对DSMC通信协议的理解。

1.DSMC概述

Double Data Rate Serial Memory Controller(DSMC),双倍速率串行存储器控制器,通过命令、地址、数据线分时复用,数据上下沿传输,具有少引脚数、高带宽的特点。

2.DSMC硬件接口介绍(RK3576)

详细接口如下(主机侧)

| 强制接口 ||||

引脚 方向 电平 说明
CLKP CLKP O - 通信时钟,差分时钟用于1.8V设备,3.0V以上设备只使用CLKP 主机发送数据和时钟交叉沿中心对齐(从机在时钟跳变沿采样)
CSn0~CSn3 O - 片选,支持4个从设备
DQ0~DQ15 I/O - 双向数据总线
DQS0 DQS1 I/O - RWDS读写选通信号,CA命令期间用来向主机表示是否需要额外延时 主机读数据期间和数据信号沿对齐用于主机获取数据 主机写数据期间用于数据掩码(localbus模式下无效)
可选接口
RESETN O 上拉 复位信号
RDYN I 开漏 从机准备好信号
INTn0~INTn3 I 开漏 中断信号

3. DSMC总线模式(支持的协议)

.Hyperbus PSRAM、

.Xccela PSRAM

.Local bus

4.DSMC读写时序介绍(以HyperRAM为例)

4.1读操作

1.主机会判断CS high、CLKP low、CLKN high,都符合则进行开始进入读操作

2.拉低片选,随后传输48bit CA指令,传输指令同时主机监测DQS电平判断是否插入额外延时

3.在到达延时时间后读取DQS信号,读取对应数据

*在整个读事务期间DQS信号都由从机控制

4.2写操作

1.主机会判断CS high、CLKP low、CLKN high,都符合则进行开始进入写操作

2.拉低片选,随后传输48bit CA指令,传输指令同时主机监测DQS电平判断是否插入额外延时

3.从机在接收完CA指令后释放DQS信号,主机需要在延时结束前将DQS驱动至有效低电平,从机在到达延时时间后读取DQS信号和数据信号

*写事务中DQS作为掩码功能使用,高电平指示数据写入(在零延时写入模式下主机从机都不再关心DQS信号)

4.3零延时写操作

零延时写操作和普通写类似,区别在于写入CA指令后立刻传输数据字节,同时主机从机不再关注DQS信号。

5.DSMC CA指令格式

5.1 HyperBus模式下的CA指令结构

5.2 LocalBus模式下的CA指令结构

主设备参数配置和寄存器表这里还没看懂暂时不写了(反正是RK封装好的驱动直接调用就可以......小声)

相关推荐
南某人急了9 小时前
理论篇2——电容、电感的阻抗
学习·硬件工程
YouCanYouUp.10 小时前
AUTOSAR CAN 网络管理(NM / CanNm)深度解析:从概念到配置实现
学习
2301_8018217110 小时前
NMVM短文本聚类模型学习
学习
叼烟扛炮11 小时前
Linux 学习笔记(八):GCC 编译器的四大阶段与链接原理
linux·笔记·学习
Z21-X11 小时前
云原生运维学习笔记:从云计算概念到服务器硬件的入门之旅
运维·笔记·学习·云原生
叼烟扛炮11 小时前
Linux 学习笔记(七):软件安装与 Vim 编辑器极速入门
linux·学习·编辑器
泡泡糖的中文规格书11 小时前
HDLbits 1.4 学习笔记
fpga开发
hgy896911 小时前
Sufer技能积累手册
学习
叼烟扛炮11 小时前
Linux 学习笔记(十六):进程的调度与优先级——谁先抢到 CPU?
linux·笔记·学习
幽灵诶12 小时前
学习Linux
linux·学习