📄 基于usb2_0的高速数据通信接口设计 - 21ic中国电子网.htm
字号:
<P>初始化完成后,打开中断,之后固件程序开始枚举USB设备,直至端点0上接收到通信建立包时为止<SUP>[5]</SUP>。一旦收到通信建立包,将重复执行下面的任务分配过程:</P>
<P>(1)调用TD_Poll()函数,以完成用户指定的任务。</P>
<P>(2)判断是否有USB设备请求?如果有,则调用ParseControlTransfer()函数进行相应的处理;如果没有,则继续向下执行。</P>
<P>(3)检测USB总线是否空闲。如果空闲,则调用TD_Suspend()函数,交由用户处理。在TD_Suspend返回真值后,8051处于空闲状态。这时,只有USB总线活动或芯片Wakeup管脚活动,才能将8051重新激活。</P>
<P>(4)8051被激活后,固件程序将首先调用TD_Resume()函数,以使8051从空闲状态中恢复出来,然后再处理用户指令。</P>
<P>3.2 设备驱动程序设计</P>
<P>
开发USB设备驱动程序,可采用Numege公司的开发包DriverWorks和Mitmsoft公司的</P>
<P>Windows 2000 DDK.并以VC++6 0作为辅助开发环境。</P>
<P>CY7C68013的设备驱动程序有两种:一种用来在设备接人时从主机下载困件到RAM中,称为固件下载驱动程序(ezloader.sys);另一种是在设备重新枚举后加载的设备驱动程序(ezusb.sys),应用软件通过该设备驱动程序与CY7C68013通信。固件的程序代码既可以通过外部E<SUP>2</SUP>PROM下载,也可通过主机下载。本文以从主机下载为例进行说明,若选择主机下载方式,则此时外接E<SUP>2</SUP>PROM中存放的是固件下载的PID/VID,且第1个字节是0xC0H,系统通过该PID/VID找到固件下载驱动程序(ezloader.sys),将相应的固件代码下载到FX2的RAM中。</P>
<P>
在将固件下载到RAM中后,系统清除内存中的固件下载驱动程序.并进行重新枚举,让C8051固件控制CY7C68013。此时,系统获得由C8051固件提供的PID/VID(与E<SUP>2</SUP>PROM中的不同),认为有新的USB设备接入,并据此加载相应的设备驱动程序。</P>
<P>3.3 应用软件设计</P>
<P align=left>
应用软件满足系统与用户的接口,它通过通用驱动程序完成对外设的控制和通信,如开启/关闭USB设备、检测USB设备、设置USB数据管道等。它由动态链接库和应用程序两部分组成:动态链接库负责与USB设备驱动程序通信,响应应用程序的各种请求;应用程序则则以定时查询的方式将TMS320C6203B后的数据读入计算机事先开辟的大容量内存缓冲区,
同时从缓冲区读出数据实时显示, 处理结束后再将内存缓冲区的数据存盘以及向TMS320C6203B发送控制命令。</P>
<P> 动态链接库对设备驱动程序的访问都是通过I/O
Control调用来实现。首先调用Win32函数CreatFile()得到设备驱动程序的句柄,然后调用Win32函数DeviceIocontrol
(),通过得到的句柄把IOCTL和相关的输入输出缓冲区提交给驱动程序。当应用软件退出时,用</P>
<P>CloseHandle()函数关闭设备。</P>
<P>
在编写应用程序时,先建立与外没的连接,然后实施数据的传输。在系统启动信号处理算法后,为保证不丢失数据,用户程序应建立一个新的工作线程专门获取外没传来的数据。程序中主要用到两个API函数CreateFile()和DeviceIoControl()。CreatFile()取得设备句柄后,DeviceIoControl()根据该句柄完成数据传输。,</P>
<P> 部分程序代码如下:</P>
<P>hDevice=CreateFile(“\\\.\\EZUSB_0”,</P>
<P>GENERIC_READ| GENERIC_WRITE,</P>
<P>FILE_SHARP_WRITE,NULL,OPEN_EXISTING,</P>
<P>FILE_ATTRIBUTE_NORAL,NULL);</P>
<P>If(hDevice= =INVALID_HANDLE_VALUE)</P>
<P>{
Application->MessageBoxA(“创建设备失败,请确认设备是否连接上!”,NULL,IDOK);}</P>
<P>else{DeviceControl(hDevice,IOCTL_ EZUSB_BULK_WRITE,</P>
<P>
&blkctl,sizeof(BULK_TRANSFER_CONTROL),</P>
<P>
&inBUFFER,</P>
<P>
sizeof(inBuffer),</P>
<P>
&nBytes,</P>
<P>
NULL);</P>
<P>…}</P>
<P align=left><B>4 </B><B>结论</B></P>
<P align=left>采用两种方法对本系统的数据传输速度进行测试:</P>
<P align=left>(1) DSP 将ADC 采集的语音信号进行处理后,将其频率、相位等数据上传给计算机进行分析处理;</P>
<P align=left>(2)计算机将控制指令传给DSP。结果显示, 两种方法的传输速度均可达到64Mb/s以上,
完全可以满足实时数据处理的需要。</P>
<P align=left>该接口电路在本人开发的基于DSP的语音信号采集与处理系统中, 实现了数据高速传输的任务,
工作性能良好。</P>
<P>本文作者创新点:传统的信号处理系统中数据传输接口在低速时常采用标准串行口或并行口,
高速时一般采用PCI总线接口。但标准串行口或并行口数据传输速率较低; PCI总线尽管数据传输速率可以达到1Gbps ,
但是硬件设计和驱动开发难度较大,USB总线具有快速、双向、低价并可热插拨等特性,而且支持各种PC与外设之间的连接,本文将USB2.0接口芯片CY7C68013用于信号处理系统中,处理后的数据经USB
向计算机传输,速度得到了大大提高, 并且系统可靠性也达到了理想效果。本文所述的方法具有一定的普遍性, 可用于多种微处理扩展USB
接口的方案中。</P>
<P align=left><B>参考文献</B><B>:</B></P>
<P>[1] 徐庆元,张天序,钟胜. 基于USB
总线的高速视频采集系统设计[J].微计算机信息,2006,22(10-1):247-249.
</P>
<P align=left>[2] Cypress Semiconductor Corporation. EZ2 USB
Technical Reference Manual[R]. 2002.</P>
<P align=left>[3] Cypress Semiconductor Corporation. EZ2 USB Series
FX2 Getting Started[R]. 2002.</P>
<P>[4] 李爽,张鸣瑞. 一种带USB接口的便携式语音采集卡的设计[J].计算机应用研究,2001,18
(5):146-148.</P>
<P align=left>[5] 刘少峰,韦克平. USB
软件系统的开发[J].计算机应用研究,2002,19(3):102-104.</P>
<SCRIPT event=onload for=window type=text/javascript>ImgLoad(document.getElementById("BodyLabel"));</SCRIPT>
</DIV><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width="97%">
<TBODY>
<TR>
<TD align=right>
<TABLE>
<TBODY>
<TR>
<TD>阅读:<SPAN id=HitsLabel>130</SPAN> 次<BR>录入:<SPAN
id=MemberNameLabel><A
href="http://www.21ic.com/news/memberProfile.aspx?id=22"
target=_blank>manan</A></SPAN><BR><BR></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right>【 <A
href="http://www.21ic.com/news/mail.aspx?ID=26565"
target=_blank>推荐</A> 】 【 <A href="javascript:doPrint()">打印</A>
】 </TD></TR></TBODY></TABLE>
<TABLE width="97%" align=center>
<TBODY>
<TR>
<TD>上一篇:<A
href="http://www.21ic.com/news/n26542c70.aspx">USB闪存盘驱动器与PIC微控制器的接口设计</A><BR>下一篇:<A
href="http://www.21ic.com/news/n26729c70.aspx">带全速USB接口的PICl8F4550应用设计</A>
</TD></TR></TBODY></TABLE></TD>
<TD class=mr></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=tl></TD>
<TD class=tm><A style="CURSOR: hand"
href="http://www.21ic.com/news/search.aspx?Where=Nkey&Keyword=接口 DSP 开发 数据传输"><SPAN
class=tt>相关新闻</SPAN></A> </TD>
<TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=ml></TD>
<TD class=mm></TD>
<TD class=mr></TD></TR></TBODY></TABLE></DIV></TD>
<TD vAlign=top align=right width=170>
<DIV class=lframe>
<TABLE cellSpacing=0 cellPadding=0 width="95%">
<TBODY>
<TR>
<TD class=tl></TD>
<TD class=tm><SPAN class=tt>查找</SPAN> </TD>
<TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="95%">
<TBODY>
<TR>
<TD class=ml></TD>
<TD class=mm vAlign=top>
<FORM style="DISPLAY: inline" name=frmSearch action=search.aspx
method=get>
<DIV align=center><BR><INPUT class=inputbg name=keyword><BR><SELECT
name=where> <OPTION value=title selected>标题</OPTION> <OPTION
value=content>内容</OPTION> <OPTION value=writer>作者</OPTION></SELECT> <INPUT type=submit value=搜索><BR></DIV></FORM><BR>21IC特别推荐信息: <BR><!--Adforward Begin:-->
<SCRIPT language=JavaScript1.1
src="C:\Documents and Settings\admin\My Documents\基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files\adfshow(2).htm"></SCRIPT>
<!--Adforward End-->
<SCRIPT
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/news.js"></SCRIPT>
</TD>
<TD class=mr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="95%">
<TBODY>
<TR>
<TD class=bl></TD>
<TD class=bm> </TD>
<TD class=br></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<TABLE id=footer cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR style="LINE-HEIGHT: 130%" align=middle>
<TD height=60><BR>
<P align=center><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12><A
href="http://www.21ic.com/news/show.aspx?id=1&cid=42"><FONT
color=#000000> 本站介绍</FONT></A>| <FONT color=#003333><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12><A
href="http://21ic.com/news/show.aspx?id=2&cid=42" target=_blank><FONT
color=#000000> 合作联络</FONT></A></FONT><FONT color=#000000>| </FONT><FONT
color=#003333><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12><A
href="http://www.21ic.com/news/show.aspx?id=3&cid=42"
target=_blank><FONT color=#000000> 欢迎投稿</FONT></A>| <IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12><A
href="http://www.21ic.com/news/show.aspx?id=4&cid=42"><FONT
color=#000000> 广告业务</FONT></A></FONT><FONT color=#000000>| <IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12><A
href="http://www.21ic.com/news/sitemap.aspx">网站地图</A><FONT
color=#000000>|</FONT> <FONT color=#000000><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12></FONT><A
onclick="javascript:window.external.addFavorite('http://www.21ic.com','21IC 中国电子网')"
href="http://www.21ic.com/news/n26565c70.aspx#">加入收藏</A><FONT
color=#000000>|</FONT> <FONT color=#000000><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12></FONT><A
href="http://www.21ic.com/news/search.aspx">站内搜索</A><FONT
color=#000000>|</FONT> <FONT color=#000000><IMG height=13
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/p_gc.gif" width=12></FONT><A
href="mailto:info@21ic.com">联系我们</A>
<HR align=center width="80%" color=#0066ff SIZE=1>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=600 align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%" colSpan=2><FONT
color=blue>ICP许可证号:</FONT><FONT color=red>[京 041110]</FONT><BR><A
href="http://www.21ic.com/news/show.aspx?id=2&cid=42"
target=_blank>总部:北京市海淀区中关村南大街2号数码大厦A座32层3215室</A>
<BR>联系电话:010-51626290 传真: 010-51626279 <IMG
src="基于USB2_0的高速数据通信接口设计 - 21IC中国电子网.files/email.gif"><A
href="mailto:info@21ic.com">info@21ic.com</A> <BR>Better
View:800*600 Best View:1024x768 为了本系统能够更好的为您服务,请使用IE4.0或以上版本浏览器
<BR><BR>除特别声明外的站内文章均为作者高论,并不代表21IC之观点<BR>版权所有 谢绝转载(C)21IC中国电子网
2000-2007</TD></TR></TBODY></TABLE>
<DIV class=menuskin id=popmenu
onmouseover="clearhidemenu();highlightmenu(event,'on')"
style="Z-INDEX: 100"
onmouseout="highlightmenu(event,'off');dynamichide(event)"></DIV>
<SCRIPT language=javascript1.2 type=text/javascript>
jsdone=true;
</SCRIPT>
</FONT></TD></TR></TBODY></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -