您的位置 首页 厂商

初涉USB,初学者USB入门总结4,USB通讯设备快速开发

经过上述三节的描述,对USB应该已经有了初步的认识,其中具体的协议(比如各个描述符的定义什么的)这里不做描述了,网上一搜一大堆。下面

经过上述三节的描绘,对USB应该现已有了开端的知道,其间详细的协议(比方各个描绘符的界说什么的)这儿不做描绘了,网上一搜一大堆。下面我以一个实例来详细阐明快速开发USB设备的过程,
一,设定规划
凡事预则立,不预则费,所以开发一个小小的USB也要略微规划一下,比方幻想要完结什么功用,传输的数据协议什么的。
二,固件编程,
固件编程说白了便是写单片机程序,要完结USB一般能够运用带USB功用的单片机,再个便是加一个专用的USB芯片。这儿以内部集成USB功用单片机为例
固件的USB开发一般便是先使能USB,使能USB时钟,使能各个USB操控中止(挂起,复位,规范恳求,写入,写出等)然后USB就能正常作业了,这时分不如不写其他东西,电脑就能够检测出有USB设备刺进了,详细的反响是在设备管理器里会发现闪了一下阐明发现了新的USB设备,接下来电脑会发送各种规范恳求,由于这个时分你的程序还没写完好,对这些恳求不会有反响,所以电脑不可能识别出是什么东西。
接下来的作业便是在中止中呼应电脑传来的各种规范恳求。当必要的恳求都被正确的呼应的话,这个时分假如电脑里有正确的驱动,电脑就会去加载这个驱动,假如是第一次刺进这个设备,还要把驱动装置一下,然后设备就进入正常作业了,电脑会显现“这个USB现已成功装置并能够使用了”。
这儿捎带着说一下端点(endpoint)的概念,一般一个USB设备都会有数个端点,端点便是一个数据缓冲操控区(FIFO),每个缓冲区相当于有一个出口一个进口的池子,数据经过进口进入到池子,然后你再在固件里去用这些数据。固件往电脑写数据,也是把数据先放到池子里,然后翻开出口,就能够干自己的作业,不必一个个的把数据发出了,池子的出口主动把数据流出。
一般的端口0是用来做规范恳求呼使用的,也便是在枚举阶段用到。我一般把端口1界说为出(OUT),端口2界说为入(IN)(留意,这个OUT和IN是相对与电脑的,也便是说OUT是数据从电脑出去到设备,IN是设备的数据进入电脑)。这些界说也是在规范恳求中去告知电脑的。
接下来就能够完结与电脑的通讯了,你把数据放到相应的池子里就行了。下面就能够自己界说通讯的数据格式了。比方操控开发板上的8个LED的第一个灯亮,那么上位机发送数据0x55,0x01,0x80,0xaa。咱们就能够规则第一个数据是启示位,遇到这个标明开端一次操控指令,0x01表明这个是操控灯亮暗的指令,0x80表明LED的操控数据,最高位是1,表明第一个亮,其他位是0,表明都暗。最终一个数据是0xaa,表明这是完毕。其实所谓的数据协议不过便是自己界说的一套让通讯两边都能正确理解对方的数据格式。电脑比较是电脑,什么都要规则好了,它才干正确的作业。
二驱动程序
关于快速开发用Driverstudio就能够了,我先装了VC6.0,然后装了DDK2600,最终装了Driverstudio,网上有说这个次序不容易出问题,我也没时间去试其他次序会出怎么样的特效,权且不论他是否在忽悠,先这样按了没害处。
我一开端比较新潮的装了DriverStudio3.2版别,然后按网上的办法破解了,生成了驱动是能翻开设备,可是便是传输不了数据,搞了两天仍是不可,后来想到是不是3.2版别太新了?或许破解没完好?然后卸载了3.2装了3.1,公然能够了,真不知道是Compuware做了四肢成心玩我仍是自己愚笨弄错了哪里。
驱动生成的过程能够在百度,Google里搜“10分钟完结一个USB驱动程序”能出来一

大堆,要是你嫌查找费事就直接点这个算了http://www.4oa.com/Article/html/6/33/482/2005/17317.html按那个过程操作就能够了,依据导游操作完了今后,VC就会出来一个驱动程序框架了,假如你在这个时分编译一下就可你会碰到许多问题,我的操作是这样的。首先把DDK的库编译一下,操作网上有,网上有云:
1.发动Visual C++。
2.挑选菜单File|Open Workspace。翻开坐落DriverStudio/DriverWorks/Source/vdwlibs.dsw的作业空间文件。
3.挑选菜单Build|Batch Build,在弹出的对话框中挑选你想编译的库。
4.点击Build编译你挑选的库。
然后在VC的Driverstudio的工具条点击“change environment variables”,在第一个选型卡把DDK的途径选上,我的是C:\WINDDK\2600。然后点OK,接下来点DriverStudio工具条的编译,就能够了,假如你仍是碰到问题,你能够把VC显现的过错复制到百度。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/234122.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部