




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
..目錄摘要1第一章緒論11.1本論文的研究目的和意義11.2USB簡介21.3單片機技術(shù)及AVR單片機性能簡介3第二章設(shè)計構(gòu)思42.1技術(shù)背景42.2方案選擇82.3本章小結(jié)11第三章系統(tǒng)硬件設(shè)計113.1MCU的選擇113.2硬件電路設(shè)計143.3本章小結(jié)14第四章系統(tǒng)軟件設(shè)計144.1系統(tǒng)固件程序設(shè)計144.2系統(tǒng)驅(qū)動程序設(shè)計154.3ISP下載控制軟件234.4本章小結(jié)24第五章應(yīng)用測試245.1USB下載器驅(qū)動安裝245.2上位機應(yīng)用程序測試255.3測試及結(jié)果分析26第六章全文總結(jié)與展望286.1全文總結(jié)286.2展望29致謝30參考文獻31附錄33..AVR單片機的USB在線下載器設(shè)計及實現(xiàn)學(xué)生:劉煒指導(dǎo)丁曉波〔三峽大學(xué)電氣信息學(xué)院摘要:本文設(shè)計實現(xiàn)了一個基于USB技術(shù)的下載器,該下載器可以通過USB下載線將AVR單片機的HEX程序通過SPI線路下載到目標(biāo)單片機中。在設(shè)計上采用ATmega8單片機做控制器,它與計算機的通信采用USB通信技術(shù),對目標(biāo)芯片編程采用ISP技術(shù),從而可以方便地在所有具有USB接口的計算機上進行AVR單片機系統(tǒng)及其他支持在線編程單片機系統(tǒng)的開發(fā)。經(jīng)測試該下載器能夠?qū)纹瑱C在線編程,在速度,可靠性等方面較并口下載器有較大的提高。關(guān)鍵詞:USB技術(shù);同步串行通信SPI;ISP在線編程;WDM驅(qū)動;Abstract:Inthispaper,adesigntechnologybasedontheUSBdevicetodownload,thedownloadcanbedownloadedthroughtheUSBlinetoAVRmicrocontrollerthroughtheSPIlinesHEXprogramdownloadedtothetargetMCU.ATmega8usedinthedesignofsingle-chipcontrollertodoitwiththecomputerusingtheUSBcommunicationtechnologycommunications,onthetargetchipusingISPprogrammingtechnology,whichcaneasilyhaveaUSBinterfaceinallthecomputersandtheAVRMCUSystemsothersingle-chipsupportforonlineprogrammingsystem.Testedthedownloadofthesingle-chipdevicetoonlineprogramming,intermsofspeed,reliabilityandsoonthantheparallelporttodownloaddevicehasgreatlyimproved.Keywords:USBtechnology;synchronousserialcommunicationSPI;ISPonlineprogramming;WDMdriver;第一章緒論1.1本論文的研究目的和意義通常進行單片機實驗和開發(fā),編程器是必不可少的。仿真、調(diào)試完的程序要借助編程器寫入單片機的存儲器中,隨著單片機技術(shù)的發(fā)展出現(xiàn)了MTP<可多次編程>存儲器技術(shù)和ISP<在系統(tǒng)可編程>技術(shù),這樣就可以省去昂貴的仿真器,只要通過計算機接口和一條串行下載線就可直接在目標(biāo)芯片上編程。目前,比較成熟的ISP下載器大多是基于串口或者并口通信的,但存在以下問題:<1>用戶PC機的主頻、硬件和操作系統(tǒng)不同,可能會造成控制信號錯誤;<2>不同的廠商提供不同的ISP下載器,互不兼容,給嵌入式開發(fā)帶來不便;<3>限于串、并口的通信協(xié)議,ISP數(shù)據(jù)傳輸速率較低,影響嵌入式產(chǎn)品的開發(fā)。基于以上原因,本課題要求完成一個基于計算機USB端口的AVR程序下載器,利用該下載器可以通過計算機的USB端口實現(xiàn)對SPI信號的模擬,并完成對AVR程序的下載。從而可以方便地在所有具有USB接口的計算機上進行AVR單片機開發(fā)。1.2USB簡介USB,全稱為UniversalSerialBus〔通用串行總線,它是由Compaq、IBM、Intel、NEC、Microsoft等一些PC大廠商聯(lián)合開發(fā)的一種新型的、基于令牌的、高速的串行接口標(biāo)準(zhǔn)。USB把各種不同的接口統(tǒng)一起來,僅用一個4針插頭作為標(biāo)準(zhǔn)插頭,通過這個標(biāo)準(zhǔn)插頭,采用菊花鏈形式可以把所有的外設(shè)連接起來,并且不會損失帶寬。傳輸速度是USB發(fā)展的主要指標(biāo)之一,USB協(xié)議已從最初的速度只有1.5Mbps<慢速>和12Mbps〔全速的1.1版本,發(fā)展到速度高達480Mbps的2.0版本。如今專門用于USB外設(shè)間"可移動互連"的2.0補充規(guī)范USBOTG〔On-The-Go已經(jīng)發(fā)布,使得USB總線可以進行點對點的數(shù)據(jù)傳輸,而不一定要求主機的參與。USB接口已被各種流行的操作系統(tǒng)所支持,并應(yīng)用于各種數(shù)據(jù)終端設(shè)備中。它之所以能夠在當(dāng)今的外圍設(shè)備標(biāo)準(zhǔn)接口中占有重要的地位,是由于它具有以下的性能特點:●終端用戶的易用性:為連接電纜和連接頭提供了單一的模型;支持即插即用和熱拔插;自我檢測外設(shè),自動地進行設(shè)備驅(qū)動設(shè)置;可動態(tài)連接,動態(tài)重置外設(shè)。●應(yīng)用廣泛性:適應(yīng)不同的設(shè)備,提供低速傳輸〔1.5Mbps、全速傳輸〔12Mbps和高速傳輸〔480Mbps;可連接至多127個物理設(shè)備,并支持對多個設(shè)備的同時操作;在主機和設(shè)備之間可以傳輸多個數(shù)據(jù)和信息流;利用底層協(xié)議,提高了總線利用率?!裢絺鬏攷挘捍_定的帶寬和低延遲適合系統(tǒng)和音頻的應(yīng)用;同步工作可以利用整個總線帶寬?!耢`活性:可以選擇一系列大小的數(shù)據(jù)包,允許對設(shè)備緩沖區(qū)大小進行選擇;通過指定數(shù)據(jù)緩沖區(qū)大小和執(zhí)行時間,支持各種數(shù)據(jù)傳輸率;通過協(xié)議對數(shù)據(jù)流進行緩沖處理。●健壯性:出錯處理/差錯恢復(fù)機制在協(xié)議中使用;對用戶感覺而言,熱拔插是完全實時的;可以對有缺陷設(shè)備進行認(rèn)定。●與PC產(chǎn)業(yè)的一致性:協(xié)議的易實現(xiàn)性和完整性;與PC機即插即用的體系結(jié)構(gòu)的一致;對現(xiàn)存操作系統(tǒng)接口的良好銜接?!癯杀镜土阂缘土膬r格提供1.5Mbps的子通道設(shè)施;將外設(shè)和主機硬件進行了最優(yōu)化的集成;促進了低價格外設(shè)的發(fā)展;廉價的電纜和連接頭。對于數(shù)字系統(tǒng)而言,尤其是目前在工業(yè)界被廣泛應(yīng)用的嵌入式系統(tǒng),進行USB技術(shù)的開發(fā)和應(yīng)用是十分必要的。一方面,USB技術(shù)作為一種新興的串行通信技術(shù),隨著協(xié)議版本的不斷更新,傳輸速度已從1.5Mb/s的低速發(fā)展到480Mb/s的高速,可以在很大的程度上滿足不同數(shù)字系統(tǒng)對串行通信的要求。另一方面,USB技術(shù)不同于以往的串行通信接口技術(shù),包含總線通信協(xié)議等內(nèi)容,在實際應(yīng)用中,可以根據(jù)需要把數(shù)字系統(tǒng)開發(fā)成相應(yīng)的USB主機、USB設(shè)備以及USBOTG<USBOn-the-Go,USB主機、從機自適應(yīng)>設(shè)備,在實現(xiàn)不同系統(tǒng)之間的數(shù)據(jù)交互方面有很大的靈活性。對于Sock而言,如果可以將系統(tǒng)內(nèi)對數(shù)據(jù)傳輸要求較高的局部模塊設(shè)計成具有標(biāo)準(zhǔn)接口的點對點連接方式,而總體仍沿用傳統(tǒng)的片內(nèi)總線數(shù)據(jù)傳輸方式,就可以讓SoC器件很好的解決接口復(fù)雜化和同步-異步的協(xié)調(diào)問題。作為標(biāo)準(zhǔn)化的串行通信接口,USB接口是非常適合SoC點對點連接設(shè)計的一種選擇,不但在傳輸速度上可以基本滿足SoC器件中各模塊間數(shù)據(jù)交互的要求,而且從結(jié)構(gòu)上來說,USB電纜只需VBus、GND、D+和D-四根線,非常簡單。因此,基于上述分析,對USB技術(shù)在數(shù)字系統(tǒng)尤其是嵌入式系統(tǒng)中的應(yīng)用方法進行研究,為日后USB技術(shù)在Soc設(shè)計領(lǐng)域廣泛應(yīng)用奠定基礎(chǔ),就顯得尤為重要,具有十分深遠(yuǎn)的意義。1.3單片機技術(shù)及AVR單片機性能簡介AVR單片機是ATMEL公司1997年推出的全新配置精簡指令集RISC〔ReducedInstructionSetCPU單片機。精簡指令集RISC結(jié)構(gòu)是20實際90年代開發(fā)出來的,是綜合了半導(dǎo)體集成技術(shù)和軟件性能的新結(jié)構(gòu)。這種結(jié)構(gòu)使得AVR單片機具有接近1MIPS/MHz的高速處理能力。AVR單片機開發(fā)的目的在于,能采用C語言編程,從而能高效的開發(fā)出目標(biāo)產(chǎn)品。為了對目標(biāo)代碼大小,性能及功耗進行優(yōu)化,AVR單片機采用了大型快速存取寄存器文件和快速單周期指令。快速存取RISC寄存器文件由32個通用工作寄存器組成。傳統(tǒng)的基于累加器的結(jié)構(gòu)需要大量的程序代碼,以實現(xiàn)累加器和存儲器之間的數(shù)據(jù)傳輸;在AVR單片機中,用32個通用工作寄存器代替累加器,從而可避免傳統(tǒng)的累加器和存儲器之間的數(shù)據(jù)傳輸造成的瓶頸現(xiàn)象。AVR單片機運用Harvard結(jié)構(gòu),在前一條指令執(zhí)行的時候就取出現(xiàn)行的指令,然后以一個周期執(zhí)行指令。在其它的CISC以及類似的RISC結(jié)構(gòu)的單片機中,外部振蕩器的時鐘被分頻降低到傳統(tǒng)的內(nèi)部指令執(zhí)行周期,這種分頻最大達12倍。AVR單片機是用一個周期執(zhí)行一條指令的,它是在8位單片機中第一個真正的RISC結(jié)構(gòu)的單片機。AVR單片機采用低功耗,非揮發(fā)的CMOS工藝制造,內(nèi)部分別集成Flash,EEPROM和SRAM三種不同性能和用途的存儲器。除了可以通過SPI口和一般的編程器對AVR單片機的Flash程序存儲器和EEPROM數(shù)據(jù)存儲器進行編程外,絕大多數(shù)的AVR單片機還具有在線編程〔ISP的特點,這給學(xué)習(xí)和使用AVR單片機帶來了極大的方便。第二章設(shè)計構(gòu)思2.1技術(shù)背景嵌入式系統(tǒng)及開發(fā)技術(shù)嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)的應(yīng)用可以說涵蓋了國民經(jīng)濟建設(shè)的各個方面,并處于高速發(fā)展之中,其中在以下幾個方面的發(fā)展尤其顯著:系統(tǒng)機構(gòu)處于復(fù)雜;網(wǎng)絡(luò)互聯(lián)成為必然趨勢;應(yīng)用實時精簡系統(tǒng)內(nèi)核、算法來降低功耗和軟硬件成本;系統(tǒng)提供友好的人機界面。所以,通過對嵌入式系統(tǒng)的基本概念、應(yīng)用以及發(fā)展趨勢的了解,可以看到,嵌入式系統(tǒng)的研究是計算機學(xué)科綜合各項理論和技術(shù)的集大成者。針對這樣的要求,論文本設(shè)計是基于嵌入式系統(tǒng)的USB外設(shè)的開發(fā)。<一>嵌入式系統(tǒng)組成結(jié)構(gòu)嵌入式系統(tǒng)由硬件和軟件兩部分組成,所以其分類可以從硬件和軟件兩方面進行劃分。嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在于:嵌入式CPU大多工作在為特定用戶群所專門設(shè)計的系統(tǒng),它將通用CPU中許多板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。嵌入式處理器的體系結(jié)構(gòu)經(jīng)歷了從CISC〔復(fù)雜指令集到RISC〔精簡指令集的轉(zhuǎn)變,位數(shù)有4位、8位、16位、32位逐步發(fā)展到64位。嵌入式處理器是嵌入式系統(tǒng)硬件部分的核心,近年來嵌入式微處理器的主要發(fā)展方向是小體積、高性能、低功耗。專業(yè)分工也越來越明顯,出現(xiàn)了專業(yè)的IPC〔IntellectualPropertyCore知識產(chǎn)權(quán)供應(yīng)商,如ARM、MIPS等,這些屬于微處理器〔MicroProcessorUnit,MPU,用于計算機通信領(lǐng)域的嵌入式DSP處理器〔DigitalSignalProcessor,DSP和高度集成的嵌入式片上系統(tǒng)〔SystemOnChip,SOC。目前幾乎每一個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,并且越來越多的公司開始擁有自主的處理器的設(shè)計部門,流行的結(jié)構(gòu)有30多個系列,其中以ARM、PowerPC、MIPS等使用得最為廣泛。嵌入式軟件是針對特定應(yīng)用領(lǐng)域,基于某個固定的硬件平臺,用來達到用戶預(yù)期目標(biāo)的計算機軟件。為了嵌入式系統(tǒng)的開發(fā)更加方便和快捷,需要專門負(fù)責(zé)管理存儲器分配、中斷管理、任務(wù)調(diào)度等功能的軟件,這就是所謂的嵌入式系統(tǒng)。嵌入式系統(tǒng)是用來支持嵌入式應(yīng)用的軟件,是嵌入式系統(tǒng)中極為重要的組成部分,它通常包括與硬件相關(guān)的底層驅(qū)動程序、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口,通信協(xié)議、圖形用戶界面〔GUI等。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時性、硬件依賴性、軟件固化性以及應(yīng)用專用性等方面,具有更加鮮明的特點。嵌入式系統(tǒng)根據(jù)應(yīng)用場合分為兩大類:一類是面向消費電子產(chǎn)品的非實時操作系統(tǒng),如Linux,應(yīng)用設(shè)備PDA、機頂盒等;另一類則是面向控制、通信等領(lǐng)域的實時操作系統(tǒng),如VxWorks等。實時操作系統(tǒng)是具有實時性,能支持實時控制系統(tǒng)工作的操作系統(tǒng),其首要任務(wù)是調(diào)度一切可利用的資源完成實時控制任務(wù);其次才著眼于提高系統(tǒng)的使用效率,其重要特點是通過調(diào)度來滿足對于重要事件在規(guī)定時間內(nèi)作出正確的響應(yīng)。嵌入式系統(tǒng)中的軟件除了嵌入式操作系統(tǒng)外還包括嵌入式應(yīng)用軟件,嵌入式應(yīng)用軟件和普通軟件有一定的區(qū)別,它不僅要求在準(zhǔn)確性、安全性和穩(wěn)定性等方面要滿足實際應(yīng)用的需要,并且還要盡可能地進行優(yōu)化,以減少對系統(tǒng)資源的消耗,降低硬件成本?!捕度胧较到y(tǒng)的開發(fā)流程嵌入式系統(tǒng)發(fā)展到今天,對應(yīng)于各種微處理器的硬件平臺一般都是通用的、固定的和成熟的,這就大大減少了由硬件引入錯誤的機會。此外,由于嵌入式操作系統(tǒng)屏蔽了底層硬件的復(fù)雜性,使得開發(fā)者通過操作系統(tǒng)提供的API函數(shù)就可以完成大部分的工作,因此大大簡化了開發(fā)的過程,提高了系統(tǒng)的穩(wěn)定性。嵌入式系統(tǒng)通常是一個資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時候甚至是不可能的。一般需要交叉開發(fā)環(huán)境〔CrossDevelopmentEnvironment的支持。嵌入式系統(tǒng)的交叉開發(fā)環(huán)境一般包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器。這里一般把進行交叉編譯的主機稱為宿主機,也就是普通的通用計算機,而把程序?qū)嶋H的運行環(huán)境稱為目標(biāo)機,也就是嵌入式系統(tǒng)環(huán)境。交叉編譯器用于在宿主機上生成能在目標(biāo)機子上運行的代碼,而交叉調(diào)試器和系統(tǒng)仿真器則用于在宿主機和目標(biāo)機之間完成嵌入式軟件的調(diào)試。嵌入式軟件開發(fā)所采用的編譯為交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。編譯的最主要的工作就在將程序轉(zhuǎn)化成運行該程序的CPU所能識別的機器代碼,由于不同的體系結(jié)構(gòu)有不同的指令系統(tǒng)。因此,不同的CPU需要有相應(yīng)的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯稱不同的CPU對應(yīng)語言。要注意的是,編譯器本身也是程序,也要在與之對應(yīng)的某一個CPU平臺上運行。嵌入式軟件經(jīng)過編譯和鏈接后即進入調(diào)試階段,調(diào)試是軟件開發(fā)過程中必不可少的一個環(huán)節(jié),嵌入式軟件開發(fā)過程中的交叉調(diào)試與通用軟件開發(fā)過程中的調(diào)試方式有很大的差別。在常見軟件開發(fā)中,調(diào)試器與被調(diào)試的程序往往運行在同一臺計算機上,調(diào)試器是一個單獨運行著的進程,它通過操作系統(tǒng)提供的調(diào)試接口來控制被調(diào)試的進程。而在嵌入式軟件開發(fā)中,調(diào)試時采用的是在宿主機和目標(biāo)機之間進行的交叉調(diào)試,調(diào)試器仍然運行在宿主機的通用操作系統(tǒng)之上,但被調(diào)試的進程卻是運行在基于特定硬件平臺的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進程通過串口或者網(wǎng)絡(luò)進行通信,調(diào)試器可以控制、訪問被調(diào)試進程,讀取被調(diào)試進程的當(dāng)前狀態(tài),并能夠改變被調(diào)試進程的運行狀態(tài)。嵌入式系統(tǒng)的交叉調(diào)試有多種方法,主要可分為軟件方式和硬件方式兩種。它們一般都具有如下一些典型特點:調(diào)試器和被調(diào)試進程運行在不同的機器上,調(diào)試器運行在PC機或者工作站上<宿主機>,而被調(diào)試的進程則運行在各種專業(yè)調(diào)試板上<目標(biāo)機>;調(diào)試器通過某種通信方式<串口、并口、網(wǎng)絡(luò)、JTAG等>控制被調(diào)試進程;在目標(biāo)機上一般會具備某種形式的調(diào)試代理,它負(fù)責(zé)與調(diào)試器共同配合完成對目標(biāo)機上運行著的進程的調(diào)試。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件設(shè)備,也可能是某些專門的調(diào)試軟件;目標(biāo)機可能是某種形式的系統(tǒng)仿真器,通過在宿主機上運行目標(biāo)機的仿真軟件,整個調(diào)試過程可以在一臺計算機上運行。此時物理上雖然只有一臺計算機,但邏輯上仍然存在著宿主機和目標(biāo)機的區(qū)別。本設(shè)計即采用嵌入式系統(tǒng)的開發(fā)技術(shù),借助宿主機<通用計算機>來編譯出目標(biāo)機的可執(zhí)行代碼,不再需要編程器,使設(shè)計簡化。2.1.2AVR單片機的在線同步串行接口SPI<SerialPeripheralInterface>允許在ATmega系列單片機和外設(shè)或其他AVR系列單片機之間高速同步數(shù)據(jù)傳輸。它是一個同步的串行通信總線,因此在SPI通信中的發(fā)送器和接收器必須使用相同的時鐘,使接收器能同步監(jiān)測數(shù)據(jù)位。SPI邏輯結(jié)構(gòu)如圖,其核心部件為8位移位寄存器和接收緩存器〔兩者合成為SPI數(shù)據(jù)寄存器,由分頻器,選擇器和時鐘邏輯所組成的時鐘信號發(fā)生器,以及SPI狀態(tài)寄存器,SPI控制寄存器等部件。SPI利用B口的第二功能,將其中的PB7,PB6,PB5及PB4分別定義為SCK,MOSI,MISO和SS。圖2-1SPI數(shù)據(jù)通信時的主-從機連接與數(shù)據(jù)傳送方式對SPI主機數(shù)據(jù)寄存器寫入數(shù)據(jù)以啟動SPI時鐘,通過將需要的從機的/SS引腳拉低,主機啟動一次通訊過程。SCK引腳是主機模式的時鐘輸出和從機模式的時鐘輸入,主機和從機將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的寄存器。主機在SCK引腳上產(chǎn)生時鐘脈沖以交換數(shù)據(jù)。主機的數(shù)據(jù)從主機的MOSI移出,從從機的MOSI移入;從機的數(shù)據(jù)從從機的MISO移出,從主機的MISO移入。主機通過將從機的SS拉高實現(xiàn)與從機的同步。AVR單片機的SPI接口在發(fā)送方向上單緩沖,而在接受方向是雙緩沖。這表示在所有的移位操作完成前,被發(fā)送的字節(jié)不能被寫入SPI的數(shù)據(jù)寄存器;但SPI在接受數(shù)據(jù)時,已經(jīng)收到的數(shù)據(jù)必須在下一個字節(jié)被完全移入之前從SPI數(shù)據(jù)寄存器中讀出,否則這個字節(jié)會丟失。2.1.3ISPISP<In-SystemProgramming>技術(shù)實際上就是用戶在自己設(shè)計的目標(biāo)系統(tǒng)中或電路板上為重構(gòu)器件進行編程或反復(fù)編程時,無需將ISP器件從線路板上拆上拆下。這種可對電路板或整個電子系統(tǒng)隨時進行組態(tài)或重組的功能,給設(shè)計開發(fā)、電路板級調(diào)試和系統(tǒng)升級換代帶來了極大的方便,使得電路系統(tǒng)設(shè)計、生產(chǎn)、維護及更新等環(huán)節(jié)都發(fā)生了革命性的變化。用戶無論想增加或修改電路設(shè)計,都可以在幾分鐘內(nèi)把新的設(shè)計下載到器件中。由此可見,硬件的設(shè)計,象軟件那樣靈活而易于實時修改,這不僅擴展了器件的用途,縮短了系統(tǒng)調(diào)試周期,而且還省略了對器件單獨編程的環(huán)節(jié),簡化了目標(biāo)設(shè)備的現(xiàn)場升級和維護工作,是一種全新的設(shè)計方式。AVR單片機單片機引腳共有4個:RST,MOSI,MISO和SCK。各引腳功能如下:RST為在線編程輸入控制端,僅在ISP下載過程中保持高電平,在系統(tǒng)正常工作時該引腳為系統(tǒng)復(fù)位端,保持低電平狀態(tài)。MOSI為主機輸出/從機輸入的數(shù)據(jù)端,系統(tǒng)正常工作時,該引腳為通用I/OP1.5口線。MISO為主機輸入/從機輸出的數(shù)據(jù)端。系統(tǒng)正常工作時,該引腳為通用I/OP1.6口線。SCK為串行編程的時鐘端,可實現(xiàn)主/從機時序的同步。該時鐘頻率不得超過系統(tǒng)時鐘的1/16。系統(tǒng)正常工作時,該引腳為通用I/OP1.7口線。ISP下載是基于串行傳輸方式,并且符合SPI協(xié)議。在SPI協(xié)議中,數(shù)據(jù)的發(fā)送和接收是同步進行的。即在同步時鐘的作用下,在發(fā)送數(shù)據(jù)的同時也在接收數(shù)據(jù)。ISP的時序如圖所示。圖2-2ISP串行數(shù)據(jù)傳輸時序圖每一字節(jié)的數(shù)據(jù)都是低位在先,高位在后,在串行時鐘的作用下逐位傳輸。在傳輸過程中,數(shù)據(jù)是在時鐘輸入端為高電平時有效,在時鐘輸入端為低電平時更新數(shù)據(jù)。2.2方案選擇通常進行單片機實驗或開發(fā)時,編程器是必不可少的。仿真調(diào)試過的程序需要借助編程器寫入單片機內(nèi)部或外接的程序存儲器中,隨著單片機技術(shù)的應(yīng)用發(fā)展,許多公司新推出的MCU具有片內(nèi)Flash存儲器,Flash存儲器具有電可擦除、無需后備電源保護數(shù)據(jù)、可在線編程等特點。在線編程允許單片機內(nèi)部運行的程序去改寫Flash存儲器的內(nèi)容,利用這個特點,不僅可以在運行過程中修改某些運行參數(shù),也為研制新型嵌入式應(yīng)用開發(fā)工具提供了技術(shù)基礎(chǔ)。采用宿主機/目標(biāo)機模式開發(fā)嵌入式應(yīng)用,利用宿主機上豐富的資源和良好的開發(fā)環(huán)境開發(fā)和仿真調(diào)試目標(biāo)機上的軟件,然后將交叉編譯生成的目標(biāo)代碼傳輸并裝載到目標(biāo)機上,并在監(jiān)控程序或者操作系統(tǒng)的支持下利用交叉調(diào)試器進行分析和調(diào)試,最后目標(biāo)機在脫離宿主機單獨運行。具有在線編程功能的單片機給實驗和開發(fā)帶來了很大的方便和靈活性,并使單片機系統(tǒng)遠(yuǎn)程調(diào)試、升級成為現(xiàn)實。嵌入式面向用戶,面向產(chǎn)品,面向應(yīng)用的特性決定了它的硬件和軟件都必須高效率地設(shè)計,量體裁衣,去除冗余,這樣才能在具體應(yīng)用中更具有競爭力。嵌入式系統(tǒng)這種對體積的敏感性決定了它對外圍接口設(shè)備選擇的嚴(yán)格性。既要保證能與其它外圍設(shè)備高速、有效地通信,又要嚴(yán)格控制接口的體積。而通用串行總線USB正符合了這一要求。而USB1.1的最大傳輸速率可達12Mbps,USB2.0更是支持高達480Mbps的傳輸速率。由于常見的外設(shè)幾乎都支持USB,所以只需一到兩個USB接口,就可以完成嵌入式系統(tǒng)和幾乎所有常見外設(shè)的通信。這種解決方案無疑具有很強的實用性。USB接口分為USB主機USBMaster和USB外設(shè)USBSlave。USB主機負(fù)責(zé)對各種USB外設(shè)的控制并向USB外設(shè)供電。要實現(xiàn)嵌入式系統(tǒng)對各種外圍設(shè)備的有效控制,就必須在嵌入式系統(tǒng)中實現(xiàn)USBMaster的功能。在本設(shè)計中,選用的嵌入式微處理器需要是一款功能強大的RISC微處理器,其時鐘頻率高,它的體積小,功耗低,性能穩(wěn)定。本文采用USB接口技術(shù)和AVR單片機相結(jié)合,完成一個USB下載器,不需要使用編程器,只需要通過USB接口和編程電纜直接在目標(biāo)器件或系統(tǒng)上進行編程。ATMEL公司的AVR系列單片機,提供了一個SPI串行接口對內(nèi)部程序存儲器編程ISP,支持在線編程功能。本設(shè)計選用單片機是ATMEL公司推出的AVR系列單片機,采用上/下位機設(shè)計方式,通過USB通訊方式實現(xiàn)信息傳輸。具體工作原理是:上位機〔PC機首先安裝驅(qū)動程序和PC應(yīng)用軟件,然后將下位機系統(tǒng)安裝到單片機上,將USB插頭插入主機,經(jīng)主機正確識別后,運行PC應(yīng)用軟件將程序下載到目標(biāo)芯片中,下載的程序存儲到下位機存儲單元中,進行ISP下載到目標(biāo)芯片中。用戶操作用戶操作顯示數(shù)據(jù)發(fā)送數(shù)據(jù)接受數(shù)據(jù)數(shù)據(jù)傳遞ISP操作數(shù)據(jù)反饋硬件平臺PC機應(yīng)用軟件USB接口ISP接口目標(biāo)芯片圖2-3系統(tǒng)框架圖上圖即為本設(shè)計的系統(tǒng)框架圖。從圖上可知,對于USB接口的設(shè)計,拿出三種方案:方案一:采用USB接口芯片與AVR單片機相結(jié)合。用USB接口芯片來檢測以及反應(yīng)USB端口的事件。硬件模塊關(guān)系如下圖。ISPISP接口USB總線數(shù)據(jù)傳遞單片機USB 接口USB接口芯片PDIUSB12數(shù)據(jù)傳輸USB供電USB供電圖2-4方案一:硬件模塊關(guān)系圖USB接口芯片有許多種,可大致分為兩類:一種是內(nèi)部集成了微控制器,如美國Tl公司的TUSB32l0,它內(nèi)嵌一個兼容的8051MPU,還有CyPress半導(dǎo)體公司的CY7C63xxx二系列的芯片,它們擁有35條涉及基本的操作和程序跳轉(zhuǎn)等的指令:另一種USB芯片只處理USB通信,必須被一個外部微控制器控制。這一類有代表性的產(chǎn)品有朗訊公司的USS820/825、飛利浦公司的PDIUSBD12。經(jīng)過綜合考慮,我們的設(shè)計中采用了第二種類型的USB接口芯片。采用飛利浦公司的PDIUSBD12作為USB下載器的接口器件。方案二:不用USB接口芯片,由單片機發(fā)送、接收相關(guān)的USB設(shè)備信息,枚舉USB外設(shè)成功后,根據(jù)接收到的DI,進行相應(yīng)的控制操作。ISPISP接口數(shù)據(jù)傳遞單片機USB 接口數(shù)據(jù)傳輸USB供電圖2-5方案二:硬件模塊關(guān)系圖從硬件模塊關(guān)系圖,我們就能得出:方案二比方案一簡單。減少了USB接口芯片,整個設(shè)計的成本降低,電路簡單化,可靠性提高。方案三:采用無線通信方式方式。不需要USB為目標(biāo)芯片供電。在線編程允許單片機內(nèi)部運行的程序去改寫Flash存儲器的內(nèi)容,利用這個特點,不僅可以在運行過程中修改某些運行參數(shù),也為研制新型嵌入式應(yīng)用開發(fā)工具提供了技術(shù)基礎(chǔ)。在線編程為開發(fā)調(diào)試提供了方便,無線通信給實驗和開發(fā)帶來了很大的方便和靈活性,并使單片機系統(tǒng)遠(yuǎn)程調(diào)試、升級成為現(xiàn)實。2.3本章小結(jié)本章提出三種設(shè)計方案進行對比,得出可行性方案二。并從單片機性能上進行可行性論證。這是本設(shè)計的理論基礎(chǔ)。接下來的硬件設(shè)計和軟件設(shè)計就是根據(jù)這些內(nèi)容展開的。第三章系統(tǒng)硬件設(shè)計3.1MCU的選擇硬件是整個系統(tǒng)的基礎(chǔ),是完成各個功能的物理平臺。本設(shè)計的微控制器選擇AVR系列單片機ATmega8。在AVR家族中,ATmega8是一個非常特殊的單片機,它的芯片內(nèi)部集成了較大容量的存儲器和豐富強大的硬件接口電路,具有AVR高檔單片機MEGE系列的全部性能和特點,采用小引腳封裝,所以價格僅與低檔單片機相當(dāng),性價比高。ATmega8的主要性能如下:1.高性能,低功耗的8位AVR微控制器,先進的RISC精簡指令集結(jié)構(gòu)〔1130功能強大的指令,大多數(shù)為單時鐘周期指令〔232個8位通用工作寄存器〔3工作在16MHz時,具有16MIPS的性能〔4片內(nèi)集成硬件乘法器〔執(zhí)行速度為2個時鐘周期2.片內(nèi)集成了較大容量的非易失性程序和數(shù)據(jù)存儲器以及工作存儲器〔18K字節(jié)的Flash程序存儲器,擦寫次數(shù):大于10000次〔2支持可在線編程〔ISP,可在應(yīng)用自編程〔IAP〔3帶有獨立加密位的可選BOOT區(qū),可通過BOOT區(qū)內(nèi)的引導(dǎo)程序區(qū)〔用戶自己寫入來實現(xiàn)IAP編程〔4512個字節(jié)的EEPROM,擦寫次數(shù):100000次〔51K字節(jié)內(nèi)部SRAM〔6可編程的程序加密位3.豐富強大的外部接口〔Periphcral性能〔12個具有比較模式的帶預(yù)分頻器〔SeparatePrescale的8位定時/計數(shù)器〔21個帶預(yù)分頻器〔SeparatePrescale,具有比較和捕獲模式的16位定時/計數(shù)器〔31個具有獨立振蕩器的異步實時時鐘〔RTC〔43個PWM通道,可實現(xiàn)任意小于16位,相位和頻率可調(diào)的PWM脈寬調(diào)制輸出〔58通道A/D轉(zhuǎn)換〔TQFP,MLF,6路10位A/D+2路8位A/D〔66通道A/D轉(zhuǎn)換〔PDIP封裝,4路10位A/D+2路8位A/D〔71個I2C的串行接口,支持主/從,收發(fā)四種工作方式,支持自動總線仲裁〔81個可編程的串行USART接口,支持同步,異步以及多機通信自動地址識別〔91個支持主從〔Master/Slave收發(fā)的SPI同步串行接口〔10帶片內(nèi)RC振蕩器的可編程看門狗定時器〔11片內(nèi)模擬比較器4.特殊的微控制器性能〔1可控制的上電復(fù)位延時電路和可編程的欠電壓檢測電路〔2內(nèi)部集成了可選擇頻率〔1/2/4/8MHz,可校準(zhǔn)的RC振蕩器〔25C,5V,1MHZ時,精度為1%〔3外部和內(nèi)部的中斷源18個〔4五種睡眠模式:空閑模式〔Idle,ADC噪聲抑制模式〔ADCNoiseReduction省電模式〔Pow-save掉電模式〔Power-down,待命模式〔Standby5.I/O口和封裝〔1最多23個可編程I/O口,可任意定義I/O的的輸入/輸出方向;輸出時為推挽輸出,驅(qū)動能力強,可直接驅(qū)動LED等大電流負(fù)載:輸入口可定義為三態(tài)輸入,可以設(shè)定帶內(nèi)阻上拉電阻,省去外接上拉電阻〔228腳PDIP封裝,32腳TQFP封裝和32腳MLF封裝6.寬工作電壓〔12.7V~5.5V〔ATmega8L〔24.5V~5.5V〔ATmega87.高運行速度〔10~8MHz〔ATmega8L〔20~16MHz〔ATmega88.低功耗〔4MHz,3V,25C〔1正常模式〔Active:3.6mA〔2空閑模式〔IdleMode:1.0mA〔3掉電模式〔Power-downMode:0.5uAATmega8內(nèi)嵌8K字節(jié)的Flash存儲空間,18個外部和內(nèi)部的中斷源。它在4.5V~5.5V工作電壓范圍內(nèi)的工作速率范圍為0~16MHz,這使得它有極高的速率和存儲空間來應(yīng)付USB通訊。3.1.從通信協(xié)議和傳輸過程可知,ATmega8單片機在初始化后要保持接收地址狀態(tài),當(dāng)接收到本機地址后回送地址并設(shè)置本機為接收數(shù)據(jù)狀態(tài),接受完數(shù)據(jù)后做出相應(yīng)反應(yīng),最后回到接收地址的狀態(tài)。單片機主流程的核心部分是協(xié)議層的請求處理,它關(guān)系到PC機枚舉USB外設(shè)成功與否。所以在調(diào)試單片機程序的時候,要特別注意Windows對USB設(shè)備的枚舉順序。如果枚舉成功,主機將找到新的設(shè)備,提示安裝驅(qū)動程序;否則找到未知設(shè)備,USB外設(shè)不可用。關(guān)中斷關(guān)中斷接受數(shù)據(jù),讀取本機地址地址?本機地址?分析數(shù)據(jù),完成動作送回相應(yīng)數(shù)據(jù)回送地址設(shè)置為接收地址設(shè)置接受數(shù)據(jù)開中斷響應(yīng)串口中斷中斷返回NYYN圖3-1串口通信流程圖3.2硬件電路設(shè)計本設(shè)計電路圖見附圖,該電路設(shè)計分析如下:〔1ATmega8的PC6〔RESET與PB2〔SS及ISP插座上的RST通過JP2相連,當(dāng)接通JP2,即實現(xiàn)ATmega8的自編程?!?ATmega8的PB3<MOSI>,PB4<MISO>,PB5<SCK>分別與ISP插座上的MOSI,MISO,SCK相連,實現(xiàn)SPI主從機串行通信?!?PC0,PC1各接一個LED燈,用來指示工作狀態(tài)。〔4在PB6,PB7之間接一個12MHz晶振,提供外部時鐘?!?由于USB接口的電壓,數(shù)值為3.6V,而電腦USB端口的輸出電壓為5V,為了電平匹配,本電路使用3.6V穩(wěn)壓二極管D1,D2來分別與D-,D+相連3.3本章小結(jié)本章著重介紹了本課題實驗平臺的主要硬件構(gòu)成,該平臺選用ATmega8作為系統(tǒng)處理器,是由于ATmega8芯片的高速,低功耗,性能穩(wěn)定等特點,也為該演示平臺的將來功能的擴展和升級提供便利。第四章系統(tǒng)軟件設(shè)計本設(shè)計的軟件主要分為兩個部分:單片機上的控制系統(tǒng)設(shè)計和PC機上的應(yīng)用程序設(shè)計。單片機控制系統(tǒng)負(fù)責(zé)與PC機通信和對目標(biāo)芯片ISP編程,PC機上的應(yīng)用程序包括USB的驅(qū)動程序和ISP下載控制軟件。利用雙龍在線編程軟件將在AVRStudio中生成的HEX文件下載到ATmega8芯片中,完成了單片機上的控制系統(tǒng)設(shè)計。下面進行PC機上USB下載器驅(qū)動程序的設(shè)計。4.1系統(tǒng)固件程序設(shè)計所有基于微控制器及其外圍電路的功能設(shè)備的正常工作都離不開固件的參與。固件的作用就是輔助硬件,或者說是控制硬件來完成預(yù)期的設(shè)備功能。沒有固件的參與和控制,硬件設(shè)備只是芯片的簡單的堆砌,無法實現(xiàn)預(yù)期的功能,就像一臺沒有安裝操作系統(tǒng)的計算機一樣。USB設(shè)備也不例外。因此,用戶必須根據(jù)實際的需要來編寫固件程序,從而輔助硬件完成USB通信任務(wù)。一般情況下,設(shè)備是不能啟動任何傳輸過程的,它只能對主機的請求作出響應(yīng)。固件一直就等待主機的命令,再根據(jù)命令去執(zhí)行相應(yīng)的程序。4.1.1固件程序開發(fā)工具ATMEL開發(fā)的AVRSTUDIO軟件是一個用于開發(fā)AVR系列單片機的集成工作環(huán)境。該軟件有以下功能:匯編程序匯編器,模擬仿真功能〔需仿真機結(jié)合,AVRProg串行編程,STK500/AVRISP/JTAGICE編程等功能。AVRSTUDIO支持ATMEL全系列仿真器。在AVRSTUDIO中可以完成所有的操作,如建立項目,建立和編輯匯編源文件,匯編〔可以生成OBJ和HEX文件,調(diào)試,程序下載等,一氣呵成,十分方便。固件程序下載雙龍在線編程軟件<SLISP>是由XX市雙龍電子開發(fā)的擁有獨立知識產(chǎn)權(quán)的編程軟件,使用這個軟件可以對AT89S系列、AVR系列MCU進行串行編程.由下載電纜和應(yīng)用軟件組成,支持的器件為ATMEL公司的AT89S系列<包含AT89S51/52>和AVR系列;支持的燒錄文件格式有INTEL格式的HEX文件、EEP文件、二進制BIN文件;支持緩沖區(qū)數(shù)據(jù)修改和保存,緩沖區(qū)中的數(shù)據(jù)可以保存為二進制BIN文件、INTEL格式的HEX或EEP文件;緩沖區(qū)中的數(shù)據(jù)還可以保存為C程序中的char或unsignedchar類型數(shù)組文件,以方便程序開發(fā)者處理某些特殊應(yīng)用.下載電纜有10根線,一端連接計算機的并行口,另一端連接ISP下載插座。此時,該USB下載器即相當(dāng)于一個ATmega8的串行編程器,實現(xiàn)ATmega8自編程。USB接口可實現(xiàn)為下載線路供電。4.2系統(tǒng)驅(qū)動程序設(shè)計設(shè)計一個USB外圍設(shè)備,除了固件程序外還需要設(shè)計相應(yīng)的設(shè)備驅(qū)動程序,才能使之與PC通信。設(shè)備驅(qū)動程序?qū)嶋H上是一系列控制硬件設(shè)備的函數(shù),是操作系統(tǒng)中控制和鏈接硬件的關(guān)鍵模塊。它提供連接到計算機的硬件設(shè)備的軟件接口。設(shè)備驅(qū)動程序?qū)⒉煌庠O(shè)特性和操作系統(tǒng)高層分割開,隱藏了硬件設(shè)備內(nèi)部的實現(xiàn)細(xì)節(jié),并對操作系統(tǒng)透明。對于USB外設(shè),驅(qū)動程序的優(yōu)劣直接將影響著設(shè)備性能的發(fā)揮,好的驅(qū)動程序能夠準(zhǔn)確、穩(wěn)定、可靠的按主體的要求完成數(shù)據(jù)信息的傳輸和處理,為上層應(yīng)用軟件提供良好的接口。驅(qū)動程序開發(fā)工具Driverstudio是一套用來簡化微軟Windows平臺下設(shè)備驅(qū)動程序的開發(fā),調(diào)試和測試的工具包。在windwos2000操作系統(tǒng)下建立WDM驅(qū)動程序編程環(huán)境,首先安裝DDK,后安裝DriverStudio,并選擇安裝Driverworks,ToolS和SoftCE工具。則在visualC++編程工具欄中自動添加了一個DriveStudio菜單。通過DriverStudio已經(jīng)初步建立了一個驅(qū)動程序框架,根據(jù)需要向里面填充內(nèi)容即可。4.2.USB系統(tǒng)通過具有相同接口的串行連線將不同的設(shè)備連接到一起。USB的物理拓?fù)浣Y(jié)構(gòu)為分層的星型結(jié)構(gòu),由三層組成:USB主機〔Host、USB設(shè)備〔Device和USB集線器〔Hub。USB主機是星型結(jié)構(gòu)的中心,它通過USB集線器連接更多的USB設(shè)備,組成USB系統(tǒng)。由于總線電氣性能的原因,物理上USB設(shè)備最多可以通過USB集線器擴展到6層。從邏輯上看,USB主機可以與分層的USB設(shè)備直接通信,就好象與設(shè)備直接相連一樣?!?USB主機作為USB系統(tǒng)的主控組件,USB主機控制USB總線上所有USB設(shè)備和集線器的數(shù)據(jù)通信過程。在整個USB系統(tǒng)中只允許有一個USB主機,并且必須要有一個USB主機控制整個系統(tǒng)的數(shù)據(jù)傳輸工作。所有的數(shù)據(jù)傳輸都是由USB主機發(fā)起的。USB主機在USB系統(tǒng)中是一個起協(xié)調(diào)作用的實體,它不僅占有特殊的物理位置,而且對于USB以及連到USB上的設(shè)備來說,還負(fù)有特殊的責(zé)任;主機控制所有USB設(shè)備的訪問;一個USB設(shè)備想要訪問總線必須由主機給予其使用權(quán);主機還負(fù)責(zé)監(jiān)督USB的拓?fù)浣Y(jié)構(gòu)?!?USB設(shè)備USB設(shè)備就是能通過USB來發(fā)送和接受數(shù)據(jù)從而實現(xiàn)一定功能的實體。USB設(shè)備從底層的物理和電氣特性到上層的軟件協(xié)議和數(shù)據(jù)結(jié)構(gòu)都有嚴(yán)格的定義,分為很多USB設(shè)備類,如鍵盤、打印機等。每個USB設(shè)備都有表明自身能力和所需要資源的描述符。在設(shè)備第一次連接到主機上之后,設(shè)備就可以分得USB的帶寬,進行數(shù)據(jù)的傳輸了。在總線的數(shù)據(jù)傳輸過程中,相對于USB主機而言,USB設(shè)備一直扮演著受控的角色,按照USB主機的要求接受或發(fā)送數(shù)據(jù)。根據(jù)數(shù)據(jù)傳輸?shù)乃俣炔煌?USB設(shè)備被分為全USB設(shè)備速設(shè)備〔12Mb/s和低速設(shè)備〔1.5Mb/s兩種,在USB2.0的版本中還定義了高速設(shè)備,傳輸速率達到480Mb/s。〔3USB集線器USB集線器提供了用來連接USB設(shè)備的接口,一個集線器能將一個USB的連接點轉(zhuǎn)化為多個連接點,使得多個設(shè)備能同時連接到唯一的USB總線上進行通信。作為USB體系結(jié)構(gòu)中的專用設(shè)備,USB接線器的突出特點是支持熱插拔、區(qū)分設(shè)備速度、為設(shè)備供電和檢測設(shè)備的各種狀態(tài)并通知USB主機。USB主機提供USB接線器的驅(qū)動軟件,并具有對接線器的每個端口電源進行開關(guān)的功能,并對每個端口的變化作出反應(yīng)。在USB主機的硬件控制器內(nèi)部一般要嵌入一個接線器部件,稱為根接線器,它具有USB接線器除中斷傳輸之外的全部功能。4.USB總線傳輸協(xié)議是USB設(shè)備和USB主機之間的數(shù)據(jù)流協(xié)議。數(shù)據(jù)在主機和設(shè)備之間的傳輸過程,在USB總線傳輸協(xié)議中被分成了三層:信號層、協(xié)議層和數(shù)據(jù)傳輸層。首先介紹一下相關(guān)的基本概念。端點:每一個USB設(shè)備在主機看來就是端點的集合,主機只能通過端點與設(shè)備進行通訊,以使用設(shè)備的功能。每個端點實際上就是一個一定大小的數(shù)據(jù)緩沖區(qū),這些端點在設(shè)備出廠時就已定義好其地址的分配。在USB系統(tǒng)中,每一個端點都有唯一的地址,這是由設(shè)備地址和端點號給出的。每個端點都有一定的特性,其中包括傳輸方式、總線訪問頻率、帶寬、端點號、數(shù)據(jù)包的最大容量等。端點必須在設(shè)備后才能生效〔端點0除外。端點0通常為控制端點,用于設(shè)備初始化等,端點1、2等一般用作數(shù)據(jù)傳輸端點,存放主機與設(shè)備之間往來的數(shù)據(jù)。接口:USB端點被捆綁為接口。每個USB接口只處理一種USB邏輯連接,例如鼠標(biāo),鍵盤等。因為一個USB接口代表一個基本功能,因而每個USB驅(qū)動程序控制一個接口。配置:USB接口本身被捆綁為配置。一個USB設(shè)備可以有多個配置。而且可以在配置之間切換以改變設(shè)備的狀態(tài),但一個時刻只能激活其中一個配置。管道:一個USB管道是主機驅(qū)動程序的一個數(shù)據(jù)緩沖區(qū)一個USB外設(shè)端點的連接,它代表了一種在兩者之間移動數(shù)據(jù)的能力。一旦設(shè)備被配置,管道就存在了。管道有兩種類型:數(shù)據(jù)管道和消息管道。幀:USB協(xié)議中的幀,可以看成是一個時間單位,也可以看成是一個長度單位。從時間單位上來看,一幀的長度為1ms,系統(tǒng)中所有事務(wù)的處理都是在以幀為單位的時間周期內(nèi)完成。從長度上來看,對于USB1.1協(xié)議,一幀的數(shù)據(jù)長度為12000比特,如果所有的事務(wù)處理不能占滿整個幀長時,主機會填充上空閑位。4.USB系統(tǒng)的功能就是完成數(shù)據(jù)的傳輸,其主要特點就是USB系統(tǒng)中所有的操作都由USB主機來發(fā)起、控制和結(jié)束的。USB設(shè)備就是充當(dāng)了一個被動者的角色?!惨籙SB設(shè)備的枚舉過程在主機與設(shè)備進行通信之前,主機需要知道設(shè)備的一些具體信息,主機必須分配一個地址給設(shè)備。主機是通過一個被稱為枚舉的過程來完成這些工作。其流程如下:<1>用戶插入一個設(shè)備到USB設(shè)備到USB端口:集線器給USB端口供電,此時設(shè)備處于上電狀態(tài);<2>主機通過集線器來確定連接事件的細(xì)節(jié):當(dāng)集線器通過差模信號線<D+和D->檢測到設(shè)備的接入后,主機會等待100ms以使設(shè)備的接入過程順利完成并使供電穩(wěn)定;<3>主機再給集線器發(fā)送一個SetPortFeature請求,重新配置端口,集線器來確定設(shè)備接入的端口上保持復(fù)位命令10ms,然后,該端口就處于被激活的狀態(tài),這時,設(shè)備處于缺省態(tài),可以從端口上獲取最高達100mA的電流,設(shè)備的所有寄存器等均已復(fù)位,并通過默認(rèn)地址0與主機通信;<4>主機獲取設(shè)備描述符:主機發(fā)送一個GetDescriptor請求來獲得缺省管道的最大數(shù)據(jù)包的大?。?lt;5>主機分配一個地址給設(shè)備:主機控制器通過發(fā)送一個SetAddress請求來給設(shè)備分配一個總線上的唯一地址,此時設(shè)備進入地址態(tài),在以后的各種數(shù)據(jù)傳輸中,設(shè)備將使用這個新地址;<6>主機獲取設(shè)備的配置描述符:主機給新地址發(fā)送一個GetDescriptor請求來讀取這個設(shè)備描述符,這個描述符包括端點0的最大包的大小、設(shè)備支持的配置號、以及關(guān)于這個設(shè)備的其他基本信息;<7>主機給設(shè)備分配配置值:在從描述符了解了設(shè)備之后,主機發(fā)送一個SetConfiguration命令來請求希望的配置號,設(shè)備讀取這個請求后設(shè)定自己配置來匹配主機的請求,設(shè)備此時處于配置狀態(tài),并且設(shè)備的接口已經(jīng)被使能,也就是說,這個USB已經(jīng)可以開始使用了?!捕SB設(shè)備的描述符及標(biāo)準(zhǔn)請求命令當(dāng)USB設(shè)備第一次連接到主機上時,主機要求了解USB設(shè)備的一些基本信息,比如設(shè)備有何種功能、需要占用多少USB資源、屬于何種設(shè)備類等。只有主機完全確認(rèn)了這些信息之后,設(shè)備才能正常工作。這些信息是通過存儲在設(shè)備中的USB描述符來體現(xiàn)的。描述符可以看作是一個完整的數(shù)據(jù)結(jié)構(gòu),用于描述一個USB設(shè)備的所有屬性。USB協(xié)議1.1中規(guī)定的標(biāo)準(zhǔn)的描述符包括以下幾種:設(shè)備描述符:描述了USB設(shè)備的通用信息,一個USB設(shè)備只有一個設(shè)備描述符。設(shè)備描述符包括設(shè)備類代碼、子類代碼、設(shè)備協(xié)議代碼、端點0最大包的大小等基本信息;配置描述符:用于描述一個USB設(shè)備的屬性和能力等配置信息,一個USB設(shè)備也只需一個配置描述符就足夠了。配置描述符包括配置描述符的類型編號、所支持的接數(shù)量、供電模式的選擇等;端點描述符:用于描述接口所使用的非0端點的屬性,包括輸入/輸出方向、端點號和端點容量等。在USB對設(shè)備進行枚舉時,主機需要對設(shè)備進行一系列設(shè)置。主機通過缺省的控制管道對設(shè)備發(fā)送一些基本的請求命令,完成讀取設(shè)備狀態(tài)、設(shè)備的各種描述符,并對設(shè)備重新分配地址,重新配置端口等功能。這些命令都是由控制傳輸方式來傳送的。我們將這些基本的請求命令稱為標(biāo)準(zhǔn)的USB設(shè)備請求命令,這些請求命令是主機配置USB設(shè)備的關(guān)鍵。標(biāo)準(zhǔn)的USB設(shè)備請求命令是一個8字節(jié)的數(shù)據(jù)包,在USB1.1協(xié)議中,這樣的命令有11個,都具有相同的數(shù)據(jù)結(jié)構(gòu)格式。結(jié)合USB系統(tǒng)的枚舉過程和標(biāo)準(zhǔn)設(shè)備請求命令來看,USB系統(tǒng)的枚舉過程起始就是主機向設(shè)備發(fā)送標(biāo)準(zhǔn)的設(shè)備請求命令的過程。從軟件角度看,主機按照枚舉的過程依次向設(shè)備寫入請求命令,在枚舉功能完成之后,用戶應(yīng)用軟件通過驅(qū)動程序并遵循一定的設(shè)備類協(xié)議對設(shè)備進行各種操作。4.2.5USB主機端的軟件開發(fā)方法與用戶使用的操作系統(tǒng)平臺有關(guān)。目前,微軟主流的操作系統(tǒng)Windows2000和WindowsXP等,大多數(shù)USB設(shè)備只能在Windows下使用,但也不是所有的Windwos版本都能很好地支持USB。從Windows98開始,微軟開始在操作系統(tǒng)中為USB提供越來越完善的驅(qū)動支持,USB驅(qū)動程序開始成為Windows標(biāo)準(zhǔn)的WDM<WindowsDriverModel>驅(qū)動程序體系的一部分。Windows設(shè)備驅(qū)動方式主要有三類:即VxD<虛擬設(shè)備驅(qū)動程序>、KMD<內(nèi)核模式驅(qū)動程序>和WDM<Windows設(shè)備驅(qū)動程序模型>。本設(shè)計USB設(shè)備驅(qū)動采用WDM模型。1.WDM驅(qū)動程序的兩種工作模式<1>內(nèi)核模式任務(wù)可以運行特權(quán)級指令,對任何I/O設(shè)備有全部的訪問權(quán),還能夠訪問任何虛地址和控制虛擬內(nèi)存硬件。此類模式的驅(qū)動程序文件以sys為后綴名,存在于系統(tǒng)目錄下。<2>用戶模式在這種模式中,運行的代碼如果不通過操作系統(tǒng)中某種門機制,就不能進入內(nèi)核模式。在Intel80x86處理器上,該模式對應(yīng)于RINGG3級環(huán)。此類模式的驅(qū)動程序以可執(zhí)行文件<.exe>或動態(tài)鏈接庫<.dll>的形式存在,可以從任何路徑運行。2.WDM分層驅(qū)動模式WDM采用分層的驅(qū)動程序模型如圖4-1所示,在不同的層次上的驅(qū)動程序有不同的優(yōu)先級。在WDM中用功能設(shè)備對象<FDO>與物理設(shè)備對象<PDO>來描述硬件。一個PDO對應(yīng)一個硬件,一個硬件只允許有一個PDO,卻可以擁有多個FDO,在FDO的上下有一些過濾器設(shè)備對象<FiDO>。4.2.61USB驅(qū)動程序的內(nèi)核層圖4-1USB驅(qū)動程序的體系結(jié)構(gòu)USB驅(qū)動程序運行在內(nèi)核態(tài),有三個層次:.最高層,是用戶開發(fā)的被稱為USB設(shè)備驅(qū)動程序;.中間層,是USB類驅(qū)動程序,在Windows98中為usbd.sys;.最低層,是主機控制器驅(qū)動程序,有兩種主機控制器驅(qū)動程序,即通用主機控制器驅(qū)動程UHCD<UniversalHostControlDriver>和開放主機控制器接口OpenHCI<OpenHostControlInterface>。USB設(shè)備驅(qū)動程序通過調(diào)用USB類驅(qū)動程序的服務(wù)來訪問USB設(shè)備,它們之間的接口被稱為USB驅(qū)動程序接口USBDI。USB類驅(qū)動程序和通用主機控制器驅(qū)動程序或開放主機控制器接口之間進行交互,該接口稱為通用主機接口<UHI>或開放主機接口<OHI>,USB類驅(qū)動程序把USB設(shè)備驅(qū)動程序所產(chǎn)生的請求通過UHI或OHI發(fā)送下去。USB驅(qū)動程序軟件堆棧內(nèi)的層間通信使用IRP機制,一個設(shè)備驅(qū)動程序要和另外一個設(shè)備驅(qū)動程序進行通信時,它會用一個IRP結(jié)構(gòu)來組裝一個請求,并把該請求傳遞到下一層上去,下一層正確接受了該請求之后,會向發(fā)送方發(fā)出一個應(yīng)答<ACK>握手信號。重復(fù)這個過程,就可以在不同分層結(jié)構(gòu)之間實現(xiàn)通信了。雖然不同的軟件分層通信都要使用IRP,而實際的USB請求卻存放在一個被Microsoft稱之為通用串行總線請求<URP>的結(jié)構(gòu)內(nèi)。URP內(nèi)包含了不同的域,在不同的軟件分層結(jié)構(gòu)中,每一個分層會使用不同的域來進行處理操作。2USB程序各層的功能〔1USB設(shè)備驅(qū)動程序USB設(shè)備驅(qū)動程序位于USB類驅(qū)動程序之上,不與實際的硬件打交道,而是通過USBDI的內(nèi)部IOCTL使用USB類驅(qū)動程序。因為它們都是內(nèi)部IOCTL,所以只能用于內(nèi)核態(tài)的調(diào)用<如設(shè)備驅(qū)動程序>,但不能用于用戶態(tài)的應(yīng)用程序?!?USB類驅(qū)動程序USBD負(fù)責(zé)管理USB系統(tǒng)中通用串行總線的工作,控制所有的USB協(xié)議操作和高層中斷處理控制。圖4-2設(shè)備驅(qū)動程序調(diào)用用戶態(tài)與內(nèi)核態(tài)通訊流程是:應(yīng)用程序通過WIN32提供的API調(diào)用,向WNI32子系統(tǒng)發(fā)出命令;WlN32子系統(tǒng)通過標(biāo)準(zhǔn)的系統(tǒng)調(diào)用與內(nèi)核層的I/O管理器通訊,將用戶程序的API調(diào)用轉(zhuǎn)換成IRP<I/ORequestPackage>包;I/O管理器將IRP包傳遞給指定的設(shè)備驅(qū)動程序;設(shè)備驅(qū)動程序再將IRP轉(zhuǎn)換為相應(yīng)的硬件抽象層HAL<Hardwareabstracotionlayer>調(diào)用并傳遞給HAL層;最后由HAL與硬件直接打交道,得到用戶程序需要的數(shù)據(jù),并沿原路通過設(shè)備驅(qū)動程序、I/O管理器和WNI32子系統(tǒng)返回到用戶程序。3.總線驅(qū)動程序和類驅(qū)動程序總線驅(qū)動程序負(fù)責(zé)發(fā)現(xiàn)總線上的全部設(shè)備,管理設(shè)備與計算機的連接,檢測設(shè)備的添加和刪除,并且為它發(fā)現(xiàn)的設(shè)備創(chuàng)建一個物理設(shè)備對象PDO。通常,一旦總線驅(qū)動程序管了控制權(quán),它可以直訪問硬件,但USB設(shè)備必須通過它的類驅(qū)動程進行問。4.2.7獲取硬件信息獲取硬件信息分配硬件資源導(dǎo)入工作例程打開設(shè)備對象數(shù)據(jù)傳輸終止否?刪除設(shè)備終止否?否卸載例程數(shù)據(jù)傳輸例程初始化例程開始結(jié)束圖4-3系統(tǒng)驅(qū)動程序開發(fā)模型Windows驅(qū)動程序模型<WindowsDriverModel,WDM>是一種模型結(jié)構(gòu),它建立在物理設(shè)備對象<PhysicalDeviceObject,PDO>和功能設(shè)<FunctionalDeviceObject,FDO>的結(jié)構(gòu)化分層基礎(chǔ)上。WDM模型為了適應(yīng)即插即用系統(tǒng),重新定義了驅(qū)動程序分層,它至少存在總線驅(qū)動程序和功能驅(qū)動程序,根據(jù)需要還可以選擇過濾器驅(qū)動程序。通常情況下,連接到總線的每個物理部件都有一個PDO,承擔(dān)由硬件實現(xiàn)的低級設(shè)備控制的責(zé)任。更高級軟件則都存在一個FDO。當(dāng)存在IPO操作時,IRP請求包<IPORequestPacket>首先被送到上級過濾器驅(qū)動程序,然后被一級一級的往下傳遞,最后由總線驅(qū)動程序完成對設(shè)備的操作。設(shè)備驅(qū)動程序位于整個結(jié)構(gòu)的最頂層,它不直接操作硬件,而是通過USBD接口傳遞請求。當(dāng)設(shè)備驅(qū)動程序被系統(tǒng)加載時,首先進入DriverEntry<>入口例程,在該例程中主要設(shè)置程序中要處理的各個MajorFunctonIRP和AddDevice的處理函數(shù)入口點。當(dāng)USB堆棧檢測到設(shè)備后,即插即用管理器<PlugandPlayManager>調(diào)用DriverEntry例程中設(shè)置的AddDevice處理函數(shù)進行資源的分配和FDO的創(chuàng)建。該例程的偽代碼為:PnPAddDevice<INPDRIVER-OBJECTFDO,INPDEVICE-OBJECTPDO>{//為設(shè)備創(chuàng)建一個符號鏈接,用于應(yīng)用程序的CreateFile調(diào)用;//創(chuàng)建設(shè)備對象和設(shè)備擴展;//初始化設(shè)備對象和設(shè)備擴展中的各個變量;//向PDO查詢設(shè)備的電源性能并保存到FDO的設(shè)備擴展中;//因為設(shè)備可能暫時不被使用,關(guān)閉USB設(shè)備電源。}當(dāng)USB堆棧分配完資源后,將會發(fā)送一個信號來激活DriverEntry例程中指定的處理函數(shù),這個函數(shù)將完成如下工作:獲取設(shè)備描述符;獲取配置描述符;從配置描述符中選擇一個接口,并用該接口配置設(shè)備。如果配置成功,將配置信息存放在設(shè)備擴展中。這時,驅(qū)動程序已經(jīng)完全就緒,等待應(yīng)用程序發(fā)出與設(shè)備進行通信的請求。當(dāng)應(yīng)用程序與設(shè)備進行數(shù)據(jù)傳輸時,應(yīng)用程序首先必須調(diào)用CreateFile打開設(shè)備,然后利用返回的句柄對設(shè)備進行讀寫操作。對于驅(qū)動程序,當(dāng)應(yīng)用程序調(diào)用CreateFile時,處理函數(shù)將被激活,并完成如下工作:獲取當(dāng)前IRP的堆棧指針,通過堆棧指針獲得要打開的文件名,然后通過文件名找到內(nèi)部管道ID,若對當(dāng)前接口此管道ID合法,則將該管道打開,并將返回給應(yīng)用程序一個合法句柄。管道被打開后,用戶應(yīng)用程序?qū){(diào)用ReadFile或WriteFile從設(shè)備讀取數(shù)據(jù)或向設(shè)備寫數(shù)據(jù),激活處理函數(shù)將讀寫請求轉(zhuǎn)換成相應(yīng)的USB請求數(shù)據(jù)包<USBRequestPacket,URP>傳遞給下層驅(qū)動程序,并等待IPO處理的最后完成。4.3ISP下載控制軟件PC機ISP下載軟件Progisp是面向用戶的一個接口,它向用戶提供讀目標(biāo)芯片廠商號,讀目標(biāo)芯片型號,寫目標(biāo)芯片F(xiàn)lash,讀目標(biāo)芯片F(xiàn)lash和擦除目標(biāo)芯片F(xiàn)lash等ISP編程操作。因為所有ISP操作都在單片機控制系統(tǒng)中實現(xiàn),所以PC機ISP下載軟件僅是通過USB接口向單片機發(fā)送ISP編程指令和代碼數(shù)據(jù),同時接收并顯示單片機反饋回的信息。PC機ISP下載軟件Progisp支持所有的AVR芯片的編程,支持AT89S51,AT89S52;支持自定義并口下載編程器;支持自定義串口的下載編程器;支持USBASP編程器;支持并口的并行編程器等功能。4.4本章小結(jié)本章主要是從編寫設(shè)備驅(qū)動程序和USB通信應(yīng)用程序的目的出發(fā),首先介紹了Windows驅(qū)動模式。明確了下文將要介紹的設(shè)備驅(qū)動程序和ISP下載控制程序分別在整個系統(tǒng)中所處的位置。然后討論了Windows中的WDM驅(qū)動程序模型的特點,尤其分析了WDM型的USB驅(qū)動程序的分層體系架構(gòu)和工作流程。最后根據(jù)本人的實際應(yīng)用總結(jié)了開發(fā)WDM驅(qū)動程序的方法。第五章應(yīng)用測試5.1USB下載器驅(qū)動安裝將USB線拔下又插上,主機檢測到新設(shè)備,并提示安裝驅(qū)動程序,安裝完驅(qū)動程序后,PC機開始枚舉USB設(shè)備。PC機根據(jù)讀取得USB設(shè)備描述符配置設(shè)備,此時,USB設(shè)備枚舉成功,進入掛起狀態(tài),本設(shè)備已經(jīng)被PC機識別,如圖5-1,5-2所示,USB接口測試成功。圖5-1圖5-25.2上位機應(yīng)用程序測試已經(jīng)下載好程序的USB下載器,就可以向目標(biāo)板下載程序了。插上JP1,通過USB為目標(biāo)板供電。如下圖5-3,下載成功。圖5-35.3測試及結(jié)果分析測試環(huán)境說明:測試中使用的硬件環(huán)境:主機端硬件:PC機配置CPU主頻3.00GHZ,內(nèi)存1G,硬盤容量60G目標(biāo)機硬件:MEGA8最小系統(tǒng),MEGA16最小系統(tǒng),使用片內(nèi)FLASH編程。測試使用的軟件環(huán)境:主機端軟件:操作系統(tǒng)MicrosoftWindowsXPProfessional,下載軟件PROGISP〔Var,SLISP〔V1.3.4目標(biāo)機軟件:自主開發(fā)的若干單片機應(yīng)用程序。程序大小分別為:ATmega8的程序分別為6.68KB,2.22KB,10.03KB,ATmega16的程序分別為29.8KB,6.68KB。測試過程:使用并口下載和USB下載器各自對不同目標(biāo)系統(tǒng),不同應(yīng)用程序分別進行多次下載〔10次,記錄兩種下載方式對于不同大小的程序和不同目標(biāo)系統(tǒng)的平均下載速度和成功率。最終以此為根據(jù)分析USB相對于并口下載器的性能提升情況。表5-1PORGISP程序下載比較USB下載器并口下載目標(biāo)芯片Atmega8ATmega16ATmega8ATmega16程序大小〔KB6.682.2210.0329.86.686.682.2210.0329.86.68下載時間〔S20.93.1823.11.24.812.853.2平均速度〔KB/S3.342.473.323.733.342.151.852.152.322.09成功率100%100%100%100%100%100%100%100%100%100%從表上可以得出,USB下載器的下載速度明顯比ISP并口下載的速度快,我們來進行定量分析。表5-2數(shù)據(jù)比較分析ATmega8ATmega16程序大小〔KB6.682.2210.0329.86.68下載速度〔KB/S并口2.151.852.152.322.09USB3.342.473.323.733.34提高率〔%5534546160表5-2數(shù)據(jù)分析結(jié)果顯示,USB下載器在下載速度上具有很大優(yōu)勢,且程序越大,速度提高率越大。將USB下載器的USB接口與PC相連,ISP插座與計算機并口相連,打開雙龍在線編程軟件,記錄程序大小,下載時間。如下圖:表5-3雙龍并口下載與USB下載雙龍并口下載USB下載目標(biāo)芯片ATmega8ATmega16ATmega8ATmega16程序大小〔KB10.032.226.686.6829.810.032.226.6829.86.68下載時間〔SFAST24.5145.28.6830.923.10.9282NORMAL33.654.8611.89.8732平均速度〔KB/SFAST0.410.561.280.770.963.322.473.343.733.34NORMAL0.300.470.570.680.93成功率<%>100100100100100100100100100100表5-4數(shù)據(jù)比較分析ATmega8ATmega16程序大小〔KB6.682.2210.0329.86.68下載速度〔KB/S并口1.280.560.410.960.77USB3.342.473.323.733.34提高率〔%161341710289334表5-4數(shù)據(jù)分析非常明顯的顯示了USB下載器的優(yōu)勢,速度提高率比Progisp并口下載更高。可以看到,USB下載器的下載速度〉PROG并口下載〉雙龍SLISP并口下載。通過試驗數(shù)據(jù)分析,USB下載器的優(yōu)勢顯而易見,證明了本設(shè)計方案的可行性。第六章全文總結(jié)與展望6.1全文總結(jié)本文設(shè)計了一種單片機<MCU>控制、基于USB接口通信的通用智能型ISP下載器。利用該下載器,可以將編寫好的程序下載到目標(biāo)單片機中。通過計算機的USB端口實現(xiàn)對SPI信號的模擬,并完成對AVR程序的下載,從而可以方便的在所有具有USB接口的計算機上對具有在線編程功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國細(xì)木工板橫向拼板機行業(yè)發(fā)展研究報告
- 2025至2030年中國純銀懷表市場分析及競爭策略研究報告
- 周之冕花鳥畫藝術(shù)風(fēng)格探究
- 2025至2030年中國粗紡花呢面料行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國竹條燈籠市場調(diào)查研究報告
- 2025至2030年中國空調(diào)用小型塔數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國硬質(zhì)合金歐洲型木工鉆嘴市場分析及競爭策略研究報告
- 2025至2030年中國礦用智能超聲物位儀市場分析及競爭策略研究報告
- 2025至2030年中國真絲絨毯行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國直流油泵市場現(xiàn)狀分析及前景預(yù)測報告
- 教育評價改革的創(chuàng)新路徑與實踐方案
- 壁紙施工協(xié)議書范本
- 2025年遼寧沈陽地鐵集團有限公司所屬分公司招聘筆試參考題庫附帶答案詳解
- 2024年供應(yīng)鏈數(shù)字化轉(zhuǎn)型試題及答案
- 學(xué)校健身俱樂部的盈利模式探索
- 2025年浙江嘉興市海寧實康水務(wù)有限公司招聘筆試參考題庫含答案解析
- 4-6歲幼兒同伴交往能力量表
- 人教版 數(shù)學(xué)一年級下冊 第三單元 100以內(nèi)數(shù)的認(rèn)識綜合素養(yǎng)評價(含答案)
- 無錫諾宇醫(yī)藥科技有限公司放射性藥物開發(fā)及核藥裝備研制項目報告表
- 2025年中考道德與法治仿真模擬測試卷(含答案)
- 工程造價司法鑒定與糾紛調(diào)解典型案例-記錄
評論
0/150
提交評論