kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:3038回复:28

这个贴我一定要搞明白,到底USB是怎么通信的。

楼主#
更多 发布于:2003-09-20 08:31
我现在用到的EZUSB,AN2131芯片。固件不用我写。我主要就是做高级语言方面的。但是十多天了,我都搞不明白要与USB通信的基本步骤,那位高人请指点我一下。

先说一下USB要做的事,就是要跟USB通信之后,将固件下载到USB,然后再从USB发送或接收数据,就是这样,(调用EZUSB.sys)

比如:
1,用createfil(\\\\.\\EZUSB-0,......)取得设备句柄。
2,......
3......
4......

最新喜欢:

abei11abei11
cherry
驱动小牛
驱动小牛
  • 注册日期2001-11-28
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-12 18:31
lvwj
说的步骤很对,虽然你要开发的只是客户端程序,但还是要和谐古建的沟通要传递数据的格式。
kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-11 15:19
请问一个新问题。
EZUSB将一个固件下载到IC里面,用EZUSB.sys可不可以做到。
再用driveriocontrol(...,IOCTL_Ezusb_ANCHOR_DOWNLOAD,)
是不是就可以将固件程序下载到IC呀。
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-11 14:16
我们的delphi版本开发基本搞定
对写与 VC对usb读写没有什么两样
你拿一个VC版的读写程序
Function SetupDiCreateDeviceInfoList( ClassGuid:PGUID; hwndParent:HWND):HWND; stdcall; External \'SetupApi.DLL\';
function  SetupDiGetClassDevsA( ClassGuid:PGUID; Enumerator:PCHAR ; hwndParent:HWND; Flags:DWORD):HWND; stdcall;External \'SetupApi.DLL\';

利用这两个东东可以搞定设备
然后读写设备即可
驱网是你们的,也是我们的,归根结底还是大家的!
linshuhua
驱动牛犊
驱动牛犊
  • 注册日期2003-03-12
  • 最后登录2003-12-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-10 17:25
其实作dll很简单,就是把一些open,write,read等方法包装输出给再上层exe使用。(1分为2)
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-10-10 17:08
惨了,今天老板问我做得怎么样了。我说delphi开发USB程序很难,他说驱动也不用你写,就单单用delphi对USB进行读写都搞不定,都二个月了。唉。。。。。。郁闷......

那位好心的大哥,帮帮忙吧。

有没有用EZUSB用的DLL,我要在delphi上来调用。
就是可以通过这个dll来对ezusb进行读写的。

或者那位朋友用C将你程序中所用到的对USB进行读写的程序写成DLL,然后再发给我吧。这里的几题有100多分。全部给你。

拜托。

 


帮不了你。 怎么做成dll偶都不会呀。 怎么能就把读写的程序写成dll呢?

kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-10 16:35
惨了,今天老板问我做得怎么样了。我说delphi开发USB程序很难,他说驱动也不用你写,就单单用delphi对USB进行读写都搞不定,都二个月了。唉。。。。。。郁闷......

那位好心的大哥,帮帮忙吧。

有没有用EZUSB用的DLL,我要在delphi上来调用。
就是可以通过这个dll来对ezusb进行读写的。

或者那位朋友用C将你程序中所用到的对USB进行读写的程序写成DLL,然后再发给我吧。这里的几题有100多分。全部给你。

拜托。

usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-10 14:29
liuyun08@sina.com
你好
其实好多资料我都是从非礼普那里得到的
你想要什么直接说吧
驱网是你们的,也是我们的,归根结底还是大家的!
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-10 14:17
我用的是d12的片子,没有用ezusb的,不好意思,其实usb很简单的
只要你查查这个网站以前的资料应该能够成功的
驱网是你们的,也是我们的,归根结底还是大家的!
win86
驱动牛犊
驱动牛犊
  • 注册日期2003-08-26
  • 最后登录2007-08-31
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-09 09:04
usb_anywhere兄:能否给我一份资料?我想做8051+PDIUSBD12,RS232->USB,无从下手!各位老兄如有做过这方面的能否给点资料,让我少走弯路!谢谢! :)
 liuyun08@sina.com
win86
jansbin
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-10-08 15:07
kimlon兄,你的EZUSB的C源程序可不可以给我一份

邮箱:ytzb@netease.com

谢谢!
kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-10-08 13:06
usb_anywhere兄,能不能说说经验呀,

请问你一下,你有没有用EZUSB用的DLL,我要在delphi上来调用。

就是可以通过这个dll来对ezusb进行读写的。

