CH374LIB

所属分类:中间件编程
开发工具:Others
文件大小:1673KB
下载次数:30
上传日期:2008-05-23 14:12:18
上 传 者hongabing
说明:  沁恒电子的CH374芯片程序和列子,包插51、AVR等平台
(Qin-Heng Electronics CH374 chip procedures and Liezi, including plug 51, AVR, such as platform)

文件列表:
ARM32 (0, 2006-08-28)
ARM32\LIB9 (0, 2006-08-28)
ARM32\LIB9\CH374HF9.H (47934, 2007-09-20)
ARM32\LIB9\CH374HF9.LIB (38068, 2008-01-14)
ARM32\LIB9\EXAM1 (0, 2006-08-28)
ARM32\LIB9\EXAM1\CH374HFT.C (19026, 2007-09-20)
ARM32\LIB9\EXAM1\CH374HFT.HEX (61889, 2007-09-20)
ARM32\LIB9\EXAM1\PARA.C (1946, 2007-09-20)
ARM32\LIB9\EXAM1\PARA0.C (1557, 2007-09-20)
ARM32\LIB9\EXAM1\SPI.C (1851, 2007-09-20)
ARM32\LIB9\EXAM6 (0, 2006-08-28)
ARM32\LIB9\EXAM6\CH374HFT.C (13706, 2007-09-20)
ARM32\LIB9\EXAM6\CH374HFT.HEX (56542, 2007-09-20)
ARM32\LIB9\EXAM6\PARA.C (1946, 2007-09-20)
ARM32\LIB9\EXAM6\SPI.C (1851, 2007-09-20)
ARM32\LIB9_SDT (0, 2007-05-25)
ARM32\LIB9_SDT\CH374HF9.H (47927, 2007-09-20)
ARM32\LIB9_SDT\CH374HF9.LIB (34032, 2008-01-14)
ARM32\LIBI (0, 2006-08-28)
ARM32\LIBI\CH374HFI.H (47957, 2007-09-20)
ARM32\LIBI\CH374HFI.LIB (38708, 2008-01-14)
ARM32\LIBM (0, 2006-08-28)
ARM32\LIBM\CH374HFM.H (48155, 2007-09-20)
ARM32\LIBM\CH374HFM.LIB (39440, 2008-01-14)
ARM32\LIBM\EXAM1 (0, 2006-08-28)
ARM32\LIBM\EXAM1\CH374HFT.C (19543, 2007-09-20)
ARM32\LIBM\EXAM1\PARA.C (1946, 2007-09-20)
ARM32\LIBM\EXAM1\SPI.C (1851, 2007-09-20)
ARM32\LIBM_16 (0, 2007-05-25)
ARM32\LIBM_16\CH374HFM.H (48157, 2007-09-20)
ARM32\LIBM_16\CH374HFM.LIB (32468, 2008-01-14)
ARM32\LIBM_CX (0, 2008-01-15)
ARM32\LIBM_CX\CH374HFM.H (48100, 2008-01-14)
ARM32\LIBM_CX\CH374HFM.LIB (37838, 2008-01-14)
ARM32\LIBS (0, 2006-08-28)
ARM32\LIBS\CH374HFS.H (47957, 2007-09-20)
ARM32\LIBS\CH374HFS.LIB (38120, 2008-01-14)
ARM32\LIBU (0, 2006-08-28)
ARM32\LIBU\CH374HFU.H (48094, 2007-09-20)
ARM32\LIBU\CH374HFU.R79 (58179, 2008-01-14)
... ...

有关CH374的U盘文件级子程序库的接口说明以及例子程序 请参考CH374评估板资料CH374/EVT/PUB/CH374EVT.PDF和CH374HF.PDF 网上可供下载的压缩包文件是CH374EVT.ZIP ***************************************************************************************** CH374LIB V1.5 最新更新 2008.01.14 一、修正BUG 1、新批号CH374对部分U盘的兼容性问题 ***************************************************************************************** CH374LIB V1.4 最新更新 2007.09.20 一、修正BUG 1、U盘读写操作出错重试仍然失败才能自动关闭文件 2、修正扇区大小不是512字节时的写文件操作的簇分配问题 二、更新和增加 1、支持内置ROOT-HUB 三、功能调整 1、修改查询磁盘信息CH374DiskQuery,去除其包含的CH374DiskSize功能,使之只查询剩余容量, 如果需要像原版本程序一样同时查询U盘物理容量,那么要另外调用CH374DiskSize,即修改后, 如果先调用CH374DiskSize,再调用CH374DiskQuery,就等同于原版本的CH374DiskQuery, 也就是说,修改后的CH374DiskQuery程序调用后不修改mCmdParam.DiskSize.mDiskSizeSec ***************************************************************************************** CH374LIB V1.3 最新更新 2007.06.18 一、修正BUG 1、CH374SaveVariable恢复时的输入参数必须区分单个U盘或者多个U盘(含HUB) 2、修正部分32位单片机在FAT12文件系统下的对齐存取 3、错误重试 二、更新和增加 1、简单优化U盘枚举过程 ***************************************************************************************** CH374LIB V1.2 最新更新 2006.09.21 一、更新和增加 1、用磁盘缓冲区指针pDISK_BASE_BUF代替缓冲区DISK_BASE_BUF,便于缓冲区合用,由.H文件初始化 2、支持任意的扇区大小,通常是512字节,有个别U盘可能是2K字节(支持这些U盘前请分配足够缓冲区) 3、修改首扇区DBR/MBR的识别方法 二、功能调整 1、由于磁盘缓冲区指针pDISK_BASE_BUF本身不分配内存,所以主程序应该调用CH374LibInit初始化, 使该指针指向一个容量足够大并且实际可用的缓冲区,也可定义DISK_BASE_BUF_LEN由.H文件分配 2、市面上的大多数U盘,其扇区大小为512字节,除此之外也有一部分U盘的扇区大小为2K字节或更大, 对于从旧版本升级到本新版本程序的应用,如果像以前那样仍然只分配512字节的磁盘缓冲区, 那么请参考新版本例子在CH374DiskReady成功后检查CH374vSectorSize是否大于实际缓冲区大小, 如果大于则应将该U盘视为不可支持的U盘,否则在调用CH374FileOpen等程序时会导致缓冲区溢出, 如果参考新版本例子分配足够大小(2K甚至4K)的磁盘缓冲区,那么可以支持各种扇区大小的U盘 ***************************************************************************************** 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( )实现

近期下载者

相关文件


收藏者