【精品】USB通信协议.doc

【精品】USB通信协议.doc

ID:49406959

大小:198.50 KB

页数:19页

时间:2020-03-01

【精品】USB通信协议.doc_第1页
【精品】USB通信协议.doc_第2页
【精品】USB通信协议.doc_第3页
【精品】USB通信协议.doc_第4页
【精品】USB通信协议.doc_第5页
资源描述:

《【精品】USB通信协议.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、做了一•段时间的USB方面的开发,虽然是现成的方案,我们只需要搞清楚它的架构,再添加我们的代码就行了。空闲之余,研究了一下USB通信过程,也把82A851R部分的汇编代码重新用C语言描述了一篇(仅是描述,不代表能真正运行)。发现汇编代码条理性太在太差了,不好读。一把C语言的代码一写,马上觉得清楚很多。废话少说,开始贴图,贴代码。4rtfO.TTTtzMnW.TWUMw>ifoarmxti■8tf"".rm■饨4rtfO.TTTtzMnW.TWUMW■8nvoM4tf>ifoarmxti■14m.trwu»»Tm«nTm«nCB4)MIIMICM1

2、M11WC»€SM>Mt11F»^«tvOIf”55«•・・—・•.VOIWMy。kw*CMJMMWcucumwtrwAltb-MlI—••亠11nwgem”rit0IMRCHitl9190■■■V*ri>oMMCttHfl9Qgsm”l-{-=4H-f药・U_1H-■4"bf-J+-Erni^QinvOPfflltf================下面是将一些函数重新用C语言描述了一・遍===========#defineBYTEunsignedchar//*****★*舟*舟舟舟舟*************舟*舟舟*************舟

3、***水**//基本定义函数//*******舟*舟*舟舟**比**********舟*舟舟**比**********舟*****比BYTEFlFO_RD_CHECK(BYTEnum){BYTEFIFO_FLAG=0;UCC

4、=num;//选择Endpoint,0,1,2,3,4,MlSC&=0xf8;//低3位置0MISCI=0X00;//TX位置0;Delay_3us();MISC

5、=0X01;//SetRequestDelay_28us();if(M-SCQO0X40T0)F-FO—FLAGHifv'READYif(M-sceo0x80lr

6、0)F-FO—FLAGeoHoxfov'LenoDe-eciedM-scQOHoxfe八/o-earREQreiurnF-FO—FLAG八F-FO—WR—CHECK(BYTEnum)BYTEF-FolFLAG"07、可4妄如刃Ready之乏匡妄煤刃LenO亠SKS班存芳少器总scoo-"num<、廉«EndpoinioL-2W4M-scf0xf8v、M;3som-sctoxon/、txwm5?De-ay—3us()八M-sc-H0X01V/S2-RequesiDe-ay—28us()八if(M-scco0x40T0)F-FO—FLAGnlfv、R

7、EADYif(M-scoo0x80lr0)F-FO—FLAGQOHoxfov'LenoDeieciedM-scguoxfev/c-earREQreiurnF-FO—FLAG八Read—F-FO(BYTE*Fifo——AdRBYTEFio—sizpBYTE*buffer)M-sc-H0x0二、/SeiRequesiforuHOHAFifo—size=++)亠buffer三HFio—Addro一三歹F_FOaDe_ayl28us()_if(M-scco0x40;0)breakV/N2-ReadyM-sc>H0X027、治焜TX0憲De-ay—3us(

8、)八M-scQO=0XFEV/c-earRequesidWme—F一FOBYTE*Fio—AdRBYTESendLesmBYTE*buffer)in二H0八M-SCTOXOwseiRequesiforuHO八icsendLenih=++)亠Fio—AddroTbuHer三V、讀m沱廉巨鏗蛊富知盘目旨Fio-£De_ay—28us()八if(MISC&0x40==0)break;//NotReady}MlSCJ0X02;//改变TX位状态Delay_3us();MlSC&=0XFE;//ClearRequestBOOLCheck_Real_Cmd(

9、){BYTEbRag_Real_Cmd=FALSE;if(MISC&0X20!=0)bHag_Real_Cmd=TRUE;if(MlSC&0X80!=0)bFag_Real_Cmd=TRUE;returnbRag_Real_Cmd;voidSend_hand(){BOOLlsRealCmd,Status_Flag;while(1){lsRealCmd=Check_Real_Cmd();if(lsRealCmd==TRUE)return;else{Status_Flag=FlFO_WR_CHECK(0);if(Status_Flag&0x0f!=0

10、)//Fifo_Readybreak;elsecontinue;}}MISC

11、=0x01;//SetRequsetMISCJ0X02;/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。