kimlon@163.com
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-10-08 12:34
努力吧,没什么难得,我的已经搞定了
驱网是你们的,也是我们的,归根结底还是大家的!
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2003-09-23 17:16
[quote][quote]能不能先跟我说说与USB通信在高级语言上具体那些步骤呀?

也好让我有一个思路,到底那些先那些后。要用到那些。谢谢


这可难为我了,我也才学不久,能说到是能说一点,但我怕说错了误导你呀。

仅供参考:
做usb应该有3个方面,1是固件程序,2是驱动程序,3就是应用程序。你说的高级语言应该包括2和3吧。

驱动程序最好自己看书,或找别人问问在这里根本不能说明白(其实我也不是很懂 哈哈)。 和usb通信主要还是ioctl的问题。最好找个例子看看,再自己做一下。 我用driverstudio,所以说不出什么名堂来。

应用程序我是用vc写的,还是ioctl的问题(要想实现通信,好象就是它的事)。 这里的ioctl一定要和驱动里的相应,他们的ordinal都是从0x800开始的,之前的可不能用。

哈哈,不知道说了什么,能有帮助就看看吧。 有空的时候学学c,很有用的。   :D

 [/quote]

知音阿,老兄和我一样,我觉得这种处境挺尴尬,你觉得呢? [/quote]

 :D 多多交流,共同进步。 这就好了。
Always!978
驱动小牛
驱动小牛
  • 注册日期2002-05-09
  • 最后登录2005-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-09-23 15:53
[quote]能不能先跟我说说与USB通信在高级语言上具体那些步骤呀?

也好让我有一个思路,到底那些先那些后。要用到那些。谢谢


这可难为我了,我也才学不久,能说到是能说一点,但我怕说错了误导你呀。

仅供参考:
做usb应该有3个方面,1是固件程序,2是驱动程序,3就是应用程序。你说的高级语言应该包括2和3吧。

驱动程序最好自己看书,或找别人问问在这里根本不能说明白(其实我也不是很懂 哈哈)。 和usb通信主要还是ioctl的问题。最好找个例子看看,再自己做一下。 我用driverstudio,所以说不出什么名堂来。

应用程序我是用vc写的,还是ioctl的问题(要想实现通信,好象就是它的事)。 这里的ioctl一定要和驱动里的相应,他们的ordinal都是从0x800开始的,之前的可不能用。

哈哈,不知道说了什么,能有帮助就看看吧。 有空的时候学学c,很有用的。   :D

 [/quote]

知音阿,老兄和我一样,我觉得这种处境挺尴尬,你觉得呢?
Tomorrow Never Die
kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-09-23 13:10
谢谢andy_ee兄,请发一份给我参考参考。kimlon@163.com
andy_ee
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2004-05-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-09-23 12:58
呵呵,我们是同路的,虽然我要做驱动,但是也只是在标准例子上改改。互相鼓励鼓励吧:)
其实高级语言的特点就是friendly,建议你好好研究一下driverstudio里的ezusb例子,对于理解驱动的框架很有用。虽然是c++的,但是看懂程序的结构和DeviceControl()等几个重点函数应该是不成问题。
你可以先试着用DeviceIoControl()实现取设备描述符的功能。
我的驱动还在艰难的编造中,不过应用程序部分已经实现了读取u盘的各种描述符的功能(使用ds带的ezusb驱动),如果需要可以发给你参考。

我要编的只是应用程序,而驱动我是直接调用CY的EZUSB.SYS,但是我看了他带的VB例程,因为不懂VB,所以有些也看不懂。

是不是要对USB进行读写只用到deviceIOcontrol就个就行了,因为他的IO_CTL有读作写的参数。是不是呀??
能不能写一条例子给我,对USB进行读或写的一条函数呀。
jeric
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2003-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-09-22 10:19
用WinDriver吧
kimlon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2010-03-07
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-09-22 08:19
我要编的只是应用程序,而驱动我是直接调用CY的EZUSB.SYS,但是我看了他带的VB例程,因为不懂VB,所以有些也看不懂。

是不是要对USB进行读写只用到deviceIOcontrol就个就行了,因为他的IO_CTL有读作写的参数。是不是呀??
能不能写一条例子给我,对USB进行读或写的一条函数呀。
liuiang
驱动牛犊
驱动牛犊
  • 注册日期2002-11-21
  • 最后登录2007-11-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-09-20 14:10
我建议你看一下别人提供的驱动的资料,,,,
你的意思无非就是写一个基于ddk的应用程序,,,
那么首先你要看一下io_ctl中各个码子怎么调用,,
需要什么参数,,实现什么功能..先不用考虑驱动,,
把精力放在ddk的应用上....
被上帝遗忘的天使......
上一页
游客

返回顶部