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封装好的驱动直接调用就可以......小声)

相关推荐
白猫不黑1 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
世人万千丶1 小时前
鸿蒙项目实战 - 社区活动编排板:标签云布局算法与自动换行
学习·算法·华为·harmonyos·鸿蒙
松小白song2 小时前
FPGA开发三大铁律:位宽、逻辑与连接,为何仿真通过上板却挂?
fpga开发
丰锋ff2 小时前
基于 Qt 的智慧社区物业管理系统学习过程
学习
小贺儿开发2 小时前
Unity 程序员编曲花絮:汪峰《河流》细节修复
科技·学习·unity·程序员·音乐·demo·写代码
其实防守也摸鱼2 小时前
Codex破局:前端组件秒级生成的技术文章大纲
开发语言·前端·人工智能·学习·安全·web安全
wuhuhuan2 小时前
【JMeter 学习打卡 Day 5】控制流程和节奏的利器
学习·jmeter
YM52e3 小时前
鸿蒙ArkTS项目实战 - 门店陈列巡检台:完整代码与运行效果
学习·华为·harmonyos
️学习的小王3 小时前
NumPy完整学习笔记:ndarray数组详解、创建、索引切片、常用函数与运算
笔记·学习·numpy
snow@li3 小时前
PowerShell:零基础完全学习手册(通俗理解+多表格实战)
学习