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

    文章

    6081

    浏览量

    34941
收藏 人收藏

    评论

    相关推荐

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

    电路数据传输
    安泰仪器维修
    发布于 :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 472次阅读
    经验分享 | <b class='flag-5'>DMA</b>助力实时控制

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

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

    GMSL技术 实现高带宽、低延迟和高可靠性数据传输# ADI# GMSL# 汽车# 数据传输

    adi数据传输电机
    Excelpoint世健
    发布于 :2024年05月17日 16:34:25

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

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

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

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

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

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

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

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

    dma和通道技术的区别

    DMA(Direct Memory Access)和通道技术是计算机系统中用来优化数据传输和处理的重要技术。尽管它们都与数据传输相关,但它们
    的头像 发表于 01-04 14:31 1629次阅读

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

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

    如何实现MQTT协议数据传输

    如何实现MQTT协议数据传输? 随着物联网技术的不断发展,越来越多的设备和应用需要实现互联互通。而MQTT作为一种轻量级的发布/订阅消息传输协议,在物联网领域应用广泛,成为了许多设备之间数据
    的头像 发表于 11-15 17:23 990次阅读

    AXI数据传输读写数据结构

    在 AXI 数据传输过程中,主要涉及到 •窄位宽数据传输(Narrow Transfer) •非对齐传输(Unaligned Transfer) •混合大小端传输(mix-endian
    的头像 发表于 10-31 16:17 1283次阅读
    AXI<b class='flag-5'>数据传输</b>读写<b class='flag-5'>数据</b>结构

    CAN总线在野外地震数据传输中的应用

    电子发烧友网站提供《CAN总线在野外地震数据传输中的应用.pdf》资料免费下载
    发表于 10-08 09:59 0次下载
    CAN<b class='flag-5'>总线</b>在野外地震<b class='flag-5'>数据传输</b>中的应用