




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的u盤數(shù)據(jù)傳輸裝置 摘要:隨著單片機(jī)技術(shù)的發(fā)展,各種嵌入式系統(tǒng)的逐漸應(yīng)用于工作現(xiàn)場(chǎng)的數(shù)據(jù)采集和控制之中。usb總線技術(shù)的發(fā)展,使得數(shù)據(jù)傳輸和采集技術(shù),變得簡(jiǎn)單,易攜和方便使用?;趗sb總線技術(shù)的usb儲(chǔ)存設(shè)備簡(jiǎn)稱u盤,它具有支持熱拔熱插,儲(chǔ)存量大,耐用,和輕巧方便的特點(diǎn)?;趩纹瑱C(jī)技術(shù)的u盤數(shù)據(jù)采集是把單片機(jī)系統(tǒng)作為主機(jī)系統(tǒng),再利用支持usb總線協(xié)議的u盤讀寫芯片或者模塊來(lái)完成工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)采集或者傳輸。這樣,便可以把u盤的大容量存儲(chǔ),方便易用的功能從pc機(jī)系統(tǒng)擴(kuò)展到單片機(jī)系統(tǒng)中,可以方便在室外進(jìn)行大量數(shù)據(jù)的采集。例如,可以將單片機(jī)系統(tǒng)中ad轉(zhuǎn)換后采集到的數(shù)據(jù),儲(chǔ)存到u盤之中,以便
2、于利用計(jì)算機(jī)對(duì)數(shù)據(jù)經(jīng)行整理或分析。本文主要介紹一種技術(shù)成熟u盤讀寫芯片ch375和以此芯片為核心的u盤讀寫模塊,簡(jiǎn)單介紹了ch375芯片的構(gòu)造和特點(diǎn),以及u盤模塊的應(yīng)用特點(diǎn)。再次,介紹了串口版u盤模塊的應(yīng)用,并設(shè)計(jì)了串口模塊和單片機(jī)之間的通信的應(yīng)用方式,并附有模塊和單片機(jī)之間采用rs232電平進(jìn)行通信的連接電路圖。同時(shí),還簡(jiǎn)單的介紹了,u盤讀寫之中需要注意的幾個(gè)協(xié)議等。最后附錄中的程序提供了一個(gè)能夠?qū)崿F(xiàn)單片機(jī)以字節(jié)的方式對(duì)u盤的讀和寫的程序。關(guān)鍵詞:?jiǎn)纹瑱C(jī) u盤 usb2.0 u盤模塊 串口 通信 rs232接口 ch375 電平一, 引言半導(dǎo)體技術(shù)的發(fā)展帶來(lái)計(jì)算機(jī)向微型化發(fā)展的革命,同時(shí)隨著
3、計(jì)算機(jī)技術(shù)的快速發(fā)展,usb(universal serial bus)存儲(chǔ)設(shè)備的使用已經(jīng)非常普遍,usb 用于將適用usb 的外圍設(shè)備(device)連接到主機(jī)(host),實(shí)現(xiàn)二者之間數(shù)據(jù)傳輸?shù)耐獠靠偩€結(jié)構(gòu);是一種快速、靈活的總線接口。它最大的特點(diǎn)是易于使用,攜帶方便,主要是用在中速,低速的外設(shè)。隨著usb 規(guī)范的完善和成熟,usb 外設(shè)的種類不斷豐富,應(yīng)用領(lǐng)域也不斷擴(kuò)大。在傳統(tǒng)的應(yīng)用中,主要是pc 扮演著主機(jī)的角色。根據(jù)usb 的規(guī)范,可以看到在usb 的拓樸結(jié)構(gòu)中居于核心地位的是主機(jī),每一次的數(shù)據(jù)傳輸都必須由主機(jī)發(fā)起和控制。但是隨著單片機(jī)產(chǎn)品應(yīng)用領(lǐng)域的日益增長(zhǎng),usb 外設(shè)的應(yīng)用范圍也
4、隨之?dāng)U大,為此在單片機(jī)系統(tǒng)中實(shí)現(xiàn)對(duì)usb外設(shè)控制也變得日益迫切。因此在一些需要轉(zhuǎn)存數(shù)據(jù)的設(shè)備,儀器上使用usb移動(dòng)存儲(chǔ)設(shè)備接口的芯片便相繼產(chǎn)生了,ch375 就是其中之一,它是一個(gè)usb 總線的通用接口芯片,支持host 主機(jī)方式和slave 設(shè)備方式。如今的usb 就象當(dāng)日的rs232,最終發(fā)展必是業(yè)界的主流外設(shè)接口技術(shù)。usb 有著其它接口不可替代的優(yōu)勢(shì)。隨著usb 技術(shù)的發(fā)展,計(jì)算機(jī)的移動(dòng)存儲(chǔ)介質(zhì)普遍采用u 盤或移動(dòng)硬盤。如今,usb 技術(shù)已經(jīng)越來(lái)越普及和成熟,低成本、高穩(wěn)定性、較高的數(shù)據(jù)傳輸速率和即插即用的方便性,使其備受硬件廠商的青睞。隨著數(shù)據(jù)采集和單片機(jī)用戶對(duì)移動(dòng)存儲(chǔ)的需求越來(lái)越大
5、,具有usb 接口的存儲(chǔ)設(shè)備以其優(yōu)異的性價(jià)比和靈活性常用來(lái)進(jìn)行數(shù)據(jù)的存儲(chǔ)和交換,所以在單片機(jī)系統(tǒng)中實(shí)現(xiàn)對(duì)優(yōu)盤或移動(dòng)硬盤的直接讀寫是非常有價(jià)值的。二, 研究的意義 usb是近年發(fā)展起來(lái)的一種快速、靈活的總線接口。它最大的特點(diǎn)是易于使用、可熱插拔、接口連接靈活,并且能夠提供外設(shè)電源,在嵌人式系統(tǒng)及智能儀表中得到廣泛的應(yīng)用。而51系列單片機(jī)以其優(yōu)越的性能、成熟的技術(shù)、高性價(jià)比被廣應(yīng)用于測(cè)控儀器等自動(dòng)化領(lǐng)域。因此用51系列單片機(jī)實(shí)現(xiàn)usb主機(jī)接口,進(jìn)而實(shí)現(xiàn)對(duì)usb外設(shè)的控制,對(duì)提高整個(gè)系統(tǒng)的數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)傳輸、設(shè)備控制等性能都有很大的作用。根據(jù)我們的調(diào)查和了解,我們發(fā)現(xiàn),隨著flash memory非
6、易失存儲(chǔ)技術(shù)的發(fā)展,基于usb接口的閃存即u盤現(xiàn)已得到廣泛應(yīng)用。從理論上講,以u(píng)盤作為便攜式采集存儲(chǔ)系統(tǒng)的存儲(chǔ)載體完全能夠滿足長(zhǎng)時(shí)間采集海量數(shù)據(jù)的要求。但目前所面臨的問(wèn)題是,u盤主要應(yīng)用于pc機(jī)系統(tǒng)中。以單片機(jī)等微處理器為核心的嵌入式系統(tǒng)的應(yīng)用中,尚缺少與u盤的直接接口技術(shù)。因此將單片機(jī)技術(shù)與u盤存儲(chǔ)技術(shù)兩者結(jié)合起來(lái),利用單片機(jī)直接讀寫u盤,并通過(guò)總線方式與嵌入式系統(tǒng)的其它部分實(shí)現(xiàn)命令和數(shù)據(jù)的通信。采用單片機(jī)直接控制讀寫u盤,關(guān)鍵在于usb-host技術(shù)的實(shí)現(xiàn),即單片機(jī)作為usb主機(jī)系統(tǒng)。usb系統(tǒng)包括兩部分:usb主機(jī)和usb外設(shè),它們組合在一起就構(gòu)成了完整的usb系統(tǒng)。usb的拓?fù)浣Y(jié)構(gòu)中居
7、于核心地位的是host(也稱為主機(jī)),任何一次usb的數(shù)據(jù)傳輸都必須由主機(jī)來(lái)發(fā)起和控制,所有的usb外設(shè)都只能和主機(jī)建立連接,任何兩個(gè)外設(shè)之間或是兩個(gè)主機(jī)之間無(wú)法直接通信。鑒于復(fù)雜的usb協(xié)議,我們覺(jué)得可以采用usb讀寫模塊,這樣只要將usb讀寫模塊嵌入到用戶單片機(jī)系統(tǒng)中,就可以通過(guò)單片機(jī)的串口與usb讀寫模塊之間的通信,進(jìn)而讀寫u盤里面的數(shù)據(jù),還可以方便的利用u盤儲(chǔ)存海量的ad轉(zhuǎn)換后的數(shù)據(jù)等。三 , usb總線接口芯片ch3753.1 概述: ch375 是一個(gè)usb總線的通用接口芯片,支持usb-host主機(jī)方式和usb-device/slave設(shè)備方式。在本地端,ch375具有8位數(shù)據(jù)總
8、線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)/dsp/mcu/mpu等控制器的系統(tǒng)總線上。在usb主機(jī)方式下,ch375還提供了串行通訊方式,通過(guò)串行輸入、串行輸出和中斷輸出與單片機(jī)/dsp/mcu/mpu 等相連接。ch375的usb 主機(jī)方式支持常用的usb 全速設(shè)備,外部單片機(jī)可以通過(guò)ch375 按照相應(yīng)的usb 協(xié)議與usb 設(shè)備通訊。ch375 還內(nèi)置了處理mass-storage 海量存儲(chǔ)設(shè)備的專用通訊協(xié)議的固件,外部單片機(jī)可以直接以扇區(qū)為基本單位讀寫常用的usb 存儲(chǔ)設(shè)備(包括usb 硬盤/usb閃存盤/u 盤)3.2 特點(diǎn) 1)全速usb-host 主機(jī)接口,兼容
9、usb v2.0,外圍元器件只需要晶體和電容。 2)全速設(shè)備接口,完全兼容ch372 芯片,支持動(dòng)態(tài)切換主機(jī)與設(shè)備方式。 3)主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各64 字節(jié),支持常用的12mbps 全速usb 設(shè)備。 4)支持usb 設(shè)備的控制傳輸、批量傳輸、中斷傳輸。 5)自動(dòng)檢測(cè)usb 設(shè)備的連接和斷開(kāi),提供設(shè)備連接和斷開(kāi)的事件通知。 6)內(nèi)置控制傳輸?shù)膮f(xié)議處理器,簡(jiǎn)化常用的控制傳輸。 7) 內(nèi)置固件處理海量存儲(chǔ)設(shè)備的專用通訊協(xié)議,支持bulk-only傳輸協(xié)議和scsi、ufi、rbc 或等效命令集的usb 存儲(chǔ)設(shè)備(包括usb 硬盤/usb 閃存盤/u 盤)。 8)通過(guò)u 盤文件級(jí)子程序庫(kù)實(shí)現(xiàn)單
10、片機(jī)讀寫usb 存儲(chǔ)設(shè)備中的文件。 9)并行接口包含8 位數(shù)據(jù)總線,4 線控制:讀選通、寫選通、片選輸入、中斷輸出。 10)串行接口包含串行輸入、串行輸出、中斷輸出,支持通訊波特率動(dòng)態(tài)調(diào)整。 11)支持5v 電源電壓和3.3v 電源電壓,ch375a 芯片還支持低功耗模式。 12)采用sop-28 封裝,可以提供sop28 到dip28 的轉(zhuǎn)換板。 圖1 ch375各引腳說(shuō)明3.3 功能說(shuō)明ch375 芯片可以工作于usb-host 主機(jī)方式或者usb 設(shè)備方式。ch375的usb 主機(jī)方式支持并行接口和串行接口。在usb主機(jī)方式下,ch375支持各種常用的usb全速設(shè)備,外部單片機(jī)需要編寫固
11、件程序按照相應(yīng)的usb協(xié)議與usb 設(shè)備通訊。但是對(duì)于usb存儲(chǔ)設(shè)備,ch375 內(nèi)置了相關(guān)協(xié)議,通常情況下,外部單片機(jī)不需要編寫固件程序,就可以直接通訊。ch375 芯片在本地端提供了通用的被動(dòng)并行接口和點(diǎn)對(duì)點(diǎn)的串行接口。圖2 ch375芯片的電器參數(shù)3.4 ch375工作于串口模式下 串行接口只能用于usb 主機(jī)方式,ch375 芯片的usb 設(shè)備方式不支持串口。串口信號(hào)線包括:串行數(shù)據(jù)輸入引腳rxd、串行數(shù)據(jù)輸出引腳txd、中斷輸出引腳int#。通過(guò)串行接口,ch375 可以用最少的連線與單片機(jī)、dsp、mcu 進(jìn)行較遠(yuǎn)距離的點(diǎn)對(duì)點(diǎn)連接。ch375芯片的rxd 和txd可以分別連接到單片
12、機(jī)的串行數(shù)據(jù)輸出引腳和串行數(shù)據(jù)輸入引腳。int#輸出的中斷請(qǐng)求是低電平有效,用于通知單片機(jī)。ch375 的串行數(shù)據(jù)格式是1個(gè)起始位、9個(gè)數(shù)據(jù)位、1個(gè)停止位,其中前8個(gè)數(shù)據(jù)位是一個(gè)字節(jié)數(shù)據(jù),最后1個(gè)數(shù)據(jù)位是命令標(biāo)志位。第9位為0時(shí),前8位的數(shù)據(jù)被寫入ch375芯片中,第9位為1時(shí),前8位被作為命令碼寫入ch375芯片中。ch375的串行通訊波特率默認(rèn)是9600bps,單片機(jī)可以隨時(shí)通過(guò)set_baudrate 命令選擇合適的通訊波特率。3.5 其它功能簡(jiǎn)介 在ch375 芯片的復(fù)位期間,txd引腳用于選擇通訊接口。如果ch375 在復(fù)位期間檢測(cè)到txd引腳為低電平則啟用并行接口,否則啟用串行接口
13、。如果啟用串行接口,那么復(fù)位完成后txd引腳將用于串行數(shù)據(jù)輸出,并且ch375 芯片只能工作于usb 主機(jī)方式。 ch375芯片的act#引腳用于狀態(tài)指示。在內(nèi)置固件的usb設(shè)備方式下,當(dāng)usb 設(shè)備尚未配置或者取消配置后,該引腳輸出高電平;當(dāng)usb 設(shè)備配置完成后,該引腳輸出低電平。對(duì)于ch375a 芯片,在usb主機(jī)方式下,當(dāng)usb 設(shè)備斷開(kāi)后,該引腳輸出高電平;當(dāng)usb設(shè)備連接后,該引腳輸出低電平。ch375 的act#引腳可以外接串了限流電阻的發(fā)光二級(jí)管led,用于指示相關(guān)的狀態(tài)。ch375 芯片的ud+和ud-引腳是usb 信號(hào)線,工作于usb 設(shè)備方式時(shí),應(yīng)該直接連接到usb總線上
14、;工作于usb 主機(jī)方式時(shí),可以直接連接到usb設(shè)備。如果為了芯片安全而串接保險(xiǎn)電阻或者電感,那么交直流等效串聯(lián)電阻應(yīng)該在5之內(nèi)。ch375芯片內(nèi)置了電源上電復(fù)位電路,一般情況下,不需要外部提供復(fù)位。rsti 引腳用于從外部輸入異步復(fù)位信號(hào);當(dāng)rsti 引腳為高電平時(shí),ch375芯片被復(fù)位;當(dāng)rsti 引腳恢復(fù)為低電平后,ch375會(huì)繼續(xù)延時(shí)復(fù)位20ms 左右,然后進(jìn)入正常工作狀態(tài)。為了在電源上電期間可靠復(fù)位并且減少外部干擾,可以在rsti引腳與vcc 之間跨接一個(gè)容量為0.47uf 左右的電容。rst引腳和rst#引腳是復(fù)位狀態(tài)輸出引腳,分別是高電平有效和低電平有效;當(dāng)ch375電源上電復(fù)位
15、或者被外部強(qiáng)制復(fù)位以及復(fù)位延時(shí)期間,rst 引腳和rst#引腳分別輸出高電平和低電平;ch375復(fù)位完成后,rst 引腳和rst#引腳分別恢復(fù)到低電平和高電平。rst 和rst#引腳可以用于向外部單片機(jī)提供上電復(fù)位信號(hào)。 ch375芯片正常工作時(shí)需要外部為其提供12mhz 的時(shí)鐘信號(hào)。一般情況下,時(shí)鐘信號(hào)由ch375內(nèi)置的反相器通過(guò)晶體穩(wěn)頻振蕩產(chǎn)生。外圍電路只需要在xi 和xo 引腳之間連接一個(gè)標(biāo)稱頻率為12mhz的晶體,并且分別為xi 和xo 引腳對(duì)地連接一個(gè)高頻振蕩電容。如果從外部直接輸入12mhz時(shí)鐘信號(hào),那么應(yīng)該從xi 引腳輸入,而xo 引腳懸空。ch375芯片支持5v電源電壓或者3.
16、3v 電源電壓。當(dāng)使用5v 工作電壓時(shí),ch375 芯片的vcc引腳輸入外部5v 電源,并且v3 引腳應(yīng)該外接容量為0.01uf 左右的電源退耦電容。當(dāng)使用3.3v 工作電壓時(shí),ch375 芯片的v3引腳應(yīng)該與vcc引腳相連接,同時(shí)輸入外部的3.3v 電源,并且與ch375 芯片相連接的其它電路的工作電壓不能超過(guò)3.3v。3.6 內(nèi)部結(jié)構(gòu) ch375 芯片內(nèi)部集成了pll 倍頻器、主從usb 接口sie、數(shù)據(jù)緩沖區(qū)、被動(dòng)并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等。pll 倍頻器用于將外部輸入的12mhz 時(shí)鐘倍頻到48mhz,作為usb 接口sie 時(shí)鐘。 主從
17、usb 接口sie是usb主機(jī)方式和usb設(shè)備方式的一體式sie,用于完成物理的usb數(shù)據(jù)接收和發(fā)送,自動(dòng)處理位跟蹤和同步、nrzi編碼和解碼、位填充、并行數(shù)據(jù)與串行數(shù)據(jù)之間的轉(zhuǎn)換、crc數(shù)據(jù)校驗(yàn)、事務(wù)握手、出錯(cuò)重試、usb 總線狀態(tài)檢測(cè)等。 數(shù)據(jù)緩沖區(qū)用于緩沖usb 接口sie 收發(fā)的數(shù)據(jù)。 被動(dòng)并行接口用于與外部單片機(jī)/dsp/mcu 交換數(shù)據(jù)。 異步串行接口用于代替被動(dòng)并行接口與外部單片機(jī)/dsp/mcu 交換數(shù)據(jù)。 命令解釋器用于分析并執(zhí)行外部單片機(jī)/dsp/mcu 提交的各種命令。 控制傳輸?shù)膮f(xié)議處理器用于自動(dòng)處理常用的控制傳輸?shù)亩鄠€(gè)階段,簡(jiǎn)化外部固件編程。 通用的固件程序包含兩組:
18、一組用于usb 設(shè)備方式,自動(dòng)處理usb默認(rèn)端點(diǎn)0 的各種標(biāo)準(zhǔn)事務(wù)等;另一組用于usb 主機(jī)方式,自動(dòng)處理mass-storage 海量存儲(chǔ)設(shè)備的專用通訊協(xié)議。 ch375 芯片內(nèi)部具有7 個(gè)物理端點(diǎn): 端點(diǎn)0 是默認(rèn)端點(diǎn),支持上傳和下傳,上傳和下傳緩沖區(qū)各是8 個(gè)字節(jié); 端點(diǎn)1包括上傳端點(diǎn)和下傳端點(diǎn),上傳和下傳緩沖區(qū)各是8個(gè)字節(jié),上傳端點(diǎn)的端點(diǎn)號(hào)是81h,下傳端點(diǎn)的端點(diǎn)號(hào)是01h; 端點(diǎn)2 包括上傳端點(diǎn)和下傳端點(diǎn),上傳和下傳緩沖區(qū)各是64 個(gè)字節(jié),上傳端點(diǎn)的端點(diǎn)號(hào)是82h,下傳端點(diǎn)的端點(diǎn)號(hào)是02h; 主機(jī)端點(diǎn)包括輸出端點(diǎn)和輸入端點(diǎn),輸出和輸入緩沖區(qū)各是64 個(gè)字節(jié),主機(jī)端點(diǎn)與端點(diǎn)2合用同一組
19、緩沖區(qū),主機(jī)端點(diǎn)的輸出緩沖區(qū)就是端點(diǎn)2 的上傳緩沖區(qū),主機(jī)端點(diǎn)的輸入緩沖區(qū)就是端點(diǎn)2 的下傳緩沖區(qū)。 ch375 的端點(diǎn)0、1、2 只用于usb 設(shè)備方式,在usb 主機(jī)方式下只需要用到主機(jī)端點(diǎn)。在usb 主機(jī)方式下,ch375 支持各種常用的usb 全速設(shè)備。usb 設(shè)備的端點(diǎn)號(hào)可以是015,兩個(gè)方向最多支持31 個(gè)端點(diǎn),usb 設(shè)備的包長(zhǎng)度可以是064 字節(jié)。 內(nèi)置固件可以處理mass-storage 海量存儲(chǔ)設(shè)備的通訊協(xié)議,要求usb 存儲(chǔ)設(shè)備支持bulk-only傳輸協(xié)議,支持scsi、ufi、rbc或者等效的命令集,并且數(shù)據(jù)端點(diǎn)的最大包長(zhǎng)度是64 字節(jié),但是默認(rèn)端點(diǎn)0 的最大包長(zhǎng)度可
20、以是8、16、32 或者64 字節(jié)。如果usb 存儲(chǔ)設(shè)備不符合上述要求,則需要外部單片機(jī)通過(guò)控制傳輸以及issue_token 命令或者issue_tkn_x命令自行處理相關(guān)通訊協(xié)議。圖3 ch375芯片內(nèi)部中斷邏輯圖3.7 本地端的單片機(jī)軟件 ch375芯片占用兩個(gè)地址位,當(dāng)a0 引腳為高電平時(shí)選擇命令端口,可以寫入命令;當(dāng)a0引腳為低電平時(shí)選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù)。單片機(jī)通過(guò)8 位并口對(duì)ch375 芯片進(jìn)行讀寫,所有操作都是由一個(gè)命令碼、若干個(gè)輸入數(shù)據(jù)和若干個(gè)輸出數(shù)據(jù)組成,部分命令不需要輸入數(shù)據(jù),部分命令沒(méi)有輸出數(shù)據(jù)。命令操作步驟如下:、在a0=1 時(shí)向命令端口寫入命令代碼;、如果該命令
21、具有輸入數(shù)據(jù),則在a0=0 時(shí)依次寫入輸入數(shù)據(jù),每次一個(gè)字節(jié);、如果該命令具有輸出數(shù)據(jù),則在a0=0 時(shí)依次讀取輸出數(shù)據(jù),每次一個(gè)字節(jié);、命令完成,可以暫?;蛘咿D(zhuǎn)到繼續(xù)執(zhí)行下一個(gè)命令。 ch375芯片專門用于處理usb 通訊,在檢測(cè)到usb 總線的狀態(tài)變化時(shí)或者命令執(zhí)行完成后,ch375以中斷方式通知單片機(jī)進(jìn)行處理。3.8 單片機(jī)讀寫u盤文件 圖4 單片機(jī)讀寫u 盤文件 一般情況下,單片機(jī)或嵌入式系統(tǒng)處理usb 存儲(chǔ)設(shè)備的文件系統(tǒng)需要實(shí)現(xiàn)上圖左邊的4個(gè)層次,右邊是usb 存儲(chǔ)設(shè)備的內(nèi)部結(jié)構(gòu)層次。由于ch375 不僅是一個(gè)通用的usb-host 硬件接口芯片,還內(nèi)置了相關(guān)的固件程序,包含了上圖左
22、邊的3 個(gè)層次(標(biāo)為灰色部分),所以實(shí)際的單片機(jī)程序只需要處理fat 文件系統(tǒng)層,并且即使這一層也可以由ch375 的u 盤文件級(jí)子程序庫(kù)實(shí)現(xiàn)。 如果不需要處理文件系統(tǒng),也就是不處理上圖左邊的最頂層,那么ch375 直接提供了數(shù)據(jù)塊的讀寫接口,以512字節(jié)的物理扇區(qū)為基本讀寫單位,從而將usb存儲(chǔ)設(shè)備簡(jiǎn)化為一種外部數(shù)據(jù)存儲(chǔ)器,單片機(jī)可以自由讀寫usb 存儲(chǔ)設(shè)備中的數(shù)據(jù),也可以自由定義其數(shù)據(jù)結(jié)構(gòu)。由于計(jì)算機(jī)將usb 存儲(chǔ)設(shè)備組織為文件系統(tǒng),為了方便單片機(jī)通過(guò)usb移動(dòng)存儲(chǔ)設(shè)備與計(jì)算機(jī)之間交換數(shù)據(jù),單片機(jī)也可以將usb 存儲(chǔ)設(shè)備組織為文件系統(tǒng),也就是處理上圖左邊的最頂層。 ch375以c語(yǔ)言子程序
23、庫(kù)提供了usb存儲(chǔ)設(shè)備的文件級(jí)接口,這些應(yīng)用層接口api包含了常用的文件級(jí)操作,可以移植并嵌入到各種常用的單片機(jī)程序中。 ch375 的u 盤文件級(jí)子程序庫(kù)具有以下特性:支持常用的fat12、fat16 和fat32 文件系統(tǒng),磁盤容量可達(dá)100gb 以上,支持多級(jí)子目錄,支持8.3 格式的大寫字母和中文文件名,可以支持小寫字母或者長(zhǎng)文件名,支持文件打開(kāi)、新建、刪除、讀寫以及搜索等。 ch375 的文件級(jí)子程序庫(kù)需要大約600 字節(jié)的隨機(jī)存儲(chǔ)器ram 作為緩沖區(qū)。以普通的mcs-51 單片機(jī)為例,文件系統(tǒng)的全部子程序有4kb 到8kb 代碼,并且需要大約80 字節(jié)的內(nèi)部ram 和512 字節(jié)的
24、外部ram 作為緩沖區(qū)。 四,串口版u盤讀寫模塊的說(shuō)明 模塊具有兩個(gè)外部接口:p1 是usb 插座,可以直接插入u 盤或者通過(guò)usb 延長(zhǎng)線連接u盤,當(dāng)進(jìn)行程序升級(jí)或者重新配置時(shí)應(yīng)該通過(guò)usb 對(duì)連線連接計(jì)算機(jī)的usb 端口;p2 是16 腳的雙排針或者插座,用于連接單片機(jī)系統(tǒng)。圖5 串口版u盤模塊正反外觀圖 在串口方式下,單片機(jī)與模塊的p2 端口相連接,只需要使用高8 腳(第9 腳到第16腳),其余引腳可以不連接。模塊可以通過(guò)串行輸入sin、串行輸出sout 連接到單片機(jī)的異步串口,除此之外,啟動(dòng)輸入sta#還應(yīng)該連接到單片機(jī)的一個(gè)i/o 引腳,而中斷輸出int#可以根據(jù)需要決定是否連接到單
25、片機(jī)的中斷引腳。 模塊的串口是1 位起始位、8 位數(shù)據(jù)位、1位停止位的異步串口,串口的通訊波特率可以在功能配置時(shí)設(shè)定,如果未設(shè)定那么默認(rèn)是4800bps(與晶體x2 的頻率有關(guān)),單片機(jī)系統(tǒng)可以根據(jù)需要通過(guò)cmd_baudrate 命令設(shè)定更高的波特率。如果在功能配置時(shí)選擇檢查串口超時(shí),那么在通過(guò)串口輸入命令包時(shí),模塊會(huì)檢查串口數(shù)據(jù)輸入超時(shí),如果連續(xù)兩個(gè)數(shù)據(jù)字節(jié)之間的間隔大于串口輸入超時(shí)時(shí)間,則模塊將放棄該命令包。 4+1 線串口是指gnd、sin、sout、sta#和可選的int#,p2 引腳定義如下:圖6 模塊引腳定義圖 為了節(jié)約單片機(jī)的i/o 引腳,模塊還支持三線制串口,在這種方式下,單
26、片機(jī)與模塊之間只需要連接sin 和sout 兩根信號(hào)線及公共地線,單片機(jī)通過(guò)串口發(fā)送兩個(gè)同步碼字節(jié)(57h、abh)代替原來(lái)向模塊的sta#引腳提供的啟動(dòng)信號(hào),實(shí)現(xiàn)與模塊的命令同步。在通過(guò)串口輸入兩個(gè)同步碼字節(jié)時(shí),模塊會(huì)檢查串口數(shù)據(jù)輸入超時(shí),如果連續(xù)兩個(gè)數(shù)據(jù)字節(jié)之間的間隔大于串口輸入超時(shí)時(shí)間,則模塊將放棄該同步碼及命令包。圖7 ttl電平轉(zhuǎn)rs232電平經(jīng)行通信的串口模塊電路圖 圖8 串口版模塊與單片機(jī)之間的電路連接圖圖9 單片機(jī)系統(tǒng)串口與rs232借口連接電路圖圖10 單片機(jī)系統(tǒng)和模塊之間連接的實(shí)物圖六,軟件設(shè)計(jì) 為了使上位pc 機(jī)能夠直接讀取該讀寫器寫入u 盤的數(shù)據(jù),數(shù)據(jù)存儲(chǔ)按照f(shuō)at32
27、 文件管理方式存儲(chǔ),其中涉及usb 和ufi 協(xié)議以及fat32 文件存儲(chǔ)格式。6.1 usb協(xié)議 usb(通用串行總線)用于將usb 接口的外圍設(shè)備(device)連接到主機(jī)(host),實(shí)現(xiàn)二者之間數(shù)據(jù)傳輸?shù)耐獠靠偩€結(jié)構(gòu),是一種快速、靈活的總線接口,usb 的傳輸類型有控制(control)、批量(bulk)、中斷(interrupt)和同步(synchronous)傳輸4 種,它最大的特點(diǎn)是易于使用,即插即用,主要是用在中速和低速的外設(shè)。 控制數(shù)據(jù)用于在usb 接入總線時(shí)對(duì)其進(jìn)行配置,其他的驅(qū)動(dòng)軟件可以根據(jù)具體的應(yīng)用來(lái)選擇使用控制傳輸,這種數(shù)據(jù)傳輸不會(huì)丟失數(shù)據(jù)。 典型的批量數(shù)據(jù)包括象使用
28、打印機(jī)或掃描儀時(shí)所出現(xiàn)的大數(shù)據(jù)量的數(shù)據(jù),這種批量數(shù)據(jù)是連續(xù)的,通過(guò)在硬件中實(shí)現(xiàn)差錯(cuò)檢測(cè)功能,并且有選擇地進(jìn)行一定的應(yīng)進(jìn)重試操作,可以在硬件層次上保證數(shù)據(jù)的可靠交換。 由設(shè)備自發(fā)產(chǎn)生的數(shù)據(jù)傳輸是中斷數(shù)據(jù)傳輸,這類數(shù)據(jù)傳輸可以由usb 設(shè)備在任意時(shí)刻發(fā)起,而且usb 總線以不低于設(shè)備說(shuō)明的速率進(jìn)行傳輸。 同步數(shù)據(jù)在產(chǎn)生、傳送和處理過(guò)程中是連續(xù)的和實(shí)時(shí)的,在穩(wěn)定的同步數(shù)據(jù)發(fā)送和接收速率中包含了相應(yīng)的時(shí)鐘信息,為了保持定時(shí)關(guān)系,同步數(shù)據(jù)必須按照接收的速率進(jìn)行傳輸。6.2 bulk_only 和ufi 協(xié)議 usb 設(shè)備分為5 大類,即顯示器、通信設(shè)備、音頻設(shè)備、人機(jī)輸入和海量存儲(chǔ)。通常所用的u 盤、移
29、動(dòng)硬盤均屬于海量存儲(chǔ)類。海量存儲(chǔ)類的規(guī)范中包括4 個(gè)獨(dú)立的子規(guī)范,即cbi 傳輸、bulk-only 傳輸、ata 命令塊、ufi 命令規(guī)范。前兩個(gè)協(xié)議定義了數(shù)據(jù)/命令/狀態(tài)在usb 總線上的傳輸方法,bulk-only 傳輸協(xié)議僅僅使用bulk 端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),cbi 傳輸協(xié)議則使用control/bulk/interrupt 三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)的傳送。后兩個(gè)協(xié)議定義了存儲(chǔ)介質(zhì)的操作命令,ata 協(xié)議用于硬盤,ufi 協(xié)議則針對(duì)usb 移動(dòng)存儲(chǔ),u盤讀寫器的設(shè)計(jì)遵循bulk-only 傳輸協(xié)議和ufi 命令規(guī)范。ufi 命令塊規(guī)范是針對(duì)usb 移動(dòng)存儲(chǔ)而制定的,它總
30、共定義了19 個(gè)12 字節(jié)長(zhǎng)度的操作命令。 bulk-only 事務(wù)以主機(jī)向設(shè)備發(fā)送cbw(command block warp)包,并以建立相應(yīng)的數(shù)據(jù)傳輸開(kāi)始的,設(shè)備接收到cbw 包,檢查并解釋它,試圖滿足主機(jī)的要求,并通過(guò)csw(command state wrap)包向主機(jī)返回狀態(tài)信息。 cbw 是主機(jī)通過(guò)bulk-out 端點(diǎn)向設(shè)備發(fā)送的命令塊包,在cbw 中使用方向位和數(shù)據(jù)傳輸長(zhǎng)度域指明期待的傳輸,cbw 必須起始于包邊界,并且必須以31 字節(jié)的短包傳輸結(jié)束,相繼的數(shù)據(jù)包和csw 包必須開(kāi)始于一個(gè)新的包邊界,所有的cbw 包必須按低字節(jié)在前的次序傳輸。cbw包結(jié)構(gòu)如圖所示,各域含義如
31、下: 圖10 cbw包結(jié)構(gòu)1)命令塊包標(biāo)識(shí)。cbw 包標(biāo)記,表明這是一個(gè)cbw 包,這個(gè)域的值為43425355h。2)命令塊標(biāo)記。當(dāng)設(shè)備返回相應(yīng)的csw 包時(shí),必須使命令狀態(tài)標(biāo)記域的值與此值相同。3)數(shù)據(jù)傳輸長(zhǎng)度。指明命令執(zhí)行期間在bulk 端點(diǎn)上傳數(shù)據(jù)的字節(jié)長(zhǎng)度,如果這個(gè)域的值是0,則在cbw 和csw 之間設(shè)備和主機(jī)不傳輸任何數(shù)據(jù),并且設(shè)備將忽略在命令塊標(biāo)旗域中的方向位的值。4)命令塊標(biāo)旗。方向位規(guī)定了bulk 端點(diǎn)數(shù)據(jù)傳輸?shù)姆较?,其他位預(yù)留。5)邏輯單元號(hào)。指定命令塊被發(fā)送到的邏輯單元號(hào),如果設(shè)備不支持多個(gè)邏輯單元號(hào),則主機(jī)將這個(gè)域設(shè)置為0。6)cbwcb 長(zhǎng)度,定義了cbwcb 的有
32、效長(zhǎng)度,合法值為1-16。7)cbwcb。由設(shè)備執(zhí)行的命令,由設(shè)備解釋。csw 向主機(jī)表明來(lái)自于cbw 包的命令塊的執(zhí)行狀態(tài)。設(shè)備收到cbw 包解析處理后將通過(guò)bulk-in 端點(diǎn)發(fā)送一個(gè)csw 包。csw 開(kāi)始于包邊界,并以13 字節(jié)的短包結(jié)束,結(jié)構(gòu)如圖所示,各域含義如下: 圖11 命令狀態(tài)包結(jié)構(gòu)1)命令狀態(tài)包標(biāo)識(shí)。csw 包的標(biāo)記,表明這是一個(gè)csw 包,這個(gè)域的值為53425355h。2)命令狀態(tài)標(biāo)記。次域的值域cbw 包的命令塊標(biāo)記相同。3)數(shù)據(jù)殘余。實(shí)際數(shù)據(jù)傳輸量與cbw 包中規(guī)定的數(shù)據(jù)傳輸長(zhǎng)度的差值。4)命令執(zhí)行狀態(tài),表明命令成功或失敗信息,如果命令執(zhí)行成功,則設(shè)備將設(shè)置此域的值為
33、0,非0 值;則表明失敗或錯(cuò)誤。 ufi 是針對(duì)usb 移動(dòng)存儲(chǔ)而制定的命令塊協(xié)議,它規(guī)定了主機(jī)和設(shè)備進(jìn)行信息交換所使用的命令塊、數(shù)據(jù)和狀態(tài)信息,bulk-only 傳輸協(xié)議定義了傳輸這些信息的方法,其中ufi 命令塊是封裝在cbw 包中的cbwcb,設(shè)備通過(guò)讀取cbwcb 確定具體要執(zhí)行何種操作命令(如讀命令),如何完成這個(gè)命令(如從閃存的哪個(gè)地址讀,需要讀取的長(zhǎng)度),設(shè)備將命令的執(zhí)行狀態(tài)封裝成csw 返回給主機(jī)。 ufi 用于大多數(shù)命令的12 字節(jié)命令塊的描述,結(jié)構(gòu)如圖4 所示,其中各參數(shù)意義如下:1)操作命令代碼。指明所需要執(zhí)行的操作命令;2)邏輯單元號(hào)。指明命令將發(fā)送到哪個(gè)邏輯單元,如
34、果設(shè)備只有一個(gè)邏輯單元,則此域的值為0。3)邏輯塊地址。命令操作的起始地址。4)傳輸長(zhǎng)度,指明請(qǐng)求傳輸?shù)臄?shù)據(jù)量,通常以扇區(qū)作單位,但是有幾個(gè)命令是以字節(jié)作單位的,對(duì)于這些命令,傳輸長(zhǎng)度域可以以不同的名字標(biāo)識(shí),若此域的值為0,則表面沒(méi)有數(shù)據(jù)需要傳輸。5)參數(shù)列表長(zhǎng)度,用于指定發(fā)送到設(shè)備的字節(jié)數(shù),這個(gè)域典型的應(yīng)用于發(fā)送到設(shè)備的參數(shù)命令塊(如模式參數(shù)、診斷參數(shù)等),若此域的值為0,則表面沒(méi)有數(shù)據(jù)需要傳輸。6)分配長(zhǎng)度,指明主機(jī)已經(jīng)分配的用于返回?cái)?shù)據(jù)的最大字節(jié)長(zhǎng)度,若此值為0,則表明沒(méi)有數(shù)據(jù)需要傳輸。6.3 fat32 fat 是microsoft 較早推出的文件系統(tǒng),具有高度的兼容性,目前仍然廣泛應(yīng)
35、用于個(gè)人電腦尤其是移動(dòng)存儲(chǔ)設(shè)備中,fat 由引導(dǎo)扇區(qū)、fat1 表、fat2 表、目錄和文件區(qū)組成(其中fat2 表是fat1 表的備份)。磁盤的管理是以扇區(qū)為單位的,而移動(dòng)存儲(chǔ)設(shè)備則是以塊為單位的,fat 將塊映射成扇區(qū),原理相同,fat 將磁盤空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位成為簇。通常情況下,每扇區(qū)512 字節(jié)的原則是不變的,簇的大小一般是2n(n 為整數(shù))個(gè)扇區(qū)的大小。所以以簇為單位而不以扇區(qū)為單位進(jìn)行磁盤的分配,是因?yàn)楫?dāng)區(qū)分容量較大時(shí),采用512 字節(jié)的扇區(qū)管理,會(huì)增加fat 表的項(xiàng)數(shù)和大文件存取的消耗,使文件系統(tǒng)效率不高。 引導(dǎo)扇區(qū)dbr(dos boot recor
36、d)通常占用分區(qū)的第0 扇區(qū),共512 字節(jié),fat 表緊隨其后。dbr 的第一部分是一個(gè)x86 跳轉(zhuǎn)指令、廠商標(biāo)志和操作系統(tǒng)版本號(hào),接下來(lái)的從偏移0x0b 開(kāi)始的是一段描述能夠使可執(zhí)行引導(dǎo)代碼找到相關(guān)參數(shù)的消息,通常稱之為bpb。最后是引導(dǎo)程序代碼以及扇區(qū)結(jié)束標(biāo)志。bpb 中記錄了扇區(qū)大小、簇的扇區(qū)數(shù)、保留扇區(qū)數(shù)、fat 表大小和文件系統(tǒng)類型等重要參數(shù),用于文件的索引和定位計(jì)算。7.4 軟件系統(tǒng)模塊 usb 讀寫器軟件由主模塊、usb 模塊、bulk 模塊、fat 模塊和中斷處理模塊組成。各模塊之間相互協(xié)調(diào)調(diào)用,共同完成對(duì)u 盤文件的讀寫創(chuàng)建。 usb 模塊負(fù)責(zé)檢測(cè)usb 設(shè)備的移入/移出,
37、對(duì)插入的設(shè)備進(jìn)行枚舉,分配設(shè)備地址端點(diǎn)號(hào),配置設(shè)備接口端點(diǎn)描述符,建立bulk_only 輸入/輸出通道,bulk 模塊則在已建立的bulk_only 輸入/輸出通道發(fā)送cbw 數(shù)據(jù)包,并接收csw 數(shù)據(jù)包,通過(guò)cbw 中嵌入的cbwcb 信息確定對(duì)u 盤讀/寫操作的扇區(qū)位置和大小,fat 模塊主要完成簇和扇區(qū)間的索引定位,即在u 盤內(nèi)尋址,利用bpb 中的參數(shù)計(jì)算給定扇區(qū)的所在簇以及進(jìn)入休眠狀態(tài),等待外部中斷喚醒。 中斷處理模塊是在中斷喚醒后根據(jù)中斷類型進(jìn)入不同功能子模塊的,也是整個(gè)軟件系統(tǒng)的核心部分。中斷模塊接收到串口或并口數(shù)據(jù)后,根據(jù)內(nèi)部命令字要求進(jìn)行解析。 串口或并口數(shù)據(jù)接收流程如圖所
38、示。 圖12 ufi結(jié)構(gòu) 圖13 命令與數(shù)據(jù)字結(jié)構(gòu)七,總結(jié) 此次科研立項(xiàng)是我們從大學(xué)生活重要的一步。從最初的選題,開(kāi)題到查資料、設(shè)計(jì)電路,編寫程序直到完成設(shè)計(jì)。其間,查找資料,老師指導(dǎo),與同學(xué)交流,反復(fù)修改電路和程序,每一個(gè)過(guò)程都是對(duì)自己能力的一次檢驗(yàn)和充實(shí)。 通過(guò)這次實(shí)踐,我了解了單片機(jī)讀寫u 盤的用途及工作原理,熟悉了單片機(jī)讀寫u 盤的設(shè)計(jì)步驟,鍛煉了工程設(shè)計(jì)實(shí)踐能力,培養(yǎng)了自己獨(dú)立設(shè)計(jì)能力。此次科研立項(xiàng)是對(duì)我專業(yè)知識(shí)和專業(yè)基礎(chǔ)知識(shí)一次實(shí)際檢驗(yàn)和鞏固,同時(shí)也是我為未來(lái)的單片機(jī)和嵌入式開(kāi)發(fā)與應(yīng)用的的一次熱身。 通過(guò)這次科研立項(xiàng)收獲很多,比如學(xué)會(huì)了查找相關(guān)資料相關(guān)標(biāo)準(zhǔn),分析數(shù)據(jù),提高了自己的電
39、路設(shè)計(jì)和程序設(shè)計(jì)的能力,懂得了許多經(jīng)驗(yàn)公式的獲得是前人不懈努力的結(jié)果。同時(shí),仍有很多課題需要后來(lái)人去努力去完善。 但是這次科研立項(xiàng)也暴露出自己專業(yè)基礎(chǔ)的很多不足之處。比如缺乏綜合應(yīng)用專業(yè)知識(shí)的能力,對(duì)集成芯片的不了解等等。這次科研立項(xiàng)是對(duì)自己到現(xiàn)在為止大學(xué)所學(xué)的一次大檢閱,使我明白自己知識(shí)還很淺薄,雖然大學(xué)生活已經(jīng)過(guò)了一大半,但是自己的求學(xué)之路還很長(zhǎng),以后更應(yīng)該在有限的大學(xué)生活學(xué)習(xí)中,努力的學(xué)習(xí)好專業(yè)文化知識(shí)和動(dòng)手能力,同時(shí)也要提高自己各方面的綜合素質(zhì),努力使自己成為一個(gè)對(duì)社會(huì)有所貢獻(xiàn)的人。參考文獻(xiàn):【1】基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 沈紅衛(wèi)著,電子工業(yè)出版社【2】單片機(jī)技術(shù)應(yīng)用朱運(yùn)利著,機(jī)
40、械工業(yè)出版社【3】mcs-51 單片機(jī)開(kāi)發(fā)與應(yīng)用指南孫永浩著 黑龍江科學(xué)技術(shù)出版社【4】ez-usb fx2單片機(jī)原理,編程及應(yīng)用錢峰著,北京航空航天大學(xué)出版社【5】ch375中文技術(shù)手冊(cè)【6】串口版u盤讀寫模塊中文技術(shù)手冊(cè)附錄:以下程序可以演示單片機(jī)以字節(jié)的方式讀寫u盤,該程序?qū)崿F(xiàn)的功能是:打開(kāi)u盤中的一個(gè)文件exambyte.txt,再新建一個(gè)文件newfile.txt,在newfile.txt文件中寫入“note:這個(gè)程序是以字節(jié)為單位進(jìn)行u盤文件讀寫的示例程序,首先從原文件中讀出前20個(gè)字符,然后寫到本說(shuō)明的后面:”然后從文件exambyte.txt中讀取前20字節(jié)的數(shù)據(jù),寫入文件ne
41、wfile.txt中。即可實(shí)現(xiàn)單片機(jī)以字節(jié)對(duì)u盤讀和寫的功能。#include #include #include #include #define max_path_len32#include unsigned chartemplength;unsigned char idatatempbuffer20;cmd_paramidatamcmdparam;sbitled_out=p04;sbit p2_0=p20;voidmdelayms( unsigned char delay )unsigned chari, j, c;for ( i = delay; i != 0; i - ) for (
42、 j = 200; j != 0; j - ) c += 3; for ( j = 200; j != 0; j - ) c += 3; voidmsendbyte( unsigned char c )/* 發(fā)送一個(gè)字節(jié)數(shù)據(jù)給ch375模塊 */ti = 0;sbuf = c;while ( ti = 0 );unsigned charmrecvbyte( )/* 從ch375模塊接收一個(gè)字節(jié)數(shù)據(jù) */unsigned charc; while ( ri = 0 );c = sbuf; ri = 0;return( c );unsigned charexeccommand( unsigned
43、char cmd, unsigned char len )/* 命令函數(shù) */unsigned chari, j, status; msendbyte( ser_sync_code1 ); msendbyte( ser_sync_code2 ); msendbyte( cmd ); msendbyte( len ); ri = 0; if ( len ) for ( i = 0; i != len; i + ) msendbyte( mcmdparam.other.mbuffer i ); while ( 1 ) status = mrecvbyte(); if ( status = err_
44、success ) i = mrecvbyte( ); led_out = 0; if ( i ) j = 0; do mcmdparam.other.mbuffer j = mrecvbyte( ); j +; while ( - i ); break; else if ( status = usb_int_disk_read | status = usb_int_disk_write | status = usb_int_disk_retry ) break; else if ( status = err_disk_discon | status = err_usb_connect ) m
45、delayms( 100 ); break; return( status );voidmstopiferror( unsigned char ierror )/*錯(cuò)誤檢測(cè)函數(shù)*/ unsigned charled; if ( ierror = err_success ) return; led=0; while ( 1 ) led_out = led&1; /* led閃爍 */mdelayms( 100 );led=1;main( ) unsigned chari; unsigned shortcount;unsigned char*pstr; mdelayms( 500 );p2_0=0
46、;led_out = 0; mdelayms( 100 ); mdelayms( 100 );led_out = 1; scon = 0x50;pcon = 0x80;tmod = 0x20;th1 = 0xe8;/* 22.1184mhz晶振, 4800bps */tr1 = 1;while ( 1 ) /* 程序中使用查詢方式查詢模塊狀態(tài),和向模塊發(fā)送同步碼啟動(dòng)操作,然后發(fā)送相關(guān)的命令 */ while ( 1 ) i = execcommand( cmd_querystatus, 0 ); mstopiferror( i ); if ( mcmdparam.status.mdiskstatus = disk_connect ) break; mdelayms( 100 ); mdelayms( 500 ); led_out = 0;for ( i = 0; i 5; i + ) mdelayms( 100 );if ( execcommand( cmd_diskready, 0 ) = err_success ) break;/*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 被打孩子和解協(xié)議書
- 單包工勞務(wù)合同協(xié)議書
- 銷售插畫授權(quán)協(xié)議書
- 財(cái)務(wù)成本管理出題趨勢(shì)試題及答案
- 系統(tǒng)化梳理2025年軟件設(shè)計(jì)師考試試題及答案
- 語(yǔ)言風(fēng)格在文學(xué)中的重要性試題及答案
- 關(guān)鍵知識(shí)點(diǎn)的C++考試試題及答案總結(jié)
- 國(guó)考法律基礎(chǔ)試題及答案
- 2025年計(jì)算機(jī)二級(jí)MySQL復(fù)習(xí)要點(diǎn)提示試題及答案
- 計(jì)算機(jī)二級(jí)考試試題經(jīng)驗(yàn)與答案
- 課件6:環(huán)控電控柜主要部件-馬達(dá)保護(hù)器
- 2024年中考語(yǔ)文記述文閱讀題答題模板及練習(xí):人稱及其作用分析(原卷版)
- 高空吊板作業(yè)專項(xiàng)方案
- 事業(yè)單位員工保密協(xié)議書范本(2024版)
- 小學(xué)生偏旁部首所表示的意義
- 七年級(jí)歷史上冊(cè) 第一單元 單元測(cè)試卷(人教版 2024年秋)
- JG-T+502-2016環(huán)氧樹(shù)脂涂層鋼筋
- 業(yè)務(wù)協(xié)作費(fèi)用協(xié)議書
- CJJ99-2017 城市橋梁養(yǎng)護(hù)技術(shù)標(biāo)準(zhǔn)
- 國(guó)際金融(吉林大學(xué))智慧樹(shù)知到期末考試答案章節(jié)答案2024年吉林大學(xué)
- 高處作業(yè)安全施工方案
評(píng)論
0/150
提交評(píng)論