《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第9章_第1頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第9章_第2頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第9章_第3頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第9章_第4頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第9章_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計9.1.1設(shè)計要求本節(jié)要求設(shè)計一個16路的數(shù)據(jù)采集系統(tǒng),使用的模數(shù)轉(zhuǎn)換器的型號為TLC549,模擬量多路開關(guān)型號為CD4067(16路選1),用4個按鍵選擇采樣某一路信號,并在數(shù)碼管上顯示該路信號的電壓值。采集系統(tǒng)框圖如圖9.1所示,它由一個16路選1模擬量多路開關(guān)CD4067、模數(shù)轉(zhuǎn)換器TLC549和由FPGA實現(xiàn)的控制邏輯模塊組成。其工作過程是將1~16路模擬數(shù)據(jù)通過外部接口輸入到多路開關(guān),多路開關(guān)依次循環(huán)選擇1路模擬信號送入模數(shù)轉(zhuǎn)換器,將模擬信號轉(zhuǎn)換為數(shù)字信號,存放在為每一路信號準備的寄存器中。下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

用FPGA設(shè)計控制邏輯功能有兩個,一是控制多路開關(guān)的循環(huán)選通,使得1~16路模擬信號能分時選通依次進入模數(shù)轉(zhuǎn)換器,二是控制模數(shù)轉(zhuǎn)換器的轉(zhuǎn)換時序,使其能精確地實現(xiàn)采集任務(wù)。9.1.2必備知識1.模數(shù)轉(zhuǎn)換器TLC549TLC549是TI公司生產(chǎn)的一種低價位、高性能的8位模數(shù)轉(zhuǎn)換器,它以8位開關(guān)電容逐次逼近的方法實現(xiàn)A/D轉(zhuǎn)換,其轉(zhuǎn)換時間小于17μs,最大轉(zhuǎn)換速率為40kHz,內(nèi)部系統(tǒng)時鐘頻率為4MHz,電源為3~6V。它能方便地采用三線串行接口方式與各種微處理器連接,構(gòu)成各種廉價的測控應(yīng)用系統(tǒng)。TLC549引腳如圖9.2所示。上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

TLC549器件工作時序如圖9.3所示,當CS變?yōu)榈碗娖胶?,TLC549芯片被選中,同時前次轉(zhuǎn)換結(jié)果的最高有效位MSB(A7)自DATAOUT端輸出,接著要求自I/OCLOCK端輸入8個外部時鐘信號,前7個I/OCLOCK信號的作用是配合TLC549輸出前次轉(zhuǎn)換結(jié)果的A6~A0位,并為本次轉(zhuǎn)換做準備:在第4個I/OCLOCK信號由高至低跳變之后,片內(nèi)采樣/保持電路對輸入模擬量開始采樣,第8個I/OCLOCK信號的下降沿使片內(nèi)采樣/保持電路進入保持狀態(tài)并啟動A/D開始轉(zhuǎn)換。轉(zhuǎn)換時間為36個系統(tǒng)時鐘周期,最大為17μs。直到A/D轉(zhuǎn)換完成前的這段時間內(nèi),TLC549的控制邏輯要求,或者CS保持高電平,或者I/OCLOCK時鐘端保持36個系統(tǒng)時鐘周期的低電平。上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

由此可見,在自TLC549的I/OCLOCK端輸入8個外部時鐘信號期間需要完成以下工作:讀入前次A/D轉(zhuǎn)換結(jié)果;對本次轉(zhuǎn)換的輸入模擬信號采樣并保持;啟動本次A/D轉(zhuǎn)換開始。2.多路開關(guān)CD4067CD4067相當于一個單刀八擲開關(guān),開關(guān)接通哪一通道由輸入的4位地址碼ABCD來決定。INH是禁止端,當“INH”=1時各通道均不接通。此外,CD4051還設(shè)有另外一個電源端VEE,以作為電平位移時使用,從而使得通常在單組電源供電條件下工作的CMOS電路所提供的數(shù)字信號能直接控制這種多路開關(guān),并使這種多路開關(guān)可傳輸峰峰值達15V的交流信號。幅度范圍為-5~+5V的模擬信號。上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

