基于Blackfin 533 SPORTs口的USB主从接口设计
2013-10-17吴子贤王加加
孙 昊,吴子贤,王加加
(西安电子科技大学电子工程学院,陕西西安 710071)
1 设计原理
模块主要实现DSP与计算机的通信及数据的存储。基于DSP的USB主从双向通信设计方案,通过ADSP BF533 SPORTs模拟 SPI口,完成 ADSP与CH376的通信,实现DSP与PC机、DSP与U盘的双向通信以及两种方式的自由切换,图1为系统总体框图。
图1 系统总体框图
2 芯片介绍
2.1 CH376芯片
CH376[1]是南京沁恒公司生产的一种文件管理控制芯片。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[2-3]处理器是 Blackfin 系列产品之一,是为满足嵌入式音频、视频和通信应用的计算要求和低功耗条件而设计的新型16位嵌入式处理器。其基于由ADI和Intel公司联合开发的微信号架构(MicroSignalArchitecture,MSA),将一个 32 位 RISC 型指令集和双16位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性相组合。ADSP-BF533处理器具有丰富的外设资源,包括一个UART口、一个SPI口、两个串行口(SPORTs)和PF口等。
Blackfin533有两个相同的同步串口SPORT0和SP0RT1。这两个串口支持各种串行数据通信协议。图2是SPORT的简化框图。将要发送的数据,从内部寄存器写入SPORT的存储器映射寄存器SPORTx_TX中。根据选择,此数据可由硬件进行压扩后自动传送至移位寄存器,也可不执行硬件压扩。移位寄存器的位从SPORT的DT引脚移出,最高位或最低位在前均可,并与TCLK引脚的时钟同步。SPORT的接收部分从DR接收数据,并与串行时钟同步。接收一个完整字后,数据展开的同时自动传送到SPORT的存储器映射寄存器SPORTx_TX中,该寄存器可被处理器访问。
图2 SPORT接口简化框图
3 硬件设计
CH376总是从SPI时钟SCK的上升沿输入数据,而允许输出是从SCK的下降沿输出数据,数据位顺序是高位在前,记满8位1 Byte。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。
图3 SPI接口逻辑时序图
为实现DSP的USB主从双向通信设计方案[4],现将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所示。
图4 SPORT/SPI硬件连接
系统硬件电路如图5所示,系统将CH376配置为串行通信方式,使用SPORT1口,DSP主模式时,数据流通过Blackfin533的SPORT1口,经上述配置方式模拟SPI通信方式与CH376模块SPI口进行通信,在经过外部USB端口时CH376以USB-HOST的方式来访问U盘,反之,DSP从模式时,PC机通过USB端口,CH376以USB-SLAVE的方式与Blackfin533进行通信。
图5 硬件原理图
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官方设计手册[2]。
4 软件设计
CH376S对U盘的读写分为扇区模式和字节模式两种。扇区模式以扇区为单位,对U盘文件进行读写,其读写速度快,但通常需要额外的缓冲区。字节模式以字节为单位对U盘文件进行读写,读写速度慢,通常用作小数据量的读写,但使用较为方便。
系统软件流程如图6所示,DSP判断用户选择写U盘操作或上位机操作。当选择读取U盘操作时,首先初始化CH376芯片,通过循环不断检测U盘是否连接就绪,U盘就绪后,创建文件名,并将数据写入文件,同时关闭文件,进入到开始。当选择上位机操作,通过USB数据线,将系统连入PC机,首先初始化CH376芯片,DSP判断上位机软件是否发出操作命令,若发出的是命令控制字,则执行相应的操作,并继续判断上位机是否发出命令字;若发出的命令是交出控制权,则系统恢复本地控制,并进入到开始。
图6 软件流程图
5 实验测试
整个系统设计的测试主要分为U盘测试和上位机测试。
U盘测试:
选择USB主接口模式,测试工具为普通4 GB U盘,经测试,成功创建TEST01、TEST02、TSET03共3个文档,并成功写入待写入数据。上位机测试:
选择USB从接口模式,测试工具为 USB设备CH372或CH375调试工具,由于在上位机程序中定义#define uREAD_DATA 0x80,所以在调试工具中,设置端口下传数据为接收数据命令即80。实验结果表明,在端点上传中成功接收0~3F,共64个数据。实验结果如图7所示。
图7 USB设备CH372或CH375调试工具接收数据
6 结束语
设计从硬件和软件两方面对基于ADSP-Blackfin533 SPORTs口的USB主从接口设计进行了详细论述,其具有传输速度快、结构简单、操作方便及传输数据量大等优点。经测试,性能稳定可靠,可广泛应用于各种实际场合。
[1]Nanjing QinHeng Electronics Co.,Ltd.CH376EVT[M].Nanjing:Nanjing Qinheng Electronics Co.,Ltd.,2010.
[2]Analog Devices,Inc.ADSP-BF533 Blackfin ® processor hardware reference[M].USA:Analog Devices,Inc.,2009.
[3]冯小平,罗勇江,罗明.ADSP技术与应用[M].北京:机械工业出版社,2008.
[4]Analog Devices,Inc.Using the Blackfin ® processor SPORT to emulate a SPI interface[M].USA:Analog Devices,Inc.,2009.