《嵌入式系統(tǒng)》設(shè)計方案_第1頁
《嵌入式系統(tǒng)》設(shè)計方案_第2頁
《嵌入式系統(tǒng)》設(shè)計方案_第3頁
《嵌入式系統(tǒng)》設(shè)計方案_第4頁
《嵌入式系統(tǒng)》設(shè)計方案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上移動打印終端終嵌入式系統(tǒng)設(shè)計方案 閱讀目錄一 項目概述 11 系統(tǒng)設(shè)計的必要性與PC終端的比較 在信息社會中,打印終端應(yīng)用非常廣泛,比如超市的收銀系統(tǒng)、圖書管的借還書系統(tǒng)、移動營業(yè)廳的話費打印系統(tǒng)等場合,我們都可以看到打印終端的身影。傳統(tǒng)打印終端通常都是由PC加上一個微型打印機(jī)構(gòu)成,這種架構(gòu)的打印終端價格比較昂貴,體積龐大,移動笨拙,使用十分不方便。 隨著嵌入式技術(shù)的發(fā)展,許多原來基于PC的應(yīng)用都紛紛轉(zhuǎn)向基于嵌入式技術(shù)來實現(xiàn)?;谇度胧郊夹g(shù)的產(chǎn)品具有非常明顯的優(yōu)勢,如價格便宜、功耗低、體積小及移動方便等。具體到打印終端這個產(chǎn)品上來說,可以從下表看出基于PC的打印終端和

2、基于嵌入式的打印終端在各個方面的差異性?;赑C的打印終端基于嵌入式的打印終端價格幾千元不等幾百元左右體積很大非常小性能強(qiáng)較強(qiáng)開發(fā)方便性易較易移動方便 性難易12 系統(tǒng)的主要功能本項目實例中擬開發(fā)的嵌入式移動打印終端是解決從數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出的一體化系統(tǒng),它提供下列幾個功能 數(shù)據(jù)錄入功能:支持從掃描儀端錄入數(shù)據(jù); 通過網(wǎng)絡(luò)到數(shù)據(jù)庫查詢; 數(shù)據(jù)打印功能二 系統(tǒng)總體架構(gòu) 嵌入式移動終端是一套完整的嵌入式應(yīng)用系統(tǒng),包括和硬件和軟件兩部分,這一節(jié)先說一下硬件方面的設(shè)計。21 系統(tǒng)硬件組成的部件 數(shù)據(jù)輸入部件(手持掃描儀)完成數(shù)據(jù)輸入功能; 數(shù)據(jù)處理部件(嵌入式開發(fā)板和遠(yuǎn)程服務(wù)器)完成數(shù)據(jù)處理

3、任務(wù) 數(shù)據(jù)輸出部件(微型打印機(jī))完成數(shù)據(jù)打印功能;掃描儀嵌入式開發(fā)板各個部件之間的關(guān)系如圖遠(yuǎn)程服務(wù)器打印機(jī) 圖1 嵌入式移動打印終端架構(gòu)2.1.1 各功能部件作用 數(shù)據(jù)輸入部件 通常一個系統(tǒng)可以有很多種輸入數(shù)據(jù)的途徑,常用的輸入設(shè)備有鍵盤鼠標(biāo)等.在嵌入式移動打印終端中,只采用了掃描儀來完成數(shù)據(jù)的輸入工作,當(dāng)然系統(tǒng)如果想要實用化,應(yīng)該再加上鍵盤等其它輸入部件,但在這里就只用為個來設(shè)計了. 數(shù)據(jù)處理部件 數(shù)據(jù)處理部件是一整個應(yīng)用系統(tǒng)的核心,它的主要任務(wù)是得到掃描儀傳來的數(shù)據(jù)信息,然后連接遠(yuǎn)程服務(wù)器,將數(shù)據(jù)傳送到遠(yuǎn)程服務(wù)器端,完成查詢?nèi)蝿?wù)后,從遠(yuǎn)程服務(wù)器端得到結(jié)果,然后將結(jié)果送給微型打印機(jī)打印. 所

4、以,數(shù)據(jù)處理部件包括嵌入式開發(fā)板和遠(yuǎn)程服務(wù)器兩個部分。嵌入式開發(fā)板和遠(yuǎn)程服務(wù)器之間通過網(wǎng)絡(luò)線相連。 數(shù)據(jù)輸出部件 在超市收銀系統(tǒng)中,收銀員最后的一個動作總是打印顧客的單據(jù)。同樣,在嵌入式移動打印終端系統(tǒng)中,最后一個動作也是將查詢到的結(jié)果通過一個微型打印機(jī)打印出來。22對硬件的選擇 221 手持式掃描儀 該掃描儀主要完成的功能 其實是條碼掃描的任務(wù)。條碼掃描是用來掃描條形碼的設(shè)備,利用光學(xué)原理,把條形碼的內(nèi)容解碼后通過數(shù)據(jù)線或者無線的方式傳輸?shù)诫娔X或者別的設(shè)備中。 根據(jù)實際情況,現(xiàn)在擬定了一個關(guān)于掃描儀的規(guī)格參數(shù): 光學(xué)規(guī)格 光學(xué)系統(tǒng):2048PixelCCD 掃描速度:每秒100次 光源:紅色

5、可見光LED 讀取條碼寬度:可讀至90mm 掃描距離:020mm接口類型 支持鍵盤和RS-232C接口 條碼種類:WPC(EAN-13,EAN-8,UPC-A,UPC-E)Code 128 Code39Coda bar Code 11,Code39,Code39 extened,Interleaved 2of 5,Code 32,EAN-128,ChinIATA,ChinIATA,MSI/PLESSY,STD 2 of 4,Martix 2of 5,ItalianPhamacy Code ,Industrial 2 of5,BC-412,中國郵政碼電氣規(guī)格 電壓:5V DC 操作規(guī)格: 607

6、0 mA 待機(jī)電源:2030mA其它 操作法度:0440度 傳輸線:1.75M 尺寸:長166mm寬90nm高32nm222 嵌入式開發(fā)板 嵌入式開發(fā)板是本系統(tǒng)的核心部件,它擔(dān)負(fù)著整個系統(tǒng)中心樞紐的重?fù)?dān),同時,它的選型也直接影響到上層操作系統(tǒng)和其它部件的選型。所以,在選擇這個部件時,要站在整個系統(tǒng)的高度來進(jìn)行。 在設(shè)計嵌入式移動打印終端系統(tǒng)時,根據(jù)接口類型、所支持的操作系統(tǒng)、性價比這幾個要素來選取開發(fā)的類型與參數(shù),具體如下表所示:硬件參數(shù) 軟件參數(shù)1、 采用三星公司的S3C2410,主頻可達(dá)203MHz2、 64MB的SDRAM,由兩片K4S組成,工作在32位模擬式下3、 64MB Nand

7、Flash,采用的是K9F1208,可兼容16MB,32MB或128MB;2MB的Nor Flash,采用的是SST39VF1601,工作在16位模式下4、 10Mbps以太網(wǎng)接口,采用的是CS8900Q3,帶傳輸和連接指示燈5、 LCD和觸摸屏接口6、 1個USN Host,S3C2410內(nèi)置的,符合USB1.1;一個USB Device,S3C2410內(nèi)置的,符合USB1.17、 支持音頻輸入和音頻輸出,音頻模塊由S3C2410的S音頻總線接口和UDA1341音頻編譯解碼器組成,模塊還集成了一個MIC,用于音頻輸入8、 2路URART串行行口,波特率可高達(dá)bps,并具有RS-232電平轉(zhuǎn)換

8、電路9、 SD卡接口,兼容SDMemory Card Protocol 1.010、 蜂鳴器,4個LED燈,4個按鍵11、 Embedded-ICE(20腳標(biāo)準(zhǔn)JTAG)接口和并口式JTAG接口,支持ADS、SDT軟件的下載和調(diào)試,以及FLASHf燒寫 測試代碼,啟動引導(dǎo)源代碼BIOS和下載燒寫工具 Linux for 2410的內(nèi)核源碼包,以及內(nèi)核交叉編譯工具,可運行的根文件系統(tǒng)及根文件系統(tǒng)制作工具 Qt-embedded-2.3和qtopia-free-1.7.0源碼,應(yīng)用程序交叉編譯器 winCE4.2NET板級支持包BSP for 2410,以及已編譯好的WINCE鏡像文件 ST241

