| JP63172358 | DATA TRANSFER DEVICE |
| JP61281347 | DIRECT MEMORY ACCESS DEVICE |
| WO/2003/079186 | METHOD AND APPARATUS FOR DISPLAYING AND EXPLORING CONTROLLED VOCABULARY DATA |
中兴通讯股份有限公司 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
| 权 利 要 求 书 1、一种数据透明传输的系统,所述系统包括处理器、存储器和逻辑模块, 其中: 所述存储器, 包括接收存储单元和发送存储单元; 所述逻辑模块与外部接口相连, 所述逻辑模块设置为: 接收所述外部接 口发送来的数据, 并将外部接口发送来的数据存储至所述接收存储单元中; 以及查询所述发送数据存储单元, 在查询到所述发送存储单元中有数据需要 发送时,获取需要发送的数据并将所述需要发送的数据发送至所述外部接口; 所述处理器设置为: 将需要发送至所述外部接口的数据存储至所述发送 存储单元中; 以及查询所述接收存储单元, 在查询到所述接收存储单元中有 数据需要接收, 则获取所述需要接收的数据。 2、 如权利要求 1所述系统, 其中: 所述接收存储单元包括与每一外部接口一一对应的接收存储子单元, 所 述发送存储单元包括与每一个外部接口一一对应的发送存储子单元; 所述外 部接口的数量为一个或者多个; 所述逻辑模块是设置为按如下方式将外部接口发送来的数据存储至所述 接收存储单元中: 将从各外部接口接收到的数据分别存储在各外部接口对应 的接收存储子单元中; 所述逻辑模块是设置为按如下方式查询所述发送存储 单元, 在查询到所述发送存储单元中有数据需要发送时, 获取需要发送的数 据并将所述需要发送的数据发送至所述外部接口: 分别查询各外部接口对应 的发送存储子单元, 在查询到某一外部接口对应的发送存储子单元中有数据 需要发送时, 获取所述需要发送的数据并将所述需要发送的数据发送至该外 部接口; 所述处理器是设置为按如下方式: 将需要发送至所述外部接口的数据存 储至所述发送存储单元中: 将需要发送至各外部接口的数据分别存储至各外 部接口对应的发送存储子单元中; 所述处理器是设置为按如下方式查询所述 接收存储单元, 在查询到所述接收存储单元中有数据需要接收, 则获取所述 需要接收的数据: 分别查询各外部接口对应的接收存储子单元, 在查询到某 一外部接口对应的接收存储子单元中有数据需要接收, 则获取所述需要接收 的数据。 3、 如权利要求 2所述的系统, 其中: 所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元; 所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元; 所述逻辑模块是设置为按如下方式: 将从各外部接口接收到的数据分别 存储在该各外部接口对应的接收存储子单元中: 将各外部接口的数据分别存 储在各外部接口对应的接收数据存储子单元中, 以及将各外部接口的数据的 存储位置信息和数据长度信息分别存储在各外部接口对应的接收地址存储子 单元中; 所述逻辑模块是设置为按如下方式: 分别查询各外部接口对应的发送存 储子单元, 在查询到某一外部接口对应的发送存储子单元中有数据需要发送 时, 获取所述需要发送的数据并将所述需要发送的数据发送至该外部接口: 分别查询各外部接口对应的发送地址存储子单元, 如果查询到为某一外部接 口对应的发送地址存储子单元中包含存储位置信息和数据长度信息, 则根据 所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元 获取数据, 然后将获取到的数据发送至该外部接口, 以及将该外部接口对应 的发送地址存储子单元清空; 所述处理器是设置为按如下方式分别查询各外部接口对应的接收存储子 单元, 在查询到某一外部接口对应的接收存储子单元中有数据需要接收, 则 获取所述需要接收的数据: 分别查询该各外部接口对应的接收地址存储子单 元, 如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信 息和数据长度信息, 则根据所述存储位置信息和数据长度信息从该外部接口 对应的接收数据存储子单元中读取数据, 以及将该外部接口对应的接收地址 存储子单元清空; 所述处理器是设置为按如下方式将需要发送至各外部接口的数据分别存 储至各外部接口对应的发送存储子单元中: 将需要发送至各外部接口的数据 分别存储至该各外部接口对应的发送数据存储子单元中, 以及将需要发送至 该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口 对应的发送地址存储子单元中。 4、 如权利要求 3所述的系统, 其中: 所述处理器至少包括一高速外设组件互连(PCIE )接口, 所述处理器经 所述 PCIE接口与所述逻辑模块相连; 所述逻辑模块是设置为按如下方式将各外部接口的数据分别存储在该各 外部接口对应的接收数据存储子单元中, 以及将各外部接口的数据的存储位 置信息和数据长度信息分别存储在各外部接口对应的接收地址存储子单元 中: 向所述处理器发送直接存储器存取(DMA )写请求和所述各外部接口的 数据, 通过 DMA写请求控制所述处理器将所述各外部接口的数据分别写入 所述各外部接口对应的接收数据存储子单元中, 以及将所述各外部接口的数 据长度信息和存储位置信息写入该各外部接口对应的接收地址存储子单元 中; 所述逻辑模块是设置为按如下方式分别查询各外部接口对应的发送地址 存储子单元: 向所述处理器发送 DMA读写请求, 先通过 DMA读请求控制 所述处理器查询所述各外部接口对应的发送地址存储子单元; 以及所述逻辑 模块是设置为按如下方式将该外部接口对应的发送地址存储子单元清空: 通 过 DMA 写请求控制所述处理器清空该外部接口对应的接收地址存储子单 元。 5、 如权利要求 4所述的系统, 其中: 所述逻辑模块包括依次相连的接口处理模块、 DMA模块、 PCIE收发处 理模块以及 PCIE IP核, 所述接口处理模块还与所述 PCIE收发处理模块经 PCIE地址数据总线相连, 其中: 所述接口处理模块设置为: 与一个或者多个外部接口相连接, 在接收到 各外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的数据分 别写入该各外部接口对应的接收数据存储子单元中的 DMA 写请求至所述 DMA模块; 产生并发送控制所述处理器查询各外部接口对应的发送地址存 储子单元的 DMA读请求至所述 DMA模块;在从所述 PCIE地址数据总线接 收到用以指示某一外部接口的发送地址存储子单元中有存储位置信息和数据 长度信息的应答时, 产生并发送控制所述处理器根据所述存储位置信息和数 据长度信息从该外部接口对应的发送数据存储子单元中读取数据的 DMA读 请求; 以及在从所述 PCIE地址数据总线接收到需要发送至某一外部接口的 数据后, 将该数据发送至对应的外部接口, 产生并发送控制所述处理器将该 外部接口对应的发送地址存储子单元清空的 DMA写请求; 所述 DMA模块包括 DMA请求队列单元和 DMA命令产生单元, 其中: 所述 DMA请求队列单元设置为: 对接收到的 DMA读写请求进行排序; 所 述 DMA命令产生单元设置为:按照所述 DMA请求队列单元中的 DMA读写 请求的排序顺序生成对应的 DMA读写命令, 并将所述 DMA命令发送至所 述 PCIE收发处理器; 所述 PCIE收发处理器设置为:将所述 DMA模块发送来的 DMA读写命 令发送至所述 PCIE IP核; 将所述 PCIE IP核发送来的控制所述处理器查询 各外部接口对应的发送地址存储子单元的 DMA读请求对应的应答经所述 PCIE地址数据总线发送至所述接口处理模块;在接收到控制所述处理器将该 各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的 DMA写命令后,经所述 PCIE地址数据总线获取所述接口处理模块接收到的 该外部接口数据并将其发送至所述 PCIE IP核; 以及在接收到所述 PCIE IP 核发送来的需要发送至某一外部接口的数据后, 将其经所述 PCIE地址数据 总线发送至所述接口处理模块; 所述 PCIE IP核集成有物理层, 数据链路层, 事务层的功能, 所述 PCIE IP核设置为: 在接收到所述 PCIE收发处理器发送来的 DMA读写请求后, 将其发送至所述处理器; 在接收到所述处理器发送来的查询各外部接口对应 的发送地址存储子单元的 DMA读请求对应的应答发送至所述 PCIE收发处理 器; 在接收到所述 PCIE收发处理器发送来的某一外部接口的数据后, 将发 送至所述处理器; 以及在接收到所述处理器发送来的需要发送至某一外部接 口的数据后, 将其发送至所述 PCIE收发处理器。 6、 如权利要求 3-5中任何一项所述的系统, 其中: 所述逻辑模块是设置为: 在接收到某一外部接口的数据后, 先查询该外 部接口对应的接收地址存储子单元, 如果该外部接口对应的接收地址存储子 单元为空, 才将该外部接口的数据存储至该外部接口对应的接收数据存储子 单元中; 所述处理器是设置为: 在需要发送数据至某一外部接口时, 先查询该外 部接口对应的发送地址存储子单元, 如果该外部接口对应的发送地址存储子 单元为空, 才将需要发送至该外部接口的数据存储至该外部接口对应的发送 数据存储子单元中。 7、一种应用权利要求 1所述的系统进行数据透明传输的方法,该方法包 括: 逻辑模块与外部接口相连, 接收所述外部接口发送来的数据, 并将外部 接口发送来的数据存储至接收存储单元中; 处理器查询所述接收存储单元, 在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据; 以及 所述处理器将需要发送至所述外部接口的数据存储至发送存储单元中; 所述逻辑模块查询所述发送存储单元, 在查询到所述发送存储单元中有数据 需要发送时, 获取需要发送的数据并将所述需要发送的数据发送至所述外部 接口。 8、 如权利要求 7所述的方法, 其中: 所述接收存储单元包括与每一外部接口一一对应的接收存储子单元, 所 述发送存储单元包括与每一个外部接口一一对应的发送存储子单元; 所述外 部接口的数量为一个或者多个; 逻辑模块将外部接口发送来的数据存储至接收存储单元中的步骤包括: 将从各外部接口接收到的数据分别存储在所述各外部接口对应的接收存储子 单元中; 所述逻辑模块查询所述发送存储单元, 在查询到所述发送存储单元 中有数据需要发送时, 获取需要发送的数据并将所述需要发送的数据发送至 所述外部接口的步骤包括: 分别查询各外部接口对应的发送存储子单元, 在 查询到某一外部接口对应的发送存储子单元中有数据需要发送时, 获取所述 需要发送的数据并将所述需要发送的数据发送至该外部接口; 所述处理器将需要发送至所述外部接口的数据存储至所述发送存储单元 中的步骤包括: 将需要发送至各外部接口的数据分别存储至各外部接口对应 的发送存储子单元中; 所述处理器查询所述接收存储单元, 在查询到所述接 收存储单元中有数据需要接收, 则获取所述需要接收的数据的步骤包括: 分 别查询各外部接口对应的接收存储子单元, 在查询到某一外部接口对应的接 收存储子单元中有数据需要接收, 则获取所述需要接收的数据。 9、 如权利要求 8所述的方法, 其中: 所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元; 所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元; 所述逻辑模块将从各外部接口接收到的数据分别存储在所述各外部接口 对应的接收存储子单元中的步骤包括: 将所述各外部接口的数据分别存储在 所述各外部接口对应的接收数据存储子单元中, 以及将所述各外部接口的数 据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址 存储子单元中; 所述逻辑模块分别查询各外部接口对应的发送存储子单元, 在查询到某 一外部接口对应的发送存储子单元中有数据需要发送时, 获取所述需要发送 的数据并将所述需要发送的数据发送至该外部接口的步骤包括: 分别查询所 述各外部接口对应的发送地址存储子单元, 如果查询到为某一外部接口对应 的发送地址存储子单元中包含存储位置信息和数据长度信息, 则根据所述存 储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数 据, 然后将获取到的数据发送至该外部接口, 以及将该外部接口对应的发送 地址存储子单元清空; 所述处理器分别查询各外部接口对应的接收存储子单元, 在查询到某一 外部接口对应的接收存储子单元中有数据需要接收, 则获取所述需要接收的 数据的步骤包括: 分别查询所述各外部接口对应的接收地址存储子单元, 如 果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数 据长度信息, 则根据所述存储位置信息和数据长度信息从该外部接口对应的 接收数据存储子单元中读取数据, 以及将该外部接口对应的接收地址存储子 单元清空; 所述处理器将需要发送至各外部接口的数据分别存储至各外部接口对应 的发送存储子单元中的步骤包括: 将需要发送至各外部接口的数据分别存储 至所述各外部接口对应的发送数据存储子单元中, 以及将需要发送至该各外 部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的 发送地址存储子单元中。 10、 如权利要求 9所述的方法, 其中, 该系统中所述处理器至少包括一 高速外设组件互连 ( PCIE )接口, 所述处理器经所述 PCIE接口与所述逻辑 模块相连, 其中: 所述逻辑模块将所述各外部接口的数据分别存储在所述各外部接口对应 的接收数据存储子单元中, 以及将所述各外部接口的数据的存储位置信息和 数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中的步骤 包括: 向所述处理器发送直接存储器存取(DMA )写请求和该各外部接口的 数据, 通过 DMA写请求控制所述处理器将该各外部接口的数据分别写入该 各外部接口对应的接收数据存储子单元中, 以及将该各外部接口的数据长度 信息和存储位置信息写入该各外部接口对应的接收地址存储子单元中; 所述逻辑模块分别查询该各外部接口对应的发送地址存储子单元的步骤 包括: 向所述处理器发送 DMA读写请求, 先通过 DMA读请求控制所述处 理器查询该各外部接口对应的发送地址存储子单元; 所述逻辑模块将该外部 接口对应的发送地址存储子单元清空的步骤包括: 通过 DMA写请求控制所 述处理器清空该外部接口对应的接收地址存储子单元。 11、如权利要求 10所述的方法, 其中, 所述逻辑模块包括依次相连的接 口处理模块、 DMA模块、 PCIE收发处理器以及 PCIE IP核, 所述接口处理 模块还与所述 PCIE收发处理器经 PCIE地址数据总线相连, 所述 DMA模块 包括 DMA请求队列单元和 DMA命令产生单元, 该方法还包括: 所述接口处理模块接收一个或者多个外部接口发送来的数据, 在接收到 某一外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的数据 分别写入该各外部接口对应的接收数据存储子单元中的 DMA写请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA写请求后将其 加入 DMA请求队列,在该 DMA写请求出队时将其发送至所述 DMA命令产 生单元, 由所述 DMA命令产生单元产生相应的 DMA写命令后发送至所述 PCIE收发处理器; 所述 PCIE收发处理器在接收到控制所述处理器将该各外 部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的 DMA 写命令后, 经所述 PCIE地址数据总线获取所述接口处理模块接收到的该外 部接口的数据, 将获取到的数据以及所述 DMA写命令经所述 PCIE IP核和 所述处理器的 PCIE接口发送至所述处理器;所述处理器执行该 DMA写命令, 将该外部接口的数据写入该外部接口对应的接收数据存储子单元中, 并将该 外部接口的数据的存储位置信息和数据长度信息写入该外部接口对应的接收 地址存储子单元中; 所述接口处理模块产生并发送控制所述处理器查询各外部接口对应的发 送地址存储子单元的 DMA读请求至所述 DMA请求队列单元; 所述 DMA 请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列,在该 DMA 读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA命令产生 发处理器在接收到制所述处理器查询各外部接口对应的发送地址存储子单元 的 DMA读命令后,将该 DMA读命令经所述 PCIE IP核和所述处理器的 PCIE 接口发送至所述处理器; 所述处理器执行该 DMA读命令, 查询所述存储器 中各外部接口对应的发送地址存储子单元, 经所述 PCIE IP核和所述 PCIE 收发处理器和所述 PCIE地址数据总线向所述接口处理模块返回所述 DMA 读请求对应的应答; 所述接口处理模块在接收到指示某一外部接口对应的发 送地址存储子单元中有存储位置信息和数据长度信息的应答后, 产生并发送 控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发 送数据存储子单元中获取数据的 DMA读请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列, 在该 DMA读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA PCIE 收发处理器在控制所述处理器根据该存储位置信息和数据长度信息从 该外部接口对应的发送数据存储子单元中获取数据的 DMA读命令后, 将该 DMA读命令经 PCIE IP核和所述处理器的 PCIE接口发送至所述处理器, 所 述处理器执行该 DMA读命令, 根据该存储位置信息和数据长度信息从该外 部接口对应的发送数据存储子单元中读取数据, 并将读取到的数据经所述处 理器的 PCIE接口、 PCIE IP核、 所述 PCIE收发处理器以及所述 PCIE地址 数据总线发送至所述接口处理模块; 所述接口处理模块在接收到需要发送至 某一外部接口的数据后, 将其发送至对应的外部接口。 12、 如权利要求 9-11中任一项所述的方法, 其中: 所述逻辑模块将所述各外部接口的数据分别存储在所述各外部接口对应 的接收数据存储子单元中的步骤中, 所述逻辑模块是在接收到某一外部接口 的数据后, 先查询该外部接口对应的接收地址存储子单元, 如果该外部接口 对应的接收地址存储子单元为空, 才将该外部接口的数据存储至该外部接口 对应的接收数据存储子单元中; 所述处理器将需要发送至各外部接口的数据分别存储至所述各外部接口 对应的发送数据存储子单元中的步骤中, 所述处理器在需要发送数据至某一 外部接口时, 先查询该外部接口对应的发送地址存储子单元, 如果该外部接 口对应的发送地址存储子单元为空, 才将需要发送至该外部接口的数据存储 至该外部接口对应的发送数据存储子单元中。 |
技术领域 本发明涉及嵌入式系统技术领域, 尤其涉及嵌入式系统中一种数据透明 传输的方法。
背景技术
随着电信级设备向着高集成化以及微型化方向 的发展, 在设备中一块单 板上集成的功能越来越多, 单板上的器件越来越多, 需要的各种类型的接口 数量也越来越多。 现有的嵌入式设备数据传输的方法是通过以太 网、 外设部件互连标准 (Peripheral Component Interconnect , 简称 PCI)总线、 串行夕卜设接口 (Serial Peripheral Interface, 简称 SPI)、 以及本地总线( Local Bus )等方式来传输不 同类型的数据。 如果传输不同的数据类型, 需要数据传输接口也不同。 如果 嵌入式系统中没有足够的接口资源来传输对应 接口类型的数据时, 会造成数 据无法传输到嵌入式设备。
发明内容 本发明提供了一种数据透明传输的方法及系统 , 在处理器的接口与其它 各种接口(例如, 以太网接口、 SPI、 串行吉比特媒体独立接口 (Serial Gigabit Media Independent Interface , SGMII)、 以及内部集成电路 (Inter-Integrated Circuit, I2C)接口等)之间提供一个数据透明传输的功 , 在数据传输的过 程中,不需要处理器的参与,有效解决了嵌入 式系统中接口资源不足的问题。 为了解决上述技术问题, 本发明提出一种数据透明传输的系统, 所述系 统包括处理器、 存储器和逻辑模块, 其中: 所述存储器, 包括接收存储单元和发送存储单元; 所述逻辑模块与外部接口相连, 所述逻辑模块设置为: 接收所述外部接 口发送来的数据, 并将外部接口发送来的数据存储至所述接收存 储单元中; 以及查询所述发送数据存储单元, 在查询到所述发送存储单元中有数据需要 发送时,获取需要发送的数据并将所述需要发 送的数据发送至所述外部接口; 所述处理器设置为: 将需要发送至所述外部接口的数据存储至所述 发送 存储单元中; 以及查询所述接收存储单元, 在查询到所述接收存储单元中有 数据需要接收, 则获取所述需要接收的数据。 本发明的系统中, 所述接收存储单元包括与每一外部接口——对 应的接 收存储子单元, 所述发送存储单元包括与每一个外部接口一一 对应的发送存 储子单元; 所述外部接口的数量为一个或者多个; 所述逻辑模块是设置为按如下方式将外部接口 发送来的数据存储至所述 接收存储单元中: 将从各外部接口接收到的数据分别存储在各外 部接口对应 的接收存储子单元中; 所述逻辑模块是设置为按如下方式查询所述发 送存储 单元, 在查询到所述发送存储单元中有数据需要发送 时, 获取需要发送的数 据并将所述需要发送的数据发送至所述外部接 口: 分别查询各外部接口对应 的发送存储子单元, 在查询到某一外部接口对应的发送存储子单元 中有数据 需要发送时, 获取所述需要发送的数据并将所述需要发送的 数据发送至该外 部接口; 所述处理器是设置为按如下方式: 将需要发送至所述外部接口的数据存 储至所述发送存储单元中: 将需要发送至各外部接口的数据分别存储至各 外 部接口对应的发送存储子单元中; 所述处理器是设置为按如下方式查询所述 接收存储单元, 在查询到所述接收存储单元中有数据需要接收 , 则获取所述 需要接收的数据: 分别查询各外部接口对应的接收存储子单元, 在查询到某 一外部接口对应的接收存储子单元中有数据需 要接收, 则获取所述需要接收 的数据。 本发明的系统中,
所述接收存储子单元包括接收数据存储子单元 和接收地址存储子单元; 所述发送存储子单元包括发送数据存储子单元 和发送地址存储子单元; 所述逻辑模块是设置为按如下方式: 将从各外部接口接收到的数据分别 存储在该各外部接口对应的接收存储子单元中 : 将各外部接口的数据分别存 储在各外部接口对应的接收数据存储子单元中 , 以及将各外部接口的数据的 存储位置信息和数据长度信息分别存储在各外 部接口对应的接收地址存储子 单元中; 所述逻辑模块是设置为按如下方式: 分别查询各外部接口对应的发送存 储子单元, 在查询到某一外部接口对应的发送存储子单元 中有数据需要发送 时, 获取所述需要发送的数据并将所述需要发送的 数据发送至该外部接口: 分别查询各外部接口对应的发送地址存储子单 元, 如果查询到为某一外部接 口对应的发送地址存储子单元中包含存储位置 信息和数据长度信息, 则根据 所述存储位置信息和数据长度信息从该外部接 口对应的发送数据存储子单元 获取数据, 然后将获取到的数据发送至该外部接口, 以及将该外部接口对应 的发送地址存储子单元清空; 所述处理器是设置为按如下方式分别查询各外 部接口对应的接收存储子 单元, 在查询到某一外部接口对应的接收存储子单元 中有数据需要接收, 则 获取所述需要接收的数据: 分别查询该各外部接口对应的接收地址存储子 单 元, 如果查询到某一外部接口对应的接收地址存储 子单元中包括存储位置信 息和数据长度信息, 则根据所述存储位置信息和数据长度信息从该 外部接口 对应的接收数据存储子单元中读取数据, 以及将该外部接口对应的接收地址 存储子单元清空; 所述处理器是设置为按如下方式将需要发送至 各外部接口的数据分别存 储至各外部接口对应的发送存储子单元中: 将需要发送至各外部接口的数据 分别存储至该各外部接口对应的发送数据存储 子单元中, 以及将需要发送至 该各外部接口的数据的存储位置信息和数据长 度信息分别写入该各外部接口 对应的发送地址存储子单元中。 本发明的系统中,
所述处理器至少包括一高速外设组件互连(PCI E )接口, 所述处理器经 所述 PCIE接口与所述逻辑模块相连; 所述逻辑模块是设置为按如下方式将各外部接 口的数据分别存储在该各 外部接口对应的接收数据存储子单元中, 以及将各外部接口的数据的存储位 置信息和数据长度信息分别存储在各外部接口 对应的接收地址存储子单元 中: 向所述处理器发送直接存储器存取(DMA )写请求和所述各外部接口的 数据, 通过 DMA写请求控制所述处理器将所述各外部接口的 数据分别写入 所述各外部接口对应的接收数据存储子单元中 , 以及将所述各外部接口的数 据长度信息和存储位置信息写入该各外部接口 对应的接收地址存储子单元 中;
所述逻辑模块是设置为按如下方式分别查询各 外部接口对应的发送地址 存储子单元: 向所述处理器发送 DMA读写请求, 先通过 DMA读请求控制 所述处理器查询所述各外部接口对应的发送地 址存储子单元; 以及所述逻辑 模块是设置为按如下方式将该外部接口对应的 发送地址存储子单元清空: 通 过 DMA 写请求控制所述处理器清空该外部接口对应的 接收地址存储子单 元。 本发明的系统中, 所述逻辑模块包括依次相连的接口处理模块、 DMA模块、 PCIE收发处 理模块以及 PCIE IP核, 所述接口处理模块还与所述 PCIE收发处理模块经 PCIE地址数据总线相连, 其中: 所述接口处理模块设置为: 与一个或者多个外部接口相连接, 在接收到 各外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的 数据分 别写入该各外部接口对应的接收数据存储子单 元中的 DMA 写请求至所述 DMA模块; 产生并发送控制所述处理器查询各外部接口对 应的发送地址存 储子单元的 DMA读请求至所述 DMA模块;在从所述 PCIE地址数据总线接 收到用以指示某一外部接口的发送地址存储子 单元中有存储位置信息和数据 长度信息的应答时, 产生并发送控制所述处理器根据所述存储位置 信息和数 据长度信息从该外部接口对应的发送数据存储 子单元中读取数据的 DMA读 请求; 以及在从所述 PCIE地址数据总线接收到需要发送至某一外部 口的 数据后, 将该数据发送至对应的外部接口, 产生并发送控制所述处理器将该 外部接口对应的发送地址存储子单元清空的 DMA写请求; 所述 DMA模块包括 DMA请求队列单元和 DMA命令产生单元, 其中: 所述 DMA请求队列单元设置为: 对接收到的 DMA读写请求进行排序; 所 述 DMA命令产生单元设置为:按照所述 DMA请求队列单元中的 DMA读写 请求的排序顺序生成对应的 DMA读写命令, 并将所述 DMA命令发送至所 述 PCIE收发处理器; 所述 PCIE收发处理器设置为:将所述 DMA模块发送来的 DMA读写命 令发送至所述 PCIE IP核; 将所述 PCIE IP核发送来的控制所述处理器查询 各外部接口对应的发送地址存储子单元的 DMA读请求对应的应答经所述 PCIE地址数据总线发送至所述接口处理模块; 接收到控制所述处理器将该 各外部接口的数据分别写入该各外部接口对应 的接收数据存储子单元中的 DMA写命令后,经所述 PCIE地址数据总线获取所述接口处理模块接收 的 该外部接口数据并将其发送至所述 PCIE IP核; 以及在接收到所述 PCIE IP 核发送来的需要发送至某一外部接口的数据后 , 将其经所述 PCIE地址数据 总线发送至所述接口处理模块; 所述 PCIE IP核集成有物理层, 数据链路层, 事务层的功能, 所述 PCIE
IP核设置为: 在接收到所述 PCIE收发处理器发送来的 DMA读写请求后, 将其发送至所述处理器; 在接收到所述处理器发送来的查询各外部接口 对应 的发送地址存储子单元的 DMA读请求对应的应答发送至所述 PCIE收发处理 器; 在接收到所述 PCIE收发处理器发送来的某一外部接口的数据 , 将发 送至所述处理器; 以及在接收到所述处理器发送来的需要发送至 某一外部接 口的数据后, 将其发送至所述 PCIE收发处理器。 本发明的系统中, 所述逻辑模块是设置为: 在接收到某一外部接口的数据后, 先查询该外 部接口对应的接收地址存储子单元, 如果该外部接口对应的接收地址存储子 单元为空, 才将该外部接口的数据存储至该外部接口对应 的接收数据存储子 单元中;
所述处理器是设置为: 在需要发送数据至某一外部接口时, 先查询该外 部接口对应的发送地址存储子单元, 如果该外部接口对应的发送地址存储子 单元为空, 才将需要发送至该外部接口的数据存储至该外 部接口对应的发送 数据存储子单元中。 为了解决上述技术问题, 本发明提出一种应用上述的系统进行数据透明 传输的方法, 该方法包括: 逻辑模块与外部接口相连, 接收所述外部接口发送来的数据, 并将外部 接口发送来的数据存储至接收存储单元中; 处理器查询所述接收存储单元, 在查询到所述接收存储单元中有数据需要接收 ,则获取所述需要接收的数据; 以及 所述处理器将需要发送至所述外部接口的数据 存储至发送存储单元中; 所述逻辑模块查询所述发送存储单元, 在查询到所述发送存储单元中有数据 需要发送时, 获取需要发送的数据并将所述需要发送的数据 发送至所述外部 接口。 本发明的方法中, 所述接收存储单元包括与每一外部接口一一对 应的接收存储子单元, 所 述发送存储单元包括与每一个外部接口一一对 应的发送存储子单元; 所述外 部接口的数量为一个或者多个; 逻辑模块将外部接口发送来的数据存储至接收 存储单元中的步骤包括: 将从各外部接口接收到的数据分别存储在所述 各外部接口对应的接收存储子 单元中; 所述逻辑模块查询所述发送存储单元, 在查询到所述发送存储单元 中有数据需要发送时, 获取需要发送的数据并将所述需要发送的数据 发送至 所述外部接口的步骤包括: 分别查询各外部接口对应的发送存储子单元, 在 查询到某一外部接口对应的发送存储子单元中 有数据需要发送时, 获取所述 需要发送的数据并将所述需要发送的数据发送 至该外部接口; 所述处理器将需要发送至所述外部接口的数据 存储至所述发送存储单元 中的步骤包括: 将需要发送至各外部接口的数据分别存储至各 外部接口对应 的发送存储子单元中; 所述处理器查询所述接收存储单元, 在查询到所述接 收存储单元中有数据需要接收, 则获取所述需要接收的数据的步骤包括: 分 别查询各外部接口对应的接收存储子单元, 在查询到某一外部接口对应的接 收存储子单元中有数据需要接收, 则获取所述需要接收的数据。 本发明的方法中, 所述接收存储子单元包括接收数据存储子单元 和接收地址存储子单元; 所述发送存储子单元包括发送数据存储子单元 和发送地址存储子单元; 所述逻辑模块将从各外部接口接收到的数据分 别存储在所述各外部接口 对应的接收存储子单元中的步骤包括: 将所述各外部接口的数据分别存储在 所述各外部接口对应的接收数据存储子单元中 , 以及将所述各外部接口的数 据的存储位置信息和数据长度信息分别存储在 该各外部接口对应的接收地址 存储子单元中; 所述逻辑模块分别查询各外部接口对应的发送 存储子单元, 在查询到某 一外部接口对应的发送存储子单元中有数据需 要发送时, 获取所述需要发送 的数据并将所述需要发送的数据发送至该外部 接口的步骤包括: 分别查询所 述各外部接口对应的发送地址存储子单元, 如果查询到为某一外部接口对应 的发送地址存储子单元中包含存储位置信息和 数据长度信息, 则根据所述存 储位置信息和数据长度信息从该外部接口对应 的发送数据存储子单元获取数 据, 然后将获取到的数据发送至该外部接口, 以及将该外部接口对应的发送 地址存储子单元清空; 所述处理器分别查询各外部接口对应的接收存 储子单元, 在查询到某一 外部接口对应的接收存储子单元中有数据需要 接收, 则获取所述需要接收的 数据的步骤包括: 分别查询所述各外部接口对应的接收地址存储 子单元, 如 果查询到某一外部接口对应的接收地址存储子 单元中包括存储位置信息和数 据长度信息, 则根据所述存储位置信息和数据长度信息从该 外部接口对应的 接收数据存储子单元中读取数据, 以及将该外部接口对应的接收地址存储子 单元清空; 所述处理器将需要发送至各外部接口的数据分 别存储至各外部接口对应 的发送存储子单元中的步骤包括: 将需要发送至各外部接口的数据分别存储 至所述各外部接口对应的发送数据存储子单元 中, 以及将需要发送至该各外 部接口的数据的存储位置信息和数据长度信息 分别写入该各外部接口对应的 发送地址存储子单元中。 本发明的方法中, 该系统中所述处理器至少包括一高速外设组件 互连(PCIE )接口, 所述 处理器经所述 PCIE接口与所述逻辑模块相连, 其中: 所述逻辑模块将所述各外部接口的数据分别存 储在所述各外部接口对应 的接收数据存储子单元中, 以及将所述各外部接口的数据的存储位置信息 和 数据长度信息分别存储在该各外部接口对应的 接收地址存储子单元中的步骤 包括: 向所述处理器发送直接存储器存取(DMA )写请求和该各外部接口的 数据, 通过 DMA写请求控制所述处理器将该各外部接口的数 据分别写入该 各外部接口对应的接收数据存储子单元中, 以及将该各外部接口的数据长度 信息和存储位置信息写入该各外部接口对应的 接收地址存储子单元中; 所述逻辑模块分别查询该各外部接口对应的发 送地址存储子单元的步骤 包括: 向所述处理器发送 DMA读写请求, 先通过 DMA读请求控制所述处 理器查询该各外部接口对应的发送地址存储子 单元; 所述逻辑模块将该外部 接口对应的发送地址存储子单元清空的步骤包 括: 通过 DMA写请求控制所 述处理器清空该外部接口对应的接收地址存储 子单元。 本发明的方法中, 所述逻辑模块包括依次相连的接口处理模块、 DMA模块、 PCIE收发处 理器以及 PCIE IP核, 所述接口处理模块还与所述 PCIE收发处理器经 PCIE 地址数据总线相连,所述 DMA模块包括 DMA请求队列单元和 DMA命令产 生单元, 该方法还包括: 所述接口处理模块接收一个或者多个外部接口 发送来的数据, 在接收到 某一外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的 数据 分别写入该各外部接口对应的接收数据存储子 单元中的 DMA写请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA写请求后将其 加入 DMA请求队列,在该 DMA写请求出队时将其发送至所述 DMA命令产 生单元, 由所述 DMA命令产生单元产生相应的 DMA写命令后发送至所述 PCIE收发处理器; 所述 PCIE收发处理器在接收到控制所述处理器将该 外 部接口的数据分别写入该各外部接口对应的接 收数据存储子单元中的 DMA 写命令后, 经所述 PCIE地址数据总线获取所述接口处理模块接收 的该外 部接口的数据, 将获取到的数据以及所述 DMA写命令经所述 PCIE IP核和 所述处理器的 PCIE接口发送至所述处理器;所述处理器执行 DMA写命令, 将该外部接口的数据写入该外部接口对应的接 收数据存储子单元中, 并将该 外部接口的数据的存储位置信息和数据长度信 息写入该外部接口对应的接收 地址存储子单元中; 所述接口处理模块产生并发送控制所述处理器 查询各外部接口对应的发 送地址存储子单元的 DMA读请求至所述 DMA请求队列单元; 所述 DMA 请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列,在该 DMA 读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA命令产生 发处理器在接收到制所述处理器查询各外部接 口对应的发送地址存储子单元 的 DMA读命令后,将该 DMA读命令经所述 PCIE IP核和所述处理器的 PCIE 接口发送至所述处理器; 所述处理器执行该 DMA读命令, 查询所述存储器 中各外部接口对应的发送地址存储子单元, 经所述 PCIE IP核和所述 PCIE 收发处理器和所述 PCIE地址数据总线向所述接口处理模块返回所 DMA 读请求对应的应答; 所述接口处理模块在接收到指示某一外部接口 对应的发 送地址存储子单元中有存储位置信息和数据长 度信息的应答后, 产生并发送 控制所述处理器根据该存储位置信息和数据长 度信息从该外部接口对应的发 送数据存储子单元中获取数据的 DMA读请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列, 在该 DMA读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA
PCIE 收发处理器在控制所述处理器根据该存储位置 信息和数据长度信息从 该外部接口对应的发送数据存储子单元中获取 数据的 DMA读命令后, 将该 DMA读命令经 PCIE IP核和所述处理器的 PCIE接口发送至所述处理器, 所 述处理器执行该 DMA读命令, 根据该存储位置信息和数据长度信息从该外 部接口对应的发送数据存储子单元中读取数据 , 并将读取到的数据经所述处 理器的 PCIE接口、 PCIE IP核、 所述 PCIE收发处理器以及所述 PCIE地址 数据总线发送至所述接口处理模块; 所述接口处理模块在接收到需要发送至 某一外部接口的数据后, 将其发送至对应的外部接口。 本发明的方法中, 所述逻辑模块将所述各外部接口的数据分别存 储在所述各外部接口对应 的接收数据存储子单元中的步骤中, 所述逻辑模块是在接收到某一外部接口 的数据后, 先查询该外部接口对应的接收地址存储子单元 , 如果该外部接口 对应的接收地址存储子单元为空, 才将该外部接口的数据存储至该外部接口 对应的接收数据存储子单元中; 所述处理器将需要发送至各外部接口的数据分 别存储至所述各外部接口 对应的发送数据存储子单元中的步骤中, 所述处理器在需要发送数据至某一 外部接口时, 先查询该外部接口对应的发送地址存储子单元 , 如果该外部接 口对应的发送地址存储子单元为空, 才将需要发送至该外部接口的数据存储 至该外部接口对应的发送数据存储子单元中。
本发明提供的一种数据透明传输的方法及系 统, 在处理器的接口与其它 各种接口 (例如, 以太网接口、 SPI、 SGMIL 以及 I2C接口等)之间提供一 个数据透明传输的功能, 在数据传输的过程中, 不需要处理器的参与, 有效 解决了嵌入式系统中接口资源不足的问题。
附图概述 图 1是本发明实施例 PCIE接口透明数据传输的系统方框图; 图 2是本发明实施例发送数据存储子单元中用以 示存储位置信息的字 段的示意图; 图 3是本发明实施例接收数据存储子单元中用以 示存储位置信息的字 段的示意图; 图 4是本发明实施例逻辑模块的组成方框图; 图 5是本发明实施例 PCIE接口透明数据传输的方法流程图。
本发明的较佳实施方式 本发明提供了一种 PCIE数据透明传输的方法及系统, 用以在处理器的 接口和其它各种接口之间提供一个数据透明传 输的功能。 为使本发明的目的、 技术方案和优点更加清楚明白, 下文中将结合附图 对本发明的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申 请中的实施例及实施例中的特征可以相互任意 组合。 参见图 1 ,该图示出了本发明实施例 PCIE接口透明数据传输的系统,该 系统包括处理器、 存储器和逻辑模块, 其中: 所述存储器包括接收存储单元( Rx_ Mem )和发送存储单元( Tx_ Mem )。 所述逻辑模块与外部接口相连, 逻辑模块设置为: 接收外部接口发送来 的数据, 并将外部接口发送来的数据存储至所述接收存 储单元中; 以及查询 所述发送存储单元, 在查询到所述发送存储单元中有数据需要发送 时, 获取 所述需要发送的数据并将其发送至所述外部接 口。 所述处理器设置为: 将需要发送至外部接口的数据存储至所述发送 存储 单元中; 以及查询所述接收存储单元, 在查询到所述接收存储单元中有数据 需要接收, 则获取所述需要接收的数据。 本实施例的系统中, 所述外部接口的数量为一个或者多个, 即所述外部接口可以包括接口 0、 接口 1 以及接口 N。 所述存储器包括与一个或者多个外部接口 (接口 0、接口 1 接口
N ) 中的每一个外部接口 对应的接收存储子单元 ( Rx0_ Mem、 Rxl_
Mem RxN— Mem ) , 以及与一个或者多个外部接口 (接口 0、 接口 1 接口 N ) 中的每一个外部接口——对应的发送存储子单 元(TxO—
Mem、 Txl— Mem、 、 TxN— Mem ) 。 所述逻辑模块是设置为按如下方式将外部接口 发送来的数据存储至所述 接收存储单元中: 将接收到的接口 0、 接口 1 接口 N发送来的数据, 分别存储在接口 0、接口 1 接口 N对应的接收存储子单元 RxO— Mem、
Rxl_ Mem RxN— Mem中, 以供处理器处理; 以及所述逻辑模块是 设置为按如下方式查询所述发送存储单元, 在查询到所述发送存储单元中有 数据需要发送时, 获取所述需要发送的数据并将其发送至所述外 部接口: 查 询各外部接口(接口 0、接口 1 接口 N )对应的发送存储子单元( Tx0_
Mem、 Txl— Mem TxN— Mem ) , 在查询到某一外部接口对应的发送 存储子单元中有数据需要发送时, 获取所述数据并经对应的外部接口发送出 去。 所述处理器主要完成对存储器中的 RxO— Mem、 Rxl— Mem RxN
Mem、 TxO— Mem、 Txl— Mem 以及 TxN— Mem的数据处理。 即, 在 将需要发送至所述外部接口的数据存储至所述 发送存储单元中时, 是将需要 发送至各外部接口的数据分别存储至该各外部 接口对应的发送存储子单元 中; 在查询所述接收存储单元时, 是分别查询各外部接口对应的接收存储子 单元, 在查询到某一外部接口对应的接收存储子单元 中有数据需要接收, 则 获取所述数据。 本实施例的系统中, 各外部接口对应的接收存储子单元(RxO— Mem、 Rxl— Mem RxN
Mem ) 包括接收数据存储子单元(RxO— Data— Mem、 Rxl— Data— Mem 以及 RxN_Data_Mem ) 和接收地址存储子单元 ( RxO_Info_Mem、
Rxl— Info— Mem 以及 RxN— Info— Mem ); 各外部接口对应的发送存储 子单元(TxO— Mem、 Txl— Mem 以及 TxN— Mem ) 包括发送数据存 储子单元( TxO— Data— Mem、 Txl— Data— Mem 以及 TxN— Data— Mem ) 和发送地址存储子单元( TxO— Info— Mem、 Txl— Info— Mem 以及 TxN— Info— Mem ) ; 所述逻辑模块是设置为按如下方式将从各外部 接口接收到的数据分别存 储在该各外部接口对应的接收存储子单元中: 将该各外部接口的数据分别存 储在该各外部接口对应的接收数据存储子单元 中, 以及将该各外部接口的数 据的存储位置信息和数据长度信息分别存储在 该各外部接口对应的接收地址 存储子单元中; 所述逻辑模块是设置为按如下方式分别查询各 外部接口对应的发送存储 子单元: 分别查询该各外部接口对应的发送地址存储子 单元, 如果查询到为 某一外部接口对应的发送地址存储子单元中包 含存储位置信息和数据长度信 息, 则根据所述存储位置信息和数据长度信息从该 外部接口对应的发送数据 存储子单元获取数据, 然后将获取到的数据发送至该外部接口, 以及还将该 外部接口对应的发送地址存储子单元清空; 所述处理器是设置为按如下方式分别查询该各 外部接口对应的接收存储 子单元: 分别查询该各外部接口对应的接收地址存储子 单元, 如果查询到某 一外部接口对应的接收地址存储子单元中包括 存储位置信息和数据长度信 息, 则根据所述存储位置信息和数据长度信息从该 外部接口对应的接收数据 存储子单元中读取数据 ,以及将该外部接口对应的接收地址存储子单 清空; 所述处理器是设置为按如下方式将需要发送至 各外部接口的数据分别存 储至该各外部接口对应的发送存储子单元中: 将需要发送至各外部接口的数 据分别存储至该各外部接口对应的发送数据存 储子单元中, 以及将需要发送 至该各外部接口的数据的存储位置信息和数据 长度信息分别写入该各外部接 口对应的发送地址存储子单元中。 其中, 所述存储器中各外部接口对应的发送地址存储 子单元承载的信息 可以如图 2所示, 其中, Tx Length字段表示所述存储器中 TxO— Data— Mem、 Txl— Data— Mem TxN— Data— Mem单元中存储的数据的长度; Tx Start
Address Ptr表示 TxO— Data— Mem、 Txl— Data— Mem TxN— Data— Mem单 元中数据的起始存储地址。 本实施例的系统中, 所述存储器中各外部接口对应的接收地址存储 子单元承载的信息可以如 图 3 所示, 其中, Rx Length 字段表示所述存储器中 RxO— Data— Mem、
Rxl— Data— Mem RxN— Data— Mem 单元中存储数据的长度; Rx Start
Address Ptr表示 RxO— Data— Mem、 Rxl— Data— Mem、 、 RxN— Data— Mem 单元中数据的起始存储地址。 本实施例的系统中, 所述逻辑模块是设置为: 在接收到某一外部接口的数据后, 先查询该外 部接口对应的接收地址存储子单元, 如果其为空, 才将该外部接口的数据存 储至该外部接口对应的接收数据存储子单元中 ; 所述处理器是设置为: 在需要发送数据至某一外部接口时, 先查询该外 部接口对应的发送地址存储子单元, 如果其为空, 才将需要发送至该外部接 口的数据存储至该外部接口对应的发送数据存 储子单元中。 随着高速夕卜设组件互连 ( Peripheral Component Interconnect Express , 简 称 PCIE )标准的不断完善, 越来越多的嵌入式设备集成 PCIE接口, PCIE 具有速率高, 电路连接简单, 技术兼容性好, 在通信及其他数据传输中应用 越来越多, 因此, 下面以具有 PCIE接口的处理器为例说明本发明透明传输 方案: 所述处理器经 PCIE接口与所述逻辑模块相连。 所述逻辑模块是设置为按如下方式将该各外部 接口的数据分别存储在该 各外部接口对应的接收数据存储子单元中: 向所述处理器发送直接存储器存 取( Direct Memory Access, 简称 DMA )写请求和该各外部接口的数据, 通 过 DMA写请求控制所述处理器将各外部接口的数据 分别写入各外部接口对 应的接收数据存储子单元中, 以及将各外部接口的数据的长度和存储位置信 息写入各外部接口对应的接收地址存储子单元 中; 所述逻辑模块是设置为按如下方式分别查询该 各外部接口对应的发送地 址存储子单元: 向所述处理器发送 DMA读写请求, 先通过 DMA读请求控 制所述处理器查询该各外部接口对应的发送地 址存储子单元, 并在查询到某 一外部接口对应的发送地址存储子单元中包含 存储位置信息和数据长度信息 时, 根据所述存储位置信息和数据长度信息从该外 部接口对应的发送数据存 储子单元中读取数据, 然后通过 DMA写请求控制所述处理器清空该外部接 口对应的接收地址存储子单元。 其中, 所述逻辑模块如图 4所示, 包括依次相连的接口处理模块、 直接 存储器存取(DMA )模块、 PCIE 收发处理器以及 PCIE IP核 (Intellectual Property core), 所述接口处理模块还与所述 PCIE收发处理器经 PCIE地址数 据总线相连, 其中: 接口处理模块具有对接口 0收发处理、 接口 1收发处理、 一直到接口 N 的数据收发处理、 DMA请求的产生、以及 PCIE地址数据总线的处理等功能; DMA模块包括 DMA的请求队列和 DMA命令产生模块,分别完成接口 0到 接口 N的 DMA读写请求排序和 DMA的命令的生成功能; PCI Express收发 处理模块主要完成 DMA命令的处理、 PCIE IP CORE接口数据的处理; PCIE IP CORE由逻辑芯片厂家提供, 集成了物理层, 数据链路层, 以及事务层的 功能。 其中, 所述 PCIE收发处理器还具有数据包的拆分与合并功 , 以适 应所述 PCIE IP核的需求。 下面进一步说明所述逻辑模块中上述各模块如 何共同协作, 实现本发明 透明传输功能: 所述接口处理模块设置为: 与一个或者多个外部接口相连接, 在接收到 各外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的 数据分 别写入该各外部接口对应的接收数据存储子单 元中的 DMA 写请求至所述 DMA模块; 产生并发送控制所述处理器查询各外部接口对 应的发送地址存 储子单元的 DMA读请求至所述 DMA模块;在从所述 PCIE地址数据总线接 收到用以指示某一外部接口的发送地址存储子 单元中有存储位置信息和数据 长度信息的应答时, 产生并发送控制所述处理器根据所述存储位置 信息和数 据长度信息从该外部接口对应的发送数据存储 子单元中读取数据的 DMA读 请求; 以及在从所述 PCIE地址数据总线接收到需要发送至某一外部 口的 数据后, 将该数据发送至对应的外部接口, 产生并发送控制所述处理器将该 外部接口对应的发送地址存储子单元清空的 DMA写请求; 所述 DMA模块,包括 DMA请求队列单元和 DMA命令产生单元,其中: 所述 DMA请求队列单元设置为: 对接收到的 DMA读写请求进行排序; 所 述 DMA命令产生单元设置为:按照所述 DMA请求队列单元中的 DMA读写 请求的排序顺序生成对应的 DMA读写命令, 并将所述 DMA命令发送至所 述 PCIE收发处理器; 所述 PCIE收发处理器设置为:将所述 DMA模块发送来的 DMA读写命 令发送至所述 PCIE IP核; 将所述 PCIE IP核发送来的控制所述处理器查询 各外部接口对应的发送地址存储子单元的 DMA读请求对应的应答经所述 PCIE地址数据总线发送至所述接口处理模块; 接收到控制所述处理器将该 各外部接口的数据分别写入该各外部接口对应 的接收数据存储子单元中的 DMA写命令后,经所述 PCIE地址数据总线获取所述接口处理模块接收 的 该外部接口数据并将其发送至所述 PCIE IP核; 以及在接收到所述 PCIE IP 核发送来的需要发送至某一外部接口的数据后 , 将其经所述 PCIE地址数据 总线发送至所述接口处理模块; 所述 PCIE IP核, 集成有物理层, 数据链路层, 以及事务层的功能, 该 PCIE IP核设置为: 在接收到所述 PCIE收发处理器发送来的 DMA读写请求 后, 将其发送至所述处理器; 在接收到所述处理器发送来的查询各外部接口 对应的发送地址存储子单元的 DMA读请求对应的应答发送至所述 PCIE收发 处理器; 在接收到所述 PCIE收发处理器发送来的某一外部接口的数据 , 将发送至所述处理器; 以及在接收到所述处理器发送来的需要发送至 某一外 部接口的数据后, 将其发送至所述 PCIE收发处理器。 基于所述逻辑模块上述功能, 所述处理器只需要执行接收到的 DMA读 写命令即可。 所述处理器不需要参与透明传输控制, 通过对所述存储器中 RxO— Info— Mem 、 RxO— Data— Mem 、 TxO— Info— Mem 、 TxO— Data— Mem ,
Rxl— Info— Mem、 Rxl— Data— Mem、 Txl— Info— Mem、 Txl— Data— Mem, , RxN— Info— Mem、 RxN— Data— Mem、 TxN— Info— Mem、 以及 TxN— Data— Mem数 据的处理即可从存储器上读取到外部接口发送 来的数据, 将需要发送的数据 存储在存储器上供本发明所述逻辑模块发送至 对应接口。 本实施例的系统中, 所述逻辑模块是设置为: 在接收到某一外部接口的数据后, 先查询该外 部接口对应的接收地址存储子单元, 如果其为空, 才将该外部接口的数据存 储至该外部接口对应的接收数据存储子单元中 ; 所述处理器是设置为: 在需要发送数据至某一外部接口时, 先查询该外 部接口对应的发送地址存储子单元, 如果其为空, 才将需要发送至该外部接 口的数据存储至该外部接口对应的发送数据存 储子单元中。 本发明实施例的数据透明传输的系统还可以包 括一交换器 (图中未示 出) , 其中: 所述交换器主要是一个桥接作用, 完成处理器的接口数据和逻辑模块的 接口数据的转发功能, 其可以将所述处理器与一个或者多个所述逻辑 模块相 连接, 以实现接口扩展。
参见图 5 , 该图示出了釆用上述系统来执行数据透明传输 的方法, 该方 法包括步骤: 步骤 S501 : 所述逻辑模块与外部接口相连,接收所述外部 接口发送来的 数据, 并将其存储至所述接收存储单元中; 步骤 S502: 所述处理器查询所述接收存储单元, 在查询到所述接收存储 单元中有数据需要接收, 则获取所述需要接收的数据; 步骤 S503:所述处理器将需要发送至外部接口的数据 储至所述发送存 储单元中; 步骤 S504: 所述逻辑模块查询所述发送存储单元, 在查询到所述发送存 储单元中有数据需要发送时, 获取所述需要发送的数据并将其发送至所述外 部接口。 上述步骤之间没有先后次序要求, 可同时执行, 本发明在此不做限制。 例如, 在逻辑模块将接收到的接口数据写入存储器时 , 所述处理器也可以同 时将需要发送的数据写入至所述存储器。
其中, 所述外部接口的数量为一个或者多个, 即所述外部接口可以包括 接口 0、 接口 1 以及接口 N。 所述存储器, 包括与一个或者多个外部 接口 (接口 0、 接口 1 接口 N )中的每一个——对应的接收存储子单 元(RxO— Mem、 Rxl— Mem RxN— Mem )和与一个或者多个外部接 口 (接口 0、 接口 1 接口 N )中的每一个——对应的发送存储子单元
( TxO— Mem、 Txl Mem TxN— Mem ) 。 所述逻辑模块, 在将外部接口发送来的数据存储至所述接收存 储单元中 时, 是将接收接口 0、 接口 1 接口 N发送来的数据, 分别存储在接 口 0、 接口 1 接口 N对应的接收存储子单元 RxO— Mem、 Rxl—
Mem RxN— Mem中, 以供处理器处理; 以及查询各外部接口 (接口 0、接口 1 接口 N )对应的发送存储子单元(TxO— Mem、Txl— Mem
TxN_ Mem ) , 在查询到某一外部接口对应的发送存储子单元 中有数据需要 发送时, 获取所述数据并经对应的外部接口发送出去。 所述处理器, 所述处理器主要完成对存储器中的 RxO— Mem、 Rxl—
Mem RxN— Mem、 TxO— Mem、 Txl— Mem TxN— Mem的数 据处理。 即, 在将需要发送至所述外部接口的数据存储至所 述发送存储单元 中时, 是将需要发送至各外部接口的数据分别存储至 该各外部接口对应的发 送存储子单元中; 在查询所述接收存储单元时, 是分别查询各外部接口对应 的接收存储子单元, 在查询到某一外部接口对应的接收存储子单元 中有数据 需要接收, 则获取所述数据。
其中: 各外部接口对应的接收存储子单元(RxO— Mem、 Rxl— Mem RxN
Mem ) 包 括 接 收 数 据 存 储 子 单 元 ( Rx0_Data_Mem 、
Rxl— Data— Mem RxN— Data— Mem ) 和 接 收 地 址 存 储 子 单 元
( RxO— Info— Mem、 Rxl— Info— Mem RxN— Info— Mem ) ; 各外部接口对应 的发送存储子单元( TxO— Mem、 Txl— Mem TxN— Mem ) 包括发送数据 存储子单元( TxO_Data_Mem、 Txl Data Mem TxN Data Mem )和发送 地址存储子单元(TxO— Info— Mem、 Txl— Info— Mem TxN— Info— Mem ) ; 所述逻辑模块, 在将从各外部接口接收到的数据分别存储在该 各外部接 口对应的接收存储子单元中时, 是将该各外部接口的数据分别存储在该各外 部接口对应的接收数据存储子单元中, 以及还将该各外部接口的数据的存储 位置信息和数据长度信息分别存储在该各外部 接口对应的接收地址存储子单 元中;
所述逻辑模块, 在分别查询各外部接口对应的发送存储子单元 时, 是分 别查询该各外部接口对应的发送地址存储子单 元, 如果查询到为某一外部接 口对应的发送地址存储子单元中包含存储位置 信息和数据长度信息, 则根据 所述存储位置信息和数据长度信息从该外部接 口对应的发送数据存储子单元 获取数据, 然后将获取到的数据发送至该外部接口, 以及还将该外部接口对 应的发送地址存储子单元清空; 所述处理器, 在分别查询该各外部接口对应的接收存储子单 元时, 是分 别查询该各外部接口对应的接收地址存储子单 元, 如果查询到某一外部接口 对应的接收地址存储子单元中包括存储位置信 息和数据长度信息, 则根据所 述存储位置信息和数据长度信息从该外部接口 对应的接收数据存储子单元中 读取数据, 以及还将该外部接口对应的接收地址存储子单 元清空; 所述处理器, 在将需要发送至各外部接口的数据分别存储至 该各外部接 口对应的发送存储子单元中时, 是将需要发送至各外部接口的数据分别存储 至该各外部接口对应的发送数据存储子单元中 , 以及还将需要发送至该各外 部接口的数据的存储位置信息和数据长度信息 分别写入该各外部接口对应的 发送地址存储子单元中。 其中, 各外部接口对应的发送地址存储子单元承载的 信息可以如图 2所 示, 其中 , Tx Length 字段表示所述存储器中 TxO— Data— Mem、
Txl— Data— Mem TxN— Data— Mem单元中存储的数据的长度; Tx Start
Address Ptr表示 TxO— Data— Mem、 Txl— Data— Mem TxN— Data— Mem单 元中数据的起始存储地址。 其中, 各外部接口对应的接收地址存储子单元承载的 信息可以如图 3所 示, 其中 , Rx Length 字段表示所述存储器中 RxO— Data— Mem、
Rxl— Data— Mem RxN— Data— Mem 单元中存储数据的长度; Rx Start
Address Ptr表示 RxO— Data— Mem、 Rxl— Data— Mem、 、 RxN— Data— Mem 单元中数据的起始存储地址。 釆用上述方法, 通过对存储有需要发送至外部接口的数据的存 储位置信 息和长度信息的发送地址存储子单元进行查询 即可判断出处理器是否有需要 发送至某一外部接口的数据, 以及通过对存储有接收到的外部接口的数据的 存储位置信息和长度信息的接收地址存储子单 元进行查询即可判断出是否有 某一外部接口的数据已经存储至存储器可供处 理器使用了。 上述方法还包括: 所述逻辑模块, 在接收到某一外部接口的数据后, 先查询该外部接口对 应的接收地址存储子单元, 如果其为空, 才将该外部接口的数据存储至该外 部接口对应的接收数据存储子单元中; 所述处理器, 在需要发送数据至某一外部接口时, 先查询该外部接口对 应的发送地址存储子单元, 如果其为空, 才将需要发送至该外部接口的数据 存储至该外部接口对应的发送数据存储子单元 中。 下面以具有 PCIE接口的处理器为例说明本发明透明传输方 , 该系统 中所述处理器至少具有一 PCIE接口,所述处理器经所述 PCIE接口与所述逻 辑模块相连, 该方法包括: 所述逻辑模块, 在将该各外部接口的数据分别存储在该各外部 接口对应 的接收数据存储子单元中时, 是向所述处理器发送 DMA写请求和该各外部 接口的数据, 通过 DMA写请求控制所述处理器将该各外部接口的数 据分别 写入该各外部接口对应的接收数据存储子单元 中, 以及将该各外部接口的数 据的长度和存储位置信息写入该各外部接口对 应的接收地址存储子单元中; 所述逻辑模块,在分别查询该各外部接口对应 的发送地址存储子单元时, 是向所述处理器发送 DMA读写请求, 先通过 DMA读请求控制所述处理器 查询该各外部接口对应的发送地址存储子单元 , 并在查询到某一外部接口对 应的发送地址存储子单元中包含存储位置信息 和数据长度信息时, 根据所述 存储位置信息和数据长度信息从该外部接口对 应的发送数据存储子单元中读 取数据, 然后通过 DMA写请求控制所述处理器清空该外部接口对应 的接收 地址存储子单元。 其中: 所述逻辑模块包括依次相连的接口处理模块、 直接存储器存取(DMA ) 模块、 PCIE收发处理器以及 PCIE IP核, 所述接口处理模块还与所述 PCIE 收发处理器经 PCIE地址数据总线相连,所述 DMA模块包括 DMA请求队列 单元和 DMA命令产生单元, 其中: 所述接口处理模块接收一个或者多个外部接口 发送来的数据, 在接收到 某一外部接口的数据后, 产生并发送控制所述处理器将该各外部接口的 数据 分别写入该各外部接口对应的接收数据存储子 单元中的 DMA写请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA写请求后将其 加入 DMA请求队列,在该 DMA写请求出队时将其发送至所述 DMA命令产 生单元, 由所述 DMA命令产生单元产生相应的 DMA写命令后发送至所述 PCIE收发处理器; 所述 PCIE收发处理器在接收到控制所述处理器将该 外 部接口的数据分别写入该各外部接口对应的接 收数据存储子单元中的 DMA 写命令后, 经所述 PCIE地址数据总线获取所述接口处理模块接收 的该外 部接口的数据, 将获取到的数据以及所述 DMA写命令经所述 PCIE IP核和 所述处理器的 PCIE接口发送至所述处理器;所述处理器执行 DMA写命令, 将该外部接口的数据写入该外部接口对应的接 收数据存储子单元中, 并将该 外部接口的数据的存储位置信息和数据长度信 息写入该外部接口对应的接收 地址存储子单元中; 所述接口处理模块产生并发送控制所述处理器 查询各外部接口对应的发 送地址存储子单元的 DMA读请求至所述 DMA请求队列单元; 所述 DMA 请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列,在该 DMA 读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA命令产生 发处理器在接收到制所述处理器查询各外部接 口对应的发送地址存储子单元 的 DMA读命令后,将该 DMA读命令经所述 PCIE IP核和所述处理器的 PCIE 接口发送至所述处理器; 所述处理器执行该 DMA读命令, 查询所述存储器 中各外部接口对应的发送地址存储子单元, 经所述 PCIE IP核和所述 PCIE 收发处理器和所述 PCIE地址数据总线向所述接口处理模块返回所 DMA 读请求对应的应答; 所述接口处理模块在接收到指示某一外部接口 对应的发 送地址存储子单元中有存储位置信息和数据长 度信息的应答后, 产生并发送 控制所述处理器根据该存储位置信息和数据长 度信息从该外部接口对应的发 送数据存储子单元中获取数据的 DMA读请求至所述 DMA请求队列单元; 所述 DMA请求队列单元接收到该 DMA读请求后将其加入 DMA请求队列, 在该 DMA读请求出队时将其发送至所述 DMA命令产生单元, 由所述 DMA
PCIE 收发处理器在控制所述处理器根据该存储位置 信息和数据长度信息从 该外部接口对应的发送数据存储子单元中获取 数据的 DMA读命令后, 将该 DMA读命令经 PCIE IP核和所述处理器的 PCIE接口发送至所述处理器, 所 述处理器执行该 DMA读命令, 根据该存储位置信息和数据长度信息从该外 部接口对应的发送数据存储子单元中读取数据 , 并将读取到的数据经所述处 理器的 PCIE接口、 PCIE IP核、 所述 PCIE收发处理器以及所述 PCIE地址 数据总线发送至所述接口处理模块; 所述接口处理模块在接收到需要发送至 某一外部接口的数据后, 将其发送至对应的外部接口。 该方法还包括: 所述逻辑模块, 在接收到某一外部接口的数据后, 先查询该外部接口对 应的接收地址存储子单元, 如果其为空, 才将该外部接口的数据存储至该外 部接口对应的接收数据存储子单元中; 所述处理器, 在需要发送数据至某一外部接口时, 先查询该外部接口对 应的发送地址存储子单元, 如果其为空, 才将需要发送至该外部接口的数据 存储至该外部接口对应的发送数据存储子单元 中。 上述方法还包括: 还以一交换模块将所述处理器与一个或者多个 所述逻 辑模块相连接, 以实现接口扩展。 所述交换器主要是一个桥接作用, 完成处 理器的接口数据和逻辑模块的接口数据的转发 功能, 其可以将所述处理器与 一个或者多个所述逻辑模块相连接, 以实现接口扩展。 釆用本发明实施例上述方法, 主要由所述逻辑模块承担透明传输处理, 处理器只需要执行接收到的 DMA读写命令即可,不需要参与透明传输控制, 即, 处理器通过对所述存储器中 RxO— Info— Mem、 RxO— Data— Mem、 TxO— Info— Mem 、 TxO— Data— Mem , Rxl— Info— Mem 、 Rxl— Data— Mem 、
Txl— Info— Mem、 Txl— Data— Mem, , RxN— Info— Mem、 RxN— Data— Mem、
TxN— Info— Mem、 TxN— Data— Mem数据的处理即可从存储器上读取到外部接 口发送来的数据, 将需要发送的数据存储在存储器上供本发明所 述逻辑模块 发送至对应接口。
本领域普通技术人员可以理解上述方法中的 全部或部分步骤可通过程序 来指令相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读 存储器、 磁盘或光盘等。 可选地, 上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现。 相应地, 上述实施例中的各模块单元可以釆用 硬件的形式实现, 也可以釆用软件功能模块的形式实现。 本发明不限制于任 何特定形式的硬件和软件的结合。 当然, 本发明还可有其他多种实施例, 在不背离本发明精神及其实质的 些相应的改变和变形都应属于本发明所附的权 利要求的保护范围。
工业实用性 本发明提供的一种数据透明传输的方法及系统 , 在处理器的接口与其它 各种接口之间提供一个数据透明传输的功能, 在数据传输的过程中, 不需要 处理器的参与, 有效解决了嵌入式系统中接口资源不足的问题 。
