阅读:2188回复:11
USB往单片机发送数据!!
手头有motorola jb8芯片,需要通过USB往里面灌程序,因为USB与串口传输有很大不同所以想请教一下问题:
现在大脑一片糊涂: 我把我的思路说一下吧,往高手指点: 1,首先需要编写驱动程序(这个驱动应该是所谓的USB枚举吧??) 2,当设备插上后,根据线路电压变化,主机发现有新设备,然后用先前的驱动对设备进行枚举,得到设备的信息,分配地址。 3,接下来,主机就可以识别设备,然后可以用高端程序通过USB总线往单片机写数据了。 希望好人能指点,这些天头都大死了 qq:61673408 mail:xuqing119@sina.com |
|
沙发#
发布于:2003-11-25 10:29
大致上是这样,但是最好一步一步写程序,容易调试。
|
|
板凳#
发布于:2003-11-25 12:01
手头有motorola jb8芯片,需要通过USB往里面灌程序,因为USB与串口传输有很大不同所以想请教一下问题: |
|
|
地板#
发布于:2003-11-25 13:55
谢谢两位的指点,现在思路清楚了,固件端的代码已经搞定了,但是涉及到具体的枚举和驱动,还有点不清楚,想再请教一下。
1,关于枚举:flycat0101的回复中提到“发现新设备时,是windows系统中的usbd进行枚举”,你的意思就是我插上,然后我开始枚举,而且枚举过程我也很清楚,但是涉及到代码就不行了,不知道你有没有代码,可以让我参考一下!!! 2,关于驱动:我看了很多有关驱动的资料和代码,但是总是很模糊:网上说用ddk编写,用windrive编写,但是我看到的驱动都是.inf格式的,里面的驱动都是大同小异的,不知道这里面有什么关系?是不是驱动也只要想.inf那样写就可以了吖?请指教,谢谢! 希望大家能多多指教!!! |
|
地下室#
发布于:2003-11-25 15:34
谢谢两位的指点,现在思路清楚了,固件端的代码已经搞定了,但是涉及到具体的枚举和驱动,还有点不清楚,想再请教一下。 |
|
|
5楼#
发布于:2003-11-25 15:39
代码很多,这里有,网上也有。
inf只是安装驱动的引导文件,真正的驱动是.sys\\.vxd\\.drv.... |
|
6楼#
发布于:2003-11-25 18:51
flycat0101的意思我明白了,是不是枚举是系统帮我们完成的,不需要我们去考虑,那就ok了。
1.那我想再问一下,枚举后系统是不是会在已有的驱动中根据枚举的各种描述符进行搜索,如果没有匹配的那么需要我们再载入自己编写的驱动程序呢?但是我们的驱动是要根据枚举来写的,那么这些枚举中的数据怎么得来呢? 2.还有,我在网上看到,一般USB驱动都是大同小异的,好象我看了很多人提供的驱动中.inf文件里面的东西好象都是差不多的,.SYS也差不多,那是不是把类似的拿来稍做修改就行了呢? 因为我所要做的很简单,只需通过usb口往芯片里灌数据就行了。 |
|
7楼#
发布于:2003-11-25 19:19
顺便再问一句,既然枚举是系统帮我们完成的,那为什么一些朋友的枚举还是需要自己编程来完成呢?比如此论坛“请教USB编程(急!!!) ”帖子中的网友用程序来获取设备的各种信息和描述符呢?
|
|
8楼#
发布于:2003-11-26 08:30
用户被禁言,该主题自动屏蔽! |
|
9楼#
发布于:2003-11-26 12:34
flycat0101的意思我明白了,是不是枚举是系统帮我们完成的,不需要我们去考虑,那就ok了。 对于第一个问题,系统会根据你描述符中的PID、VID与已经注册的驱动的PID、VID进行比对,比对成功就载入相应的驱动,如果不能找到的话,那就不能工作了。驱动是根据功能来写的,怎么会根据枚举呢? 2,inf文件的确是差不多的。你不应该看sys文件,而是要看产生这个sys文件的源码,这里除了架构差不多外,其余就要根据你设备的功能进行编写了。注意,你可以找一个类似的源码进行修改,然后产生一个sys文件,就像编译、连接一个.c文件最后产生一个.exe文件一样! |
|
|
10楼#
发布于:2003-11-26 13:13
那如果比对不成功,然后就要装载自己编写的驱动了??
听说用windriver编写驱动很傻瓜化,不需要任何的代码编写,Driver Wizard会产生文件,然后编译产生.exe驱动程序文件,然后再用VC,CB来编译这个文件就会产生驱动了。这样是不是很适合不太了解驱动的人用呢??? |
|
11楼#
发布于:2003-11-26 14:32
那如果比对不成功,然后就要装载自己编写的驱动了?? 在你的驱动中也是要提供PID、VID,如果不成功,也不能载入你的驱动程序。windriver提供了基本的框架,你只要在合适的地方将你的设备功能代码添加就可以了,编译连接后就能产生sys文件。相对于DDk来说,要简单很多。 |
|
|