混跡模擬領(lǐng)域,模擬工程師不懂模數(shù)轉(zhuǎn)換器(ADC)那怎么行?在電子領(lǐng)域中模擬技術(shù)是被公認(rèn)的最難的技術(shù),眾多資深的模擬工程師無一不是從百上千次的實(shí)踐中不斷學(xué)習(xí),不斷摸索。但是作為初級的模擬工程師呢?如何能夠快速的上手并在模擬技術(shù)領(lǐng)域快速的成長呢?本文針對模擬工程師的必備知識-模數(shù)轉(zhuǎn)換器(ADC)進(jìn)行了知識整理與講解。
什么是ADC,ADC是什么意思
adc: Analog-to-Digital Converter的縮寫,意思是模/數(shù)轉(zhuǎn)換器。實(shí)現(xiàn)把模擬信號轉(zhuǎn)變?yōu)閿?shù)字量的設(shè)備稱為?!獢?shù)(A/D)轉(zhuǎn)換器,簡稱ADC
ADC(A/D轉(zhuǎn)換器)
在ADC轉(zhuǎn)換器中,一般經(jīng)過采樣、保持、量化和編碼這四個步驟來完成從模擬量到數(shù)字量的轉(zhuǎn)換。
(1)采樣與保持
(2)量化與編碼
?
數(shù)字信號最低有效位的1即1LSB所代表的數(shù)量就是這個最小數(shù)量單位,稱為量化單位,用Δ表示。
將采樣輸出電壓用最小單位的整數(shù)倍來表示,這個過程就叫量化。
將量化的結(jié)果用代碼表示出來的過程就稱為編碼。編碼輸出的結(jié)果就是A/D轉(zhuǎn)換器的輸出。
A/D轉(zhuǎn)換電路方式
模—數(shù)轉(zhuǎn)換器根據(jù)其工作原理大致分為并行式和并/串式A/D、逐次逼近式、雙積分式和計(jì)數(shù)比較式A/D等幾種形式。
逐次逼近式A/D由電壓比較器、D/A轉(zhuǎn)換器、逐次逼近寄存器(SAR)和控制邏輯等組成。
?
ADC0808/0809
?
IN0~I(xiàn)N7:模擬量輸入腳;
ADDA、ADDB、ADDC:通道地址輸入端。
CLOCK:時鐘輸入端。
ALE:地址鎖存允許端。
START:啟動脈沖輸入端。
EOC:轉(zhuǎn)換結(jié)束信號端。
OE:允許輸出端。
D7~D0引腳:轉(zhuǎn)換所得8位數(shù)據(jù)在這8個管腳上輸出,D7是最高位,D0是最低位。
UCC:電源正極輸入端,接+5 V。
GND:地端,電源負(fù)極接至該端。
UREF(+)和UREF(-):分別為基準(zhǔn)電壓UREF的高電平端和低電平端。
ADC的主要技術(shù)參數(shù)
(1)分辨率
A/D的分辨率是使A/D輸出數(shù)字量最低位變化1所對應(yīng)的輸入模擬電壓變化的大小值。分辨率也用輸出二進(jìn)制數(shù)的位數(shù)來表示,如8位A/D的分辨率就是8,位數(shù)越多,誤差越小,轉(zhuǎn)換精度也越高。
(2)量化誤差
用數(shù)字量近似表示模擬量的過程稱為量化。A/D轉(zhuǎn)換一般是按四舍五入原則進(jìn)行的,由此產(chǎn)生的誤差稱為量化誤差,量化誤差小于等于1LSB。
(3)精度
精度分為絕對精度和相對精度。
在一個A/D中,任何數(shù)碼所對應(yīng)的實(shí)際模擬電壓與其理想的電壓之差并不是一個常數(shù),把差值中的最大值定義為該A/D的絕對精度;而相對精度則定義為這個最大差值與滿刻度模擬電壓的百分?jǐn)?shù),或者用二進(jìn)制分?jǐn)?shù)來表示相對應(yīng)的數(shù)字量。
(4)轉(zhuǎn)換時間
轉(zhuǎn)換時間是完成一次A/D轉(zhuǎn)換所需要的時間,這是指從啟動A/D轉(zhuǎn)換器開始到獲得相應(yīng)數(shù)據(jù)所需要的總時間。
ADC關(guān)鍵性能指標(biāo)及誤區(qū)
由于ADC產(chǎn)品相對于網(wǎng)絡(luò)產(chǎn)品和服務(wù)器需求小很多,用戶和集成商在選擇產(chǎn)品時對關(guān)鍵指標(biāo)的理解難免有一些誤區(qū),加之部分主流廠商刻意引導(dǎo),招標(biāo)規(guī)范往往有不少非關(guān)鍵指標(biāo)作被作為必須符合項(xiàng)。接下來就這些誤區(qū)和真正的關(guān)鍵指標(biāo)做一些探討。
誤區(qū)1: CPU數(shù)量和主頻。 目前大部分廠商采用了類似的通用CPU架構(gòu),但還是可能采用不同廠家的CPU。即使是同一個廠家,也可能是不同系列。最關(guān)鍵的是CPU數(shù)量和主頻并不代表 性能,除非是同一個廠家的同一個軟件。同樣,完全相同的硬件配置,不同廠商的架構(gòu)和系統(tǒng)發(fā)揮出來的性能可能相差數(shù)倍,正如完全相同的幾個人在不同的管理環(huán) 境下發(fā)揮出來的貢獻(xiàn)差別會很大。并行計(jì)算處理不好,由于CPU間信開銷及鎖的問題,CPU數(shù)量增加并不意味性能增加。如果1個CPU可以跑出其它產(chǎn)品8個 cpu的性能,誰會選擇8個CPU的產(chǎn)品?成本,功耗,體積都會大很多。因此,CPU硬件配置并不代表性能。
誤區(qū)2: 內(nèi)存。 同樣與系統(tǒng)架構(gòu)相關(guān)。同樣與架構(gòu)有關(guān),對于CPU獨(dú)享內(nèi)存的架構(gòu),每個核即使只配置2G內(nèi)存,一個8核的產(chǎn)品就需要16G內(nèi)存,但每個核可訪問的內(nèi)存資源 只有2G。這樣的架構(gòu)一份數(shù)據(jù)需要復(fù)制多次并保存多份,使用效率很低,最終也會影響到性能。而共享內(nèi)存架構(gòu)的產(chǎn)品,每個核可以訪問所有內(nèi)存資源,數(shù)據(jù)也只 需要保存一份。如果是32位操作系統(tǒng),共享內(nèi)存架構(gòu)4G內(nèi)存的實(shí)際效率就超過獨(dú)享內(nèi)存架構(gòu)的任意配置產(chǎn)品(目前A10之外的產(chǎn)品均為32位操作系統(tǒng),獨(dú)享 內(nèi)存架構(gòu))。64位操作系統(tǒng)突破4G的限制,實(shí)際效率就會更高。因此,內(nèi)存不代表性能。如果一定要比較,需要比較每個核可訪問的內(nèi)存資源。
誤區(qū)3:端口數(shù)量。ADC產(chǎn)品不同于2/3層交換機(jī),端口數(shù)量代表可連接更多設(shè)備。ADC產(chǎn)品部署環(huán)境一定會有2/3層交換機(jī),服務(wù)器不需要直接連接到ADC產(chǎn)品。只要端口數(shù)量大于實(shí)際需要的吞吐量并有足夠端口與交換機(jī)連接即可。
誤區(qū)4:交換能力。 這個指標(biāo)也是沿用了交換機(jī)的指標(biāo)。交換機(jī)性能與交換矩陣芯片交換能力密切相關(guān),與CPU關(guān)系不是很大。而ADC產(chǎn)品則不同,交換矩陣并不是必須部件,大多 產(chǎn)品采用通用CPU架構(gòu)使用PCIe總線擴(kuò)展接口,這部分已經(jīng)不是ADC產(chǎn)品的瓶頸所在。ADC性能基本取決于系統(tǒng)整體架構(gòu)下CPU發(fā)揮出來的效率。而且 大部分產(chǎn)品本身已經(jīng)是服務(wù)器的硬件架構(gòu),應(yīng)該沒有人對服務(wù)器要求交換能力的指標(biāo)。
可以看出,誤區(qū)所在均為沿用了服務(wù)器或交換機(jī)的一些指標(biāo),這些硬件配置并不代表ADC產(chǎn)品的真正性能,但一些廠商還是刻意利用這些指標(biāo)(尤其是CPU和內(nèi)存)來誤導(dǎo)客戶屏蔽競爭對手。ADC真正關(guān)鍵的性能指標(biāo)如下。
1. 4/7層吞吐量。由于需要CPU進(jìn)行復(fù)雜的4-7層處理,4/7層吞吐量交2/3層吞吐量要低很多,但這是ADC真正能處理的數(shù)據(jù)吞吐量。這也是2/3層 吞吐量對于ADC產(chǎn)品并不關(guān)鍵的原因。這個指標(biāo)的測試方式通常是發(fā)送盡可能多HTTP GET請求,服務(wù)器應(yīng)答較大HTTP對象(如512Kbytes或1MBytes,會分為若干數(shù)據(jù)包傳輸),計(jì)算無失敗情況下線路上傳輸?shù)臄?shù)據(jù)量。差異在 于不同儀表廠商或不同測試可能會不計(jì)算2/3層包頭或GET請求部分,由于這部分所占比例極小,影響不是很大。嚴(yán)格來說,橫向比較時應(yīng)該確定所取HTTP 對象大小及是否計(jì)算2/3層包頭部分。
2. 4層每秒新建連接速率(L4 CPS)。 衡量ADC產(chǎn)品每秒鐘可以處理多少個TCP新建連接。通常測試方法為發(fā)送盡可能多的HTTP GET請求,服務(wù)器應(yīng)答較小HTTP對象(如1Bytes,128Bytes,1KBytes), ADC產(chǎn)品在中間只根據(jù)4層信息進(jìn)行復(fù)雜均衡。每個連接需要完整的3次握手建立過程,GET請求,和TCP關(guān)閉連接過程。這個指標(biāo)對于ADC產(chǎn)品應(yīng)付突發(fā) 大量連接非常重要。好比一個地鐵入口的通過率一樣,如果入口太小,客流突然增加時,如果客人無法進(jìn)入,業(yè)務(wù)自然會受到影響。比較該指標(biāo)時需要注意所取 HTTP對象大小。
3. 7層每秒新建連接速率(L7 CPS)。與4層新建連接速率類似,只是ADC產(chǎn)品在中間需要根據(jù)應(yīng)用層信息進(jìn)行服務(wù)器選擇(通常測試使用url交換),而且每個TCP連接上只能傳輸1 個HTTP請求。使用7層處理對CPU效率要求更高。如同進(jìn)入地鐵時需要核查客人更多信息和安檢一樣,其通過率比正常通過率會有不同程度降低。A10產(chǎn)品 通??梢宰龅?層新建連接速率的70-80%,而其它很多廠商只能做到30-40%。比較該指標(biāo)時同樣要注意HTTP對象大小和每個TCP連接傳輸?shù)恼埱?數(shù)。
4. 7層每秒交易速率(L7 RPS)。有些廠商使用L7 RPS作為L7 CPS來混淆誤導(dǎo)客戶,RPS測試會定義每個TCP連接可以傳輸多少個HTTP請求,通常會有10個請求/TCP連接,無限制請求連接/TCP連接幾種測 試數(shù)據(jù)。使用1個請求的L7 RPS值就是L7 CPS。差別在于每個連接傳送多個請求時的L7 RPS測試中,ADC可以省去大量TCP連接建立和關(guān)閉過程。比較該指標(biāo)時同樣要注意HTTP對象大小和每個TCP連接傳輸?shù)恼埱髷?shù)。
5. 并發(fā)會話數(shù)量。 如果新建連接速率代表了一個地鐵入口通過率,并發(fā)會話則代表了該地鐵線路上在車上的所有人數(shù)。如果內(nèi)部承運(yùn)能力不夠高,就會造成乘客擠壓過載最后癱瘓。并 發(fā)會話測試并不是簡單的在內(nèi)存中保存這些條目,實(shí)際測試中,必須在每個連接上定時傳送數(shù)據(jù)驗(yàn)證設(shè)備可以準(zhǔn)確查找已有會話并轉(zhuǎn)發(fā)數(shù)據(jù)。測試中還可能會細(xì)分4 層并發(fā)會話數(shù)量和7層并發(fā)會話數(shù)量,區(qū)別在于ADC基于不同信息建立會話和每個連接占用的會話條目不同。由于并發(fā)會話與內(nèi)存關(guān)系很大,32位系統(tǒng)的ADC 由于4G內(nèi)存限制都不可能做得很大,而64位系統(tǒng)的ADC就不會受到這個限制。
6. 防DDoS攻擊能力(syn/sec)。ADC產(chǎn)品的并發(fā)會話能力和新建連接速率遠(yuǎn)遠(yuǎn)大于防火墻類產(chǎn)品,因此在ADC外部署防火墻會成為瓶頸。這就要求 ADC本身有足夠強(qiáng)大的防攻擊能力。目前大部分ADC產(chǎn)品均采用了Syn-cookie方式來防御DDoS攻擊,實(shí)際性能取決于各自的系統(tǒng)架構(gòu)和處理算 法。
值得一提的是,F(xiàn)5的7層新建速率與4層新建速率相比下降非常大,因此會有使用與其他廠商不同的一些數(shù)據(jù)來作為L7 CPS應(yīng)答的情況。F5 提供3個L7 CPS/RPS指標(biāo).
L7 Connection per Sec(1-1), 客戶側(cè)連接1 request/connection,服務(wù)器側(cè)連接1 request/connection。 通用L7 CPS定義。
L7 Requests per Sec (1-inf),客戶側(cè)連接1 request/connection,服務(wù)器側(cè)連接unlimited request/connection。 用戶通??吹降腖7 CPS數(shù)據(jù)。
L7 Requests per Sec (inf-inf),客戶側(cè)連接unlimited request/connection,服務(wù)器側(cè)連接unlimited request/connection。
F5公開的測試報告明確描述其所有7層測試均啟用連接復(fù)用功能,因此測試報告中看到的都是“L7 Requests per Sec (1-inf)”。比較L7 CPS時時應(yīng)該注意使用其CPS(1-1)指標(biāo)。
其他SSL指標(biāo)、DNS QPS指標(biāo)、HTTP壓縮指標(biāo)對于使用該類應(yīng)用的用戶很重要,但不屬于通用關(guān)鍵指標(biāo),就暫不逐一解釋了。
多種ADC的分析比較
評論