下篇:基于FIFO實(shí)現(xiàn)超聲測(cè)厚系統(tǒng) - 時(shí)序設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
上篇文章中,小編對(duì)基于FIFO實(shí)現(xiàn)超聲測(cè)厚系統(tǒng)的硬件選擇和接口設(shè)計(jì)有所介紹。在這篇文章中,我們接著來看該系統(tǒng)的時(shí)序設(shè)計(jì)。
一、時(shí)序設(shè)計(jì)的實(shí)質(zhì)是什么
時(shí)序設(shè)計(jì)的實(shí)質(zhì)是滿足每一個(gè)觸發(fā)器的建立時(shí)間、保持時(shí)間的要求。
時(shí)序設(shè)計(jì)是電路設(shè)計(jì)中的一個(gè)關(guān)鍵環(huán)節(jié),其核心目標(biāo)在于確保電路中的觸發(fā)器能夠在正確的時(shí)間點(diǎn)接收和保持?jǐn)?shù)據(jù)。這包括兩個(gè)方面:建立時(shí)間和保持時(shí)間。建立時(shí)間是指觸發(fā)器能夠正確接收數(shù)據(jù)的最早時(shí)間,而保持時(shí)間則是指觸發(fā)器能夠保持?jǐn)?shù)據(jù)的穩(wěn)定狀態(tài)的最短時(shí)間。時(shí)序設(shè)計(jì)的實(shí)質(zhì)就在于通過合理的電路設(shè)計(jì)和優(yōu)化,確保所有觸發(fā)器都能滿足這些時(shí)間要求,從而保證電路的整體性能和可靠性。
建立時(shí)間:這是觸發(fā)器能夠開始接受數(shù)據(jù)的最早時(shí)間點(diǎn)。如果信號(hào)在建立時(shí)間之前到達(dá),那么觸發(fā)器可能無法正確地識(shí)別和處理這個(gè)信號(hào)。
保持時(shí)間:這是觸發(fā)器能夠保持?jǐn)?shù)據(jù)的穩(wěn)定狀態(tài)的最短時(shí)間。如果信號(hào)在保持時(shí)間結(jié)束后才到達(dá),那么觸發(fā)器可能無法正確地鎖定這個(gè)信號(hào),從而導(dǎo)致數(shù)據(jù)錯(cuò)誤。
時(shí)序收斂是時(shí)序設(shè)計(jì)過程中的一個(gè)重要概念,它指的是通過一系列的設(shè)計(jì)和優(yōu)化措施,使得電路的時(shí)序要求得到滿足,即所有觸發(fā)器的建立時(shí)間和保持時(shí)間要求都得到滿足。這個(gè)過程需要對(duì)設(shè)計(jì)的電路有深入的理解和熟悉,以確保數(shù)據(jù)能夠在正確的時(shí)間到達(dá)并被正確地處理。
通過兩個(gè)與門分別對(duì)A/D和FIFO的寫時(shí)鐘進(jìn)行控制。因?yàn)锳D9283從模擬輸入開始到該次轉(zhuǎn)換的數(shù)據(jù)出現(xiàn)在輸出口上需要4個(gè)時(shí)鐘周期,并且在高速度采樣時(shí)導(dǎo)線的延時(shí)效果會(huì)非常明顯,若把A/D和FIFO的時(shí)鐘連在一起,很可能過多地采到無效數(shù)據(jù)。分開控制以后,通過軟件延時(shí),可以方便地分別對(duì)A/D和FIFO的時(shí)鐘進(jìn)行控制。調(diào)試起來相當(dāng)方便,力圖把采到無效數(shù)據(jù)的位數(shù)減至。AD9283的工作時(shí)序如圖2所示,CY7C4621寫時(shí)序圖如圖3所示。
采樣時(shí)。通過程序使能TOUTl,TOUT2輸出為1。此時(shí)采樣時(shí)鐘脈沖與TOUTl,TOUT2相與后被分別送入AD9283的時(shí)鐘輸入ENCODE和CY7C4621的寫時(shí)鐘輸入WCLK。此時(shí)A/D開始工作,A/D將轉(zhuǎn)換數(shù)據(jù)送至自己的輸出口D0~D7。當(dāng)寫使能WEN1為低、WEN2為高的時(shí)候,A/D輸出口上的數(shù)據(jù)在WCLK的上升沿被依次寫入FIFO。A/D和FIFO每來脈沖,便完成模/數(shù)轉(zhuǎn)換并把數(shù)據(jù)順序存入FIFO。CY7C4261的數(shù)據(jù)儲(chǔ)存容量是16 KB,在完成了1 6 KB次轉(zhuǎn)換之后,CY7C426l將不能再存入新的數(shù)據(jù),此時(shí)存儲(chǔ)器滿標(biāo)志FF輸出低電平(在未滿時(shí)輸出高電平)。把此信號(hào)接到S3C2410的外部中斷EINTl上,利用它由高到低的變化產(chǎn)生中斷,以表明一組數(shù)據(jù)采集完成。
在中斷中,ARM首先迅速關(guān)閉采樣脈沖信號(hào)(使TOUTl和TOUT2)的輸出為0,停止A/D和FIFO的工作。ARM外部時(shí)鐘信號(hào)CLKOUTO與FIFO的讀輸入RCLK接在一起,ARM每執(zhí)行I/O讀操作,cLKOUT0便向RCLK發(fā)出一脈沖。把FIFO讀使WEN1能和WEN2置為低,同時(shí)連續(xù)執(zhí)行16 K次I/O讀操作,數(shù)據(jù)便依次從CY7C4261送入S3C2410系統(tǒng),整個(gè)數(shù)據(jù)采集工作就此完成。在進(jìn)行每數(shù)據(jù)的采集前,將CY7C4261先復(fù)位,把S3C24-10的nRSTOUTl配置為通用輸出口,給CY7C4261的RS引腳輸入一個(gè)不小于10 ns的低脈沖,即在ARM的nRSTOUTl引腳輸出一個(gè)低脈沖。這樣可以更充分地保證FIFO的讀、寫指針的穩(wěn)定。
以上便是小編此次想要和大家共同分享的內(nèi)容,如果你對(duì)本文內(nèi)容感到滿意,不妨持續(xù)關(guān)注我們網(wǎng)站喲。最后,十分感謝大家的閱讀,have a nice day!