※ 引述《beagle (紅茶犬)》之銘言:
: ※ 引述《acelp (未來,一直來一直來)》之銘言:
: : crystal起振還必須依靠電容 而crystal本身對溫度會有variation
: : 掛在crystal上的電容也會對溫度有variation
: : 這些variation可能會造成起振的頻率偏移 甚至是jitter變大
: : jitter變大都不是一般IC所預期的
: : 而頻率的偏移會在互連的device會造成clock shift
: : 簡單講假使兩個系統125M相差100ppm 表示frequency offset 12500Hz
: : 那多久TX/RX間會有相差一個clock?
: : 一個clock消失了 通訊上可能一個封包錯了 多媒體可能一個frame解錯
: : 所以很多通訊系統的spec都會定義對頻率的耐受度
: : 因為無法保證crystal的frequency variation
: 的確, 通訊協動多會定義雙方 clock 可忍耐的差異度, 而且這容忍值頗大,
: 好像是在 5% 還是 10% 左右... 換成 ppm 會變成天文數字...
: 通常接收方會用 16 倍的頻率去讀訊號, 因此 1/16 或更大的 jitter 是可允許的,
: 為了避免連續的 0 導致誤差累積, 較新的協定會用 8B/10B 或曼徹斯特編碼,
: 提供定期的電位改變, 讓接收方可以查覺對方的 jitter 重新同步...
: UART 是每個 byte 都有 start bit 和 stop bit, 每個 byte 都重新同步一次。
: 這時我有個問題, 我聽過一位工程師說, 8B/10B 這類通訊協定,
: 可以用 PLL (鎖相環) 去自動鎖頻, 接收方自然能順便取得發送方的 clock,
: 可是我實在想不通, 上面的 16 倍頻讀取很好用, 為什麼要這樣用 PLL 做...
如果是光通訊中clock and data recovery(CDR)的話,或許是傳送的data速度已經很高,
要用比他快16倍clock去做oversampling有點困難.於是直接用個loop去取出clock的頻
率以及相位,用來demux或者供後段電路來使用.
: 難道是把 PLL 鎖頻後送出的 clock 傳給 shift register,
: 讓硬體被 clock pulse 推著解碼嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.17.105