社区
C++ Builder
帖子详情
各位大大,怎么读取USB口的数据啊??
zhaoxinghan
2004-04-12 09:13:00
老板交代的任务,硬件部分已经完成,但现在要编一个读取usb口发来的数据并进行处理的软件,usb口的数据读取怎么实现啊??
...全文
270
13
打赏
收藏
各位大大,怎么读取USB口的数据啊??
老板交代的任务,硬件部分已经完成,但现在要编一个读取usb口发来的数据并进行处理的软件,usb口的数据读取怎么实现啊??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gjgj3368
2004-09-14
打赏
举报
回复
学习
guanri
2004-09-14
打赏
举报
回复
这个我在行,写个usb的驱动程序,然后用iocontrol等函数即可
星光伴月
2004-09-06
打赏
举报
回复
www.cppfans.com
hongyanzhou
2004-09-03
打赏
举报
回复
gz
yunuo2010000
2004-04-13
打赏
举报
回复
学习
CityHost
2004-04-13
打赏
举报
回复
去驱动开发网看看吧
zhaoxinghan
2004-04-13
打赏
举报
回复
哪位大大介绍几本书,或者指点我应该看什么样的书??
zhaoxinghan
2004-04-13
打赏
举报
回复
哪位大大介绍本书看啊,或者说明去书店找哪一类的书看,要不工作无法完成啊。
HITGB
2004-04-13
打赏
举报
回复
用了usb芯片吗?
zhaoxinghan
2004-04-12
打赏
举报
回复
@_@
看晕了.......
这个东西有没有合适的书籍啊??哪位大大介绍几本。
MEFULEU
2004-04-12
打赏
举报
回复
转:
目前大多数的外部存储设备(例如USB活动硬盘等)基本上都采用FAT文件系统,用户可以像
使用主机硬盘一样利用资源管理器对外部存储设备上的文件执行各种操作。在Windows环境
下,外部存储设备的驱动程序除要完成普通的I/O读写操作之外,还需要构造文件系统接口,
以实现Windows环境下磁盘的逻辑操作到物理操作的转换。下面以一个虚拟设备为例,介绍
在Windows环境下构造文件系统驱动程序的基本原理和方法。
Windows的文件系统
Windows系列操作系统采用IOS(Input/Output Supervisor,输入输出管理程序)技术。IOS
管理所有的存储设备,如IDE硬盘、可移动式软盘、CDROM等。IOS的接口以及其在操作系统
中的逻辑层次(暂不考虑SCSI结构)如下图所示。
我们从图中可以看到Windows采用的是一种分层的、可安装的文件系统,每一层都完成一特定
的功能,层与层之间是相对独立的实体。我们要创建自己的文件系统驱动,一般不需要对每
一层都提供服务,比如我们采用硬盘上的FAT文件系统时,可以先利用VFAT.VXD作FSD(File
System Driver,文件系统驱动器),再用DISKTSD.VXD模拟硬盘物理行为。而我们真正需要
做的只是编写自己的端口驱动程序,以响应基于物理或逻辑分区的读写操作。
构造文件系统驱动程序
在IOS初始化阶段,它将在SYSTEM\IOSUBSYS目录下搜索后缀为PDR(Port Driver)、MPD
(SCSI Miniport Driver)、VXD(FSD、TSD等)的设备驱动程序,并向它们发送
SYS_DYNAMIC_DEVICE_INIT消息。为了响应IOS,端口驱动程序在响应SYS_DYNAMIC_DEVICE_INIT
消息时填写DRP(Device Request Packet)结构并调用IOS_Register向IOS注册。DRP结构的
AEP域中包含的是回调地址,在端口驱动程序装载后,IOS就通过发送AEP对DRP结构进行初始
化。典型的AEP响应代码如下:
VOID __cdecl SAMPLE_Aer(AEP* pAep)
{
switch (pAep->AEP_func)
{
//IOS最先发送此消息
case AEP_INITIALIZE:
……//创建并填写DDB(Device Driver Block)
//返回AEP_SUCCESS表示创建成功
pAep->AEP_result = AEP_SUCCESS;
break;
//DDB成功创建后,IOS发送此消息
case AEP_DEVICE_INQUIRY:
pDcb = ((AEP_inquiry_device*)pAep)->AEP_i_d_dcb;
if (((DCB*)pDcb)->DCB_unit_on_ctl=0)
{
……//第一次发送此消息时创建用于虚拟设备的DCB(Device Control Block),DCB将被
用于描述虚拟设备的存储容量、最大传输能力等参数
pAep->AEP_result = AEP_SUCCESS; }
else
//由于只创建一个虚拟设备,所以返回AEP_NO_MORE_DEVICES终止发送此消息
pAep->AEP_result =
AEP_NO_MORE_DEVICES;
break;
case AEP_CONFIG_DCB:
//IOS在终止AEP_DEVICE_INQUIRY消息发送后,发送此消息为我们创建的虚拟存储设备分配
驱动器号(C: D: E:等)
//返回AEP_SUCCESS表示成功
pAep->AEP_result = AEP_SUCCESS;
break;
//初始化结束时IOS 发送此消息
case AEP_BOOT_COMPLETE:
//返回AEP_SUCCESS,通知IOS将端口驱动程序驻留在内存中
pAep->AEP_result = AEP_SUCCESS;
break;
default:
break;
}
}
在初始化结束后,IOS便通过端口驱动程序在AEP_CONFIG_DCB消息响应中登记的IO请求响应
函数,发送IOP(IO Request Packet)完成物理的读写。典型的IO请求响应函数代码如下:
VOID __cdecl SAMPLE_RequestHandler(IOP* pIop)
{
switch (pIop->IOP_ior.IOR_func)
{
//检查驱动器介质是否存在
case IOR_MEDIA_CHECK_RESET:
//非移动式磁盘始终返回IORS_SUCCESS
pIor->IOR_status = IORS_SUCCESS;
break;
//驱动器读操作
case IOR_READ:
……//读成功则返回IORS_SUCCESS
break;
//驱动器写操作
case IOR_WRITE:
……//写成功则返回IORS_SUCCESS
break;
default:
//处理不支持的命令
pIor->IOR_status =
IORS_INVALID_COMMAND;
break;
}
}
-- pIop->IOP_callback_ptr;
pIop->IOP_callback_ptr->IOP_CB_address(pIop);
}
端口驱动程序的读写操作实际上是以扇区为单位进行的,并不涉及到单字节的读写
zhaoxinghan
2004-04-12
打赏
举报
回复
那是不是我这种初学者无法做到了????那我怎么办啊!!。。。。
我们老板认为这个和串口内容差不多,硬件已经开发好了。。。。
CityHost
2004-04-12
打赏
举报
回复
这是DDK的东西。
好恐怖的。
U4 “U盘不能启动怎么办”
学习了《U盘分区与启动》课程后,在实践中我们可能还会遇到各种问题。本课程收集了一些典型案例,包括: PC不支持U盘启动怎么办? GRUB4DOS启动失败怎么办? 03PE蓝屏不能启动怎么办? Win7PE不支持
USB
3.0怎么办? Win7安装U盘不支持
USB
3.0怎么办? 这样大家以后遇到类似的问题,也能对症下药。
android 如何
读取
u盘中
数据
恢复,U盘
数据
恢复
U盘
数据
恢复本文,小编将和大家好好聊一下U盘
数据
恢复方法,帮助你找回U盘上因删除、格式化、分区打不开、病毒等原因丢失的
数据
。文章比较长,可以点击下面的链接快速查看感兴趣的部分。关于U盘
数据
丢失与恢复U盘便于携带,方便存储各类
数据
,不论是在生活还是工作中,使用U盘存储文件的情况非常多。但是,保存在U盘上的
数据
也会因为各种原因丢失,比如常见的误删除、误格式化、分区打不开提示格式化等。那么,如何从U盘找...
基于FPGA的
USB
接
口
控制器设计(VHDL)(中)
今天给大侠带来基于 FPGA 的
USB
接
口
控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第二篇,中篇,
USB
通信原理、
USB
系统开发以及设计实例。话不多说,上货。 之前有关于 Veriliog HDL 实现的
USB
接
口
控制器设计,这里放上超链接,仅供各位大侠参考。 源码系列:基于 FPGA 的
USB
2.0 设计 导读 2019年9月4日,
USB
-IF终于正式公布
USB
4规范。它引入了Intel此前捐献给
USB
推广组织的Thunderbolt雷电协议规范,双链路...
Unity各种传输方式转串
口
COM端
口
的
数据
操作SerialPort类
2017开工大吉(虽然已经上了好几天班了嘿嘿) 话不多说进入正文,去年总是发文到微博也没几个人看,想来还是CSDN比较专业(老司机云集)。以后就在此混迹了,还望各位大佬多多提携 需求: 先说下用它来干嘛吧,众所周知2016年是VR的元年,头盔各种型号各种配置像当初的智能手机一样如雨后春笋一样出世。当然我不是做头盔硬件,也不是做VR爱啪啪的,我主要是做VR大型交互体验设备的,类似于几年前网吧的
计算机移动存储设备是,移动存储设备使用时的注意事项有哪些?
原标题:移动存储设备使用时的注意事项有哪些?
数据
体积越来越大的今天,普通的闪存盘已经不能容纳下宠大的
数据
身驱。移动硬盘凭借大容量、高速度和易携带等诸多优势。已成为人们
数据
资料互换的重要设备。目前多数移动硬盘均以
USB
作为接
口
,由于其并非像普通的
USB
鼠标、键盘一样,是不一个非标准的
USB
设备,因此,在使用中出现问题的机率也是大的多。很多用户在使用移动硬盘在存储和
读取
数据
时均遇到过各种各样的问题,造...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章