




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計數(shù)控機床RS232-USB接口轉(zhuǎn)接技術(shù)研究及實現(xiàn)三號楷三號楷機械工程系學生姓名: 學號: 機械工程系機械電子工程系 部: 機械電子工程 指導教師: 二零一五年六月誠信聲明本人鄭重聲明:本論文及其研究工作是本人在指導教師的指導下獨立完成的,在完成論文時所利用的一切資料均已在參考文獻中列出。 本人簽名: 年 月 日畢業(yè)設(shè)計任務(wù)書設(shè)計題目: 數(shù)控機床RS232-USB接口轉(zhuǎn)接技術(shù)研究及實現(xiàn) 系部: 機械工程系 專業(yè): 機械電子工程 學號 學生: 指導教師(含職稱): 1課題意義及目標 學習并掌握RS232-USB接口轉(zhuǎn)接及相關(guān)知識;在查閱資料的基礎(chǔ)上,完成系統(tǒng)整體方案設(shè)計;完成系統(tǒng)硬件設(shè)計,
2、完成系統(tǒng)元器件的選型,在掌握電子線路圖繪制工具軟件的基礎(chǔ)上,完成系統(tǒng)組成框圖的繪制、完成相關(guān)電路圖及系統(tǒng)原理圖的繪制;2主要任務(wù)(1)、認真閱讀任務(wù)書,通過查閱相關(guān)文獻資料,在了解課題研究目的意義及現(xiàn)狀等基礎(chǔ)上,構(gòu)建設(shè)計方案并進行充分論證,并撰寫開題報告;(2)、進行系統(tǒng)總體設(shè)計,熟悉開發(fā)環(huán)境;(3)、系統(tǒng)硬件設(shè)計;(4)、畢業(yè)設(shè)計說明書;3主要參考資料1張宏USB接口設(shè)計電子科技大學出版社,2002:12 2馬偉,邵貝貝OTG補充協(xié)議開辟USB應(yīng)用的新篇章電子產(chǎn)品世界,2002,6(A):68-69 3李肇慶,廖峰,劉建存USB接口技術(shù)國防工業(yè)出版社,2004 4進度安排設(shè)計各階段名稱起 止
3、 日 期1查閱資料,撰寫開題報告并進行開題答辯3月3日3月23日2USB與RS232接口轉(zhuǎn)換設(shè)計方案的選擇3月24日4月13日3系統(tǒng)的總規(guī)劃4月14日5月4日4對系統(tǒng)硬件進行設(shè)計5月5日6月1日5撰寫設(shè)計說明書,準備畢業(yè)答辯6月2日6月22日審核人: 年 月 PAGE 42數(shù)控機床RS232-USB接口轉(zhuǎn)接技術(shù)研究及實現(xiàn)摘 要 :本文提出一種 USB 接口到 RS232 接口無縫轉(zhuǎn)換的接口轉(zhuǎn)換器的設(shè)計方案,該方案基于單片機實現(xiàn),能使傳統(tǒng)設(shè)備直接使用其原有的 RS232 接口與主機的 USB總線接口進行雙向數(shù)據(jù)傳輸。該方案具有雙向緩沖功能,具有即插即用、使用方便、性價比高等特點。 主要討論了 P
4、C 機外設(shè)接口的現(xiàn)狀分析;與本方案相關(guān)的 USB 接口規(guī)范;實現(xiàn) USB-RS232 接口轉(zhuǎn)換器的硬件設(shè)計細節(jié);固件程序的設(shè)計細節(jié); 關(guān)鍵詞:通用串行總線,RS232 接口,單片機,轉(zhuǎn)換器。Research and implementation of RS232-USB interface transfer technology for NC machine toolAbstract: The following article delivers a design proposal from USB connection switch to RS232 seamless transformat
5、ion switch, which enables traditional equipment to use former RS232 connection switch to realize the bidirectional data transmission with the USB bus connection switch. And this proposal has such functions of bidirectional cushions as plug and play, easy to operate, high ratio of performance-to-pric
6、e. The article mainly discusses the current situation of peripheral device connection of PC machine: relative laws of USB connection; design details of realizing the transmission from USB to RS232 connection switch; design details of firmware; Keywords: general serial bus, RS232 interface, microcont
7、roller, converter.目錄 TOC o 1-3 h z u HYPERLINK l _Toc26806 1 引言 PAGEREF _Toc26806 1 HYPERLINK l _Toc31556 1.1 USB接口,RS232接口及其應(yīng)用 PAGEREF _Toc31556 1 HYPERLINK l _Toc6712 1.2 RS232與USB 轉(zhuǎn)換器的意義 PAGEREF _Toc6712 1 HYPERLINK l _Toc12018 1.3 本論文的主要工作 PAGEREF _Toc12018 2 HYPERLINK l _Toc31669 2 USB 通用串行總線協(xié)議
8、 PAGEREF _Toc31669 3 HYPERLINK l _Toc5506 2.1 USB系統(tǒng)的描述 PAGEREF _Toc5506 3 HYPERLINK l _Toc9484 2.1.1 USB總線結(jié)構(gòu) PAGEREF _Toc9484 3 HYPERLINK l _Toc9484 2.1.2 主機 PAGEREF _Toc9484 3 HYPERLINK l _Toc9484 2.1.3 USB硬件結(jié)構(gòu) PAGEREF _Toc9484 3 HYPERLINK l _Toc9484 2.1.4 數(shù)據(jù)的傳輸 PAGEREF _Toc9484 3 HYPERLINK l _Toc2
9、063 2.1.5 USB 總線的協(xié)議 PAGEREF _Toc2063 4 HYPERLINK l _Toc28880 2.2 RS232接口描述 PAGEREF _Toc28880 4 HYPERLINK l _Toc27934 2.2.1 RS232的特點 PAGEREF _Toc27934 4 HYPERLINK l _Toc20656 2.2.2 RS232的分類 PAGEREF _Toc20656 4 HYPERLINK l _Toc26616 2.3 小結(jié) PAGEREF _Toc26616 5 HYPERLINK l _Toc14812 3 USB-RS232 接口轉(zhuǎn)換器的硬件
10、電路設(shè)計 PAGEREF _Toc14812 6 HYPERLINK l _Toc9194 3.1 系統(tǒng)設(shè)計要求 PAGEREF _Toc9194 6 HYPERLINK l _Toc9194 3.2 方案的選擇 PAGEREF _Toc9194 6 HYPERLINK l _Toc4548 3.3 AT90USB1286 芯片介紹 PAGEREF _Toc4548 7 HYPERLINK l _Toc8854 3.3.1 AT90USB1286 芯片特性介紹 PAGEREF _Toc8854 7 HYPERLINK l _Toc1452 3.3.2 AT90USB1286 的操作命令 PAG
11、EREF _Toc1452 7 HYPERLINK l _Toc28088 3.4 80C528 單片機介紹 PAGEREF _Toc28088 9 HYPERLINK l _Toc19420 3.4.1 80C528 的主要特點 PAGEREF _Toc19420 9 HYPERLINK l _Toc19420 3.4.2 單片機的復位電路和晶振電路10 HYPERLINK l _Toc20483 3.4.3 MAX232電平轉(zhuǎn)換電路作用 PAGEREF _Toc20483 11 HYPERLINK l _Toc903 3.5 接口轉(zhuǎn)換器的硬件電路設(shè)計 PAGEREF _Toc903 12
12、HYPERLINK l _Toc5639 3.5.1 硬件系統(tǒng)框圖 PAGEREF _Toc5639 12 HYPERLINK l _Toc20623 3.5 小結(jié) PAGEREF _Toc20623 13 HYPERLINK l _Toc8009 4 系統(tǒng)的軟件設(shè)計 PAGEREF _Toc8009 14 HYPERLINK l _Toc31448 4.1 USB轉(zhuǎn)串口設(shè)備端的程序設(shè)計 PAGEREF _Toc31448 14 HYPERLINK l _Toc2275 4.2 驅(qū)動程序開發(fā)環(huán)境-WINDDK的使用 PAGEREF _Toc2275 17 HYPERLINK l _Toc227
13、5 4.3 USB驅(qū)動程序、虛擬串口的實現(xiàn)方法 PAGEREF _Toc2275 17 HYPERLINK l _Toc21707 4.4 使用DDK設(shè)計USB轉(zhuǎn)串口驅(qū)動程序 PAGEREF _Toc21707 21 HYPERLINK l _Toc18029 4.4.1 USB轉(zhuǎn)串口的驅(qū)動程序基本框架 PAGEREF _Toc18029 21 HYPERLINK l _Toc2856 4.4.2 makefile文件與source文件 PAGEREF _Toc2856 23 HYPERLINK l _Toc25350 4.4.3 修改安裝驅(qū)動用的inf文件 PAGEREF _Toc25350
14、 24 HYPERLINK l _Toc20587 參考文獻 PAGEREF _Toc20587 26 HYPERLINK l _Toc13228 致謝 PAGEREF _Toc13228 27 HYPERLINK l _Toc10314 附錄 A 系統(tǒng)電路原理圖 PAGEREF _Toc10314 28 HYPERLINK l _Toc19779 附錄 B 部分源程序 PAGEREF _Toc19779 29太原工業(yè)學院畢業(yè)設(shè)計1 引言1.1 USB接口,RS232接口及其應(yīng)用 USB-計算機串行接口,是由4家公司在1996年提出來的,到1997年出現(xiàn)標準的外設(shè),1999年介紹了USB2.0
15、的規(guī)范,其主要特點是傳輸速度高達120Mbps到240Mbps,并適用于打印機等存儲設(shè)備。目前,使用USB外設(shè)越來越廣泛,比如Appel和Windoes都對其提供了很高的支持,USB的使用也相當方便,比如現(xiàn)在的手機,數(shù)碼相機,USB網(wǎng)卡,攝像頭,充電器等都用到USB接口。RS232,主要的作用在于終端數(shù)據(jù)和通訊數(shù)據(jù)之間的數(shù)據(jù)對換,讓各種各樣的設(shè)備進行數(shù)據(jù)轉(zhuǎn)換。當前,RS-232的數(shù)據(jù)通訊速度在0到20000bps之間。在電氣特性明確的規(guī)定中有相關(guān)問題,由于大多是生產(chǎn)廠商都生產(chǎn)與其相兼容的通訊設(shè)備,所以在微機通訊接口方面得到了很廣泛的運用。1.2 RS232與USB 轉(zhuǎn)換器的意義 USB -計算
16、機串行接口,在當前應(yīng)用在很多地方,但還是有很多地方不足,因此還需要原有的串行總線接口。USB主要面向軟件的總線,還有其自己復雜的協(xié)議,但它沒有DMA(直接存儲訪問),IO地址等,并且要實現(xiàn)USB的正常運轉(zhuǎn),必須要滿足以下條件,第一點:需要程序激發(fā),然后發(fā)出訪問。第二點:主機應(yīng)驅(qū)動程序然后完成管理設(shè)備等工作。第三點:硬件要與USB總線連接。所以在進行使用USB接口時,要做大量的工作,比如要完成軟件,硬件等設(shè)計等工作,不過RS-232使用起來非常方便,自身系統(tǒng)會驅(qū)動設(shè)備,不需要大量的硬件和軟件設(shè)計,軟件只要設(shè)計好傳輸速度和位就好。但是由于RS-232也存在很多的局限性,在進行數(shù)據(jù)在主機上進行存儲的
17、時候其傳輸?shù)淖畲笏俣纫膊贿^只有0.115Mbps,同時只能傳輸15米,所以在那些精度高,速度快的傳輸里面就不行,如果那樣傳輸?shù)脑挄е聲r間過長而導致數(shù)據(jù)的損失。不過采用并口傳輸(速度是串口的8倍),盡管速度提高了,但是由于接口太復雜,與主機接口比較少的特性相違背,所以要找一個比較好的辦法,最終找到USB接口,很好的解決主機個數(shù)有限的問題。USB接口有很多的優(yōu)點:第一點:USB具有很高的傳輸速率,其最高可以達到12Mbps,比標準的串口(115kbps)快上100倍左右,比標準并口快上10倍左右,而USB2.0更快。而且USB設(shè)備所有的處理都是由主機處理,不需要占太多的系統(tǒng)存儲空間。還有I/O的
18、存儲空間第二點:實現(xiàn)USB的成本非常的廉價,所以在現(xiàn)實生活中用于很多的外設(shè)。而且USB數(shù)據(jù)線還可以自己供電,一些功率不大的外圍設(shè)備可以用其供電,那就不需要其他的電源啦。而且在USB的敘述中一臺計算機最高可以達到127個外設(shè)。第三點:對于USB的通訊,可以使計算機與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)對換有很廣的應(yīng)用,現(xiàn)在很多的計算機都是用到USB作為接口。在當前,有大量的儀器儀表,控制設(shè)備還用到RS232的串行接口,而要將其立即變換成USB,很明顯成本及實施方面有很多的問題,為了讓USB廣泛的應(yīng)用到現(xiàn)實生活中,很有必要開發(fā)出RS232-USB接口的轉(zhuǎn)換器,如果將其應(yīng)用到現(xiàn)實生活中,會使很多傳統(tǒng)的設(shè)備不需要改造,
19、即可使USB總線接口與RS232直接實現(xiàn)雙向數(shù)據(jù)傳輸。以上是實施USB-RS232接口轉(zhuǎn)換的意義之一 另外,在今后的發(fā)展中,USB接口也會成為很常用的嵌入式系統(tǒng)主流通訊工具。1.3 本論文的主要工作本人主要的工作是根據(jù)現(xiàn)在的主流,將RS232串行接口與USB總線接口結(jié)合,設(shè)計出RS232-USB接口轉(zhuǎn)換器本人會從硬件電路的設(shè)計,還有固件設(shè)計來分析RS232-USB轉(zhuǎn)換器設(shè)計。 2 USB 通用串行總線協(xié)議2.1 USB系統(tǒng)的描述 USB數(shù)據(jù)總線是為了解決計算機在與設(shè)備相連時時不具有隨意插,隨意拔,還有解決傳統(tǒng)數(shù)據(jù)傳輸?shù)乃俣嚷?,效率低,不能自動對點等缺點。因此USB具有數(shù)據(jù)傳輸速度快,還有只帶電
20、源,擴充起來容易等功能,是一個新型的接口。USB通用串行線是由3個部分組成的,分別為主機,USB總線上的設(shè)備,還有USB構(gòu)成。2.1.1 USB總線結(jié)構(gòu)從USB物理連接上講,其連接啦設(shè)備和主機,它的特點很有特點,有很高的層次性,還有其結(jié)構(gòu)像星型,在星型中心,有很多的網(wǎng)絡(luò)集線器,線縣相連形成拓撲結(jié)構(gòu)。2.1.2 主機一般情況下,在一個USB系統(tǒng)中,只有主機一個,而且是有其發(fā)起的,但是在一臺計算機中,主機可不止一個,在主機控制中,它的控制很廣,有硬件,軟件等,在主機上,有集成線,可以連接別的線,從而與外面的設(shè)備相連。2.1.3 USB硬件結(jié)構(gòu)USB一共有4根電纜,它們的作用是有兩根用來電源,另外兩
21、根則用作串行通道,對于速度要求比較低的外設(shè)設(shè)備,USB以兩種速度進行傳輸數(shù)據(jù),當遇到低速的外設(shè)設(shè)備時 ,USB以1500bps速度傳輸,當遇到要求速度高的外設(shè)設(shè)備時,USB的傳輸速度為12Mbps,而且USB會自動調(diào)整。一般USB在USB系統(tǒng)中控制著令牌,設(shè)備通過發(fā)送令牌,然后USB檢測到,然后發(fā)送給主機數(shù)據(jù)來完成。2.1.4 數(shù)據(jù)的傳輸 USB為主機軟件的實現(xiàn)提供啦通道,并且有4中方式:中斷,等時,控制,數(shù)據(jù)塊4種傳輸方式 中斷傳輸:如鍵盤設(shè)備,在與主機進行傳輸時,量不大,且無周期,不過速度要很快。 數(shù)據(jù)塊傳輸:傳輸數(shù)據(jù)要以塊的方式要求量大。比如打印機等。 控制傳輸類型:支持外設(shè)與主機間的控
22、制。 等時傳輸:支持計算機和電話機之間傳輸,支持有規(guī)律,且傳輸速率不變的 外設(shè)與主機傳輸。 2.1.5 USB 總線的協(xié)議 設(shè)備與主機之間的數(shù)據(jù)的傳輸方式主要是由USB總線協(xié)議規(guī)定的,規(guī)定啦它們是怎么傳輸?shù)?,USB總線還有規(guī)定啦傳輸結(jié)構(gòu),還有位,包等結(jié)構(gòu)2.2 RS232接口描述2.2.1 RS232的特點 1.電壓與電平:RS232的信號線上的電壓為負邏輯,意思就是當邏輯0時,則電壓的大小為3到15V,反之當是1時為負,但是TTL電路恰好與其相反,為5V,所以需要電平的轉(zhuǎn)換。2.傳輸速率:它的傳輸速率較低一般最高也只有1500bpbs。3.傳輸?shù)木嚯x:傳輸距離短,最高只有15米2.2.2 R
23、S232的分類RS232 根據(jù)引腳的分為兩類:第一類為DB9:1 .DCD 表示載波檢測2.RXD 表示接收數(shù)據(jù)3 .TXD 表示發(fā)送數(shù)據(jù)4 DTR 表示數(shù)據(jù)終端準備好5 .SGND表示信號地線6 .DSR表示數(shù)據(jù)準備好7 .RTS 表示請求發(fā)送8 .CTS 表示清除發(fā)送 9 .RI 表示振鈴提示還有一類是為DB25,而本設(shè)計采用的是第一種DB9 2.3 小結(jié) 本章主要是介紹啦USB的結(jié)構(gòu),還有其傳輸方式,以及USB協(xié)議,然后介紹啦RS232的特點以及分類。3 USB-RS232 接口轉(zhuǎn)換器的硬件電路設(shè)計3.1 系統(tǒng)設(shè)計要求本系統(tǒng)需要實現(xiàn)兩大功能:第一點:USB設(shè)備功能的實現(xiàn),用USB接PC的
24、USB口,對應(yīng)的RS232口接RS232的設(shè)備,通過以上的連接,實現(xiàn)USB和RS232之間的轉(zhuǎn)換第二點:USB主機功能的實現(xiàn),將U盤接在USB接口上,RS232設(shè)備接入RS232口中那么最后會將RS232中的數(shù)據(jù)存到U盤中。具體設(shè)計考慮的要素有: 1、良好的兼容性; 在USB總線協(xié)議的條件下,兼容大部分移動硬盤。 2、實現(xiàn)USB主機和設(shè)備功能 模塊作為設(shè)備使用時,能夠完成主機的傳輸請求。實現(xiàn)USB/RS232/485的接口轉(zhuǎn)換 由于要實現(xiàn)RS232與USB數(shù)據(jù)之間的轉(zhuǎn)換,所以必須要遵守各自的協(xié)議。4、要方便用戶擴展 為啦使用戶方便擴展,應(yīng)保留用戶的接口 5、低功耗要求 模塊在保證驅(qū)動能力的情況
25、下要盡量減少功耗以節(jié)省能源 6、成本要求在保證功能的情況下,盡可能降低成本。3.2 方案的選擇 一共有3中方案,第一種為傳統(tǒng)的USB接口轉(zhuǎn)換芯片,第二種為 利用集成USB模塊的微處理器,第三種為利用單片機+USB主機控制器。本設(shè)計采用的是方案3: 該方案的優(yōu)點在于不需要計算機,而是直接用單片機來實現(xiàn)數(shù)據(jù)的傳輸,實現(xiàn)主機的功能,這個系統(tǒng)完全可以自給自足。還有可以隨意在外圍器件的配置上加上其他模塊來實現(xiàn)需要的功能。 該方案可以選擇不同的單片機作為芯片來實現(xiàn)自己的需要,不過基本硬件都差不多,只是考慮單片機的速度是否足夠快和內(nèi)存足夠大,還有弄出一些協(xié)議來達到簡化。 3.3 AT90USB1286 芯片
26、介紹3.3.1 AT90USB1286 芯片特性介紹1、 符合 USB 全速規(guī)范。 2、 內(nèi)部集成了 SIE FIFO 存儲器收發(fā)器以及電壓調(diào)整器。 3、 接口靈活,可與任何 CPU 實現(xiàn)高速并行連接,速度 2M 字節(jié)/秒。 4、 具有直接內(nèi)存存取 DMA 功能。 5、 內(nèi)部集成 320 字節(jié)的 FIFO 存儲器用作數(shù)據(jù)緩沖區(qū)。 6、 主端點配置雙緩沖結(jié)構(gòu),增加 B 數(shù)據(jù)吞吐量。 7、 在批處理和同步模式下實現(xiàn) 1M 字節(jié)/秒的 USB 數(shù)據(jù)傳輸速率。 8、 設(shè)備掛起時可控制 LazyClock 輸出。 9、 可用軟件控制是否連接到 USB 總線。 10、 具有 GoodLink 技術(shù)的連接
27、LED 指示器,USB 通訊時 LED 閃爍,方便調(diào)試。 11、 輸出時鐘的頻率可用軟件控制。 12、 內(nèi)部具有上電復位和低電壓復位電路。 13、 雙電源工作,3.30.3V 或 3.65.5V。3.3.2 AT90USB1286 的操作命令 單片機通過發(fā)送操作命令給 AT90USB1286 ,完成對 AT90USB1286 的控制,命令一共有 15 種,分述如下: 1、設(shè)置地址/使能命令: 設(shè)定設(shè)備地址,允許芯片工作。 2、設(shè)置端點使能命令: 允許端點工作。 3、設(shè)置模式命令: 確定時鐘分頻系數(shù),軟連接功能,端點工作模式,中斷模式。 4、DMA 設(shè)置命令 DMA 方式設(shè)置。 5、讀中斷寄存器
28、命令: 指示中斷的來源。 6、讀最后處理狀態(tài)命令: 讀取芯片的最后處理狀態(tài),向芯片發(fā)出讀最后處理狀態(tài)命令后,再向芯片發(fā)讀請求,所得到的就是端點的最后處理狀態(tài)。這個命令同時還將中斷寄存器中的位清零。 7、選擇端點命令: 選擇設(shè)備的端點,以進行下一步的緩沖區(qū)操作。 8、設(shè)置端點狀態(tài)命令: 設(shè)定端點的工作狀態(tài)。 9、緩沖區(qū)清零命令: 芯片接收到數(shù)據(jù)包后,內(nèi)部的緩沖區(qū)滿標志將置 1,如果單片機將數(shù)據(jù)讀出,單片機要調(diào)用清緩沖區(qū)命令,將緩沖區(qū)釋放,這樣才能接收新的數(shù)據(jù)。 10、使緩沖區(qū)有效命令: 單片機把數(shù)據(jù)寫入緩沖區(qū)后,要設(shè)置緩沖區(qū)滿標志,這樣,當芯片接收到 IN包時,數(shù)據(jù)會自動組織成數(shù)據(jù)包,返回主機。
29、 11、讀緩沖區(qū)命令: 單片機讀 D12 的內(nèi)部緩沖區(qū)時,先向芯片發(fā)讀緩沖區(qū)命令,接著再讀 D12,就可得到數(shù)據(jù)。 12、寫緩沖區(qū)命令: 單片機在把數(shù)據(jù)送到 D12 的內(nèi)部緩沖區(qū)前,應(yīng)先發(fā)寫緩沖區(qū)命令。 13、應(yīng)答設(shè)置命令: SETUP 信息包到來時,單片機要發(fā)送應(yīng)答設(shè)備命令,這樣 SETUP 的內(nèi)容才能保留在 D12 的緩沖區(qū)中。 14、發(fā)送恢復命令: 喚醒設(shè)備。 15、讀當前幀號命令: 讀總線的當前幀號。 3.4 80C528 單片機介紹 USB-RS232 接口轉(zhuǎn)換器的核心電路由單片機組成,根據(jù)設(shè)計方案的要求,對單片機有以下的要求。 1、 單片機應(yīng)具有看門狗電路,提高系統(tǒng)的可靠性。 2、
30、 單片機應(yīng)具有程序存儲器。 3、 單片機應(yīng)具有內(nèi)部定時器,作程序定時之用。 4、 單片機應(yīng)具有大容量的數(shù)據(jù)存儲器。 5、 為與 D12 連接,單片機應(yīng)具有外部擴展總線。 6、 單片機應(yīng)具有 UART 異步串行接口。 7、 單片機的程序存儲器應(yīng)具有硬件加密功能,防止硬件被復制。 8、 單片機工作速度要快、價格低、功耗低、可靠性高、抗干擾能力強。 9、 單片機應(yīng)支持高級語言編程。3.4.1 80C528 的主要特點 1、 增強型 8051 CPU 指令代碼完全兼容 8051。同時支持 C51 編程。2、內(nèi)8kROM(可擴充64kB外部 HYPERLINK /view/87697.htm t /_b
31、lank 存儲器)4、32個雙向I/O口5、256x8bit內(nèi)部RAM(可擴充64kB外部存儲器)6、3個16位可編程定時/計數(shù)器7、時鐘頻率3.5-12/24/33MHz8、5.0V工作電壓9、全雙工 HYPERLINK /view/716175.htm t /_blank 串行通信口10、4層優(yōu)先級中斷結(jié)構(gòu)89C528各引腳如下圖3.1所示: 圖3.180C528單片機3.4.2 單片機的復位電路和晶振電路的設(shè)計如下圖所示3.2所示:圖3.2 復位和晶振電路圖圖3.2復位電路和晶振電路圖復位電路: 單片機的復位電路就是在單片機受到環(huán)境干擾時,按下自身按鈕就可以讓程序重頭開始執(zhí)行。復位電路的
32、工作原理: 如圖所示,電容的大小設(shè)置為22uf,電阻的大小為10k,需要的時間為兩者相乘。如果按下開關(guān),電容就會處于一種短路的狀態(tài),那么電容就會釋放出之前的電量,這個時候電阻的電量增加,所以單片機的RST接收到高電平,就會產(chǎn)生復位。 單片機的晶振電路及其工作原理:單片機的晶振作用是為單片機系統(tǒng)系統(tǒng)提供其所需的時鐘信號,其提供的頻率越高,速度就越快。3.4.3 MAX232電平轉(zhuǎn)換電路作用如下圖所示為其轉(zhuǎn)換的電路圖3.3圖3.3 電平轉(zhuǎn)化電路目的:89C52單片機自帶一串口,不過是TTL電平的,而計算機上的串口為CMOS電平,因此需要接上MAX232,將其轉(zhuǎn)化為CMOS電平。串口傳輸需要速率較快
33、,整個系統(tǒng)要求工作地時鐘頻率較高,因而采用22.1184MHz的晶振,還加快啦傳輸速度,以保證數(shù)據(jù)不損失。3.5 接口轉(zhuǎn)換器的硬件電路設(shè)計 根據(jù) USB-RS232 接口轉(zhuǎn)換器的設(shè)計方案,設(shè)計了 USB-RS232 接口轉(zhuǎn)換器的硬件電路框圖和具體的電路圖。 3.5.1 硬件系統(tǒng)框圖 選定USB通信芯片與單片機后,接下來就是把芯片連接成電路,完整的電路原理圖如圖3.4:圖3.4 電路圖3.5 小結(jié) 本章首先分析了 USB-RS232 接口轉(zhuǎn)換器的設(shè)計方案。然后介紹了所選用的USB 接口芯片 AT90USB1286 的特點及操作命令,給出了與單片機的連接電路。接著介紹了所選用的單片機芯片 80c5
34、2最后實現(xiàn)了接口轉(zhuǎn)換器的硬件電路,給出了具體的硬件電路圖,包括單片機電路、USB 接口電路、TTL-RS232 電平轉(zhuǎn)換電路。4 系統(tǒng)的軟件設(shè)計4.1 USB轉(zhuǎn)串口設(shè)備端的程序設(shè)計硬件電路設(shè)計好了,接下來要想使電路運行起來,在此電路中,首先要通過單片機實現(xiàn)對AT90USB1286芯片的控制,就是控制它的驅(qū)動程序,還需要控制的是單片機的驅(qū)動。來構(gòu)成一個協(xié)議的框架。一般來說,要實現(xiàn)USB轉(zhuǎn)串口,有兩種可行的方法:一種是使用USB協(xié)議規(guī)定的CDC類中的抽象模型(abstract control model)子類中的通用AT命令(common AT commands)協(xié)議,此方案不需要開發(fā)相應(yīng)的驅(qū)動程
35、序。第二種:就是需要用戶自己開發(fā)程序來驅(qū)動,自己定義USB協(xié)議,但是操作起來比較困難,但相對于第一種會比較變通。不過兩種的通訊方式是差不多的,最大的不同就在于它們的怎么敘述不同,可以通過89C52控制程序?qū)崿F(xiàn) 圖4.1 設(shè)備端程序流程圖 初始化部分,程序就開始工作,它的主要工作是:初始化串口,讀出ID然后用程序的方式來控制USB的斷開和連接。1)USB-CDC類設(shè)備的描述符如下:設(shè)備描述符(18字節(jié))0 x12,0 x01,0 x10,0 x01,0 x02,0 x00,0 x00,0 x10,0 x99,0 x99,0 x99,0 x99,0 x00,0 x01,0 x01,0 x02 0
36、x03,0 x01以下是配置描述符集合()配置描述符(9字節(jié))0 x09,0 x02,0 x43,0 x00,0 x02,0 x01,0 x00,0 x80,0 x32CDC類接口描述符(9字節(jié))0 x09,0 x04,0 x00,0 x00,0 x01,0 x02,0 x02,0 x01,0 x00,功能描述符(19字節(jié))Header Functional Descriptor0 x05,0 x24,0 x00,0 x10,0 x01Call Management Functional Descriptor0 x05,0 x24,0 x01,0 x00,0 x00Abstract Contr
37、ol Management Functional Descriptor0 x04,0 x24,0 x02,0 x02Union Functional Descriptor0 x05,0 x24,0 x06,0 x00,0 x01接口0的端點描述符(7字節(jié))0 x07,0 x05,0 x81,0 x03,0 x10,0 x00,0 x0A接口1(數(shù)據(jù)接口)的接口描述符(9字節(jié))0 x09,0 x04,0 x01,0 x00,0 x02,0 x0A,0 x00,0 x00,0 x00批量輸入端點2描述符(7字節(jié))0 x07,0 x05,0 x82,0 x02,0 x40,0 x00,0 x00批量
38、輸出端點2描述符(7字節(jié))0 x07,0 x05,0 x02,0 x02,0 x40,0 x00,0 x00配置好設(shè)備的描述符后,主機應(yīng)該可以成功地識別該設(shè)備了,但USB轉(zhuǎn)串口設(shè)備還不能算完成。還需要實現(xiàn)對端點的數(shù)據(jù)處理:首選要實再對SET_CONTROL_LINE_STATE SET_LINE_CONING 和 GET_LINE_CONING 請求的處理,另外,要實現(xiàn)對串口數(shù)據(jù)的處理,即將串口接收到的數(shù)據(jù)發(fā)送到端點2,將端點2接收到的數(shù)據(jù)發(fā)送到串口,數(shù)據(jù)代碼如下:if(ConfigValue!=0) if(Ep2InIsBusy=0) /判斷端點2是否空閑 SendUartDataToEp2
39、(); /調(diào)用函數(shù)將緩沖區(qū)數(shù)據(jù)發(fā)送到端點2 if(UsbEp2ByteCount!=0) /端點2接收緩沖區(qū)中還有數(shù)據(jù)未發(fā)送,則發(fā)送到串口 /發(fā)送一字節(jié)到串口 UartPutChar(UsbEp2BufferUsbEp2BufferOutputPoint); UsbEp2BufferOutputPoint+; /發(fā)送位置后移1 UsbEp2ByteCount-; /計數(shù)值減1 到現(xiàn)在,USB轉(zhuǎn)串基本完成,然后單片機接收到程序,并在主機端裝上驅(qū)動程序后(Windows操作系統(tǒng)自帶有USB-CDC類驅(qū)動,用戶無需開發(fā),只需提供一個安裝驅(qū)動用的INF文件),即可產(chǎn)生一個虛擬串口了,(2)自定義USB
40、類設(shè)備的描述符如下:設(shè)備描述符(18字節(jié))0 x12,0 x01,0 x10,0 x01,0 xFF,0 x00,0 x00,0 x10,0 x99,0 x99,0 x99,0 x99,0 x00,0 x01,0 x01,0 x02,0 x03,0 x01配置描述符集合(32字節(jié))配置描述符(9字節(jié))0 x09,0 x02,sizeof(ConfigurationDescriptor)&0 xFF,(sizeof(ConfigurationDescriptor)8)&0 xFF,0 x01,0 x01,0 x00,0 x80,0 x32,接口描述符(9字節(jié))0 x09,0 x04,0 x00,
41、0 x00,0 x02,0 x00,0 x00,0 x00,0 x00批量輸入端點2描述符(7字節(jié))0 x07,0 x05,0 x82,0 x02,0 x40,0 x00,0 x00批量輸出端點2描述符(7字節(jié))0 x07,0 x05,0 x02,0 x02,0 x40,0 x00,0 x00語言描述符此處略去。4.2 驅(qū)動程序開發(fā)環(huán)境WinDDK的使用 WDM(Windows Driver Model)是Microsoft提出的一種全新的設(shè)備驅(qū)動程序模型。它是在Windows NT 內(nèi)核驅(qū)動模型(Kernel-model Driver Model)的基礎(chǔ)上發(fā)展起來的,增加了對即插即用(PnP
42、)、高級電源管理(Power Management)、Windows管理接口(WMI)的支持,更重要的是,WDM是一種通用的驅(qū)動模式,提供了包括USB、IEEE1394、和HID等在內(nèi)的一系列驅(qū)動程序類。在Windows 98 和Windows 2000/XP中,WDM驅(qū)動程序均可正常使用。4.3 USB驅(qū)動程序、虛擬串口的實現(xiàn)方法 DDK提供了構(gòu)造URB的內(nèi)核函數(shù)UsbBuildGetDescritorRequest,在功能驅(qū)動中,所有與USB的通信,都需要用這個函數(shù)創(chuàng)建URB,并通過IRP發(fā)送到底層USB總線驅(qū)動,其聲明如下:VOID UsbBuildGetDescritorRequest
43、( IN OUT PURB Urb, IN USHORT Length, IN UCHAR DescriptorType,IN UCHAR Index,IN USHORT LanguageId,IN PVOID TransferBuffer OPTIONAL,IN PMDL TransferBufferMDL OPTIONAL,IN ULONG TransferBufferLength,IN PURB Link OPTIONAL); URB:用來輸出的URB結(jié)構(gòu)的指針。 Length:用來描述該URB結(jié)構(gòu)的大小。 DescriptorType:描述該URB的類型。它可以是USB_DEVICE_
44、DESCRIPTOR_TYPE、USB_CONFIGURATION_DESCRIPTOR_TYPE 和 USB_STRING_DESCRIPTOR_TYPE。 Index:用來描述設(shè)備描述符的索引。 LanguageId:用來描述語言ID。 TransferBuffer:如果用緩沖區(qū)讀取設(shè)備,TransferBuffer 是緩沖區(qū)內(nèi)存的指針。 TransferBufferMDL:如果用直接讀取內(nèi)存時,TransferBufferMDL是直接讀取內(nèi)存時MDL的指針。 TransferBufferLength:對于該URB所操作內(nèi)存的大小。 功能驅(qū)動將URB包構(gòu)造完畢后,就可以發(fā)送到底層總線驅(qū)動上
45、了,URB包要和一個IRP相關(guān)聯(lián)起來,這就需要用IoBuildDeviceControlRequest創(chuàng)建一個IO控制碼的IRP,然后將URB作為IRP的參數(shù),用IoCallDriver將URB發(fā)送到底層總線驅(qū)動上。 與一般的驅(qū)動類似,USB驅(qū)動的初始化入口函數(shù)為DriverEntry,在該函數(shù)中,分別指定各個IRP的派遣函數(shù)地址、指定AddDevice例程函數(shù)地址、指定Unload例程函數(shù)地址等。 在AddDevice例程中,創(chuàng)建功能設(shè)備對像,然后將該對象掛載在總線設(shè)備對像之上,從而形成設(shè)備棧。另外為設(shè)備創(chuàng)建一個設(shè)備鏈接,以便于應(yīng)用程序可以找到這個設(shè)備。 插拔USB設(shè)備時會與4個IRP相關(guān),
46、即IRP_MN_START_DEVICE、IRP_MN_STOP_DEVICE、IRP_MN_EJECT、IRP_MN_SURPRISE_REMOVAL。其中,IRP_MN_START_DEVICE消息是當驅(qū)動爭取加載并運行時,操作系統(tǒng)的PnP管理器會將這個IRP發(fā)往設(shè)備驅(qū)動。當獲得這個IRP后,USB驅(qū)動需要獲得USB設(shè)備類別描述符,如設(shè)備描述符、配置描述符、接口描述符、端點描述符等。并通過這些描述符有用的信息,記錄在設(shè)備擴展中。 IRP_MN_STOP_DEVICE 是設(shè)備關(guān)閉前,PnP管理器發(fā)出的IRP。USB驅(qū)動獲得這個IRP時,應(yīng)該盡快結(jié)束當前執(zhí)行的IRP,并將其逐個取消掉。另外,在
47、設(shè)備擴展中還應(yīng)該有表示當前狀態(tài)的變量,當IRP_MN_STOP_DEVICE來臨時,將當前狀態(tài)記錄成停止狀態(tài)。IRP_MN_EJECT是設(shè)備被正常彈出,而IRP_MN_SURPRISE_REMOVAL則是設(shè)備非自然彈出,有可能是意外掉電或者強行拔出等。在這種IRP到來的時候,應(yīng)該強迫所有未完成的讀寫IRP結(jié)束并取消,并且將當前設(shè)備狀態(tài)設(shè)置成設(shè)備被拔掉。 USB設(shè)備大部分數(shù)據(jù)的傳送是通過Bulk管道來傳輸?shù)?,Bulk管理的讀取是在IRP_MJ_READ各IRP_MJ_WRITE的派遣函數(shù)中,應(yīng)用程序可以通過ReadFile、WriteFile等API對設(shè)備進行操作。 在IRP_MJ_READ各I
48、RP_MJ_WRITE的派遣例程中設(shè)置了完成例程,其原理是將讀寫的大小分成單位為BULKUSB_MAX_TRANSFER_SIZE的若干塊,依次將請求發(fā)往底層USB總線驅(qū)動。虛擬串口就是當本地并沒有對應(yīng)的串口硬件設(shè)備,而為應(yīng)用層提供串口設(shè)備一樣的系統(tǒng)調(diào)用接口,以兼容原本使用本地串口的應(yīng)用軟件的“虛”設(shè)備。本文作者給出了一種在Windows平臺上實現(xiàn)虛擬串口的方法,由此實現(xiàn)的“串口”具有真實串口完全相同的系統(tǒng)調(diào)用接口。DDK對串口驅(qū)動提供了專門接口。只要編寫的驅(qū)動滿足這些接口,并按照串口標準的命名方法,不管是真實的還是虛擬的串口設(shè)備,Windows操作系統(tǒng)都會認為這個設(shè)備是一個標準的串口設(shè)備。用
49、標準的串口調(diào)試工具都可以與這個設(shè)備進行通信。串口驅(qū)動的入口函數(shù)依然是DriverEntry,并在其中指定各種IRP的派遣函數(shù)、AddDevice例程、Unload例程等。其中在AddDevice例程中,需要創(chuàng)建設(shè)備對像,創(chuàng)建完設(shè)備對象之后,需要將設(shè)備對象指定一個符號鏈接,以便客戶程序(串口調(diào)試工具)能夠識別,該符號以COM開頭,并接一個數(shù)字就可以了。編寫串口驅(qū)動的核心是對應(yīng)用程序發(fā)出的IO控制碼和讀寫命令(即接口)進行處理。這些控制碼分別是:(1)、IOCTL_SERIAL_SET_QUEUE_SIZE這個控制碼是應(yīng)用程序向驅(qū)動請求設(shè)置串口驅(qū)動內(nèi)部的緩沖區(qū)大小,它是向驅(qū)動傳遞SERIAL_QU
50、EUE_SIZE數(shù)據(jù)結(jié)構(gòu)來進行設(shè)置的。對于虛擬串口驅(qū)動來說,這是不需要關(guān)心的。(2)、IOCTL_SERIAL_GET_BAUD_RATE應(yīng)用程序向驅(qū)動程序IOCTL_SERIAL_GET_BAUD_RATE命令,這主要是詢問驅(qū)動這個設(shè)備的波特率。驅(qū)動應(yīng)該回應(yīng)給應(yīng)用程序SERIAL_BAUD_RATE的數(shù)據(jù)結(jié)構(gòu)來通知波特率的數(shù)值。(3)、IOCTL_SERIAL_GET_LINE_CONTROL應(yīng)用程序向驅(qū)動程序IOCTL_SERIAL_GET_LINE_CONTROL命令,這要是為了返回串口的行控制信息,行控制信息用SERIAL_LINE_CONTROL數(shù)據(jù)結(jié)構(gòu)表示typedef struc
51、t _SERIAL_LINE_CONTROL UCHAR StopBits; UCHAR Parity; UCHAR WordLength; SERIAL_LINE_CONTROL, *PSERIAL_LINE_CONTROL;(4)、IOCTL_SERIAL_GET_CHARS這個命令是應(yīng)用程序向驅(qū)動請求特殊字符,用來與控制信號握手,用數(shù)據(jù)結(jié)構(gòu)SERIAL_CHARS表示Typedef struct _SERIAL_CHARS UCHAR EofChar; UCHAR ErrorChar; UCHAR BreakChar; UCHAR EventChar; UCHAR XonChar; UC
52、HAR XoffChar; SERIAL_CHARS,*PSERIAL_CHARS;其中EofChar代表是否是傳送結(jié)束、ErrorChar代表是否傳送中有錯誤、BreakChar代表是否傳送有停止等。(5)、IOCTL_SERIAL_GET_HANDFLOW這個命令是負責向驅(qū)動程序獲得串口驅(qū)動的握手信號,握手信號用SERIAL_HANDFLOW數(shù)據(jù)結(jié)構(gòu)表示。Typedef struct _SERIAL_HANDFLOWULONG ControlHandShake;ULONG FlowReplace;ULONG XonLimit;ULONG XoffLimit; SERIAL_HANDFLOW
53、,*PSERIAL_HANDFLOW;(6)、IOCTL_SERIAL_SET_WAIT_MASK這個命令主要是設(shè)置串口驅(qū)動的某些事件發(fā)生時,需要向應(yīng)用程序通知。這些事件包括以下幾種事件:#define SERIAL_EV_RXCHAR 0 x0001#define SERIAL_EV_RXFLAG 0 x0002#define SERIAL_EV_TXEMPTY 0 x0004#define SERIAL_EV_CTS 0 x0008#define SERIAL_EV_DSR 0 x0010#define SERIAL_EV_RLSD 0 x0020#define SERIAL_EV_BRE
54、AK 0 x0040#define SERIAL_EV_ERR 0 x0080(7)、IOCTL_SERIAL_WAIT_ON_MASK這個IO控制碼是最重要的一個,當應(yīng)用程序通過前面幾個IO控制碼初始化好后,就會發(fā)送這個請求。在驅(qū)動程序中,應(yīng)該阻塞在那里返回PENDING狀態(tài),而不是完成這個IRP。當IOCTL_SERIAL_WAIT_ON_MASK設(shè)置的事件中的一項發(fā)生時,阻塞狀態(tài)改為完成,并通知應(yīng)用程序究竟是哪種事件發(fā)生了。串口驅(qū)動程序完成處理IO控制碼之后,接下來就是對讀寫IRP進行處理了,對于寫IRP的派遣函數(shù)中,主要寫的數(shù)據(jù)存儲在設(shè)備擴展中,以便以后讀的時候?qū)⑦@些內(nèi)容返回應(yīng)用程序,
55、另個使阻塞的IO控制蘇醒過來,調(diào)用DriverCheckEvents函數(shù)阻塞IRP完成,使應(yīng)用程序的線程得以繼續(xù)運行。并且這個線程還知道了SERIAL_EV_RXCHAR和SERIAL_EV_RX80FULL事件的到來,從而發(fā)起一個讀請求,傳送到驅(qū)動程序中就是讀IRP。在讀IRP派遣函數(shù)中,負責將存儲在設(shè)備擴展中的數(shù)據(jù)通過IRP傳送到應(yīng)用程序。4.4 使用DDK設(shè)計USB轉(zhuǎn)串口驅(qū)動程序4.4.1 USB轉(zhuǎn)串口的驅(qū)動程序基本框架與一般的應(yīng)用程序流程類似,USB轉(zhuǎn)串口的驅(qū)動程序流程也可分為初始化、數(shù)據(jù)處理、判斷是結(jié)束設(shè)備等部分。驅(qū)動程序流程圖如下圖4.2所示: 圖4.2驅(qū)動程序流程圖 系統(tǒng)初始化:
56、此部分主要DriverEntry函數(shù)來處理。DriverEntry是驅(qū)動程序的入口點,該函數(shù)由I/O系統(tǒng)直接調(diào)用。在函數(shù)中獲取設(shè)備的注冊表信息、并對以下的IRP指定相應(yīng)的派遣函數(shù):DriverObject-MajorFunctionIRP_MJ_CREATE = USB2COM_Create;DriverObject-MajorFunctionIRP_MJ_CLOSE = USB2COM_Close;DriverObject-DriverUnload = USB2COM_Unload;/ 用戶模式DeviceIoControl()調(diào)用此例程DriverObject-MajorFunctionI
57、RP_MJ_DEVICE_CONTROL=USB2COM_ProcessIOCTL;/ 用戶模式ReadFile()/WriteFile()調(diào)用此例程DriverObject-MajorFunctionIRP_MJ_WRITE = USB2COM_Write;DriverObject-MajorFunctionIRP_MJ_READ = USB2COM_Read;/系統(tǒng)PNP 與電源管理請求處理例程DriverObject-MajorFunctionIRP_MJ_SYSTEM_CONTROL= USB2COM_ProcessSysControlIrp;DriverObject-MajorFun
58、ctionIRP_MJ_PNP= USB2COM_ProcessPnPIrp;DriverObject-MajorFunctionIRP_MJ_POWER= USB2COM_ProcessPowerIrp;指定IRP派遣函數(shù)后,接下來AddDevice例程創(chuàng)建設(shè)備對象/ 當設(shè)備插入時會調(diào)用此例程DriverObject-DriverExtension-AddDevice=USB2COM_PnPAddDevice;對USB設(shè)備而言,首先要檢查設(shè)備是否已啟用,如有必要復位設(shè)備所在的端口。使用IOCTL_INTERNAL_USB_GET_PORT_ST和IOCTL_INTERNAL_USB_RESE
59、T_PORT來構(gòu)造IRP,并將NextIrpStack-Parameters.Others.Argument1置為NULL,進而調(diào)用IoCallDriver發(fā)送。 接下來就是用合適的配置弄設(shè)備和初始化通道,并用它們填充USBD_INTERFACE_LIST_ENTRY類型的數(shù)組,即接口描述符列表;再將接口描述符列表作為參數(shù),調(diào)用函數(shù)USBD_CreateConfigurationRequestEx構(gòu)造配置設(shè)備接口的URB,并發(fā)送,完成設(shè)備接口的配置。至此,初始化工作完成。4.4.2 makefile文件與source文件 大多數(shù)情況下,makefile文件只需寫入如下內(nèi)容即可:!INCLUDE
60、 $(NTMAKEENV)makefile.def以上語句的含義是包含了DDK目錄中的makefile.def在這里還需要編寫的一個文件source,本項目的source文件內(nèi)容如下:TARGETNAME=usb2rs232TARGETTYPE=DRIVERDRIVERTYPE=WDMTARGETPATH=objTARGETLIBS=$(DDK_LIB_PATH)usbd.lib、USE_MAPSYM=1USER_C_FLAGS=/FAcsSOURCES= usb2com.rc dbg.c usb.c pnp.c power.c ioctl.c rw.c serial.c buf.c wait
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腎內(nèi)科健康科普護理
- 于漪:穿行于基礎(chǔ)教育森林的教育家
- 幼兒園活動設(shè)計
- 感恩勵志教育班會
- 加強法律法規(guī)與警示教育實施路徑
- 2025深圳市房屋租賃合同書
- 2025物業(yè)管理委托合同2
- 2025屆四川省成都市高中畢業(yè)班第三次診斷性檢測歷史試題(含答案)
- 2025石油管道視頻監(jiān)控系統(tǒng)合同
- 2025年度租賃合同模板
- 2024年黑龍江鶴崗公開招聘社區(qū)工作者考試試題答案解析
- 2025年度虛擬電廠分析報告
- 2024年浙江公路技師學院招聘筆試真題
- 2025年鍋爐水處理作業(yè)人員G3證考試試題題庫(200題)
- 2025年中考語文一輪專題復習:古詩詞曲梳理復習重點整合
- 75%食用酒精安全技術(shù)說明書(MSDS)
- 《十萬個為什么》整本書閱讀-課件-四年級下冊語文(統(tǒng)編版)
- 口腔與健康智慧樹知到答案章節(jié)測試2023年溫州醫(yī)科大學
- 甘肅歷史與甘肅文化
- 太上三官寶經(jīng)(共12頁)
- 高邊坡施工危險源辨識及分析
評論
0/150
提交評論