跳轉至內容

電子學/解碼器和編碼器

來自華夏公益教科書

編碼器

[編輯 | 編輯原始碼]

編碼器是一種對資料進行操作以對其進行轉換的裝置,使資料獲得一些新的特性。這些特性可以從長度縮減到包含糾錯特性,再到使用安全措施。在最基本的層面上,編碼器可用於減小資料大小。考慮以下框圖

      ____
A ---|    |
B ---|    |-- X
C ---|    |-- Y
     |____|


如果在 ABCD 中,任何時候只有一個是高電平,那麼我們只能有以下輸入可能性:000、001、010、100。因此,我們可以以這樣的方式設計編碼器的內部電路,當它看到 000 時,它輸出 00,當它看到 001 時,它輸出 01,當它看到 010 時,它輸出 10,當它看到 100 時,它輸出 11


    __________
---| 000 | 00 |
---|-----|----|
---| 001 | 01 |
---|-----|----|
---| 010 | 10 |
---|-----|----|
---| 100 | 11 |
---|_____|____|


因此,我們有效地減小了資料的大小,這是透過利用輸入的所有可能組合永遠不會出現在輸入端這一事實實現的。

編碼器的內部電路可以透過使用真值表輕鬆推匯出來


    _____________________
---| A | B | C ||| X | Y |
---| 0 | 0 | 0 ||| 0 | 0 |
---| 0 | 0 | 1 ||| 0 | 1 |
---| 0 | 1 | 0 ||| 1 | 0 | 
---| 1 | 0 | 0 ||| 1 | 1 |
---|___|___|___|||___|___|


顯然 X = A + B 且 Y = A + C

因此,電路圖可以是

A ----------[ OR ]----------X
    |   B---[ OR ]
    |
    |-------[ OR ]----------Y
        C---[ OR ]

此方案可以擴充套件到 n 個輸入。

這是一個非常基本的編碼器,它只能在單條線處於高電平時對資料進行操作。可能存在多條線處於高電平,在這種情況下,可以使用優先編碼器,它根據優先順序分配輸出,即如果兩條線處於高電平,例如前面的示例中的 A 和 C,那麼優先編碼器將根據設計者的先驗決策,決定將輸出分配給 C 或 A,從而賦予其更高的優先順序。

在某些情況下,我們不希望優先編碼,而是希望在遇到多個訊號時,也為該特定組合建立一個新程式碼,並且仍然能夠在大小上進行一些縮減。

在其他情況下,我們可能希望以允許接收器檢測傳輸過程中可能出現的任何錯誤的方式修改傳入程式碼。這些主題將在相應的主題中詳細闡述。

華夏公益教科書