姓名:王重月? 學(xué)號(hào):21021211019? ?學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:(30條消息) 嵌入式必備知識(shí)_Oliver.H的博客-CSDN博客_嵌入式基本知識(shí)必備
【嵌牛導(dǎo)讀】單片機(jī)的組成厦坛,各自之間的關(guān)聯(lián)缕题。
【嵌牛鼻子】CPU杀饵、ARM缩歪、ROM吁朦、RAM吱晒、IO口
【嵌牛提問(wèn)】它們的結(jié)構(gòu)是什么引颈?都有什么用呢?
【嵌牛正文】
6.1 CPU 內(nèi)存 虛擬內(nèi)存 磁盤(pán)/硬盤(pán) 的關(guān)系
1.CPU即中央處理器,是英語(yǔ)“Central Processing Unit”的縮寫(xiě)凯肋。CPU從內(nèi)存或緩存中取出指令谊惭,放入指令寄存器,并對(duì)指令譯碼分解成一系列的微操作否过,然后發(fā)出各種控制命令午笛,執(zhí)行微操作系列,從而完成 系統(tǒng)指令的執(zhí)行苗桂。
2.但是药磺,CPU并不能直接調(diào)用存儲(chǔ)在硬盤(pán)上的系統(tǒng)、程序和數(shù)據(jù)煤伟,必須首先將硬盤(pán)的有關(guān)內(nèi)容存儲(chǔ)在內(nèi)存中癌佩,這樣才能被CPU讀取運(yùn)行。因而便锨,內(nèi)存(即物理 內(nèi)存围辙,是相對(duì)于硬盤(pán)這個(gè)“外存”而言)作為硬盤(pán)和CPU的“中轉(zhuǎn)站”,對(duì)電腦運(yùn)行速度有較大影響放案。
3.當(dāng)運(yùn)行數(shù)據(jù)超出物理內(nèi)存容納限度的時(shí)候姚建,部分?jǐn)?shù)據(jù)就會(huì)自行“溢出”,這時(shí)系統(tǒng)就會(huì)將硬盤(pán)上的部分空間模擬成內(nèi)存——虛擬內(nèi)存吱殉,并將暫時(shí)不運(yùn)行的程序或 不使用的數(shù)據(jù)存放到這部分空間之中掸冤,等待需要的時(shí)候方便及時(shí)調(diào)用。
4.由于內(nèi)存是帶電存儲(chǔ)的(一旦斷電數(shù)據(jù)就會(huì)消失)友雳,而且容量有限稿湿,所以要長(zhǎng)時(shí)間儲(chǔ)存程序或數(shù)據(jù)就需要使用硬盤(pán)(外存儲(chǔ)器)。硬盤(pán)也會(huì)影響系統(tǒng)速度押赊,因?yàn)?系統(tǒng)從硬盤(pán)中讀取數(shù)據(jù)并通過(guò)總線存入內(nèi)存的速度也會(huì)影響系統(tǒng)運(yùn)行的快慢饺藤。
6.2 CPU內(nèi)部結(jié)構(gòu)
CPU內(nèi)部結(jié)構(gòu)大概可以分為控制單元、運(yùn)算單元、存儲(chǔ)單元和時(shí)鐘等幾個(gè)主要部分涕俗。
6.3 ARM結(jié)構(gòu)處理器簡(jiǎn)析
1) arm處理器有7種模式
除了用戶(hù)模式外罗丰,其它6種為特殊模式,這些模式下咽袜,程序可以訪問(wèn)系統(tǒng)所有資源丸卷;這六種特殊模式中枕稀,除了系統(tǒng)模式询刹,其它5種又稱(chēng)為異常模式。
2) arm處理器介紹
arm處理器共有37個(gè)寄存器萎坷,其中31個(gè)通用寄存器凹联,6個(gè)狀態(tài)寄存器。
任意時(shí)刻可見(jiàn)的寄存器組包括15個(gè)通用寄存器(R0-R14),一個(gè)或兩個(gè)狀態(tài)寄存器及程序計(jì)數(shù)器(PC)哆档,其中通用寄存器中:
a) R0-R7為未備份寄存器蔽挠,未備份處理器在所有的處理模式下指的都是同一個(gè)物理寄存器,在異常中斷造成的處理器模式切換時(shí)瓜浸,由于不同的處理器模式使用的都是相同的物理寄存器澳淑,可能造成寄存器中的數(shù)據(jù)被破壞,未備份處理器沒(méi)有用于特別的用途插佛,任何可采用通用寄存器的場(chǎng)合都可以使用未備份處理器杠巡;
b) R8-R14為備份寄存器
c) 程序計(jì)數(shù)器PC,即R15
由于ARM采用了流水線機(jī)制雇寇,當(dāng)正確讀取了PC的值時(shí)氢拥,改值為當(dāng)前指令地址值加8個(gè)字節(jié),其實(shí)最終是加8個(gè)字節(jié)還是12個(gè)字節(jié)锨侯,取決于芯片的流水線級(jí)數(shù)嫩海。
d) 狀態(tài)寄存器CPSR
CPSR可以在任何處理器模式下被訪問(wèn),它包含了標(biāo)志位囚痴,中斷禁止位叁怪,當(dāng)前處理器模式標(biāo)志以及其他的一些控制和狀態(tài)位,每一種處理器模式下都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器稱(chēng)為SPSR(備份狀態(tài)寄存器)深滚。當(dāng)特定的異常中斷發(fā)生時(shí)奕谭,這個(gè)寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容。在異常中斷程序退出時(shí)成箫,可以用SPSR中保存的值來(lái)恢復(fù)CPSR展箱。
6.4 波特率是什么,為什么雙方波特率要相同蹬昌,高低波特率有什么區(qū)別混驰;
在電子通信領(lǐng)域,波特(Baud)即調(diào)制速率,指的是有效數(shù)據(jù)訊號(hào)調(diào)制載波的速率栖榨,即單位時(shí)間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)昆汹。
模擬線路信號(hào)的速率,也稱(chēng)調(diào)制速率婴栽,以波形每秒的振蕩數(shù)來(lái)衡量满粗。如果數(shù)據(jù)不壓縮,波特率等于每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)愚争,如果數(shù)據(jù)進(jìn)行了壓縮映皆,那么每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)通常大于調(diào)制速率,使得交換使用波特和比特/秒偶爾會(huì)產(chǎn)生錯(cuò)誤轰枝。
6.5 arm和dsp有什么區(qū)別
數(shù)據(jù)處理方bai面用DSP捅彻,因?yàn)樗梢詫?shí)現(xiàn)比du較復(fù)雜的運(yùn)算,我指的是硬zhi件完成運(yùn)算鞍陨,比如除法步淹,dao一般的arm沒(méi)有除法器,而是把除法變成加法等運(yùn)算诚撵,所以要很多步實(shí)現(xiàn)比較慢缭裆,這點(diǎn)你看看c編譯成的匯編就可以看出。當(dāng)然不只是除法其它微分卷積等等寿烟。
arm優(yōu)點(diǎn)在于外設(shè)澈驼,包括ad,da等等韧衣,所以一般用在控制類(lèi)的電子產(chǎn)品上盅藻。
當(dāng)然高級(jí)點(diǎn)的arm中有的也會(huì)集成dsp處理器,起到相互補(bǔ)充的作用畅铭。
6.6 ROM RAM的概念淺析
隨機(jī)存取存儲(chǔ)器(Random Access Memory氏淑,RAM)又稱(chēng)作“隨機(jī)存儲(chǔ)器”,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲(chǔ)器硕噩,也叫主存(內(nèi)存)假残。它可以隨時(shí)讀寫(xiě),而且速度很快炉擅,通常作為操作系統(tǒng)或其他正在運(yùn)行中的程序的臨時(shí)數(shù)據(jù)存儲(chǔ)媒介辉懒。當(dāng)電源關(guān)閉時(shí)RAM不能保留數(shù)據(jù)。如果需要保存數(shù)據(jù)谍失,就必須把它們寫(xiě)入一個(gè)長(zhǎng)期的存儲(chǔ)設(shè)備中(例如硬盤(pán))眶俩。RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會(huì)自動(dòng)消失快鱼,而ROM不會(huì)自動(dòng)消失颠印,可以長(zhǎng)時(shí)間斷電保存纲岭。
6.7 IO口工作方式:上拉輸入 下拉輸入 推挽輸出 開(kāi)漏輸出
1、上拉電阻:將一個(gè)不確定的信號(hào)线罕,通過(guò)一個(gè)電阻與電源VCC相連止潮,固定在高電平。在IO口為輸入模式且為上拉電阻時(shí)钞楼,IO口的常態(tài)為高電平喇闸。
2、下拉電阻:將一個(gè)不確定的信號(hào)询件,通過(guò)一個(gè)電阻與地GND相連燃乍,固定在低電平。在IO口為輸入模式且為下拉電阻時(shí)雳殊,IO口的常態(tài)為低電平橘沥。
3窗轩、推挽輸出:可以輸出高夯秃、低電平,連接數(shù)字器件痢艺。推挽結(jié)果一般是指兩個(gè)三極管分別受兩互補(bǔ)信號(hào)的控制仓洼,總是在一個(gè)三極管導(dǎo)通時(shí)令一個(gè)三極管截止。(推挽輸出的最大特點(diǎn)是可以真正的輸出高電平和低電平堤舒,且兩種電平下都有驅(qū)動(dòng)能力)色建。IO輸出0-接GND, IO輸出1 -接VCC
4舌缤、開(kāi)漏輸出:輸出端相當(dāng)于三極管的集電極箕戳,要得到高電平狀態(tài)需要加上拉電阻才行。適合做電流型的驅(qū)動(dòng)国撵,其吸收電流的能力比較強(qiáng)(20mA左右)(開(kāi)漏輸出最主要的特性就是高電平?jīng)]有驅(qū)動(dòng)能力陵吸,需要借助外部上拉電阻才能真正輸出高電平)。開(kāi)漏只能輸出低電平介牙,高電平的時(shí)候?qū)嶋H上是個(gè)高阻態(tài)壮虫,需要外接電阻來(lái)拉高的。
6.8扇區(qū) 塊 頁(yè) 簇的概念
1环础、什么是扇區(qū)和(磁盤(pán))塊囚似?
物理層面:一個(gè)磁盤(pán)按層次分為 磁盤(pán)組合 -> 單個(gè)磁盤(pán) -> 某一盤(pán)面 -> 某一磁道 -> 某一扇區(qū)
扇區(qū),顧名思義线得,每個(gè)磁盤(pán)有多條同心圓似的磁道饶唤,磁道被分割成多個(gè)部分。每部分的弧長(zhǎng)加上到圓心的兩個(gè)半徑贯钩,恰好形成一個(gè)扇形募狂,所以叫做扇區(qū)呵晨。扇區(qū)是磁盤(pán)中最小的物理存儲(chǔ)單位。通常情況下每個(gè)扇區(qū)的大小是512字節(jié)熬尺。(由于不斷提高磁盤(pán)的大小摸屠,部分廠商設(shè)定每個(gè)扇區(qū)的大小是4096字節(jié))
邏輯層面: 磁盤(pán)塊(虛擬出來(lái)的)。 塊是操作系統(tǒng)中最小的邏輯存儲(chǔ)單位粱哼。操作系統(tǒng)與磁盤(pán)打交道的最小單位是磁盤(pán)塊季二。
2、什么是簇揭措?和塊什么區(qū)別胯舷?
通俗的來(lái)講,在Windows下如NTFS等文件系統(tǒng)中叫做簇绊含;在Linux下如Ext4等文件系統(tǒng)中叫做塊(block)桑嘶。每個(gè)簇或者塊可以包括2、4躬充、8逃顶、16、32充甚、64…2的n次方個(gè)扇區(qū)以政。
3、為什么存在磁盤(pán)塊伴找?
讀取方便:由于扇區(qū)的數(shù)量比較小盈蛮,數(shù)目眾多在尋址時(shí)比較困難,所以操作系統(tǒng)就將相鄰的扇區(qū)組合在一起技矮,形成一個(gè)塊抖誉,再對(duì)塊進(jìn)行整體的操作。
分離對(duì)底層的依賴(lài):操作系統(tǒng)忽略對(duì)底層物理存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)衰倦。通過(guò)虛擬出來(lái)磁盤(pán)塊的概念袒炉,在系統(tǒng)中認(rèn)為塊是最小的單位。
4耿币、怎么映射磁盤(pán)塊梳杏?
磁盤(pán)控制器,其作用除了讀取數(shù)據(jù)淹接、控制磁頭等作用外十性,還有的功能就是映射扇區(qū)和磁盤(pán)塊的關(guān)系。
5塑悼、磁盤(pán)的讀寫(xiě)基本單位是什么劲适?
答案:讀寫(xiě)基本單位是扇區(qū)。磁盤(pán)的原理厢蒜,物理實(shí)現(xiàn)霞势,磁盤(pán)控制器是按照扇區(qū)這個(gè)單位讀取等操作數(shù)據(jù)的烹植。操作系統(tǒng)是通過(guò)塊簇來(lái)做為單位讀取等操作數(shù)據(jù)的。此題問(wèn)磁盤(pán)的讀寫(xiě)愕贡,和操作系統(tǒng)沒(méi)有關(guān)系草雕,千萬(wàn)不要聯(lián)系到操作系統(tǒng)層面去了。
文件系統(tǒng)就是操作系統(tǒng)的一部分固以,所以文件系統(tǒng)操作文件的最小單位是塊墩虹。
6、磁盤(pán)塊與扇區(qū)的大小
既然磁盤(pán)塊是一個(gè)虛擬概念憨琳。是操作系統(tǒng)自己"杜撰"的诫钓。軟件的概念,不是真實(shí)的篙螟。所以大小由操作系統(tǒng)決定菌湃,操作系統(tǒng)可以配置一個(gè)塊多大。
一個(gè)塊大小=一個(gè)扇區(qū)大小*2的n次方遍略。
N是可以修改的惧所。
7、為什么磁盤(pán)塊大小必須是扇區(qū)大小的整數(shù)倍呢墅冷?
磁盤(pán)讀取數(shù)據(jù)的基本單位就是一個(gè)扇區(qū)的大小纯路,一個(gè)塊的大小對(duì)于磁盤(pán)來(lái)說(shuō)就是一次獲取數(shù)據(jù)讀取的扇區(qū)數(shù)*扇區(qū)大小,如果是整數(shù)倍的扇區(qū)數(shù)對(duì)于磁盤(pán)的IO更好寞忿,速度更快,也會(huì)更合理的利用資源顶岸。否則會(huì)對(duì)扇區(qū)進(jìn)行分割腔彰。
一個(gè)扇區(qū)是512字節(jié)。有些硬盤(pán)廠商會(huì)提供4k大小扇區(qū)辖佣。這是物理結(jié)構(gòu)霹抛。磁盤(pán)定下來(lái)的結(jié)構(gòu)就是沒(méi)法修改的。所以必須要將塊設(shè)置為磁盤(pán)的大小卷谈。
8杯拐、4k對(duì)齊
隨著時(shí)代發(fā)展,硬盤(pán)容量不斷擴(kuò)展世蔗,使得之前定義的每個(gè)扇區(qū)512字節(jié)不再是那么的合理端逼,于是將每個(gè)扇區(qū)512字節(jié)改為每個(gè)扇區(qū)4096 個(gè)字節(jié),也就是現(xiàn)在常說(shuō)的“4K扇區(qū)”污淋。隨著NTFS成為了標(biāo)準(zhǔn)的硬盤(pán)文件系統(tǒng)顶滩,其文件系統(tǒng)的默認(rèn)分配單元大小(簇)也是4096字節(jié)寸爆,為了使簇與扇區(qū)相對(duì)應(yīng)礁鲁,即使物理硬盤(pán)分區(qū)與計(jì)算機(jī)使用的邏輯分區(qū)對(duì)齊盐欺,保證硬盤(pán)讀寫(xiě)效率,所以就有了“4K對(duì)齊”的概念仅醇。
新標(biāo)準(zhǔn)的”4K扇區(qū)”的硬盤(pán)在廠商為了保證與操作系統(tǒng)兼容的前提下冗美,也將扇區(qū)模擬成512B,會(huì)默認(rèn)定義為4096字節(jié)大小為一個(gè)簇析二,但因?yàn)槠湟龑?dǎo)區(qū)占用了一個(gè)磁道共63個(gè)扇區(qū)墩衙,真正的文件系統(tǒng)在63號(hào)扇區(qū)之后。
我們通過(guò)計(jì)算得出前63個(gè)扇區(qū)大小為:512Bx63=32256B
并按照默認(rèn)簇大小得出63扇區(qū)為:32256B÷4096B=7.875簇
即從第63個(gè)扇區(qū)結(jié)束甲抖,往后的每一個(gè)簇都會(huì)跨越兩個(gè)物理單元漆改,占據(jù)前一個(gè)單元的一小部分和后一個(gè)單元的一大部分。
而“4K對(duì)齊”主要是將硬盤(pán)的模擬扇區(qū)(512B)對(duì)齊到8的整數(shù)倍個(gè)“實(shí)際”4K扇區(qū)准谚,即4096B*8=32768B挫剑,其正好跨過(guò)了63扇區(qū)的特性,從第64個(gè)扇區(qū)對(duì)齊柱衔。
9樊破、塊與頁(yè)的關(guān)系
操作系統(tǒng)經(jīng)常與內(nèi)存和硬盤(pán)這兩種存儲(chǔ)設(shè)備進(jìn)行通信,類(lèi)似于“塊”的概念唆铐,都需要一種虛擬的基本單位哲戚。所以,與內(nèi)存操作艾岂,是虛擬一個(gè)頁(yè)的概念來(lái)作為最小單位顺少。與硬盤(pán)打交道,就是以塊為最小單位王浴。
6.11 什么是異步串口和同步串口
在計(jì)算機(jī)系統(tǒng)中脆炎,CPU和外部通信有兩種通信方式:并行通信和串行通信。而按照串行數(shù)據(jù)的時(shí)鐘控制方式氓辣,串行通信又可分為同步通信和異步通信兩種方式秒裕。
1、異步串行方式的特點(diǎn)
所謂異步通信钞啸,是指數(shù)據(jù)傳送以字符為單位几蜻,字符與字符間的傳送是完全異步的,位與位之間的傳送基本上是同步的体斩。異步串行通信的特點(diǎn)可以概括為:
①以字符為單位傳送信息梭稚。
②相鄰兩字符間的間隔是任意長(zhǎng)。
③因?yàn)橐粋€(gè)字符中的比特位長(zhǎng)度有限硕勿,所以需要的接收時(shí)鐘和發(fā)送時(shí)鐘只要相近就可以哨毁。
④異步方式特點(diǎn)簡(jiǎn)單的說(shuō)就是:字符間異步,字符內(nèi)部各位同步源武。
2扼褪、同步串行方式的特點(diǎn)
所謂同步通信想幻,是指數(shù)據(jù)傳送是以數(shù)據(jù)塊(一組字符)為單位,字符與字符之間话浇、字符內(nèi)部的位與位之間都同步脏毯。同步串行通信的特點(diǎn)可以概括為:
①以數(shù)據(jù)塊為單位傳送信息。
②在一個(gè)數(shù)據(jù)塊(信息幀)內(nèi)幔崖,字符與字符間無(wú)間隔食店。
③因?yàn)橐淮蝹鬏數(shù)臄?shù)據(jù)塊中包含的數(shù)據(jù)較多,所以接收時(shí)鐘與發(fā)送進(jìn)鐘嚴(yán)格同步赏寇,通常要有同步時(shí)鐘吉嫩。
3、場(chǎng)合
同步串行:通信網(wǎng)中嗅定,有大批量數(shù)據(jù)需要傳輸
異步串行:應(yīng)用于在工業(yè)自娩、實(shí)際應(yīng)用中。適用于短距離渠退、速率不高的情況下忙迁。
同步位系統(tǒng)比異步位系統(tǒng)要實(shí)用高效。這個(gè)比較好理解碎乃,計(jì)算機(jī)對(duì)幀的處理比對(duì)字符要少的多姊扔,在傳送相同大小的數(shù)據(jù)量的時(shí)候,計(jì)算機(jī)要對(duì)大量的字符進(jìn)行開(kāi)始與結(jié)束操作梅誓,幀則要少的多恰梢。同時(shí)同步位系統(tǒng)的下的網(wǎng)絡(luò)效率也更高,因?yàn)槊總€(gè)字符都至少包含兩位的開(kāi)始結(jié)束信息证九,這個(gè)在數(shù)據(jù)量大的時(shí)候開(kāi)銷(xiāo)是很客觀的删豺。
6.12 I2C時(shí)序圖
開(kāi)始條件:SCL高電平,SDA由高變低
停止條件:SCL高電平愧怜,SDA由低變高
總線空閑態(tài):SDA為高電平(沒(méi)有設(shè)備發(fā)送開(kāi)始條件)
應(yīng)答信號(hào):接受數(shù)據(jù)的IC在接受到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖妈拌,表示已收到數(shù)據(jù)拥坛。
寫(xiě):
1.主機(jī)發(fā)送開(kāi)始條件
2.發(fā)送從機(jī)地址(7位 )+ 寫(xiě)(0)
3.從機(jī)會(huì)產(chǎn)生一個(gè)應(yīng)答信號(hào)(一個(gè)CLK下,把SDA拉低)
4.主機(jī)得到應(yīng)答信號(hào)尘分,發(fā)送8位數(shù)據(jù)猜惋。
5.從機(jī)會(huì)產(chǎn)生一個(gè)應(yīng)答信號(hào)
6.重復(fù) 4.5 過(guò)程,直到主機(jī)發(fā)送停止條件
讀:
1.主機(jī)發(fā)送開(kāi)始條件
2.發(fā)送從機(jī)地址(7位)+讀(1)
3.從機(jī)會(huì)產(chǎn)生一個(gè)應(yīng)答信號(hào)(一個(gè)CLK下培愁,SDA拉低)
4.從機(jī)給主機(jī)發(fā)送8位數(shù)據(jù)
5.主機(jī)給從機(jī)發(fā)送應(yīng)答
6.從機(jī)得到應(yīng)答著摔,接著發(fā)送8位數(shù)據(jù)。
7.重復(fù)5.6過(guò)程定续,直到主機(jī)不發(fā)送應(yīng)答信號(hào)和產(chǎn)生停止信號(hào)
————————————————
版權(quán)聲明:本文為CSDN博主「Oliver.H」的原創(chuàng)文章谍咆,遵循CC 4.0 BY-SA版權(quán)協(xié)議禾锤,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43253519/article/details/108351553