經(jīng)改造的DDS功能用作波特率發(fā)生器
一般情況下,可以用一個現(xiàn)有的振蕩器,為一個UART產(chǎn)生一個波特率時鐘。振蕩器頻率必須作分頻,而分頻會帶來波特率誤差。表1表示當用一個8 MHz晶振和一個普通的二進制分頻器生成波特率時,產(chǎn)生誤差的百分比。本例中的系統(tǒng)可以獲得一個比波特率快16倍的時鐘。
當示波器頻率不相匹配時,波特率設(shè)置中的誤差會增加。此時,可以增加一個工作在18.432 MHz的振蕩器,以盡可能減小誤差率。另外,可以采用DDS(直接數(shù)字綜合)方法,以較高波特率使用相同振蕩器,從而降低誤差(表2)。
參考文獻1中描述了基本的DDS操作原理。本設(shè)計采用了一種較簡單的DDS版本,只有一個方波輸出(圖1)。可以從相位累加器的MSB獲得方波的輸出。也可以增加一個除2級,使獲得的信號有50%的占空比。波特率時鐘頻率的計算方法是:波特率時鐘 = (基準時鐘×控制字/2N)/2,其中N是相位累加器的位數(shù)。代碼清單1(http://www.edn.com/file/25467-Modified_DDS_functions_as_baud_rate_generator_listing.doc)是一個采用20位相位累加器和16位控制字的DDS波特率發(fā)生器的Verilog實現(xiàn)。
參考文獻 1.A Technical Tutorial on Direct Digital Synthesis,” Analog Devices, 1999.
評論