9.1.3設(shè)計方案采集系統(tǒng)的控制邏輯由FPGA芯片實現(xiàn),完成兩種控制功能,一是控制CD4067電路的通道選擇,用16進制計數(shù)器控制CD4067的16路模擬信號分時循環(huán)輸入;二是根據(jù)TLC549器件工作時序的要求設(shè)計輸出信號控制TLC549器件,保證轉(zhuǎn)換的字節(jié)數(shù)據(jù)被正確采集。根據(jù)TLC549器件數(shù)據(jù)手冊,TLC的clock最大為1.1MHz,本設(shè)計中的clock為1MHz,每個clock時鐘周期為1

μs,采集一個字節(jié)需要8

μs,加上等待時間1

μs,每個字節(jié)的采集時間為9

μs,由于TLC549器件的最長轉(zhuǎn)換時間為17

μs,這里轉(zhuǎn)換時間取17

μs,這樣TLC549器件每轉(zhuǎn)換一個字節(jié)數(shù)據(jù)共需要26

μs時間。上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

這里設(shè)計一個米利型狀態(tài)機處理整個信號采集過程,既控制TLC549的采集時序,又控制CD4067的采集通道轉(zhuǎn)換,是整個設(shè)計的核心。根據(jù)TLC549手冊要求的采集時序分成兩個狀態(tài),一個是數(shù)據(jù)采集狀態(tài),一個是模數(shù)轉(zhuǎn)換狀態(tài),由一個輸入時鐘為1μs的26進制的計數(shù)器timer_26負責兩個狀態(tài)的轉(zhuǎn)換。由TLC549時序得知片選信號CS變低后,I/OCLOCK開始正跳變的最小時間間隔1.4μs以及從CS變低到DATAOUT線上輸出數(shù)據(jù)的最短時間1.2μs,所以在軟件設(shè)計時應(yīng)該重點考慮CS引腳由高變低與CLK引腳由低變高之間的時間間隔應(yīng)至少大于1.4μs,這樣才能夠正確采樣到第1位數(shù)據(jù)(A7)。由于每個機器周期是1μs,所以需在第二個時鐘周期采樣,這樣這個時間間隔大于1.4μs。上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

9.1.4程序設(shè)計依據(jù)設(shè)計思路編寫出的程序代碼如下:上一頁下一頁返回9.1基于TLC549的數(shù)據(jù)采集電路設(shè)計

