淺顯易懂的理解嵌入式開發中的硬件知識
發布時間:2017-11-22 責任編輯:lina
電平(Level)
在數字電路中,分為高電平和低電平,分別用1和0表示。一個數字電路的管腳,總是存在一個電平的,要麼高要麼低,或者說要麼1要到0(其實,還有另一種狀態,後麵會提到)。
總線(Bus)
在嵌入式係統中一定會有一塊處理器芯片,此外,還有其它的芯片作為外部設備(後麵簡稱外設),zhexiexinpianyuchuliqixiezuoshixianchanpindegongneng。fuzadechanpinwangwangshiyoudaliangdexinpianzuchengde。namebukebimiandeshiwomenxuyaojiangsuoyoudewaisheyuchuliqijinxingxianglian,zuiweijiandandeshijiangsuoyoudewaishedoucaiyongduli(注意是獨立)的信號線連接至處理器,這樣的好處是容易理解,但問題是:不可行。因為處理器芯片需要引出太多的線了,從芯片的生產和產品的生產角度來看都不實際。加之,處理器(在此我們假設處理器是單核的,而不是多核的)chulishiwuzaiweiguanshangshichuanxingde,yejiushishuozaimouyishikeruguoyaoduiwaishejinxingduxiecaozuo,nazhikenengshiduidaliangwaishezhongdeyigejinxing,jiduogewaishebukenengzaiweiguanshangbeichuliqitongshifangwen。xuyaozhuyideshi,zhelitichuleweiguanzheyigainian,zheshiweilequbieyuhongguan。conghongguanshanglaijiang,yigechuliqizhongkeyiyouduogerenwutongshiyunxing,danzhexierenwuzaiweiguanshangqueshiyigeyigeyunxingde(後麵會用串行來描述這裏所說的“一個一個”),多duo任ren務wu的de串chuan行xing運yun行xing實shi現xian是shi由you操cao作zuo係xi統tong扮ban演yan著zhe重zhong要yao的de角jiao色se來lai實shi現xian的de。回hui到dao我wo們men的de話hua題ti,即ji然ran將jiang每mei個ge外wai設she采cai用yong獨du立li的de信xin號hao線xian連lian到dao處chu理li器qi不bu可ke行xing,且qie處chu理li器qi在zai單dan一yi時shi間jian內nei隻zhi會hui對dui一yi個ge外wai設she進jin行xing訪fang問wen,那na我wo們men能neng不bu能neng采cai用yong共gong享xiang的de信xin號hao線xian將jiang所suo有you的de芯xin片pian連lian在zai一yi起qi呢ne?這zhe就jiu是shi總zong線xian概gai念nian的de由you來lai。通tong俗su的de說shuo,如ru果guo我wo們men周zhou圍wei有you十shi個ge家jia庭ting,為wei了le讓rang這zhe十shi個ge家jia庭ting每mei兩liang個ge之zhi間jian都dou能neng往wang來lai,我wo們men並bing不bu需xu要yao為wei每mei兩liang個ge家jia庭ting修xiu一yi條tiao單dan獨du(注意是單獨)的路(如果這樣,要修45條路),而是可以修一條大路,然後,每個家都與大路相連。
對(dui)於(yu)總(zong)線(xian),我(wo)們(men)往(wang)往(wang)說(shuo)總(zong)線(xian)是(shi)處(chu)理(li)器(qi)的(de),而(er)其(qi)它(ta)的(de)外(wai)設(she)是(shi)掛(gua)在(zai)總(zong)線(xian)上(shang)的(de)。那(na)有(you)一(yi)個(ge)問(wen)題(ti),我(wo)們(men)每(mei)一(yi)時(shi)間(jian)隻(zhi)能(neng)訪(fang)問(wen)掛(gua)在(zai)總(zong)線(xian)上(shang)的(de)一(yi)個(ge)外(wai)設(she),那(na)如(ru)何(he)區(qu)分(fen)這(zhe)些(xie)外(wai)設(she)呢(ne)?和(he)我(wo)們(men)的(de)路(lu)一(yi)樣(yang),我(wo)們(men)需(xu)要(yao)用(yong)地(di)址(zhi)來(lai)區(qu)分(fen)每(mei)一(yi)個(ge)家(jia)庭(ting),在(zai)總(zong)線(xian)上(shang),也(ye)是(shi)采(cai)用(yong)地(di)址(zhi)來(lai)進(jin)行(xing)區(qu)分(fen)的(de)。這(zhe)樣(yang),總(zong)線(xian)就(jiu)根(gen)據(ju)其(qi)功(gong)能(neng)分(fen)為(wei)兩(liang)類(lei)了(le)。一(yi)類(lei)是(shi)地(di)址(zhi)總(zong)線(xian),這(zhe)一(yi)總(zong)線(xian)上(shang)的(de)數(shu)據(ju)隻(zhi)會(hui)是(shi)從(cong)處(chu)理(li)器(qi)向(xiang)外(wai)設(she)“流”,是單向的。另一類則是數據總線,用來將數據從處理器傳送到外設(從處理器的角度來說是寫操作)或者是將數據從外設傳送到處理器(從處理器的角度來說是讀操作),顯(xian)然(ran),數(shu)據(ju)總(zong)線(xian)是(shi)雙(shuang)向(xiang)的(de)。也(ye)就(jiu)是(shi)說(shuo),在(zai)我(wo)們(men)的(de)嵌(qian)入(ru)式(shi)係(xi)統(tong)中(zhong)同(tong)時(shi)存(cun)在(zai)地(di)址(zhi)總(zong)線(xian)和(he)數(shu)據(ju)總(zong)線(xian)將(jiang)所(suo)有(you)需(xu)要(yao)與(yu)處(chu)理(li)器(qi)進(jin)行(xing)通(tong)訊(xun)的(de)芯(xin)片(pian)連(lian)在(zai)一(yi)起(qi)的(de)。
總線是有寬度的,正如我們的路分為“三車道”或是“四車道”,我們說32位處理器,是指其數據總線寬度是32位,也就是“有32輛車能同時跑”,顯然,寬度越是寬我們的處理器速度就越是快,因為我們從外設芯片存取數據的速度會更快,這就是為什麼我們的計算機向64位發展的原因。同樣的,地址總線也是有寬度的,對於32位處理器其最大寬度也就是32位。
總(zong)線(xian)的(de)概(gai)念(nian)有(you)了(le),那(na)接(jie)下(xia)來(lai)的(de)一(yi)個(ge)問(wen)題(ti)是(shi),即(ji)使(shi)是(shi)每(mei)一(yi)個(ge)外(wai)設(she)都(dou)有(you)一(yi)個(ge)地(di)址(zhi),那(na)這(zhe)一(yi)地(di)址(zhi)記(ji)在(zai)哪(na)裏(li)呢(ne)?是(shi)放(fang)在(zai)外(wai)設(she)芯(xin)片(pian)上(shang)嗎(ma)?如(ru)果(guo)這(zhe)樣(yang)的(de)話(hua),那(na)就(jiu)有(you)一(yi)個(ge)問(wen)題(ti),每(mei)一(yi)類(lei)外(wai)設(she)的(de)地(di)址(zhi)必(bi)須(xu)是(shi)不(bu)能(neng)重(zhong)疊(die)的(de),而(er)當(dang)一(yi)個(ge)產(chan)品(pin)中(zhong)需(xu)要(yao)兩(liang)塊(kuai)一(yi)樣(yang)的(de)芯(xin)片(pian)的(de)話(hua),兩(liang)塊(kuai)芯(xin)片(pian)的(de)地(di)址(zhi)就(jiu)無(wu)法(fa)區(qu)分(fen)了(le),看(kan)來(lai)這(zhe)樣(yang)操(cao)作(zuo)存(cun)在(zai)問(wen)題(ti)。還(hai)有(you),如(ru)果(guo)這(zhe)樣(yang)的(de)話(hua)每(mei)一(yi)個(ge)外(wai)設(she)也(ye)得(de)與(yu)(比如,32根)數據總線完全相連,並監聽數據線以了解處理器是不是在“叫”自zi己ji,這zhe樣yang很hen是shi複fu雜za。此ci外wai,地di址zhi也ye有you可ke能neng因yin為wei外wai設she種zhong類lei的de增zeng多duo而er用yong光guang。總zong的de來lai說shuo地di址zhi不bu能neng存cun放fang在zai外wai設she芯xin片pian,那na如ru何he讓rang外wai設she知zhi道dao,此ci時shi它ta是shi被bei處chu理li器qi招zhao換huan從cong而er需xu要yao進jin行xing讀du寫xie訪fang問wen的de呢ne?答da案an就jiu是shi芯xin片pian的de片pian選xuan(CS, chip select)信號,或者又號使能(ENable)信號。
片選(CS 或EN)
片選信號對於外設芯片來講,就是一個(也是一根)通知信號,告訴芯片“嘿,請開門,我要放些東西進來,或是拿些東西走”,zhelidedongxizhinengshishuju,bukenengshiyumibangshenmede。nayougewenti,zhegexinhaoyuancongnalilaine?xianran,zhinengcongchuliqilai。nashibushiyeshixiangzongxiannayang,meiyigexinpiandougongyongyigenxianlianzaiyiqine?ruguozheyang,kenengchuliqi“一叫開門”所有的芯片都將“門”打開了。如果是處理器寫數據,那可能所有的芯片都被寫入同樣的數據。而取數據時,每個外設芯片都向外“扔”數據,這一定會造成數據總線衝突,因為有的芯片向總線上“扔”1,有的則“扔”0,這種情況下處理器一定會“發瘋”的,因為它不知道應當得到1還是0。
即(ji)然(ran)這(zhe)樣(yang),那(na)顯(xian)然(ran)不(bu)能(neng)將(jiang)所(suo)有(you)的(de)片(pian)選(xuan)信(xin)號(hao)連(lian)在(zai)一(yi)起(qi)了(le),隻(zhi)能(neng)是(shi)各(ge)芯(xin)片(pian)的(de)片(pian)選(xuan)信(xin)號(hao)獨(du)立(li)。前(qian)麵(mian)提(ti)到(dao)了(le)地(di)址(zhi)總(zong)線(xian),我(wo)們(men)是(shi)采(cai)用(yong)一(yi)根(gen)地(di)址(zhi)線(xian)連(lian)一(yi)個(ge)外(wai)設(she)芯(xin)片(pian)呢(ne)?還(hai)是(shi)采(cai)用(yong)其(qi)它(ta)的(de)方(fang)法(fa)。如(ru)果(guo)采(cai)用(yong)一(yi)根(gen)地(di)址(zhi)線(xian)連(lian)一(yi)個(ge)外(wai)設(she)芯(xin)片(pian),那(na)可(ke)能(neng)最(zui)多(duo)隻(zhi)能(neng)掛(gua)接(jie)32個芯片了,這顯然不行。其實,在現實中,是采用32位的數字來表示一個外設芯片的地址的,比如1可以表示芯片A,而6534可以表示另外一個芯片B,等等。由此看來,理論上我們可以表示2的32次方(4294967296)個設備,之所以說理論上,是因為有的設備要占用大量的地址。即然這樣,那還有一個問題,如果將32位的地址總線轉換成芯片的一根片選信號呢?這需要引入譯碼(器)的概念。
譯碼(器)
譯碼器將一個數據轉換成一根信號線上的信號,比如3/8譯碼器,可以將一個位寬是3位的數據轉換成8根(2的3次方)完全獨立的信號線,當向數據側寫入二進製的011時,對應的是8根線的第3根,當輸入二進製的111時,對應的是8根線中的最後一根。有了譯碼器,處理器的地址線就簡化了,隻要32根地址線加上外麵的譯碼器,就可以訪問大量的外設芯片了。外部設備的選擇問題,我們已經解決了,現在還得回頭看一看數據總線。

