1 引言
在钢丝绳探伤检测中,要实现检测传感器到存储器的数据交换。USB移动存储器具有携带方便、操作快捷、成本低廉等优点。随着其技术的发展及广泛应用,如何实现使用单片机控制来完成移动存储这一过程成为了工控领域研究的热点。
2 USB功能模块简介
2.1模块概述
USB[1]是—种查询(Polling)总线,由主控制器启动所有的数据传输。USB上所挂连的外设通过由主机调度的(Host-Scheduled)和基于令牌的(Token-Based)协议来共享USB带宽。目前,绝大多数Host功能角色被集成在各种类型的PC机(或以上层次机器)上。各种各样的基于USB 的移动设备,包括USB 移动存储器、带USB 接口的数码相机等都集成USB Slave功能角色。这样,就导致这些作为USB Slave 的USB 接口的数字设备无法应用于嵌入式系统中。解决这一问题的根本办法就是在需要使用USB 设备的嵌入式系统中集成USB Host 功能模块,使之具有与USB Slave设备进行数据传输的能力。而MemMaster[2]模块就具有这种功能。
MemMaster 作为 USB 系统中的 Host 设备,带有一个 Root HUB,可供用户接入作为 Slave 的USB 移动存储器。该 MemMaster 模块遵守 USB 1.1 协议规范,支持所有基于 USB 的移动存储器,支持 FAT12、FAT16 文件系统。MemMaster 模块可以模块的方式,通过总线集成到用户的数据采集等系统中,以提供用户将获得的数据通过该模块以文件的形式保存在移动存储器中,以便需要时在 PC 机中进行处理。
MemMaster在集成到用户系统中后,表现为用户系统的一个外部双端口RAM。用户系统通过向该外部RAM的指定区域写入命令和相应的数据,来控制MemMaster模块的操作,并且从指定区域读出响应和相应的数据来获得MemMaster模块提供的服务。通过这样的方式,双方实现协议交互。
2.2 硬件配置
MemMaster支持 USB 1.1 标准,最大写入速率达100KB/s(与测试环境有关),输入电压 5V,工作电流 100mA(不包括USB 移动存储器)。INTR 引脚作为从 RAM 到单片机的中断信号,BUSYR 作为 RAM 的工作信号,SEMR 作为同步信号,CER 作为片选信号,其他引脚在此不做详述。
2.3 接口使用
MemMaster 通过双端口 RAM,直接通过总线与用户的单片机系统相连。因此,就用户单片机系统而言,MemMaster 表现为一个外置的 RAM,而该 RAM 中的部分区域不能使用、部分区域被用作协议命令和数据的交互,剩余的部分可以由用户自行控制使用。在双端口 RAM 中,区域分配如下:
0x0000-0xF8F区域已经被系统占用;
0x5F80-0x5FBF共64字节用于存放系统命令;
0x5FC0-0x5FFF共64字节用于存放系统响应;
0x6000-0xDFFF共32768字节用于存放数据部分;
0xE000-0xFFFD为用户系统可使用区域;
0xFFFE-0xFFFF两个字节被用作系统协议交互指示,用户不可用于数据存放。
用户系统与 MemMaster 系统的协议交互命令包括2种类型:Command 和 Response。Command 由用户系统发往 MemMaster 系统,而 Response 为相反方向,由 MemMaster 发往用户系统。具体的实施在第四节中有介绍。