linux cpu占用率如何看
238
2022-10-24
基于引言DSP平台的USB接口设计
引言
本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有:
①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;
②通过USB接口,实现PC机对DSP图像采集系统的操作与控制;
③实现图像数据在DSP摄像系统与PC机之间高速的双向传输。
基于以上几点可以看出,本方案最主要的特点是成本低廉且传输速度高。
1 硬件方案选择与设计
1.1 方案选择
由于PDIUSBD12的并行接口时序较慢,只能达到2MB/s。这个速度相对于DSP来说比较低,而且有些地方不是简单地在程序中加入延时就可以调整,所以需要一个时序调整电路来完成它们之间的配合。
1.2 PDIUSBD12芯片
PDIUSBD12只占用微控制器的两个地址资源。也就是说,它只有一根地址线。其中一个地址用来向芯片中写命令,另外一个地址用来向燕片中写数据或者从芯片中读取数据。
PDIUSBD12一共有三组端点:端点0完成控制传输;端点1可以配置成中断传输;端点2是主要的数据传输端点。它有64B的缓冲区,如果加上它的双缓冲机制,就有128B的缓冲区;它可以配置成批量传输模式,或者同步传输模式。
总的来说,PDIUSBD12是一款性能优异,价格相对软低的USB接口芯片。
1.3 时序芯片
图2中,参数th(W-D)是指在WE信号变高(无效)以后,所写的数据将仍然保持有效的时间。这个值最小为3ns,最大为14ns,所以所写的数据在WE信号无效以后还会维持有效,大约3~14ns(实际的延时介于这两个值之间)。
图3是PDIUSBD12所要求的写时序。图中,参量tWDH是与DSP (TMS320C2XX)参量th(W-D)相对应的另外一个参量。这个参量反映了PDIUSBD12要求微控制器在向其中写数据时,所写的数据在WR信号无效之后,要继续保持有效的时间。这个参量最小值为10ns。也就是说,PDIUSBD12要求所写的数据最少要保持有效10ns(在WR无效之后)。
由此可以看出,DSP(TMS320C2XX)的写时序不能可靠地保证满足 PDIUSBD12的要求,而且这个问题无法通过软件加延时的方法来解决,必须通过硬件来处理。经过分析对比,最后决定采用一个很简单但是后来事实证明非常有效的方法来调整它们之间的时序。那就是在DSP(TMS320C2XX)与PDIUSBD12的总线之间加一个双向缓冲器-74LS245。这个芯片可以在它们的时序之间引入一个延时。虽然这个延时并不可靠、但是由于DSP(TMS320C2XX)本身会在WR无效后,继续保持数据有效一段时间(前面已讲过),这要仅仅需要将延时适当延长一点就可以了。74LS245所造成的延时典型值为15ns,最小也为8ns。这样,加上原来DSP写时序的延时,就可以满足PDIUSBD12所要求的写时序了。
另外由于加入74LS245所造成的对其它接口时序的影响,可以通过设置DSP(TMS320C2XX)的WSGR寄存器来消除,所以这个方案是可行的。(事实上,后来制造好的电路也证明了这个方案是完全可行的)
对其余时序上的配合,经过仔细的计算与核对证明,也是完全可行的。在硬件上,哂方案还采用了一片GAL(16V8)来实现对PDIUSBD12芯片的片选,以及实现对它的软件和手动复位。硬件总体框图如图4所示。 2 软件设计
2.1 固件设计
由于采用的是不带MCU内核的USB接口芯片,所以关于USB1.1协议规范的实现都必须靠DSP(TMS320C2XX)控制PDIUSBD12芯片来完成。固件的主要设计任务是:在DSP(TMS320C2XX)的平台上编写程序,以完成 USB1.1规范所要求的标准请求及用户根据产品需要自己定义的请求。
最下层是硬件接口层,完成硬件上PDIUSBD12与DSP(TMS320C2XX)的对接。主要是DSP(TMS320C2XX)向PDIUSBD12中写入数据或者命令,以及从中读取数据。
中间层主要有两个模块,用来完成PDIUSBD12的命令接口和中断处理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP对它的控制。它的基本命令格式是:DSP先向其中的命令地址写入某一条命令,接着从它的数据地址写入或者读出一系列的数据。中断处理子程序是判断中断的产生源,然后跳转到相应的处理子程序。这些子程序不做过多的处理,而仅仅是将命令数据读出然后置标志位,或者是将某些数据送出。
最上层是主循环程序,以及对于USB1.1标准协议请求(这些请求主要是在USB1.1协议规范的第九章中定义的)和用户自定义请求的处理程序。主循环的主要工作是检查标志位。如果标志位被置位,则调用处理子程序,判断是标准请求还是用户自定义请求,然后调用相应的处理程序加以处理,完成请求。
这样分层的好处是:主循环程序在检查标志位以外的时间可以进行其它工作,提高固件的运行效率。
编程过程中,由于涉及了一些严格的接口时序配合问题,所以,整个固件的编写工作全部采用DSP(TMS320C2XX)的汇编语言;用的是CC2000编程开发工具。
2.2 PC机软件的设计
PC机的驱动程序由Philips公司提供。然后,用VC++6.0,通过调用API函数,编写PC的应用程序。这样即可实现PC机对DSP(TMS320C2XX)摄像系统的摄像控制以及图像的传输。
在设计过程中必须注意的问题是:由于USB接口是主-从方式的接口,它的一切传输过程都必须通过主机向外设发送请求后才可以开始,所以在使用ReadFile()、WriteFile()读写数据之前,必须先通过 DeviceIOControl()向图像采集系统发送请求。
3 结果及分析
测试结果表明,该系统运行可靠(已将程序烧写进片内Flash中),各项性能指标都已达到了最初的设计要求,能够很好地实现图像数据在PC机与DSP之间高速的双向传输。并且,这套USB接口方案只采用了1片PDIUSBD12接口芯片和1片 74LS245,器件成本只有20元左右,这个成本是比较低的。同时,由于采用了DSP作为控制器,所以它的通信速率可以很高;因此,可以说本方案达到了低成本,高速率的USB1.1接口设计要求。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~