以忧盘为存储介质的mp3播放器设计

技术分类: 通信  微处理器与DSP  消费电子设计  | 2007-11-20
来源:单片机与嵌入式系统应用 | 作者:北京航空航天大学 宋红星 郭兴旺

       2  软件设计

    
  2.1  优盘读写软件的实现

       USB组织定义了海量存储设备类(mass storage class)的规范。这个类规范包括4个独立的子类规范:USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 、USB Mass Storage Class BulkOnly Transport、USB Mass Storage Class ATA Command Block、USB Mass Storage Class UFI Command Specification。其中优盘属于海量存储设备,遵循bulkonly传输协议,子类采用UFI命令集。本设计软件的总体结构如图3所示。其中两条点画线之间的部分为读/写优盘的软件结构。

软件总体结构图

       2.1.1  USB物理层协议的实现

   

  该部分实现S3C44B0X对SL811HS芯片的直接底层数据的读写,包括对SL811HS的初始化及读/写一个字节的函数。限于篇幅,此处只列出对SL811HS芯片的初始化程序:

      /*********************************
        函数名称:SL811_Init
        函数功能:初始化SL811HS芯片
        输入参数:无
        返回值:无
      *********************************/
      void SL811_Init(void){
        //初始化U盘为未插入状态
        bFlags.bits.SLAVE_ONLINE = FALSE;
        bFlags.bits.SLAVE_FOUND = FALSE;
        bFlags.bits.SLAVE_REMOVED = FALSE;
        bFlags.bits.SLAVE_ENUMERATED = FALSE;
        bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
        //允许硬件产生SOF(Start of Frame)
        SL811Write(CtrlReg,0x04);
        DelayMs(100);
        SL811Write(CtrlReg,0x01);
        //设置SOF,1 ms中断
        SL811Write(cDATASet,0xe0);
        //设置为主机工作模式
        SL811Write(cSOFcnt,0xae);
        SL811Write(EP0Status,0x50);
        //地址设为0
        SL811Write(EP0Counter,0);
        //允许数据发送
    
1】【2】【3】【4
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销