相关服务

  • 《现代电子技术》2007年第6期摘录:2007年第6期总第245统的

如发现有乱码,请点击下面链接浏览原文
正文摘录:

2007年第6期总第245统的中心控制单元,采用的是Altera公司的Stratix系列芯片EPl$308956(:7;FLASI-{芯片选用的是SAMSIJNG公司的K9。K4G08UOMNANDFLASH芯片。2.2ISPl581芯片介绍ISPl581是一种价格低、功能强的IJSB接口器件,他符合IJSB2.O规范,ISPl581与微处理器的通信是通过一个高速的通用并行接口来实现的。内部保留有DMA接口,可进行240Mb/s的高速数据传输。ISF’1581有两种总线结构配置:通用处理器工作模式和断开总线工作模式。本系统中采用的是断开总线工作模式,微处理器采用Philips公司的P89C58型单片机,他完成对ISPl581的控制。这里使用ISPl581的DMA传输功能,DMA接口部分由FPGA完成。电路连接如图2所示。3系统程序设计图2电路连接图3.1固件程序设计固件程序即固化在器件内部的程序。单片机完成对LISB接口芯片的控制,FPGA完成DMA传输的接口设计,并将缓存的数据送入ISPl581。这两部分都属于固件程序。3.1.1单片机程序单片机程序工作流程是:初始化微处理器,初始化并配置ISPl581的寄存器,进入查询中断等待状态,主机发出的命令以中断形式触发单片机后,单片机读取ISF’1581中断源寄存器,查明中断原因,再进入相应的处理子程序,对ISPl581进行再配置或启动传输。本系统中,单片机具体完成两部分工作:首先是负责完成LISB总线枚举过程,以使得主机识别并连接设备,再次是根据主机命令,配置ISPl581的DMA寄存器并启动传输。流程如图3所示。3.1.2FPGA程序ISPl581提供几种不同的DMA传输模式,可以通过配置DMA寄存器进行选择。本设计选用的是GDMA主机方式,由ISPl581产生读写时序,DREQ由FPGA驱动,ISPl581根据主机命令,且DREQ有效后,启动DACK,D10w或DIOR信号,开始读写。FPGA这边将从固态盘中读回的数据存在FIF0中,根据DMA的控制信号,一旦IJSB启动传输,便将数据送到16根DMA总线上,送人主机。此种DMA传输模式最高传输速率可达128Mb/s。读写时序关系如图4所示:DREO”DACK…DIOW’’(write)DATA[150】图3单片机程序流程图图4读写时序关系图3.2主机端软件设计PC机端的软件包括ISt’1581的设备驱动程序和一个基于windows2000的应用程序界面。3.2.1设备驱动程序本设计中,用VC。’6.0和DriverStudio2.7编写了设备驱动程序。LJSB的软件体系结构其实是由多层构成的,操作系统已为用户提供了LISB[).sYS等总线驱动程序,他们就已经完成了I.ISB设备的识别过程和LJSB协议所要求的大部分操作。设备驱动程序负责创建正确的URB包,总线驱动程序负责调度总线时间,将URB转换成IRP一级级传递下去,最终IRP被分解成多个事务,通过I_ISB总线发送给LJSB控制器芯片。所编写的驱动程序所要完成的工作是:发送厂商请求命令,发送DMA读写命令并建立相应端点的读写通道。驱动程序调用的主要例程如图5所示。3.2.2应用程序在驱动程序编写完成后,编写一个基于windows2000操作系统的MFC:应用程序界面。这样更直观便于人机交互。应用程序所做的主要工作是使用winAPI函数与驱动程序进行通信,如图6所示。控制命令通过39

阅读此文(图):   点击此处在线翻阅