中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 关于DOS下的访问USB控制器的问题,请高手帮忙,谢谢
作者:
标题: 关于DOS下的访问USB控制器的问题,请高手帮忙,谢谢 上一主题 | 下一主题
dellweiwei
初级用户




积分 111
发帖 2
注册 2003-7-10
状态 离线
『楼 主』:  关于DOS下的访问USB控制器的问题,请高手帮忙,谢谢

我是大学计算机系的大四学生,半年以后要找工作了,大家知道这个年头工作难找。

最后的暑假在一家公司找了个没有钱的实习,当然想留下来的,这次接触特别底层的东西,特别是这次遇到了一个非常困难的技术难题,让我很担忧这件事情是否能做好,下面就让我把这个问题简单描述一下,如果描述里面有什么低级问题,请指出,因为第一次做那么底层的程序。

我加入的TEAM是做一个解决方案的,里面主要的程序都是在计算机刚刚引导还没有进操作系统的情况下运行的(有点类似硬盘保护卡的开机程序),这个几乎在裸机上运行的程序中有一个功能就是要访问一个公司自己研制开发的USB外设硬件。
我做的模块就围绕这个了,这个USB硬件在WINDOWS下的驱动早就完成了,但是在裸机汇编环境下形式就完全不一样了,让我非常没有头绪。

后来我在贵站上看到这样的程序URL http://newdos.yginfo.net/dosware/usbdrv.zip
这个程序能让DOS支持USB的设备,程序不大。

后来我看了点关于USB的资料,加上对程序的理解,得出了以下的结论:
1,汇编或DOS如果要访问USB接口是要通过I/0地址寻址对USB控制器芯片进行操作的,比如初始化,发送数据,其实都是对USB控制器的I/0操作。
2,如果要我的汇编应用程序对这个硬件达到一定目的的操作,首先要有一个USB控制器驱动,它包装了对控制器底层的操作。然后在控制器驱动的基础上,我再针对我的USB设备开发一个调用控制器驱动的设备驱动。
如下图所示

汇编应用程序《---》我的USB设备的驱动模块《---》USB控制器驱动《--》USB控制器《-》USB外设


再看看那个贵站下载的DUSE程序,虽然它是FOR DOS,但是它的功能和我要做的那个模块差不多的,特别是USB控制器驱动,我发现它是DUSE程序的底层核心,各种不同设备的驱动程序只是在调用它,但我对它一无所知;如果在它的基础上能对USB接口直接发送接收数据了,怎么跟我的USB外设对话我是很熟悉指令的。

不知道我表达的是否清楚,我的最终目的就是用汇编在裸机下访问USB接口并发送数据控制一个特定的公司开发的USB设备(这个设备的控制指令我清楚)。
请高手指点怎样做通用的USB控制器驱动模块(我看那个DUSE就是在各种机器上都能用的),最好有相关的代码可以直接参考,工作不等人啊,为了我的工作。谢谢高手了,我在上海,如果这件事情作好了,我一定请吃饭。

我的EMAIL:dellweiwei@hotmail.com

2003-7-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dellweiwei
初级用户




积分 111
发帖 2
注册 2003-7-10
状态 离线
『第 2 楼』:  

hehe,我今天去了东华大学计算机博士生实验室,在那里找到了答案,看来这里还是技术有限啊。

2003-7-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hunome
银牌会员

颓废青年


积分 2265
发帖 721
注册 2003-5-12
状态 离线
『第 3 楼』:  

禅宗会不会感兴趣呢?

2003-7-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
禅宗
元老会员

CEO


积分 1019
发帖 300
注册 2002-10-20
来自 广东
状态 离线
『第 4 楼』:  

是啊,对这方面有兴趣:)不知楼主能否贴出来?



禅宗——大道至简,知易行难!
网站: http://www.dgzens.com

QQ: 11951692  微信:  dgzens
E-MAIL: warmrose@21cn.com
2003-7-16 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (11951692)  编辑帖子  回复  引用回复
libaoli
新手上路





积分 6
发帖 5
注册 2006-9-7
状态 离线
『第 5 楼』:  

楼主贴出来答案,让晚辈也来学习一下!!

2006-9-8 05:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyl910
中级用户





积分 282
发帖 126
注册 2006-5-17
状态 离线
『第 6 楼』:  

关注!


我现在对USB很感兴趣

USB的驱动分为三层:
主机控制器驱动
设备类驱动
应用驱动

Windows已经带了常见的设备类驱动
主机控制器驱动由主板驱动提供
写驱动时只需根据该设备特点编写应用驱动


而在DOS下,这三层驱动都得自己写

现在正被intel网站下下来的UHCI规范弄得头晕



人类存在的目的就是试图理解人类为何存在
2006-9-8 05:56
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『第 7 楼』:  


在 网 上 早 有 USB 驱 动 范 例 , 如 Georg Phtthast 的 DOSUHCI , 不 过 是 用 PowerBASIC 编 写 , 很 多 人 都 看 不 懂 , 又 要 收 费 , 所 以 比 较 乏 人 问 津 。

mailbox@georgpotthast.de



我 的 網 站 - http://optimizr.dyndns.org
2006-9-8 22:39
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
kinglin
初级用户





积分 62
发帖 28
注册 2007-7-3
状态 离线
『第 8 楼』:  

路过

2007-7-3 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
CrispH
初级用户





积分 108
发帖 49
注册 2007-3-9
状态 离线
『第 9 楼』:  

好像比较麻烦...
我倒是有很多在 DOS 可以动作的 SOURCE CODE. 不过不容易整理出来的.

我觉得,要些 DOS 的关于 USB 的东西.
需要把 OHCI, UHCI 和 EHCI 的规格的软件层面弄明白.

2007-7-4 21:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
p8031
新手上路





积分 2
发帖 1
注册 2010-12-16
状态 离线
『第 10 楼』:  

学习学习!

2010-12-23 14:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: