?? readme.txt
字號:
有關(guān)CH374的U盤文件級子程序庫的接口說明以及例子程序
請參考CH374評估板資料CH374/EVT/PUB/CH374EVT.PDF和CH374HF.PDF
網(wǎng)上可供下載的壓縮包文件是CH374EVT.ZIP
*****************************************************************************************
CH374LIB V1.2 最新更新 2006.09.21
一、更新和增加
1、用磁盤緩沖區(qū)指針pDISK_BASE_BUF代替緩沖區(qū)DISK_BASE_BUF,便于緩沖區(qū)合用,由.H文件初始化
2、支持任意的扇區(qū)大小,通常是512字節(jié),有個(gè)別MP3可能是2K字節(jié)
3、修改首扇區(qū)DBR/MBR的識別方法
*****************************************************************************************
CH374LIB V1.1 最新更新 2006.09.01
一、修正BUG
1、高速單片機(jī)字節(jié)到扇區(qū)移位優(yōu)化錯誤
二、更新和增加
1、支持內(nèi)置USB-HUB的復(fù)合U盤,支持外接USB-HUB之后再連接U盤,
增加全局變量CH374vHubPortCount指示當(dāng)前HUB上的端口數(shù),為0則沒有HUB
2、子程序內(nèi)部去掉CH374FileEnumer和CH374FileQuery以及CH374Reset三個(gè)子程序,節(jié)約內(nèi)部代碼,
由.H文件提供可由條件編譯控制的外部子程序?qū)崿F(xiàn)向前兼容
3、為外部子程序CH374_READ_BLOCK64和CH374_WRITE_BLOCK64增加一個(gè)參數(shù)mAddr作為起始地址
4、關(guān)閉外部塊接口子程序,去掉.H文件中的xWriteToExtBuf( )和xReadFromExtBuf( ),
實(shí)際應(yīng)用可以在外部子程序CH374_READ_BLOCK64和CH374_WRITE_BLOCK64中實(shí)現(xiàn)類似功能
5、去掉CH374LibConfig中的數(shù)據(jù)復(fù)制方式的控制位,去掉.H文件中的相關(guān)定義,
對于MCS51單片機(jī),可以通過鏈接三種復(fù)制方式I/O庫中的一種選擇復(fù)制方式和速度
6、將單OBJ文件改為多OBJ文件,便于在鏈接時(shí)節(jié)約代碼量
*****************************************************************************************
CH374LIB V1.0 最新更新 2006.07.20
一、更新和增加
1、以CH375LIB的V2.9版本為基礎(chǔ)形成CH374LIB的V1.0版本
2、在.H文件中去掉了EN_CH374LIB_MORE條件編譯選項(xiàng),直接置為允許
3、在CH374FileOpen子程序中增加了回調(diào)子程序xFileNameEnumer( ),用于在枚舉到文件時(shí)調(diào)用,
使用CH374vFileSize作為枚舉序號,并且其值為0xFFFFFFFF,參考EXAM13可加快搜索速度
4、增加了外部子程序xDelayAfterWrite( ),用于根據(jù)實(shí)際需要在U盤寫操作后延時(shí)
5、修改CH374vDiskRoot始終為32位變量,對于MCS51單片機(jī),修改CH374vDiskRoot為外部變量
修改CH374vFdtLba為外部變量,修改CH374IntStatus始終為內(nèi)部變量
6、增加了備份/恢復(fù)子程序庫的變量的子程序CH374SaveVariable( ),
用于子程序庫在多個(gè)CH374芯片之間進(jìn)行切換,以及外接USB-HUB后在多個(gè)U盤之間進(jìn)行切換
7、增加了延時(shí)指定毫秒的子程序CH374DelaymS( ),用于延時(shí)1到255毫秒
8、增加了USB基本傳輸事務(wù)的子程序CH374HostTransact( ),用于實(shí)現(xiàn)基本的USB傳輸
9、增加了執(zhí)行USB控制傳輸?shù)淖映绦駽H374CtrlTransfer( ),用于執(zhí)行控制傳輸
10、查詢U盤是否連接或斷開,只能使用CH374DiskConnect子程序或者自行編寫的外部子程序
11、預(yù)留外部扇區(qū)接口,只讀版本支持xDiskSectorAccess( )用于外部以扇區(qū)為單位存取磁盤
*****************************************************************************************
附錄A:關(guān)于CH374子程序庫與CH375子程序庫的區(qū)別
1、硬件端口或者硬件接口子程序名稱不同,
對于總線I/O操作,CH374和CH375都只占用兩個(gè)地址位,但名稱及用途不同,
高地址位對CH374是索引地址端口,用于設(shè)置起始地址,對CH375是命令端口,用于發(fā)出命令碼,
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_BLOCK64、CH374_WRITE_BLOCK64,
后者是xWriteCH375Cmd、xWriteCH375Data、xReadCH375Data
2、各變量、各子程序名稱不同,前者是CH374開頭,后者是CH375開頭
3、CH374只能以CH374DiskConnect子程序查詢U盤是否連接,而CH375除此之外還可以用xQueryInterrupt
4、一些基本功能例如BulkOnly協(xié)議及基本SCSI命令等,CH374是以軟件實(shí)現(xiàn),而CH375是以硬件實(shí)現(xiàn),
所以對于CH375用一個(gè)命令就能完成的操作,對于CH374可能要執(zhí)行一個(gè)子程序,
所以CH374子程序開放了兩個(gè)新的API:CH374HostTransact( )和CH374CtrlTransfer( )
5、對于速度高于4MIPS的單片機(jī),CH374子程序庫略快,對于速度低于4MIPS的單片機(jī),CH375子程序庫略快
6、現(xiàn)有的CH375應(yīng)用程序只需做如下改動即可用于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盤是否連接,應(yīng)該用CH374DiskConnect子程序,不能用xQueryInterrupt,參考EXAM1和EXAM13
CH374不支持外部接口子程序,但可在CH374_WRITE_BLOCK和CH374_READ_BLOCK64中實(shí)現(xiàn)類似功能
外部的查詢中斷子程序不同,參考.H文件中的默認(rèn)例子,CH374也支持無中斷引腳的操作
如果有BulkOnly協(xié)議的其它SCSI命令處理,參考EXAM12用CH374BulkOnlyCmd等實(shí)現(xiàn)
如果需要精確定時(shí),可以用CH374庫新增加的子程序CH374DelaymS( )實(shí)現(xiàn)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -