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

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    量水堰计是如何实现数据传输和远程监控的?

    现代磁致式量水堰计依托成熟的物联网技术,已能够实现高效可靠的数据传输与远程监控。其核心架构通常分为现场数据采集、数据传输与云端管理三个层面,共同构成完整的远程监测系统。在
    的头像 发表于 04-17 14:29 99次阅读
    量水堰计是如何实现<b class='flag-5'>数据传输</b>和远程监控的?

    DS92LV241x:高速数据传输的理想选择

    DS92LV241x:高速数据传输的理想选择 在当今的电子设备设计中,高速、可靠的数据传输至关重要。DS92LV2411(Serializer)和DS92LV2412(Deserializer
    的头像 发表于 12-25 14:30 648次阅读

    深入剖析DS92LV242x:高速数据传输的理想之选

    深入剖析DS92LV242x:高速数据传输的理想之选 在电子设计领域,高速、稳定且高效的数据传输一直是工程师们追求的目标。德州仪器(TI)的DS92LV242x芯片组,作为一款专注于2
    的头像 发表于 12-24 15:50 410次阅读

    探索DS92LV042x:高速数据传输解决方案的理想之选

    探索DS92LV042x:高速数据传输解决方案的理想之选 在当今高速数据传输的时代,对于能够高效、稳定地处理数据的芯片需求日益增长。DS92LV042
    的头像 发表于 12-24 14:05 467次阅读

    探索DS92LV242x:高速数据传输的理想之选

    探索DS92LV242x:高速数据传输的理想之选 在电子设计领域,高速、可靠的数据传输一直是工程师们追求的目标。今天,我们将深入探讨德州仪器(TI)的DS92LV242x芯片组,它由
    的头像 发表于 12-24 13:55 440次阅读

    CW32 DMA的主要特性

    和 CPU 对外设总线控制权的仲裁,以及多 DMA 通道之间的调度执行。 主要特性有: •5 条独立 DMA 通道 •3 种数据传输宽度:8bit、16bit、32bit •4 种
    发表于 12-16 07:14

    Amphenol ICC SD Express Push - Push连接器:高速数据传输新选择

    Amphenol ICC SD Express Push - Push连接器:高速数据传输新选择 在电子设备不断追求高速数据传输的今天,存储设备与主板之间的连接技术显得尤为重要。Amp
    的头像 发表于 12-15 10:15 453次阅读

    单片机之间可以进行无线数据传输

    ) 1. 使用其他无线通信技术:如果单片机之间的距离较近,可以考虑使用如Wi-Fi、蓝牙、ZigBee等短距离无线通信技术进行数据传输。这些技术通常支持设备间的直接通信,但
    发表于 11-28 08:15

    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 5065次阅读
    基于FPGA的USB<b class='flag-5'>数据传输</b>

    数据传输卡顿?工控一体机接口兼容性问题与线缆选型聚徽全解析

    在工业自动化领域,工控一体机承担着数据采集、处理与传输的重要任务,其数据传输的流畅性直接关系到生产系统的稳定性与效率。然而,数据传输卡顿的现
    的头像 发表于 07-02 10:30 1183次阅读

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

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

    SPI数据传输缓慢问题求解

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