USB接口(Universal Serial Bus)是一种通用的高速串行接口。它最首要的特点是它的高速传输特性。USB1.1理论速度极限能够到达12Mb/s,USB2.0可到达 480Mb/s。这样,它能够很优点理大数据量的数据在嵌入式体系与PC机之间的互传问题;一起,它支撑热插拔,而且最多一起支撑127个外设,十分合适嵌入式体系的运用。
本次规划是在一个已有的DSP图画收集嵌入式体系的基础上,为它配接上一个USB1.1的接口,以到达DSP图画收集体系高速地将图画数据回传到PC机中的意图。规划的要求首要有:
①在原有渠道供应的接口基础上,参加一个低本钱、高速度的USB接口;
②经过USB接口,完结PC机对DSP图画收集体系的操作与操控;
③完结图画数据在DSP摄像体系与PC机之间高速的双向传输。
依据以上几点能够看出,本计划最首要的特点是本钱低价且传输速度高。
1 硬件计划挑选与规划
1.1 计划挑选
关于依据DSP渠道的USB接口规划,经过归纳考虑了几种计划之后决议,选用一个不带MCU内核的USB接口芯片PDIUSBD12(本钱十分低,一片PDIUSBD12的价格仅为20元),再加上简略的外围电路和时序调整电路。
这种芯片只是完结USB底层的数据链路级交流,并供应给本地微操控器一个并行的接口,可是它并不完结协议层的作业。协议层的作业需求对微操控器编程,操控USB接口芯片来完结USB协议。所以,开发难度相对来说大一些,要做的编程作业也多一点。可是这套计划的本钱十分低,而且因为直接用DSP作为微操控器,没有原单片机的瓶颈约束,所以能够完结很高的数据传输速率。该体系的原理框图如图1所示。
因为PDIUSBD12的并行接口时序较慢,只能到达2MB/s。这个速度相关于DSP来说比较低,而且有些当地不是简略地在程序中参加延时就能够调整,所以需求一个时序调整电路来完结它们之间的合作。
1.2 PDIUSBD12芯片
PDIUSBD12芯片是由Philips公司推出的一种USB1.1接口芯片。它能够作业在5V或许3.3V的作业电压下;具有8位数据总线,且有彻底自治的DMA传输操作。它还具有可操控的软件衔接(SoftConnect)功用,能够确保在微操控器牢靠完结初始化之后再衔接上USB总线。别的,它?
有一个LED驱动脚,能够外接LED来监测USB的枚举进程和数据传输进程。当USB接口枚举完结,而且成功装备今后,LED将会一向点亮;而在枚举进程以及USB数据通讯进程中,LED只是有节奏地闪耀。
PDIUSBD12只占用微操控器的两个地址资源。也就是说,它只要一根地址线。其间一个地址用来向芯片中写指令,别的一个地址用来向燕片中写数据或许从芯片中读取数据。
PDIUSBD12一共有三组端点:端点0完结操控传输;端点1能够装备成中止传输;端点2是首要的数据传输端点。它有64B的缓冲区,假如加上它的双缓冲机制,就有128B的缓冲区;它能够装备成批量传输形式,或许同步传输形式。
总的来说,PDIUSBD12是一款功能优异,价格相对软低的USB接口芯片。
1.3 时序芯片
为了降低本钱、简化电路,本计划不运用DMA传输方法,而以TI公司的TMS320C2XX作为微操控器(运用20MHz晶振)。它的并口速度十分高,远远高于PDIUSBD12所要求的最高约束2MB/s。此处是硬件规划最要害的当地。
经过具体的时序剖析发现,大部分问题能够经过在DSP固件规划的参加延时,或许设置DSP的WSGR寄存器来处理。可是有一个问题,有必要在硬件上加以处理。图2是DSP(TMS320C2XX)的写时序。
图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规范所要求的规范恳求及用户依据产品需求自己界说的恳求。
为了不影响程序的履行功率,本计划选用中止方法完结固件的编写;一起,为了确保程序的模块化及杰出的可移植性,在规划中选用分层结构进行固件的编写,如图5所示。
最基层是硬件接口层,完结硬件上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)摄像体系的摄像操控以及图画的传输。
首要运用的API函数是DeviceIOControl()、ReadFile()、 WriteFile()。其间DeviceIOControl()用于PC(主机)向DSP图画收集体系发送恳求;ReadFile()和 WriteFile()别离用于从图画收集体系中读出数据以及向图画收集体系中写入数据。
在规划进程中有必要留意的问题是:因为USB接口是主-从方法的接口,它的全部传输进程都有必要经过主机向外设发送恳求后才能够开端,所以在运用ReadFile()、WriteFile()读写数据之前,有必要先经过 DeviceIOControl()向图画收集体系发送恳求。
3 成果及剖析
规划计划完结后,在最终的测验傍边,经过USB1.1接口,PC机与DSP体系的通讯速率最高到达了580KB/s(4.6Mb/s)以上。这个速率指的是有用数据传输速率,不包括数据传输联络的头信息部分,所以这个速率仍是比较令人满意的。现在,传输一张幅面为352×288像素的黑白图片(巨细为99KB),耗时不到1s。假如完结动态的拍照及显现,那么,整个体系每秒能够拍照并完结显现 3~4幅不经紧缩的幅画为352×288像素巨细的黑白图片。
测验成果表明,该体系运转牢靠(已将程序烧写进片内Flash中),各项功能指标都已到达了开始的规划要求,能够很好地完结图画数据在PC机与DSP之间高速的双向传输。而且,这套USB接口计划只选用了1片PDIUSBD12接口芯片和1片 74LS245,器材本钱只要20元左右,这个本钱是比较低的。一起,因为选用了DSP作为操控器,所以它的通讯速率能够很高;因而,能够说本计划到达了低本钱,高速率的USB1.1接口规划要求。