題:
為什麼應答器數字的範圍是0到7,而不是0到9?
Hugo Woesthuis
2017-04-28 01:04:42 UTC
view on stackexchange narkive permalink

作為IVAO上的控制器,我有時會分配0168之類的代碼,後來發現該代碼無效。對我來說,範圍0-9似乎更合乎邏輯。為什麼我們必須使用八進制數字而不是十進制?

可能重複的內容:[為什麼應答器引入代碼而不使用飛機註冊號?](https://aviation.stackexchange.com/questions/30483/why-do-the-transponders-introduce-codes-instead-of-using -飛機註冊-n)
六 答案:
Lnafziger
2017-04-28 01:05:53 UTC
view on stackexchange narkive permalink

飛行員輸入的四位數應答器代碼是八進制數字而不是十進制數字,在八進制數字系統中,只有數字0-7是有效的。

p>

為什麼而言,內部實際上是一個12位二進制數,而八進制工作得很好,因為它可以用作一次“快捷方式”,用於一次輸入三個二進制數字的組(000-111,八進制為0-7)。

如果今天設計的話,由於具有附加的計算能力和軟件複雜性,即使使用十進制數也可以使用十進制數內部存儲為二進製文件,只是為了使其更加熟悉。但是,在創建系統時,更改轉盤將直接在硬件中設置代碼,然後進行轉換將變得更加複雜/困難/昂貴。

簡而言之,這對工程師來說很方便和製造商,對於最終用戶來說只是一個怪胎,所以他們就這樣離開了。

另外,即使現在可以使用十進制編碼,並且撥盤允許設置0000 ... 4095,您仍需要阻止設置4096 ... 4999(如果您不將第一個撥盤限制為9999,則應設置為9999 ... 4999)。 0 ... 4)。使用八進制撥盤,不能選擇超出有效範圍0000 ... 7777。
作為旁注;這與IPv4地址包含4個0-255數字(2 ^ 8個選項),MAC地址被記為一組十六進制對(00到FF的2 ^ 8個選項)的原因非常相同。兩者都使用是因為非常容易從二進制系統轉換為二進制系統。由於用戶不對此類地址進行任何數學運算,因此完全沒有缺點。
“如果今天設計的……”他們將使用24位十六進制代碼:)
@J.Hougaard不一定,正如Crowley在他的評論中提到的那樣,即使IP地址存儲為24位代碼,也通常用十進製表示... :)
@Lnafziger我指的是S模式
我想投票贊成這個答案,但它的值恰好是2 ^ 6,我無法破壞這個美麗的數字,也敢於有人投票贊成!
mins
2017-04-28 03:16:02 UTC
view on stackexchange narkive permalink

八進製表示是處理小二進制數字的一種廉價方法

模式A和C應答器使用一系列未調製的載波脈衝發送其ID,可以看出作為位序列。今天,此類應答器使用12個脈衝(模式 S應答器使用不同的24位地址):

enter image description here
sup>

脈衝分別標記為A4-A2-A1,B4-B2-B1,C4-C2-C1和D4-D2-D1(在傳輸)。它們包含在兩個成幀脈衝中,以實現收發器同步,中間還有一個附加脈衝X,今天始終為0,但在輝煌時期用作製造商的自定義數據(例如,向ATC報告位置

必須以​​某種方式告知應答器每個位的值。如今,將ID輸入為十進制數字(0到4095之間)已經不是問題,但是,當發明了應答器時,即便宜的可編程芯片問世之前的幾十年,可靠的轉換器就是昂貴的設備。

另一方面,使用開/關開關僅提供12個值不是一個選擇:

enter image description here
樣本小型開關, source sup>

很明顯,無論是在語音的ID傳輸期間還是在輸入ID時,錯誤都會很多。

處理位時,最廣泛使用的最簡單的解決方案是將它們分組,並將單個符號與組中的每個可能組合相關聯。

最好使用具有10個組合的組,我們已經有符號“ 0”到“ 9”代表它們。不幸的是,當將比特按2分組時,我們獲得的分組各有4種組合。如果我們按三位分組,則分組有8種組合。通過四個,這些組有16個組合,依此類推。

因為我們要處理以基數 2表示的數字,所以要使用的符號數始終是2的冪,而不是10的冪。因此,工程師當時沒有選擇,而不是忘記小數點並使用奇數個組合。例如,讓我們按2位分組,並使用希臘字母表示所需的4個符號:

enter image description here

我們將是糟糕的設計師(除了翻拍飛機!),但是您已經掌握了原理。為了使系統簡單,如果需要最多10個符號,可以使用十進制數字符號;如果需要更多,可以使用字母完整。當以八進制(3位的組)和十六進制半徑(4位的組)拼寫數字時,正是這樣做的。

如其他出色的答案所述,第一個應答器只有6位ID,所以八進制是明智的選擇,ID表示為2個八進制數字,例如“ 75”代表“ 111 101”。擴展ID長度後,八進制系統仍在使用。

如果您對八進制的使用方式感興趣,請在下面提供詳細信息。


技術規格:12位二進制數和4096個值

用於ID傳輸的應答器無線電信號由12個脈衝(模式A / C)組成,該脈衝可能較低或高,則允許4096( $ 2 ^ {\ small {12}} $ span>)組合。

由於脈衝只有兩種狀態,即低或高,我們可以將它們直接稱為0到4095之間的12位二進制數。讓我們用一些值進行說明:

enter image description here

我們可以在左側添加任意數量的0(例如具有12位),就像在十進制中一樣:25 = 025 = 00025。

二進制數的十進制和十六進製表示法

為方便起見,我們通常用一些等效項替換位組以減少所用符號的數量。通常使用3位和4位的組:

enter image description here

八進制:一組3位可以生成8個組合,我們可以輕鬆地用基數8中的單個數字替換該組以覆蓋這些組合。基數8被命名為“ 八進制”編號。

十六進制:類似地,一組4位會生成16個組合(該組合的組合數目是該組的兩倍) ,因為附加位的兩個值可以與所有3位組合相關聯,所以我們可以用基數16中的數字替換組的4位。這種系統稱為“ 十六進制 a” >”編號。

enter image description here

返回示例,用基數8和16中的等價位替換位組。

enter image description here

選擇要使用的基數

到目前為止,我們得到了什麼? 12位數字,按3或4分組,得到八進制值(0000到7777)和十六進制值(000到fff),這兩種表示形式都是相同的二進制數。

哪個更好在這種情況下,答案可以在其他出色的文章中找到:一開始只有6個脈衝分配給ID,從邏輯上講,它們按3個分組,八進制為

如果有7個脈衝,則可能會選擇十六進製表示形式,其值從00到7f。

從基數到機電開關 >

設計帶有8個八進制符號的車輪開關(拇指輪)很容易,它管理3個實際開關以生成3個開/關(低/高)電信號:

enter image description here
Source sup>

我們使用滾輪的角位置閉合或斷開三個觸點。有許多設計可以做到這一點,一種是使用刷子在帶有打印導電跡線的光盤上旋轉:

enter image description here
Source sup>

開關直接提供二進制組。通過組裝四個開關,我們可以為應答器提供“ squawk”代碼,即ID脈衝的二進製配置。

使用3個帶有4個觸點的十六進制輪子很容易。

為什麼不使用10個符號?

我們無法將二進制數的位分組為可以完全具有10個組合的組。此屬性僅限於2基數(4、8、16、32 ...)的冪

後來有可能通過引入集成電路(如存儲器)來輕鬆轉換十進制到二進制。 74S484就是這樣一種IC。它可以處理代表十進制值的兩個輸入(“ 二進制編碼的十進制”,BCD),並將它們轉換為純二進制。使用以下電路中的5個,將四位十進制數字(0至4095)的轉換器設計為:

enter image description here


如您所見,僅使用8個符號( $ 2 ^ {\ small {3}} $ span>)或16( $ 2 ^ {\ small {4}} $ span>),通常是2的冪。

以為我們也可以使用基於簡單布爾門(NAND)的邏輯是合理的,XOR ...)來管理從十進製到二進製而不是內存的轉換。乍一看,這並不明顯,但實際上需要大量的門。

為了使人信服,我只進行了一次練習(共12個練習),在4個小數點後的兩個小數位中。我刪除了練習的詳細信息,但可以在編輯歷史記錄中看到它們。結果是:

enter image description here

通過最小化可以將項數(因此,門數)減少到10。一兩個輪子。有時候,僅靠十進制數就不值得額外的困難,特別是在沒有IC的時候。

工程師多少? :)很好的解釋!
當您只需要一個簡單的鍵盤和一個微控制器時,為什麼現在要使用複雜的1970年代技術進行重新設計-兩者僅需10美元,而製造該博物館作品的零件至少需要50美元?假設您甚至可以採購零件-74S484芯片已經停產,儘管現在有更多的同類產品。
@alephzero:這是一個有教育意義的答案,它需要提供概念,而不是最新技術。順便說一句,“簡單的鍵盤和微控制器”比您在航空界想的要貴,您必須使它們通過認證。在這個世界上,您無法打電話給Apple告訴他們您有問題。
這比Lnafziger的答案好得多。
@TylerDurden我相信這取決於讀者的技術水平,這個答案對於技術水平更高的人(如我們)會更好,而我的答案更適合於技術水平較低的人。當我回答一個問題時,我會使用適合原始問題的複雜性,而他的問題的措辭似乎使他似乎不需要這種詳細程度。雖然對其他人來說是好消息,但我肯定會投票給這個答案,以感謝他投入的信息和努力! :)
mongo
2017-04-28 01:07:07 UTC
view on stackexchange narkive permalink

簡單的答案是,模式A或模式C應答器允許12位標識數據,而三位可以描述為八進制數字。因此,有四個八進制數字,範圍在0000和7777之間。

問題已更改,因此我在補充此答案。使用八進制數字作為應答器代碼的慣例可以追溯到應答器的較早實現,該應答器具有6位飛機識別數據。決定(我相信有些白襯衫的COTR)使用八進制數字。處理計算機時,八進製或十六進制比十進制容易。後來應答機的識別字段變為12位,並保持八進制約定。

補充:我記得一個應答器,在12位標準之前,它有6個撥動開關用於輸入代碼。開關的標記是三位一體,下面有4-2-1。在計算機普及之前,曾經有人推測數字的選擇而不是十六進制是隨著IFF和應答器技術的發展而考慮的。可以將VFR squawk代碼輸入為12,這將使最高有效1開關向上,而最低有效2開關向上。我記得次級雷達顯示出與1200相同,即使它來自沒有12位標準的應答器也是如此。 77,或者所有開關都用於緊急情況,而76和75分別映射到現代7700、7600和7500代碼。

Greg Bacon
2017-04-28 20:13:15 UTC
view on stackexchange narkive permalink

簡短答案

八進製或以8為底的中輸入短代碼,其中允許的數字為0到7,從而形成人機界面

背景

模式A和模式C兼容的轉發器使用12位身份或信標代碼。每位有兩個選項,高或低,總計為2 12 sup> == 4,096 representable ie ),適合12位)標識符,以10為基數,範圍從0到4,095,寫為4095 10 sub>。現在,並不是所有可表示的標識符都是 valid 。例如,7500 8 sub>是為特定情況而保留的,但這並不是電路所要擔心的。

恰好適合某些位數的數量不能整齊地排列十次方考慮一個假設的應答器,該應答器接受四個十進制數字0000至9999或10 4 sup> = 10,000個可能的輸入。飛行員比偽造的鯊魚更有可能對偽造的鯊魚進行干擾。現在,此“更簡單”的接口具有必須處理的錯誤條件:可表示和不可表示的輸入。如果飛行員將撥號盤鍵入或旋轉至4095以上,則應答器將如何應答?它是否應該閃爍飛行員可能會錯過的錯誤指示燈?處於不良狀態時應如何回應審訊?默默地將信標代碼剪輯為所有高位(111 111 111 111 2 sub> = 4095 10 sub> = 7777 8 sub>)嗎?完全停止回复?更多的模式意味著更多的測試和更多的費用。

