軟件是如何控制硬件的.doc_第1頁(yè)
軟件是如何控制硬件的.doc_第2頁(yè)
軟件是如何控制硬件的.doc_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件是如何控制硬件的關(guān)于這個(gè)問(wèn)題,我已搜索了大量資料,但我的疑問(wèn)是:1代表高電平,0代表低電平,那么1到底是如何代表高電平的?0又是怎么代表低電平的?都說(shuō)軟件通過(guò)二進(jìn)制數(shù)0,1控制硬件,0,1也不過(guò)是數(shù)學(xué)符號(hào),說(shuō)到底還是虛擬的信號(hào),這些虛擬的信號(hào)時(shí)如何控制實(shí)體硬件的?都說(shuō)0,1控制電路的關(guān)和開(kāi),0,1這兩個(gè)虛擬的數(shù)學(xué)符號(hào)如何控制實(shí)體的電路的開(kāi)和關(guān)?計(jì)算機(jī)組成原理,計(jì)算機(jī)體系結(jié)構(gòu)二進(jìn)制在內(nèi)部就是高低電平,通過(guò)時(shí)鐘脈沖組成時(shí)序控制信號(hào),經(jīng)過(guò)控制器,微控器等一些部件控制門(mén)電路的開(kāi)合,完成各種操作。而軟件呢,其實(shí)也就是一塊塊的,什么操作調(diào)用什么代碼,然后把轉(zhuǎn)換為底層的代碼讓硬件執(zhí)行軟件是如何控制硬件的? 軟件在工作的時(shí)候也是實(shí)體,軟件的實(shí)質(zhì)就是電流信號(hào),用電壓的高低代表不同是信息,用這些電流信號(hào)去控制邏輯電路的通斷,靠邏輯電路的通斷來(lái)控制硬件的工作。 說(shuō)到底軟件就是起到一個(gè)開(kāi)關(guān)信號(hào)的作用,開(kāi)關(guān)要工作,必需保證硬件是加電的,沒(méi)有接通電源的硬件是無(wú)法用軟件來(lái)控制的。就好比沒(méi)有插上電源的臺(tái)燈,你怎么按開(kāi)關(guān)都是不會(huì)亮的。 任何軟件在運(yùn)行前都要有一個(gè)將其轉(zhuǎn)化為電流信號(hào)的實(shí)體化過(guò)程,你寫(xiě)在紙上的軟件代碼是永遠(yuǎn)也不能控制硬件的。早期電腦用人工接線(xiàn)輸入程序,相當(dāng)于用人體的力量將軟件代碼實(shí)體化為電信號(hào);現(xiàn)在我們用的軟盤(pán)、硬盤(pán)是通過(guò)磁頭將程序代碼轉(zhuǎn)化為電信號(hào),光盤(pán)需要通過(guò)光頭將程序代碼轉(zhuǎn)化為電信號(hào)等等。簡(jiǎn)單來(lái)說(shuō),就是C語(yǔ)言會(huì)被編譯成機(jī)器語(yǔ)言,由CPU I/O口輸入,CPU其實(shí)只是做二進(jìn)制加法運(yùn)算。它本身不會(huì)去處理任何程序。通過(guò)基本的加法運(yùn)算,將結(jié)果反饋會(huì)程序,程序通過(guò)這個(gè)值去控制其他硬件。你可以看到芯片其實(shí)有各種引腳,有些是8個(gè)一組的I/O,有些是控制中斷器,有些是計(jì)時(shí)器,電腦給引腳正電平時(shí),這些中斷器,計(jì)時(shí)器就開(kāi)始工作了。我的理解是這樣的:軟件和硬件配合工作的過(guò)程,就好比司機(jī)開(kāi)車(chē)。司機(jī)是軟件,方向盤(pán)、排擋、油門(mén)、剎車(chē)、雨刮器等等就執(zhí)行具體功能的是硬件。只有在司機(jī)軟件的有序組織和正確命令之下,硬件才會(huì)做出正確的動(dòng)作,完成正確的任務(wù)。沒(méi)有軟件,再好的硬件也只是死的擺設(shè)而已。具體來(lái)說(shuō),以通用計(jì)算機(jī)系統(tǒng)為例:內(nèi)存、CPU、顯卡、顯示器、聲卡等等這些硬件通過(guò)主板(主板本身也是硬件)接口和數(shù)據(jù)線(xiàn)鏈接合理地組織在一起之后,加載電壓,通過(guò)軟件的組織和協(xié)調(diào),各個(gè)硬件執(zhí)行相應(yīng)的任務(wù)。操作系統(tǒng)(例如Windows 7/8)就是一個(gè)最大的軟件系統(tǒng)。我們看到的軟件,都有漂亮的界面和顏色,選擇軟件上的選項(xiàng)和按鈕,然后執(zhí)行,軟件就會(huì)按照編程時(shí)設(shè)定好的邏輯產(chǎn)生電流控制信號(hào),通過(guò)數(shù)據(jù)線(xiàn)傳道到相應(yīng)的硬件那里,去控制邏輯電路的“接通”和“斷開(kāi)”狀態(tài),從而控制硬件執(zhí)行相應(yīng)的動(dòng)作。每個(gè)硬件都有自己的地址和名稱(chēng),軟件發(fā)出的電流控制信號(hào)會(huì)準(zhǔn)確地找到相關(guān)硬件,二進(jìn)制代碼的控制信號(hào)就是一些列0和1的組合。例如:軟件想讓顯卡在顯示器的某個(gè)區(qū)域顯示紅色,就會(huì)把顯示區(qū)域的位置信息和顏色編碼組合起來(lái)告訴顯卡,顯卡接到這個(gè)命令以后,就照章執(zhí)行,把執(zhí)行命令也是通過(guò)數(shù)據(jù)線(xiàn)傳到顯示器上,顯示器接到控制信號(hào)后,在相應(yīng)的區(qū)域顯示紅色。再比如我們要在軟件上播放一首MP3的歌曲,就會(huì)選擇這首歌,然后點(diǎn)播放按鈕,這是軟件界面上執(zhí)行的動(dòng)作。而軟件后臺(tái)執(zhí)行的則是先通過(guò)地址去硬盤(pán)上讀取這首歌的內(nèi)容,把它臨時(shí)存在內(nèi)存中,然后把這首MP3的內(nèi)容加上播放的命令一起組合成0和1的電流控制信號(hào)傳給聲卡,聲卡接到信號(hào)后,處理聲音,根據(jù)聲卡硬件的工作流程,其處理的結(jié)果就會(huì)傳到音箱硬件上播放出來(lái)。硬件本身可能是很復(fù)雜的,例如電腦的中央處理器CPU,上面集成了上億個(gè)處理和計(jì)算單元。復(fù)雜歸復(fù)雜沒(méi)關(guān)系,軟件控制它的原理和邏輯是很簡(jiǎn)單的,就是上面描述的發(fā)出電流信號(hào)去控制它計(jì)算單元的工作狀態(tài)和接收計(jì)算結(jié)果就行了。計(jì)算機(jī)軟件在計(jì)算機(jī)內(nèi)部無(wú)非也就是一堆01代碼,作用于硬件也是因?yàn)檫@些01代碼,這相對(duì)比較復(fù)雜的 舉個(gè)例子說(shuō):打印機(jī),它有自己的端口地址,當(dāng)你點(diǎn)擊打印的時(shí)候,系統(tǒng)會(huì)把這個(gè)指令傳到它的端口,給它加上一組高低電壓。 安裝軟件的過(guò)程除了把軟件拷到電腦上之外,剩下的還有給操作系統(tǒng)作個(gè)標(biāo)記(在注冊(cè)表內(nèi)注冊(cè)) 系統(tǒng)為每個(gè)硬件設(shè)備留下了端口地址,軟件作用于硬件首先是把指令傳送到他的端口地址。而硬件的工作 也無(wú)非是幾個(gè)指令而已,對(duì)它而言就是幾個(gè)高低電壓組成的,用軟件控制就是發(fā)給它幾個(gè)特殊的01組合代碼。軟件的工作就是給這樣的硬件編程。規(guī)定,什么樣的操作用什么樣的代碼而已。計(jì)算機(jī)智能識(shí)別0和1,也就是高低電信號(hào)。它跟軟件是通過(guò)I/O(即基本輸入輸出)進(jìn)行通信(可以理解為觸發(fā),你可以想象成家里的電燈開(kāi)和關(guān))。而軟件要想讓硬件識(shí)別就必須要轉(zhuǎn)換成0和1的高低電平,讓CPU一條一條去執(zhí)行。0和1稱(chēng)為計(jì)算機(jī)語(yǔ)言。所以不管你任何軟件用何種語(yǔ)言編寫(xiě)的程序,它最終都要轉(zhuǎn)換成0和1的高低電平讓CPU處理。(你不理解的話(huà)可以把CPU理解成人的大腦,比如我想去關(guān)燈,那大腦就會(huì)告訴我去按下電燈按鈕)就比如鍵盤(pán)上的數(shù)字按下代表相應(yīng)的脈沖施加在特定位置,之后可以控制相應(yīng)的顯示和動(dòng)作,這個(gè)我懂。但軟件是通過(guò)大量代碼實(shí)現(xiàn)十分復(fù)雜的動(dòng)作,且它的核心是軟件。我的疑問(wèn)1,代碼通過(guò)什么途徑控制硬件(比如成像系統(tǒng),數(shù)控系統(tǒng)),且如何給代碼賦予相應(yīng)的脈沖。簡(jiǎn)單說(shuō)游戲軟件,實(shí)現(xiàn)了大量復(fù)雜的顯示和操作,它通過(guò)什么途徑控制的。有人能解釋一下嗎?軟件自上到下,有應(yīng)用軟件,系統(tǒng)軟件,還有固化在硬件內(nèi)部的指令。應(yīng)用軟件面對(duì)用戶(hù),一般不能直接控制硬件;系統(tǒng)軟件預(yù)留有與應(yīng)用軟件的接口,能控制硬件。固定在硬件內(nèi)部的指令是硬件啟動(dòng)時(shí)的代碼和一些很常用的指令,執(zhí)行速度很快。軟件控制硬件的原理,CPU的內(nèi)部的指令暫存器和數(shù)據(jù)暫存器讀取到相關(guān)的指令代碼,指令暫存器再根據(jù)指令讓內(nèi)部硬件完成相關(guān)操作,再接收下一條指令代碼。軟件的作用就是產(chǎn)生一系列這樣的代碼,完成軟件的任務(wù)。比如Excel是應(yīng)用軟件,Windows是系統(tǒng)軟件,最終送到CPU執(zhí)行的是一系列的指令。你敲入的任何東西,最終就是通過(guò)類(lèi)似的東西/機(jī)制儲(chǔ)存的;所謂“指令”,其實(shí)就是“某個(gè)命令碼“(一般叫機(jī)器碼),這個(gè)”命令碼”會(huì)改變CPU內(nèi)部一堆“開(kāi)關(guān)”的狀態(tài),以激活不同的電路如果CPU不過(guò)是一堆開(kāi)關(guān)的話(huà),它為什么能“聽(tīng)懂”類(lèi)似“加法”“do.while”這類(lèi)高大上的復(fù)雜指令、甚至做出office、photoshop甚至人工智能這樣神奇的東西呢?這些高大上的語(yǔ)義,是怎么被電路所理解的呢?比如說(shuō),CPU,它根本上其實(shí)只會(huì)三招:與、或、非別看CPU只會(huì)這三板斧;可當(dāng)它們巧妙的組合起來(lái)后(構(gòu)造成計(jì)數(shù)器、指令寄存器等等等等再組合成CPU),就達(dá)到了圖靈完備的要求,產(chǎn)生了質(zhì)變而CPU指令集呢,則形成了另外一個(gè)強(qiáng)大得多的圖靈機(jī),這就是機(jī)器碼(和匯編指令幾乎一一對(duì)應(yīng));然后呢,諸如c/c+、java等高級(jí)語(yǔ)言,就是利用CPU指令集形成的、另一個(gè)更加強(qiáng)大的圖靈機(jī)(編譯器/解釋器負(fù)責(zé)兩種圖靈機(jī)之間的翻譯工作)。而程序員們研究的,就是如何用編程語(yǔ)言這樣一個(gè)強(qiáng)大的圖靈機(jī),去實(shí)現(xiàn)office、photoshop、wow甚至人工智能這樣復(fù)雜的事物。這也是一個(gè)層層模擬的過(guò)程。軟件控制硬件,也是類(lèi)似的原理。前

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論