顧 涵
常熟理工學院物理與電子工程學院;江蘇常熟 215500
類曼徹斯特碼是一種利用自同步法保持位同步的線路碼型,它用上升沿來表示一個碼元的開始,然后連續(xù)兩個時鐘信號的高電平表示“1”,對應編碼數(shù)據(jù)“0100”,反之連續(xù)兩個時鐘的低電平表示“0”,對應編碼數(shù)據(jù)“0111”。經(jīng)類曼徹斯特編碼后,無論是數(shù)據(jù)“1”還是數(shù)據(jù)“0”,在開始的時候都有一個上升沿,包含了時鐘信息,正是具有這一特點,類曼徹斯特編碼發(fā)送功能的設計實現(xiàn)解決了串行數(shù)據(jù)傳輸?shù)耐綍r鐘問題。
在硬件設計時采用LVDS 差分電路,LVDS 是一種低擺幅的差分信號技術(shù),它使得信號能夠在差分平衡電纜上以幾百Mbps 的速率傳輸,其低壓幅和低電流的驅(qū)動輸出完全達到了低噪聲和低功耗的要求。本設計中,F(xiàn)PGA 傳出的串行數(shù)據(jù)通過差分電路的轉(zhuǎn)換,形成差分形式的數(shù)據(jù),向外傳輸,設計電路如圖1 所示。

圖1 發(fā)送模塊
該電路臨近輸出端串接了10Ω 的電阻,可以防止差分線對短路,缺點在于420mV 的驅(qū)動電壓已接近數(shù)據(jù)手冊中給出的Vod 最大值454mV。同時設計中還需要考慮信號反射問題,這種現(xiàn)象的產(chǎn)生會導致噪聲類型的轉(zhuǎn)變,使其從原來的共模信號轉(zhuǎn)變?yōu)椴钅P盘枺瑥亩档蛿?shù)據(jù)傳輸?shù)臏蚀_性。為了避免這一問題,我們在設計中應做到在信號值不同時輸出阻抗保持不變,同時,輸出阻抗的下限只能稍小于傳輸線特性阻抗,而它的上限必須略大于傳輸線的特性阻抗。
類曼徹斯特編碼可以分為三步進行。第一步,檢測編碼周期是否開始并發(fā)送開始信號;第二步,對十五位數(shù)據(jù)進行類曼徹斯特編碼;第三步,采用偶校驗方式生成校驗位,完成編碼周期。具體編程時可以分為數(shù)據(jù)定義、數(shù)據(jù)轉(zhuǎn)換及校驗和數(shù)據(jù)編碼及發(fā)送三大模塊。
當時鐘的上升沿到來時,若復位信號有效則將數(shù)據(jù)位、校驗位都清零,否則count_state1 加1。若count_state1 為011 則表示一個數(shù)據(jù)位傳輸?shù)拈_始,傳1 位數(shù)據(jù),傳送完該數(shù)據(jù)共經(jīng)歷四個時鐘周期,在這四個時鐘周期內(nèi)count_state1共經(jīng)歷四個時鐘周期的轉(zhuǎn)換,其狀態(tài)轉(zhuǎn)換流程如圖2 所示。

圖2 count_state1 的狀態(tài)轉(zhuǎn)換圖
數(shù)據(jù)定義模塊完成對輸入輸出信號的定義,具體程序為:

該模塊采用狀態(tài)機完成16 位并行數(shù)據(jù)到串行數(shù)據(jù)的轉(zhuǎn)換,通過逐位異或運算來生成奇偶校驗位,具體程序為:


該模塊對每一位數(shù)據(jù)進行編碼并發(fā)送,具體程序為:


我們采用ISim 進行波形仿真來測試編碼模塊功能的準確性,以下給出了具體的ISim 測試程序,測試波形如圖3 所示。從圖中可以看出,當輸入數(shù)據(jù)分別為0 和5 時,對應波形輸出與類曼徹斯特編碼規(guī)則相符,符合預期設計。


圖3 編碼仿真波形
[1]劉江海.EDA技術(shù)[M].華中科技大學出版社,2009.
[2]漢譯西.EDA技術(shù)及其應用[M].北京航空航天大學出版社,2011.
[3]王曉聰.基于FPGA的HDB3碼編碼器優(yōu)化設計與分析[J].現(xiàn)代電子技術(shù),2011.
[4]黃仁欣.EDA技術(shù)實用教程.清華大學出版社,2010.
[5]肖娟.基于FPGA的移動通信中卷積碼編碼器設計[J].現(xiàn)代電子技術(shù),2012.