新闻中心

EEPW首页>嵌入式系统>设计应用> 基于AT89C52和USB接口的数据采集系统设计

基于AT89C52和USB接口的数据采集系统设计

作者: 时间:2011-12-16 来源:网络 收藏

固件程序将FX2配置为异步Slave FIFl0模式,总线宽度8位,在4个端点中,EP4和:EP8未被使用,EP2和EP6的配置如表1所示。由于采用自动输入/输出模式,主机和单片机通过旁路FX2的CPU直接连接,所有数据被直接通过FIFO管道提交,不需固件程序干预。在FX2的slave FIF0模式下,FIFOADR[1:0]引脚作为地址线选择某个端点,SLCS相当于片选信号,SLwR(写)与单片机的wR引脚相连,SLRD(读)和SLOE(输出使能)与单片机的RD引脚相连。单片机通过访问地址为0x00的外部存储器的方式就可以实现对EP2的访问,同理可访问EP6端点。

单片机通过FX2的3个标志引脚(FALGA,FLAGB,FLAGC)来全面掌握FX2的各端点FIFO的状况。FLAGA定义为输入端点EP6的满标志,当输入数据满时该引脚为低电平;FLAGB被定义为输出端点EP2的空标志,当主机传来的数据被读空时该引脚为低电平;FLAGC定义为当EP2端点整个FIF0中的字节数大于等于1时为低电平。假设当前主机没有传送命令,则FLAGC为高电平,当主机发送命令后,EP2的字节数大于等于1,则FLAGC变为低电平。这样在FALGC引脚上产生了一个下降沿,将此引脚与单片机的INTO引脚相连,则当主机发送命令后单片机会触发INT0中断,在INTO的中断处理程序中单片机读取并执行传来的命令。

2 系统软件设计
2.1 驱动程序
在EZ—USB FX2开发包中,提供有通用的驱动程序包,对该程序包稍加修改就可生成一个具有下载固件并完成设备重枚举功能的设备驱动程序。文献对驱动程序的开发步骤有详细的记述,这里采用的就是这个通用驱动程序(GPD)。
2.2 主机应用程序
主机应用程序主要实现向设备发送命令数据包,接收设备传送的数据并进行显示,主机应用程序通过通用驱动程序来完成对设备的控制和通信。应用程序采用VC6.O编写,与设备通信时,首先通过调用win32函数CreateFile()来取得访问设备驱动程序的句柄。该函数的语句实例如下:


用户得到设备句柄后,就可以使用win32函数DevicelontroI()来向设备提交相应的IOCTL控制码,进行读写和控制操作,完成相应操作后应用程序通过Win32函数CloseHandle()关闭设备句柄结束1次操作。以下是部分操作的代码实例:



评论


相关推荐

技术专区

关闭