9.1.5程序編譯并測試根據(jù)圖9.1設(shè)計多路數(shù)據(jù)采集電路的電路板,將CD4067和tlc549安在一塊板子上,使16路模擬信號接入CD4067。將程序在AlteraQuartusⅡ編譯通過,給各個信號分配引腳,再編譯通過,下載到FPGA開發(fā)板上。將輸出引腳安排到開發(fā)板排線引腳上,再用杜邦線將CD4067和tlc549的受控引腳連接到開發(fā)板上,調(diào)試多路數(shù)據(jù)采集電路的性能,使結(jié)果和我們預(yù)期的想法一致。上一頁返回9.2IIC總線接口電路設(shè)計9.2.1設(shè)計要求依據(jù)開發(fā)板,按動開發(fā)板鍵的四個按鍵,要求FPGA能把數(shù)據(jù)寫入EEPROMAT24C04的某個地址,并能將寫入的數(shù)據(jù)讀回FPGA,同時在數(shù)碼管上顯示。9.2.2必備知識1.AT24C04的基本介紹AT24C04是Atmel公司的一款I(lǐng)IC串行EEPROM,其工作電壓范圍寬,VCC工作在1.7~5.5V,兼容51單片機的TTL電平。AT24C04芯片引腳分布如圖9.4所示。下一頁返回9.2IIC總線接口電路設(shè)計在器件引腳中,A0、A1、A2為芯片的地址輸入引腳,AT24C04硬線尋址用A2和A1輸入,而且總計四個4Kb器件可設(shè)置在一條總線系統(tǒng)上,A0腳是不連接的。SCL和SDA為IIC總線接口的串行時鐘線與數(shù)據(jù)線。WP為寫保護引腳,當芯片寫保護時,WP為高電平,只能對器件進行讀操作,不能改寫內(nèi)部數(shù)據(jù),從而起到硬件保護作用;當WP為低電平時,才能實現(xiàn)對器件進行寫操作。芯片引腳少,外圍電路簡單,減少了布局布線空間。本設(shè)計中AT24C04芯片的電路連接圖如圖9.5所示。SCL和SDA引腳接FPGA引腳。上一頁下一頁返回9.2IIC總線接口電路設(shè)計2.IIC的控制時序使用對AT24C04的控制,實質(zhì)是建立與EEPROM芯片的IIC通信。相比RS232和SPI通信而言,IIC的時序要復(fù)雜一些。IIC系統(tǒng)由一條串行數(shù)據(jù)線SDA和一條串行時鐘線SCL組成。主機按一定的通信協(xié)議向從機尋址和進行信息傳輸。在數(shù)據(jù)傳輸時,由主機初始化一次數(shù)據(jù)傳輸,主機使數(shù)據(jù)在SDA線上傳輸?shù)耐瑫r還通過SCL線傳輸時鐘。信息傳輸?shù)膶ο蠛头较蛞约靶畔鬏數(shù)拈_始和終止均由主機決定。每個器件都有一個唯一的地址,而且可以是單接收的器件或者可以接收也可以發(fā)送的器件。發(fā)送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數(shù)據(jù)的傳輸還是僅僅被尋址。IIC總線在傳送數(shù)據(jù)過程中共有三種類型信號,分別是:開始和結(jié)束信號、確認總線上數(shù)據(jù)有效性的時序和應(yīng)答信號。上一頁下一頁返回9.2IIC總線接口電路設(shè)計3.總線上數(shù)據(jù)傳輸格式一般情況下,一個標準的IIC通信由四部分組成:開始信號、從機地址傳輸、數(shù)據(jù)傳輸、停止信號。工作過程是:由主機發(fā)送一個開始信號,啟動一次IIC通信;在主機對從機尋址后,再在總線上傳輸數(shù)據(jù)。IIC總線上傳送的每一個字節(jié)均為8位,首先發(fā)送的數(shù)據(jù)位為最高位,每傳送一個字節(jié)后都必須跟隨一個應(yīng)答位,每次通信的數(shù)據(jù)字節(jié)數(shù)是沒有限制的;在全部數(shù)據(jù)傳送結(jié)束后,由主機發(fā)送停止信號,結(jié)束通信。上一頁下一頁返回9.2IIC總線接口電路設(shè)計4.IIC總線尋址為了消除IIC總線系統(tǒng)中主控器與被控器的地址選擇線,最大限度地簡化總線連接線,IIC總線采用了獨特的尋址約定,規(guī)定了開始信號后的第一個字節(jié)為尋址字節(jié),用來尋址被控器件,并規(guī)定數(shù)據(jù)傳送方向。在IIC總線系統(tǒng)中,尋址字節(jié)由被控器的七位地址位(它占據(jù)了D7~D1位)和一位方向位(D0位)組成。D0位為0時表示主控器將數(shù)據(jù)寫入被控器,D0為1時表示主控器從被控器讀取數(shù)據(jù)。主控器發(fā)送開始信號后,立即發(fā)送尋址字節(jié),這時,總線上的所有器件都將尋址字節(jié)中的7位地址與自己器件地址比較。如果兩者相同,則該器件認為被主控器尋址,并發(fā)送應(yīng)答信號,被控器根據(jù)讀寫位確定自身是作為發(fā)送器還是接收器。上一頁下一頁返回9.2IIC總線接口電路設(shè)計主器件作為被控器時,其7位從地址在IIC總線地址寄存器中給定,為純軟件地址。IIC總線系統(tǒng)中,沒有兩個從機的地址是相同的。5.主機向從機讀寫1個字節(jié)數(shù)據(jù)的過程主機向從機寫1個字節(jié)數(shù)據(jù)的過程如圖9.9所示,主機要向從機寫1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生START信號,然后緊跟著發(fā)送一個從機地址,這個地址共有7位,緊接著的第8位是數(shù)據(jù)方向位(R/W),0表示主機發(fā)送數(shù)據(jù)(寫),1表示主機接收數(shù)據(jù)(讀),這時候主機等待從機的應(yīng)答信號(A),當主機收到應(yīng)答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的應(yīng)答信號,當主機收到應(yīng)答信號時,發(fā)送1個字節(jié)的數(shù)據(jù),繼續(xù)等待從機的應(yīng)答信號,當主機收到應(yīng)答信號時,產(chǎn)生停止信號,結(jié)束傳送過程。上一頁下一頁返回9.2IIC總線接口電路設(shè)計主機向從機讀1個字節(jié)數(shù)據(jù)的過程如圖9.10所示,主機在從機讀1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生開始信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為0,表明是向從機寫命令,這時主機等待從機的應(yīng)答信號(A),當主機收到應(yīng)答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的應(yīng)答信號,當主機收到應(yīng)答信號后,主機要改變通信模式(主機將由發(fā)送變?yōu)榻邮眨瑥臋C將由接收變?yōu)榘l(fā)送),所以主機發(fā)送重新開始信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為1,表明將主機設(shè)置成接收模式開始讀取數(shù)據(jù),這時主機等待從機的應(yīng)答信號,當主機收到應(yīng)答信號時,就可以接收1個字節(jié)的數(shù)據(jù),當接收完成后,主機發(fā)送非應(yīng)答信號,表示不再接收數(shù)據(jù),主機進而產(chǎn)生停止信號,結(jié)束傳送過程。上一頁下一頁返回9.2IIC總線接口電路設(shè)計9.2.3設(shè)計方案FPGA和外接設(shè)備以IIC總線進行連接,F(xiàn)PGA為主設(shè)備,AT24C04為從設(shè)備,IIC總線的控制器工作在FPGA中。IIC控制器的主要作用是發(fā)送控制命令到AT24C04,讀寫從設(shè)的數(shù)據(jù)。主要包括三部分:控制狀態(tài)機模塊、寫過程和讀過程模塊。其中讀、寫過程的時序遵守IIC總線通信控制協(xié)議。1.寫過程(1)FPGA在檢測到總線空閑時,發(fā)送信號占用總線。(2)FPGA給總線發(fā)送一個地址字節(jié),其中包括7位地址信號和l位寫信號(R/W信號為0)。上一頁下一頁返回9.2IIC總線接口電路設(shè)計(3)AT24C04檢測到總線上的地址與自己的地址相同時,發(fā)送一個應(yīng)答信號。(4)FPGA收到應(yīng)答信號后發(fā)送第一個數(shù)據(jù)字節(jié)。(5)AT24C04收到數(shù)據(jù)字節(jié)后發(fā)送應(yīng)答表示繼續(xù)發(fā)送或其他操作。(6)重復(fù)(4)、(5),F(xiàn)PGA發(fā)送完全部數(shù)據(jù)后發(fā)送一個停止位P,結(jié)束寫過程并釋放總線。上一頁下一頁返回9.2IIC總線接口電路設(shè)計2.讀過程(1)FPGA在檢測到總線空閑時,發(fā)送s信號占用總線。(2)FPGA給總線發(fā)送一個地址字節(jié),其中包括7位地址信號和l位寫信號(R/W信號為1)。(3)外設(shè)檢測到總線上的地址與自己的地址相同時,發(fā)送一個應(yīng)答信號。(4)FPGA收到應(yīng)答信號后釋放總線,開始接收第一個數(shù)據(jù)字節(jié)。(5)外設(shè)收到數(shù)據(jù)字節(jié)后發(fā)送應(yīng)答信號表示繼續(xù)發(fā)送或其他操作。(6)重復(fù)(4)、(5),F(xiàn)PGA接收完全部的數(shù)據(jù)后發(fā)送一個停止位,結(jié)束寫過程并釋放總線。上一頁下一頁返回9.2IIC總線接口電路設(shè)計3.控制狀態(tài)機根據(jù)IIC總線通信控制協(xié)議,IIC總線有六個固定的狀態(tài),它們?yōu)榭臻e、開始、寫數(shù)據(jù)、讀數(shù)據(jù)、應(yīng)答、停止,如圖9.11所示。(1)空閑狀態(tài):當無數(shù)據(jù)傳輸時,IIC總線處于空閑狀態(tài)。(2)開始狀態(tài):當收到開

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論