單片機(jī)指令周期:時(shí)序是用定時(shí)單位來(lái)描述的,MCS-51的時(shí)序單位有四個(gè),它們分別是節(jié)拍、狀態(tài)、機(jī)器周期和指令周期,接下來(lái)我們分別加以說(shuō)明。節(jié)拍與狀態(tài):我們把振蕩脈沖的周期定義為節(jié)拍(為方便描述,用P表示),振蕩脈沖經(jīng)過(guò)二分頻后即得到整個(gè)單片機(jī)工作系統(tǒng)的時(shí)鐘信號(hào),把時(shí)鐘信號(hào)的周期定義為狀態(tài)(用S表示),這樣一個(gè)狀態(tài)就有兩個(gè)節(jié)拍,前半周期相應(yīng)的節(jié)拍我們定義為1(P1),后半周期對(duì)應(yīng)的節(jié)拍定義為2(P2)。機(jī)器周期:MCS-51 有固定的機(jī)器周期,規(guī)定一個(gè)機(jī)器周期有6 個(gè)狀態(tài),分別表示為S1-S6,而一個(gè)狀態(tài)包含兩個(gè)節(jié)拍,那么一個(gè)機(jī)器周期就有12個(gè)節(jié)拍,我們可以記著S1P1、S1P2……S6P1、S6P2,一個(gè)機(jī)器周期共包含12個(gè)振蕩脈沖,即機(jī)器周期就是振蕩脈沖的12 分頻,顯然,如果使用6MHz的時(shí)鐘頻率,一個(gè)機(jī)器周期就是2us,而如使用12MHz的時(shí)鐘頻率,一個(gè)機(jī)器周期就是1us。指令周期:執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期,MCS-51的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,所以它們的指令周期不盡相同,也就是說(shuō)它們所需的機(jī)器周期不相同,可能包括一到四個(gè)不等的機(jī)器周期(這些內(nèi)容,我們將在下面的章節(jié)中加以說(shuō)明)。
上傳時(shí)間: 2013-10-15
上傳用戶(hù):qq10538412
基于單片機(jī)的步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng):通過(guò)ATMEL89C51單片機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行控制,主要介紹了步進(jìn)電機(jī)控制器、驅(qū)動(dòng)電路和LED顯示電路的設(shè)計(jì),實(shí)現(xiàn)了步進(jìn)電機(jī)的開(kāi)環(huán)控制。在步進(jìn)電機(jī)控制器的設(shè)計(jì)中,重點(diǎn)闡述了脈沖產(chǎn)生電路以及對(duì)速度的控制。該系統(tǒng)具有成本低、控制方便的特點(diǎn)。關(guān)鍵詞: 單片機(jī); 步進(jìn)電機(jī); 開(kāi)環(huán)控制 Abstract: The design using ATMEL89C51 single chip to control the step2motor with its controller, driving circuit and LED disp lay circuit to realize step motor open2loop controlwere introduced. For the controller in this design,the circuit to p roduce pulse and the speed controlwere expatiated emphatically. This system possesses features of lower cost, easier control.Key words: single ch ip; step2motor; open2loop con trol
標(biāo)簽: 單片機(jī) 步進(jìn)電機(jī) 開(kāi)環(huán) 控制系統(tǒng)
上傳時(shí)間: 2013-10-13
上傳用戶(hù):cicizoe
SPCE061A采用的內(nèi)核 SPCE061A采用的內(nèi)核(CPU)為μ‘nSP。 μ‘nSP(讀做micro-n-S-P)是凌陽(yáng)科技推出的16位微處理器,它的突出特點(diǎn)是較高的處理速度,這就使其有能力進(jìn)行復(fù)雜的數(shù)字信號(hào)處理(DSP,Digital Signal Processing)。 μ‘nSP內(nèi)核由凌陽(yáng)自主開(kāi)發(fā),因而也具備它自己的指令系統(tǒng)。 指令系統(tǒng).61 3.1 指令系統(tǒng)的概述及符號(hào)約定.61 3.2 數(shù)據(jù)傳送指令62 3.3 算術(shù)運(yùn)算..66 3.3.1 加法運(yùn)算..67 3.3.2 減法運(yùn)算..68 3.3.3 帶進(jìn)位的加減運(yùn)算.70 3.3.4 取補(bǔ)運(yùn)算..70 3.3.5 SPCE061A的乘法指令.71 3.3.6 SPCE061A的n項(xiàng)內(nèi)積運(yùn)算指令.71 3.3.7 比較運(yùn)算(影響標(biāo)志位N,Z,S,C)..73 3.4 SPCE061A的邏輯運(yùn)算.74 3.4.1 邏輯與..74 3.4.2 邏輯或..75 3.4.3 邏輯異或..76 3.4.4 測(cè)試(TEST).78 3.4.5 SPCE061A的移位操作.80 3.5 SPCE061A的控制轉(zhuǎn)移類(lèi)指令..83 3.6 偽指令86 3.6.1 偽指令的語(yǔ)法格式及特點(diǎn)..87 3.6.2 偽指令符號(hào)約定..87 3.6.3 標(biāo)準(zhǔn)偽指令.87 3.6.4 宏定義與調(diào)用98 3.6.5 段的定義與調(diào)用101 3.6.6 結(jié)構(gòu)的定義與調(diào)用..102 3.6.7 過(guò)程的定義與調(diào)用..106 3.6.8 偽指令的應(yīng)用舉例..106
標(biāo)簽: SPCE 061A 061 指令系統(tǒng)
上傳時(shí)間: 2013-10-31
上傳用戶(hù):xuanchangri
用單片機(jī)制作多功能莫爾斯碼電路:用單片機(jī)制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現(xiàn)代通信方式所取代,但在業(yè)余無(wú)線電通信和特殊的專(zhuān)業(yè)場(chǎng)合仍具有重要的地位,這是因?yàn)榈确姶a通信的抗干擾能力是其它任何一種通信方式都無(wú)法相比的。在短波波段用幾瓦的功率即可進(jìn)行國(guó)際間的通信,收發(fā)射設(shè)備簡(jiǎn)單易制成本低廉,所以深受業(yè)余無(wú)線電愛(ài)好者的喜愛(ài),是業(yè)余無(wú)線電高手必備的技能。要想熟練掌握莫爾斯電碼的收發(fā)技術(shù)除了持之以恒的毅力外,還需要相關(guān)的設(shè)備。設(shè)計(jì)本電路的目的就是給愛(ài)好者提供一個(gè)實(shí)用和訓(xùn)練的工具。 一、功能簡(jiǎn)介 本電路可以配合自動(dòng)鍵體和手動(dòng)鍵體,產(chǎn)生莫爾斯碼控制信號(hào),設(shè)有16種速度,從初學(xué)者到操作高手都能適用。監(jiān)聽(tīng)音調(diào)也有16種,均可以通過(guò)功能鍵進(jìn)行選擇。可以按程序中設(shè)定好的呼號(hào)自動(dòng)呼叫,設(shè)有聽(tīng)抄練習(xí)功能,聽(tīng)抄練習(xí)有短碼和混合碼兩種模式,分別對(duì)10個(gè)數(shù)字和常用的38個(gè)混合碼模擬隨機(jī)取樣,產(chǎn)生分組報(bào)碼,供愛(ài)好者提高抄收水平之用,速度低4檔的聽(tīng)抄練習(xí)是專(zhuān)為初學(xué)者所設(shè),內(nèi)容是時(shí)間間隔較長(zhǎng)的單字符。設(shè)有PTT開(kāi)關(guān)鍵,可以決定是否控制發(fā)射機(jī)工作,不需要反復(fù)通斷控制線。無(wú)論當(dāng)前處于呼叫狀態(tài)還是聽(tīng)抄狀態(tài)只要電鍵接點(diǎn)接通則自動(dòng)轉(zhuǎn)到人工發(fā)報(bào)程序。4分鐘內(nèi)不使用電路將自動(dòng)關(guān)閉電源,只有按復(fù)位鍵才能重新開(kāi)始工作。先按住聽(tīng)抄練習(xí)鍵復(fù)位則進(jìn)入短碼練習(xí)狀態(tài),其它功能不變。從開(kāi)機(jī)到自動(dòng)關(guān)機(jī)執(zhí)行每個(gè)功能都有不同的莫爾斯碼提示音。本電路具有較強(qiáng)的抗高低頻干擾的能力和使用方便的大電流開(kāi)關(guān)接口,以適應(yīng)不同的發(fā)射設(shè)備。 二、硬件電路原理硬件電路如圖1所示。設(shè)計(jì)電路的目的在于方便實(shí)用,以免在緊張的操作中失誤,所以除了聽(tīng)抄練習(xí)鍵外其它鍵沒(méi)有定義復(fù)用功能。各鍵的作用在圖中已經(jīng)標(biāo)出。PTT控制在每次復(fù)位時(shí)處于關(guān)閉狀態(tài),每按動(dòng)一次PTT功能鍵則改變一次狀態(tài),這樣可以使用軟件開(kāi)關(guān)控制發(fā)射。 PTT處于控制狀態(tài)時(shí)發(fā)光二極管隨控制信號(hào)閃亮。考慮到自制設(shè)備及淘汰軍用設(shè)備與高檔設(shè)備控制電流的不同,PTT開(kāi)關(guān)管采用了2SC2073,可以承受500mA的電流,同時(shí)還增加了無(wú)極性PTT開(kāi)關(guān)電路,無(wú)論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛(ài)好者實(shí)驗(yàn)。應(yīng)該注意,如果被控制的負(fù)載是感性,則電感兩端必須并聯(lián)續(xù)流二極管,除自制設(shè)備外成品機(jī)在這方面一般沒(méi)有什么問(wèn)題。手動(dòng)鍵只有一個(gè)接點(diǎn),接通后產(chǎn)生連續(xù)的音頻和發(fā)射控制信號(hào)。在本電路中手動(dòng)鍵的輸入端是P1.5 ,程序不斷檢測(cè)P1.5電平,當(dāng)按鍵按下時(shí)P1.5電平為0,程序轉(zhuǎn)入手動(dòng)鍵子程序。 自動(dòng)鍵的接點(diǎn)分別接到P1.3和P1.4 ,同樣當(dāng)程序檢測(cè)到有接點(diǎn)閉合時(shí)便自動(dòng)產(chǎn)生“點(diǎn)”或“劃”。音頻信號(hào)從P輸出,經(jīng)VT1放大后推動(dòng)揚(yáng)聲器發(fā)音。單片機(jī)的I/O口在輸入狀態(tài)下阻抗較高,容易受到高低頻信號(hào)干擾,所以在每個(gè)輸入端口和三極管的be端并聯(lián)電阻和高頻旁路電容,確保在較長(zhǎng)的電鍵連線和大功率發(fā)射時(shí)電路工作穩(wěn)定。圖2是印刷電路版圖,尺寸為110mmX85mm,揚(yáng)聲器用粘合劑直接粘接在電路版有銅箔的面。 三、軟件設(shè)計(jì)方法 “點(diǎn)”時(shí)間長(zhǎng)度是莫爾斯電碼中的基本時(shí)間單位。按規(guī)定“劃”的時(shí)間長(zhǎng)度不小于三個(gè)“點(diǎn)”,同字符中“點(diǎn)”與“劃”的間隔不小于一個(gè)“點(diǎn)”,字符之間不小于一個(gè)“劃”,詞與詞之間不應(yīng)小于五個(gè)“點(diǎn)”。在本程序中用條件轉(zhuǎn)移指令來(lái)產(chǎn)生“點(diǎn)”時(shí)間長(zhǎng)度。通過(guò)速度功能鍵功可以設(shè)置16種延時(shí)參數(shù)。用T0中斷產(chǎn)生監(jiān)聽(tīng)音頻信號(hào),并將中斷設(shè)為優(yōu)先級(jí),保證在聽(tīng)覺(jué)上純正悅耳。T1用于自動(dòng)關(guān)機(jī)計(jì)時(shí),如果不使用任何功能四分鐘后將向PCON 位寫(xiě)1,單片機(jī)進(jìn)入休眠狀態(tài),此時(shí)耗電量?jī)H有幾個(gè)微安。自動(dòng)鍵的“點(diǎn)”或“劃”以及手動(dòng)鍵的連續(xù)發(fā)音都是子程序的反復(fù)調(diào)用。P1.2對(duì)地短接時(shí)自動(dòng)呼叫可設(shè)定為另一內(nèi)容。為了便于熟悉匯編語(yǔ)言的讀者對(duì)發(fā)音內(nèi)容進(jìn)行修改,這里介紹發(fā)音字符的編碼方法。莫爾斯碼的信息與計(jì)算機(jī)中二進(jìn)制恰好相同,我們可以用0表示“點(diǎn)”,用1表示“劃”。提示音、自動(dòng)呼叫、聽(tīng)抄內(nèi)容等字符是預(yù)先按一定編碼方式存儲(chǔ)在程序中的常數(shù)。每個(gè)字符的莫爾斯碼一般是由1至6位“點(diǎn)”、“劃”組成,也就是發(fā)音次數(shù)最多6次。程序中每個(gè)字符占用1個(gè)字節(jié),字符時(shí)間間隔不占用字節(jié),但更長(zhǎng)的延時(shí)或發(fā)音結(jié)束信息占用一個(gè)字節(jié)。我們用字節(jié)的低三位表示字節(jié)的性質(zhì),對(duì)于5次及5次以下發(fā)音的字符我們用存儲(chǔ)器的高5位存儲(chǔ)發(fā)音信息,發(fā)音順序由高位至低位,用低3位存儲(chǔ)發(fā)音次數(shù),發(fā)音時(shí)將數(shù)據(jù)送入累加器A,先得到發(fā)音次數(shù),然后使A左環(huán)移,對(duì)E0進(jìn)行位尋址,判斷是發(fā)“點(diǎn)”還是“劃”,環(huán)移次數(shù)由發(fā)音次數(shù)決定。對(duì)于6次發(fā)音的字符不能完全按照上述編碼規(guī)則,否則會(huì)出現(xiàn)信息重疊,如果是6次發(fā)音且最后一次是“劃”我們把發(fā)音次數(shù)定義為111B,因?yàn)檫@時(shí)第6次位尋址得到的是1。如果第6次發(fā)音是“點(diǎn)”,那么這個(gè)字符的低三位定義為000B。字符間隔時(shí)間由程序自動(dòng)產(chǎn)生,更長(zhǎng)的時(shí)間隔或結(jié)束標(biāo)志由字節(jié)低三位110B來(lái)定義,高半字節(jié)表示字符間隔的倍數(shù),例如26H表示再加兩倍時(shí)間間隔。如果字節(jié)為06H則表示讀字符程序結(jié)束,返回主程序。更詳細(xì)的內(nèi)容不再贅述,讀者可閱讀源程序。四、使用注意事項(xiàng)手動(dòng)鍵的操作難度相對(duì)大一些,時(shí)間節(jié)拍全由人掌握,其特點(diǎn)是發(fā)出的電碼帶有“人情味”。自動(dòng)鍵的“點(diǎn)”、“劃”靠電路產(chǎn)生,發(fā)音標(biāo)準(zhǔn),容易操作,而且可以達(dá)到相當(dāng)快的速度,長(zhǎng)時(shí)間工作也不易疲勞。在干擾較大、信號(hào)微弱的條件下自動(dòng)鍵碼的辨別程度好于手動(dòng)鍵碼。初學(xué)者初次使用手動(dòng)鍵練習(xí)發(fā)報(bào)要有老師指導(dǎo),且不可我行我素,一旦養(yǎng)成不正確的手法則很難糾正。在電臺(tái)上時(shí)常聽(tīng)到一些讓對(duì)方難以抄收的電碼,這可能會(huì)使對(duì)方反感而拒絕回答。使用自動(dòng)鍵也應(yīng)在一定的聽(tīng)抄基礎(chǔ)上再去練習(xí)。在暫時(shí)找不老師的情況下可多練習(xí)聽(tīng)力,這對(duì)于今后能夠發(fā)出標(biāo)準(zhǔn)正確的電碼非常有益。
上傳時(shí)間: 2013-10-31
上傳用戶(hù):sdq_123
提出了一個(gè)由AT89C52單片機(jī)控制步進(jìn)電機(jī)的實(shí)例。可以通過(guò)鍵盤(pán)輸入相關(guān)數(shù)據(jù), 并根據(jù)需要, 實(shí)時(shí)對(duì)步進(jìn)電機(jī)工作方式進(jìn)行設(shè)置, 具有實(shí)時(shí)性和交互性的特點(diǎn)。該系統(tǒng)可應(yīng)用于步進(jìn)電機(jī)控制的大多數(shù)場(chǎng)合。實(shí)踐表明, 系統(tǒng)性能優(yōu)于傳統(tǒng)的步進(jìn)電機(jī)控制器。關(guān)鍵詞: 單片機(jī); 步進(jìn)電動(dòng)機(jī); 直流固態(tài)繼電器; 實(shí)時(shí)控制Con trol System of Stepp ingMotor Ba sed on AT89C52 ChipM icrocomputerMENGWu2sheng, L ILiang (College of Automatization, Northwestern Polytechnical Unversity, Xipan 710072, China)ABSTRACT: A stepp ing motor control system based on AT89C52 chip microcomputer was described.The data can be inputwith keyboard, and stepp ingmotorwas controlled by these data. According to the demand, users can set the workingmodel of stepp ingmotor in real2time. This system can be widely used in stepp ing motor controlling. The p ractice showed that the performance of this system outdid the tradi tional stepp ing motor controller.KEY WORDS: Chip microcomputer; Stepp ingmotor; DCSSR; Real2time control
標(biāo)簽: Control System ingMot Stepp
上傳時(shí)間: 2013-11-19
上傳用戶(hù):leesuper
鋰離子電池Li+ 是適合電子產(chǎn)品輕薄小需求的高能量密度高性能電池,被廣泛應(yīng)用于手機(jī),PDA ,筆記本電腦等高端產(chǎn)品中.圖一所示電路提供了一種結(jié)構(gòu)簡(jiǎn)單緊湊的單節(jié)Li+電池充電方案圖中墻上適配器為9VDC 800mA 限流型電壓源Anam Friwo 等公司均有相應(yīng)產(chǎn)品MAX1679內(nèi)置充電終止檢測(cè)電路和充電過(guò)程控制.器插入電池或充電器上電都將啟動(dòng)一次充電過(guò)程一次完整的充電過(guò)程包括初始化充電以較小的充電電流為電池充電使電池電壓大于2.5V溫度范圍如果超出2.5 到47.5 則處于等待狀態(tài).快充過(guò)程快充開(kāi)始后MAX1679打開(kāi)外接的P 溝道場(chǎng)效應(yīng)管快充電流由外部限流型充電電源決定.一旦檢測(cè)到電池電壓達(dá)到Li+電池充電終止門(mén)限電壓時(shí)快充結(jié)束.充電終止門(mén)限電壓由電阻RADJ確定,可參考以下公式:
上傳時(shí)間: 2013-11-14
上傳用戶(hù):yuanwenjiao
P C B 可測(cè)性設(shè)計(jì)布線規(guī)則之建議― ― 從源頭改善可測(cè)率PCB 設(shè)計(jì)除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測(cè)試。這里提供可測(cè)性設(shè)計(jì)建議供設(shè)計(jì)布線工程師參考。1. 每一個(gè)銅箔電路支點(diǎn),至少需要一個(gè)可測(cè)試點(diǎn)。如無(wú)對(duì)應(yīng)的測(cè)試點(diǎn),將可導(dǎo)致與之相關(guān)的開(kāi)短路不可檢出,并且與之相連的零件會(huì)因無(wú)測(cè)試點(diǎn)而不可測(cè)。2. 雙面治具會(huì)增加制作成本,且上針板的測(cè)試針定位準(zhǔn)確度差。所以Layout 時(shí)應(yīng)通過(guò)Via Hole 盡可能將測(cè)試點(diǎn)放置于同一面。這樣就只要做單面治具即可。3. 測(cè)試選點(diǎn)優(yōu)先級(jí):A.測(cè)墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對(duì)于零件腳,應(yīng)以AI 零件腳及其它較細(xì)較短腳為優(yōu)先,較粗或較長(zhǎng)的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測(cè)點(diǎn)精準(zhǔn)度,制作治具需特殊處理。5. 避免將測(cè)點(diǎn)置于SMT 之PAD 上,因SMT 零件會(huì)偏移,故不可靠,且易傷及零件。6. 避免使用過(guò)長(zhǎng)零件腳(>170mil(4.3mm))或過(guò)大的孔(直徑>1.5mm)為測(cè)點(diǎn)。7. 對(duì)于電池(Battery)最好預(yù)留Jumper,在ICT 測(cè)試時(shí)能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個(gè)定位孔和一個(gè)防呆孔(也可說(shuō)成定位孔,用以預(yù)防將PCB反放而導(dǎo)致機(jī)器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對(duì)角線,距離最遠(yuǎn)之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應(yīng)設(shè)計(jì)成中心對(duì)稱(chēng),即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機(jī)器壓破板)9. 測(cè)試點(diǎn)要求:(e) 兩測(cè)點(diǎn)或測(cè)點(diǎn)與預(yù)鉆孔之中心距不得小于50mil(1.27mm),否則有一測(cè)點(diǎn)無(wú)法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測(cè)點(diǎn)應(yīng)離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應(yīng)至少間距120mil,方便治具制作。(g) 測(cè)點(diǎn)應(yīng)平均分布于PCB 表面,避免局部密度過(guò)高,影響治具測(cè)試時(shí)測(cè)試針壓力平衡。(h) 測(cè)點(diǎn)直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測(cè)點(diǎn)需額外加工,以導(dǎo)正目標(biāo)。(i) 測(cè)點(diǎn)的Pad 及Via 不應(yīng)有防焊漆(Solder Mask)。(j) 測(cè)點(diǎn)應(yīng)離板邊或折邊至少100mil。(k) 錫點(diǎn)被實(shí)踐證實(shí)是最好的測(cè)試探針接觸點(diǎn)。因?yàn)殄a的氧化物較輕且容易刺穿。以錫點(diǎn)作測(cè)試點(diǎn),因接觸不良導(dǎo)致誤判的機(jī)會(huì)極少且可延長(zhǎng)探針使用壽命。錫點(diǎn)尤其以PCB 光板制作時(shí)的噴錫點(diǎn)最佳。PCB 裸銅測(cè)點(diǎn),高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測(cè)試誤判率很高。如果裸銅測(cè)點(diǎn)在SMT 時(shí)加上錫膏再經(jīng)回流焊固化為錫點(diǎn),雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會(huì)出現(xiàn)較多的接觸誤判。
標(biāo)簽: PCB 可測(cè)性設(shè)計(jì) 布線規(guī)則
上傳時(shí)間: 2014-01-14
上傳用戶(hù):cylnpy
九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來(lái)控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問(wèn)I/O空間中所有地址的最外層特權(quán)級(jí)。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級(jí)執(zhí)行的程序所訪問(wèn)。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫(xiě)數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫(xiě)字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱(chēng)為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿(mǎn)足所列條件時(shí)才可以執(zhí)行,所以把它們稱(chēng)為I/O敏感指令。從表中可見(jiàn),當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問(wèn)的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿(mǎn)足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿(mǎn)足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問(wèn)所有I/O地址,要么不可訪問(wèn)所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問(wèn)部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問(wèn)另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問(wèn)I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問(wèn);否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問(wèn)I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見(jiàn),TSS內(nèi)偏移66H的字確定I/O許可位圖的開(kāi)始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開(kāi)始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門(mén)SS中前104字節(jié)為T(mén)SS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問(wèn)許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開(kāi)始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開(kāi)始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過(guò),則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問(wèn)。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對(duì)應(yīng)I/O端口00H—3FH DB 10000000B ;對(duì)應(yīng)I/O端口40H—47H DB 01100000B ;對(duì)用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實(shí)行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見(jiàn),不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見(jiàn)即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開(kāi)始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問(wèn)的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問(wèn)的許可檢查總被認(rèn)為不可訪問(wèn)而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類(lèi)似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無(wú)意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見(jiàn),只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿(mǎn)足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過(guò)任務(wù)門(mén)調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。
上傳時(shí)間: 2013-12-11
上傳用戶(hù):nunnzhy
基于PIC單片機(jī)控制的數(shù)字視頻混合器 介紹了一種利用P IC 單片機(jī)中斷技術(shù)來(lái)控制數(shù)字視頻混合處理芯片, 實(shí)現(xiàn)將2 路或多路數(shù)字視頻信號(hào)混合成1 路或多路輸出的數(shù)字視頻混合器的硬件構(gòu)成和軟件設(shè)計(jì)。通過(guò)實(shí)際應(yīng)用表明, 該數(shù)字視頻混合器操作方式簡(jiǎn)單靈活、可靠性高, 有較好的市場(chǎng)價(jià)值。關(guān)鍵詞 P IC 單片機(jī); 數(shù)字視頻; 視頻混合器; 鍵控本文主要介紹了的基于P IC 單片機(jī)控制的數(shù)字視頻鍵控混合器, 該混合器具有以下功能: 內(nèi)含兩級(jí)串聯(lián)的鍵控混合器, 可以在主信號(hào)中鍵入2路附加數(shù)字信號(hào), 如各種字幕標(biāo)識(shí); 可以遠(yuǎn)程遙控, 也可現(xiàn)場(chǎng)按鍵控制; 可以隨時(shí)更新和保存系統(tǒng)配置, 改變系統(tǒng)功能和技術(shù)參數(shù); 該系統(tǒng)穩(wěn)定可靠, 對(duì)掉電、死機(jī)等異常現(xiàn)象有自復(fù)位能力。整個(gè)系統(tǒng)主要包括硬件和軟件兩部分, 硬件包括數(shù)字混合部分和單片機(jī)控制部分。
標(biāo)簽: PIC 單片機(jī)控制 數(shù)字視頻 混合器
上傳時(shí)間: 2013-10-26
上傳用戶(hù):haohao
基于多點(diǎn)網(wǎng)絡(luò)的水廠自動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)Design of MPI Based Automatic Monitoring and Control System in Water Works劉 美 俊(湖南工程學(xué)院,湘潭411101)摘要針對(duì)水廠工作水泵多、現(xiàn)場(chǎng)離控制站距離遠(yuǎn)的特點(diǎn),提出了一種基于MPI多點(diǎn)網(wǎng)絡(luò)的自動(dòng)監(jiān)控系統(tǒng)的設(shè)計(jì)方法,分析了系統(tǒng)的工作原理,介紹了系統(tǒng)中數(shù)據(jù)的采集與處理、主站與從站的通信原理以及系統(tǒng)軟件的設(shè)計(jì)。由于這種系統(tǒng)的主、從站PLC之間采用MPI網(wǎng)絡(luò)通信,具有運(yùn)行可靠、性能價(jià)格比高的特點(diǎn),所以適用于中小規(guī)模水廠的分布式監(jiān)控場(chǎng)合。關(guān)鍵詞多點(diǎn)網(wǎng)絡(luò)主站從站監(jiān)控系統(tǒng)Abstract Ina ccordancew ithth efe atuersof w aterw orks,i. e. ,manyp umpsin o perationa ndth ep umps, farfor mt hec ontrolst ation,th em ethodo fdesigninga na utomati(〕monitoringa ndc ontorlsy stemb asedo nM PIis p resented.Th eo perationalpr incipleo fth esy stemi san alyzed,th ed atac olection,data processing; communication between master station and slave station as wel as design and system software are discussed. Because MPI network communicationis used among master station, slave stations and PLC, the system is reliable and high cost-efective. It is, suitable for smal and mediumsized water works for distrbuted monitoring and control.Keywords MPI Masterst ation Slaves tation Monitoringa ndc ontorlsy stem 自來(lái) 水 廠 的自動(dòng)控制系統(tǒng)一般分為兩大部分,一對(duì)組態(tài)硬件要求較高,投資較大。相對(duì)而言,MPI網(wǎng)是水源地深水泵的工作控制,一是水廠區(qū)變頻恒壓供絡(luò)速度可達(dá)187.5 M bps,通過(guò)一級(jí)中繼器傳輸距離可水控制,兩部分的實(shí)際距離通常都比較遠(yuǎn)。某廠水源達(dá)Ikm 。根據(jù)水廠的具體情況,確定以MPI方式組地有3臺(tái)深井泵給水廠區(qū)的蓄水池供水。水廠區(qū)的成網(wǎng)絡(luò),主站PLC為S7-300系列的CPU3121FM,從任務(wù)是對(duì)水池的水進(jìn)行消毒處理后,通過(guò)加壓泵向管站為S7-200系列的CPU222。這樣既滿(mǎn)足了系統(tǒng)要路恒壓供水。選用Siemens公司的S7系列可編程控求,又相對(duì)于Profibus網(wǎng)絡(luò)節(jié)省了三分之一的成本,制器(PLC)和上位機(jī)組成實(shí)時(shí)數(shù)據(jù)采集和監(jiān)控系統(tǒng), 這種分布式監(jiān)控系統(tǒng)具有較高的性能價(jià)格比。系統(tǒng)對(duì)深水泵進(jìn)行遠(yuǎn)程控制,對(duì)供水泵采用變頻器進(jìn)行恒中PLC的物理層采用RS - 485接口,網(wǎng)絡(luò)延伸選用壓控制以保證整個(gè)水廠的電機(jī)設(shè)備安全、可靠地運(yùn)帶防雷保護(hù)的中繼器,使系統(tǒng)的安全運(yùn)行得到了保行。證。MPI網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖1所示。1 多點(diǎn)網(wǎng)絡(luò)(NWI)監(jiān)控系統(tǒng)的組成Sie me ns 公司S7系列PLC通常有MP」多點(diǎn)網(wǎng)絡(luò)與Profibus現(xiàn)場(chǎng)總線網(wǎng)絡(luò)兩種組網(wǎng)方式。Profibus現(xiàn)場(chǎng)總線的應(yīng)用目前較為普遍,通用性較好,它由Profibus一DP, Profibus一FMS, Profibus一PA組成。Profibus - DP型用于分散外設(shè)間的數(shù)據(jù)傳輸,傳輸速率為9.6kbps一12Mbps,主要用于現(xiàn)場(chǎng)控制器與分散1/0之間的通信,可滿(mǎn)足交直流調(diào)速系統(tǒng)快速響應(yīng)的時(shí)間要求,特別適合于加工自動(dòng)化領(lǐng)域的應(yīng)用;Profibus - FMS主要解決車(chē)間級(jí)通信問(wèn)題,完成中等傳輸速度的循環(huán)或非循環(huán)數(shù)據(jù)交換任務(wù),適用于紡織、樓宇自動(dòng)化、可編程控制器、低壓開(kāi)關(guān)等;Profibus - PA型采用了OSI模型的物理層和數(shù)據(jù)鏈路層,適用于過(guò)程自動(dòng)化的總線類(lèi)型。
標(biāo)簽: 多點(diǎn) 網(wǎng)絡(luò) 系統(tǒng)設(shè)計(jì) 自動(dòng)監(jiān)控
上傳時(shí)間: 2013-10-09
上傳用戶(hù):fac1003
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1