引言
雖然計算機通信的方法和手段多種多樣,但都必須依靠數據通信技術。數據通信就是將數據信號加到數據傳輸信道上進行傳輸,并在接收點將原始發送的數據正確地恢復過來。由于計算機產生的一般都是數字信號,因此計算機之間的通信實際上都屬于數據通信。曼徹斯特碼編解碼器是1553B總線接口中不可缺少的重要組成部分。曼徹斯特碼編解碼器設計的好壞直接影響總線接口的性能。在數控測井系統和無線監控等領域,曼徹斯特碼編解碼器都有廣泛應用。
1數據通信系統結構
圖1所示是數據通信系統的基本構成。在計算機通信中,通信雙方傳遞的信息必須進行量化并以某種形式進行編碼后才能進行傳輸。機內信號不論采用哪一種編碼方法,它們的基本信號都是脈沖信號,為了減少信號在傳輸媒質上的通信帶寬限制,以及噪音、衰減、時延等影響,也由于同步技術的需要,操作時都需要對簡單的脈沖信號進行一些不同的變換,以適合傳輸的需要。這樣就會產生許多不同的代碼,通常有不歸零電平(NRZ-L)碼,逢“1”反轉(NRZ-1)碼,曼徹斯特碼和差分曼徹斯特等。圖2所示是部分編碼方式的波形圖。
由圖2可知,不歸零碼的制碼原理是用負電平表示“0”,正電平表示“1”,其缺點是難以分辨一位的結束和另一位的開始;發送方和接收方必須有時鐘同步;若信號中“0”或“1”連續出現,信號直流分量將累加。這樣就容易產生傳播錯誤。曼徹斯特碼(Manchester)的原理是每一位中間都有一個跳變,從低跳到高表示“0”,從高跳到低表示“1”。這種編碼方式克服了NRZ碼的不足。每位中間的跳變即可作為數據,又可作為時鐘,因而能夠自同步。曼徹斯特編碼特點是每傳輸一位數據都對應一次跳變,因而利于同步信號的提取,而且直流分量恒定不變。缺點是數據編碼后,脈沖頻率為數據傳輸速度的2倍。差分曼徹斯特碼(DifferentialManchester)的原理是每一位中間都有一個跳變,每位開始時有跳變表示“0”,無跳變表示“1”。位中間跳變表示時鐘,位前跳變表示數據。這種方式的優點是時鐘、數據分離,便于提取。
2曼徹斯特編解碼器的設計
可編程邏輯器件的出現為數字系統的設計帶來了很大的靈活性.而VHDL(VHSICHardwareDescriptionLanguage)是一種功能強大的硬件設計語言,可用簡潔的代碼來進行復雜控制邏輯的設計。為此,本文采用VHDL語言來對曼徹斯特編解碼器進行描述,并用Active-HDL進行編譯,最后用Synplify進行綜合。
2.1解碼
根據曼徹斯特碼的特點,可將該碼的解碼過程分成三部分:一是啟動解碼時鐘,即通過檢測一個數據跳變沿來使能時鐘。二是對曼徹斯特碼形式的數據進行解碼。三是將串行數據轉換成并行數據。解碼器的邏輯框圖如圖3所示。
該邏輯可南進程實現。輸人的時鐘為clkl6x的時鐘,串行的曼徹斯特碼的數據與單倍的時鐘相對應。首先,串行的曼碼由clk16x的時鐘采樣,之后再將采樣到的數據先后存放在兩個寄存器中,當兩個寄存器中的值不一致時,即開始解碼過程,從而完成檢測數據變化的進程。分頻計數進程用來產生clklx,并用分頻計數的結果來實現1/4和3/4點的采樣。根據曼徹斯特碼的性質,對1/4和3/4點采樣可以準確的恢復成NRZ碼。此后在clklx的驅動下,控制字計數器開始計數,直到8個clklx之后,計數器歸零。解碼進程則在clkl6x的驅動下,對1/4和3/4采樣點的數據進行解碼,從而得到曼碼相對應的NRZ碼。緊接著將解碼得到的每一位NRZ碼移入8位的移位寄存器,當控制字寄存器計到8時(即8位移位寄存器溢出的時候),再將8位NRZ碼一起輸出到數據寄存器,最后輸出數據寄存器中被解碼好的NRZ碼。
圖4所示是采用該設計的曼徹斯特碼的時序仿真波形,clkl6x采用16MHz的時鐘,mdi為輸入的曼碼(10101100)。最后輸出dout為十六進制AC,這說明該解碼過程是正確的。
<
引言
雖然計算機通信的方法和手段多種多樣,但都必須依靠數據通信技術。數據通信就是將數據信號加到數據傳輸信道上進行傳輸,并在接收點將原始發送的數據正確地恢復過來。由于計算機產生的一般都是數字信號,因此計算機之間的通信實際上都屬于數據通信。曼徹斯特碼編解碼器是1553B總線接口中不可缺少的重要組成部分。曼徹斯特碼編解碼器設計的好壞直接影響總線接口的性能。在數控測井系統和無線監控等領域,曼徹斯特碼編解碼器都有廣泛應用。
1數據通信系統結構
圖1所示是數據通信系統的基本構成。在計算機通信中,通信雙方傳遞的信息必須進行量化并以某種形式進行編碼后才能進行傳輸。機內信號不論采用哪一種編碼方法,它們的基本信號都是脈沖信號,為了減少信號在傳輸媒質上的通信帶寬限制,以及噪音、衰減、時延等影響,也由于同步技術的需要,操作時都需要對簡單的脈沖信號進行一些不同的變換,以適合傳輸的需要。這樣就會產生許多不同的代碼,通常有不歸零電平(NRZ-L)碼,逢“1”反轉(NRZ-1)碼,曼徹斯特碼和差分曼徹斯特等。圖2所示是部分編碼方式的波形圖。
由圖2可知,不歸零碼的制碼原理是用負電平表示“0”,正電平表示“1”,其缺點是難以分辨一位的結束和另一位的開始;發送方和接收方必須有時鐘同步;若信號中“0”或“1”連續出現,信號直流分量將累加。這樣就容易產生傳播錯誤。曼徹斯特碼(Manchester)的原理是每一位中間都有一個跳變,從低跳到高表示“0”,從高跳到低表示“1”。這種編碼方式克服了NRZ碼的不足。每位中間的跳變即可作為數據,又可作為時鐘,因而能夠自同步。曼徹斯特編碼特點是每傳輸一位數據都對應一次跳變,因而利于同步信號的提取,而且直流分量恒定不變。缺點是數據編碼后,脈沖頻率為數據傳輸速度的2倍。差分曼徹斯特碼(DifferentialManchester)的原理是每一位中間都有一個跳變,每位開始時有跳變表示“0”,無跳變表示“1”。位中間跳變表示時鐘,位前跳變表示數據。這種方式的優點是時鐘、數據分離,便于提取。
2曼徹斯特編解碼器的設計
可編程邏輯器件的出現為數字系統的設計帶來了很大的靈活性.而VHDL(VHSICHardwareDescriptionLanguage)是一種功能強大的硬件設計語言,可用簡潔的代碼來進行復雜控制邏輯的設計。為此,本文采用VHDL語言來對曼徹斯特編解碼器進行描述,并用Active-HDL進行編譯,最后用Synplify進行綜合。
2.1解碼
根據曼徹斯特碼的特點,可將該碼的解碼過程分成三部分:一是啟動解碼時鐘,即通過檢測一個數據跳變沿來使能時鐘。二是對曼徹斯特碼形式的數據進行解碼。三是將串行數據轉換成并行數據。解碼器的邏輯框圖如圖3所示。
該邏輯可南進程實現。輸人的時鐘為clkl6x的時鐘,串行的曼徹斯特碼的數據與單倍的時鐘相對應。首先,串行的曼碼由clk16x的時鐘采樣,之后再將采樣到的數據先后存放在兩個寄存器中,當兩個寄存器中的值不一致時,即開始解碼過程,從而完成檢測數據變化的進程。分頻計數進程用來產生clklx,并用分頻計數的結果來實現1/4和3/4點的采樣。根據曼徹斯特碼的性質,對1/4和3/4點采樣可以準確的恢復成NRZ碼。此后在clklx的驅動下,控制字計數器開始計數,直到8個clklx之后,計數器歸零。解碼進程則在clkl6x的驅動下,對1/4和3/4采樣點的數據進行解碼,從而得到曼碼相對應的NRZ碼。緊接著將解碼得到的每一位NRZ碼移入8位的移位寄存器,當控制字寄存器計到8時(即8位移位寄存器溢出的時候),再將8位NRZ碼一起輸出到數據寄存器,最后輸出數據寄存器中被解碼好的NRZ碼。
圖4所示是采用該設計的曼徹斯特碼的時序仿真波形,clkl6x采用16MHz的時鐘,mdi為輸入的曼碼(10101100)。最后輸出dout為十六進制AC,這說明該解碼過程是正確的。
<