新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于USB接口的ARM9微控制器外部存储器下载工具— MOLY-DO

基于USB接口的ARM9微控制器外部存储器下载工具— MOLY-DO

—— ARM9 MCU External Memory Download Tool Based on USB Interface — MOLY-DO
作者:深圳懋科科技有限公司 林鸿飞时间:2011-02-18来源:电子产品世界收藏
        USB Device 子系统

  1. USB 设备控制器

本文引用地址:http://www.eepw.com.cn/article/116955.htm

  USB 是一种 4 线总线,它支持一个主机同时与多个外设(最多可达 127 个)之间的通信。主机控制器通过基于令牌的协议给相应的设备分配 USB 带宽。USB 总线支持设备的热插拨和动态配置。所有传输都由主机控制器来启动。主机定义 1ms 帧的数据传输。每帧包含 SoF 标记和与设备端点之间传输的数据处理。每个设备最多包含有 16 个逻辑或 32 个物理端点。定义了 4 种类型的端点传输方式。控制传输主要用于在设备连接时对设备进行枚举以及其他因设备而已的特定操作。中断传输用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。批量传输用于对延迟要求宽松,大量数据的可靠传输,如U 盘等。同步传输用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。

  设备控制器使能与 USB 主机控制器之间的 12 Mb/s 的数据传输。它由寄存器接口、串行接口引擎、端点缓冲存储器和 DMA 控制器组成。串行接口引擎对 USB 数据流进行译码,并将数据写入相应的端点缓冲存储器。结束后的 USB 传输或错误条件的状态由状态寄存器来指示,产生中断(如果能中断使能)。使能时,DMA 控制器将控制端点缓冲区和 USB RAM 之间的数据传输。

   下位机 USB

   采用 USB Full Speed 协议。逻辑端口 0 用于初始化 USB Device,在 USB 设备描述符中,我们采用自定义设备。选用逻辑端口 1、2 用于数据传输;其中逻辑端口 1 发送命令字,逻辑端口 2 用于数据传输。

  使用 DMA 模式传输,有关 DMA 模式传输,详情请见 LPC32x0 用户手册。

  通过 USB 能够对 SDRAM、SRAM、NANDFlash、NORFlash、SPIFlash 等存储器外设进行操作,下面将对 NANDFlash 操作进行简单介绍。

  1.NANDFlash 操作

   有两个 NAND Flash 控制器,一个用于 multi level NAND Flash 设备而另外一个用于 single level NAND Flash 设备。

  在 下位机中,完全实现 SLC、MLC NAND 设备驱动程序,以供 application() 程序所调用。例如使用nand_write_sector() 函数烧写 kickstart.bin 至 NANDFlash 中。

  目前,下位机系统已支持三星 K9F2808、K9F5608等小页和 K9F1G08、K9F2G08等大页以及 ST NAND128-A、NAND256-A、NAND512-A、NAND01G-A等多种 NANDFlash。

  同时,下位机还支持 SST 39VF6401B 等 NORFlash 以及 MX25L1605D 等 SPIFlash。

  2.USB Device 驱动程序

  开发工具:

  ○ DDK或WDK、BusHound 5.0、DriverStudio_3.0 和 VC++ 6.0

  原理:

  实现 USB Device自定义设备类型驱动,开辟两个逻辑端点分别用于指令和数据的传输。API 如下:Usb_Link_Data_Write、Usb_Link_Data_Read、Usb_Link_CMD_Write、Usb_Link_CMD_Read。

  生成:

  MOLY_DO_LIB.dll、MOLY_DO_LIB.lib、usb_link.inf、usb_link.sys



评论


相关推荐

技术专区

关闭