Hengstler為您分享格雷碼編碼器的編碼美學(xué)
Hengstler編碼器是一種測(cè)量角度(或直線(xiàn)長(zhǎng)度)的傳感器,它將需要測(cè)量的角度(或直線(xiàn)長(zhǎng)度)預(yù)先在傳感器內(nèi)部編碼,并以數(shù)字編碼的方式向外發(fā)送傳感器測(cè)量的數(shù)據(jù)。其中,格雷碼就是其最常用的編碼方式。
格雷碼(Gray Code)因1953年公開(kāi)的弗蘭克.格雷的專(zhuān)利而得名。
格雷碼是二進(jìn)制循環(huán)碼,其編碼最大的特點(diǎn)是任意上下相鄰的兩個(gè)碼值間,只有一位碼不同,這樣在碼值上下變化過(guò)程中,每次只改變一位碼,從而傳輸、讀數(shù)的錯(cuò)碼率最小。格雷碼還是循環(huán)碼,其最大碼到最小碼同樣遵循只改變一位碼的編碼原則,因而形成循環(huán)碼。
每次只變一位的唯一性、循環(huán)性、圖案化編碼對(duì)稱(chēng)性是格雷碼的編碼原則,它的圖案化編碼形式猶如小孩子搭積木來(lái)搭建金字塔般簡(jiǎn)單,而又優(yōu)美。
以下是以4位代碼為例,對(duì)比格雷碼與純二進(jìn)制碼:
(1)每次只變化一位,例如在7到8之間,純二進(jìn)制(0111到1000)4位都發(fā)生了碼值的變化,格雷碼(0100到1100)僅最高位碼值變化。
(2)循環(huán)碼,最大碼15與最小碼0的格雷碼只有一位最高位碼值的不同(1000到0000)。
(3)圖案化編碼金字塔對(duì)稱(chēng),最低位從1(2的0次)開(kāi)始向大變化,連續(xù)兩個(gè)1再連續(xù)兩個(gè)0,再兩個(gè)1;第二低位從2(2的1次)開(kāi)始向大變化,連續(xù)四個(gè)1,再連續(xù)四個(gè)0;第三低位從4(2的2次)開(kāi)始,連續(xù)8個(gè)1,再8個(gè)0;第四低位從8(2的3次)開(kāi)始,連續(xù)16個(gè)1,再16個(gè)0......如果橫過(guò)來(lái)看,像積木搭金字塔型圖案,依此規(guī)律方法,即使小學(xué)生都可隨手寫(xiě)出更多位數(shù)的格雷碼編碼。
格雷碼這樣圖案化編碼的好處:
(1)同步性多位數(shù)讀碼容錯(cuò)寬度最大。
由于格雷碼兩個(gè)相鄰碼值變化時(shí)每次只變一位,那么在多碼道位數(shù)同時(shí)讀取(例如光學(xué)碼盤(pán))、輸出(例如多芯電纜的并行輸出)、以及后續(xù)設(shè)備的多位數(shù)的接收,在數(shù)值增加或減少時(shí),編碼與同步讀取的誤差最小。多位數(shù)的數(shù)據(jù)刷新是不可能做到完全同步的(由于物理位置精度的原因,以及時(shí)間精度瞬間有先后),格雷碼因只有一位的變化,而可以“從容”分辨出這僅一位的變化,其余的沒(méi)有改變,沒(méi)有同步性偏差。而如果是純二進(jìn)制碼,有多個(gè)數(shù)據(jù)改變了,這些刷新改變的數(shù)據(jù)讀取會(huì)有同步性上的先后,就有可能有些已經(jīng)讀到刷新后的數(shù)據(jù),有些還沒(méi)有讀到刷新后的數(shù)據(jù),這樣就會(huì)亂碼,例如表1內(nèi)的7到8,純二進(jìn)制有多個(gè)位0和1發(fā)生改變,如果有一位還停留在刷新前的,如第二位,那么讀到的就不是8(1000),而是10(1010)了。而格雷碼由于每次只改變一位,因?yàn)榫椭挥幸晃辉谒⑿拢筒淮嬖谒⑿孪群蟮膯?wèn)題,也就不會(huì)發(fā)生錯(cuò)碼了。
(2)制作時(shí)容錯(cuò)寬度最大,格雷碼編碼的刻線(xiàn)寬度大,一條刻線(xiàn)容下了兩個(gè)碼值,一個(gè)刻線(xiàn)周期容下了4個(gè)碼值。
例如上圖一個(gè)5位格雷碼32個(gè)分辨位置,最密的刻線(xiàn)碼道僅需8個(gè)刻線(xiàn),寬度比純二進(jìn)制碼寬一倍。同時(shí),由于相鄰兩個(gè)格雷碼只有一位的變化,刻線(xiàn)位置的誤差寬度可達(dá)±1/2碼而不會(huì)發(fā)生錯(cuò)碼。這對(duì)于碼盤(pán)的加工以及讀取傳感器的安裝精度要求大大放寬,便于制作出在同樣尺寸下更高分辨率的編碼器。
(3)編碼與刻線(xiàn)有規(guī)律的圖案化排列。
格雷碼以搭寶塔積木似的編碼刻線(xiàn),對(duì)于碼盤(pán)設(shè)計(jì)極為的方便,也便于布排各個(gè)碼道的傳感器讀取頭。
(4)循環(huán)碼,便于多周期的旋轉(zhuǎn)循環(huán)而不會(huì)發(fā)生錯(cuò)碼。
格雷碼的最高兩位是特別的,在一個(gè)循環(huán)周期里面,最高兩位的刻線(xiàn)寬度是一樣的,而位置錯(cuò)開(kāi)了1/4周期,格雷碼最高位的變化是在整個(gè)格雷碼編碼測(cè)量周期的中點(diǎn)和起始點(diǎn)。也就是在周期的1/2(180度相位)時(shí),僅有最高位的碼值從0到1,而在周期的終點(diǎn)循環(huán)到起始點(diǎn),也僅有最高位的碼值從1到0,其間的變化不會(huì)發(fā)生錯(cuò)碼。
(5)增量型編碼器的AB相編碼,也就是利用了格雷碼最高2位為循環(huán)編碼不易錯(cuò)碼,并上述各項(xiàng)格雷碼與刻線(xiàn)的優(yōu)點(diǎn)。
這樣的編碼可以分辨出進(jìn)位與退位(編碼器旋轉(zhuǎn)的正轉(zhuǎn)于反轉(zhuǎn)),可以每個(gè)周期的2位格雷碼編碼的4個(gè)位置(四倍頻),可以有刻線(xiàn)與讀取的最大限度的容錯(cuò)。
例如一個(gè)光學(xué)增量型Hengstler編碼器,通過(guò)傳感器內(nèi)的光學(xué)碼盤(pán),分割有很多個(gè)分割刻線(xiàn),通過(guò)度取刻線(xiàn)通與暗的規(guī)律,輸出每圈的脈沖數(shù)(PPR)對(duì)一個(gè)360度圓周分割,也稱(chēng)為分辨率。每個(gè)脈沖周期的變化代表了一定角度變化,這樣預(yù)先分割角度到每個(gè)周期并讀取計(jì)數(shù)周期變化的方式為“增量編碼”,增量編碼器輸出一般是A、B、Z三相信號(hào),A和B的編碼按格雷碼一個(gè)周期內(nèi)循環(huán)碼最高2位的位置編排,輸出相差1/4個(gè)周期的A和B,正轉(zhuǎn)(進(jìn)位)是1/4相差,而反轉(zhuǎn)(退位)是3/4相差,以此可以判斷編碼器的正反轉(zhuǎn);另外一個(gè)信號(hào)Z相是每圈僅提供一個(gè)位置脈沖,以此可以設(shè)定零位值。
(6)絕對(duì)值編碼器的N位數(shù)編碼,也就是利用了格雷碼多碼道同步讀取時(shí)錯(cuò)碼率最小,以及便于碼盤(pán)設(shè)計(jì)、刻線(xiàn)以及傳感器安裝的寬容度最大。并行信號(hào)輸出的格雷碼,也便于后續(xù)設(shè)備讀取變化時(shí)錯(cuò)碼率最低。用格雷碼制作絕對(duì)值碼盤(pán),物理制作最簡(jiǎn)單經(jīng)濟(jì),同時(shí)又達(dá)到最大的寬容度容錯(cuò)性。
較易錯(cuò)誤的純二進(jìn)制編碼碼盤(pán)
格雷碼編碼的碼盤(pán),制作寬容度與容錯(cuò)性最佳。
絕對(duì)值編碼的Hengstler編碼器內(nèi)部碼盤(pán)已對(duì)應(yīng)有整個(gè)測(cè)量行程預(yù)先有N位的大數(shù)據(jù)編碼,在整個(gè)規(guī)定的測(cè)量行程中每一個(gè)位置都是唯一性的編碼,與時(shí)間軸無(wú)關(guān),任何時(shí)間讀取或者不讀取都可以根據(jù)數(shù)據(jù)下游指令,可直接一次輸出與時(shí)間軸無(wú)關(guān)的編碼大數(shù)據(jù)。在360度以?xún)?nèi)的唯一編碼的為單圈絕對(duì)值
亨士樂(lè)編碼器,超出360度有更多圈數(shù)量程的唯一編碼的為絕對(duì)值多圈亨士樂(lè)編碼器。
格雷碼對(duì)純二進(jìn)制的解碼,以下表規(guī)律解碼:
解碼過(guò)程:以“0”和格雷碼的最高位以上表方法比較,結(jié)果保留在(純二進(jìn)制碼)最高位,再以此結(jié)果與格雷碼的第二高位比較,結(jié)果保留在(純二進(jìn)制碼)第二高位;再以剛得到的值與第三高位比較,結(jié)果保留在(純二進(jìn)制碼)第三高位......以此類(lèi)推,直到最低位。
例如自然數(shù)14,格雷碼為1001,向純二進(jìn)制碼解碼,最高位比較值(0與1)結(jié)果為1,第二高位比較(1與0),結(jié)果為1;第三高位比較(1與0),結(jié)果為1;最低位比較(1與1),結(jié)果為0,得到純二進(jìn)制代碼1110。
格雷碼的讀?。河捎诟窭状a是循環(huán)碼,在讀碼時(shí)要確認(rèn)多少位,一次完整地從高位向低位讀取,而不能因?yàn)橹桓淖兊臀?,就僅僅只讀低位而不讀高位。
格雷碼有規(guī)律的積木式編碼方式,可以節(jié)省位數(shù)的解碼。Hengstler編碼器在快速旋轉(zhuǎn)中當(dāng)需要快速讀取碼值而放棄了高分辨率的最后幾位,僅讀取高位,可大膽放棄最后幾位的格雷碼向二進(jìn)制碼的解碼----格雷碼的解碼是從高位開(kāi)始的,例如原先一個(gè)13位的格雷碼編碼,當(dāng)放棄最后最后3位后可以成為一個(gè)10位的格雷碼編碼。
故事:國(guó)王的紅酒,簡(jiǎn)單圖案化的格雷碼編碼。
B. 找十個(gè)死囚犯,從低位到高位編號(hào),輪到各自位數(shù)有記號(hào)的逢1便嘗酒。如果有囚犯中毒,即可根據(jù)格雷碼的編排圖案化規(guī)律而找到了那瓶毒酒。
C. 半天后,有可能有死囚會(huì)死去,那樣就有了毒酒的格雷碼編碼數(shù)。究竟有多少個(gè)死囚會(huì)被毒死?那要看這個(gè)毒酒的編號(hào)里有幾個(gè)“1”,也就是“嘗”到的有幾個(gè)囚犯。根據(jù)幾個(gè)死囚死去的位置編號(hào),就能找到那瓶毒酒。
這是我編的一個(gè)故事,各位記住格雷碼了嗎?當(dāng)然,你就不用試毒酒就可以記住它的編碼圖案規(guī)律了。
每次只改變一位,帶來(lái)最經(jīng)濟(jì)的物理制作、讀取與解碼,最大的容錯(cuò)性,格雷碼是如此簡(jiǎn)單而又優(yōu)美,搭建起編碼器數(shù)學(xué)編碼的基礎(chǔ)。
了解更多編碼器相關(guān)知識(shí),敬請(qǐng)關(guān)注亨士樂(lè)編碼器國(guó)內(nèi)正規(guī)授權(quán)代理西安德伍拓自動(dòng)化傳動(dòng)系統(tǒng)有限公司網(wǎng)站。公司技術(shù)團(tuán)隊(duì)為您免費(fèi)提供
Hengstler編碼器的選型、安裝、調(diào)試、保養(yǎng)等技術(shù)指導(dǎo)服務(wù),盡量避免企業(yè)因?yàn)榫幋a器技術(shù)人員的短缺帶來(lái)的損失,采取拉線(xiàn)上+拉線(xiàn)下服務(wù)的服務(wù)形式,幫助企業(yè)解決技術(shù)難題。