freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的u盤數(shù)據(jù)傳輸裝置設(shè)計論文-文庫吧資料

2025-03-06 10:23本頁面
  

【正文】 { i = ExecCommand( CMD_QueryStatus, 0 )。 p2_0=1。 i = ExecCommand( CMD_FileClose, 1 )。 mStopIfError( i )。 = TempLength。/* 以字節(jié)為單位向文件寫入數(shù)據(jù) */ mStopIfError( i )。 = i。 memcpy( , pStr, i )。 else i = sizeof( )。 count = strlen( pStr )。 mStopIfError( i )。 /* 產(chǎn)生新文件 */ strcpy( , \ )。 i = ExecCommand( CMD_FileClose, 1 )。 memcpy( TempBuffer, , TempLength )。 mStopIfError( i )。 = 20。 TempLength = 0。 } /* 讀取原文件 */ strcpy( , \\ )。 i ++ ) { mDelaymS( 100 )。 for ( i = 0。 } mDelaymS( 500 )。 if ( = DISK_CONNECT ) break。 while ( 1 ) /* 程序中使用查詢方式查詢模塊狀態(tài),和向模塊發(fā)送同步碼啟動操作,然后發(fā)送相關(guān)的命令 */ { while ( 1 ) { i = ExecCommand( CMD_QueryStatus, 0 )。 TH1 = 0xE8。 PCON = 0x80。 LED_OUT = 1。 mDelaymS( 100 )。 p2_0=0。 unsigned char *pStr。 } } main( ) { unsigned char i。 /* LED閃爍 */ mDelaymS( 100 )。 while ( 1 ) { LED_OUT = ledamp。 if ( iError == ERR_SUCCESS ) return。 } } return( status )。 } else { if ( status == ERR_DISK_DISCON || status == ERR_USB_CONNECT ) mDelaymS( 100 )。 } break。 j ++。 if ( i ){ j = 0。 if ( status == ERR_SUCCESS ){ i = mRecvByte( )。 i ++ ) mSendByte( [ i ] )。 if ( len ) { for ( i = 0。 mSendByte( len )。 mSendByte( SER_SYNC_CODE2 )。 } unsigned char ExecCommand( unsigned char cmd, unsigned char len )/* 命令函數(shù) */ { unsigned char i, j, status。 RI = 0。 while ( RI == 0 )。 while ( TI == 0 )。 } } voidmSendByte( unsigned char c )/* 發(fā)送一個字節(jié)數(shù)據(jù)給 CH375模塊 */ { TI = 0。 j != 0。 j ) c += 3。 i ) { for ( j = 200。 for ( i = delay。 sbit p2_0=P2^0。 CMD_PARAM idata mCmdParam。 include include include include define MAX_PATH_LEN 32 include unsigned char TempLength。 參考文獻(xiàn): 【 1】《基于單片機(jī)的智能系統(tǒng)設(shè)計與實現(xiàn)》 沈紅衛(wèi)著,電子工業(yè)出版社 【 2】《單片機(jī)技術(shù)應(yīng)用》朱運(yùn)利著,機(jī)械工業(yè)出版社 【 3】《 MCS51 單片機(jī)開發(fā)與應(yīng)用指南》孫永浩著 黑龍江科學(xué)技術(shù)出版社 【 4】《 EZUSB FX2 單片機(jī)原 理,編程及應(yīng)用》錢峰著,北京航空航天大學(xué)出版社 【 5】 CH375中文技術(shù)手冊 【 6】串口版 U盤讀寫模塊中文技術(shù)手冊 附錄: 以下 程序可以演示單片機(jī)以字節(jié)的方式讀寫 U盤,該程序?qū)崿F(xiàn)的功能是:打開 U盤中的一個文件 ,再新建一個文件 ,在 “ Note:這個程序是以字節(jié)為單位進(jìn)行 U盤文件讀寫的示例程序 ,首先從原文件中讀出前 20個字符 ,然后寫到本說明的后面:”然后從文件 20字節(jié)的數(shù)據(jù),寫入文件 。比如缺乏綜合應(yīng)用專業(yè)知識的能力,對集成芯片的不了解等等。同時,仍有很多課題需要后來人去努力去完善。此次科研立項是對我專業(yè)知識和專業(yè)基礎(chǔ)知識一次實際檢驗和鞏固,同時也是我為未來的單片機(jī)和嵌入式開發(fā)與應(yīng)用的的一次熱身。其間,查找資料,老師指導(dǎo),與同學(xué)交流,反復(fù)修改電路和程序,每一個過程都是對自己能力的一次檢驗和充實。 圖 12 UFI結(jié)構(gòu) 圖 13 命令與數(shù)據(jù)字結(jié)構(gòu) 七,總結(jié) 此次科研立項是我們從大學(xué)生活重要的一步。中斷模塊接收到 串口或并口數(shù)據(jù)后,根據(jù)內(nèi)部命令字要求進(jìn)行解析。 USB 模塊負(fù)責(zé)檢測 USB 設(shè)備的移入 /移出,對插入的設(shè)備進(jìn)行枚 舉,分配設(shè)備地址端點號,配置設(shè)備接口端點描述符,建立 BULK_ONLY 輸入 /輸出通道, BULK 模塊則在已建立的 BULK_ONLY 輸入 /輸出通道發(fā)送 CBW 數(shù)據(jù)包,并接收 CSW 數(shù)據(jù)包,通過 CBW 中嵌入的 CBWCB 信息確定對 U 盤讀 /寫操作的扇區(qū)位置和大小, FAT 模塊主要完成簇和扇區(qū)間的索引定位,即在 U 盤內(nèi)尋址,利用 BPB 中的參數(shù)計算給定扇區(qū)的所在簇以及進(jìn)入休眠狀態(tài),等待外部中斷喚醒。 軟件系統(tǒng)模塊 USB 讀寫器軟件由主模塊、 USB 模塊、 BULK 模塊、 FAT 模塊和中斷處理模塊組成。最后是引導(dǎo)程序代碼以及扇區(qū)結(jié)束標(biāo)志。 引導(dǎo)扇區(qū) DBR( DOS Boot Record)通常占用分區(qū)的第 0 扇區(qū),共 512 字節(jié), FAT 表緊隨其后。通常情況下,每扇區(qū) 512 字節(jié)的原則是不變的,簇的大小一般是 2n( n 為整數(shù))個扇區(qū)的大小。 FAT32 FAT 是 Microsoft 較早推出的文件系統(tǒng),具有高度的兼容性,目前仍然廣泛應(yīng)用于個人電腦尤其是移動存儲設(shè)備中, FAT 由引導(dǎo)扇區(qū)、 FAT1 表、 FAT2 表、目錄和文件區(qū)組成(其中 FAT2 表是 FAT1 表的備份)。 5)參數(shù)列表長度,用于指定發(fā)送到設(shè)備的字節(jié)數(shù),這個域典型的應(yīng)用于發(fā)送到設(shè)備的參 數(shù)命令塊(如模式參數(shù)、診斷參數(shù)等),若此域的值為 0,則表面沒有數(shù)據(jù)需要傳輸。命令操作的起始地址。指明命令將發(fā)送到哪個邏輯單元,如果設(shè)備只有一個邏輯單元,則此域的值為 0。 UFI 用 于大多數(shù)命令的 12 字節(jié)命令塊的描述,結(jié)構(gòu)如圖 4 所示,其中各參數(shù)意義如下: 1)操作命令代碼。 4)命令執(zhí)行狀 態(tài),表明命令成功或失敗信息,如果命令執(zhí)行成功,則設(shè)備將設(shè)置此域的值為 0,非 0 值;則表明失敗或錯誤。 3)數(shù)據(jù)殘余。 2)命令狀態(tài)標(biāo)記。 CSW 開始于包邊界,并以 13 字節(jié)的短包結(jié)束,結(jié)構(gòu)如圖所示,各域含義如下: 圖 11 命令狀態(tài)包結(jié)構(gòu) 1)命令狀態(tài)包標(biāo)識。 CSW 向主機(jī)表明來自于 CBW 包的命令塊的執(zhí)行狀態(tài)。 7) CBWCB。指定命令塊被發(fā)送到的邏輯單元號,如果設(shè)備不支持多個邏輯單元號,則主機(jī)將這個域設(shè)置為 0。方向位規(guī)定了 Bulk 端點數(shù)據(jù)傳輸?shù)姆较颍渌活A(yù)留。指明命令執(zhí)行期間在 Bulk 端點上傳數(shù)據(jù)的字節(jié)長度,如果這個域的值是 0,則在 CBW 和 CSW 之間設(shè)備和主機(jī)不傳輸任何數(shù)據(jù),并且設(shè)備將忽略在命令塊標(biāo)旗域中的方向位的值。當(dāng)設(shè)備返回相應(yīng)的 CSW 包時 ,必須使命令狀態(tài)標(biāo)記域的值與此值相同。 CBW 包標(biāo)記,表明這是一個 CBW 包,這個域的值為 43425355H。 CBW 是主機(jī)通過 BulkOut 端點向設(shè)備發(fā)送的命令塊包,在 CBW 中使用方向位和數(shù)據(jù)傳輸長度域指明期待的傳輸, CBW 必須起始于包邊界,并且必須以 31 字節(jié)的短包傳輸結(jié)束,相繼的數(shù)據(jù)包和 CSW 包必須開始于一個新的包邊界,所有的 CBW 包必須按低字節(jié)在前的次序傳輸。 UFI 命令塊規(guī)范是針對 USB 移動存儲而制定的,它總共定義了 19 個 12 字節(jié)長度的操作命令。前兩個協(xié)議定義了數(shù)據(jù) /命令 /狀態(tài)在 USB 總線上的傳輸方法, BulkOnly 傳輸協(xié)議僅僅使用 Bulk 端點傳送數(shù)據(jù) /命令 /狀態(tài), CBI 傳輸協(xié)議則使用 Control/bulk/interrupt 三種類型的端點進(jìn)行數(shù)據(jù) /命令 /狀態(tài)的傳送。通常所用的 U 盤、移動硬盤均屬于海量存儲類。 同步數(shù)據(jù)在產(chǎn)生、傳送和處理過程中是連續(xù)的和實時的,在穩(wěn)定的同步數(shù)據(jù)發(fā)送和接收速率中包含了相應(yīng)的時鐘信息,為了保持定時關(guān)系,同步數(shù)據(jù)必須按照接收的速率進(jìn)行傳輸。 典型的批量 數(shù)據(jù)包括象使用打印機(jī)或掃描儀時所出現(xiàn)的大數(shù)據(jù)量的數(shù)據(jù),這種批量數(shù)據(jù)是連續(xù)的,通過在硬件中實現(xiàn)差錯檢測功能,并且有選擇地進(jìn)行一定的應(yīng)進(jìn)重試操作,可以在硬件層次上保證數(shù)據(jù)的可靠交換。 USB協(xié)議 USB(通用串行總線)用于將 USB 接口的外圍設(shè)備( device)連接到主機(jī)( host),實現(xiàn)二者之間數(shù)據(jù)傳輸?shù)耐獠靠偩€結(jié)構(gòu),是一種快速、靈活的總線接口, USB 的傳輸類型有控制( control)、批量( bulk)、中斷( interrupt)和同步( synchronous)傳輸 4 種,它最大的特點是易于使用,即插即用,主要是用在中速和低速的外設(shè)。在通過串口輸入兩個同步碼字節(jié)時,模塊會檢查串口數(shù)據(jù)輸入超時,如果連續(xù)兩個數(shù) 據(jù)字節(jié)之間的間隔大于串口輸入超時時間,則模塊將放棄該同步碼及命令包。如果在功能配置時選擇檢查串口超時,那么在通過串口輸入命令包時,模塊會檢查串口數(shù)據(jù)輸入超時,如果連續(xù)兩個數(shù)據(jù)字節(jié) 之間的間隔大于串口輸入超時時間,則模塊將放棄該命令包。模塊可以通過串行輸入 SIN、串行輸出 SOUT 連接到單片機(jī)的異步串口,除此之外,啟動輸入 STA還應(yīng)該連接到單片機(jī)的一個 I/O 引腳,而中斷輸出 INT可以根據(jù)需要決定是否連接到單片機(jī)的中斷引腳。 四,串口版 U盤讀寫模塊的說明 模塊具有兩個外部接口: P1 是 USB 插座,可以直接插入 U 盤或者通過 USB 延長線連接 U盤,當(dāng)進(jìn)行程序升級或者重新配置時應(yīng)該通過 USB 對連線連接計算機(jī)的 USB 端口; P2 是 16 腳的雙排針或者插座,用于連接單片機(jī)系統(tǒng)。 CH375 的文件級子程序庫需要大約 600 字節(jié)的隨機(jī)存儲器 RAM 作為緩沖區(qū)。 CH375以 C語言子程序庫提供了 USB存儲設(shè)備的文件級接口,這些應(yīng)用層接口 API包含了常用的文件級操作,可以移植并嵌入到各種常用的單片機(jī)程序中 。 如果不需要處理文件系統(tǒng),也就是不處理上圖左邊的最頂層,那么 CH375 直接提供了數(shù)據(jù)塊的讀寫接口,以 512字節(jié)的物理扇區(qū)為基本讀寫單位,從而將 USB存儲設(shè)備簡化為一種外部數(shù)據(jù)存儲器,單片機(jī)可以自由讀寫 USB 存儲設(shè)備中的數(shù)據(jù),也可以自由定義其數(shù)據(jù)結(jié)構(gòu)。 單片機(jī)讀寫 U 盤文件 圖 4 單片機(jī)讀寫 U 盤文件 一般情況下,單片機(jī)或嵌入式系統(tǒng)處理 USB 存儲設(shè)備的文件系統(tǒng)需要實現(xiàn)上圖左邊的 4個層次,右邊是 USB 存儲設(shè)備的內(nèi)部結(jié)構(gòu)層次。命令操作步驟如下: ①、在 A0=1 時向命令端口寫入命令代碼; ②、如果該命令具有輸入數(shù)據(jù),則在 A0=0 時依次寫入輸入數(shù)據(jù),每次一個字節(jié); ③、如果該命令具有輸出數(shù)據(jù),則在 A0=0 時依次讀取輸出數(shù)據(jù),每次一個字節(jié); ④、命令完成,可以暫?;蛘咿D(zhuǎn)到①繼續(xù)執(zhí)行下一個命令。 圖 3 CH375芯片內(nèi)部中斷邏輯圖 本地端的單片機(jī)軟件 CH375芯片占用兩個地址位,當(dāng)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1