CH374LIB
所属分类:单片机开发
开发工具:C/C++
文件大小:1364KB
下载次数:107
上传日期:2008-05-17 00:16:46
上 传 者:
LIGQING
说明: CH374 USB-HOST文件系统单片机子程序库
(CH374 USB-HOST file system Singlechip subroutine library)
文件列表:
ARM32 (0, 2006-08-28)
ARM32\LIB9 (0, 2006-08-28)
ARM32\LIB9\CH374HF9.H (45576, 2006-09-22)
ARM32\LIB9\CH374HF9.LIB (36516, 2006-09-22)
ARM32\LIB9\EXAM1 (0, 2006-08-28)
ARM32\LIB9\EXAM1\CH374HFT.C (19026, 2006-09-21)
ARM32\LIB9\EXAM1\CH374HFT.HEX (59827, 2006-09-21)
ARM32\LIB9\EXAM1\PARA.C (1946, 2006-09-21)
ARM32\LIB9\EXAM1\PARA0.C (1557, 2006-09-21)
ARM32\LIB9\EXAM1\SPI.C (1851, 2006-09-21)
ARM32\LIB9\EXAM6 (0, 2006-08-28)
ARM32\LIB9\EXAM6\CH374HFT.C (13706, 2006-09-21)
ARM32\LIB9\EXAM6\CH374HFT.HEX (54554, 2006-09-21)
ARM32\LIB9\EXAM6\PARA.C (1946, 2006-09-21)
ARM32\LIB9\EXAM6\SPI.C (1851, 2006-09-21)
ARM32\LIBI (0, 2006-08-28)
ARM32\LIBI\CH374HFI.H (45599, 2006-09-22)
ARM32\LIBI\CH374HFI.LIB (37156, 2006-09-22)
ARM32\LIBM (0, 2006-08-28)
ARM32\LIBM\CH374HFM.H (45699, 2006-09-22)
ARM32\LIBM\CH374HFM.LIB (579115, 2006-09-22)
ARM32\LIBM\EXAM1 (0, 2006-08-28)
ARM32\LIBM\EXAM1\CH374HFT.C (19543, 2006-09-21)
ARM32\LIBM\EXAM1\CH374HFT.HEX (78698, 2006-09-21)
ARM32\LIBM\EXAM1\PARA.C (1946, 2006-09-21)
ARM32\LIBM\EXAM1\SPI.C (1851, 2006-09-21)
ARM32\LIBS (0, 2006-08-28)
ARM32\LIBS\CH374HFS.H (45599, 2006-09-22)
ARM32\LIBS\CH374HFS.LIB (36536, 2006-09-22)
ARM32\LIBU (0, 2006-08-28)
ARM32\LIBU\CH374HFU.H (45736, 2006-09-22)
ARM32\LIBU\CH374HFU.R79 (55782, 2006-09-22)
AVR (0, 2006-08-28)
AVR\LIBB (0, 2006-08-28)
AVR\LIBB\CH374HFB.A (138081, 2006-09-22)
AVR\LIBB\CH374HFB.H (45610, 2006-09-22)
AVR\LIBB\EXAM1 (0, 2006-08-28)
AVR\LIBB\EXAM1\CH374HFT.C (18494, 2006-09-22)
AVR\LIBB\EXAM1\CH374HFT.HEX (55399, 2006-09-22)
AVR\LIBB\EXAM1\PARA.C (1945, 2006-09-21)
... ...
有关CH374的U盘文件级子程序库的接口说明以及例子程序
请参考CH374评估板资料CH374/EVT/PUB/CH374EVT.PDF和CH374HF.PDF
网上可供下载的压缩包文件是CH374EVT.ZIP
*****************************************************************************************
CH374LIB V1.2 最新更新 2006.09.21
一、更新和增加
1、用磁盘缓冲区指针pDISK_BASE_BUF代替缓冲区DISK_BASE_BUF,便于缓冲区合用,由.H文件初始化
2、支持任意的扇区大小,通常是512字节,有个别MP3可能是2K字节
3、修改首扇区DBR/MBR的识别方法
*****************************************************************************************
CH374LIB V1.1 最新更新 2006.09.01
一、修正BUG
1、高速单片机字节到扇区移位优化错误
二、更新和增加
1、支持内置USB-HUB的复合U盘,支持外接USB-HUB之后再连接U盘,
增加全局变量CH374vHubPortCount指示当前HUB上的端口数,为0则没有HUB
2、子程序内部去掉CH374FileEnumer和CH374FileQuery以及CH374Reset三个子程序,节约内部代码,
由.H文件提供可由条件编译控制的外部子程序实现向前兼容
3、为外部子程序CH374_READ_BLOCK***和CH374_WRITE_BLOCK***增加一个参数mAddr作为起始地址
4、关闭外部块接口子程序,去掉.H文件中的xWriteToExtBuf( )和xReadFromExtBuf( ),
实际应用可以在外部子程序CH374_READ_BLOCK***和CH374_WRITE_BLOCK***中实现类似功能
5、去掉CH374LibConfig中的数据复制方式的控制位,去掉.H文件中的相关定义,
对于MCS51单片机,可以通过链接三种复制方式I/O库中的一种选择复制方式和速度
6、将单OBJ文件改为多OBJ文件,便于在链接时节约代码量
*****************************************************************************************
CH374LIB V1.0 最新更新 2006.07.20
一、更新和增加
1、以CH375LIB的V2.9版本为基础形成CH374LIB的V1.0版本
2、在.H文件中去掉了EN_CH374LIB_MORE条件编译选项,直接置为允许
3、在CH374FileOpen子程序中增加了回调子程序xFileNameEnumer( ),用于在枚举到文件时调用,
使用CH374vFileSize作为枚举序号,并且其值为0xFFFFFFFF,参考EXAM13可加快搜索速度
4、增加了外部子程序xDelayAfterWrite( ),用于根据实际需要在U盘写操作后延时
5、修改CH374vDiskRoot始终为32位变量,对于MCS51单片机,修改CH374vDiskRoot为外部变量
修改CH374vFdtLba为外部变量,修改CH374IntStatus始终为内部变量
6、增加了备份/恢复子程序库的变量的子程序CH374SaveVariable( ),
用于子程序库在多个CH374芯片之间进行切换,以及外接USB-HUB后在多个U盘之间进行切换
7、增加了延时指定毫秒的子程序CH374DelaymS( ),用于延时1到255毫秒
8、增加了USB基本传输事务的子程序CH374HostTransact( ),用于实现基本的USB传输
9、增加了执行USB控制传输的子程序CH374CtrlTransfer( ),用于执行控制传输
10、查询U盘是否连接或断开,只能使用CH374DiskConnect子程序或者自行编写的外部子程序
11、预留外部扇区接口,只读版本支持xDiskSectorAccess( )用于外部以扇区为单位存取磁盘
*****************************************************************************************
附录A:关于CH374子程序库与CH375子程序库的区别
1、硬件端口或者硬件接口子程序名称不同,
对于总线I/O操作,CH374和CH375都只占用两个地址位,但名称及用途不同,
高地址位对CH374是索引地址端口,用于设置起始地址,对CH375是命令端口,用于发出命令码,
CH374端口名是CH374_IDX_PORT/CH374_DAT_PORT,CH375端口名是CH375_CMD_PORT/CH375_DAT_PORT,
对于非总线I/O操作,前者是CH374_READ_REGISTER、CH374_WRITE_REGISTER、CH374_WRITE_BLOCK_C、
CH374_READ_BLOCK、CH374_WRITE_BLOCK、CH374_READ_BLOCK***、CH374_WRITE_BLOCK***,
后者是xWriteCH375Cmd、xWriteCH375Data、xReadCH375Data
2、各变量、各子程序名称不同,前者是CH374开头,后者是CH375开头
3、CH374只能以CH374DiskConnect子程序查询U盘是否连接,而CH375除此之外还可以用xQueryInterrupt
4、一些基本功能例如BulkOnly协议及基本SCSI命令等,CH374是以软件实现,而CH375是以硬件实现,
所以对于CH375用一个命令就能完成的操作,对于CH374可能要执行一个子程序,
所以CH374子程序开放了两个新的API:CH374HostTransact( )和CH374CtrlTransfer( )
5、对于速度高于4MIPS的单片机,CH374子程序库略快,对于速度低于4MIPS的单片机,CH375子程序库略快
6、现有的CH375应用程序只需做如下改动即可用于CH374
1)、硬件上,如果是并口连接,那么完全不需要做任何改变,直接替换原CH375,外部晶体频率换成24MHz,
如果是CH375串口连接,那么需要改成CH374的SPI连接,使用非总线I/O子程序库
2)、软件上,
对于总线I/O操作,I/O端口地址名称CH375_CMD_PORT改成CH374_IDX_PORT
对于非总线I/O操作,重新编写I/O接口子程序,如CH374_READ_REGISTER、CH374_WRITE_REGISTER等
各子程序名称不同,CH375*改成CH374*
查询U盘是否连接,应该用CH374DiskConnect子程序,不能用xQueryInterrupt,参考EXAM1和EXAM13
CH374不支持外部接口子程序,但可在CH374_WRITE_BLOCK和CH374_READ_BLOCK***中实现类似功能
外部的查询中断子程序不同,参考.H文件中的默认例子,CH374也支持无中断引脚的操作
如果有BulkOnly协议的其它SCSI命令处理,参考EXAM12用CH374BulkOnlyCmd等实现
如果需要精确定时,可以用CH374库新增加的子程序CH374DelaymS( )实现
近期下载者:
相关文件:
收藏者: