以下是网学网为您推荐的电气工程与自动化类别-USB2.0接口和DSP构成的高速数据采集系统的分析和设计,希望本篇文章对您学习有所帮助。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
四 USB软件设计 USB接口的开发和设计中有相当大的工作量是关于USB软件的设计。USB软件设计包括三方面的工作:固件(firmware)设计,驱动程序设计和主机端应用程序的设计。 (一)固件设计 固件设计的目的就是使CY7C68013在USB上达到最大的传输速率。外围设备,例如打印机、扫描仪、外部的海量存储器和数码相机等都可以使用CY7C68013。在USB上传输数据,这些设备的MCU要忙于处理许多设备数据和图像处理等任务。CY7C68013的固件可设计为完全的中断驱动。 图4-1 固件程序结构 如图4-1所示后台中断服务程序(ISR)和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现。CY7C68013的批量输出端点可以使用循环的数据缓冲区,当CY7C68013从USB收到一个数据包,那么就对MCU产生一个中断请求,MCU立即响应中断。在ISR中固件将数据包从CY7C68013内部缓冲区移到循环数据缓冲区,并随即清零CY7C68013的内部缓冲区,以使其能够接受新的数据包。MCU可以继续完成当前的前台任务,然后返回到主循环,检查循环缓冲区内是否有新的数据并开始其他的前台任务。这种结构中主循环不关心数据是来自USB串口还是并口,它只检查循环缓冲区内需要处理的新数据。这使得主循环程序专注于数据的处理,而ISR能够以最大可能的速度进行数据的传输。当MCU处理前台任务时,USB的传输可在后台进行。这就确保了最佳传输速率和更好的软件结构,同时简化了编程和调试。 为了不影响程序的执行效率,同时也为了保证程序的模块化及良好的可移植性,在设计中采用分层结构进行固件的编写,其固件编程结构如图4-2所示。 图4-2 固件编程结构 最下层是硬件接口层,完成硬件上CY7C68013与DSP(TMS320C6203B)的对接。主要是DSP向CY7C68013中写入数据或者命令,以及从中读取数据。 中间层主要有两个模块,用来完成CY7C68013的命令接口和中断处理子程序。命令接口是指按照CY7C68013的命令格式,完成DSP对它的控制。它的基本命令格式是:DSP先向其中的命令地址写入某一条命令,接着从它的数据地址写入或者读出一系列的数据。中断处理子程序是判断中断的产生源,然后跳转到相应的处理子程序。这些子程序不做过多的处理,而仅仅是将命令数据读出然后置标志位,或者是将某些数据送出。 最上层是主循环程序,以及对于USB2.0标准协议请求和用户自定义请求的处理程序。主循环的主要工作是检查标志位。如果标志位被置位,则调用处理子程序,判断是标准请求还是用户自定义请求,然后调用相应的处理程序加以处理,完成请求。 这样分层的好处是:主循环程序在检查标志位以外的时间可以进行其它工作,提高固件的运行效率。 设备固件firmware主要完成两个方面的工作:控制A/D的采样和通过CY7C68013与主机通信。微处理器控制A/D采样的工作比较简单,主要包括读采样值,存储数据至FIFO等。基于USB的数据采集系统可采用两种传输方式:控制传输和批量传输。控制传输实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的设备驱动程序对设备的各种控制,而批量传输将采集数据从设备传送到主机。CY7C68013的工作原理可以简单地描述为:当CY7C68013检测到主机启动的某一传输请求时,就通过中断方式将此请求通知微处理器。微处理器通过访问CY7C68013的状态寄存器和数据寄存器获得与此次传输有关的各种参数,并根据具体的传输参数,对其控制寄存器和数据寄存器进行相应的操作,以满足主机的传输要求。固件程序流程图如图4-5所示。 五 系统工作过程 上电后,ADS5422一直工作,采样产生的数据是否存储到IDT72V2113中,由TMS320C6203B的DX0引脚状态来决定。TMS320C6203B进行初始化,外部扩展总线的XCE3设置为同步FIFO读操作模式。DMA通道0配置为每次传输1帧,每帧 1024个半字,同步事件设置为外部中断4,触发极性为高电平,初始化定时器0,定时间隔为22ms。当外部同步信号到来时,启动定时器0,手动启动DMA通道0,同时设置DX0为低电平。ADS5422采样产生的数据开始写入IDT72V2113,当定时器0中断到来时,设置DX0为高电平,关闭IDT72V2113的写使能,采样数据不再存储到IDT72V2113内。随着数据不断写入IDT72V2113,当其内部的数据量大于1023个半字时,IDT72V2113的将空标志信号(PAE)由低电平变为高电平,使得TMS320C6203B的外部中断信号有效,从而触发DMA传输,TMS320C6203B的DMA通道0通过外部扩展总线(XB)读取1024个半字的数据,存储于内部RAM中,传输结束后向TMS320C6203B发送中断,通知TMS320C6203B处理数据。待其处理完数据后,通过USB2.0接口发送处理结果,然后重新启动DMA通道0,进行下一次DMA传输。如此循环,直到处理完所有数据。当下一个外部同步信号到来时,进行下一轮数据采集处理过程。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |