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

    文章

    6085

    浏览量

    35218
收藏 人收藏

    评论

    相关推荐

    PCIe数据传输协议详解

    、网卡和声卡等,以实现高效的数据传输。以下是对PCIe数据传输协议的介绍: 一、PCIe协议的基本概念 PCIe协议定义了一系列规范和要求,以实现在主机系统和外围设备之间高效、可靠地进行数据通信。它采用了高速串行点对点双通道高带
    的头像 发表于 11-26 16:12 60次阅读

    CAN总线数据传输速率 CAN总线在汽车中的应用

    CAN总线数据传输速率 CAN总线(Controller Area Network)是一种用于实时应用的串行通讯协议总线,其设计目标是汽车内部测量与执行部件之间的
    的头像 发表于 11-21 10:20 143次阅读

    CAN总线数据传输速率设置

    CAN(Controller Area Network)总线是一种串行通信协议,主要用于汽车和工业控制系统中,以实现电子控制单元(ECU)之间的通信。CAN总线数据传输速率,也称为波特率,是衡量
    的头像 发表于 11-12 10:03 207次阅读

    LORA模块的数据传输速率

    LoRa(Long Range)是一种用于物联网(IoT)应用的低功耗广域网(LPWAN)技术。它以其长距离通信能力和低功耗特性而闻名。LoRa模块的数据传输速率可以根据不同的配置和地区的规定
    的头像 发表于 10-31 17:03 578次阅读

    网络数据传输速率的单位是什么

    网络数据传输速率的单位是 bps(bit per second) ,即比特每秒,也可以表示为b/s或bit/s。它表示的是每秒钟传输的二进制数的位数。比特(bit)是计算机中数据量的单位,也是
    的头像 发表于 10-12 10:20 928次阅读

    高速串行总线数据传输离不开它!#高速串行总线 #电路知识 #数据传输

    电路数据传输
    安泰仪器维修
    发布于 :2024年08月20日 15:42:00

    总线——MCU有线数据传输

    交互直接透传协议的,但可以实现二根线上完成数据传输+供电,尤其适合楼宇里的智能设备联动控制,如烟雾报警器与报警主机之间,如智能灯光控制等等一切合理的应用。 POWERBUS二总线技术,是近些年具备现场验证的一种二
    发表于 07-23 13:28

    SDIO支持哪些数据传输模式?

    1、当 SDIO 时钟频率为 25 MHZ 时,总线速度可达多少? 还是 832MBPS? 2、SDIO 支持哪些数据传输模式? --1 位、2 位、3 位或 4 位? 3、哪个 SDIO 引脚具有中断功能? --DAT[0]? [1]?[2]?[3]?
    发表于 07-22 06:37

    经验分享 | DMA助力实时控制

    的响应速度和处理能力。·加快数据传输速度:针对多总线高性能MCU,DMA可以避免不同总线同步问题,提供更高的数据传输速率。·降低系统延迟:由
    的头像 发表于 07-18 08:18 704次阅读
    经验分享 | <b class='flag-5'>DMA</b>助力实时控制

    can总线数据传输过程是什么

    CAN总线(Controller Area Network)是一种用于汽车和工业控制系统的通信协议。它具有高可靠性、实时性和灵活性,因此在许多领域得到了广泛应用。本文将详细介绍CAN总线数据传输
    的头像 发表于 06-16 10:18 2381次阅读

    医疗设备CAN/CANopen总线数据传输解决方案

    盟通提出的医疗设备CAN/CANopen总线数据传输解决方案是基于IXXAT的高性能CAN设备,助力您实现稳定、便捷的数据采集和分析,为您的项目创新提供有利支持。
    的头像 发表于 03-18 14:26 1441次阅读
    医疗设备CAN/CANopen<b class='flag-5'>总线</b><b class='flag-5'>数据传输</b>解决方案

    CW32L052单片机支持DMA实现高速数据传输

    CW32L052支持DMA(Direct Memory Access),即直接内存访问,无需CPU干预,实现高速数据传输
    的头像 发表于 02-27 11:36 950次阅读

    多业务光端机:实现高速数据传输的关键技术解析

    随着信息技术的迅猛发展,网络传输速度的需求日益提高。在这样的背景下,多业务光端机作为一种高速数据传输的关键设备,逐渐受到了业界的广泛关注。本文将对多业务光端机的关键技术进行深入解析,以
    的头像 发表于 02-23 14:10 569次阅读

    总线数据传输的要求有哪些 can总线和lin总线的区别

    数据传输应该是可靠的,即确保数据无误、完整地从发送方传输到接收方。这可以通过使用纠错编码、检验和校验等技术来实现。
    发表于 01-10 16:18 1465次阅读

    ADXRS453Z的芯片支持使用STM32单片机的DMA数据传输功能吗?

    ADXRS453Z的芯片支持使用STM32单片机的DMA数据传输功能吗?如果,不能,考虑到我们的数据传输还是挺多的,那么常规的SPI通信方式占用大量的CPU控制权,势必会影响其他任务的运行,那么我该如何做?是否需要对这个ADI芯
    发表于 12-29 07:47