圖1 3/8譯碼器
在嵌入式係統中,所有芯片的數據總線可以理解成是直接相連的。之所以用了“可以理解”一yi詞ci,是shi因yin為wei為wei了le提ti高gao總zong線xian的de負fu載zai能neng力li,其qi中zhong會hui加jia入ru總zong線xian驅qu動dong器qi。為wei了le理li解jie,我wo們men看kan一yi看kan我wo們men生sheng活huo中zhong的de自zi來lai水shui,比bi如ru,在zai北bei京jing理li論lun上shang可ke能neng所suo有you的de水shui管guan是shi連lian在zai一yi起qi的de,但dan中zhong間jian可ke能neng為wei了le提ti高gao水shui壓ya,存cun在zai很hen多duo小xiao的de水shui站zhan用yong來lai增zeng加jia供gong水shui壓ya力li,而er不bu可ke能neng全quan北bei京jing所suo有you的de自zi來lai水shui自zi接jie來lai自zi一yi個ge水shui廠chang。即ji然ran所suo有you的de數shu據ju總zong線xian是shi連lian在zai一yi起qi的de,那na就jiu可ke能neng會hui有you問wen題ti。當dang向xiang外wai部bu設she備bei寫xie數shu據ju時shi,處chu理li器qi先xian向xiang地di址zhi總zong線xian輸shu送song目mu標biao外wai設she的de地di址zhi,地di址zhi譯yi碼ma器qi將jiang其qi轉zhuan換huan成cheng一yi根gen信xin號hao的de片pian選xuan信xin號hao送song到dao了le目mu標biao外wai設she,目mu標biao外wai設she收shou到dao這zhe一yi信xin號hao後hou,將jiang“門”打開。接下來處理器將要傳送到外設的數據往數據總線上一放,由於隻有目標外設芯片打開了“門”,所以數據隻會進入到目標外設,而其它的外設什麼也不會收到。很好!處chu理li器qi向xiang外wai寫xie數shu據ju應ying當dang沒mei有you問wen題ti,我wo們men接jie下xia來lai看kan一yi看kan讀du。讀du的de話hua,由you於yu數shu據ju是shi從cong外wai設she輸shu送song到dao處chu理li器qi的de,盡jin管guan我wo們men采cai用yong和he寫xie一yi樣yang的de方fang法fa打da開kai目mu標biao外wai設she的de“門”,但此時,其它的外設也在數據總線上,它們有可能處於1也可能處於0,是不是會影響處理器讀取目標外設的數據呢?結果當然不會,但我們得引入另一個概念:高阻態。
高阻態
很(hen)顯(xian)然(ran),當(dang)處(chu)理(li)器(qi)從(cong)目(mu)標(biao)外(wai)設(she)讀(du)數(shu)據(ju)時(shi),我(wo)們(men)希(xi)望(wang)其(qi)它(ta)沒(mei)有(you)被(bei)選(xuan)上(shang)的(de)芯(xin)片(pian)的(de)數(shu)據(ju)總(zong)線(xian)不(bu)會(hui)對(dui)目(mu)標(biao)外(wai)設(she)所(suo)要(yao)傳(chuan)送(song)的(de)數(shu)據(ju)有(you)影(ying)響(xiang),那(na)怎(zen)麼(me)辦(ban)呢(ne)?實(shi)際(ji)上(shang),當(dang)芯(xin)片(pian)沒(mei)有(you)被(bei)選(xuan)中(zhong)時(shi),其(qi)數(shu)據(ju)總(zong)線(xian)都(dou)處(chu)於(yu)高(gao)阻(zu)態(tai)。所(suo)謂(wei)的(de)高(gao)阻(zu)態(tai),我(wo)們(men)可(ke)以(yi)理(li)解(jie)成(cheng)這(zhe)一(yi)管(guan)腳(jiao)在(zai)外(wai)設(she)芯(xin)片(pian)內(nei)部(bu)是(shi)斷(duan)開(kai)的(de),如(ru)此(ci)一(yi)來(lai),顯(xian)然(ran)不(bu)會(hui)對(dui)處(chu)理(li)器(qi)從(cong)目(mu)標(biao)外(wai)設(she)讀(du)取(qu)數(shu)據(ju)造(zao)成(cheng)任(ren)何(he)的(de)影(ying)響(xiang)了(le)。我(wo)們(men)說(shuo)當(dang)一(yi)個(ge)芯(xin)片(pian)沒(mei)有(you)被(bei)選(xuan)中(zhong)或(huo)是(shi)沒(mei)有(you)被(bei)使(shi)能(neng)時(shi),其(qi)數(shu)據(ju)總(zong)線(xian)一(yi)定(ding)是(shi)處(chu)於(yu)高(gao)阻(zu)態(tai)的(de)。前(qian)麵(mian)用(yong)了(le)“門”的開和關來打比方,那“門”是shi指zhi什shen麼me呢ne?是shi指zhi外wai設she的de數shu據ju總zong線xian,片pian選xuan信xin號hao的de作zuo用yong就jiu是shi控kong製zhi將jiang外wai設she的de數shu據ju總zong線xian與yu處chu理li器qi的de數shu據ju總zong線xian相xiang連lian或huo是shi斷duan開kai。更geng多duo的de關guan於yu高gao阻zu態tai的de講jiang解jie可ke參can看kan前qian麵mian寫xie的de文wen章zhang《高阻態和三態門》。
驅動
總zong線xian上shang的de數shu據ju是shi誰shui放fang上shang去qu的de我wo們men就jiu說shuo誰shui是shi那na一yi時shi刻ke的de驅qu動dong者zhe。也ye就jiu是shi說shuo,當dang處chu理li器qi向xiang外wai設she寫xie數shu據ju時shi,它ta是shi在zai驅qu動dong數shu據ju總zong線xian的de,而er當dang處chu理li器qi從cong目mu標biao外wai設she讀du取qu數shu據ju時shi,目mu標biao外wai設she是shi在zai驅qu動dong數shu據ju總zong線xian的de。對dui於yu地di址zhi總zong線xian,因yin為wei隻zhi可ke能neng從cong處chu理li器qi向xiang目mu標biao外wai設she寫xie,所suo以yi地di址zhi總zong線xian永yong遠yuan是shi由you處chu理li器qi驅qu動dong的de。當dang一yi個ge芯xin片pian沒mei有you被bei選xuan中zhong時shi,我wo們men說shuo它ta並bing不bu驅qu動dong數shu據ju總zong線xian。
三態門
前麵我們說到外設芯片的數據總線在沒有被選中時其處於高阻態,當被選中時,其電平可能是高(1)或是低(0)。如此一來,我們說外設的數據總線其芯片管腳是屬於三態門的,即存在高電平、低電平和高阻態,三個狀態。更多的關於三態門的講解可參看前麵寫的文章《高阻態和三態門》。
電平的有效性
前qian麵mian我wo們men了le解jie了le什shen麼me是shi片pian選xuan信xin號hao,也ye講jiang到dao了le三san態tai門men,需xu要yao指zhi出chu的de是shi片pian選xuan信xin號hao通tong常chang不bu是shi三san態tai門men,其qi隻zhi存cun在zai兩liang個ge狀zhuang態tai,即ji高gao電dian平ping或huo是shi低di電dian平ping。前qian麵mian我wo們men也ye說shuo了le,片pian選xuan信xin號hao是shi用yong來lai“開門”的,而片選信號又有高和低電平,那到底是高電平表示“開門”呢?還是低電平?對於這一問題,我們稱如果一個電平對於一個片選信號表示“開門”那麼它就是這一信號的有效電平。比如,對於一個片選信號,如果低電平表示“開門”,那na麼me我wo們men說shuo這zhe個ge片pian選xuan信xin號hao是shi低di電dian平ping有you效xiao的de。雖sui然ran,在zai這zhe裏li我wo們men用yong片pian選xuan信xin號hao來lai解jie釋shi電dian平ping的de有you效xiao性xing,但dan是shi很hen多duo信xin號hao都dou存cun在zai有you效xiao性xing的de問wen題ti,比bi如ru,後hou麵mian我wo們men將jiang要yao談tan的de讀du信xin號hao和he寫xie信xin號hao都dou存cun在zai有you效xiao性xing問wen題ti。
時序
zaiqianmianwomenshuodaodangchuliqiyaoxiangwaishexinpianxieshujushi,xuyaoxianjiangsuoxufangwendewaishededizhifangzaidizhizongxianshang,ranhou,youyimaqijiangdizhizongxianshangdeshujuzhuanhuanchengpianxuanxinhao,pianxuanxinhaozeshinengmubiaowaishexinpian,jiexialaichuliqixieshujudaoshujuzongxianshang,congerwanchengyigexiecaozuo。xianran,zaichuliqijiangshujuxiedaoshujuzongxianzhiqiandizhixianshangdeshujubixuyizhibaoliuyiduanshijian,fouzedehuayimaqibunengchangshijiandeshipianxuanxinhaoyouxiao。dangwanchengleshujudexiecaozuohou,chuliqijiubuxuyaobaozhengdizhizongxianshangdedizhiyouxiaole。womenkeyikanchu,zheyixiliedecaozuodouyouyidingyangedeshijianshunxude,zhechengzhiweishixu。shixumiaoshulechuliqiyuwaibushebeidejiaohuxinhao “規程”,大家隻有按照這一“規程”來lai操cao作zuo,才cai能neng保bao證zheng處chu理li器qi與yu外wai部bu設she備bei之zhi間jian能neng正zheng常chang的de通tong訊xun。這zhe好hao比bi,我wo們men的de道dao路lu上shang的de紅hong綠lv燈deng,如ru果guo我wo們men行xing人ren和he車che輛liang不bu按an照zhao其qi指zhi示shi來lai通tong行xing的de話hua,就jiu會hui出chu現xian事shi故gu。通tong常chang,采cai用yong時shi序xu圖tu來lai描miao述shu芯xin片pian之zhi間jian通tong訊xun的de信xin號hao“規程”。

