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

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

3天内不再提示

英创信息技术EM335x主板ISA总线的高级应用介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-03 10:00 次阅读

对工控主板EM335x精简ISA扩展总线基本读写操作的介绍,已包含在EM335x编程手册中。本文将介绍在Windows CE平台上,通过精简ISA总线进行数据块读写的方法。所谓数据块读写,是指一次API调用对一个地址端口读写多个数据的操作。数据块读写能有效提高数据读写的效率,在数据采集传输中有广泛的应用。

要对ISA总线进行读写,首先需要打开设备文件“ISA1:”如下:

打开ISA文件
HANDLE hISA;
hISA = CreateFile(_T('ISA1:'),//name of device
GENERIC_READ|GENERIC_WRITE,//desired access
FILE_SHARE_READ|FILE_SHARE_WRITE,//sharing mode
NULL,//security attributes (ignored)
OPEN_EXISTING,//creation disposition
FILE_FLAG_RANDOM_ACCESS,//flags/attributes
NULL);//template file (ignored)

数据块读写功能是通过设备驱动的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。

如果要进行单一数据块读写功能,只需定义一个ISA_BLOCK_INFO结构变量,如BlockInfo,并按照应用需求填写相应的参数。然后就可调用系统API进行设置了:

ISA_BLOCK_INFO BlockInfo;
memset(&BlockInfo, 0, sizeof(ISA_BLOCK_INFO));
//填写输入参数值BlockInfo...

对读操作,直接调用标准读函数:
DWORD dwNbBytesRead = 0;
BOOL bRet = ReadFile(hISA,//打开“ISA1:”返回的Handler
&BlockInfo,//输入数据结构指针
sizeof(ISA_BLOCK_INFO),//数据结构Size
&dwNbByteRead, NULL);

对写操作则为:
DWORD dwNbBytesWritten = 0;
BOOL bRet = WriteFile(hISA,//打开“ISA1:”返回的Handler
&BlockInfo,//输入数据结构指针
sizeof(ISA_BLOCK_INFO),//数据结构Size
&dwNbByteWritten, NULL);

如果要执行混合的数据块的读写操作,则需要定义ISA_BLOCK_INFO数组,并根据实际应用填写数组参数。例如需要进行3组数据块读写,实现代码如下:
ISA_BLOCK_INFO BlockInfo[3];
DWORD dwTotalSize = sizeof(ISA_BLOCK_INFO) * 3;
memset(BlockInfo, 0, dwTotalSize);
//填写输入参数值BlockInfo...

BOOL bRet = DeviceIoControl(hISA,//打开“ISA1:”返回的Handler
0,//无需定义命令码,置为0
(LPVOID)BlockInfo,//块读写数据结构变量指针
dwTotalSize,//整个结构数组的size
NULL, 0,//不使用这组参数
NULL, NULL);

上述操作的主要特点是提高访问ISA总线的效率,因为每次调用驱动程序API,都会有一个几微秒的系统开销。对多字节的数据块读写,这样的开销应用程序就需要注意,否则会发现CPU的负载不合理的升高。

相关阅读:《ESM335x工控主板ISA总线DMA数据传输》

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

    关注

    3

    文章

    3524

    浏览量

    88404
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35199
收藏 人收藏

    评论

    相关推荐

    AM335x和AMIC110 Sitara™处理器技术参考手册

    电子发烧友网站提供《AM335x和AMIC110 Sitara™处理器技术参考手册.pdf》资料免费下载
    发表于 11-14 15:07 0次下载
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara™处理器<b class='flag-5'>技术</b>参考手册

    国产工控主板,信产业发展新引擎

    在当今科技飞速发展的时代,信产业正成为国家战略的重要支撑。而我们的国产工控主板,以其卓越的性能和可靠的品质,为信产业的发展注入强大动力。国产工控主板在信
    的头像 发表于 11-06 10:29 142次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 373次阅读

    AM335x功耗估算工具

    电子发烧友网站提供《AM335x功耗估算工具.pdf》资料免费下载
    发表于 10-12 11:46 0次下载
    AM<b class='flag-5'>335x</b>功耗估算工具

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 318次阅读

    AM335x硬件设计指南

    电子发烧友网站提供《AM335x硬件设计指南.pdf》资料免费下载
    发表于 09-19 11:05 0次下载
    AM<b class='flag-5'>335x</b>硬件设计指南

    AM335x原理图核对表

    电子发烧友网站提供《AM335x原理图核对表.pdf》资料免费下载
    发表于 09-19 11:03 0次下载
    AM<b class='flag-5'>335x</b>原理图核对表

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 384次阅读

    现场总线的种类介绍及其特点分析

    高级控制系统之间的信息传递。现场总线技术的出现,极大地推动了工业自动化水平的提高。本文将详细介绍现场
    的头像 发表于 06-06 11:40 699次阅读

    龙芯中科突破“卡脖子”难题,构建新型信息技术体系

    胡伟武强调,在Wintel和AA体系主导全球电子产业的环境下,中国需建立独立于X86和ARM的第三套信息技术体系和产业生态,解决关键技术被封锁的困境,加速形成新质生产力,从而创造新的竞争优势。
    的头像 发表于 05-20 16:12 543次阅读

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 854次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单

    集特新推出三款海光主板

    作为国内五大芯片厂商之一的海光,第一颗芯片诞生于2014年,由海光信息技术股份有限公司研发(以下简称海光信息)。,是目前国内唯一一家生产X86芯片企业,采用X86指令集兼容的架构。 集
    的头像 发表于 03-04 17:55 603次阅读
    集特新推出三款海光<b class='flag-5'>主板</b>

    集特新推出三款海光主板

    作为国内五大芯片厂商之一的海光,第一颗芯片诞生于2014年,由海光信息技术股份有限公司研发(以下简称海光信息)。,是目前国内唯一一家生产X86芯片企业,采用X86指令集兼容的架构。 集
    的头像 发表于 02-29 17:39 716次阅读
    集特新推出三款海光<b class='flag-5'>主板</b>

    软通动力与捷技术签订战略合作协议

    近日,软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与宁波捷技术股份有限公司(以下简称“捷技术”)正式签订战略合作协议,并
    的头像 发表于 02-03 16:35 1082次阅读

    MES/MOM标准之ISA-95介绍

    今天我们来分享MES/MOM行业国际标准:ISA-95基础内容介绍
    的头像 发表于 01-08 10:45 2638次阅读
    MES/MOM标准之<b class='flag-5'>ISA</b>-95<b class='flag-5'>介绍</b>