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