RS-232串口通信設計_第1頁
RS-232串口通信設計_第2頁
RS-232串口通信設計_第3頁
RS-232串口通信設計_第4頁
RS-232串口通信設計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 CPLD/FPGA 課程設計報告題 目: RS-232串口通信設計 院 (系): 信息科學與工程學院 專業(yè)班級: 通信工程11 學生姓名: 詹文魁 學 號: 指導教師: 吳莉老師 2014年06 月 09 日至2014年 6 月 20 日華中科技大學武昌分校制 RS-232串口通信設計 課程設計任務書一、設計(調(diào)查報告/論文)題目RS-232串口通信設計二、設計(調(diào)查報告/論文)主要內(nèi)容下述設計內(nèi)容需由學生個人獨立完成:1理解電路原理圖與工作過程;2掌握RS-232電氣特性;3掌握RS-232通信原理及串口通信數(shù)據(jù)格式,并編程完成串行數(shù)據(jù)的發(fā)送、接收和顯示;4能正確處理編程與調(diào)試過程中所遇到

2、的問題。三、原始資料1. 通信與電子系統(tǒng)實驗指導書;2. CPLD/FPGA實驗箱。四、要求的設計(調(diào)查/論文)成果1程序結(jié)構(gòu)合理,語言簡潔,格式規(guī)范,注釋詳細;2. 掌握RS-232的工作機制與原理;3. 格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位,波特率設定為300Baud。能與計算機正常通信;4. 按要求完成課程設計報告,格式符合學校規(guī)范標準,字數(shù)不少于2000字。五、進程安排第1天 選題,課題講解;第2-3天 課題分析,完成設計方案;第4-6天 軟件編程;第7-8天 軟件調(diào)試,故障排查;第9天 結(jié)果驗收,評分;第10天 撰寫課設報告。六、主要參考資料1 陳曦. 通信與電子

3、系統(tǒng)實驗指導書,武漢:華中科技大學武昌分校.2 譚會生.EDA技術及應用,西安:西安電子科技大學出版社,2010.3 潘松,黃繼業(yè).EDA技術與VHDL,北京:清華大學出版社,2009.指導教師(簽名):20 年 月 日目 錄1. 課程設計的目的42. 課程設計題目描述和要求43. 課程設計報告內(nèi)容43.1 課題設計方案及基本原理43.2 軟件設計73.3 問題144. 總結(jié)155. 參考資料16附錄 程序清單171. 課程設計的目的:(1) 學習RS-232串口通信數(shù)據(jù)結(jié)構(gòu),并編程完成串行數(shù)據(jù)的接收和顯示。(2) 掌握RS-232的工作機制與原理。(3) 熟練掌握Quartus2軟件的使用。

4、(4) 了解CPLD/FPGA實驗箱。2.課程設計題目描述和要求:(1)課程設計題目:基于FPGA的串口通信程序設計。(2)課程設計要求: 下述設計內(nèi)容需由學生個人獨立完成: 1理解電路原理圖與工作過程; 2掌握RS-232電氣特性; 3掌握RS-232通信原理及串口通信數(shù)據(jù)格式,并編程完成串行數(shù)據(jù)的接收和 顯示; 4能正確處理編程與調(diào)試過程中所遇到的問題; 5. 在FPGA中構(gòu)造一個異步串行通信控制模塊,完成PC機發(fā)送的接收,并設計 顯示模塊,完成接收數(shù)據(jù)的顯示(3)要求的設計成果: 1程序結(jié)構(gòu)合理,語言簡潔,格式規(guī)范,注釋詳細; 2. 掌握RS-232的工作機制與原理; 3. 格式為:1位

5、起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位,波特率設定 為300Baud。能與計算機正常通信; 4. 按要求完成課程設計報告,格式符合學校規(guī)范標準,字數(shù)不少于2000字。3. 課程設計報告內(nèi)容: 3.1課程設計方案及基本原理:設計方案: 利用實驗箱上的MAX232芯片控制通過適當分頻(分頻的目的是為了達到要求的波特率,控制數(shù)據(jù)傳輸速率)的串行輸入信號,并將其轉(zhuǎn)換為并行信號并通過實驗箱上的數(shù)碼管的后兩位顯示從計算機中傳輸出來的16進制數(shù)。例如在計算機端輸入(FF)則會在試驗箱上看到(FF)的顯示圖示?;驹恚?RS-323C標準是美國EIA(電子工業(yè)聯(lián)合會)與BELL等公司一起開發(fā)的1969

6、年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在020000b/s范圍內(nèi)的通信。這個標準對串行通信接口的有關問題,如信號線功能、電器特性都作了明確規(guī)定。EIA-RS-232C中+3V+15V之間的電平為0,-3V-15V的電平為1;與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平和邏輯關系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉(zhuǎn)換器件,如MC1488、SN75150芯片可完成TTL電平到EIA電平的轉(zhuǎn)換,而MC1489、SN75154可實現(xiàn)EIA電平到TTL電

7、平的轉(zhuǎn)換。MAX232芯片可完成TTLEIA雙向電平轉(zhuǎn)換。1. 串口通信:(1)什么是串口通信: 串口是計算機上一種非常通用設備通信的協(xié)議。大多數(shù)計算機包含兩個基于RS232 的串口。串口同時也是儀器儀表設備通用的通信協(xié)議;很多GPIB兼容的設備也帶 有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠程采集設備的數(shù)據(jù)。 串行 接口(Serial port)又稱“串口”,主要用于串行式逐位數(shù)據(jù)傳輸。常見的有一 般電腦應用的RS-232(使用 25 針或 9 針連接器)和工業(yè)電腦應用的半雙RS-485 與全雙工RS-422。(2) 串口接口規(guī)格: 串行接口按電氣標準及協(xié)議來分,包括RS-232-

8、C、RS-422、RS485、USB等。 RS-232-C、RS-422與RS-485標準只對接口的電氣特性做出規(guī)定,不涉及接插件、 電纜或協(xié)議。USB是近幾年發(fā)展起來的新型接口標準,主要應用于高速數(shù)據(jù)傳輸 領域。(3) 串口通信原理: 串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte) 的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。 它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設 備線總長不得超過20米,并且任意兩個設備間的長度不得超過2米;而對于串口 而言,長度可達1200米。典型地,串口用于ASCII

9、碼字符的傳輸。通信使用3根 線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在 一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須 的。 2.RS232芯片(1)電氣特性: EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。 在TxD和RxD上:邏輯1(MARK)=-3V-15V 邏輯0(SPACE)=+315V 在RTS、CTS、DSR、DTR和DCD等控制線上: 信號有效(接通,ON狀態(tài),正電壓)+3V+15V 信號無效(斷開,OFF狀態(tài),負電壓)=-3V-15(2)RS232接口定義:(3) RS232總線電平轉(zhuǎn)換:(4)

10、 RS232數(shù)據(jù)傳輸格式: 串行通信中,線路空閑時,線路的TTL電平總是高,經(jīng)反向RS232的電平總是低。一個數(shù)據(jù)的開始RS232線路為高電平,結(jié)束時RS232為低電平。數(shù)據(jù)總是從低位向高位一位一位的傳輸。示波器讀數(shù)時,左邊是數(shù)據(jù)的低位。例如,對于16進制數(shù)據(jù)55H和aaH,當采用8位數(shù)據(jù)位、1位停位傳輸時位停止位傳輸時:55H=B,高低位倒序后為B,加入一個起始位0,一個停止位1,55H的數(shù)據(jù)格式為。aaH=B,高低位倒序后為B,加入一個起始位0,一個停止位1,aaH的數(shù)據(jù)格式為:(5) RS232通信過程: I:開始通信時,信號線為空閑(邏輯),當檢測到由到的跳變時,開始對“接收 時鐘”計

11、數(shù)。 II:當計到8個時鐘時,對輸入信號進行檢測,若仍為低電平,則確認這是“起 始位”,而不是干擾信號。 III:接收端檢測到起始位后,隔16個接收時鐘,對輸入信號檢測一次,把對應的值 作為D0位數(shù)據(jù)。若為邏輯1, 作為數(shù)據(jù)位1;若為邏輯0,作為數(shù)據(jù)位0。 IV:再隔16個接收時鐘,對輸入信號檢測一次,把對應的值作為D1位數(shù)據(jù)。., 直到全部數(shù)據(jù)位都輸入。 V:檢測校驗位P(如果有的話)。 VI:接收到規(guī)定的數(shù)據(jù)位個數(shù)和校驗位后,通信接口電路希望收到停止位S(邏輯 1),若此時未收到邏輯說明出現(xiàn)了錯誤在狀態(tài)寄存器中置“幀錯誤”標志若沒 若此時未收到邏輯1,說明出現(xiàn)了錯誤,在狀態(tài)寄存器中置“幀錯

