3) 返回状态值: 完成代码:
VI_SUCCESS 器件清除完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_BERR 总线错误 VI_ERROR_TMO 超时错误
4) 描述:该操作向器件发送一个清除命令。 5) 相关项:无。 6) 实现要求:无。
n 高级存取资源(VI_RSRC_HL_ACC):
1. 资源概述:在接口级对器件的寄存器进行存取操作。 2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_BUS_TYPE 接口总线类型 VI_ATTR_PHYS_ADDR 器件地址
VI_ATTR_TYPE 高级存取对象类型(器件还是接口) VI_ATTR_DEST_ACCESS_PRIV 写操作特性 VI_ATTR_DEST_BYTE_ORDER 写操作字节顺序 VI_ATTR_DO_RETRY 是否允许软件重入 VI_ATTR_SRC_ACCESS_PRIV 读操作特性 VI_ATTR_SRC_BYTE_ORDER 读操作字节顺序 VI_ATTR_USE_BLOCK 是否允许块传送 VI_ATTR_TRANSFER_MECH 传送机制 VI_ATTR_SRC_INCREMENT 源偏移量 VI_ATTR_DEST_INCREMENT 目标偏移量 3. 高级存取资源定义的事件如下所示:无 4. 高级存取资源定义的操作如下:
viIn(vi,space,offset,width,value) viIn8(vi,space,offset,value) viIn16(vi,space,offset,value) viIn32(vi,space,offset,value) viIn64(vi,space,offset,value)
viOut(vi,space,offset,width,value) viOut8(vi,space,offset,value) viOut16(vi,space,offset,value) viOut32(vi,space,offset,value) viOut64(vi,space,offset,value)
viMove(vi,srcspace,srcOffset,srcWidth,destspace,destOffset, destWidth,length)
4.1. viIn(vi,space,offset,width,value) viIn8(vi,space,offset,value) viIn16(vi,space,offset,value)
viIn32(vi,space,offset,value) viIn64(vi,space,offset,value)
1) 目标:从接口总线读取8,16,32或64位字 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) space 输入 ViUInt16 地址空间类型
offset 输入 ViUInt32 读取接口/器件偏移量 width 输入 ViUInt16 读取数据长度
value 输出 ViBuf、ViPUInt(8、16、32、64) 读取数据 3) 返回状态值: 完成代码:
VI_SUCCESS 读操作完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_BERR 总线错误
VI_ERROR_INV_SPACE 地址空间不合法 VI_ERROR_INV_OFFSET 偏移量不合法
VI_ERROR_NSUP_BYTE_ORDER 不支持特定字节顺序 VI_ERROR_NSUP_OFFSET 硬件不支持特定地址偏移量 VI_ERROR_NSUP_PRIV 硬件不支持存取特性
4) 描述:该操作用特定数据长度与地址空间读取位于一定地址的数据值。其中 viIn8()、viIn16()、viIn32()、viIn64分别规定数据长度为8、16、32与 64位。
5) 相关项:viOut()。
6) 实现要求:参数value值viBuf对应viIn(),viPUInt8对应viIn8(), viPUInt16对应viIn16(),viPUInt32对应viIn32(),viPUInt64对应viIn64( )。
4.2. viOut(vi,space,offset,width,value) viOut8(vi,space,offset,value) viOut16(vi,space,offset,value) viOut32(vi,space,offset,value) viOut64(vi,space,offset,value)
1) 目标:向接口总线写入8,16,32或64位字 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) space 输入 ViUInt16 地址空间类型
offset 输入 ViUInt32 写入接口/器件偏移量 width 输入 ViUInt16 写入数据长度
value 输入 ViBuf、ViPUInt(8、16、32、64) 写入数据 3) 返回状态值: 完成代码:
VI_SUCCESS 写操作完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_BERR 总线错误
VI_ERROR_INV_SPACE 地址空间不当 VI_ERROR_INV_OFFSET 偏移量不当
VI_ERROR_NSUP_BYTE_ORDER 不支持特定字节顺序 VI_ERROR_NSUP_OFFSET 硬件不支持特定地址偏移量 VI_ERROR_NSUP_PRIV 硬件不支持存取特性
4) 描述:该操作用特定数据长度与地址空间将数据写入到一定地址中。其中 viOut8()、viOut16()、viOut32()、viOut64分别规定数据长度为8、16、 32与64位。
5) 相关项:viIn()。
6) 实现要求:参数value值viBuf对应viOut(),viPUInt8对应viOut8(), viPUInt16对应viOut16(),viPUInt32对应viOut32(),viPUInt64对应 viOut64()。
4.3. viMove(vi,srcSpace,srcOffset,srcWidth,destSpace,destOffset, destWidth,length) 1) 目标:移动数据块 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) srcSpace 输入 ViUInt16 源空间地址 srcOffset 输入 ViUInt32 源偏移量 srcWidth 输入 ViUInt16 源数据长度 destSpace 输入 ViUInt16 目标空间地址 destOffset 输入 ViUInt32 目标偏移量 destWidth 输入 ViUInt16 目标数据长度 length 输入 ViUInt32 传送数据个数 3) 返回状态值: 完成代码:
VI_SUCCESS 数据块移动完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_BERR 总线错误
VI_ERROR_INV_SPACE 地址空间不当 VI_ERROR_INV_OFFSET 偏移量不当 VI_ERROR_INV_WIDTH 数据长度不当
VI_ERROR_NSUP_BYTE_ORDER 不支持特定字节顺序 VI_ERROR_NSUP_OFFSET 硬件不支持特定地址偏移量 VI_ERROR_NSUP_VAR_WIDTH 源与目标数据长度不一致 VI_ERROR_NSUP_PRIV 硬件不支持存取特性
4) 描述:该操作将数据从源地址移动到目标地址。源与目标数据长度必须一致。
5) 相关项:无。 6) 实现要求:无。
n 低级存取资源(VI_RSRC_LL_ACC):
1. 资源概述:在寄存器级对器件的寄存器进行存取操作。 2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_BUS_TYPE 接口总线类型 VI_ATTR_TMO_UNIT 超时值单位 VI_ATTR_TMO_VALUE 超时值 VI_ATTR_ACC_PRIV 存取特性 VI_ATTR_ADDR_SPACE 地址空间 VI_ATTR_BLOCK 块传送允许
VI_ATTR_BYTE_PREFETCH 是否允许预取操作 VI_ATTR_VIRT_BASE 虚拟基地址
VI_ATTR_WIN_BASE_ADDR 总线基地址 VI_ATTR_WIN_OWNER 用户存取特性 VI_ATTR_WR_POST 写登记是否允许
VI_ATTR_A16_SPC_INFO A16空间映射信息 VI_ATTR_A24_SPC_INFO A24空间映射信息 VI_ATTR_A32_SPC_INFO A32空间映射信息 3. 低级存取资源定义的事件如下所示: 事件 说明
VI_EVENT_BERR 总线错误发生事件 4. 低级存取资源定义的操作如下:
viMap(vi,mapSpace,mapBase,mapSize,owner,suggested,address) viUnMap(vi)
viPoke(vi,addr,width,value) viPoke8(vi,addr,value) viPoke16(vi,addr,value) viPoke32(vi,addr,value) viPoke64(vi,addr,value)
viPeek(vi,addr,width,value) viPeek8(vi,addr,value) viPeek16(vi,addr,value) viPeek32(vi,addr,value) viPeek64(vi,addr,value)
4.1. viMap(vi,mapSpace,mapBase,mapSize,access,suggested,address)
1) 目标:内存空间映射 2) 参数表:
参数名 输入/输出方向 数据类型 描述
Vi 输入 ViSession 对话通道标识符(句柄)
MapSpace 输入 ViUInt16 映射地址空间 MapBase 输入 ViBusAddress 内存偏移量 MapSize 输入 ViBusSize 映射内存大小 Access 输入 ViBoolean 映射特性
Suggested 输入 ViBuf 映射是否允许确认 Address 输出 ViPBuf 映射地址 3) 返回状态值: 完成代码:
VI_SUCCESS 地址映射完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_INV_SPACE 地址空间不当 VI_ERROR_INV_OFFSET 偏移量不当
VI_ERROR_NSUP_BYTE_ORDER 不支持特定字节顺序 VI_ERROR_NSUP_OFFSET 硬件不支持特定地址偏移量 VI_ERROR_NSUP_PRIV 硬件不支持存取特性 VI_ERROR_TMO 超时错误
4) 描述:该操作进行特定内存空间映射。 5) 相关项:参见viUnmap()。
6) 实现要求:在由于资源限制致使viMap()不能立即执行,则其将沉睡到资源 有效或超时情况发生。 4.2. viUnMap(vi) 1) 目标:取消内存映射 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) 3) 返回状态值: 完成代码:
VI_SUCCESS 映射取消完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_WINDOW_NMAPPED 标识符不当 4) 描述:该操作应与映射操作一一对应。 5) 相关项:参见viMap()。 6) 实现要求:无。
4.3. viPoke(vi,addr,width,value)、viPoke8(vi,addr,value) viPoke16(vi,addr,value)、viPoke32(vi,addr,value) viPoke64(vi,addr,value) 1) 目标:写数据 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄)