基于FPGA的I2C接口程序?qū)崿F(xiàn)課程設(shè)計(jì)1_第1頁
基于FPGA的I2C接口程序?qū)崿F(xiàn)課程設(shè)計(jì)1_第2頁
基于FPGA的I2C接口程序?qū)崿F(xiàn)課程設(shè)計(jì)1_第3頁
基于FPGA的I2C接口程序?qū)崿F(xiàn)課程設(shè)計(jì)1_第4頁
基于FPGA的I2C接口程序?qū)崿F(xiàn)課程設(shè)計(jì)1_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、鄭州輕工業(yè)學(xué)院可編程數(shù)字系統(tǒng)設(shè)計(jì) 題 目 基于fpga的i2c接口程序?qū)崿F(xiàn)給予fpga的i2c接口程序?qū)崿F(xiàn) 摘 要串行擴(kuò)展接口的發(fā)展是新一代單片機(jī)技術(shù)的顯著特點(diǎn),其中i2c 總線功耗低,結(jié)構(gòu)簡單,使用靈活,被廣泛應(yīng)用于視頻、音像等各類設(shè)備中。本課題首先研究了iic 總線的規(guī)范,簡要介紹了quartus 設(shè)計(jì)平臺(tái),以及fpga 的設(shè)計(jì)流程。在此基礎(chǔ)上,重點(diǎn)介紹了iic 接口的總體設(shè)計(jì)方案,詳細(xì)描述時(shí)序狀態(tài)機(jī)的工作原理和verilog hdl 語言的實(shí)現(xiàn),以及在quartus 平臺(tái)上的時(shí)序仿真。本系統(tǒng)采用了自頂向下的設(shè)計(jì)方法,利用了verilog hdl 語言的結(jié)構(gòu)描述風(fēng)格,把整個(gè)設(shè)計(jì)分成6 個(gè)模

2、塊,時(shí)鐘分頻模塊,寄存器組模塊,數(shù)據(jù)接收模塊,數(shù)據(jù)發(fā)送模塊,輸出緩沖模塊,時(shí)序控制模塊,頂層模塊也采用語言描述。在quartus平臺(tái)上,實(shí)現(xiàn)系統(tǒng)的功能和仿真。關(guān)鍵詞 現(xiàn)場可編程邏輯門陣列 iic總線 狀態(tài)機(jī) 時(shí)序仿真1.緒論 1.1 iic總線的優(yōu)點(diǎn) 作為一種串行總線,iic總線雖沒有并行總線的數(shù)據(jù)吞吐能力,但它具有如下優(yōu)點(diǎn):1、僅由兩根信號線組成,節(jié)省了芯片i/o、節(jié)省pcb面積、節(jié)省成本等。 2、總線上可同時(shí)掛接多個(gè)器件,器件之間是靠不同的編址來區(qū)分的,而不需要附加的i/o線或地址譯碼部件。 3、總線可裁減性好。在原有總線連接的基礎(chǔ)上可以隨時(shí)新增或者刪除器件。 4、總線電氣兼容性好。iic

3、總線規(guī)定器件之間以開漏i/o互聯(lián),這樣,只要選取適當(dāng)?shù)纳侠娮杈湍茌p易實(shí)現(xiàn)3v/5v邏輯電平的兼容,而不需要額外的轉(zhuǎn)換。 5、支持多種通信方式。一主多從是最常見的通信方式。此外還支持雙主機(jī)通信、多主機(jī)通信以及廣播模式等等。 6、兼顧高低速通信。iic總線標(biāo)準(zhǔn)傳輸速率為100kbit/s,在快速模式下為400 kbps,高速模式下為3.4mbit/s。iic總線的通信速率也可以低至幾kbps以下,用以支持低速器件或者用來延長通信距離。 iic總線帶來的這些好處,得到了廣大工程師的青睞。在通信,音/視頻,智能儀表、工控領(lǐng)域都得到了應(yīng)用。 1.2 課題的主要工作作為一款經(jīng)典的串行通訊總線,iic總線

4、接口ip核已被越來越廣泛的集成到soc中。本文通過用verilog hdl語言在fpga上實(shí)現(xiàn)一個(gè)iic總線接口,它可作為ip核集成到soc中。研究內(nèi)容主要包括以下方面:1、深入研究iic協(xié)議規(guī)范。 2、用verilog hdl硬件描述語言設(shè)計(jì)基于fpga的iic總線接口,做到數(shù)據(jù)傳輸能夠有序、有效地進(jìn)行。 3、用quartus軟件對每一個(gè)模塊進(jìn)行編譯生成單個(gè)電路模塊。4、在quartus平臺(tái)上,對設(shè)計(jì)進(jìn)行分析、綜合、功能和時(shí)序仿真。 2 iic總線協(xié)議研究 2.1 iic總線概述 2.1.1 iic總線簡介 iic總線支持任何ic生產(chǎn)過程,包括cmos、nmos、雙極性,用兩根信號線進(jìn)行數(shù)據(jù)

5、傳輸串行數(shù)據(jù)線(sda)和串行時(shí)鐘線(scl)。它允許若干兼容器件(如存儲(chǔ)器、a/d和d/a轉(zhuǎn)換器,以及l(fā)ed、lcd驅(qū)動(dòng)器等)共享總線。圖2.1是iic總線結(jié)構(gòu)。 圖2.1 典型的iic總線結(jié)構(gòu) 每個(gè)器件都有唯一的地址,而且都可以作為一個(gè)發(fā)送器或接收器,由器件的功能確定,。iic總線上所有器件依靠sda發(fā)送的地址信號尋址,不需要片選線。任何時(shí)刻總線只能由一個(gè)主器件控制,各從器件在總線空閑時(shí)啟動(dòng)數(shù)據(jù)傳送,由iic總線仲裁來決定哪個(gè)主器件控制總線。表2-1給出了iic總線常用的術(shù)語定義。 表2-1 iic總線術(shù)語定義 術(shù)語描述發(fā)送器發(fā)送數(shù)據(jù)到總線的器件接收器從總線接收數(shù)據(jù)的器件主機(jī)初始化發(fā)送產(chǎn)生

6、時(shí)鐘信號和終止發(fā)送的器件從機(jī)被主機(jī)尋址的器件多主機(jī)同時(shí)有多于一個(gè)主機(jī)嘗試控制總線但不破壞報(bào)文仲裁多主機(jī)同時(shí)嘗試控制總線但只允許其中一個(gè)主機(jī)控制總線并使報(bào)文不被破壞的過程同步兩個(gè)或多個(gè)器件同步時(shí)鐘信號的過程2.1.2 iic總線的電氣特性與結(jié)構(gòu) 在系統(tǒng)中,iic總線的典型接法如圖2.2所示,注意連接時(shí)需要共地。sda和scl都是雙向線路,為了使總線上所有電路的輸出能實(shí)現(xiàn)“線與”功能,各個(gè)iic總線的接口電路的輸出端必須是漏極開路或集電極開路結(jié)構(gòu),輸出端必須接上拉電阻,上拉電阻一般取值310k。 圖2.2 iic總線的器件連接 開漏結(jié)構(gòu)的好處是:1、當(dāng)總線空閑時(shí),這兩條信號線都保持高電平,因各設(shè)備

7、都是開漏輸出,上拉電阻,使sda和scl線都保持高電平,不會(huì)消耗電流。任一設(shè)備輸出的低電平都使相應(yīng)的總線信號線變低,即總線上的所有器件都達(dá)到高電子狀態(tài)時(shí),iic總線才能達(dá)到高電平,從而使總線上的高速器件和慢速器件工作同步。 2、電氣兼容性好。上拉電阻接5v電源就能與5v邏輯器件接口,上拉電阻接3v電源又能與3v邏輯器件接口。 3、因?yàn)槭情_漏結(jié)構(gòu),所以不同器件的sda與sda之間、scl與scl之可以直接相連,不需要額外的轉(zhuǎn)換電路。 2.2 iic總線的位傳輸 由于iic總線的器件有不同種類的工藝,邏輯“0”或“1”的電平不是固定的。在iic總線每傳輸一位數(shù)據(jù)就有一個(gè)時(shí)鐘脈沖相對應(yīng),其邏輯“0”

8、或“1”的信號電平取決于該節(jié)點(diǎn)的正端電源vdd的電壓。 2.2.1 數(shù)據(jù)的有效性 iic總線數(shù)據(jù)傳輸時(shí),在時(shí)鐘線高電平期間數(shù)據(jù)線上必須保持穩(wěn)定的邏輯電平狀態(tài),高電平為數(shù)據(jù)1,低電平為數(shù)據(jù)0。只有在時(shí)鐘線為低電平時(shí),才允許數(shù)據(jù)線上的電平狀態(tài)變化。如圖2.3所示。 圖2.3 iic總線上的數(shù)據(jù)有效性 2.2.2 總線數(shù)據(jù)傳輸?shù)钠鹗己徒K止 iic總線數(shù)據(jù)傳輸定義了兩種時(shí)序狀態(tài),分別為起始信號和終止信號,如圖2.4所示。 啟始信號(start),當(dāng)時(shí)鐘線scl保持高電平期間,sda由高電平向低電平切換,表示開始傳送數(shù)據(jù),終止信號(stop),當(dāng)時(shí)鐘線scl保持高電平期間,sda由低電平向高電平切換,表

9、示停止傳送數(shù)據(jù)。 圖2.4 iic總線上的起始和終止信號 起始信號與終止信號都是由主控制器產(chǎn)生,當(dāng)iic總線出現(xiàn)起始信號時(shí),總線進(jìn)入“忙”狀態(tài),當(dāng)iic總線上出現(xiàn)結(jié)束信號時(shí),總線進(jìn)入“空閑”狀態(tài)。掛接在iic總線上的主從設(shè)備通過檢測起始信號和結(jié)束信號判斷總線的“忙”、“空閑”狀態(tài)。由于iic總線協(xié)議不定義優(yōu)先級概念,因此任何新進(jìn)程的開始必須等待當(dāng)前進(jìn)程的結(jié)束。使用硬件接口可以很容易地檢測起始和結(jié)束信號,沒有這種接口的微機(jī)必須以每時(shí)鐘周期至少兩次對sda取樣以檢測這種變化。 2.2.3 總線信號的時(shí)序 為了保證iic總線數(shù)據(jù)的可靠傳送,對總線上的信號時(shí)序做了嚴(yán)格的規(guī)定,下面各圖中對主要信號時(shí)序做

10、了定義。 圖2.5 主機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)的時(shí)序 圖2.5所表示的是主機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)的時(shí)序,主機(jī)向傳送一個(gè)7位的地址,第8位是讀/寫位。在第9個(gè)時(shí)鐘時(shí),從機(jī)發(fā)出一個(gè)響應(yīng)信號,接著傳輸8位的數(shù)據(jù),相應(yīng)地從機(jī)繼續(xù)發(fā)送一個(gè)響應(yīng)位,然后主機(jī)在時(shí)鐘線保持高電平期間,拉高數(shù)據(jù)線,數(shù)據(jù)傳輸停止。 圖2.6 主機(jī)向從機(jī)接收1個(gè)字節(jié)數(shù)據(jù)的時(shí)序 圖2.6所表示的主機(jī)向從機(jī)接收一個(gè)字節(jié)的時(shí)序,前面8個(gè)時(shí)鐘周期與發(fā)送時(shí)序相同,不同的是在傳輸8位數(shù)據(jù)后,由主機(jī)發(fā)送響應(yīng)信號,然后啟動(dòng)停止信號。2.3 iic總線上的數(shù)據(jù)傳輸 2.3.1總線的數(shù)據(jù)傳輸格式 圖2.10所示的是一個(gè)完整的數(shù)據(jù)傳輸格式。按照規(guī)定,在起始條件

11、(s)之后,發(fā)送一個(gè)7位的從機(jī)地址。緊跟著的第8位是數(shù)據(jù)方向位(r/w),數(shù)據(jù)方向表明主控器和被控器的數(shù)據(jù)傳輸方向。0表示主控器發(fā)送數(shù)據(jù)(寫),1表示請求接收數(shù)據(jù)(讀)。數(shù)據(jù)傳輸一般由主機(jī)產(chǎn)生停止位(p)終止。在這種傳輸中,也可以有不同的讀/寫格式相結(jié)合。下面介紹3種傳輸格式, 1、主控制器寫操作 主機(jī)-發(fā)送器向從機(jī)發(fā)送n個(gè)數(shù)據(jù)字節(jié),方向不變。 注 1-7是地址位,8位是讀寫位,第9位是響應(yīng)位 圖2.10 完整的數(shù)據(jù)傳輸 2、主控制器讀操作 在第一個(gè)字節(jié)后,主控制器立即讀從控制器。在第一次響應(yīng)后,主控制器,發(fā)送器變成了主控制器,接收器,從控制器,接收器變成了從控制器,發(fā)送器。第一次響應(yīng)仍由從控

12、制器產(chǎn)生。之前發(fā)送了一個(gè)不響應(yīng)信號(/a)的主機(jī)產(chǎn)生停止條件。 3、主控制器的讀寫操作 在數(shù)據(jù)傳輸過程中需要改變傳輸方向操作,這時(shí)起始條件和從控制器地址都會(huì)被重復(fù),但r/w位取反,它的方向由尋址字節(jié)的方向位決定。如果主控制器接收器發(fā)送一個(gè)重復(fù)起始條件,它之前應(yīng)該發(fā)送一個(gè)不響應(yīng)的信號/a,每個(gè)字節(jié)后都跟著一個(gè)響應(yīng)位,在序列中用a或/a模塊表示。尋址字節(jié)只表明器件地址及傳送方向,器件內(nèi)部的n個(gè)數(shù)據(jù)地址可以在i2c總線數(shù)據(jù)操作格式中用第一個(gè)數(shù)據(jù)字節(jié)指定。i2c總線被控制器在接收到起始信號后都必須復(fù)位他們的總線邏輯,以便對將要開始的被控制器地址的傳送進(jìn)行預(yù)處理。 2.4重復(fù)起始條件 主機(jī)與從機(jī)進(jìn)行通信

13、時(shí),有時(shí)需要切換數(shù)據(jù)的收發(fā)方向。例如,訪問某一具有i2c總線接口的eeprom存儲(chǔ)器時(shí),主機(jī)先向存儲(chǔ)器輸入存儲(chǔ)單元的地址信息,發(fā)送數(shù)據(jù),然后再讀取其中的存儲(chǔ)內(nèi)容,接收數(shù)據(jù),。在切換數(shù)據(jù)的傳輸方向時(shí),可以不必先產(chǎn)生停止條件再開始下次傳輸,而是直接再一次產(chǎn)生開始條件。i2c總線在已經(jīng)處于忙的狀態(tài)下,再一次直接產(chǎn)生起始條件的情況被稱為重復(fù)起始條件。重復(fù)起始條件常常簡記為sr。正常的起始條件和重復(fù)起始條件在物理波形上并沒有什么不同,區(qū)別僅僅是在邏輯方面。在進(jìn)行多字節(jié)數(shù)據(jù)傳輸過程中,只要數(shù)據(jù)的收發(fā)方向發(fā)生了切換,就要用到重復(fù)起始條件。 數(shù)據(jù)傳輸?shù)慕Y(jié)束信號由主iic發(fā)出。剛剛結(jié)束一個(gè)進(jìn)程的用戶有立即啟動(dòng)一

14、個(gè)新進(jìn)程的優(yōu)先權(quán),該用戶可以不發(fā)出結(jié)束信號而直接發(fā)出一個(gè)新的啟動(dòng)信號和另一個(gè)從iic地址,從而不給其他用戶申請總線的機(jī)會(huì),以保持自己繼續(xù)使用總線的權(quán)利。 3 設(shè)計(jì)環(huán)境和設(shè)計(jì)方法 3.1 設(shè)計(jì)環(huán)境 本文中iic總線接口的設(shè)計(jì)是利用altera公司的設(shè)計(jì)軟件quartus ii,用verilog hdl語言編程實(shí)現(xiàn)的。仿真部分采用quartus ii+modelsim。 quartus ii軟件是altera提供的完整的多平臺(tái)設(shè)計(jì)環(huán)境,可以輕易地滿足特定地設(shè)計(jì)需求,是sopc設(shè)計(jì)的綜合性環(huán)境。 硬件描述語言(hdl)是一種形式化方法來描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言,它是硬件設(shè)計(jì)人員與eda工

15、具之間溝通的橋梁,其主要目的是用來編寫設(shè)計(jì)文件,建立電子系統(tǒng)行為級的模擬類型。3.2用verilog hdl設(shè)計(jì)可綜合的狀態(tài)機(jī) 基于狀態(tài)機(jī)的設(shè)計(jì)要點(diǎn): (1)一個(gè)完備的狀態(tài)機(jī)應(yīng)該具有初始狀態(tài)和默認(rèn)狀態(tài)。當(dāng)芯片加電或者復(fù)位后,狀態(tài)機(jī)能夠自動(dòng)將所有的判斷條件復(fù)位,并進(jìn)入初始狀態(tài),起始狀態(tài)是指電路復(fù)位后所處的狀態(tài),選擇一個(gè)合理的起始狀態(tài)將使整個(gè)系統(tǒng)更簡捷高效。當(dāng)轉(zhuǎn)移條件不滿足,或者狀態(tài)發(fā)生突變時(shí),狀態(tài)機(jī)進(jìn)入一個(gè)默認(rèn)(default)狀態(tài),能保證邏輯不會(huì)陷入“死循環(huán)”,這是對狀態(tài)機(jī)健壯性的一個(gè)重要要求,即自動(dòng)恢復(fù)功能。在case語句的最后,不要忘了加上default分支語句,以避免鎖存器的產(chǎn)生。 (3

16、)建模 用兩條always語句對其建模比較好:一個(gè)always語句用于組合邏輯建模(既包括次態(tài)邏輯,也包括輸出邏輯),一個(gè)always語句用于時(shí)序邏輯建模。組合邏輯建模采用阻塞式賦值,時(shí)序邏輯建模采用非阻塞式賦值。 (4)時(shí)序方式選擇 根據(jù)觸發(fā)條件的不同,時(shí)序邏輯電路可以分為異步時(shí)序和同步時(shí)序邏輯。在異步時(shí)序邏輯中觸發(fā)條件很隨意,任何時(shí)刻都有可能發(fā)生,所以記憶狀態(tài)的觸發(fā)器輸出在任何時(shí)刻都有可能發(fā)生,而同步時(shí)序邏輯中表示狀態(tài)的觸發(fā)器輸出只能在惟一確定的觸發(fā)條件發(fā)生時(shí)刻改變,例如只能由時(shí)鐘的上升沿或下降沿觸發(fā)。同步時(shí)序邏輯的觸發(fā)輸入至少可以維持一個(gè)時(shí)鐘周期后才會(huì)發(fā)生第二次觸發(fā),利用這一段時(shí)間,即在

17、下一次觸發(fā)信號來到前,為電路的狀態(tài)改變創(chuàng)造了一個(gè)穩(wěn)定可靠的條件。因此,同步時(shí)序邏輯比異步時(shí)序邏輯具有更可靠、更簡單的邏輯關(guān)系。 目前,綜合工具只支持同步時(shí)序邏輯的設(shè)計(jì),用verilog設(shè)計(jì)可綜合的狀態(tài)機(jī)也都使用同步時(shí)序邏輯。實(shí)用的狀態(tài)機(jī)都應(yīng)設(shè)計(jì)為由唯一時(shí)鐘邊沿觸發(fā)的同步運(yùn)行方式。 4 iic總線接口設(shè)計(jì) iic總線接口的設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的關(guān)鍵之一,從本章起,開始介紹iic總線接口的內(nèi)部模塊的設(shè)計(jì)。在接口模塊設(shè)計(jì)中,主要介紹模塊要實(shí)現(xiàn)的功能和設(shè)計(jì)的思路,并給出用quartus軟件對每一個(gè)模塊編譯生成的單個(gè)電路模塊。 4.1 實(shí)現(xiàn)功能 本文主要通過是用verilog hdl語言在fpga上實(shí)現(xiàn)i

18、ic總線接口,該接口接收來自高速設(shè)備或片上總線的讀寫命令信號、地址信號、并行數(shù)據(jù)信號,并把它們轉(zhuǎn)換為相應(yīng)的串行信號發(fā)送到slave器件中去,它還發(fā)送應(yīng)答信號,以便讓主器件來調(diào)節(jié)發(fā)送或接收數(shù)據(jù)的速度移配合從器件的接收,寫,和發(fā)送,讀,數(shù)據(jù)。鑒于iic總線的規(guī)范,其接口主要完成的功能如下:1、具有軟件可編程系統(tǒng)時(shí)鐘頻率 2、軟件可編程響應(yīng)位 3、啟動(dòng)/停止/重啟/響應(yīng)各種觸發(fā)狀態(tài) 4、支持系統(tǒng)擴(kuò)展 5、僅支持時(shí)鐘同步,不支持仲裁 6、隨機(jī)讀取總線數(shù)據(jù)和狀態(tài) 接口定義了2個(gè)傳輸速度:標(biāo)準(zhǔn)模式100 kbps 快速模式400 kbps 4.2 iic總線接口的頂層設(shè)計(jì) 為了實(shí)現(xiàn)和iic器件的通訊,該i

19、ic接口一方面要通過數(shù)據(jù)總線與微處理器交換數(shù)據(jù),接收來自微處理器的控制信號,命令與數(shù)據(jù),實(shí)現(xiàn)iic接口與微處理器的通訊,另一方面要通過iic總線與iic器件交換數(shù)據(jù),發(fā)送iic器件的數(shù)據(jù)和狀態(tài)響應(yīng)到微處理器,使它們之間能夠進(jìn)行通訊。 根據(jù)據(jù)總線接口要完成的功能,采用自上而下的設(shè)計(jì)方法,綜合考慮,設(shè)計(jì)如下: 1、時(shí)鐘分頻模塊,由于通常fpga的系統(tǒng)外部時(shí)鐘輸入都很高,如50mhz,而iic總線接口協(xié)議規(guī)定數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下為100kbit/s,快速模式下為400 kbit/s及高速模式下為3.4 mbit/s。為了能產(chǎn)生正確的數(shù)據(jù)傳輸時(shí)序,需要一時(shí)鐘分頻器對輸入時(shí)鐘進(jìn)行分頻,然后再作為時(shí)序

20、控制器的時(shí)鐘。通過該模塊實(shí)現(xiàn)頻率的可編程,產(chǎn)生總線工作時(shí)鐘;2、 接收數(shù)據(jù)模塊,接受來自微處理器的數(shù)據(jù)信號,同時(shí)輸出一個(gè)使時(shí)序控制模塊工作的觸發(fā)信號,并反饋給處理器一個(gè)響應(yīng)信號,告訴處理器,已經(jīng)接收完數(shù)據(jù); 3、時(shí)序控制模塊,控制整個(gè)系統(tǒng)工作的時(shí)序,并把8位并行數(shù)據(jù)轉(zhuǎn)換成串行4、發(fā)送數(shù)據(jù)模塊,反饋總線的工作信息; 5、輸出緩沖器,是一個(gè)三態(tài)的緩沖器,可為總線時(shí)鐘和數(shù)據(jù)信號提供開漏極輸出; 6、寄存器組,包括了3個(gè)寄存器,各部分的信息如表4-1所示。 表4-1 iic總線接口寄存器 寄存器地址類型字地址寄存器00讀/寫數(shù)據(jù)寄存器01只讀狀態(tài)寄存器10只讀外部處理器發(fā)送出控制信號和地址信號,不同的

21、地址信號指向不同的寄存器,進(jìn)入不同的讀寫狀態(tài)。當(dāng)?shù)刂沸盘柺?0時(shí),指向字地址寄存器,處理器進(jìn)入讀/寫狀態(tài),把數(shù)據(jù)信號寫入字地址寄存器或者從寄存器讀出,當(dāng)?shù)刂沸盘柺?1,10時(shí),外部處理器分別讀取數(shù)據(jù)寄存器和狀態(tài)寄存器。 parameter w_add=2b00;/地址寄存器 parameter d_add=2b01;/數(shù)據(jù)寄存器 parameter s_add=2b10;/狀態(tài)寄存器 按照設(shè)計(jì)的要求,需要8位數(shù)據(jù)線,2位地址線,時(shí)鐘線,復(fù)位,使能信號線,讀寫命令線,還有反饋信息的響應(yīng)線以及一位串行時(shí)鐘線和一位串行數(shù)據(jù)線。其詳細(xì)的輸入輸出接口信號及其功能如表4-2所示,l表示信號低電位有效,在整

22、個(gè)設(shè)計(jì)中都應(yīng)用了這個(gè)規(guī)則,其中cs_l是芯片的使能信號,和clk信號是同步的,只有當(dāng)它有效的時(shí)候,其它的地址、復(fù)位和命令信號才能啟動(dòng)。 表4-2 iic總線接口信號表 端口方向描述clock輸入處理器的時(shí)鐘輸入rst_1輸入異步復(fù)位信號cs_1輸入接口使能信號rd_wr_l輸入讀寫控制命令addr1:0 輸入地址選擇信號data7:0 雙向數(shù)據(jù)輸入輸出信號ack_l 輸出反饋給處理器的響應(yīng)信號scl_pin輸出iic總線的時(shí)鐘信號sda_pin 雙向iic總線的數(shù)據(jù)信號綜上所述,整個(gè)設(shè)計(jì)分為6個(gè)模塊,時(shí)鐘分頻器、時(shí)序控制器、數(shù)據(jù)接收器、數(shù)據(jù)發(fā)送器、輸出緩沖器、寄存器組。其結(jié)構(gòu)如圖4.1所示。

23、圖4.1 iic總線接口結(jié)構(gòu)框圖 4.3 內(nèi)部模塊的設(shè)計(jì)和verilog hdl實(shí)現(xiàn) 4.3.1 時(shí)鐘分頻器 由于通常的fpga系統(tǒng)外部時(shí)鐘輸入都很高,如50mhz,而iic總線接口協(xié)議規(guī)定數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下為100kbit/s,快速模式下為400 kbit/s。為了能產(chǎn)生正確的數(shù)據(jù)傳輸時(shí)序,由時(shí)鐘分頻寄存器對輸入時(shí)鐘進(jìn)行分頻再作為時(shí)序控制器的時(shí)鐘。8 bit的計(jì)數(shù)器可以滿足大多數(shù)情況下的使用,但是如果微處理器的時(shí)鐘比較大,就需要更大的計(jì)數(shù)器。同樣地,如果iic總線要求工作速度比較大,那么就需要一個(gè)相對小的計(jì)數(shù)器。系統(tǒng)復(fù)位時(shí),計(jì)數(shù)器清零,當(dāng)時(shí)鐘上升沿時(shí),計(jì)數(shù)器加1。在本設(shè)計(jì)中,假定外部時(shí)

24、鐘為50 mhz,總線工作在標(biāo)準(zhǔn)模式100 khz,基于verilog同步設(shè)計(jì)的需要,本地時(shí)鐘一般為scl時(shí)鐘的整數(shù)倍,這里取2倍??梢郧蟮糜?jì)數(shù)器值num=50m/(100k*2)=250,換算為16進(jìn)制為fa。通過軟件編程可以實(shí)現(xiàn)數(shù)據(jù)傳輸速率的控制,其模塊的rtl級描述如圖4.2, 圖4.2 時(shí)鐘分頻模塊rtl級描述 用quartus ii軟件編譯仿真之后生成一個(gè)器件模塊圖,其接口電路模塊圖形如圖4.3。 圖4.3 時(shí)鐘分頻模塊圖 4.3.2 數(shù)據(jù)接收模塊 數(shù)據(jù)接收模塊既要接受來自微處理器的數(shù)據(jù)信號,同時(shí)也要輸出反饋信號和觸發(fā)信號。因此,該模塊需要一個(gè)字地址寄存器,同時(shí)要產(chǎn)生狀態(tài)機(jī)的觸發(fā)信號

25、。當(dāng)系統(tǒng)復(fù)位時(shí),初始化輸出的字地址,在使能信號和命令信號同時(shí)有效的情況下,當(dāng)?shù)刂沸盘枮?0,指向字地址寄存器時(shí),輸入的8位數(shù)據(jù)以字地址信息存儲(chǔ)起來,并觸發(fā)一個(gè)i2c_go命令,這個(gè)命令是時(shí)序控制模塊工作的觸發(fā)信號,并反饋給處理器一個(gè)響應(yīng)信號,告訴處理器,已經(jīng)接收完數(shù)據(jù)。其模塊的rtl級描述如圖4.4, 圖4.4 接收寄存器模塊rtl級描述 用quartus ii軟件生成一個(gè)電路模塊圖如圖4.5所示, 圖4.5 接收寄存器模塊 4.3.3發(fā)送寄存器 在這個(gè)模塊里包括三個(gè)寄存器,字地址寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,根據(jù)處理器的地址信號,指向不同的寄存器,輸出不同的信息,把總線的狀態(tài)反饋給處理器。

26、當(dāng)指向數(shù)據(jù)寄存器時(shí),把時(shí)序控制模塊重復(fù)讀取的總線上的數(shù)據(jù)信息以8位數(shù)據(jù)的形式反饋給處理器,如字地址,iic器件的數(shù)據(jù),狀態(tài)等。字地址和數(shù)據(jù)都是8位的信號直接輸出,當(dāng)處理器的命令是指向狀態(tài)寄存器時(shí),輸出的8位的數(shù)據(jù)中,各個(gè)位的定義如表4-3所示:表4-3狀態(tài)寄存器位功能表位信號功能7readyiic器件已經(jīng)把數(shù)據(jù)準(zhǔn)備好6erroriic器件不能響應(yīng)當(dāng)前的讀命令510未用0響應(yīng)iic總線周期激活 用quartus ii軟件生成一個(gè)電路模塊圖如圖4.8, 圖4.8 發(fā)送寄存器模塊 4.3.4 時(shí)序控制模塊 時(shí)序控制模塊是接口的核心部分,它控制著整個(gè)系統(tǒng)的工作過程、數(shù)據(jù)傳輸,及通過控制scl和sda信

27、號線來觸發(fā)開始和停止信號,該模塊包含一個(gè)狀態(tài)機(jī),用于控制系統(tǒng)工作的時(shí)序,同時(shí)當(dāng)主機(jī)要把數(shù)據(jù)寫入iic總線上的器件時(shí),因?yàn)閿?shù)據(jù)寄存器的位寬是8bit,而iic總線上的數(shù)據(jù)位寬是1bit,所以必須經(jīng)過并串轉(zhuǎn)換。即該模塊具有如下功能:1、控制iic總線的周期;2、對輸入數(shù)據(jù)進(jìn)行并/串轉(zhuǎn)換; 3、對總線上的數(shù)據(jù)進(jìn)行轉(zhuǎn)換;4、觸發(fā)iic的時(shí)鐘信號;5、觸發(fā)iic的數(shù)據(jù)信號; 6、觸發(fā)iic總線的狀態(tài)信號。 采用fpga模擬iic總線,由iic總線規(guī)則可以看出,iic在傳輸過程中有5個(gè)固定的狀態(tài),空閑、開始、響應(yīng)、接收/發(fā)送、停止。傳輸?shù)倪^程也就是狀態(tài)間進(jìn)行變換的過程,因此很自然聯(lián)想到在編程時(shí)使用狀態(tài)機(jī)的

28、方法。同時(shí)狀態(tài)間轉(zhuǎn)換要受到來自微控制器的信號的控制,因此需要采用mealy型狀態(tài)機(jī)。并串轉(zhuǎn)換器,在這個(gè)模塊里,通過8 bit計(jì)數(shù)器來實(shí)現(xiàn)。為了對運(yùn)行狀態(tài)進(jìn)行更一步的細(xì)分,在本設(shè)計(jì)中定義了15個(gè)狀態(tài),下面把各個(gè)狀態(tài)的定義如下解釋: idle iic總線空閑 en_clk 時(shí)鐘啟動(dòng) start1,start2,stop1 開始和停止 dev_add1,dev_add2 傳輸器件地址 ack1,ack2,ack3,ack4 發(fā)送響應(yīng) w_add 字地址 wait1 等待 dis_clk1 暫停 data 傳輸數(shù)據(jù) 當(dāng)系統(tǒng)復(fù)位時(shí),初始化狀態(tài)為idle,當(dāng)復(fù)位無效,地址信號為00時(shí),指向字地址寄存器,這

29、時(shí)產(chǎn)生一個(gè)啟動(dòng)狀態(tài)機(jī)的信號,狀態(tài)機(jī)由空閑狀態(tài)進(jìn)入開始狀態(tài),當(dāng)分頻器過來的脈沖信號從低向高跳變時(shí),傳輸開始,同時(shí)位計(jì)數(shù)器也開始啟動(dòng)讀總線的動(dòng)作一定要讀完一個(gè)字節(jié)才結(jié)束。那么先傳輸?shù)氖?位器件地址,并產(chǎn)生一個(gè)響應(yīng)位,然后傳輸8位字地址和數(shù)據(jù),如果有中斷進(jìn)入等待或暫停狀態(tài),需要重新狀態(tài)機(jī)啟動(dòng)??刂破鞲鶕?jù)所處狀態(tài)讀寫總線器件。主機(jī)要讀取總線器件上的數(shù)據(jù)也必須通過狀態(tài)機(jī)來實(shí)現(xiàn),當(dāng)狀態(tài)機(jī)處于數(shù)據(jù)狀態(tài)時(shí),如果這時(shí)8位計(jì)數(shù)器的值為5,那么讀出數(shù)據(jù)的第5位就是當(dāng)時(shí)sda上的邏輯值。以此類推,其它的同樣。 其狀態(tài)機(jī)程序見附錄。簡單的流程圖如圖4.9所示。 圖4.9 狀態(tài)機(jī)工作流程圖 其生成的rtl級描述圖比較龐大

30、,因此就不貼出了。用quartus ii軟件生成一個(gè)電路模塊圖如圖4.10。圖4.10 時(shí)序控制模塊圖 4.3.5輸出緩沖器 根據(jù)iic總線的傳輸規(guī)范,總線的電氣特性為開漏極輸出驅(qū)動(dòng),但是多數(shù)的可編程器件不提供開漏極輸出特性,為了使sda,scl便于移植,均使用了三態(tài)驅(qū)動(dòng)模用quartus ii軟件生成一個(gè)電路模塊圖如圖4.12。 圖4.12 輸出緩沖模塊 4.3.6 頂層文件 頂層文件可以用電路圖的輸入方式把5個(gè)子模塊連接起來,也可以通過硬件語言的例化語句來描述,在本設(shè)計(jì)中主要運(yùn)用語言描述的方法。5 iic總線接口的仿真5.1 驗(yàn)證流程 iic總線接口的驗(yàn)證流程如圖5.1所示 。 圖5.1

31、iic總線接口驗(yàn)證流程 在圖5.1中,功能仿真就是常說的前仿真,用于檢查rtl代碼的正確性,綜合后仿真用于檢查網(wǎng)表是否正確,疏忽大意或代碼風(fēng)格不嚴(yán)謹(jǐn)很容易導(dǎo)致綜合出來的網(wǎng)表的功能和預(yù)想不一致,綜合后仿真能發(fā)現(xiàn)這樣的問題。par后仿真的意思是布局布線,place and route,后仿真,也就是常說的后仿真或時(shí)序仿真,它可以檢查網(wǎng)表和時(shí)序的正確性。5.2 整體構(gòu)思 為了確認(rèn)iic總線接口是否能夠正確運(yùn)行,仿真驗(yàn)證時(shí)需要建立testbench(測試環(huán)境),iic總線接口驗(yàn)證的環(huán)境的結(jié)構(gòu)如圖5.2所示。整個(gè)結(jié)構(gòu)設(shè)計(jì)分為三個(gè)部分:第一部分是主設(shè)備仿真模塊,第二部分是iic總線接口可仿真綜合模塊,第三

32、部分是從設(shè)備仿真模塊。然后用一個(gè)測試臺(tái)程序?qū)⑷齻€(gè)模塊連接起來,并產(chǎn)生激勵(lì)信號對iic模塊的功能進(jìn)行仿真測試。5.3 測試模塊搭建 1、micro module: 微處理器部分可以采用zye1502d實(shí)驗(yàn)箱上有的at89c51單片機(jī),或者編寫testbench實(shí)現(xiàn)。為了仿真方便,在仿真時(shí)采用testbench搭建。該micro模型給出了微處理器與iic接口通訊的仿真程序。該模型能產(chǎn)生相應(yīng)的讀寫信號,地址信號,并行數(shù)據(jù)信號,并能接收從器件的應(yīng)答信號,來調(diào)節(jié)發(fā)送或接收數(shù)據(jù)的速度。在這個(gè)程序中,為了保證iic接口的正確性,可以進(jìn)行完整的測試,寫操作時(shí)輸入的地址信號和數(shù)據(jù)信號的數(shù)據(jù)由于較少,直接寫入程序

33、中。讀操作時(shí),將讀數(shù)對比可以驗(yàn)證程序的正確性。該程序通過調(diào)用四個(gè)任務(wù)實(shí)現(xiàn)上述功能,write,monitor_iic_rdy,read_data,kill_time。 2、iic_slave module: 該iic_slave模型提供了一個(gè)iic存儲(chǔ)器。該從模型能夠偵測起始和終止命令,在地址控制字時(shí)序后產(chǎn)生ack,在數(shù)據(jù)讀之后置iic總線三態(tài)。另外它通過比較“slave data receive on write”和“slave data transmitted on read”的信息,實(shí)現(xiàn)仿真時(shí)數(shù)據(jù)正確性的檢查。 3、clk_rst module:clk_rst模塊給測試平臺(tái)提供時(shí)鐘和復(fù)位

34、信號。編輯clk_period參數(shù)更改時(shí)鐘頻率,改變r(jià)eset_time參數(shù)就能改變復(fù)位信號的有效時(shí)間。 4、iic_tb,iic_tb是測試臺(tái)的頂層文件。它將iic接口模型iic和測試程序的模型clk_rst、micro、iic_slave實(shí)例化,并連接起來。其主要程序:i2c i2c(.data(data),.addr(addr),.rst_l(rst_l),.clock(clock),.cs_l(cs_l), .ack_l(ack_l),.rd_wr_l(rd_wr_l),.scl_pin(scl_pin),.sda_pin(sda_pin); clk_rst clk(.clk(cloc

35、k),.rst_l(rst_l); micro micro(.clk(clock),.rst_l(rst_l),.data(data),.addr(addr),.cs_l(cs_l), .ack_l(ack_l),.rd_wr_l(rd_wr_l); i2c_slave sep(.sda(sda_pin),.scl(scl_pin); 5.4時(shí)序仿真做功能仿真時(shí),在modelsim中建立工程,把iic的所有verilog hdl文件,以及testbench用到的verilog文件加入到工程中,然后編譯仿真。仿真波形如圖5.2,5.3所示。 圖5.2 iic_rst 仿真圖 圖5.3 功能仿真波

36、形 由輸出結(jié)果可只,微處理器發(fā)送寫地址10100000,響應(yīng)后寫入數(shù)據(jù)55h,響應(yīng)后重新發(fā)啟動(dòng)信號,發(fā)送讀地址10100001,響應(yīng)后讀出數(shù)據(jù),進(jìn)行比較。同樣操作,寫入數(shù)據(jù)aah并讀出比較,結(jié)果兩次數(shù)據(jù)讀回均正確無誤。 結(jié)束語本課題設(shè)計(jì)了基于fpga的iic接口的數(shù)個(gè)模塊,時(shí)鐘模塊、接收模塊、發(fā)送模塊、時(shí)序控制模塊和輸出緩沖模塊,其中時(shí)序控制模塊是設(shè)計(jì)的重點(diǎn)和難點(diǎn)。每個(gè)模塊都通過了功能仿真和時(shí)序仿真,仿真結(jié)果表明,各個(gè)模塊均完成了相應(yīng)的邏輯功能。整個(gè)設(shè)計(jì)都采用了同步方式,而且沒有使用特定公司的技術(shù)和ip核,這使得設(shè)計(jì)可以廣泛地重用,但也存在著可改進(jìn)之處:1、需要提高verilog hdl語言代

37、碼的效率,要力求用最簡潔,可綜合的描述方式描述模塊的結(jié)構(gòu)和功能,以使得芯片面積、功耗減小。 2、在基于fpga的器件上,進(jìn)行邏輯綜合過程中,許多約束條件是相互矛盾的,這需要反復(fù)設(shè)定條件,以求電路結(jié)構(gòu)得到優(yōu)化?;趘erilog hdl語言的可移植性,及不依賴器件的特性,設(shè)計(jì)者能在更抽象的層次上把握和描述系統(tǒng)結(jié)構(gòu)和功能特性,使設(shè)計(jì)更具靈活性。由于fpga器件的快速發(fā)展,其容量可以將各種外圍器件的接口集成到fpga內(nèi)部,這樣可以實(shí)現(xiàn)設(shè)計(jì)的小型化,低功耗,并且降低了設(shè)計(jì)的復(fù)雜度,而且利用fpga在線可編程特點(diǎn),可以增加系統(tǒng)設(shè)計(jì)的靈活度,提高了設(shè)計(jì)效率。 在課題期間,通過不斷地學(xué)習(xí)、探索和實(shí)踐,掌握了

38、verilog hdl設(shè)計(jì)技術(shù)及其fpga的應(yīng)用,提高了實(shí)際的工作能力和創(chuàng)新能力。 最后感謝我的老師和同學(xué)們,在他們的監(jiān)督和幫助下讓我順利完成了本次的課程設(shè)計(jì)。 參考文獻(xiàn) 1蘇建志,王冰鋒.iic總線及其應(yīng)用.現(xiàn)代電子技術(shù),2004,22.2趙輝.iic總線技術(shù)及其應(yīng)用實(shí)例.微型電腦應(yīng)用,2005,31(4):61.3周立功.iic總線概要.產(chǎn)品應(yīng)用手冊,2006,3.4石宗義.總線的時(shí)序分析及其模擬j.太原理工大學(xué)學(xué)報(bào),2004,35(1):53. 5朱明程,黃強(qiáng).fpga 動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)初探.半導(dǎo)體技術(shù),2000,25(4):19.6褚振勇.fpga 設(shè)計(jì)及應(yīng)用m.西安:西安電子科技大

39、學(xué)出版社,2006.7王毓銀.數(shù)字電路邏輯設(shè)計(jì)m.北京:高等教育出版社,1999.8李洪偉.基于quartusii 的fpga/cpld 設(shè)計(jì)m.北京:電子工業(yè)出版社,2006.附錄1時(shí)鐘分頻器程序module iic_clk(clock,rst_l,scl_cnt_en,scl_tick); /端口列表 input clock;/外部系統(tǒng)處理器時(shí)鐘 input rst_l;/外部復(fù)位信號,低有效 input scl_cnt_en;/來自時(shí)序控制器的計(jì)數(shù)使能信號 output scl_tick;/狀態(tài)機(jī)的工作時(shí)鐘 /registers&wires reg scl_tick; reg 7:0 c

40、ntr;/分頻計(jì)數(shù)值 /分頻 always(posedge clock or negedge rst_l) if(!rst_l) cntr= #1 8b0; else if(scl_cnt_en) cntr= #1 8b0; else cntr=8b0; always(posedge clock or negedge rst_l) if(!rst_l) scl_tick= #1 1b0; else if(cntr= =8hfa) cl_tick= #1 1b1; else scl_tick= #1 1b0; endmodule 附錄2數(shù)據(jù)接收模塊程序 timescale 1 ns/100 ps

41、 module iic_wreg(data, addr, rst_l, clock, scl_cnt_en, rd_wr_l, cs_l, wrd_add,iic_go, ack_l); /端口列表 input 7:0 data;/處理器輸出的數(shù)據(jù)碼 input 1:0 addr;/處理器輸出的地址碼 input rst_l;/復(fù)位信號 input clock;/系統(tǒng)時(shí)鐘 input cs_l, scl_cnt_en;/系統(tǒng)使能信號 input rd_wr_l;/命令信號 output 7:0 wrd_add;/字地址 output iic_go;/iic總線啟動(dòng)信號 output ack_l

42、;/反饋給處理器的響應(yīng)信號 /寄存器型 reg 7:0 wrd_add; reg iic_go; reg ack_l; /寄存器參數(shù) parameter w_add=2b00;/地址寄存器 parameter d_add=2b01;/數(shù)據(jù)寄存器 parameter s_add=2b10;/狀態(tài)寄存器 always(posedge clock or negedge rst_l) if(!rst_l) wrd_add = #1 8b0; else if(cs_l&!rd_wr_l&(addr= =w_add) wrd_add = #1 data; always(posedge clock or n

43、egedge rst_l) if(!rst_l) iic_go= #1 1b0; else if(cs_l&!rd_wr_l&(addr= =w_add) iic_go= #1 1b1;/iic總線的啟動(dòng)信號 else if(scl_cnt_en) iic_go= #1 1b0; /反饋響應(yīng)信號 always(posedge clock or negedge rst_l) if(!rst_l) ack_l= #1 1b1; else if(cs_l) ack_l= #1 1b0; else ack_l= #1 1b1; endmodule 附錄3發(fā)送寄存器程序timescale 1 ns/10

44、0 ps module iic_rreg(wrd_add,iic_rdata,iic_rdy,iic_act,ack_err,addr,data_o); input 7:0 wrd_add;/iic word address input 7:0 iic_rdata;/iic read data input iic_rdy;/iic status bit input iic_act;/iic cycle active input ack_err;/ack error input 1:0 addr;/cpu address output 7:0 data_o;/muxed cpu data out

45、put /寄存器型 reg7:0 data_o;/muxed cpu data output /參數(shù) parameter w_add=2b00;/字地址寄存器 parameter d_add=2b01;/數(shù)據(jù)寄存器 parameter s_add=2b10;/狀態(tài)寄存器 /數(shù)據(jù)多用輸出 always(addr or wrd_add or ack_err or iic_rdata or iic_rdy) case(addr) w_add:data_o= #1 wrd_add; d_add:data_o= #1 iic_rdata; s_add:data_o= #1iic_rdy,ack_err,

46、5b0,iic_act; default:data_o= #1iic_rdy,ack_err,5b0,iic_act; endcase endmodule 附錄4 狀態(tài)機(jī)程序timescale 1 ns/100 ps module iic_st(rst_l,clock,scl_tick,iic_go,wrd_add,sda_pin,sda,scl,scl_cnt_en, iic_rdy, iic_act, iic_rdata, ack_err); /端口列表 input rst_l;/復(fù)位 input clock;/系統(tǒng)時(shí)鐘 input scl_tick;/scl的時(shí)鐘 input iic_g

47、o;/啟動(dòng)iic總線周期 input 7:0 wrd_add;/iic器件地址 input sda_pin;/iic數(shù)據(jù)多用輸入 output sda;/iic總線數(shù)據(jù)輸出 output scl;/iic總線時(shí)鐘輸出 output scl_cnt_en;/總線計(jì)數(shù)使能端 output iic_rdy;/總線準(zhǔn)備好 output iic_act;/總線周期響應(yīng) output 7:0 iic_rdata;/總線上的數(shù)據(jù) output ack_err;/響應(yīng)錯(cuò)誤 /寄存器型 reg sda; reg scl; reg scl_cnt_en; reg iic_rdy; reg 7:0 iic_rdat

48、a; reg14:0 iic_state; reg 2:0 bit_cntr; reg scl_en; reg en_cntr; reg cntr_done; reg ack_err; wire iic_act; /參數(shù) parameter idle = 4b0000; / state 0 parameter en_clk = 4b0001; / state 1 parameter start1 = 4b1100; / state c parameter dev_add1 = 4b1000; / state 8 parameter ack1 = 4b0100; / state 4 parame

49、ter w_add = 4b1010; / state a parameter ack2 = 4b0101; / state 5 parameter wait1 = 4b0011; / state 3 parameter dis_clk1 = 4b1111; / state f parameter start2 = 4b1101; / state d parameter dev_add2 = 4b1001; / state 9 parameter ack3 = 4b0110; / state 6 parameter data = 4b1011; / state b parameter ack4

50、 = 4b0111; / state 7 parameter stop1 = 4b1110; / state e /狀態(tài)機(jī) always (posedge clock or negedge rst_l) if (!rst_l) iic_state = #1 idle; else case(iic_state) idle : if (iic_go) iic_state = #1 en_clk; en_clk : if (scl_tick) iic_state = #1 start1; start1 : if (scl_tick) iic_state = #1 dev_add1; dev_add1 : if (cntr_done & scl_tick) iic_state = #1 ack1

溫馨提示

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

評論

0/150

提交評論