12、誤”標志。若 沒有錯誤,對全部數(shù)據(jù)位進行奇偶校驗,無校驗錯時,把數(shù)據(jù)位從移位寄存器 中送數(shù)據(jù)輸入寄存器。若校驗錯,在狀態(tài)寄存器中置奇偶錯標志。 VII:本幀信息全部接收完把線路上出現(xiàn)的高電平作為空閑位。 VIII:當信號再次變?yōu)榈蜁r,開始進入下一幀的檢測。3.2軟件設計(1) Quartus頂層設計 如上圖所示,整個頂層設計可以分為4個部分,(1)鎖相環(huán);作用是將輸入的系統(tǒng)時鐘信號(系統(tǒng)時鐘50MHZ)轉(zhuǎn)換為12MHZ的sysclk時鐘,在進入RS232前先進行第一次分頻彌補RS232自身分頻不足的特點。(2)核心模塊RS232;作用是將計算機輸入的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)便于給后方的顯示模塊處

13、理。(3)分頻模塊;作用是給顯示模塊提供所需的時鐘,由于顯示模塊的本質(zhì)是一個個顯示,所以為了能同時顯示故將輸入頻率調(diào)至1KHz以上讓人眼無法一個個識別形成同時顯示的效果。(4)顯示模塊;作用是將輸入的并行信號(8位)分成4位一組,即兩組進行處理后在試驗箱的數(shù)碼管上顯示。(1-1)模塊一分析: 從上圖可以看出:1.inclk=50MHz 2.DC=50% 3.Ratio=12/25 ,從而可以得出outclk=50MHz*12/25=24MHz,再通過D觸發(fā)器2分頻后得到12MHz的輸出系統(tǒng)時鐘來彌補RS232模塊分頻不足的缺點。(1-2)模塊二分析: 上圖所示的為RS232集成模塊,經(jīng)VHDL

14、編譯生成的模塊文件。輸入為sysclk=12MHz,rxd=計算機輸入的串行數(shù)據(jù)串,disp為8位的并行數(shù)據(jù)段。程序1:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rs232 isport(sysclk: in std_logic; rxd: in std_logic; disp: out std_logic_vector(7 downto 0) );end rs232;分析:定義實體。輸入信號,輸入時鐘信號為邏輯信號,輸出信號disp為8位矢量信號,低位為0 高位為7。arch

15、itecture behv of rs232 is signal b: std_logic_vector(9 downto 0); signal r: std_logic_vector(3 downto 0); signal j: std_logic_vector(15 downto 0); signal frxd,gt,gtclr,cclk,gate: std_logic;begin gate=gt and cclk; disp(7 downto 0)=b(8 downto 1); 將串行數(shù)據(jù)段的1-8位數(shù)據(jù)位從b中取出至于disp中。 frxd=not rxd;分析:定義機構(gòu)體。先定義可信

16、號b,r,j。其中的b作為數(shù)據(jù)轉(zhuǎn)移的臨時載體。R,j分別作為后 續(xù)程序的計數(shù)單元,其中需要注意的是j的位數(shù)控制,因為當需要控制波特率的時候,由于 輸入的sysclk是固定的12MHz的系統(tǒng)時鐘信號無法改變,故能改變的只有RS232中的分頻系 數(shù),但由于分頻的系數(shù)的改變,于是j作為計數(shù)信號其值也將隨之改變。 s1:process(sysclk,gt) begin if gt=0 then j0); elsif sysclkevent and sysclk=1 then if j=00000 then j0); else j=j+1; end if; end if;end process;分析:s

17、1的段碼作用是用來計數(shù),所記數(shù)為RS232的分頻系數(shù),上述代碼中的為40000, 通過計算12M/1250=9600,故可以得知波特率為9600b/s。通過改變j的值可以很方便的來設 置所需要的波特率。s2:process(j)begin if j= then cclk=1; else cclk=0; end if;end process;分析:s2的段碼作用是當j計數(shù)到一定數(shù)值的時候產(chǎn)生一個脈沖,從而實現(xiàn)分頻的作用。其中j值 的設定關系到分頻的占空比,只需要j 的值在分頻系數(shù)之內(nèi)即可產(chǎn)生分頻的效果。s3:process(gate,gtclr)begin if gtclr=1 then r=0

18、000; elsif gateevent and gate=1 then r=r+1; end if;end process;s4:process(gate,r)begin if r=1010 then gtclr=not gate; else gtclr=0; end if;end process;分析:s3,s4段碼的作用是計數(shù)從0-10,即計數(shù)輸入數(shù)據(jù)段的10位,0-起始位,1-8-數(shù)據(jù)位,9- 終止位。s5:process(gate,rxd,b)begin if gateevent and gate=1 then b(9 downto 0)=rxd&b(9 downto 1); 將b的

19、后9位并上rxd 的第一位組合成新的信號b。 end if;end process;分析:s5段碼的作用是,將rxd的輸入信號通過移位寄存的方法將RXD中的數(shù)據(jù)一一取出移動到信 號b中,然后再通過的b的移位從而將rxd中的數(shù)據(jù)段完整的轉(zhuǎn)移到信號b中保存。s6:process(frxd,gtclr)begin if gtclr=1 then gt=0; elsif frxdevent and frxd=1 then gt=1; end if; end process;end behv;分析:s6的段碼的作用是用于判斷起始位,gt做為標志位,當已經(jīng)確定為開始時,將 gt的值置1。(1-3)模塊三分

20、析:分析:從上圖可以看出其作用是作為分頻,將50MHz的輸入信號先通過PIN1MHZ模塊將50MHZ 分為1Mhz,再將1MHZ的信號輸入到下一個分頻信號中分為頻率為:1HZ,488HZ,1953HZ, 7812HZ,31250HZ,125kHZ,500kHZ的信號。程序1:PIN1hzLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ IS PORT(CLKIN:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC);END PIN1MHZ;ARCH

21、ITECTURE A OF PIN1MHZ ISBEGINPROCESS(CLKIN)VARIABLE CNTTEMP:INTEGER RANGE 0 TO 49;BEGIN IF CLKIN=1 AND CLKIN EVENT THEN IF CNTTEMP=49 THEN CNTTEMP:=0; ELSE IF CNTTEMP25 THEN CLKOUT=1; ELSE CLKOUT=0; END IF; CNTTEMP:=CNTTEMP+1; END IF ; END IF;END PROCESS;END A;分析:上述程序段中可以知道,使用變量VARIABLE做為計數(shù),從0-49剛好為

22、50個數(shù), 當小于25的時候賦值為1,其余為0,使得將50MHZ處理為1MHZ。當取值大于或 等于50時復位為0。從而達到分頻的目的。程序2:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt isport(clk:in std_logic; freq1:out std_logic; freq488:out std_logic; freq1953:out std_logic; freq7812:out std_logic; freq31250:out std_logic; fre

23、q125k:out std_logic; freq500k:out std_logic);end cnt;architecture behv of cnt is signal temp:std_logic_vector(19 downto 0);begin process(clk) begin if clk event and clk=1 then if temp= then temp=; else temp=temp+1; end if; end if;end process; freq1=temp(19); freq488=temp(10); freq1953=temp(8); freq7

24、812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=temp(0); end behv;分析:程序2的設計思路同樣是使用計數(shù),但和程序1的計數(shù)不完全相同,數(shù)由16進 制表示,4為2進制組成1位16進制,所以從第0位開始可以計數(shù)2位,第一位 可以計數(shù)4位,第二位可以計數(shù)8位,依次可以得出計數(shù)量為2的n+1次方個數(shù), 從而達到同時計數(shù)多個的目的從而產(chǎn)生多個時鐘信號。(1-4)模塊四分析:分析:顯示模塊由兩部分組成,74138的表面作用是譯碼將輸入的sel信號翻譯出來并選中制定的數(shù) 碼管。其實質(zhì)作用是由輸入的信號(0-7計數(shù)為8的計數(shù)

25、信號輸入),來控制數(shù)碼管的片選。 而display的作用是來實現(xiàn)片選,將RS232輸出的并行信號的兩部分(每部分4位組成一個 16進制數(shù))進行處理來實現(xiàn)段選。分析:上圖為display模塊的細節(jié)圖。rxd中的信號分為兩組輸入,分別進入muxer 的第0組和第1 組。其余的組全部拉低,達到出去最低兩位顯示,其余為顯示全0的目的,cnt8為0-7的計 數(shù),作用是控制muxer進入led程序的順序,而led是為了實現(xiàn)段選,點亮數(shù)碼管的特定位來 顯示輸入數(shù)值。程序1.library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned

26、.all;entity cnt8 isport(clk:in std_logic; q:out std_logic_vector(2 downto 0);end cnt8;architecture behv of cnt8 issignal temp:std_logic_vector(2 downto 0);begin process(clk) begin if clk event and clk=1 then if temp=111 then temp=000; else temp=temp+1; end if; end if; end process; qdoutdoutdoutdoutd

27、outdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=; end case; end process;end behv;分析:程序led是完成段顯,將輸入的數(shù)值0-15翻譯成對應的數(shù)碼管編碼。(1-5)接收模塊分析:程序rsSedn作為接受模塊,用于將232中發(fā)送的數(shù)據(jù)再次回寫到到串口助手的接收端內(nèi)!要是程序完全正常的話發(fā)送什么就會在接收窗口接收到什么。3.3問題:如何真正的實現(xiàn)發(fā)送和接受同步,并且發(fā)送的和接收的完全一樣?發(fā)送和接收波特率怎么弄?答:接收和顯示的已經(jīng)做出來了,但是發(fā)送的4.總結(jié):參考文獻1 通信與電子系統(tǒng)實驗指導書.武漢:華中科

28、技大學武昌分校.2 潘松.EDA技術與VHDL.北京:清華大學出版社,2009.3 朱運利.EDA技術應用(第二版).北京:電子工業(yè)出版社,2007.4 王行.EDA技術入門與提高.西安:西安電子科技大學出版社,2009.5 李莉.電子設計自動化(EDA).北京:中國電力出版社,2009. 附錄 程序清單:程序1:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rs232 isport(sysclk: in std_logic; rxd: in std_logic; disp: ou

29、t std_logic_vector(7 downto 0) );end rs232;architecture behv of rs232 is signal b: std_logic_vector(9 downto 0); signal r: std_logic_vector(3 downto 0); signal j: std_logic_vector(15 downto 0); signal frxd,gt,gtclr,cclk,gate: std_logic;begin gate=gt and cclk; disp(7 downto 0)=b(8 downto 1); frxd=not

30、 rxd;s1:process(sysclk,gt) begin if gt=0 then j0); elsif sysclkevent and sysclk=1 then if j=00000 then j0); else j=j+1; end if; end if;end process;s2:process(j)begin if j= then cclk=1; else cclk=0; end if;end process;s3:process(gate,gtclr)begin if gtclr=1 then r=0000; elsif gateevent and gate=1 then

31、 r=r+1; end if;end process;s4:process(gate,r)begin if r=1010 then gtclr=not gate; else gtclr=0; end if;end process;s5:process(gate,rxd,b)begin if gateevent and gate=1 then b(9 downto 0)=rxd&b(9 downto 1); end if;end process;s6:process(frxd,gtclr)begin if gtclr=1 then gt=0; elsif frxdevent and frxd=1

32、 then gt=1; end if; end process;end behv;程序2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ IS PORT(CLKIN:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC);END PIN1MHZ;ARCHITECTURE A OF PIN1MHZ ISBEGINPROCESS(CLKIN)VARIABLE CNTTEMP:INTEGER RANGE 0 TO 49;BEGIN IF CLKIN=1

33、AND CLKIN EVENT THEN IF CNTTEMP=49 THEN CNTTEMP:=0; ELSE IF CNTTEMP25 THEN CLKOUT=1; ELSE CLKOUT=0; END IF; CNTTEMP:=CNTTEMP+1; END IF ; END IF;END PROCESS;END A;程序3:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt isport(clk:in std_logic; freq1:out std_logic; freq

34、488:out std_logic; freq1953:out std_logic; freq7812:out std_logic; freq31250:out std_logic; freq125k:out std_logic; freq500k:out std_logic);end cnt;architecture behv of cnt is signal temp:std_logic_vector(19 downto 0);begin process(clk) begin if clk event and clk=1 then if temp= then temp=; else tem

35、p=temp+1; end if; end if;end process; freq1=temp(19); freq488=temp(10); freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500kdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=; end case; end process;end behv;程序5:library ieee;use ieee.std_logic_1164.all;

36、use ieee.std_logic_unsigned.all;entity cnt8 isport(clk:in std_logic; q:out std_logic_vector(2 downto 0);end cnt8;architecture behv of cnt8 issignal temp:std_logic_vector(2 downto 0);begin process(clk) begin if clk event and clk=1 then if temp=111 then temp=000; else temp=temp+1; end if; end if; end process; q=temp;end behv;程序6:li

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論