FPGA Verilog HDL實現(xiàn)AD轉(zhuǎn)換,代碼超詳細!
一直以來,AD轉(zhuǎn)換都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)?a href="/tags/FPGA" target="_blank">FPGA Verilog HDL實現(xiàn)AD轉(zhuǎn)換的實例設計的相關介紹,詳細內(nèi)容請看下文。
一、AD轉(zhuǎn)換原理
AD轉(zhuǎn)換的基本原理包括取樣定理、量化和編碼、以及取樣-保持電路。
1、取樣定理:為了保證能從取樣信號恢復原來的被取樣信號,必須滿足取樣頻率大于等于2倍的輸入模擬信號的最高頻率分量的頻率。這是因為轉(zhuǎn)換是在取樣后的保持時間內(nèi)完成的,所以轉(zhuǎn)換結(jié)果所對應的模擬電壓是每次取樣結(jié)束時的值。
2、量化和編碼:數(shù)字信號在時間上是離散的,數(shù)值的大小變化也是不連續(xù)的。A/D轉(zhuǎn)換時,必須將取樣電壓表示為某個規(guī)定的最小單位的整倍數(shù),這個過程稱為量化。所取的最小數(shù)量單位是量化單位。數(shù)字信號的最低有效位(LSB)的1所表示的數(shù)量大小就等于量化單位。將量化的結(jié)果用代碼(二進制等)表示出來稱為編碼。量化誤差是量化過程中引入的誤差。
3、取樣-保持電路:在取樣過程中,電容上的電壓達到穩(wěn)態(tài)值所需要的時間稱為獲取時間。保持階段輸出電壓的下降率△V0/△T是衡量取樣-保持電路的重要指標。
此外,AD轉(zhuǎn)換器的工作過程還包括采樣、保持、量化、編碼、輸出等幾個環(huán)節(jié)。按照其變換原理可以分為逐次比較式、并行式A/D轉(zhuǎn)換器、子區(qū)式A/D轉(zhuǎn)換器、∑-?AD轉(zhuǎn)換器等。逐次比較式ADC采用了四舍五入的量化方式,其優(yōu)點是轉(zhuǎn)換原理直觀、電路簡單、成本低、轉(zhuǎn)換精度較高,適用于高精度、中速以下的場合。并行式A/D轉(zhuǎn)換器模擬信號同時輸入到帶鎖存的比較器中,每個比較器的參考電壓都比下一個的參考電壓高出一個LSB所代表的電壓值,輸出結(jié)果送往譯碼邏輯處理,輸出最終的二進制結(jié)果。子區(qū)式A/D轉(zhuǎn)換器用第一片并行式A/D轉(zhuǎn)換器數(shù)字化輸出高四位,將這四位送至D/A轉(zhuǎn)換器進行模數(shù)變換,輸入的模擬信號與D/A的輸出信號相減,差值送給第二片并行式A/D轉(zhuǎn)換器。兩片A/D轉(zhuǎn)換器的輸出合并在一起,構成了8位的A/D輸出?!??AD轉(zhuǎn)換器是一種過采樣量化器,利用過采樣、噪聲整形、數(shù)字濾波等手段來提高數(shù)字化性能,適用于通信信號對靈敏度、動態(tài)范圍要求高的情況。
二、FPGA Verilog HDL系列實例—AD轉(zhuǎn)換
(一)ADC0809
ADC0809 8通道8位a/d轉(zhuǎn)換器,ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。ADC0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。如圖3.1所示。
圖3.1 ADC0809的內(nèi)部結(jié)構和引腳定義
下面我們將看看是如何根據(jù)它的時序圖完成對芯片的驅(qū)動的。
圖3.2 ADC0809時序圖
(二)Verilog HDL實現(xiàn)
實現(xiàn)步驟請參照 【連載】 FPGA Verilog HDL 系列實例--------8-3編碼器。這里就不再贅述。
設計文件輸入Verilog HDL代碼。
上面一長串代碼,剛接觸的人一看可能會頭大,但要是仔細分析一下,就會很好理解了。本實現(xiàn)有三部分組成:
1.第44行~第59行:時鐘分頻,系統(tǒng)時鐘為50MHZ,ADC0809的驅(qū)動頻率不需要這么快,所以需要分頻。一般在500KHZ左右,實例中用的是750KHz。
2.第67行~第128行:對ADC0809時序的實現(xiàn)。自己好好理解下哦。一次模數(shù)轉(zhuǎn)換經(jīng)過6個步驟完成。第3步和第4步需要查看EOC的狀態(tài)來確定是否將模擬數(shù)據(jù)轉(zhuǎn)換完畢。
3.第137行~第183行:將模擬數(shù)據(jù)轉(zhuǎn)化到的數(shù)字數(shù)據(jù)輸出到2個數(shù)碼管上。圖3.3是ADC0809的外部接口。
圖3.3 ADC0809的外部接口
分配引腳:
clk接系統(tǒng)時鐘,rst接復位信號,abc_in[2..0]接三個按鍵,seven_seg[15..0]接2個七段數(shù)碼管,其余的是ADC0809上的型號,這是由硬件連線決定的,只要搞清楚它們是輸入還是輸出就行了。
以上所有內(nèi)容便是小編此次為大家?guī)淼乃薪榻B,如果你想了解更多有關它的內(nèi)容,不妨在我們網(wǎng)站或者百度、google進行探索哦。