0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM335x工控主板ISA总线DMA数据传输简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-07 10:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在《EM335x主板ISA总线的高级应用》一文中介绍了WEC7版的ESM335x精简ISA总线数据"块"读写方法,对于多字节数据块的连续读写,采用块读写方式可以减少驱动程序API的调用次数,提高ISA总线的访问效率。

数据块读写功能是通过设备驱动的DeviceIoControl来完成的,需要用到以下数据结构:

typedef struct

{

PBYTE pReadBuf; //ISA读数据buffer, 只能一个buffer有效

PBYTE pWriteBuf; //ISA写数据buffer, 只能一个buffer有效

DWORD dwDataLength; //length of data in byte

DWORD dwDataPortOfs; //读写的起始地址 = 0x00 – 0xFF

DWORD dwInc; //= 0: 固定地址, > 0: 读写后地址自动增加

} ISA_BLOCK_INFO, *PISA_BLOCK_INFO;

在上述数据结构中:

pReadBuf为进行读操作时的数据buffer,读操作具体为8-bit数据读。注意:数据结构中,pReadBuf和pWrietBuf只能有一个有效。

pWriteBuf为进行写操作时的数据buffer,写操作具体为8-bit数据读。注意:数据结构中,pReadBuf和pWrietBuf只能有一个有效。

dwDataPortOfs为读写的端口地址,范围为0x00 – 0xFF。

dwDataLength为本数据块读或写的字节数。

dwInc为每次读写后,地址的自动增量,dwInc = 0:表示固定地址读写,dwInc > 0: 表示每次读写后,地址会自动增加dwInc,作为下一次的读写地址。当地址超过0xFF时,会折回到地址0x00。

数据块读写方式虽然减少了频繁调用系统API而产生的系统开销,但数据读写过程还是需要CPU的全程参与,为了进一步提高CPU的利用效率,我们升级了ISA的驱动程序,实现了DMA方式的数据传输。基于支持DMA操作的ISA驱动,应用程序在调用DeviceIoControl进行块读写操作时,如果访问固定地址(即将设置参数dwInc为0),则驱动程序就会自动启用DMA方式进行数据传输。

采用DMA进行数据传输可以进一步提高ISA总线的数据传输速度,同时大大降低总线数据传输对CPU负载率的影响。当不使用DMA进行数据传输,ESM335x CPU全速运行时(CPU负载100%),ISA总线的读写速度在3MB/s左右,使用DMA方式后,ESM335x ISA总线速度可达到5MB/s左右,扣除驱动程序必要处理开销,在应用层实测的数据块读速度为4.17MB/s、数据块写速度为4.5MB/s,而此时CPU的负载率在15%左右。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RVMCU课堂「18」: 手把手教你玩转RVSTAR—DMA数据传输

    ​在之前的内容里,我们使用过UART、SPI、I2C等接口进行过数据传输,在处理通信数据时,几乎都是在主程序或中断服务程序中进行数据的转存,这样耗费了大量的CPU时间。幸运的是,微控制器的设计者也
    发表于 10-30 08:29

    多通道数据传输终端 LoRa/LTE双模通信终端

    数据传输
    稳控自动化
    发布于 :2025年10月24日 13:57:21

    基于FPGA的USB数据传输

    你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢?
    的头像 发表于 08-06 14:47 4585次阅读
    基于FPGA的USB<b class='flag-5'>数据传输</b>

    像这样一款体积小巧的DTU数据传输终端你见过吗?

    数据传输
    才茂通信
    发布于 :2025年06月04日 14:33:29

    SPI数据传输缓慢问题求解

    我遇到了 SPI 数据传输速率问题。 尽管将 SPI 时钟频率设置为 20 MHz,但我只获得了 2 Kbps 的数据传输速率。 我正在以 115200 的波特率通过 UART 监控数据。 我正在 cyfxusbspidmamo
    发表于 05-15 08:29

    无线采发仪 振弦、温度及多类型信号采集 多种数据传输方式

    数据传输
    稳控自动化
    发布于 :2025年03月10日 11:18:58

    信道带宽与数据传输速率关系

    信道带宽与数据传输速率之间存在密切的关系,这种关系可以通过香农定理来具体阐述。 一、理论关系 根据香农定理,信道的最大数据传输速率(C)与信道的带宽(B)和信噪比(SNR)之间存在如下关系:C=B
    的头像 发表于 01-22 16:36 3954次阅读

    I2C总线数据传输速度要求

    Semiconductors)在1980年代初期开发。I2C总线因其简单性和灵活性而被广泛应用于各种电子设备中,如传感器、显示器、存储器等。 I2C总线数据传输速度 I2C总线
    的头像 发表于 01-17 15:15 3610次阅读

    请问ldc1000在与主机进行数据传输的过程中,数据传输速率设置为多大合适?

    你好,请问ldc1000在与主机进行数据传输的过程中,数据传输速率设置为多大合适(我的差不多1M),但数据一直不对····
    发表于 01-17 06:37

    MPU数据传输协议详解

    在现代电子系统中,微控制器(MPU)扮演着核心角色,负责处理各种任务和数据。为了实现这些功能,MPU需要与其他设备进行数据交换。数据传输协议就是规定这些数据交换如何进行的一套规则。 M
    的头像 发表于 01-08 09:37 1425次阅读

    总线数据传输的安全性分析

    总线数据传输的安全性分析,特别是针对像CAN(Controller Area Network)总线这样的重要通信协议,是一个复杂而关键的课题。以下是对CAN总线
    的头像 发表于 12-31 09:51 1200次阅读

    不同类型的总线技术对比

    总线技术是计算机系统中用于连接各个组件(如CPU、内存、硬盘等)的关键技术,它们负责数据传输和通信。以下是一些常见的总线
    的头像 发表于 12-31 09:40 1877次阅读

    如何使用 HTTP 协议进行数据传输

    在互联网时代,数据传输信息交换的基础。HTTP协议作为最常用的数据传输协议之一,支撑着全球数十亿用户的数据交互。 HTTP协议的基本概念 请求-响应模型 :HTTP协议基于请求-响应
    的头像 发表于 12-30 09:24 2164次阅读

    ptp对实时数据传输的影响

    在现代通信技术中,点对点(P2P)网络已经成为数据传输的一种重要方式。P2P网络允许网络中的每个节点既可以作为客户端也可以作为服务器,直接进行数据交换。这种去中心化的网络结构对于实时数据传输
    的头像 发表于 12-29 09:53 1048次阅读

    信噪比对数据传输速度的影响

    信噪比对数据传输速度有着显著的影响。以下是对这一影响的分析: 一、信噪比的定义与重要性 信噪比(SNR)是信号功率与噪声功率的比值,通常以分贝(dB)为单位表示。它是衡量信号质量的重要参数,直接影响
    的头像 发表于 12-10 14:38 2785次阅读