9、0底板和核心板電路原理圖 ST2410開發(fā)板使用手冊 實用工具 ST2410 開發(fā)板相關(guān)參數(shù) 223 微型打印機(jī)的選型 微型打印機(jī)腹脹榮達(dá)科技RD-M系列微型打印機(jī),該款采用獨特的面板式嵌入結(jié)構(gòu),便可將整個打印機(jī)固定在儀表面板上,操作簡單、方便。下面是它的一些參數(shù)指標(biāo) 打印方式:針打,針式撞擊點陣打?。簾崦?,熱敏加熱熱點陣打印 打印速度:針打,1.0行/秒,0.7行/秒,0.4行/秒:熱敏,35毫米/秒 分辯率:針打,8點/毫米,384點/行。 打印寬度:針打,16/24/40;熱敏,32。 打印字符:全部448個字符及圖塊,包括96個ASCII字符,352個希臘文德文俄文法文等字母,日文片假

10、名,部分中文漢字,數(shù)字符號,打印字符,塊圖符;32個用戶自定義字符。國標(biāo)一二級漢字庫中全部漢字和西文字、圖符共有817個。 字符大小:西文,57;塊圖符,68點陣;用戶自定義字符,漢字,2424,點陣,1616 控制板;采用模塊化驅(qū)動控制電路,有效保護(hù)打印頭的絕對安全;專門的復(fù)位控制電路、電源監(jiān)測電路以及近乎完美的軟硬件看門狗控制的電路,確保打印機(jī)不死機(jī)、不亂打。 控制命令:通用ESC/p打印命令。 打印緩存:32KB。224遠(yuǎn)程服務(wù)器 遠(yuǎn)程服務(wù)器用于存在放在型數(shù)據(jù)庫,它通過網(wǎng)絡(luò)接口接收嵌入式開發(fā)板發(fā)來的數(shù)據(jù),然后進(jìn)行查詢、更新等處理操作,最后把結(jié)果再傳給嵌入式開發(fā)板。所以,遠(yuǎn)程服務(wù)器必須具備

11、較強(qiáng)的數(shù)據(jù)存儲能力和網(wǎng)絡(luò)通信能力。要本系統(tǒng)中我們可以用一臺普通PC來完成這個功能。三 軟/硬件設(shè)計 31 設(shè)計的流程 嵌入式移動打印終端系統(tǒng)設(shè)計開發(fā)可以分為三5個模塊: 開發(fā)環(huán)境的建立 硬件的設(shè)計; 掃描儀驅(qū)動的設(shè)計; 打印機(jī)驅(qū)動的設(shè)計 服務(wù)器數(shù)據(jù)庫的設(shè)計及通信模塊的開發(fā)。 設(shè)計思想是:從硬件到軟件,從底層到上層的方法。流程圖如下開始設(shè)計硬件的設(shè)計結(jié)束應(yīng)用程序的編寫網(wǎng)絡(luò)通信及服務(wù)器的設(shè)計打印機(jī)驅(qū)動的設(shè)計32 硬件設(shè)計 由于本開發(fā)系統(tǒng)中的核心部件采用已有的開發(fā)板,硬件設(shè)計的任務(wù)就大為簡單,其核心任務(wù)就轉(zhuǎn)化為通過嵌入式開發(fā)板將各個部件連接在一起即可。321 嵌入式開發(fā)板和掃描儀的連接 這一步驟是要

12、把電路設(shè)計的圖給出的,但是由于現(xiàn)在的設(shè)計都是從理論上做而已,沒有真實的開發(fā)板,所以畫不出來電路圖。322嵌入式開發(fā)板和遠(yuǎn)程服務(wù)器的連接 這一步驟是要把電路設(shè)計的圖給出的,但是由于現(xiàn)在的設(shè)計都是從理論上做而已,沒有真實的開發(fā)板,所以畫不出來電路圖。323 嵌入式開發(fā)板和微型打印機(jī)的連接 這一步驟是要把電路設(shè)計的圖給出的,但是由于現(xiàn)在的設(shè)計都是從理論上做而已,沒有真實的開發(fā)板,所以畫不出來電路圖。四 各驅(qū)動程序的設(shè)計(軟件設(shè)計)41 打印機(jī)驅(qū)動的設(shè)計按照編寫嵌入式驅(qū)動 的方法,打印機(jī)驅(qū)動的編寫可分為下列的幾個環(huán)節(jié): 定義設(shè)備號和設(shè)備名 實現(xiàn)設(shè)備驅(qū)動初始化函數(shù)和清除函數(shù); 設(shè)計所要實現(xiàn)的文件操作,定

13、義file_operation結(jié)構(gòu),實現(xiàn)所需的底層接口調(diào)用函數(shù); 將驅(qū)動編譯到內(nèi)核或編譯成模塊,用insmod命令加載; 生成設(shè)備節(jié)點文件。411定義設(shè)備號和設(shè)備名#define DEVICE_NAME “weida_printer”#define WEIDA_MAJOR2344.1.2 設(shè)備驅(qū)動初始化函數(shù)和清除函數(shù)Module_init(weida_printf_init);Module_exit(weida_print_exit);MODULE_LICNSE(“GPL”);其中,在初始化函數(shù)weida_printf_init中完成設(shè)備注冊任務(wù)和微型打印機(jī)端口初始化任務(wù),具體函數(shù)如下:sta

14、tic int_weida_print_init(void)int ret;ret=register_chrdev(WEIDA_MAJOR,DEVICE_ANME,&weida_print_fops);if(tet0)printk(DEVICE_NAME cant register major numbern);return ret;weida_print_io_port_init();weida_init();printk(weida_printer_init!/n);return 0;ret=register_chrdev(WEIDA_MAJOR,DEVICE_ANME,&weida_pr

15、int_fops);完成設(shè)備注冊任務(wù),其中WEIDA_MAJOR為設(shè)備號,DEVICE_NAME為設(shè)備名,weida_printer_fops為struct file_oerations結(jié)構(gòu)休變量,其內(nèi)部每一個成員都 是函數(shù)指針,指向?qū)?yīng)的微型打印機(jī)底層接口。初始化GPIO端口gpio_data_tab=GPIO_C8,GPIO_C10,GPIO_C11,GPIO_C12,GPIO_13,GPIO_14,GPIO_15;#define DATA_NUM(sizeof(gpio_data_tab/sizeof(gpio_data_tab0)#define WIDA_DATA_READY GPIO

16、_D0#define WEIDA_ACK GPIO_D1#define WEIDA_BUSY GPIO_D2#define WEIDA_BUSY GPIO_D3#define WEIDA_BUSY GPIO_D4 Weida_printf_io_init()函數(shù)將調(diào)用一睦設(shè)置GPIO的函數(shù)將GPIO初始化:static void weida_printer_io_port_init(void)int i;unsigned gpio;for(i=0;iDATA_NUM;i+)gpio = gpio_data_tabi;set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPI

17、O_MODE_OUT);write_gpio_bit(gpio,0);set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPIO_MODE_OUT);set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPIO_MODE_OUT);set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPIO_MODE_OUT);set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPIO_MODE_OUT);set_gpio_ctrl(gpio|GOP_PULLUIP_DIS|(GPIO_MODE_OUT); printk(in

18、it port!/n);set_gpio_ctrl()函數(shù)用于設(shè)置GPIO口的相關(guān)屬性,如set_gpio_ctrl(WEIDA_DATA_READYIGPIO_PULL_DISIGPIO_MODE_OUT)設(shè)置GPIO_D0口的一些屬性,其中WEIDA_DATGA_READY為連接打印機(jī)的 ready 口的GPIOD0,GPIO-PULL-DS設(shè)置不需要上拉電阻,GPIOMODE-OUT設(shè)置口為輸出口,同樣可以定義其它幾個GPIO口相應(yīng)屬性。(3)初始化打印機(jī)static void weda_init(void)INIT_WEIDA;SET_LANDSCAPE;SET_FONT_SPACE(

19、2);SET_LINE_SPACE(2);DELETE_LINE; 這幾個宏用來初始化打印機(jī),它們的宏體中都用到TYPE_DATA(N)函數(shù),該函數(shù)是嵌入式開發(fā)板向微型打印機(jī)發(fā)送ASCII數(shù)據(jù)n,其中具體實現(xiàn)代碼如下:static void type_data(unsigned char data)int data_bit,j;mdelay(150);for(j =0;j8;j+)data_bit = (data&(1j)printk(%d,data_bit);write_gpio_bit(gpio_data_tabj,data_bit&0x01)udelay(2);DATA_READY(0)

20、;UDELAY(2);DATA_READY(1); 每次發(fā)數(shù)據(jù)時都要延遲幾毫秒,以防向打印機(jī)發(fā)送數(shù)據(jù)過快,打印機(jī)來不及處理而產(chǎn)生丟失數(shù)據(jù)現(xiàn)象,所以要設(shè)置。下面具體分析如何編寫這些惛層接口操作函數(shù)。(1) weida_printer_open/weida_printer_close;打開/關(guān)閉打印機(jī):該函數(shù)完成打印操作,在該函數(shù)中,首先判斷打印機(jī)是否在張,是否忙。是否準(zhǔn)備好,在打印機(jī)準(zhǔn)備的情況下完成數(shù)據(jù)打印任務(wù)。函數(shù)的具體實現(xiàn)代碼如下:static int weida_printer_write(struct file,const char *buffer,size_t cout,loff_t

21、*ppos)unsigned char *kbuf;int ready;ready = read_gpio_bit(WEIDA_BUSY);if(ready)return -EBUSY;ready = read_gpio_bit(WEIDA_SELECT);if(!ready)return -EAGAIN;ready = read_gpio_bit(WEIDA_ERROR);if(ready)return -EINVAL;kbuf = malloc(count+1,GPF_KERNEL);memeset(kbuf,0,count+1)if(copy_from_user(kbuf,buffer,

22、count)printk(copy form user wrong!);kfree(kbuf);return -EFAULT;while(*kbuf!=0)tyupe_data(*kbuf);while(read_gpio_bit(WEIDA_ACK);prinntk(%c,*kbuf);kbuf+;kfreee(kbuf);return count;打印時用函數(shù)copy_from_user(kbuf,buffer,count)將數(shù)據(jù)從用戶態(tài)到核心態(tài)。weida_printer_ioctl通過該函數(shù)對打印機(jī)的字體、行距等屬性進(jìn)行設(shè)置,函數(shù)的具體實現(xiàn)代碼如下:static int weida_p

23、rinter_ioct(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg)int mum;switch(cmd)case WEIDA_IOCSFONTSPACE;copy_from_user(&num,&arg,sizeof num);SET_FONT_SPACE(num);break;case WEIDA_IOCSLINESPACE; COPY_from_user(&num,&arg,sizeof num);SET_LINE_SPACE(NUM);break;case WEIDA_IOCSLINE

24、SPACE; COPY_from_user(&num,&arg,sizeof num); break; case WEIDA_IOCSUPLINE; copy_from_user(&num,&arg,sizeof num); SET_UPLINE(num); break; case WEIDA_IOCSCHARACTER1; select_character1; break;case WEIDA+IOCSDOT_MATR1X;COPY_FROM_USERT(NUM,&ARG,SIZEOF NUM);case WEIDA_IOCSLINESPACE; COPY_from_user(&num,&a

25、rg,sizeof num); break; case WEIDA_IOCSUPLINE; copy_from_user(&num,&arg,sizeof num); SET_UPLINE(num); break; case WEIDA_IOCSCHARACTER1; select_character1; break;case WEIDA+IOCSDOT_MATR1X;COPY_FROM_USERT(NUM,&ARG,SIZEOF NUM);(2) weida_print_select 該函數(shù)用來選擇打印機(jī),函數(shù)的具體實現(xiàn)代碼如下:static unsigned int weida_print

26、er_select(struct file *file,struct poll_table_struct *)int ready;ready = read_geipo_buf(WEIDA_BUSY);if(!ready)return l;poll_wait(file,&weida_printer_wait,wait);printk(select);return ;4編譯掃描儀制備驅(qū)動 假設(shè)上述微型打印機(jī)驅(qū)動代碼存放在weida_printer.c 和weida_printer.h中并且放在weida_printer目錄下。在該目錄 下編寫Makefile文件,內(nèi)容如下:CROSS = artm

27、Weida-printer.0.weida_printer.c weida_printer.h$CROSS gcc-d_kerner_DMODULE-I/home/lichao/2.4.18-rmk7/include-c o weida_printer weida_printer.cCleanM rf weida_printer 在/weida_printer目錄下,執(zhí)行下列命令編譯: make在當(dāng)前目錄下就可以得到驅(qū)動模塊文件weida_printer.o5.加載設(shè)備 編譯好驅(qū)動模塊后,可以通過網(wǎng)絡(luò)將weida_printer.o文件傳輸?shù)角度胧介_發(fā)板,在嵌入式開發(fā)板超級終端環(huán)境下執(zhí)行下列命

28、令將打印機(jī)設(shè)備運動模塊加載內(nèi)核: Inmsod weida_printer.o生成設(shè)備節(jié)點:Mknod/dev/weida_printer c23406.打印機(jī)驅(qū)動測試程序設(shè)計 通過上面的幾個步驟,打印機(jī)驅(qū)動模塊已經(jīng)注冊到內(nèi)核,在/dev目錄下可以打到weida_printer設(shè)備,那么編寫的設(shè)備驅(qū)動模塊是否正確,能否完成所要求的功能呢?這些必須編寫測試程序來進(jìn)行測試. 下面是一個簡單的測試程序代碼,詳細(xì)的功能測試代碼可以在該程序的基礎(chǔ)之上進(jìn)行擴(kuò)充.int main(void)int weida_fd,ret;char *data = Hell, Welcome to use weida pr

29、inter;weida_fd = open(/dev/weida_printer.O_WRONLY);if(weida_fd0)perrof(open device buttons);exit(1);ret write(weda_fd,data,strien(data);if(ret!=strlen(data)perror(print worng/n);ioctl(weida_fd,WIDA_IOCSLNESPACE,1);sleep(1);ret = write(weida_fd,data,strlen(data);if(ret!= strlen(data)perror(printf wro

30、ngn);clsoe(weida_fd);return 0;4.1.3 掃描儀驅(qū)動設(shè)計掃描儀直接接到嵌入式開發(fā)板串口上,對它的控制非常簡單,只需要將串口1的波特率屬性配置成和掃描儀一致,掃描儀掃描后直接可以從串口讀出數(shù)據(jù),讀數(shù)據(jù)就為掃描儀掃到的條形碼.1. 編寫串口設(shè)置函數(shù) Set_speed(int fd,int speed)用于設(shè)置串口速率,其中fd為打開設(shè)備文件,speed為速率,具體的函數(shù)代碼如下;void set_speed(int fd,int speed)int i;int statis;struct termios opt;for(i =0;isizeof(speed_arr)/sizeof(int);i+)if(speed = name_arti)teflush(fd,TCIOFLUSH);cfetispeed(&Opt,speed_arri);cfsetospeed(&Opt,speed_armi);status = tcsetarr(fd,TCSANOW,&Opt);if(status != 0)perror(tesetarr fd1);return ;teflush(fd,TCIOFLUSH);4.1.4 網(wǎng)絡(luò)通信模塊及服務(wù)器的開發(fā) 嵌入式移支打印終端和遠(yuǎn)程服務(wù)器之間采用C/S

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論