CH374_code

所属分类:单片机开发
开发工具:C/C++
文件大小:2623KB
下载次数:664
上传日期:2008-02-03 07:21:59
上 传 者Link
说明:  USB接口芯片CH374所有应用源码,包括CH374中文手册(一)和中文手册(二),以及CH374针对各个平台ARM32,AVR,F2MC8,M16C,MC9S12,MC68,MCS51,MSP430的应用源码,有很高的参考价值
(USB interface chip CH374 all application source code, including the Chinese CH374 Manual (1) and Chinese Manual (b), and CH374 for each platform ARM32, AVR, F2MC8, M16C, MC9S12, MC68, MCS51, MSP430 application source code, there are high reference value)

文件列表:
CH374_code\CH374_USB转串口芯片CP2102\HOST.C (22006, 2007-08-06)
CH374_code\CH374code\374HOST+HID\374HID.hex (13614, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID.M51 (40594, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID.plg (14143, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID.Uv2 (2005, 2007-04-25)
CH374_code\CH374code\374HOST+HID\374HID_Uv2.Bak (2005, 2007-04-25)
CH374_code\CH374code\374HOST+HID\CH374INC.H (20575, 2006-11-27)
CH374_code\CH374code\374HOST+HID\HAL.H (1402, 2007-04-25)
CH374_code\CH374code\374HOST+HID\HAL_BASE.C (969, 2007-05-31)
CH374_code\CH374code\374HOST+HID\HOST.C (25014, 2007-10-23)
CH374_code\CH374code\374HOST+HID\PARA_HW.C (2165, 2007-06-06)
CH374_code\CH374code\374HOST+HID\PARA_SW.C (3915, 2006-06-28)
CH374_code\CH374code\374HOST+HID\SPI3_SW.C (3117, 2006-06-28)
CH374_code\CH374code\374HOST+HID\SPI_HW.C (2913, 2006-06-28)
CH374_code\CH374code\374HOST+HID\SPI_SW.C (3158, 2007-05-08)
CH374_code\CH374code\374HOST+HID\HOST.LST (42132, 2007-10-23)
CH374_code\CH374code\374HOST+HID\HOST.OBJ (19666, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID (12498, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID_Opt.Bak (1832, 2007-10-23)
CH374_code\CH374code\374HOST+HID\374HID.Opt (1828, 2007-10-23)
CH374_code\CH374EVT\PUB\EXAM\HAL.H (1409, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\HAL_BASE.C (969, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\SPI_SW.C (3158, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\PARA_HW.C (2165, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\PARA_SW.C (3915, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\SPI3_SW.C (3117, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\SPI_HW.C (2913, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\DEVICE\DEVICE.HEX (3742, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\DEVICE\DEVICE.C (10167, 2006-06-28)
CH374_code\CH374EVT\PUB\EXAM\HOST\HOST.HEX (10355, 2007-05-22)
CH374_code\CH374EVT\PUB\EXAM\HOST\HOST.C (18330, 2007-05-22)
CH374_code\CH374EVT\PUB\EXAM\HOST_HUB\HUB.HEX (24839, 2007-05-22)
CH374_code\CH374EVT\PUB\EXAM\HOST_HUB\HUB.C (43156, 2007-05-22)
CH374_code\CH374EVT\PUB\EXAM\HOST_HUB\HUB.H (2234, 2007-05-22)
CH374_code\CH374EVT\PUB\INC\CH374INC.H (22524, 2007-09-20)
CH374_code\CH374EVT\PUB\INC\CH374INC.INC (19217, 2007-09-20)
CH374_code\CH374EVT\PUB\MCS51\LIB6\CH374HF6.LIB (45390, 2007-09-20)
CH374_code\CH374EVT\PUB\MCS51\LIB6\CH374HF6.H (50086, 2007-09-20)
CH374_code\CH374EVT\PUB\MCS51\LIB6\C51DPTR1.LIB (447, 2006-09-22)
CH374_code\CH374EVT\PUB\MCS51\LIB6\C51DPTR2.LIB (521, 2006-09-22)
... ...

有关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( )实现

近期下载者

相关文件


收藏者