英创信息技术EM9170工控主板ISA总线数据介绍

em9170工控主板的精简isa总线包括8位数据总线、5位地址总线、片选控制线、读写控制线以及中断请求线。所提供的评估开发底板将这些信号线制定了一个接口标准,采用双排20芯 idc插针,用户可利用精简isa总线进行系统功能的扩展。本文着重从软件开发使用的角度来介绍isa总线读写操作的使用方法。
em9170预装wince 6.0,wince 6.0和wince 5.0一个比较大的区别就是用户数据区和内核数据区完全分开,应用程序无法进行指定地址的读写操作,因此在em9170上isa总线的是以流式驱动程序的方式来实现对其读写的操作,isa总线设备的名称为: _t(“isa1:”),通过标准的createfile()函数打开该设备,对isa总线数据的读写,em9170的isa驱动程序提供了两种方式。一种是单个字节的数据读写,一种是基于同一isa地址的连续读写操作。针对这两种方式分别定义以下两种数据结构:
typedef struct
{
dword dwcmd; // = 0: isa读操作, = 1: isa写操作
dword dwseg; // = 0: isa_cs0#, = 1: isa_cs1#
dword dwoffset; // isa地址偏移量:0 – 31
dword dwvalue; // 数据值,只有低8位有效
} isa_bus_access, *pisa_bus_access;
typedef struct
{
dword dwcmd; // 保留,恒为0
dword dwseg; // = 0: isa_cs0#, = 1: isa_cs1#
dword dwoffset; // isa地址偏移量:0 – 31
pbyte pbuf; // 数据
dword dwlength; // 数据长度,以字节为单位
} isa_bus_block_access, *pisa_bus_block_access;
第一种是单个字节的数据读写操作。应用程序通过调用相应的deviceiocontrol( )函数进行isa数据读写操作,所带参类型为isa_bus_access。如:
bool isa_read( handle hisa_dio, int nseg, unsigned int noffset, unsigned char *prdvalue )
{
isa_bus_access isabus;
isabus.dwcmd = 0;
isabus.dwseg = nseg;
isabus.dwoffset = noffset;
isabus.dwvalue = 0;
if (!deviceiocontrol(hisa_dio, // file handle to the driver
isa_ioctl_read_write, // i/o control code
&isabus, // in buffer
sizeof(isa_bus_access), // in buffer size
prdvalue, // out buffer
sizeof(uchar), // out buffer size
null, // pointer to number of bytes returned
null)) // ignored (=null)
{
return false;
}
return true;
}
第二种是基于相同isa地址的连续读写操作。应用程序通过调用标准的函数readfile() 、writefile( ),所带参类型为isa_bus_block_access,如:
isa_bus_block_access isa_block;
isa_block.dwcmd = 0; // 恒为0
isa_block.dwlength = 16; // 读写数据块长度,以字节为单位
isa_block.dwseg = 1; // 使用isa_cs1#
isa_block.pbuf = buf; // 读写数据buffer指针
bret = readfile( hisa, (lpvoid)&isa_block, sizeof(isa_bus_block_access), &dwlen, null );
bret = writefile( hisa, (lpvoid)&isa_block, sizeof(isa_bus_block_access), &dwlen, null );
经过测试在em9170板卡上,第一种单个字节isa数据读写周期为12us;第二种连续读写方式其周期为380ns。用户可根据实际情况进行选择,相关的测试参考代码可参考英创提供开发光盘中的相关资料。

中国移动与诺基亚深入合作,推动产业持续发展
流通千万里,零距离追溯 物联网标识的应用解析
WiFi 6将成为无线网络的新一代产品
床垫和沙发抗引燃烧测试仪的技术分析
OWC推3.5英寸U.2 SSD转接产品
英创信息技术EM9170工控主板ISA总线数据介绍
DRAM的发展史及结构解析
校园、办公楼、路灯、充电桩智能微型断路器无线智慧空气开关的功能介绍——安科瑞 严新亚
纸质便携式笔记本电脑支架的制作
我国首发物件识别及触摸屏的力度感测技术
技术创新,生态共建|优博终端亮相首届OpenHarmony技术峰会
第十代酷睿有可能是历史上最混乱的酷睿之一
计算机编程学习的一些书籍推荐
谷歌以482亿美元当选全球最具价值品牌
捞到可疑窃密设备,江苏渔民获重奖,大量传感器随之曝光
禾多科技出席2021中国智能驾驶科技创新论坛
显示器画面扭曲怎么办
搜狗AI录音笔S1发布 录音实时转文字准确率达到98%
区块链解决方案该如何选择
新型射频前端解决方案(TriQuint)