權衡

“啊,”聰明的老式工程師認為。 ‘不再花哨的按鈕;我們將只給最左邊的撥盤5個位置,從0到4。’但是如果第二個撥盤必須是0,而第一個撥盤是4,又可以是任何數字,那又如何呢?

我們要填充十二位。也許飛行員直接輸入二進製文件。 “塞斯納123AB,發出零零零一零零一零零零零...”的聲音。想像一下這麼長的指令,回讀,更正和確認所引起的頻率擁塞。

我們的簡稱-術語記憶可用於大約7個項目,給予或接受兩個。十二個二進制數字(“位”)太笨拙了。 12的其他因子是6×2和4×3。

將十二個身份位分解為六個和兩個均值偽代碼,兩個六位數量(0-63)或六個二位( 0-3)塊。想像一下在過去處理64位錶盤。用十進制按鈕執行操作可以使我們回到代碼無法表示的問題。六個撥盤(每個撥盤的數字都為0到3)可能會起作用,但這會使撥盤變小,並迫使飛行員進行短期記憶的限制,這都使該選項容易出錯,因此不太理想。

三組4位或十六進制數量可以工作。儘管十六進制值的範圍是0到15 10 sub>,但通常的慣例是使用數字0到9,然後使用A到F表示十到十五。換句話說,我們每個位置只能使用一位數字,但是在過去,這意味著要使用16位刻度盤。今天,這意味著應答器表面上有十六個按鈕。但是,“方法,塞斯納樹alpha-bravo宣布緊急狀態,並為這只查理狐狸步履蹣跚的狐狸查理-零!”確實有一些助記符值。

最佳位置

換句話說,我們有四組,每組三個位。在二進制中,位值是2的冪(而不是像我們慣常以十進製表示的那樣是10的冪)。每個信標碼位使用三位,最大值為

$$(1 \ cdot 2 ^ 2 = 4)+(1 \ cdot 2 ^ 1 = 2)+(1 \ cdot 2 ^ 0 = 1)= 7 $$

在這裡我們發現了幾個優點:

  • Squawk代碼有四個位置-在短期內存中易於管理。
  • 所有數字都是0到7,所以
    • 撥號輸入只有八個位置或
    • 八個按鈕就足夠了。
  • 所有四位數的引導輸入都可以在模式A或模式C中表示。
  • 應答器不必擔心如何處理不良輸入。
很好的答案!
Avionics CEng
2018-10-25 02:01:55 UTC
view on stackexchange narkive permalink

通過系統時序以及當時可用的脈衝生成和處理技術的精度來設置12位。設置12位可以完成0到4095,但是那將需要特殊的開關和/或顯示裝置。因此,為使事情簡單,他們將Octal與4個簡單的8個位置開關一起使用。

alex
2017-04-28 01:29:55 UTC
view on stackexchange narkive permalink

在計算機系統中,所有內容都是二進制的。這是由於邏輯電路僅具有高電壓和低電壓兩種狀態。因此,將十進制轉換成二進制不像八進製或十六進制那樣簡單。

十進製到二進制的轉換對於任何計算機系統都是微不足道的(即使是最便宜的計算器也可以做到!)-但是在第二次世界大戰末期使用了第一批飛機應答機,當時還沒有足夠小的計算機可以容納平面且可靠,足以用於此類應用,
這些系統是數十年前設計的,為簡單起見,該系統保持不變。但是所有計算機仍然是二進制的。因此,機器代碼不是十進制的。
如果您熱衷於計算可能的[qu] bit狀態,那麼量子計算將使您大吃一驚:)
-1
@alex:我們知道如何以給定的精度獲得穩定的電壓或穩定的時鐘。我們可以使用[運算放大器](https://en.wikipedia.org/wiki/Operational_amplifier),[PLL](https://en.wikipedia.org/wiki/Phase-locked_loop)等作為基礎。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...