在 C++ 中,最接近于接口概念的就是純虛類(pure virtual class)。純虛類就是一個(gè)僅僅包含純虛函數(shù)的類,除了純虛函數(shù)不含有任何其它的成員變量或者函數(shù),如:
// The following is not actual COM.
// Pseudo-C++:
interface IDrawable
{
void Draw();
};
這個(gè)例子來源于一些用來繪圖的庫中的對象。IDrawable 接口定義了繪圖中常用的操作,任何支持繪圖功能的對象都必須支持該接口。(慣例,接口名稱的首字母為 “I”),IDrawable 接口目前只定義了一個(gè)操作:Draw。
所有的接口都是抽象的,代碼中不能直接創(chuàng)建一個(gè) IDrawable 接口的實(shí)例對象( C++ 語法規(guī)則不支持純虛函數(shù)對象的創(chuàng)建)。例如,下面的代碼是無法編譯通過的:
IDrawable draw;
draw.Draw();
相反的,圖形庫都會提供一些對象來實(shí)現(xiàn) IDrawable 所定義的接口。例如,可以實(shí)現(xiàn)一個(gè)叫做 Shape 的類或者一個(gè)叫做 Bitmap 的類,C++ 中使用繼承實(shí)現(xiàn)這種關(guān)系:
class Shape : public IDrawable
{
public:
virtual void Draw(); // Override Draw and provide implementation.
};
class Bitmap : public IDrawable
{
public:
virtual void Draw(); // Override Draw and provide implementation.
};
Shape 和 Bitmap 類定義了兩種不同的對象,二者都支持繪圖功能。每個(gè)類都繼承自 IDrawable 接口,而對于 Draw 方法繪制的具體實(shí)現(xiàn)細(xì)節(jié)可以各自不同。
如果程序中使用二者進(jìn)行繪制,可以使用 IDrawable 的指針對象來操縱它們,而不是直接使用 Shape 和 Bitmap 對象的指針。
IDrawable *pDrawable=CreateTriangleShape();
if (pDrawable)
{
pDrawable->Draw();
}
這有一個(gè)循環(huán)遍歷 IDrawable 接口指針的列子,在這個(gè)數(shù)組中,每項(xiàng)成員可能是 Shape 對象,也可能是 Bitmap 對象,更可能是一些支持 IDrawable 接口的其他對象,代碼中無需這些不同類型的實(shí)現(xiàn)細(xì)節(jié),只需要調(diào)用它們都支持的共有接口 IDrawable 就可以繪制我們想要的圖像。
void DrawSomeShapes(IDrawable **drawableArray, size_t count)
{
for (size_t i=0; i < count; i++)
{
drawableArray[i]->Draw();
}
}
COM 組件 的一個(gè)關(guān)鍵點(diǎn)就是調(diào)用者永遠(yuǎn)不需要知道派生類的具體實(shí)現(xiàn)細(xì)節(jié)。換句話說,在你的代碼中一般不會聲明 Shape 或者 Bitmap 類型的變量。所有的操作都是通過它們共有的接口 IDrawable 來完成。用這種方式,COM 組件可以做到接口和實(shí)現(xiàn)的完全分離。
你可以隨時(shí)改變 Shape 或者 Bitmap 對象的繪制方法,例如修復(fù)一個(gè) bug,或者增加一些新的能力,對于調(diào)用者來說是透明的,調(diào)用者的代碼是無需任何修改的。
在 C++ 中,接口使用類或者結(jié)構(gòu)體來實(shí)現(xiàn)。
文章中的代碼案例只是用來演示說明問題,真正的 COM 接口 定義顯然不會這樣簡單。一般一個(gè) COM 接口的定義使用一種叫做 Interface Definition Language(IDL)—— 接口定義語言的東西。這個(gè) IDL 文件將描述具體的接口行為,然后用 IDL 文件編譯器處理,生成一組 C++ 頭文件。
class IDrawable
{
public:
virtual void Draw()=0;
};
當(dāng)你在使用 COM 組件的時(shí)候,一定要記住接口不是對象。它們是一組必須實(shí)現(xiàn)的方法集合。一些對象可以實(shí)現(xiàn)一樣的接口,例如代碼中的 Shape 對象和 Bitmap 對象。另外一個(gè)對象可以實(shí)現(xiàn)幾個(gè)接口,例如,一個(gè)圖形庫可能定義一個(gè)名字叫做 ISerializable 的接口對象,它用來保存和加載圖形對象數(shù)據(jù)(圖形的序列化)。現(xiàn)在考慮下面的代碼:
// An interface for serialization.
class ISerializable
{
public:
virtual void Load(PCWSTR filename)=0; // Load from file.
virtual void Save(PCWSTR filename)=0; // Save to file.
};
// Declarations of drawable object types.
class Shape : public IDrawable
{
...
};
class Bitmap : public IDrawable, public ISerializable
{
...
};
在例子中,Bitmap 類實(shí)現(xiàn)了 ISerializable 接口,程序可以使用該接口保存和加載 Bitmap 對象。然而 Shape 類沒有實(shí)現(xiàn)這個(gè)接口,所以它不支持這個(gè)功能。下面是例子中的繼承關(guān)系:
上面的文字只是簡單的介紹 COM 組件 的一些概念,目前我們還沒有看見過一個(gè)真正的 COM 組件,接下來的內(nèi)容從每個(gè) COM 應(yīng)用都必須做的一件事開始 —— COM 庫初始化。
算機(jī)作為人們?nèi)粘I罴肮ぷ髦忻懿豢煞值幕锇椋鋽U(kuò)展功能隨著硬件的迭代不斷更替,有些接口雖然長得像,但是功能并不一樣,有些接口很多小伙伴表示壓根不知道怎么使用。
接下來,就為大家整理目前計(jì)算機(jī)領(lǐng)域常見到物理接口:
1、USB接口(Universal Serial Bus通用串行總線)
USB接口作為計(jì)算機(jī)最常見也是使用率最高的外接接口,其誕生已經(jīng)有20多年了,從1996推出至今已經(jīng)經(jīng)歷了幾大版本的更新。
USB的不同版本是可以相互兼容的,所以就算是USB2.0的外接設(shè)備,依然可以在USB3.0的接口上使用,反之,USB3.0的設(shè)備也可以在USB2.0的接口上使用,只是傳輸速度沒有那么快而已。
如何簡單區(qū)分USB版本:
按顏色區(qū)分:USB1.0-2.0基本為白色或者黑色,USB3.0為藍(lán)色,USB3.1為紅色或者淺綠色。
從造型區(qū)分:USB3.0的標(biāo)示符號比USB2.0前面多了“SS”。
另外,USB2.0只有一排4針的針腳,而USB3.0為上5下4總共9針的針腳。
USB-B(Type-B)
USB-B接口一般用來連接打印設(shè)備、顯示器、硬盤等。
作為USB家族里的一個(gè)標(biāo)準(zhǔn)接口,USB-B接口的地位是很尷尬的。首先它沒有USB-A的用途那么廣泛,又沒有USB-C那樣小巧便利,以至于有些人天天用著它,但就是叫不出它的名字,打印機(jī)數(shù)據(jù)線?
USB-C(Type-C)
其實(shí)Type-C也是USB接口的一種,只是它的造型更加小巧了,接口無正反面區(qū)分,盲插更方便,而且傳輸速度達(dá)到了USB3.1的標(biāo)準(zhǔn)。
現(xiàn)在很多新款的安卓設(shè)備也采用這種接口,包括新款的ipad pro。
2、PS/2接口
作為計(jì)算機(jī)最古老的接口之一,PS/2接口設(shè)備依然還在服役,現(xiàn)在能見到的PS/2外接設(shè)備也就剩鼠標(biāo)和鍵盤了,PS/2接口一般分為紫色(插鍵盤)和綠色(插鼠標(biāo))。
而現(xiàn)在鼠標(biāo)鍵盤普遍也都是采用USB接口了,畢竟USB的應(yīng)用范圍更廣。PS/2接口雖然支持“熱插拔”(只能針對系統(tǒng)已加載的設(shè)備),但是對于第一次接入的新設(shè)備,依然需要重啟電腦才能識別。其實(shí)PS/2接口的鼠標(biāo)鍵盤對舊系統(tǒng)設(shè)備兼容要比USB還要好一點(diǎn),在面對一些老舊設(shè)備的調(diào)試上,往往就是只能用PS/2接口來驅(qū)動鼠標(biāo)鍵盤,但隨著舊設(shè)備的更替,PS/2接口終究會退出人們的視野。
3、以太網(wǎng)接口
目前個(gè)人電腦上用的網(wǎng)絡(luò)接口基本上都是RJ-45接口,傳輸速度最高為千兆。
一般RJ-45接口上有連接指示燈(LINK) 、信號傳輸指示燈(ACT)兩個(gè)指示燈。
4、串行接口(COM接口)、并行接口(LPT)
常見的串行接口為9針串口(DB9),普通在一些老舊設(shè)備上,DB9的外觀長得有點(diǎn)像VGA接口,乍一看還真容易混淆。
串行接口的工作原理簡單,主要作為一對一的數(shù)據(jù)傳輸,例如調(diào)試網(wǎng)絡(luò)設(shè)備。而25針并口常用于連接打印設(shè)備。而不過現(xiàn)在已經(jīng)很少有新設(shè)備提供串口/并口了,因?yàn)楣ぷ鞯男枨笮栽絹碓叫。€有就是USB接口的普及,畢竟主板的空間就那么點(diǎn),省下來多配個(gè)USB接口更加實(shí)在。
5、eSATA
eSATA接口主要用于外接硬盤,從它的名字就可以看出它也屬于SATA串行接口規(guī)范的一種。eSATA是高效直接的外接硬盤方式,只不過現(xiàn)在USB接口的移動硬盤更受消費(fèi)者歡迎,一般在一些舊的筆記本電腦或者是外接硬盤盒上能看見它。
6、IEEE 1394
IEEE 1394是蘋果開發(fā)的串行標(biāo)準(zhǔn)接口,俗稱火線接口,主要用于連接多媒體外接設(shè)備。
IEEE 1394在有生之年經(jīng)歷了幾個(gè)版本的更新,接口形態(tài)也隨之改變。
同樣在USB標(biāo)準(zhǔn)接口的洗禮下,IEEE 1394也已經(jīng)變成時(shí)代的產(chǎn)物,在一些老舊相機(jī)上,你還能偶爾見到它。
7、SCSI(小型計(jì)算機(jī)系統(tǒng)接口)
SCSI是一種通用的設(shè)備接口,可以連接硬盤、光驅(qū)、軟驅(qū)(00后的小伙伴表示不認(rèn)識這東西)、打印設(shè)備等。作為已經(jīng)被淘汰的計(jì)算機(jī)接口,使用過它的人,基本已經(jīng)老了。
8、外置wifi接口
在一些X系列的高端主板上,我們經(jīng)常可以看到外置wifi接口。
因?yàn)楹芏嗯_式主機(jī)采用的是金屬材質(zhì)的機(jī)箱,而且造型都比較封閉,這就導(dǎo)致了內(nèi)置wifi會受到信號屏蔽的困擾。通過連接外置wifi天線,可以讓臺式主機(jī)也能暢快地用無線上網(wǎng)了。
1、VGA接口(Video Graphics Array)
VGA接口共有15針,分成3排,每排5個(gè)孔,是目前使用最廣泛的視頻接口。
作為已經(jīng)存在三十年的接口,VGA接口在面對高清影像傳輸上已經(jīng)越來越力不從心,所以在很多高端顯卡和顯示器上,已經(jīng)慢慢地取消VGA接口了。
2、DVI接口(Digital Visual Interface)
DVI接口始于1998年,因?yàn)楫?dāng)時(shí)液晶顯示器的推廣,VGA接口在轉(zhuǎn)換成數(shù)字圖像顯示時(shí)會不可避免地造成圖像細(xì)節(jié)丟失,所以當(dāng)時(shí)多家科技公司一起合作推出DVI接口標(biāo)準(zhǔn)。
DVI接口對比VGA?有很多優(yōu)勢,可以顯示更高清的畫面,對動態(tài)畫面處理更加穩(wěn)定。
3、HDMI接口(High Definition Multimedia Interface)
HDMI接口是一種可以同時(shí)傳輸視頻及音頻的全數(shù)字化接口,現(xiàn)在越來越多顯示設(shè)備用它來取代老舊的VGA接口。
HDMI的版本有1.0-1.2a版、1.3-1.3a版、1.4-1.4b版、2.0-2.0b版、2.1版。
不同版本是可以相互兼容的,主要區(qū)別是傳輸帶寬的高低,目前HDMI2.1版的傳輸速率已經(jīng)可以達(dá)到42.6Gbit/s,可以滿足4K視頻的播放。
4、 DP接口(DisplayPort)
DP接口類似于HDMI,也屬于高清數(shù)字顯示接口。
DP接口的開發(fā)就是為了今后大分辨率顯示設(shè)備而生,高帶寬低延遲是它最大的特點(diǎn),DP接口也是目前市面上性能最高的視頻接口。
DP接口還有個(gè)小尺寸版本,叫Mini DP(mini Display Port),主要用于筆記本電腦上使用。
5、 雷電接口(Thunderbolt)
在蘋果的電腦上,我們經(jīng)常能看見雷電接口,很多人把蘋果的雷電接口當(dāng)成mini DP來使用。確實(shí),雷電接口和Mini DP的外形上一模一樣,雷電接口除了可以當(dāng)成Mini DP一樣作為視頻傳輸,還可以作為其他數(shù)據(jù)傳輸,例如雷電轉(zhuǎn)以太網(wǎng)口。
在新的macbook pro上,我們可以看到新的的雷電3造型變得跟普通的type-C一樣了。其實(shí)它就是在USB-C的接口形態(tài)上運(yùn)行了雷電協(xié)議,使其不僅可以兼容type-C的通用性,而且擁有更高的傳輸帶寬。
1、3.5毫米音頻接口
一般主板自帶的聲卡上有6個(gè)不同顏色的音頻接口,很多小伙伴都只認(rèn)識綠色那個(gè)接口。
聲卡上不同顏色的接口分別對應(yīng)了不同的功能:
紅MIC in 麥克風(fēng)輸入 (有些聲卡為粉紅色)
藍(lán) Line in 線路輸入
綠 Front 前端揚(yáng)聲器(左右)
橙 C/LEF 中置/低頻加強(qiáng)聲道
黑 Rear 后端揚(yáng)聲器(左右)
灰 Side 測環(huán)繞揚(yáng)聲器(左右)
這么多接口,怎樣接才是正確的呢?
2.1聲道:音頻輸出只接綠色的音頻口就可以了。
5.1聲道:音頻輸出接綠、橙、黑這三個(gè)音頻口。
7.1聲道:音頻輸出接綠、橙、黑、灰這四個(gè)音頻口。
麥克風(fēng)統(tǒng)一接紅色音頻口。
2、SPDIF(同軸音頻接口和光纖音頻口)
SPDIF分為同軸和光纖兩種接線方式,雖然兩者形狀和載體不一樣,但是傳輸?shù)男盘柺且粯拥摹?/p>
同軸音頻接口是常見音響設(shè)備接口,只不過電腦領(lǐng)域里3.5mm音頻接口橫行的年代,為了節(jié)省成本和主板空間,很多主板已經(jīng)不配同軸音頻口了,畢竟想買個(gè)同軸音頻接口的電腦耳機(jī)或者音箱也不容易呀!
光纖音頻接口有著很高大上的名字,在前面的文章里有提到這個(gè)接口,很多人聽到電腦上的光纖接口,以為是上網(wǎng)用的,其實(shí)它是用來傳輸音頻的,作為速度高干擾低的音頻接口,在一些高端主板上經(jīng)常能看見它。
如果你有想了解內(nèi)容,或者文章中有錯(cuò)漏的地方,歡迎評論告訴我喔!
(本文圖片均來自網(wǎng)絡(luò),如有侵權(quán),聯(lián)系刪除)
原創(chuàng)不易,請勿盜發(fā),如喜歡,求點(diǎn)贊支持!謝謝各位!
理想家生活#
本內(nèi)容來源于@什么值得買APP,觀點(diǎn)僅代表作者本人 |作者:玩家精選
昨晚在逛張大媽時(shí),偶然看到電腦風(fēng)扇改插頭、改線材、改端子這樣一篇帖子,在感慨作者發(fā)布教程詳細(xì)注意細(xì)節(jié)的同時(shí),也佩服作者的動手能力,在文章結(jié)尾處關(guān)于風(fēng)扇線序的說明比較簡單,今天特意整理出來一片,希望給各位玩家能帶來幫助。
散熱風(fēng)扇,英文名:Cooling fans 。散熱風(fēng)扇的技術(shù)和性能方面已經(jīng)完全達(dá)到了成熟的階段,并不斷有新技術(shù)出現(xiàn)。風(fēng)扇規(guī)格尺寸從 8mm 到 280mm,電壓有 5V,12V,24V,48V,110V,220V,380V,外形有方形,圓形,橄欖形等。
散熱風(fēng)扇的工作原理是按能量轉(zhuǎn)化來實(shí)現(xiàn)的,即:電能→電磁能→機(jī)械能→動能。其電路原理一般分為多種形式,采用的電路不同,風(fēng)扇的性能就會有差異。
很多玩家對于 FAN 的針腳定義并不能很好的了解,這也是源于被忽略的說明書。不知道什么時(shí)候主板的說明書就成了擺設(shè),很少有玩家去關(guān)注它。
大多時(shí)候都是只有遇到問題的時(shí)候才回去翻動它,那么我們下面趕緊來看看說明書中有關(guān)FAN針腳的定義。
機(jī)箱主板 4Pin 風(fēng)扇接口針腳線序
主板風(fēng)扇接線圖
電腦機(jī)箱散熱風(fēng)扇 4Pin 針腳線序
電腦機(jī)箱散熱風(fēng)扇 4Pin 針腳線序定義
電腦機(jī)箱散熱風(fēng)扇 4Pin 針腳線序定義
散熱風(fēng)扇有很多種分類方法,有 DC 直流、AC 交流之分,還可以分為有刷、無刷,也有滾珠軸承、含油軸承之分,我們這里主要談的是散熱風(fēng)扇的電源線接口,簡單來說可以分為 2 針 (2pin)、3 針 (3pin) 及 4 針 (4pin) 之分,我們逐一來看。
散熱風(fēng)扇的 2 針、3 針與 4 針 (圖片來源于 togell)
2 針的散熱風(fēng)扇意味著它只有紅黑兩種電源線,一個(gè)接地,一個(gè)供電,結(jié)構(gòu)簡單,但是功能也很少,不能測速,想要調(diào)速需要使用其他方案。
2 針風(fēng)扇
電腦散熱風(fēng)扇針腳接口順序及定義 2 針風(fēng)扇 除了上面說的 2 針風(fēng)扇,還有一種 D 型電源接口的風(fēng)扇,也就是大 4pin 接口的風(fēng)扇,這里也歸類到 2 針風(fēng)扇里來說一下吧,比較有代表性的風(fēng)扇就是酷冷黑旋風(fēng)系列。
酷冷黑旋風(fēng)大 4pin 接口風(fēng)扇 (圖片來自淘寶店鋪)
這種風(fēng)扇也沒有變速功能,而且供電是 12V 的,用大 4pin 接口就是為了獲得更好的性能 (功率更大),酷冷黑旋風(fēng)的轉(zhuǎn)速為 1200RPM,風(fēng)量 44.72CFM。說到這里,想到前幾年因?yàn)樯岘h(huán)境差,腦袋一熱就買了幾個(gè) 1500RPM 轉(zhuǎn)速的暴力扇,使用的也是大 4pin 接口,風(fēng)量確實(shí)強(qiáng)大,但是噪音受不了,用了兩次就放棄了。
目前 2 針的風(fēng)扇也沒有退出舞臺,在不同的場合中依然有大量應(yīng)用,不過對 DIY 玩家來說,2 針的風(fēng)扇在變速等方面上已經(jīng)不能滿足要求了,3 針、4 幀風(fēng)扇才是更合適的選擇。
2 針風(fēng)扇不能調(diào)速的問題在當(dāng)前社會越來越嚴(yán)重,因?yàn)槿藗儾⒉皇且恢毙枰L(fēng)扇全速運(yùn)行,溫度不高的時(shí)候降低風(fēng)扇轉(zhuǎn)速可以帶來更低的噪音,玩家對靜音的需求日益增多,所以有了能調(diào)速的 3 針風(fēng)扇接口。
3 針風(fēng)扇針腳定義
3 針風(fēng)扇接口在原先的紅黑基礎(chǔ)上增加了一條黃色的線 (也部分是黑黃綠),它主要負(fù)責(zé)測速,通過它主板可以偵測到風(fēng)扇是否在轉(zhuǎn)、轉(zhuǎn)速多少,不過 3 針風(fēng)扇的調(diào)速是通過調(diào)整風(fēng)扇電壓來實(shí)現(xiàn)的,首先這樣做調(diào)節(jié)轉(zhuǎn)速依然不夠靈活,溫度探測來自主板,不能實(shí)時(shí)反映 CPU 狀態(tài)信息,而且需要主板 BIOS 設(shè)置各種參數(shù),所以能不能調(diào)速還要看主板支持與否。
更重要的一點(diǎn),不同的風(fēng)扇還有不同的啟動電壓,電壓調(diào)速不是線性的,通過電壓控制轉(zhuǎn)速有可能導(dǎo)致低電壓時(shí)達(dá)不到風(fēng)扇所需的啟動電壓,出現(xiàn)風(fēng)扇停轉(zhuǎn)等問題。
從 2 針到 3 針,風(fēng)扇調(diào)速的問題始終沒有徹底解決,所以在 LGA775 時(shí)代英特爾聯(lián)合廠商推出了新的 PWM 調(diào)速規(guī)范,散熱風(fēng)扇變成了 4 個(gè)針腳,在 3 針基礎(chǔ)上又多了一個(gè) PWM 線 (脈寬調(diào)變)。
4 針風(fēng)扇的接口顏色也不固定,常見的有下面兩種:
主板風(fēng)扇 FAN 接口圖解
主板風(fēng)扇 FAN 接口圖解
圖片來源于 B 站平臺 @林海 rinhai 用戶
文章鏈接:https://www.bilibili.com/read/cv10094383
主板風(fēng)扇 FAN 接口圖解,4pin 接口線序圖解
4 針風(fēng)扇接口的顏色及接口定義
多出的 PWM 線就是利用 PWM 機(jī)制來調(diào)節(jié)風(fēng)扇轉(zhuǎn)速,而風(fēng)扇電壓是恒定的,避免了控制電壓來變速的一系列弊端。
常用風(fēng)扇接口
有時(shí)候會遇到即便風(fēng)扇是 4 針 PWM 控制的,但是接到主板上依然不能智能控速,這個(gè)問題可能就跟主板有關(guān)系了,因?yàn)橹靼迳系?4 針接口不一定都是 PWM 控制的,也可能是電壓控制轉(zhuǎn)速的。
某些主板的 4 針接口不一定是 PWM
貓頭鷹在官方 FAQ 中就提到了這個(gè)問題,這個(gè)要看主板廠商的說明書描述,如果提到了 NC、VCC 等字眼,說明它不是支持 PWM 調(diào)速的,是通過降低電壓來實(shí)現(xiàn)的。
還有一個(gè)問題就是 3 針、4 針風(fēng)扇的混插問題了,由于兩者有 3 個(gè)陣腳都是一樣的,所以是可以混插的,當(dāng)然 4 針風(fēng)扇插入 3 針接口會損失 PWM 調(diào)速功能,3 針風(fēng)扇插入 4 針接口上也不會自動獲得 PWM 調(diào)速功能。
同型號風(fēng)扇建議使用風(fēng)扇一分多供電分線,更多風(fēng)扇情況需要用到風(fēng)扇集線器。
不推薦購買使用大 4Pin 供電的無測速風(fēng)扇,風(fēng)扇一直全速不符合正常用戶使用場景。
散熱風(fēng)扇的2針、3針、4針是老生常談的問題了,目前2針風(fēng)扇在日常使用中不多見,3針、4針的比較普遍,從使用體驗(yàn)上來說,選擇帶PWM功能的4針風(fēng)扇的主板是首選,大部分主板及CPU散熱器帶的風(fēng)扇都是4針PWM的。
文章中所用圖片僅為科普使用,如有侵權(quán)內(nèi)容,可聯(lián)系作者刪除。
作者聲明本文無利益相關(guān),歡迎值友理性交流,和諧討論~