DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1508|回复: 0
打印 上一主题 下一主题

[待整理] 基于Blackfin 533 SPORTs口的USB主从接口设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 23:58:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
采用SPI接口协议实现了SPORTs口与CH376的通信。描述了一种基于USB主从接口芯片CH376与Blackfin533的通信设计方案,包括SPORTs口的接口配置、USB模块的硬件设计、驱动程序、CH376芯片的驱动程序等。实现了DSP对USB存储设备的读写访问,以及计算机与DSP的通信,实验表明,整个设计可实现对U盘的快速读写,并方便与PC机进行通信。
       
       
        1设计原理模块
       
        主要实现DSP与计算机的通信及数据的存储。基于DSP的USB主从双向通信设计方案,通过ADSP BF533 SPORTs模拟SPI口,完成ADSP与CH376的通信,实现DSP与PC机、DSP与U盘的双向通信以及两种方式的自由切换,图1为系统总体框图。
           
         
       
        2芯片介绍
       
        2.1 CH376芯片
          CH376是南京沁恒公司生产的一种文件管理控制芯片。CH376支持USB设备方式和USB主机方式,且内置了USB通讯协议的基本固件、处理Mass—Storage海量存储设备的专用通讯协议固件、SD卡的通讯接口固件、FAT16和FAT32以及FAT12文件系统的管理固件,支持常用的USB存储设备和SD卡。
       
        CH376支持3种通讯接口:8位并口、SPI接口或异步串口。单片机/DSP/MCU/MPU等控制器可通过上述通讯接口控制CH376芯片,存取U盘和SD卡中的文件或与计算机通讯。
       
        2.2 ADSP—BF533芯片
          ADSP—BF533处理器是Blackfin系列产品之一,是为满足嵌入式音频、视频和通信应用的计算要求和低功耗条件而设计的新型16位嵌入式处理器。其基于由ADI和Intel公司联合开发的微信号架构(MicroSignalArchitecture,MSA),将一个32位RISC型指令集和双16位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性相组合。ADSP—BF533处理器具有丰富的外设资源,包括一个UART口、一个SPI口、两个串行口(SPORTs)和PF口等。
           
         
         
       
        Blackfin533有两个相同的同步串口SPORT0和SPORT1.这两个串口支持各种串行数据通信协议。图2是SPORT的简化框图。将要发送的数据,从内部寄存器写入SPORT、的存储器映射寄存器SPORTx_TX中。根据选择,此数据可由硬件进行压扩后自动传送至移位寄存器,也可不执行硬件压扩。移位寄存器的位从SPORT的DT引脚移出,最高位或最低位在前均可,并与TCLK引脚的时钟同步。SPORT的接收部分从DR接收数据,并与串行时钟同步。接收一个完整字后,数据展开的同时自动传送到SPORT的存储器映射寄存器SPORTx_TX中,该寄存器可被处理器访问。
       
        3硬件设计
       
        CH376总是从SPI时钟SCK的上升沿输入数据,而允许输出是从SCK的下降沿输出数据,数据位顺序是高位在前,记满8位1Byte.DSP按SPI输出方式发出1 Byte数据,CH376将SPI片选SCS有效后收到的首个字节当作命令码,后续字节当做数据。写操作时,DSP向CH376发出1 Byte的待写数据,等待SPI接口空闲后,DSP继续发出若干个字节的待写数据,CH376依次接受,直到DSP禁止SPI片选;读操作时,DSP从CH376接收1 Byte数据,等待SPI接口空闲后,DSP继续从CH376接收若干个字节的数据,直到DSP禁止SPI片选。图3是SPI接口的逻辑时序图,前一个发出命令12H并写入数据34H,后一个是发出命令28H并读出数据78H.
           
         
         
       
        为实现DSP的USB主从双向通信设计方案,现将DSP的SPORTs接口模拟SPI接口并与支持SPI接口通信模式的设备进行通信。主模式下SPI接口需要4个信号:数据输入(MISO),数据输出(MOSI),时钟(SCK)和片选(/SPISS)。这4个信号其中有3个和SPORTs接口相对应:(1)MOSI对应SPORTs口的传输引脚(DTxPRI)。(2)MISO对应SPORTs口的接受引脚(DRxPRI)。(3)SCK对应SPORTs口的时钟引脚(TSCLKx/RSCLKx)。
        SPI接口中未与SPORTs接口对应的引脚信号就是片选信号。片选信号(/SPISS)在SPI接口中用作时钟SCK的选通。作为一个SPI从设备,只有片选/SPISS被拉低,响应才在时钟信号SCK的边沿发生,一旦设备被使能通信开始,SPORTs主接口就会产生一个持续的时钟。要将SPORTs口模拟SPI口,正确的时序和片选/SPISS信号是重点。TFS被配置成低时,同一周期内数据被放置在SPORTs的发送引脚DTxPRI上,且在数据的传输过程中TFS信号始终被拉低,直到新的数据开始传输,这恰好与SPI接口的/SPISS信号一致。反之作为从模式下,也一样。因此用SPORTs接口的同步时序信号模拟/SPISS片选信号即可满足要求。硬件连接如图4所示。
           
         
         
       
        系统硬件电路如图5所示,系统将CH376配置为串行通信方式,使用SPORT1口,DSP主模式时,数据流通过Blackfin533的SPORT1口,经上述配置方式模拟SPI通信方式与CH376模块SPI口进行通信,在经过外部USB端口时CH376以USB—HOST的方式来访问U盘,反之,DSP从模式时,PC机通过USB端口,CH376以USB—SLAVE的方式与Blackfin533进行通信。
           
         
         
       
        CH376芯片的SCS引脚由DSP的SPORT口帧同步引脚TFS和RFS驱动,SCK由DSP得SPORT发送和接受时钟输出引脚TSCLK和RSCLK驱动,SDI引脚由DSP得SPORT数据输出引脚DTxPRI驱动,SDO引脚则连接到DSP的SPORT数据输入引脚DRxPRI.
       
        CH376芯片的配置,电容C2用于内部电源节点退耦从而降低USB传输过程中的EMI,晶体X1是振荡电路,用于向CH376提供系统时钟信号,P1是USB端口,电阻R1用于限制输出给外部USB设备的电流,C1主要用于减少在USB设备刚插入时的电源电压纹波。关于Blackfin533的外围电路配置可参考ADI官方设计手册。
       
        4软件设计
       
        CH376S对U盘的读写分为扇区模式和字节模式两种。扇区模式以扇区为单位,对U盘文件进行读写,其读写速度快,但通常需要额外的缓冲区。字节模式以字节为单位对U盘文件进行读写,读写速度慢,通常用作小数据量的读写,但使用较为方便。
           
         
         
       
        系统软件流程如图6所示,DSP判断用户选择写U盘操作或上位机操作。当选择读取U盘操作时,首先初始化CH376芯片,通过循环不断检测U盘是否连接就绪,U盘就绪后,创建文件名,并将数据写入文件,同时关闭文件,进入到开始。当选择上位机操作,通过USB数据线,将系统连入PC机,首先初始化CH376芯片,DSP判断上位机软件是否发出操作命令,若发出的是命令控制字,则执行相应的操作,并继续判断上位机是否发出命令字;若发出的命令是交出控制权,则系统恢复本地控制,并进入到开始。
       
        5实验测试
       
        整个系统设计的测试主要分为U盘测试和上位机测试。
       
        选择USB从接口模式,测试工具为USB设备CH372或CH375调试工具,由于在上位机程序中定义#define uREAD_DATA 0x80,所以在调试工具中,设置端口下传数据为接收数据命令即80.实验结果表明,在端点上传中成功接收0~3F,共64个数据。
       
        6结束语
       
        设计从硬件和软件两方面对基于ADSP-Blackfin533 SPORTs口的USB主从接口设计进行了详细论述,其具有传输速度快、结构简单、操作方便及传输数据量大等优点。经测试,性能稳定可靠,可广泛应用于各种实际场合。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 07:35 , 耗时 0.088117 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表