一种接口转换装置及转换方法 技术领域 本发明涉及接口转换, 更具体地说, 涉及一种实现 DMA 接口和 TCM 接口之间的数据 传输的接口转换装置及转换方法。
背景技术 在众多存储访问接口中包括 DMA 接口、 TCM 接口, 如图 1 所示, 采用 DMA 接口的功 能单元 200 与采用 TCM 接口的存储单元 300 由于 DMA 通信协议和 TCM 通信协议的不同, 使 得 DMA 接口与 TCM 接口是隔绝的, 即, 功能单元 200 无法访问存储单元 300。
下面说明 DMA 接口及 TCM 接口的通信协议 :
一、 DMA 接口 :
dma_req : 请求信号位, dma_req 共 1 位, 高有效。在时钟触发沿时刻, 功能单元请 求 DMA 数据传输时, 将 dma_req 拉高 ; 在时钟触发沿时刻, dma_ack 为高时, 功能单元将 dma_ req 拉低。
dma_addr : 起始地址位, dma_addr 共 32 位, DMA 传输起始地址信号, 功能单元在拉 高 dma_req 信号的同时, 发出 dma_addr 信号。
dma_cnt : 总字节数位, dma_cnt 共 16 位, 本次 DMA 传输需要传输的总字节数, 功能 单元在拉高 dma_req 信号的同时, 发出 dma_cnt 信号。
dma_step : 地址跳跃位, dma_step 共 32 位。假定低 16 位值为 X, 高 16 位值为 Y, DMA 读取或写入 X 字节数据后需要在当前位置向后跳转 Y 字节地址再继续读取或写入 X 字 节, 如此反复, 直到读取或写入完成 dma_cnt 字节。
dma_dir : 方向信号位, dma_dir 共 1 位, 表示 DMA 传输的方向。0 表示数据从功能 单元传出, 即功能单元写出数据 ; 1 表示数据传入功能单元, 即功能单元读入数据。
dma_ack : 响应信号位, dma_ack 共 1 位, DMA 请求响应信号, 1 表示功能单元的请求 得到了响应 ; 0 表示未响应。
dma_udata : 上传数据位, dma_udata 共 16 位或 32 位, 功能单元通过 DMA 写出的数 据。
dma_urd : 上传信号位, dma_urd 共 1 位。若当前时钟触发沿时刻, dma_urd 为高, 则在下个时钟触发沿时刻功能单元需提供对应的 dma_udata。
dma_ddata : 下载数据位, dma_ddata 共 16 或 32 位, 功能单元通过 DMA 读入的数据。
dma_dwr : 下载信号位, dma_dwr 共 1 位。若当前时钟触发沿时刻 dma_dwr 为高, 则 在当前时刻功能单元可以读取对应的 dma_ddata。
二、 TCM 接口信号 :
DRADDR : 地址位, DRADDR 共 18 位, 表示读写数据的地址, 以字为单位, 即 0 对应存 储单元中第一个字, 1 对应存储单元中第二个字。
DRCS : 片选信号位, DRCS 共 1 位, 存储单元的片选信号, 高有效。
DRDMAADDR : DRDMAADDR 共 18 位, 通常不使用, 设为 0。
DRDMAEN : DRDMAEN 共 1 位, 通常不使用, 设为 0。
DRDMACS : DRDMACS 共 1 位, 通常不使用, 设为 0。
DRIDLE : 状态信号位, DRIDLE 共 1 位, 0 表示数据 TCM 正在读写数据 ; 1 表示数据 TCM 空闲。
DRnRW : 读写标记信号位, DRnRW 共 1 位。DRnRW 为 0 表示读存储单元 ; DRnRW 为 1 表示写存储单元。
DRRD : 读数据位, DRRD 共 32 位。
DRSEQ : DRSEQ 共 1 位, 1 表示数据 TCM 地址连续, 0 表示地址未必连续。
DRSIZE : DRSIZE 共 4 位, 表示数据 TCM 的大小。 DRSIZE 最小为 3, 最大为 11。 DRSIZE 为 3 表示数据 TCM 为 4K 字节大小, 4 表示 8K 字节大小, 5 表示 16K 字节大小, 依次类推。存 储单元最小为 4K 字节, 最大为 1M 字节。
DRWAIT : DRWAIT 共 1 位, 数据 TCM 等待信号, 1 代表数据 TCM 当前不能响应读写请 求, 0 代表能响应。
DRWD : 写数据位, DRWD 共 32 位。
DRWBL : 字节选择信号位, DRWBL 共 4 位, 数据 TCM 写数据时的字节选择信号, 高有 效。DRWBL 从高到低 4 位分别表示 DRWD 从高到低 4 个字节的写使能。 发明内容 本发明要解决的技术问题在于, 针对现有技术的上述无法实现 DMA 接口与 TCM 接 口之间数据传输的缺陷, 提供一种接口转换装置, 能实现 DMA 接口与 TCM 接口之间的数据传 输。
本发明解决其技术问题所采用的技术方案是 : 构造一种接口转换装置, 用于实现 DMA 接口和 TCM 接口之间的数据传输, 包括 :
DMA 模块, 与 DMA 接口相连, 用于接收来自 DMA 接口的 DMA 信号, 或向 DMA 接口发送 转换后的 DMA 信号 ;
中间处理模块, 用于将所接收的来自 DMA 接口的 DMA 信号转换为 TCM 信号, 及将所 接收的来自 TCM 接口的 TCM 信号转换为 DMA 信号 ;
TCM 模块, 与所述 TCM 接口相连, 用于向 TCM 接口发送转换后的 TCM 信号, 或接收来 自 TCM 接口的 TCM 信号。
在本发明所述的接口转换装置中,
所述 DMA 模块包括 :
起始地址计算单元, 与 DMA 接口的起始地址位相连, 用于在时钟触发沿时刻, 若请 求信号与响应信号同时为 1, 则起始地址更新为 DMA 接口的起始地址位所输出的起始地址 的低 20 位 ;
总字节数计算单元, 与 DMA 接口的总字节数位相连, 用于在时钟触发沿时刻, 若请 求信号与响应信号同时为 1, 则总字节数更新为 DMA 接口的总字节数位所输出的总字节数 ;
当前字节数计算单元, 用于在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则将当前字节数更新为 0 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿时刻, 若第二上 传信号或第二下载信号为 1, 则将当前字节数加 4 ; 当 DMA 接口的数据位宽为 32 位时, 在时
钟触发沿时刻, 若第一上传信号或第一下载信号为 1, 则将当前字节数加 4 ;
响应信号计算单元, 与 DMA 接口的响应信号位相连, 用于在时钟触发沿时刻, 若请 求信号为 1, 则将响应信号更新为 1 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿时刻, 若第三上传信号或者第三下载信号为 1, 且当前字节数等于总字节数, 则将响应信号更新为 0; 当 DMA 接口的数据位宽为 32 位时, 在时钟触发沿时刻, 若第二上传信号或者第二下载信 号为 1, 且当前字节数等于总字节数, 则响应信号更新为 0 ;
上传信号计算单元, 与 DMA 接口的上传信号位相连, 用于当 DMA 接口的数据位宽为 16 位时, 上传信号等于第一上传信号与第二上传信号进行或运算的值 ; 当 DMA 接口的数据 位宽为 32 位时, 上传信号等于第一上传信号 ;
下载信号计算单元, 与 DMA 接口的下载信号位相连, 用于当 DMA 接口的数据位宽为 16 位时, 下载信号等于第二下载信号与第三下载信号进行或运算的值 ; 当 DMA 接口的数据 位宽为 32 位时, 下载信号等于第二下载信号 ;
下载数据计算单元, 与 DMA 接口的下载数据位相连, 用于当 DMA 接口的数据位宽为 16 位时, 若第二下载信号为 1, 则下载数据等于 TCM 接口的读数据位的低 16 位, 否则下载数 据等于 TCM 接口的读数据位的高 16 位 ; 当 DMA 接口的数据位宽为 32 位时, 下载数据等于 TCM 接口的读数据位 ; 所述中间处理模块包括 :
第一上传信号计算单元, 用于在时钟触发沿时刻, 若请求信号和响应信号都为 1, 且方向信号为 0, 则第一上传信号更新为 1 ; 在时钟触发沿时刻, 若第一上传信号为 1, 则第 一上传信号更新为 0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三上传信号 为 1, 且当前字节数小于总字节数, 则第一上传信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在时钟触发沿时刻, 若第二上传信号为 1, 且当前字节数小于总字节数, 则第一上传信号 更新为 1 ;
第二上传信号计算单元, 用于在时钟触发沿时刻, 若第一上传信号为 1, 则第二上 传信号更新为 1 ; 在时钟触发沿时刻, 若第二上传信号为 1, 则第二上传信号更新为 0 ;
第三上传信号计算单元, 用于在时钟触发沿时刻, 若第二上传信号为 1, 则第三上 传信号更新为 1 ; 在时钟触发沿时刻, 若第三上传信号为 1, 则第三上传信号更新为 0 ;
第一下载信号计算单元, 用于在时钟触发沿时刻, 若请求信号、 响应信号、 方向信 号都为 1, 则第一下载信号更新为 1 ; 在时钟触发沿时刻, 若第一下载信号为 1, 则第一下载 信号更新为 0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三下载信号为 1, 且 当前字节数小于总字节数, 则第一下载信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在时 钟触发沿时刻, 若第二下载信号为 1, 且当前字节数小于总字节数, 则第一下载信号更新为 1;
第二下载信号计算单元, 用于在时钟触发沿时刻, 若第一下载信号为 1, 则第二下 载信号更新为 1 ; 在时钟触发沿时刻, 若第二下载信号为 1, 则第二下载信号更新为 0 ;
第三下载信号计算单元, 用于在时钟触发沿时刻, 若第二下载信号为 1, 则第三下 载信号更新为 1 ; 在时钟触发沿时刻, 若第三下载信号为 1, 则第三下载信号更新为 0 ;
TCM 模块包括 :
读写标记信号计算单元, 与 TCM 接口的读写标记位相连, 用于当 DMA 接口的数据位
宽为 16 时, 读写标记信号等于第三上传信号 ; 当 DMA 接口的数据位宽为 32 时, 读写标记信 号等于第二上传信号 ;
地址计算单元, 与 TCM 接口的地址位相连, 用于令当前地址等于起始地址位与当 前字节数之和, 则当读写标记信号为 1 时, 地址等于当前地址的低 20 位右移 2 位再减 1 ; 当 读写标记信号为 0 时, 地址等于当前地址的低 20 位右移 2 位 ;
片选信号计算单元, 与 TCM 接口的片选信号位相连, 用于当 DMA 接口的数据位宽为 16 时, 片选信号等于第三上传信号、 第一下载信号、 第二下载信号进行或运算的值 ; 当 DMA 接口的数据位宽为 32 时, 片选信号等于第二上传信号、 第一下载信号进行或运算的值 ;
字节选择信号计算单元, 与 TCM 接口的字节选择信号位相连, 字节选择信号的 4 位 均等于读写标记信号 ;
写数据计算单元, 与 TCM 接口的写数据位相连, 用于当 DMA 接口的数据位宽为 16 时, 写数据的高 16 位等于 DMA 接口的上传数据, 在时钟触发沿时刻, 若第二上传信号为 1, 则写数据的低 16 位更新为 DMA 接口的上传数据, 其它时刻写数据的低 16 位值保持不变 ; 当 DMA 接口的数据位宽为 32 时, 写数据等于 DMA 接口的上传数据。
在本发明所述的接口转换装置中, 在复位信号触发沿时刻, 起始地址、 总字节数、 当前字节数、 请求信号、 响应信号、 上传信号、 第一上传信号、 第二上传信号、 第三上传信号、 下载信号、 第一下载信号、 第二下载信号、 第三下载信号均复位为 0。
本发明还构造一种接口转换方法, 用于实现 DMA 接口和 TCM 接口之间的数据传输, 其特征在于, 包括 :
当从 DMA 接口向 TCM 接口传输数据时, 进行步骤 A1 至 A3 :
A1. 接收来自 DMA 接口的 DMA 信号 ;
A2. 将所接收的来自 DMA 接口的 DMA 信号转换为 TCM 信号 ;
A3. 向 TCM 接口发送转换后的 TCM 信号 ;
当从 TCM 接口向 DMA 接口传输数据时, 进行步骤 B1 至 B3 :
B1. 接收来自 TCM 接口的 TCM 信号 ;
B2. 将所接收的来自 TCM 接口的 TCM 信号转换为 DMA 信号 ;
B3. 向 DMA 接口发送转换后的 DMA 信号。
在本发明所述的接口转换方法中, 同时进行以下步骤 :
计算起始地址 : 在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则起始地址 更新为 DMA 接口的起始地址位所输出的起始地址的低 20 位 ;
计算总字节数 : 在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则总字节数 更新为 DMA 接口的总字节数位所输出的总字节数 ;
计算当前字节数 : 在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则将当前 字节数更新为 0 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿时刻, 若第二上传信号或 第二下载信号为 1, 则将当前字节数加 4 ; 当 DMA 接口的数据位宽为 32 位时, 在时钟触发沿 时刻, 若第一上传信号或第一下载信号为 1, 则将当前字节数加 4 ;
计算响应信号 : 在时钟触发沿时刻, 若请求信号为 1, 则将响应信号更新为 1 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿时刻, 若第三上传信号或者第三下载信号为 1, 且当前字节数等于总字节数, 则将响应信号更新为 0 ; 当 DMA 接口的数据位宽为 32 位时,在时钟触发沿时刻, 若第二上传信号或者第二下载信号为 1, 且当前字节数等于总字节数, 则响应信号更新为 0 ;
计算上传信号 : 当 DMA 接口的数据位宽为 16 位时, 上传信号为等于第一上传信号 与第二上传信号进行或运算的值 ; 当 DMA 接口的数据位宽为 32 位时, 上传信号等于第一上 传信号 ;
计算下载信号 : 当 DMA 接口的数据位宽为 16 位时, 下载信号为等于第二下载信号 与第三下载信号进行或运算的值 ; 当 DMA 接口的数据位宽为 32 位时, 下载信号等于第二下 载信号 ;
计算下载数据 : 当 DMA 接口的数据位宽为 16 位时, 若第二下载信号为 1, 则下载数 据等于 TCM 接口的读数据位的低 16 位, 否则下载数据等于 TCM 接口的读数据位的高 16 位 ; 当 DMA 接口的数据位宽为 32 位时, 下载数据等于 TCM 接口的读数据位 ;
计算第一上传信号 : 在时钟触发沿时刻, 若请求信号和响应信号都为 1, 且方向信 号为 0, 则第一上传信号更新为 1 ; 在时钟触发沿时刻, 若第一上传信号为 1, 则第一上传信 号更新为 0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三上传信号为 1, 且当 前字节数小于总字节数, 则第一上传信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在时钟 触发沿时刻, 若第二上传信号为 1, 且当前字节数小于总字节数, 则第一上传信号更新为 1 ; 计算第二上传信号 : 在时钟触发沿时刻, 若第一上传信号为 1, 则第二上传信号更 新为 1 ; 在时钟触发沿时刻, 若第二上传信号为 1, 则第二上传信号更新为 0 ;
计算第三上传信号 : 在时钟触发沿时刻, 若第二上传信号为 1, 则第三上传信号更 新为 1 ; 在时钟触发沿时刻, 若第三上传信号为 1, 则第三上传信号更新为 0 ;
计算第一下载信号 : 在时钟触发沿时刻, 若请求信号、 响应信号、 方向信号都为 1, 则第一下载信号更新为 1 ; 在时钟触发沿时刻, 若第一下载信号为 1, 则第一下载信号更新 为0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三下载信号为 1, 且当前字节 数小于总字节数, 则第一下载信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在时钟触发沿 时刻, 若第二下载信号为 1, 且当前字节数小于总字节数, 则第一下载信号更新为 1 ;
计算第二下载信号 : 在时钟触发沿时刻, 若第一下载信号为 1, 则第二下载信号更 新为 1 ; 在时钟触发沿时刻, 若第二下载信号为 1, 则第二下载信号更新为 0 ;
计算第三下载信号 : 在时钟触发沿时刻, 若第二下载信号为 1, 则第三下载信号更 新为 1 ; 在时钟触发沿时刻, 若第三下载信号为 1, 则第三下载信号更新为 0 ;
计算读写标记信号 : 当 DMA 接口的数据位宽为 16 时, 读写标记信号等于第三上传 信号 ; 当 DMA 接口的数据位宽为 32 时, 读写标记信号等于第二上传信号 ;
计算地址 : 令当前地址等于起始地址位与当前字节数之和, 则当读写标记信号为 1 时, 地址等于当前地址的低 20 位右移 2 位再减 1 ; 当读写标记信号为 0 时, 地址等于当前 地址的低 20 位右移 2 位 ;
计算片选信号 : 当 DMA 接口的数据位宽为 16 时, 片选信号等于第三上传信号、 第一 下载信号、 第二下载信号进行或运算的值 ; 当 DMA 接口的数据位宽为 16 时, 片选信号等于第 二上传信号、 第一下载信号进行或运算的值 ;
计算字节选择信号 : 字节选择信号的 4 位均等于读写标记信号 ;
计算写数据 : 当 DMA 接口的数据位宽为 16 时, 写数据的高 16 位等于 DMA 接口的上
传数据, 在时钟触发沿时刻, 若第二上传信号为 1, 则写数据的低 16 位更新为 DMA 接口的上 传数据, 其它时刻写数据的低 16 位值保持不变 ; 当 DMA 接口的数据位宽为 32 时, 写数据等 于 DMA 接口的上传数据。
在本发明所述的接口转换方法中, 在复位信号触发沿时刻, 起始地址、 总字节数、 当前字节数、 请求信号、 响应信号、 上传信号、 第一上传信号、 第二上传信号、 第三上传信号、 下载信号、 第一下载信号、 第二下载信号、 第三下载信号均复位为 0。
实施本发明的技术方案, 由于能将来自 DMA 接口的 DMA 信号转化为 TCM 信号及将 来自 TCM 接口的 TCM 信号转换为 DMA 信号, 所以能实现 DMA 接口和 TCM 接口之间的数据传 输, 进而使得, 带有 DMA 接口的功能单元能访问带有 TCM 接口的存储单元。 附图说明
下面将结合附图及实施例对本发明作进一步说明, 附图中 : 图 1 是现有技术中带有 DMA 接口的功能单元与带有 TCM 接口的存储单元 ; 图 2 是本发明接口转换装置实施例一的逻辑结构图 ; 图 3 是本发明接口转换装置实施例二的逻辑结构图 ; 图 4A 是本发明接口转换方法中从 DMA 接口向 TCM 接口传输数据实施例一的流程 图 4B 是本发明接口转换方法中从 TCM 接口向 DMA 接口传输数据实施例一的流程 图 5A 是本发明从 DMA 接口向 TCM 接口传输 32 位数据时各个信号的时序图 ; 图 5B 是本发明从 TCM 接口向 DMA 接口传输 32 位数据时各个信号的时序图 ; 图 5C 是本发明从 DMA 接口向 TCM 接口传输 16 位数据时各个信号的时序图 ; 图 5D 是本发明从 TCM 接口向 DMA 接口传输 16 位数据时, 各个信号的时序图。图;
图;
具体实施方式
如图 2 所示, 在本发明接口转换装置实施例一的逻辑结构图中, 该接口转换装置 用于实现 DMA 接口和 TCM 接口之间的数据传输, 且该接口转换装置包括 DMA 模块 110、 中间 处理模块 120 和 TCM 模块 130。其中, DMA 模块 110 与 DMA 接口 ( 图 2 未示出 ) 相连, 用于 接收来自 DMA 接口的 DMA 信号, 或向 DMA 接口发送转换后的 DMA 信号 ; 中间处理模块 120 用 于将所接收的来自 DMA 接口的 DMA 信号转换为 TCM 信号, 及将所接收的来自 TCM 接口 TCM 信号转换为 DMA 信号 ; TCM 模块 130 与所述 TCM 接口 ( 图 2 未示出 ) 相连, 用于向 TCM 接口 发送转换后的 TCM 信号, 或接收来自 TCM 接口的 TCM 信号。实施该技术方案, 由于能将来自 DMA 接口的 DMA 信号转化为 TCM 信号, 及将来自 TCM 接口的 TCM 信号转换为 DMA 信号, 所以 能实现 DMA 接口和 TCM 接口之间的数据传输, 进而使得, 带有 DMA 接口的功能单元能访问带 有 TCM 接口的存储单元。
如图 3 所示, 在本发明接口转换装置实施例二的逻辑结构图中, 该接口转换装置 包括 DMA 模块 110、 中间处理模块 120 和 TCM 模块 130。其中, DMA 模块 110 包括起始地址 计算单元 111、 总字节数计算单元 112、 当前字节数计算单元 113、 响应信号计算单元 114、 上 传信号计算单元 115、 下载信号计算单元 116 和下载数据计算单元 117 ; 中间处理模块 120包括第一上传信号计算单元 121、 第二上传信号计算单元 122、 第三上传信号计算单元 123、 第一下载信号计算单元 124、 第二下载信号计算单元 125 和第三下载信号计算单元 126 ; TCM 模块 130 包括读写标记信号计算单元 131、 地址计算单元 132、 片选信号计算单元 133、 字节 选择信号计算单元 134 和写数据计算单元 135。下面具体说明各个单元 :
起始地址计算单元 111, 与 DMA 接口的起始地址位相连, 用于在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则起始地址更新为 DMA 接口的起始地址位所输出的起始 地址的低 20 位 ;
总字节数计算单元 112, 与 DMA 接口的总字节数位相连, 用于在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则总字节数更新为 DMA 接口的总字节数位所输出的总字 节数 ;
当前字节数计算单元 113, 用于在时钟触发沿时刻, 若请求信号与响应信号同时为 1, 则将当前字节数更新为 0 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿时刻, 若第二 上传信号或第二下载信号为 1, 则将当前字节数加 4 ; 当 DMA 接口的数据位宽为 32 位时, 在 时钟触发沿时刻, 若第一上传信号或第一下载信号为 1, 则将当前字节数加 4 ;
响应信号计算单元 114, 与 DMA 接口的响应信号位相连, 用于在时钟触发沿时刻, 若请求信号为 1, 则将响应信号更新为 1 ; 当 DMA 接口的数据位宽为 16 位时, 在时钟触发沿 时刻, 若第三上传信号或者第三下载信号为 1, 且当前字节数等于总字节数, 则将响应信号 更新为 0 ; 当 DMA 接口的数据位宽为 32 位时, 在时钟触发沿时刻, 若第二上传信号或者第二 下载信号为 1, 且当前字节数等于总字节数, 则响应信号更新为 0 ; 上传信号计算单元 115, 与 DMA 接口的上传信号位相连, 用于当 DMA 接口的数据位 宽为 16 位时, 上传信号等于第一上传信号与第二上传信号进行或运算的值 ; 当 DMA 接口的 数据位宽为 32 位时, 上传信号等于第一上传信号 ;
下载信号计算单元 116, 与 DMA 接口的下载信号位相连, 用于当 DMA 接口的数据位 宽为 16 位时, 下载信号等于第二下载信号与第三下载信号进行或运算的值 ; 当 DMA 接口的 数据位宽为 32 位时, 下载信号等于第二下载信号 ;
下载数据计算单元 117, 与 DMA 接口的下载数据位相连, 用于当 DMA 接口的数据位 宽为 16 位时, 若第二下载信号为 1, 则下载数据等于 TCM 接口的读数据位的低 16 位, 否则下 载数据等于 TCM 接口的读数据位的高 16 位 ; 当 DMA 接口的数据位宽为 32 位时, 下载数据等 于 TCM 接口的读数据位 ;
第一上传信号计算单元 121, 用于在时钟触发沿时刻, 若请求信号和响应信号都为 1, 且方向信号为 0, 则第一上传信号更新为 1 ; 在时钟触发沿时刻, 若第一上传信号为 1, 则 第一上传信号更新为 0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三上传信 号为 1, 且当前字节数小于总字节数, 则第一上传信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在时钟触发沿时刻, 若第二上传信号为 1, 且当前字节数小于总字节数, 则第一上传 信号更新为 1 ;
第二上传信号计算单元 122, 用于在时钟触发沿时刻, 若第一上传信号为 1, 则第 二上传信号更新为 1 ; 在时钟触发沿时刻, 若第二上传信号为 1, 则第二上传信号更新为 0 ;
第三上传信号计算单元 123, 用于在时钟触发沿时刻, 若第二上传信号为 1, 则第 三上传信号更新为 1 ; 在时钟触发沿时刻, 若第三上传信号为 1, 则第三上传信号更新为 0 ;
第一下载信号计算单元 124, 用于在时钟触发沿时刻, 若请求信号、 响应信号、 方向 信号都为 1, 则第一下载信号更新为 1 ; 在时钟触发沿时刻, 若第一下载信号为 1, 则第一下 载信号更新为 0 ; 当 DMA 接口的数据位宽为 16 时, 在时钟触发沿时刻, 若第三下载信号为 1, 且当前字节数小于总字节数, 则第一下载信号更新为 1 ; 当 DMA 接口的数据位宽为 32 时, 在 时钟触发沿时刻, 若第二下载信号为 1, 且当前字节数小于总字节数, 则第一下载信号更新 为1;
第二下载信号计算单元 125, 用于在时钟触发沿时刻, 若第一下载信号为 1, 则第 二下载信号更新为 1 ; 在时钟触发沿时刻, 若第二下载信号为 1, 则第二下载信号更新为 0 ;
第三下载信号计算单元 126, 用于在时钟触发沿时刻, 若第二下载信号为 1, 则第 三下载信号更新为 1 ; 在时钟触发沿时刻, 若第三下载信号为 1, 则第三下载信号更新为 0 ;
读写标记信号计算单元 131, 与 TCM 接口的读写标记位相连, 用于当 DMA 接口的数 据位宽为 16 时, 读写标记信号等于第三上传信号 ; 当 DMA 接口的数据位宽为 32 时, 读写标 记信号等于第二上传信号 ;
地址计算单元 132, 与 TCM 接口的地址位相连, 用于令当前地址等于起始地址位与 当前字节数之和, 则当读写标记信号为 1 时, 地址等于当前地址的低 20 位右移 2 位再减 1 ; 当读写标记信号为 0 时, 地址等于当前地址的低 20 位右移 2 位 ;
片选信号计算单元 133, 与 TCM 接口的片选信号位相连, 用于当 DMA 接口的数据位 宽为 16 时, 片选信号等于第三上传信号、 第一下载信号、 第二下载信号进行或运算的值 ; 当 DMA 接口的数据位宽为 32 时, 片选信号等于第二上传信号、 第一下载信号进行或运算的值 ;
字节选择信号计算单元 134, 与 TCM 接口的字节选择信号位相连, 字节选择信号的 4 位均等于读写标记信号 ;
写数据计算单元 135, 与 TCM 接口的写数据位相连, 用于当 DMA 接口的数据位宽为 16 时, 写数据的高 16 位等于 DMA 接口的上传数据, 在时钟触发沿时刻, 若第二上传信号为 1, 则写数据的低 16 位更新为 DMA 接口的上传数据, 其它时刻写数据的低 16 位值保持不变 ; 当 DMA 接口的数据位宽为 32 时, 写数据等于 DMA 接口的上传数据。
优选地, 在以上的各个计算单元中, 在复位信号触发沿时刻, 起始地址、 总字节数、 当前字节数、 请求信号、 响应信号、 上传信号、 第一上传信号、 第二上传信号、 第三上传信号、 下载信号、 第一下载信号、 第二下载信号、 第三下载信号均复位为 0。
图 4A 和图 4B 分别是本发明接口转换方法中从 DMA 接口向 TCM 接口传输数据和从 TCM 接口向 DMA 接口传输数据实施例一的流程图, 在图 4A 中, 从 DMA 接口向 TCM 接口传输数 据的方法 S100 包括以下步骤 :
S101. 接收来自 DMA 接口的 DMA 信号 ;
S102. 将所接收的来自 DMA 接口的 DMA 信号转换为 TCM 信号 ;
S103. 向 TCM 接口发送转换后的 TCM 信号 ;
在图 4B 中, 从 TCM 接口向 DMA 接口传输数据的方法 S200 包括以下步骤 :
S201. 接收来自 TCM 接口的 TCM 信号 ;
S202. 将所接收的来自 TCM 接口的 TCM 信号转换为 DMA 信号 ;
S203. 向 DMA 接口发送转换后的 DMA 信号。
下面举例说明接口转换装置及接口转换方法是如何实现 DMA 接口和 TCM 接口的数据传输的。首先应当说明的是, 出于电路复杂度的考虑, 本发明在以下条件下设计 : DMA 接 口的地址跳跃位等于总字节数位, 即 dma_step = dma_cnt, 也即, DMA 接口从起始地址开始 连续读取或写入总字节数个字节 ; TCM 接口的 DRDMAADDR, DRDMAEN, DRDMACS, DRWAIT 均连 0; DRIDLE, DRSEQ 不使用, 本发明不讨论 ; DRSIZE 根据存储单元的大小进行合理相连。
图 5A 是从 DMA 接口向 TCM 接口传输 32 位数据时各个信号的时序图, 在图 5A 中 :
rstn 为复位信号, 下降沿时刻触发, 在 t0 时刻, 请求信号 req、 响应信号 ack、 上传 信号 dma_urd、 第一上传信号 urd、 第二上传信号 urd_d1 均复位为 0。
clk 为时钟信号, 在 t1 时刻, DMA 接口的请求信号位发送请求信号 req( 高电平有 效 ), 及发送方向信号 dir( 为 0)。
在 t2 时刻, 响应信号 ack 开始响应请求信号 req。
在 t3 时刻, 请求信号 req 因响应信号 ack 的响应而被拉低 ; 同时, 由于请求信号 req、 响应信号 ack 为 1、 方向信号 dir 为 0, 所以第一上传信号 urd 更新为 1。
在 t4 时刻, 由于第一上传信号 urd 为 1, 则第一上传信号 urd 更新为 0, 同时, 第二 上传信号 urd_d1 更新为 1。
而在 t5 时刻, 由于第二上传信号 urd_d1 为 1, 则第二上传信号 urd_d1 更新为 0, 同时, 在当前字数小于总字节数时, 第一上传信号 urd 更新为 1。
上传信号 dma_urd 等于第一上传信号 urd, 即其时序图与第一上传信号 urd 的时序 图相同。读写标记信号 DRnRW 等于第二上传信号 urd_d1, 即其时序图与第二上传信号 urd_ d1 的时序图相同。片选信号 DRCS 等于第二上传信号 urd_d1, 即其时序图与第二上传信号 urd_d1 的时序图相同。字节选择信号 DRWBL 的 4 位均与读写标记信号 DRnRW 相同 ( 图中未 示出 )。
下面说明传输数据的地址的计算 : 在 t3 时刻, 请求信号 req 和响应信号 ack 同时 为 1, 起始地址更新为 DMA 接口的起始地址位所发送的起始地址的低 20 位 ; 同时, 总字节数 更新为 DMA 接口的总字节数位所发送的总字节数, 且当前字节数更新为 0。在 t4 时刻, 由 于第一上传信号 urd 为 1, 所以, 当前字节数更新为 4, 则当前地址为起始地址与当前字节数 (t4 时刻, 当前字节数更新为 4) 之和, 由于 TCM 接口的地址是以字对齐的, 所以将所计算的 当前地址右移 2 位, 又由于当前地址的计算是在 t4 时刻, 而数据传输是在 t5 时刻, 即, 先执 行了地址更新再进行数据传输, 所以, 还应将右移后的当前地址再减 1, 所得的值即为传输 数据所对应的地址 DRADDR。经过上面的计算可得知, 在 t5 时刻, 可将 32 位数据从 DMA 接口 的上传数据位 dma_udata 传输到 TCM 接口的写数据位 DRWD。以上仅说明了一个 32 位数据 (4 个字节 ) 的传输, 按照上述方法, 逐个传输每个 32 位数据, 直到总字节数个数据全部传 输完, 如, 在 tn 时刻, 第二上传信号 urd_d1 为 1, 且当前字节数等于总字节数, 响应信号 ack 更新为 0, 结束数据传输。
图 5B 是从 TCM 接口向 DMA 接口传输 32 位数据时各个信号的时序图, 在图 5B 中, 复位信号 rstn、 请求信号 req 与图 5A 中的复位信号 rstn、 请求信号 req 的计算原理相同 ; 另外, 在 t1 时刻, DMA 接口的方向信号位所发送方向信号 dir 为 1, 此时, 响应信号 ack、 第 一下载信号 dwr、 第二下载信号 dwr_d1 的计算原理和图 5A 中的响应信号 ack、 第一上传信 号 urd、 第二上传信号 urd_d1 的计算原理相同, 在此不做赘述。 下载信号 dma_dwr 等于第二 下载信号 dwr_d1, 即其时序图与第二下载信号 dwr_d1 的时序图相同。读写标记信号 DRnRW等于第二上传信号 urd_d1( 因在下载数据时, 没有用到第二上传信号 urd_d1, 而第二上传 信号 urd_d1 在复位时已为 0, 所以读写标记信号 DRnRW 也为 0, 图中未示出 )。片选信号 DRCS 等于第一下载信号 dwr, 即其时序图与第一下载信号 dwr 的时序图相同。字节选择信 号 DRWBL 的 4 位均与读写标记信号 DRnRW 相同 ( 图中未示出 )。地址的计算与图 5A 中的地 址计算大致相同, 也为 : 先将起始地址与当前字节数 (t4 时刻, 当前字节数更新为 4) 相加得 到当前地址, 再将当前地址右移 2 位, 所得的值即为数据传输所对应的地址 DRADDR。相比 图 5A 中的地址计算, 无需再进行减 1 计算, 因在下载数据时, 读写标记信号 DRnRW 为 0。经 过上面的计算可得知, 在 t4 时刻, 片选信号 DRCS 为 1, 该接口转换装置从 TCM 接口的读数据 位 DRRD 读 32 位数据, 在 t5 时刻, 将所读的 32 位数据传输到 DMA 接口的下载数据位 dma_ ddata。以上仅说明了一个 32 位数据 (4 个字节 ) 的传输, 按照上述方法, 逐个传输每个 32 位数据, 直到总字节数个数据全部传输完, 如, 在 tn 时刻, 第二下载信号 dwr_d1 为 1, 且当前 字节数等于总字节数, 响应信号 ack 更新为 0, 结束数据传输。
图 5C 是从 DMA 接口向 TCM 接口传输 16 位数据时各个信号的时序图, 在图 5C 中, 复位信号 rstn、 请求信号 req、 方向信号 dir、 响应信号 ack 与图 5A 图中的复位信号 rstn、 请求信号 req、 方向信号 dir、 响应信号 ack 的计算原理相同, 在此不做赘述。在 t3 时刻, 请 求信号 req、 响应信号 ack 为 1, 且方向信号 dir 为 0, 则第一上传信号 urd 更新为 1。在 t4 时刻, 由于第一上传信号 urd 为 1, 则第二上传信号 urd_d1 更新为 1。在 t5 时刻, 由于第二 上传信号 urd_d1 为 1, 则第三上传信号 urd_d2 更新为 1, 同时, 若 t6 时刻当前字节数小于 总字节数, 则第一上传信号 urd 更新为 1。上传信号 dwr_urd 等于第一上传信号 urd 与第二 上传信号 urd_d1 进行或运算所得的值。读写标记信号 DRnRW 等于第三上传信号 urd_d2。 片选信号 DRCS 等于第三上传信号 urd_d2。字节选择信号 DRWBL 的 4 位均与读写标记信号 DRnRW 相同 ( 图中未示出 )。下面说明传输数据的地址的计算 : 在 t3 时刻, 请求信号 req 和 响应信号 ack 同时为 1, 起始地址更新为 DMA 接口的起始地址位所发送的起始地址的低 20 位, 同时, 总字节数更新为 DMA 接口的总字节数位所发送的总字节数, 且当前字节数更新为 0。在 t5 时刻, 由于第二上传信号 urd_d1 为 1, 所以当前字节数更新为 4。当前地址为起始 地址与当前字节数 (t5 时刻, 当前字节数更新为 4) 之和, 然后将所计算的当前地址右移 2 位, 又由于读写标记信号 DRnRW 为 1, 所以将右移 2 位后的当前地址再减 1, 所得的值即为传 输数据所对应的地址。另外, 在 t5 时刻, 由于第二上传信号 urd_d1 为 1, TCM 接口的写数据 位 DRWD 的低 16 位更新为所传输的 16 位数据。在 t6 时刻, 片选信号 DRCS 为 1, TCM 接口的 写数据位 DRWD 的高 16 位等于上传数据位 dma_udata 所传输的 16 位数据。以上仅说明了 一个 32 位 ( 即两个 16 位 ) 数据的传输过程, 按照上述方法, 逐个传输每个 16 位数据, 直到 总字节数个数据全部传输完。 如, 在 tn 时刻, 第三上传信号 urd_d2 为 1, 且当前字节数等于 总字节数, 响应信号 ack 更新为 0, 结束数据传输。
图 5D 是从 TCM 接口向 DMA 接口传输 16 位数据时各个信号的时序图, 在图 5D 中, 复位信号 rstn、 请求信号 req 与图 5C 图中的复位信号 rstn、 请求信号 req 的计算原理相 同; 另外, 在 t1 时刻, DMA 接口向接口转换装置发送方向信号 dir 为 1, 此时, 响应信号 ack、 第一下载信号 dwr、 第二下载信号 dwr_d1、 第三下载信号 dwr_d2 的计算原理和图 5C 中的响 应信号 ack、 第一上传信号 urd、 第二上传信号 urd_d1、 第三上传信号 urd_d2 的计算原理相 同, 在此不做赘述。下载信号 dma_dwr 等于第二下载信号 dwr_d1 与第三下载信号 dwr_d2进行或运算所得的值。读写标记信号 DRnRW 等于第三上传信号 urd_d2( 因在下载数据时, 没有用到第三上传信号 urd_d2, 而第三上传信号 urd_d2 在复位时已为 0, 所以读写标记信 号 DRnRW 也为 0)。片选信号 DRCS 等于第一下载信号 dwr 与第二下载信号 dwr_d1 进行或运 算所得的值。字节选择信号 DRWBL 的 4 位均与读写标记信号 DRnRW 相同。下面说明传输数 据的地址的计算 : 在 t 3 时刻, 请求信号 req 和响应信号 ack 同时为 1, 起始地址更新为 DMA 接口的起始地址位所发送的起始地址的低 20 位, 同时, 总字节数更新为 DMA 接口的总字节 数位所发送的总字节数, 且当前字节数更新为 0。在 t5 时刻, 由于第二下载信号 dwr_d1 为 1, 所以当前字节数更新为 4。 当前地址为起始地址与当前字节数 (t5 时刻, 当前字节数更新 为 4) 之和, 然后, 由于读写标记信号为 0, 所以将所计算的当前地址右移 2 位, 所得的值即为 传输数据所对应的地址。所以, 在 t5 时刻, 接口转换装置将 TCM 接口的读数据位 DRRD 的低 16 位传输到 DMA 接口的下载数据位 dma_ddata, 然后在 t6 时刻将 TCM 接口的读数据位 DRRD 的高 16 位传输到 DMA 接口的下载数据位 dma_ddata。以上仅说明了两个 16 位数据 (4 个字 节 ) 的传输, 按照上述方法, 逐个传输每 4 个字节的数据, 直到总字节数个数据全部传输完, 如, 在 tn 时刻, 第三下载信号 dwr_d2 为 1, 且当前字节数等于总字节数, 响应信号 ack 更新 为 0, 结束数据传输。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的权利要求范围之内。