專利名稱:模擬至數(shù)字轉(zhuǎn)換器的錯誤更正編碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種編碼器,特別是涉及一種用于模擬至數(shù)字轉(zhuǎn)換器的錯誤更正編碼器。
背景技術(shù):
請參考圖1,圖1為溫度計(jì)碼(thermometer)、N取1碼(one-of-N)、格雷碼(gray)、二進(jìn)制碼(binary)以及十進(jìn)制碼(decimal)的對照表。圖1中顯示十進(jìn)制數(shù)字0-15的各種編碼的表示方法,其中二進(jìn)制碼使用4位來表示,溫度計(jì)碼使用24-1位來表示,而十進(jìn)制的數(shù)字就代表在溫度碼中出現(xiàn)1的次數(shù),N取1碼則使用24位來表示,每個N取1碼中只會出現(xiàn)一個1,由1所在的位權(quán)重(weight)來決定這個N取1碼的大小,格雷碼也是使用4位來表示,其與二進(jìn)制碼最大的不同在于格雷碼相鄰的兩個數(shù)字都只有一位不同。在已知模擬至數(shù)字轉(zhuǎn)換器的結(jié)構(gòu)中,通常是先使用一模擬比較器將模擬訊號轉(zhuǎn)換成一溫度計(jì)碼,接著再使用一邏輯邊界檢測器來將該溫度計(jì)碼轉(zhuǎn)換成一N取1碼,最后使用一編碼器將該N取1碼轉(zhuǎn)換成一二進(jìn)制碼。
請參考圖2,圖2為已知模擬至數(shù)字轉(zhuǎn)換器10的示意圖。模擬至數(shù)字轉(zhuǎn)換器包含一模擬比較器12、一邏輯邊界檢測器14以及一二進(jìn)制編碼器16。模擬比較器12用來將VRH及VRL之間的模擬訊號與一參考電壓VR作比較而輸出由0或1所組成的一數(shù)字訊號,該數(shù)字訊號就該模擬訊號的溫度計(jì)碼。邏輯邊界檢測器14連接于模擬比較器12之后,用來檢測模擬比較器12所輸出的溫度計(jì)碼中0與1的交界處,以將溫度計(jì)碼轉(zhuǎn)成N取1碼。二進(jìn)制編碼器16連接于邏輯邊界檢測器14之后,用來將邏輯邊界檢測器14所輸出的N取1碼轉(zhuǎn)換成二進(jìn)制碼。圖2中所示的模擬至數(shù)字轉(zhuǎn)換器10可以將模擬訊號轉(zhuǎn)換成b0、b1、b2及b3四位所表示的二進(jìn)制碼,也就是十進(jìn)制數(shù)字0-15。舉例來說,一電壓經(jīng)過模擬比較器12后所輸出的溫度計(jì)碼為“000000011111111”,接著邏輯邊界檢測器14就會檢測該溫度計(jì)碼中0與1的交界處,而輸出N取1碼“0000000100000000”,最后二進(jìn)制編碼器16則依據(jù)N取1碼得到二進(jìn)制碼“1000”。然而不幸的是氣泡錯誤(bubble error)常常會伴隨著溫度計(jì)碼出現(xiàn),氣泡錯誤最可能發(fā)生在模擬比較器12的輸出端,而使得溫度計(jì)碼中一個以上的邏輯值反向,造成之后的邏輯邊界檢測器14檢測出包含超過一個1以上的N取1碼,使得二進(jìn)制編碼器16轉(zhuǎn)換出錯誤的二進(jìn)制碼。在上例中,如果發(fā)生氣泡錯誤,使得模擬比較器12所輸出的溫度計(jì)碼變成“000000010111111”,則邏輯邊界檢測器14檢測出的N取1碼為“0000000101000000”,由二進(jìn)制編碼器16轉(zhuǎn)換的二進(jìn)制碼為“1110”,也就是原本應(yīng)轉(zhuǎn)換成十進(jìn)制碼“8”的模擬訊號,因?yàn)闅馀蒎e誤的發(fā)生而使得訊號被轉(zhuǎn)換成“14”。
請參考圖3,圖3為已知使用格雷碼的模擬至數(shù)字轉(zhuǎn)換器20的結(jié)構(gòu)方塊圖。模擬至數(shù)字轉(zhuǎn)換器20包含一模擬比較器22、一邏輯邊界檢測器24、一格雷碼編碼器26以及一第二編碼器28。為了使氣泡錯誤所造成的誤差減小,模擬至數(shù)字轉(zhuǎn)換器20使用格雷碼編碼器26將邏輯邊界檢測器24所輸出的N取1碼先轉(zhuǎn)換成格雷碼,再以第二編碼器28將格雷碼轉(zhuǎn)換成二進(jìn)制碼,利用格雷碼相鄰的兩個數(shù)字都只有一位不同的特性來減小氣泡錯誤所造成的誤差。在上例中,若先將發(fā)生氣泡錯誤的N取1碼“0000000101000000”轉(zhuǎn)換成格雷碼“1101”,再轉(zhuǎn)換成二進(jìn)制碼“1001”,對照十進(jìn)制碼為“9”,則相較于圖2中的模擬至數(shù)字轉(zhuǎn)換器10直接將N取1碼轉(zhuǎn)換成二進(jìn)制碼所得到的結(jié)果,使用格雷碼的模擬至數(shù)字轉(zhuǎn)換器20可以減小許多氣泡錯誤所造成的誤差。
由上述可知,氣泡錯誤會造成訊號轉(zhuǎn)換上很大的誤差,然而已知的模擬至數(shù)字轉(zhuǎn)換器10在將模擬訊號轉(zhuǎn)換為溫度計(jì)碼時卻又很難避免不發(fā)生氣泡錯誤,當(dāng)氣泡錯誤發(fā)生時,若由溫度計(jì)碼所轉(zhuǎn)換的N取1碼直接轉(zhuǎn)換成二進(jìn)制碼,則會產(chǎn)生非常大的誤差,雖然模擬至數(shù)字轉(zhuǎn)換器20會利用格雷碼的特性,先將N取1碼轉(zhuǎn)換成格雷碼,但即使是使用格雷碼也只是能減小誤差,并沒有針對氣泡錯誤來作更正,使得模擬至數(shù)字轉(zhuǎn)換器20的整體效能仍無法提升。
其他相關(guān)的技術(shù)可以參考美國專利6,433,725、美國專利4,958,157、美國專利6,034,630、美國專利5,644,312、美國專利6,388,602、美國專利6,298,459、美國專利6,396,424。
發(fā)明內(nèi)容
因此本發(fā)明的主要目的是提供一模擬至數(shù)字轉(zhuǎn)換器的錯誤更正編碼器,以解決上述問題。
為了實(shí)現(xiàn)本發(fā)明的目的,提供了一種編碼器,用來轉(zhuǎn)換溫度計(jì)碼,該編碼器包含一第一級電路、一第二級電路以及一第三級電路。該第一級電路用來將溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”。該第二級電路連接于該第一級電路,用來依據(jù)該第一級電路輸出的溫度計(jì)碼含有“000111”、“001011”或“011001”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。該第三級電路連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
圖1為溫度計(jì)碼、N取1碼、格雷碼、二進(jìn)制碼以及十進(jìn)制碼的對照表;圖2為已知模擬至數(shù)字轉(zhuǎn)換器的示意圖;圖3為已知使用格雷碼的模擬至數(shù)字轉(zhuǎn)換器的結(jié)構(gòu)方塊圖;圖4為本發(fā)明溫度計(jì)碼編碼器的結(jié)構(gòu)方塊圖;和圖5為本發(fā)明更正的氣泡錯誤模式的示意圖。
附圖標(biāo)記說明10 已知模擬至數(shù)字轉(zhuǎn)換器12 模擬比較器 14 邏輯邊界檢測器16 二進(jìn)制編碼器20 已知模擬至數(shù)字轉(zhuǎn)換器22 模擬比較器 24 邏輯邊界檢測器26 格雷碼編碼器 28 第二編碼器30 本發(fā)明溫度計(jì)碼編碼器32 第一級電路 34 第二級電路36 第三級電路 38 第一邊界檢測器
40 第二邊界檢測器 42 第三邊界檢測器具體實(shí)施方式
請參考圖4,圖4為本發(fā)明溫度計(jì)碼編碼器30的結(jié)構(gòu)方塊圖。在模擬至數(shù)字轉(zhuǎn)換器的結(jié)構(gòu)中,溫度計(jì)編碼器30用來將溫度計(jì)碼轉(zhuǎn)換成二進(jìn)制碼。隨著CMOS及數(shù)字綜合技術(shù)的發(fā)展,實(shí)現(xiàn)復(fù)雜的邏輯電路已經(jīng)不需要很高的成本,因此本發(fā)明溫度計(jì)碼編碼器30使用數(shù)字邏輯的方式來設(shè)計(jì),以將溫度計(jì)碼編碼器30實(shí)現(xiàn)于芯片之中,使得溫度計(jì)碼編碼器30可以更正錯誤,得到較好的編碼結(jié)果。如圖4所示,溫度計(jì)碼編碼器30包含一第一級電路32、一第二級電路34以及一第三級電路36。第一級電路32用來接收由模擬比較器所輸出的一溫度計(jì)碼X,并且濾除溫度計(jì)碼X中含有分離的單氣泡錯誤(single bubble error),也就是將溫度計(jì)碼X中含有“00100”的位流轉(zhuǎn)換為“00000”,以及將溫度計(jì)碼X中含有“11011”的位流轉(zhuǎn)換為“11111”。溫度計(jì)碼X經(jīng)由第一級電路32更正錯誤后輸出一溫度計(jì)碼A。第二級電路34接收溫度計(jì)碼A作為輸入,其功能為邊界檢測,包含了三個并列的邊界檢測器38、40、42以及一或電路(or circuit)44,每一個邊界檢測器用來檢測不同的“01”轉(zhuǎn)換位流(bit stream)。第一邊界檢測器38檢測溫度計(jì)碼A中是否含有“000111”的位流,如果溫度計(jì)碼A中有符合的位流,則輸出一N取1碼B1,如果沒有符合的位流則N取1碼B1的所有位皆為0。第二邊界檢測器40檢測溫度計(jì)碼A中是否含有“001011”的位流,如果溫度計(jì)碼A中有符合的位流,則輸出一N取1碼B2,如果沒有符合的位流則N取1碼B2的所有位皆為0,第三邊界檢測器42檢測溫度計(jì)碼A中是否含有“011001”的位流,如果溫度計(jì)碼A中有符合的位流,則輸出一N取1碼B3,如果沒有符合的位流則N取1碼B3的所有位皆為0。溫度計(jì)碼A中僅含有“000111”、“001011”或“011001”其中一種,所以溫度計(jì)碼A經(jīng)過第一、二及三邊界檢測器38、40、42所輸出的N取1碼B1、B2及B3再經(jīng)由或電路44得到一理想的N取1碼B。第三級電路36接收第二級電路34所輸出的N取1碼B將其轉(zhuǎn)換成一二進(jìn)制Y作為輸出。此外,若是溫度計(jì)碼A為反向,也就是如圖1中所示的溫度計(jì)碼0與1互換,則第二級電路34會檢測溫度計(jì)碼A中含有“111000”、“110100”或“100110”的位流。
本發(fā)明溫度計(jì)編碼器30的各級電路的邏輯表示法說明如下。第一級電路32中,A(n)表示溫度計(jì)碼A在第n位所代表的值,X(n+1)則表示溫度計(jì)碼X在第n+1位所代表的值,其余的類推,則A(n)={X(n)or[X(n-2)and X(n-1)and X(n+1)and X(n+2)]}and{X(n-1)or X(n-2)or X(n+1)or X(n+2)}由上述的式子可知,若X(n-2)、X(n-1)、X(n+1)及X(n+2)皆為“0”,則A(n)為“0”,也就是在溫度計(jì)碼X只要出現(xiàn)“00100”,在第一級電路32轉(zhuǎn)換后的溫度計(jì)碼A中就變成“00000”。同樣地,若X(n-2)、X(n-1)、X(n+1)及X(n+2)皆為“1”,則A(n)為“1”,也就是在溫度計(jì)碼X只要出現(xiàn)“11011”,在第一級電路32轉(zhuǎn)換后的溫度計(jì)碼A中就變成“11111”。第二級電路34中{B1(n)=“1”if[A(n+3),A(n+2),A(n+1),A(n),A(n-1),A(n-2)]=“000111”,B1(n)=“0”otherwise}{B2(n)=“1”if[A(n+3),A(n+2),A(n+1),A(n),A(n-1),A(n-2)]=“001011”,B2(n)=“0”otherwise}{B3(n)=“1”if[A(n+3),A(n+2),A(n+1),A(n),A(n-1),A(n-2)]=“011001”,B3(n)=“0”otherwise}B(n)=B1(n)or B2(n)or B3(n)由上述的式子可知,第二級電路34會對輸入的溫度計(jì)碼A中的每一個位作檢測,以找出位流中符合“000111”、“001011”或“011001”其中的一種情形。
請參考圖5,圖5為本發(fā)明更正的氣泡錯誤模式的示意圖。圖5中列舉出數(shù)個含有錯誤的溫度計(jì)碼模式來說明本發(fā)明溫度計(jì)編碼器30如何更正模式中所含有的錯誤。模式a為正確的溫度計(jì)碼模式,模式b至模式m則是含有錯誤的溫度計(jì)碼模式。模式a經(jīng)過溫度計(jì)編碼器30的第一級電路32及第二級電路34后,輸出的N取1碼B為“0000000010000000”,再經(jīng)過第三級電路36轉(zhuǎn)成二進(jìn)制碼“0111”。模式b至模式d皆有“00100”的情況發(fā)生,經(jīng)過第一級電路32后就會被修正為“00000”,接著進(jìn)入第二級電路34,由第一邊界檢測器38檢測出“000111”的位置輸出N取1碼的“1”。同樣地,模式e至模式g皆有“11011”的情況發(fā)生,經(jīng)過溫度計(jì)編碼器的第一級電路32后就會被修正為“11111”,接著進(jìn)入第二級電路34,由第一邊界檢測器38檢測出“000111”的位置輸出N取1碼的“1”。模式h至模式m中由于含有雙氣泡錯誤(double bubble errors),溫度計(jì)編碼器30的第一級電路38并無法檢測并修正雙氣泡錯誤,所以模式h至模式m在第一級電路32的輸出值與輸入值是相同的。模式h至模式m在進(jìn)入第二級電路34后,模式h至模式k由第一邊界檢測器38檢測出“000111”的位置輸出N取1碼的“1”,而忽略了模式h至模式k中所含的雙氣泡錯誤,模式1由第二邊界檢測器40檢測出“001011”的位置輸出N取1碼的“1”,模式m由第三邊界檢測器42檢測出“011001”的位置輸出N取1碼的“1”。含有錯誤的溫度計(jì)碼模式b至模式m在經(jīng)過溫度計(jì)編碼器碼30的三級電路后,皆被編碼為與模式a相同的二進(jìn)制碼“0111”。
相較于已知技術(shù),本發(fā)明提供一種用于模擬至數(shù)字轉(zhuǎn)換器中的溫度計(jì)編碼器,溫度計(jì)編碼器可以更正由模擬訊號轉(zhuǎn)換成溫度計(jì)碼時所產(chǎn)生的氣泡錯誤。已知技術(shù)中僅例用格雷碼的特性來減小發(fā)生氣泡錯誤時所產(chǎn)生的誤差,并沒有更正錯誤,而本發(fā)明的溫度計(jì)編碼器則針對氣泡錯誤來作更正,提升模擬至數(shù)字轉(zhuǎn)換器的效能。溫度計(jì)編碼器先使用第一級電路將所輸入的溫度計(jì)碼中最可能為錯誤的部分如“00100”及“11011”濾除,并更正為“00000”及“11111”,再以第二級電路來判斷溫度計(jì)碼“01”的轉(zhuǎn)換位置,第二級電路包含了“000111”、“001011”以及“011001”三種邊界檢測器,而通過第一級電路及第二級電路可以更正絕大部分在溫度計(jì)碼所產(chǎn)生的氣泡錯誤,使得溫度計(jì)編碼器能更精準(zhǔn)的轉(zhuǎn)換出理想的N取1碼,最后使用第三級電路直接將該N取1碼轉(zhuǎn)換成二進(jìn)制碼。
以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。
權(quán)利要求
1.一種編碼器,用來轉(zhuǎn)換溫度計(jì)碼,該編碼器包含一第一級電路,用來將溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”;一第二級電路,連接于該第一級電路,用來依據(jù)該第一級電路輸出的溫度計(jì)碼含有“000111”、“001011”或“011001”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。
2.如權(quán)利要求1所述的編碼器,其還包含一第三級電路,連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
3.如權(quán)利要求1所述的編碼器,其還包含一第三級電路,連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為格雷碼。
4.如權(quán)利要求1所述的編碼器,其連接于一模擬/數(shù)字轉(zhuǎn)換器,用來輸入該溫度計(jì)碼。
5.如權(quán)利要求1所述的編碼器,其形成于一芯片內(nèi)。
6.一種轉(zhuǎn)換溫度計(jì)碼的方法,其包含下列步驟(a)提供一第一級電路以及一第二級電路;(b)使用該第一級電路將該溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將該溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”;以及(c)在執(zhí)行步驟(b)后,使用該第二級電路依據(jù)該溫度計(jì)碼含有“000111”、“001011”或“011001”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。
7.如權(quán)利要求6所述的方法,其還包含提供一第三級電路。
8.如權(quán)利要求6所述的方法,其還包含使用該第三級電路將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
9.如權(quán)利要求6所述的方法,其還包含使用該第三級電路將該N取1碼轉(zhuǎn)換為格雷碼。
10.如權(quán)利要求6所述的方法,其中該溫度計(jì)碼是由一模擬/數(shù)字轉(zhuǎn)換器輸入。
11.一種可實(shí)施權(quán)利要求6的方法的芯片。
12.一種編碼器,用來轉(zhuǎn)換溫度計(jì)碼,該編碼器包含一第一級電路,用來將溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”;一第二級電路,連接于該第一級電路,用來依據(jù)該第一級電路輸出的溫度計(jì)碼含有“111000”、“110100”或“100110”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。
13.如權(quán)利要求12所述的編碼器,其還包含一第三級電路,連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
14.如權(quán)利要求12所述的編碼器,其還包含一第三級電路,連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為格雷碼。
15.如權(quán)利要求12所述的編碼器,其連接于一模擬/數(shù)字轉(zhuǎn)換器,用來輸入該溫度計(jì)碼。
16.如權(quán)利要求12所述的編碼器,其形成于一芯片內(nèi)。
17.一種轉(zhuǎn)換溫度計(jì)碼的方法,其包含下列步驟(a)提供一第一級電路以及一第二級電路;(b)使用該第一級電路將該溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將該溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”;以及(c)在執(zhí)行步驟(b)后,使用該第二級電路依據(jù)該溫度計(jì)碼含有“111000”、“110100”或“100110”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。
18.如權(quán)利要求17所述的方法,其還包含提供一第三級電路。
19.如權(quán)利要求17所述的方法,其還包含使用該第三級電路將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
20.如權(quán)利要求17所述的方法,其還包含使用該第三級電路將該N取1碼轉(zhuǎn)換為格雷碼。
21.如權(quán)利要求17所述的方法,其中該溫度計(jì)碼是由一模擬/數(shù)字轉(zhuǎn)換器輸入。
22.一種可實(shí)施權(quán)利要求17的方法的芯片。
全文摘要
一種編碼器,用來轉(zhuǎn)換溫度計(jì)碼,該編碼器包含一第一級電路、一第二級電路以及一第三級電路。該第一級電路用來將溫度計(jì)碼中含有“00100”的位流轉(zhuǎn)換為“00000”及將溫度計(jì)碼中含有“11011”的位流轉(zhuǎn)換為“11111”。該第二級電路連接于該第一級電路,用來依據(jù)該第一級電路輸出的溫度計(jì)碼含有“000111”、“001011”或“011001”的位流的位置將該溫度計(jì)碼轉(zhuǎn)換為N取1碼。該第三級電路連接于該第二級電路,用來將該N取1碼轉(zhuǎn)換為二進(jìn)制碼。
文檔編號H03M13/00GK1567729SQ0314306
公開日2005年1月19日 申請日期2003年6月18日 優(yōu)先權(quán)日2003年6月18日
發(fā)明者黃克強(qiáng), 郭文諒, 葉有民, 廖偉豪 申請人:揚(yáng)智科技股份有限公司