圖2 讀時序圖

圖3 讀時序圖
從圖中我們可以看出ADDRESS是表示地址總線的,DQ是表示數據總線的,CE是shi片pian選xuan信xin號hao,且qie是shi低di電dian平ping有you效xiao,其qi寬kuan度du要yao保bao證zheng在zai進jin行xing讀du操cao作zuo時shi總zong是shi有you效xiao的de。學xue會hui看kan時shi序xu圖tu對dui於yu做zuo嵌qian入ru式shi係xi統tong開kai發fa非fei常chang有you幫bang助zhu,因yin為wei我wo們men不bu可ke避bi免mian的de要yao與yu芯xin片pian打da交jiao道dao。在zai時shi序xu圖tu中zhong,通tong常chang會hui標biao識shi很hen多duo的de時shi間jian需xu求qiu信xin息xi。在zai寫xie啟qi動dong代dai碼ma時shi需xu要yao初chu始shi化hua各ge地di址zhi空kong間jian的de片pian選xuan地di址zhi寄ji存cun器qi和he讀du寫xie時shi序xu,時shi序xu的de配pei置zhi依yi據ju就jiu是shi來lai自zi於yu外wai設she芯xin片pian的de時shi間jian需xu求qiu,這zhe是shi芯xin片pian手shou冊ce很hen重zhong要yao的de一yi部bu分fen內nei容rong。當dang一yi個ge地di址zhi空kong間jian中zhong存cun在zai多duo個ge外wai設she芯xin片pian時shi,我wo們men需xu要yao考kao慮lv到dao其qi中zhong最zui慢man的de外wai設she芯xin片pian的de時shi間jian需xu求qiu,否fou則ze的de話hua有you的de芯xin片pian就jiu不bu能neng正zheng常chang工gong作zuo。
讀信號
當dang處chu理li器qi需xu要yao從cong外wai設she芯xin片pian讀du取qu信xin號hao時shi,除chu了le需xu要yao產chan生sheng片pian選xuan信xin號hao外wai,還hai需xu要yao告gao訴su外wai設she芯xin片pian這zhe是shi一yi個ge讀du操cao作zuo,而er不bu是shi一yi個ge寫xie操cao作zuo,這zhe是shi通tong過guo讀du信xin號hao來lai實shi現xian的de。
寫信號
前麵講了讀信號,我想對於寫信號也就不難理解了,這個信號用於告訴外設芯片,這是一個向外設芯片寫數據的操作。
I/O端口
前麵提到了外設(芯片)),現在是對外設進行分類的時候了。大體上外設分為兩類,一類是存儲器外設,而另一類是非存儲器外設,後者常被稱之為I/O設備,這裏的I/O是Input/Output的簡寫,即輸入、輸出。可見,I/O外設是一個非常寬泛的概念。對於存儲器外設,其特點是,它所占用的空間是連續的一片。比如,SDRAM內存就是屬於存儲器外設,如果其容量是8M字節,那麼其占用的地址空間也會是8M的。與存儲器外設所不同的是,I/O外設所點用的地址一般都很少。比如一個I/O外設可能存在多個控製寄存器,這些控製寄存器從處理器來看就是多個I/O端口(地址),向(xiang)這(zhe)個(ge)地(di)址(zhi)寫(xie)數(shu)據(ju)就(jiu)是(shi)向(xiang)外(wai)設(she)所(suo)對(dui)應(ying)的(de)寄(ji)存(cun)器(qi)寫(xie)數(shu)據(ju),反(fan)之(zhi),也(ye)可(ke)以(yi)是(shi)讀(du)。比(bi)如(ru),一(yi)個(ge)串(chuan)口(kou)芯(xin)片(pian)可(ke)能(neng)存(cun)在(zai)多(duo)個(ge)寄(ji)存(cun)器(qi),一(yi)個(ge)用(yong)來(lai)查(zha)詢(xun)芯(xin)片(pian)的(de)狀(zhuang)態(tai),一(yi)個(ge)用(yong)來(lai)設(she)置(zhi)芯(xin)片(pian)的(de)功(gong)能(neng),另(ling)一(yi)個(ge)用(yong)來(lai)讀(du)取(qu)芯(xin)片(pian)從(cong)串(chuan)口(kou)線(xian)所(suo)收(shou)到(dao)的(de)數(shu)據(ju),最(zui)後(hou),還(hai)有(you)一(yi)個(ge)用(yong)來(lai)向(xiang)芯(xin)片(pian)寫(xie)數(shu)據(ju)以(yi)向(xiang)串(chuan)口(kou)線(xian)上(shang)發(fa)送(song)數(shu)據(ju)。對(dui)於(yu)這(zhe)一(yi)串(chuan)口(kou)芯(xin)片(pian)的(de)寄(ji)存(cun)器(qi),從(cong)處(chu)理(li)器(qi)的(de)角(jiao)度(du)來(lai)看(kan),都(dou)是(shi)獨(du)立(li)的(de)I/O端口。
I/O端口存在讀、xiexingwenti,youdeduankoushizhidude,youdeduankoushizhixiede,haiyoudeduankoushijikeduyekexie,qiduxiexingshiyouwaishexinpiandejicunqisuojuedingde,zaixinpiandeshujushoucezhongnengzhaodao。xuyaozhichudeshi,youxiecunchuqiwaisheyecunzaiI/O端口,以對其進行一定的控製。從I/O端口這一名字來看,對於處理器來說,就是對從外麵讀入數據或是向外麵輸出數據的一個接口總稱。
中斷
中斷從硬件的角度來看就是一個能產生高、低(di)電(dian)平(ping)的(de)一(yi)根(gen)信(xin)號(hao)線(xian),但(dan)理(li)解(jie)它(ta)需(xu)要(yao)從(cong)處(chu)理(li)器(qi)的(de)角(jiao)度(du)出(chu)發(fa)。我(wo)們(men)說(shuo)過(guo)了(le),處(chu)理(li)器(qi)從(cong)微(wei)觀(guan)上(shang)看(kan),所(suo)做(zuo)的(de)工(gong)作(zuo)是(shi)按(an)順(shun)序(xu)進(jin)行(xing)的(de),其(qi)對(dui)程(cheng)序(xu)的(de)處(chu)理(li)隻(zhi)能(neng)是(shi)一(yi)條(tiao)指(zhi)令(ling)一(yi)條(tiao)指(zhi)令(ling)的(de)執(zhi)行(xing)。如(ru)果(guo)存(cun)在(zai)需(xu)要(yao)對(dui)外(wai)設(she)芯(xin)片(pian)進(jin)行(xing)訪(fang)問(wen),而(er)有(you)可(ke)能(neng)從(cong)處(chu)理(li)器(qi)發(fa)出(chu)讀(du)、xieminglinghou,youyuwaishetongchangbichuliqimanhenduo,suoyiwaishexinpianxuyaoyixieshijianlaizhunbeihaosuoxudeshuju。zaizhezhongqingkuangxia,ruguochuliqiyizhidengwaishexinpiandefanhuishujuzaizhixinghouxudezhilingdehua,jianghaofeibaoguideshijian,zhexieshijianwanquankeyiyonglaizuoqitadegongzuo。biewangle,conghongguanshangkanlaichuliqichangchangshiduorenwude,renwushizhicaozuoxitongsuotigongdetiaodudanwei。dangyigerenwuyinweidengdaiwaishexinpiandeshujuerzusaishi,womenkeyiqiehuandaolingwaiderenwu,congertigaochulixiaolv。zhejiuyouyigewenti,dangchuliqiquchulilingyigerenwushi,ruguowaishexinpiandeshujuhaoledehua,ruguogaosuchuliqine?duile!就是通過中斷信號。中斷信號的高、低電平可以用來表示是否有中斷需要處理器注意以處理特定的事件(比如,外設數據準備好了的事件)。
youcikanlai,zhongduandeyinrunengdadadetigaochuliqideyunyongxiaolv。weileshiyongchuliqishangdezhongduan,yikaishiwomenxuyaochushihuahaochuliqidezhongduankongzhiqi,biruanzhuanghaosuoxudezhongduanfuwuchengxuhuochengzhiweiISR(Interrupt Service Routine),然後,打開中斷屏蔽位。中斷服務程序中需要做如下的操作:
從外設讀入或向外設寫數據。讀還是寫通常需要讀取外設的中斷狀態寄存器來決定。
qingchuwaishedezhongduanxinhao。womenzhidao,zhongduanxinhaoshiyouwaishexinpianqudongde,weilegaosuwaishexinpian,chuliqiyijingchuliwanlesuoxuzuodegongzuo,namechuliqixuyaotongguoyidingdefangshitongzhiwaishexinpian。zhezhongfangshijiushixiangwaishexinpiandejicunqizhongdemouyiweixieruyigeshuju,biru,kenengshixieru1表示清中斷,也可能是寫入0表biao示shi清qing中zhong斷duan,這zhe通tong常chang在zai外wai設she的de數shu據ju手shou冊ce中zhong能neng查zha到dao。當dang外wai設she收shou到dao了le處chu理li器qi的de清qing中zhong斷duan請qing求qiu後hou,其qi就jiu會hui驅qu動dong中zhong斷duan線xian使shi其qi無wu效xiao。比bi如ru,一yi個ge外wai設she的de中zhong斷duan線xian是shi當dang其qi為wei低di電dian平ping表biao示shi有you中zhong斷duan,將jiang其qi從cong低di電dian平ping變bian為wei高gao電dian平ping就jiu是shi驅qu動dong為wei無wu效xiao。
清qing除chu處chu理li器qi的de中zhong斷duan信xin號hao標biao識shi。處chu理li器qi中zhong往wang往wang也ye會hui保bao存cun外wai部bu中zhong斷duan信xin號hao是shi否fou發fa生sheng過guo,當dang我wo們men處chu理li完wan了le外wai設she芯xin片pian的de中zhong斷duan時shi,我wo們men也ye需xu要yao清qing除chu處chu理li器qi上shang的de標biao識shi,從cong而er為wei下xia一yi次ci中zhong斷duan做zuo準zhun備bei。需xu要yao注zhu意yi的de是shi,清qing外wai設she的de中zhong斷duan必bi須xu發fa生sheng在zai請qing處chu理li器qi中zhong斷duan標biao識shi之zhi前qian!
中斷還存在一個觸發方式問題。有兩種觸發方式 ,一yi種zhong是shi電dian平ping觸chu發fa,另ling一yi種zhong是shi沿yan觸chu發fa。電dian平ping觸chu發fa是shi指zhi電dian平ping的de高gao低di表biao示shi外wai設she是shi否fou有you中zhong斷duan,而er沿yan觸chu發fa則ze是shi能neng過guo中zhong斷duan線xian上shang的de電dian平ping的de升sheng或huo降jiang來lai表biao示shi的de,顯xian然ran,存cun在zai兩liang種zhong沿yan觸chu發fa方fang式shi。一yi種zhong是shi中zhong斷duan線xian從cong低di電dian平ping變bian為wei高gao電dian平ping,我wo們men稱cheng之zhi為wei上shang升sheng沿yan觸chu發fa,另ling一yi處chu是shi中zhong斷duan線xian從cong高gao電dian平ping轉zhuan換huan為wei低di電dian平ping,我wo們men稱cheng之zhi為wei下xia降jiang沿yan觸chu發fa。總zong的de來lai說shuo中zhong斷duan的de觸chu發fa方fang式shi有you電dian平ping觸chu發fa、上升沿觸發和下降沿觸發。電平觸發方式中處理中中斷設置很重要的一個步驟。
萬用表
萬用表通常是用來查看電平的高低、電阻的大小等的,是常用且必不可少的工具之一。在嵌入式係統開發中,我們常用的是數字萬用表。
示波器
在(zai)嵌(qian)入(ru)式(shi)係(xi)統(tong)開(kai)發(fa)中(zhong),我(wo)們(men)不(bu)可(ke)避(bi)免(mian)的(de)要(yao)與(yu)外(wai)設(she)芯(xin)片(pian)打(da)交(jiao)道(dao)。調(tiao)試(shi)驅(qu)動(dong)程(cheng)序(xu)時(shi),除(chu)了(le)需(xu)要(yao)完(wan)全(quan)看(kan)明(ming)白(bai)芯(xin)片(pian)的(de)數(shu)據(ju)手(shou)冊(ce),且(qie)在(zai)軟(ruan)件(jian)高(gao)度(du)的(de)過(guo)程(cheng)中(zhong),還(hai)需(xu)要(yao)看(kan)我(wo)們(men)所(suo)期(qi)望(wang)的(de)信(xin)號(hao)電(dian)平(ping)是(shi)否(fou)發(fa)生(sheng)在(zai)芯(xin)片(pian)上(shang)。比(bi)如(ru),我(wo)們(men)在(zai)寫(xie)驅(qu)動(dong)程(cheng)序(xu)時(shi),需(xu)要(yao)通(tong)過(guo)寫(xie)I/O端口來對外設芯片進行操作,當寫相應的I/O端(duan)口(kou)時(shi),我(wo)們(men)知(zhi)道(dao)所(suo)對(dui)應(ying)芯(xin)片(pian)的(de)片(pian)選(xuan)信(xin)號(hao)應(ying)當(dang)有(you)效(xiao),有(you)時(shi),我(wo)們(men)需(xu)要(yao)驗(yan)證(zheng)是(shi)否(fou)按(an)預(yu)期(qi)發(fa)生(sheng)了(le),這(zhe)就(jiu)需(xu)要(yao)用(yong)到(dao)示(shi)波(bo)器(qi)。一(yi)般(ban)的(de)示(shi)波(bo)器(qi)是(shi)能(neng)同(tong)時(shi)觀(guan)測(ce)兩(liang)個(ge)信(xin)號(hao)線(xian)的(de)信(xin)號(hao)狀(zhuang)態(tai)的(de)。示(shi)波(bo)器(qi)都(dou)提(ti)供(gong)一(yi)定(ding)的(de)功(gong)能(neng),比(bi)如(ru)設(she)置(zhi)信(xin)號(hao)撲(pu)捉(zhuo)的(de)方(fang)式(shi)等(deng)等(deng)。示(shi)波(bo)器(qi)很(hen)重(zhong)要(yao)的(de)一(yi)個(ge)參(can)數(shu)據(ju)是(shi)其(qi)采(cai)集(ji)頻(pin)率(lv),根(gen)據(ju)Nyquist采集定理,如果我們想用示波器查看頻率是100M赫茲的信號,那麼其采樣頻率必須至少是其兩倍,即200M赫茲。有人可能會問:為什麼不用萬用表來看呢?因為萬用表的采集頻率很底,無法采集到很快的信號變化。
邏輯分析儀
jiandandeshuoluojifenxiqijiushijuyouhenduoxinhaotongdaodeshiboqi。tongguoluojifenxiyi,womenkeyikandaodizhizongxianheshujuzongxianshangdeshuju。luojifenxiyidoutigongyidingdebianchengnengli,yongyubianchengshenmeshihoukaishiduizongxianshangdeshujujinxingcaiji。
推薦閱讀:
為什麼分立式JFET仍然活躍於模擬設計中?
提升駕駛體驗的四個技術趨勢
創新性電源的解決方案,將有利於交通運輸係統的使用
電阻器色環編碼的小秘密,一開始我也不知道!
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall


