亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

大屏幕顯示

  • 用單片機(jī)制作多功能莫爾斯碼電路

    用單片機(jī)制作多功能莫爾斯碼電路:用單片機(jī)制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現(xiàn)代通信方式所取代,但在業(yè)余無線電通信和特殊的專業(yè)場(chǎng)合仍具有重要的地位,這是因?yàn)榈确姶a通信的抗干擾能力是其它任何一種通信方式都無法相比的。在短波波段用幾瓦的功率即可進(jìn)行國(guó)際間的通信,收發(fā)射設(shè)備簡(jiǎn)單易制成本低廉,所以深受業(yè)余無線電愛好者的喜愛,是業(yè)余無線電高手必備的技能。要想熟練掌握莫爾斯電碼的收發(fā)技術(shù)除了持之以恒的毅力外,還需要相關(guān)的設(shè)備。設(shè)計(jì)本電路的目的就是給愛好者提供一個(gè)實(shí)用和訓(xùn)練的工具。  一、功能簡(jiǎn)介    本電路可以配合自動(dòng)鍵體和手動(dòng)鍵體,產(chǎn)生莫爾斯碼控制信號(hào),設(shè)有16種速度,從初學(xué)者到操作高手都能適用。監(jiān)聽音調(diào)也有16種,均可以通過功能鍵進(jìn)行選擇。可以按程序中設(shè)定好的呼號(hào)自動(dòng)呼叫,設(shè)有聽抄練習(xí)功能,聽抄練習(xí)有短碼和混合碼兩種模式,分別對(duì)10個(gè)數(shù)字和常用的38個(gè)混合碼模擬隨機(jī)取樣,產(chǎn)生分組報(bào)碼,供愛好者提高抄收水平之用,速度低4檔的聽抄練習(xí)是專為初學(xué)者所設(shè),內(nèi)容是時(shí)間間隔較長(zhǎng)的單字符。設(shè)有PTT開關(guān)鍵,可以決定是否控制發(fā)射機(jī)工作,不需要反復(fù)通斷控制線。無論當(dāng)前處于呼叫狀態(tài)還是聽抄狀態(tài)只要電鍵接點(diǎn)接通則自動(dòng)轉(zhuǎn)到人工發(fā)報(bào)程序。4分鐘內(nèi)不使用電路將自動(dòng)關(guān)閉電源,只有按復(fù)位鍵才能重新開始工作。先按住聽抄練習(xí)鍵復(fù)位則進(jìn)入短碼練習(xí)狀態(tài),其它功能不變。從開機(jī)到自動(dòng)關(guān)機(jī)執(zhí)行每個(gè)功能都有不同的莫爾斯碼提示音。本電路具有較強(qiáng)的抗高低頻干擾的能力和使用方便的大電流開關(guān)接口,以適應(yīng)不同的發(fā)射設(shè)備。    二、硬件電路原理硬件電路如圖1所示。設(shè)計(jì)電路的目的在于方便實(shí)用,以免在緊張的操作中失誤,所以除了聽抄練習(xí)鍵外其它鍵沒有定義復(fù)用功能。各鍵的作用在圖中已經(jīng)標(biāo)出。PTT控制在每次復(fù)位時(shí)處于關(guān)閉狀態(tài),每按動(dòng)一次PTT功能鍵則改變一次狀態(tài),這樣可以使用軟件開關(guān)控制發(fā)射。 PTT處于控制狀態(tài)時(shí)發(fā)光二極管隨控制信號(hào)閃亮。考慮到自制設(shè)備及淘汰軍用設(shè)備與高檔設(shè)備控制電流的不同,PTT開關(guān)管采用了2SC2073,可以承受500mA的電流,同時(shí)還增加了無極性PTT開關(guān)電路,無論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛好者實(shí)驗(yàn)。應(yīng)該注意,如果被控制的負(fù)載是感性,則電感兩端必須并聯(lián)續(xù)流二極管,除自制設(shè)備外成品機(jī)在這方面一般沒有什么問題。手動(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)移指令來產(chǎn)生“點(diǎn)”時(shí)間長(zhǎng)度。通過速度功能鍵功可以設(shè)置16種延時(shí)參數(shù)。用T0中斷產(chǎn)生監(jiān)聽音頻信號(hào),并將中斷設(shè)為優(yōu)先級(jí),保證在聽覺上純正悅耳。T1用于自動(dòng)關(guān)機(jī)計(jì)時(shí),如果不使用任何功能四分鐘后將向PCON 位寫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)容。為了便于熟悉匯編語言的讀者對(duì)發(fā)音內(nèi)容進(jìn)行修改,這里介紹發(fā)音字符的編碼方法。莫爾斯碼的信息與計(jì)算機(jī)中二進(jìn)制恰好相同,我們可以用0表示“點(diǎn)”,用1表示“劃”。提示音、自動(dò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來定義,高半字節(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í)常聽到一些讓對(duì)方難以抄收的電碼,這可能會(huì)使對(duì)方反感而拒絕回答。使用自動(dòng)鍵也應(yīng)在一定的聽抄基礎(chǔ)上再去練習(xí)。在暫時(shí)找不老師的情況下可多練習(xí)聽力,這對(duì)于今后能夠發(fā)出標(biāo)準(zhǔn)正確的電碼非常有益。

    標(biāo)簽: 用單片機(jī) 多功能 莫爾斯 電路

    上傳時(shí)間: 2013-10-31

    上傳用戶:sdq_123

  • 微機(jī)燈光控制系統(tǒng)

    一、實(shí)驗(yàn)?zāi)康模保莆斩〞r(shí)/計(jì)數(shù)器、輸入/輸出接口電路設(shè)計(jì)方法。    2.掌握中斷控制編程技術(shù)的方法和應(yīng)用。3.掌握8086匯編語言程序設(shè)計(jì)方法。 二、實(shí)驗(yàn)內(nèi)容與要求 微機(jī)燈光控制系統(tǒng)主要用于娛樂場(chǎng)所的彩燈控制。系統(tǒng)的彩燈共有12組,在實(shí)驗(yàn)時(shí)用12個(gè)發(fā)光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個(gè)燈依次點(diǎn)亮;12個(gè)燈同時(shí)閃爍等八種。系統(tǒng)可以通過鍵盤和顯示屏的人機(jī)對(duì)話,將8種模式進(jìn)行任意個(gè)數(shù)、任意次序的連接組合。系統(tǒng)不斷重復(fù)執(zhí)行輸入的模式組合,直至鍵盤有任意一個(gè)鍵按下,退出燈光控制系統(tǒng),返回DOS系統(tǒng)。2. 提高要求:音樂彩燈控制系統(tǒng),根據(jù)音樂的變化控制彩燈的變化,主要有以下幾種:第一種為音樂節(jié)奏控制彩燈,按音樂的節(jié)拍變換彩燈花樣。第二種音律的強(qiáng)弱(信號(hào)幅度大小)控制彩燈。強(qiáng)音時(shí),燈的亮度加大,且被點(diǎn)亮的數(shù)目增多。第三種按音調(diào)高低(信號(hào)頻率高低)控制彩燈。低音時(shí),某一部分燈點(diǎn)亮;高音時(shí),另一部分點(diǎn)亮。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問題及解決的方法) 四、設(shè)計(jì)原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設(shè)有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個(gè)點(diǎn)亮。其控制過程如下: 若以“ 1 ”代表霓虹燈點(diǎn)亮,以“ 0 ”代表霓虹燈熄滅,則開始時(shí)刻, n 段霓虹燈的控制信號(hào)均為“ 0 ”,隨后,控制器將一幀 n 個(gè)數(shù)據(jù)送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對(duì)應(yīng)的控制數(shù)據(jù)為“ 1 ”,其余的數(shù)據(jù)均為零,即 1000 … 000 。當(dāng) n 個(gè)數(shù)據(jù)送完以后,控制器停止送數(shù),保留這種狀態(tài)(定時(shí)) 0.2 秒,此時(shí),第 1 段霓虹燈被點(diǎn)亮,其余霓虹燈熄滅。隨后,控制器又在極短的時(shí)間內(nèi)將數(shù)據(jù) 1100 … 000 送至霓虹燈的控制端,并定時(shí) 0.2 秒,這段時(shí)間,前兩段霓虹燈被點(diǎn)亮。由于送數(shù)據(jù)的過程很快,我們觀測(cè)到的效果是第一段霓虹燈被點(diǎn)亮 0.2 秒后,第 2 段霓虹燈接著被點(diǎn)亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數(shù)據(jù) 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點(diǎn)亮。 只要改變送至每段霓虹燈的數(shù)據(jù),即可改變霓虹燈的顯示方式,顯然,我們可以通過合理地組合數(shù)據(jù)(編程)來得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統(tǒng)設(shè)計(jì)思路如下:1) 采集8位開關(guān)輸入信號(hào),若輸入數(shù)據(jù)為0時(shí),將其修改為1。確定輸入的硬件接口電路。采樣輸入開關(guān)量,并存入NUM的軟件程序段。2) 以12個(gè)燈依次點(diǎn)亮為例(即燈光控制模式M1),考慮與其相應(yīng)的燈光顯示代碼數(shù)據(jù)。確定顯示代碼數(shù)據(jù)輸出的接口電路。輸出一個(gè)同期顯示代碼的軟件程序段(暫不考慮時(shí)隙的延時(shí)要求)。3) 應(yīng)用定時(shí)中斷服務(wù)和NUM數(shù)據(jù),實(shí)現(xiàn)t=N×50ms的方法。4) 實(shí)現(xiàn)某一種模式燈光顯示控制中12個(gè)時(shí)隙一個(gè)周期,共重復(fù)四次的控制方法。要求在初始化時(shí)采樣開關(guān)輸入數(shù)據(jù)NUM,并以此控制每一時(shí)隙的延時(shí)時(shí)間;在每一時(shí)隙結(jié)束時(shí),檢查有無鍵按下,若是退出鍵按下,則結(jié)束燈光控制,返回DOS系統(tǒng),若是其他鍵就返回主菜單,重新輸入控制模式數(shù)據(jù)。5) 通過人機(jī)對(duì)話,輸入8種燈光顯示控制模式的任意個(gè)數(shù)、任意次序連接組合的控制模式數(shù)據(jù)串(以ENTER鍵結(jié)尾)。對(duì)輸入的數(shù)據(jù)進(jìn)行檢查,若數(shù)據(jù)都在1 - 8之間,則存入INBUF;若有錯(cuò)誤,則通過屏幕顯示輸入錯(cuò)誤,準(zhǔn)備重新輸入燈光顯示控制模式數(shù)據(jù)。6) 依次讀取INBUF中的控制模式數(shù)據(jù)進(jìn)行不同模式的燈光顯示控制,在沒有任意鍵按下的情況下,系統(tǒng)從第一個(gè)控制模式數(shù)據(jù)開始,順序工作到最后一個(gè)控制模式數(shù)據(jù)后,又返回到第一個(gè)控制模式數(shù)據(jù),不斷重復(fù)循環(huán)進(jìn)行燈光顯示控制。7) 本系統(tǒng)的軟件在總體上有兩部份,即主程序(MAIN)和實(shí)時(shí)中斷服務(wù)程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設(shè)計(jì)方法。即確定有關(guān)功能模塊,并畫出以功能模塊表示的主程序(MAIN)流程框圖和定時(shí)中斷服務(wù)程序的流程框圖。    六、硬件電路設(shè)計(jì)   以微機(jī)實(shí)驗(yàn)平臺(tái)和PC機(jī)資源為硬件設(shè)計(jì)的基礎(chǔ),不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負(fù)責(zé)數(shù)據(jù)的輸入與輸出,可以輸出數(shù)據(jù)控制發(fā)光二極管的亮滅和讀取乒乓開關(guān)的數(shù)據(jù)。實(shí)驗(yàn)時(shí)可以將8255的A口、B口和一組發(fā)光二極管相連,C口和乒乓開關(guān)相連。2.8253定時(shí)/計(jì)數(shù)器8253定時(shí)/計(jì)數(shù)器和8259中斷控制器一起實(shí)現(xiàn)時(shí)隙定時(shí)。本設(shè)計(jì)的定時(shí)就是采用的t=N×50ms的方法,50ms由8253定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器0控制定時(shí),N是在中斷服務(wù)程序中軟件計(jì)時(shí)。8253的OUT0接到IRQ2,產(chǎn)生中斷請(qǐng)求信號(hào)。8253定時(shí)/計(jì)數(shù)器定時(shí)結(jié)束會(huì)發(fā)出中斷信號(hào),進(jìn)入中斷服務(wù)程序。3.PC機(jī)資源本設(shè)計(jì)除了利用PC機(jī)作為控制器之外,還利用了PC機(jī)的鍵盤和顯示器。鍵盤主要是輸入控制模式數(shù)據(jù),顯示器就是顯示提示信息。   七、軟件設(shè)計(jì)   軟件主要分為主程序(MAIN)和中斷服務(wù)程序(INTT),主程序包含系統(tǒng)初始化、讀取乒乓開關(guān)、讀取控制模式數(shù)據(jù)以及按鍵處理等模塊。中斷服務(wù)程序主要是定時(shí)時(shí)間到后根據(jù)控制模式數(shù)據(jù)點(diǎn)亮相應(yīng)的發(fā)光二極管。1.主程序主程序的程序流程圖如圖1所示。

    標(biāo)簽: 微機(jī) 燈光控制

    上傳時(shí)間: 2014-04-05

    上傳用戶:q986086481

  • 改善基于微控制器的應(yīng)用的瞬態(tài)免疫性能

    家電制造業(yè)的競(jìng)爭(zhēng)日益激烈,市場(chǎng)調(diào)整壓力越來越大,原始設(shè)備制造商們(OEM)為了面對(duì)這一挑戰(zhàn),必須在滿足電磁兼容性的條件下,不斷降低產(chǎn)品的成本。由于強(qiáng)調(diào)成本控制,為防止由電源和信號(hào)線的瞬變所產(chǎn)生的電器故障而實(shí)施必要的瞬態(tài)免疫保護(hù),對(duì)于家電設(shè)計(jì)者來說變得更具挑戰(zhàn)性。由于傳統(tǒng)的電源設(shè)計(jì)和電磁干擾(EMI)控制措施為節(jié)約成本讓路,家電設(shè)計(jì)者必須開發(fā)出新的技術(shù)來滿足不斷調(diào)整的電磁兼容(EMC)需求。本應(yīng)用筆記探討了瞬態(tài)電氣干擾對(duì)嵌入式微控制器(MCU)的影響,并提供了切實(shí)可行的硬件和軟件設(shè)計(jì)技術(shù),這些技術(shù)可以為電快速瞬變(EFT)、靜電放電(ESD)以及其它電源線或信號(hào)線的短時(shí)瞬變提供低成本的保護(hù)措施。雖然這種探討是主要針對(duì)家電制造商,但是也適用于消費(fèi)電子、工業(yè)以及汽車電子方面的應(yīng)用。 低成本的基于MCU 的嵌入式應(yīng)用特別容易受到ESD 和EFT 影響降低性能。即使是運(yùn)行在較低時(shí)鐘頻率下的微控制器,通常對(duì)快速上升時(shí)間瞬變也很敏感。這種敏感性歸咎于所使用的工藝技術(shù)。如今針對(duì)低成本8/16位的MCU的半導(dǎo)體工藝技術(shù)所實(shí)現(xiàn)的晶體管柵極長(zhǎng)度在0.65 μm~0.25 μm范圍內(nèi)。此范圍內(nèi)的柵極長(zhǎng)度能產(chǎn)生和響應(yīng)上升時(shí)間在次納秒范圍內(nèi)(或超過300 MHz 的等同帶寬)的信號(hào)。因此, MCU 能夠響應(yīng)進(jìn)入其引腳的ESD 或EFT 信號(hào)。除上述工藝技術(shù)之外, MCU 在ESD 或EFT 事件中的性能還會(huì)受到IC 設(shè)計(jì)及其封裝、印刷電路板(PCB)的設(shè)計(jì)、MCU 上運(yùn)行的軟件、系統(tǒng)設(shè)計(jì)以及ESD 或EFT 波形特征的影響。各因素的相對(duì)影響(強(qiáng)調(diào)對(duì)最大影響的貢獻(xiàn))如圖1 所示。

    標(biāo)簽: 微控制器 瞬態(tài)免疫 性能

    上傳時(shí)間: 2013-11-09

    上傳用戶:Jerry_Chow

  • DMA技術(shù) -ppt

    數(shù)據(jù)傳送的控制 數(shù)據(jù)傳送涉及的3個(gè)問題1)數(shù)據(jù)的來源;2)數(shù)據(jù)的去處;3)數(shù)據(jù)本身以及如何控制數(shù)據(jù)的傳送。 DMA方式控制的數(shù)據(jù)傳送 DMA傳送方式通常用來高速傳送大批量的數(shù)據(jù)塊。如:  硬盤和軟盤I/O; 快速通信通道I/O; 多處理機(jī)和多程序數(shù)據(jù)塊傳送; 在圖像處理中,對(duì)CRT屏幕送數(shù)據(jù); 快速數(shù)據(jù)采集; DRAM的刷新操作。 DMA傳送包括:(1)存儲(chǔ)單元傳送:存儲(chǔ)器→存儲(chǔ)器。(2)DMA讀傳送:存儲(chǔ)器→I/O設(shè)備。(3)DMA寫傳送:I/O設(shè)備→存儲(chǔ)器。4.1.2  DMA傳送的工作過程 1)I/O設(shè)備向DMAC發(fā)出DMA請(qǐng)求;2) DMAC向CPU發(fā)出總線請(qǐng)求;3)CPU在執(zhí)行完當(dāng)前指令的當(dāng)前的總線周期后,向DMAC發(fā)出總線響應(yīng)信號(hào);4)CPU脫離對(duì)系統(tǒng)總線的控制,由DMAC接管對(duì)系統(tǒng)總線的控制; 為什么DMA傳送方式能實(shí)現(xiàn)高速傳送?DMA傳送的過程是什么樣的?畫出流程。DMA有哪些操作方式?各有什么特點(diǎn)。簡(jiǎn)述DMA控制器的兩個(gè)工作狀態(tài)的特點(diǎn)。試設(shè)計(jì)一種在8088大模式下與8237連接的基本電路圖。并說明你的設(shè)計(jì)中8237各個(gè)端口的實(shí)際地址。DMA控制器的時(shí)序包括哪幾個(gè)狀態(tài)周期?試畫出正常讀傳輸?shù)臅r(shí)序。DMAC的內(nèi)部地址寄存器是16位的,如何擴(kuò)展地址來訪問16MB的地址空間?

    標(biāo)簽: DMA

    上傳時(shí)間: 2013-11-18

    上傳用戶:leixinzhuo

  • 驅(qū)動(dòng)程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個(gè)符號(hào)鏈;2. 通過輸出到一個(gè)接口WDM驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號(hào)鏈的方法。這個(gè)接口保證PDO的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個(gè)Win32 APIs和設(shè)備對(duì)象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對(duì)設(shè)備對(duì)象訪問的第一步就是打開一個(gè)設(shè)備對(duì)象的句柄。 用符號(hào)鏈打開一個(gè)設(shè)備的句柄為了打開一個(gè)設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個(gè)符號(hào)鏈出口,應(yīng)用程序可以用下面這個(gè)例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個(gè)設(shè)備。這個(gè)設(shè)備必須有一個(gè)符號(hào)鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個(gè)參數(shù)中前綴后的部分就是這個(gè)符號(hào)鏈的名字。注意:CreatFile中的第一個(gè)參數(shù)不是Windows 98/2000中驅(qū)動(dòng)程序(.sys文件)的路徑。是到設(shè)備對(duì)象的符號(hào)鏈。如果使用DriverWizard產(chǎn)生驅(qū)動(dòng)程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號(hào)鏈。這意味著符號(hào)鏈名有一個(gè)附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個(gè)參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個(gè)輸出接口打開句柄用這種方式打開一個(gè)句柄會(huì)稍微麻煩一些。DriverWorks庫(kù)提供兩個(gè)助手類來使獲得對(duì)該接口的訪問容易一些,這兩個(gè)類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個(gè)設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個(gè)實(shí)例來獲得一個(gè)或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個(gè)單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個(gè)路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個(gè)小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個(gè)有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對(duì)象的IRPs。下面的表顯示了這種對(duì)應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個(gè)新的文件對(duì)象。這使得多個(gè)句柄可以映射同一個(gè)文件對(duì)象。當(dāng)這個(gè)文件對(duì)象的最后一個(gè)用戶級(jí)句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級(jí)和核心級(jí)的對(duì)文件對(duì)象的訪問的時(shí)候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯(cuò)誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會(huì)在打開設(shè)備的時(shí)候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個(gè)屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個(gè)設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對(duì)象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲(chǔ)器中,并且創(chuàng)建了一個(gè)存儲(chǔ)在IRP中的MDL域。一個(gè)設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對(duì)象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對(duì)應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲(chǔ)區(qū)并沒有被鎖住而且地址只對(duì)調(diào)用進(jìn)程有效。驅(qū)動(dòng)程序可以使用KIrp::UserBuffer來存取IRP域。對(duì)于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對(duì)象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個(gè)宏的其中一個(gè)參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對(duì)應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個(gè)單一的緩沖來作為輸入與輸出。驅(qū)動(dòng)程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動(dòng)程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時(shí),I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級(jí)調(diào)用者使用的緩沖中。驅(qū)動(dòng)程序必須在結(jié)束前存儲(chǔ)拷貝到IRP的Information成員中的數(shù)據(jù)個(gè)數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個(gè)系統(tǒng)緩沖,這個(gè)緩沖驅(qū)動(dòng)程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對(duì)象,驅(qū)動(dòng)程序?qū)@個(gè)對(duì)象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對(duì)于METHOD_OUT_DIRECT,調(diào)用者必須有對(duì)緩沖的寫訪問權(quán)限。注意,對(duì)METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會(huì)做映射來配置緩沖。虛擬地址只對(duì)調(diào)用進(jìn)程有效。這里是一個(gè)用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個(gè)IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個(gè)DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動(dòng)程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動(dòng)程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標(biāo)簽: 驅(qū)動(dòng)程序 應(yīng)用程序 接口

    上傳時(shí)間: 2013-10-17

    上傳用戶:gai928943

  • 子空間模式識(shí)別方法

    提出了一種改進(jìn)的LSM-ALSM子空間模式識(shí)別方法,將LSM的旋轉(zhuǎn)策略引入ALSM,使子空間之間互不關(guān)聯(lián)的情況得到改善,提高了ALSM對(duì)相似樣本的區(qū)分能力。討論中以性能函數(shù)代替經(jīng)驗(yàn)函數(shù)來確定拒識(shí)規(guī)則的參數(shù),實(shí)現(xiàn)了識(shí)別率、誤識(shí)率與拒識(shí)率之間的最佳平衡;通過對(duì)有限字符集的實(shí)驗(yàn)結(jié)果表明,LSM-ALSM算法有效地改善了分類器的識(shí)別率和可靠性。關(guān) 鍵 詞 學(xué)習(xí)子空間; 性能函數(shù); 散布矩陣; 最小描述長(zhǎng)度在子空間模式識(shí)別方法中,一個(gè)線性子空間代表一個(gè)模式類別,該子空間由反映類別本質(zhì)的一組特征矢量張成,分類器根據(jù)輸入樣本在各子空間上的投影長(zhǎng)度將其歸為相應(yīng)的類別。典型的子空間算法有以下三種[1, 2]:CLAFIC(Class-feature Information Compression)算法以相關(guān)矩陣的部分特征向量來構(gòu)造子空間,實(shí)現(xiàn)了特征信息的壓縮,但對(duì)樣本的利用為一次性,不能根據(jù)分類結(jié)果進(jìn)行調(diào)整和學(xué)習(xí),對(duì)樣本信息的利用不充分;學(xué)習(xí)子空間方法(Leaning Subspace Method, LSM)通過旋轉(zhuǎn)子空間來拉大樣本所屬類別與最近鄰類別的距離,以此提高分類能力,但對(duì)樣本的訓(xùn)練順序敏感,同一樣本訓(xùn)練的順序不同對(duì)子空間構(gòu)造的影響就不同;平均學(xué)習(xí)子空間算法(Averaged Learning Subspace Method, ALSM)是在迭代訓(xùn)練過程中,用錯(cuò)誤分類的樣本去調(diào)整散布矩陣,訓(xùn)練結(jié)果與樣本輸入順序無關(guān),所有樣本平均參與訓(xùn)練,其不足之處是各模式的子空間之間相互獨(dú)立。針對(duì)以上問題,本文提出一種改進(jìn)的子空間模式識(shí)別方法。子空間模式識(shí)別的基本原理1.1 子空間的分類規(guī)則子空間模式識(shí)別方法的每一類別由一個(gè)子空間表示,子空間分類器的基本分類規(guī)則是按矢量在各子空間上的投影長(zhǎng)度大小,將樣本歸類到最大長(zhǎng)度所對(duì)應(yīng)的類別,在類x()iω的子空間上投影長(zhǎng)度的平方為()211,2,,()argmax()jMTkkjpg===Σx􀀢 (1)式中 函數(shù)稱為分類函數(shù);為子空間基矢量。兩類的分類情況如圖1所示。

    標(biāo)簽: 子空間 模式 識(shí)別方法

    上傳時(shí)間: 2013-12-25

    上傳用戶:熊少鋒

  • C51單片機(jī)并行口擴(kuò)展設(shè)計(jì)及應(yīng)用

    C51單片機(jī)是我們生活中最常用的系列,MCS-51系列單片機(jī)有4個(gè)并行口(P0,P1,P2,P3口),但對(duì)一個(gè)稍微復(fù)雜的應(yīng)用系統(tǒng)來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴(kuò)展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴(kuò)展并行口以滿足實(shí)際的需要。習(xí)慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對(duì)比較復(fù)雜的系統(tǒng)中,但如是對(duì)一般的系統(tǒng)而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號(hào)來進(jìn)行并行口的擴(kuò)展,這樣就能充分利用單片機(jī)有限的I/O資源,在本設(shè)計(jì)中是將P1口擴(kuò)展成一個(gè)或幾個(gè)8位并行口,在每一個(gè)八位口上接入8個(gè)發(fā)光二極管做為輸出,二極管是做開關(guān)量來使用的,在這里設(shè)計(jì)了跑馬燈和流水燈程序,做到對(duì)開關(guān)量的開斷控制;配合開關(guān)量的控制筆者設(shè)計(jì)了一個(gè)共陽LED數(shù)碼管,用來顯示當(dāng)前發(fā)光二極管發(fā)亮的序號(hào),做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉(zhuǎn)換器和一放大器輸出一個(gè)模擬信號(hào),其結(jié)果可以通過示波器看出。這樣整個(gè)系統(tǒng)即有了數(shù)字信號(hào)輸出和模擬信號(hào)輸出,也有數(shù)碼管顯示功能,實(shí)用性能大提高了。2、 基于89C51的系統(tǒng)硬件設(shè)計(jì)2.1 并行口的擴(kuò)展的電路設(shè)計(jì) 眾所周知,C51系列的單片機(jī)都有四個(gè)I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態(tài),所以這次設(shè)計(jì),我們就是使用閑置不用的P3口做為選能信號(hào)線來將P1口進(jìn)行并行口擴(kuò)展。 (1) 種方式的并行口擴(kuò)展優(yōu)點(diǎn) 連線簡(jiǎn)單; 不占用存儲(chǔ)器空間; (2) 編程也方便靈活。但也有很大的缺點(diǎn) 并行口擴(kuò)展能力有限,(如使用74LS573(74LS373)且不進(jìn)行驅(qū)動(dòng)處理,則最多可擴(kuò)展4個(gè)同樣類型的并行輸出端口,當(dāng)然還需要與之對(duì)應(yīng)的四個(gè)選通信號(hào)。) 如擴(kuò)展較多,選通信號(hào)占用并行口位數(shù)太多,例如欲擴(kuò)展8個(gè)并行輸出端口,則需要8個(gè)選能信號(hào),此時(shí),僅選能信號(hào)就占用了一個(gè)8位并行口,這對(duì)在I/O端口線有限的單片機(jī)系統(tǒng)中,如此浪費(fèi)資源的現(xiàn)象是不能容忍的。在本次的設(shè)計(jì)中,采用芯片74HC573(帶三態(tài)輸出的八進(jìn)制透明D型鎖存器)對(duì)P1口進(jìn)行了一個(gè)8位并行口的擴(kuò)展,選通信號(hào)選用P3口的P3.3引腳。原理圖如圖1所示:

    標(biāo)簽: C51 單片機(jī) 并行口 擴(kuò)展設(shè)計(jì)

    上傳時(shí)間: 2013-11-18

    上傳用戶:dbs012280

  • 匯編+保護(hù)模式+教程

    九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guā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í)行的程序所訪問。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地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見,當(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ù)訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問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í)行的程序訪問;否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問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格式可見,TSS內(nèi)偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問。設(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é)可見,不論是否必要,當(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é)的最低位。可見即使只要檢查兩個(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許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問的許可檢查總被認(rè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ù)。類似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無意義的。此外,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 不變 不變 不變 從表中可見,只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿足上述條件的情況下,當(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通過任務(wù)門調(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)通過任務(wù)門調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過任務(wù)門調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過任務(wù)門調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過任務(wù)門調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。

    標(biāo)簽: 匯編 保護(hù)模式 教程

    上傳時(shí)間: 2013-12-11

    上傳用戶:nunnzhy

  • 用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示

    用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示摘  要:文章介紹了用AT89S8252單片機(jī)的串行接口與智能溫度巡回檢測(cè)儀(XJ-08S)通過RS—485總線相互通訊實(shí)現(xiàn)熱水溫度遠(yuǎn)程顯示的一種低成本解決方案,內(nèi)容涉及RS—485總線通訊、單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示、數(shù)據(jù)轉(zhuǎn)換以及鍵盤處理軟硬件設(shè)計(jì)等內(nèi)容。關(guān)鍵詞:?jiǎn)纹瑱C(jī)  RS—485總線  數(shù)碼管顯示  數(shù)據(jù)轉(zhuǎn)換  鍵盤處理一、前  言目前檢測(cè)溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補(bǔ)償導(dǎo)線,而溫度補(bǔ)償導(dǎo)線價(jià)格很貴,并且線路太長(zhǎng)也會(huì)影響測(cè)量精度。在實(shí)際應(yīng)用中往往需要對(duì)較遠(yuǎn)處(1KM左右)的溫度信號(hào)進(jìn)行監(jiān)視。現(xiàn)有的解決方案有很多,例如:1、 在現(xiàn)場(chǎng)用智能儀表對(duì)溫度信號(hào)進(jìn)行測(cè)量,用計(jì)算機(jī)作上位機(jī)與智能儀表進(jìn)行通訊來實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)(采用這種方案要增加計(jì)算機(jī)設(shè)備及相關(guān)計(jì)算機(jī)軟件)。2、 NCU+DDC實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。用兩個(gè)DDC,一個(gè)安裝在現(xiàn)場(chǎng)測(cè)量溫度,另一個(gè)安裝在監(jiān)視地,兩個(gè)DDC通過NCU進(jìn)行通訊從而實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。但以上方案都存在成本高的問題,有沒有低成本的解決方案呢?其實(shí),在單片機(jī)應(yīng)用日益廣泛的今天,完全可以用單片機(jī)以極低的成本來實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(cè)。二、問題的提出我單位管理的鍋爐房同時(shí)給兩棟建筑物內(nèi)的兩家酒店供應(yīng)蒸汽,由安裝在兩棟建筑物地下室的熱交換器進(jìn)行熱交換后產(chǎn)生熱水送給客房。從鍋爐房至兩個(gè)熱交換站的距離分別約600米,值班人員要不停地奔波于兩個(gè)熱交換站與鍋爐房之間進(jìn)行設(shè)備巡視,檢查熱水溫度是否控制在規(guī)定的范圍,這樣不僅增加了值班人員的勞動(dòng)強(qiáng)度,同時(shí)也使鍋爐房經(jīng)常無人(因每班1人值班)。如果能在鍋爐房顯示兩個(gè)熱交換站內(nèi)各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時(shí)才需到各熱交換站檢查設(shè)備,這樣便可解決上述問題。我公司曾就此問題找專業(yè)公司作過方案,其報(bào)價(jià)在人民幣10萬元左右,后因種種原因該項(xiàng)目未實(shí)施。經(jīng)過分析,本人發(fā)現(xiàn)可以用單片機(jī)+智能儀表以低成本實(shí)現(xiàn)溫度遠(yuǎn)程顯示,并且經(jīng)過實(shí)驗(yàn)取得了成功,現(xiàn)將設(shè)計(jì)方案簡(jiǎn)述如下:三、控制要求及解決方案選擇 1、 兩個(gè)熱交換站分高低區(qū)共安裝有8個(gè)熱交換器,正常水溫在45oC至65oC之間;兩個(gè)熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點(diǎn)兩種方式顯示8個(gè)熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點(diǎn)方式時(shí)每按上鍵或下鍵一次則顯示上或下一個(gè)熱交換器熱水溫度,每3秒自動(dòng)更新數(shù)據(jù)一次。3、 根據(jù)控制要求選擇單片機(jī)+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現(xiàn)場(chǎng)測(cè)量溫度,設(shè)計(jì)制作一個(gè)單片機(jī)裝置完成與智能儀表的通訊及數(shù)據(jù)顯示。四、通訊協(xié)議、智能儀表選擇及其參數(shù)介紹因熱水溫度信號(hào)變化較慢,因而對(duì)通信的速度要求不高,對(duì)于這種低速率遠(yuǎn)距離的通訊選用RS-485總線適宜。RS-485是EIA(美國(guó)電子工業(yè)聯(lián)合會(huì))在1983年公布的新的平衡傳輸標(biāo)準(zhǔn),是工業(yè)界使用最為廣泛的雙向、平衡傳輸線標(biāo)準(zhǔn)接口,它以半雙工方式通信,支持多點(diǎn)連接,傳統(tǒng)驅(qū)動(dòng)器允許創(chuàng)建多達(dá)32個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),且其具有傳輸距離遠(yuǎn)(最大傳輸距離為1200M),傳輸速度快(1200M時(shí)為100KBPS)等優(yōu)點(diǎn)。其連接方法如下圖所示。

    標(biāo)簽: 用單片機(jī) 溫度 遠(yuǎn)程顯示

    上傳時(shí)間: 2013-10-12

    上傳用戶:luopoguixiong

  • 基于多點(diǎn)網(wǎng)絡(luò)的水廠自動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)

    基于多點(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 自來 水 廠 的自動(dòng)控制系統(tǒng)一般分為兩大部分,一對(duì)組態(tài)硬件要求較高,投資較大。相對(duì)而言,MPI網(wǎng)是水源地深水泵的工作控制,一是水廠區(qū)變頻恒壓供絡(luò)速度可達(dá)187.5 M bps,通過一級(jí)中繼器傳輸距離可水控制,兩部分的實(shí)際距離通常都比較遠(yuǎn)。某廠水源達(dá)Ikm 。根據(jù)水廠的具體情況,確定以MPI方式組地有3臺(tái)深井泵給水廠區(qū)的蓄水池供水。水廠區(qū)的成網(wǎng)絡(luò),主站PLC為S7-300系列的CPU3121FM,從任務(wù)是對(duì)水池的水進(jìn)行消毒處理后,通過加壓泵向管站為S7-200系列的CPU222。這樣既滿足了系統(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之間的通信,可滿足交直流調(diào)速系統(tǒng)快速響應(yīng)的時(shí)間要求,特別適合于加工自動(dòng)化領(lǐng)域的應(yīng)用;Profibus - FMS主要解決車間級(jí)通信問題,完成中等傳輸速度的循環(huán)或非循環(huán)數(shù)據(jù)交換任務(wù),適用于紡織、樓宇自動(dòng)化、可編程控制器、低壓開關(guān)等;Profibus - PA型采用了OSI模型的物理層和數(shù)據(jù)鏈路層,適用于過程自動(dòng)化的總線類型。

    標(biāo)簽: 多點(diǎn) 網(wǎng)絡(luò) 系統(tǒng)設(shè)計(jì) 自動(dòng)監(jiān)控

    上傳時(shí)間: 2013-10-09

    上傳用戶:fac1003

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久欧美肥婆一二区| 国产毛片一区二区| 欧美日韩一区国产| 国产一区二区久久久| 亚洲视频综合在线| 欧美日韩免费观看中文| 影音先锋成人资源站| 久久国内精品自在自线400部| 国产精品日韩欧美综合| 亚洲午夜精品一区二区| 欧美午夜激情视频| 亚洲视频免费在线| 欧美视频免费看| 亚洲婷婷免费| 国产精品综合av一区二区国产馆| 亚洲已满18点击进入久久| 国产精品久线观看视频| 午夜精品久久久久久久久| 国产区日韩欧美| 久久久999精品| 在线观看国产日韩| 欧美国产免费| 日韩亚洲一区二区| 欧美午夜剧场| 欧美制服丝袜| 伊人久久大香线蕉综合热线| 免费h精品视频在线播放| 亚洲破处大片| 国产精品mv在线观看| 香港成人在线视频| 激情久久婷婷| 久热国产精品| 一本色道**综合亚洲精品蜜桃冫| 国产精品激情| 久久久久久黄| 99re热这里只有精品免费视频| 欧美日韩在线免费视频| 亚洲一区二区三区免费视频| 国产亚洲一区精品| 免费一级欧美片在线观看| 亚洲日韩视频| 国产精品一区二区久激情瑜伽| 久久久久久**毛片大全| 亚洲精品综合久久中文字幕| 国产精品黄色| 久久久久久久91| 99国产精品久久久久久久成人热| 国产精品伊人日日| 牛牛国产精品| 性色av香蕉一区二区| 亚洲国产精品一区二区第一页| 欧美日韩一区二区国产| 久久久精品国产99久久精品芒果| 亚洲国产一区二区视频| 国产精品色婷婷久久58| 蜜桃久久精品乱码一区二区| 在线综合亚洲欧美在线视频| 国内外成人免费激情在线视频网站| 欧美顶级大胆免费视频| 午夜久久久久久| 亚洲激情中文1区| 国产免费成人在线视频| 欧美精品一区二区三区四区| 久久精品99国产精品酒店日本| 99国产精品99久久久久久粉嫩| 国产中文一区| 国产精品福利影院| 农村妇女精品| 欧美一区久久| 亚洲一区二区动漫| 亚洲国产成人久久综合| 国产欧美在线观看一区| 欧美日韩亚洲综合| 欧美99久久| 久久久久9999亚洲精品| 亚洲小视频在线观看| 亚洲国产精品成人一区二区| 国产日韩精品视频一区| 欧美视频日韩| 欧美日韩国产黄| 免费高清在线视频一区·| 午夜在线观看免费一区| 99热免费精品| 亚洲精品久久久久中文字幕欢迎你| 国产一区二区三区在线观看视频 | 亚洲主播在线观看| 亚洲区欧美区| 亚洲国产成人不卡| 精品99一区二区| 国产字幕视频一区二区| 国产日韩精品视频一区二区三区| 欧美日韩色一区| 欧美日韩成人在线视频| 欧美精品午夜| 欧美日本二区| 欧美巨乳在线观看| 欧美日本在线视频| 欧美日韩国产在线看| 欧美精品自拍偷拍动漫精品| 欧美激情二区三区| 欧美国产精品va在线观看| 欧美大片网址| 欧美日韩1区2区| 欧美日韩中文字幕日韩欧美| 欧美日本精品| 欧美体内谢she精2性欧美| 欧美日韩一区在线| 国产精品超碰97尤物18| 国产精品男人爽免费视频1| 国产精品电影网站| 国产精品免费福利| 国产欧美日韩在线 | 毛片一区二区三区| 久久综合一区二区| 欧美成人网在线| 欧美日韩国产综合在线| 欧美性色综合| 国产精品影片在线观看| 国产一区日韩二区欧美三区| 极品尤物久久久av免费看| 国语自产精品视频在线看| 激情一区二区三区| 亚洲第一天堂av| 99av国产精品欲麻豆| 亚洲神马久久| 欧美一区二区免费视频| 久久亚洲一区二区三区四区| 欧美成人午夜激情视频| 欧美视频中文一区二区三区在线观看 | 国产一区三区三区| 悠悠资源网亚洲青| 亚洲伦理中文字幕| 亚洲欧美日韩国产一区| 久久久久久黄| 欧美日韩精品在线播放| 国产欧美高清| 91久久国产自产拍夜夜嗨| 亚洲一区二区动漫| 久久米奇亚洲| 欧美精品高清视频| 国产伦精品一区二区三区四区免费 | 韩国一区电影| 亚洲人体1000| 香蕉乱码成人久久天堂爱免费| 久久综合国产精品台湾中文娱乐网| 欧美1级日本1级| 国产精品青草久久久久福利99| 狠狠色综合一区二区| 亚洲精品一区二区三区99| 午夜在线一区二区| 欧美aⅴ一区二区三区视频| 欧美视频一区在线| 伊人成人在线视频| 国产精品99久久不卡二区| 久久精品一二三| 欧美日韩另类国产亚洲欧美一级| 国产欧美在线视频| 亚洲精选中文字幕| 久久久成人精品| 欧美日韩视频一区二区三区| 国产一区在线播放| 亚洲婷婷国产精品电影人久久| 久久亚洲国产精品日日av夜夜| 国产精品久久国产精麻豆99网站| 亚洲第一视频网站| 欧美一区二区三区精品| 欧美日韩在线播| 亚洲福利精品| 久久精品国产欧美亚洲人人爽| 欧美图区在线视频| 亚洲清纯自拍| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品久久久久久久浪潮网站 | 国产精品久久一区二区三区| 最近看过的日韩成人| 久久精品国产91精品亚洲| 欧美午夜www高清视频| 亚洲人在线视频| 久久亚洲色图| 国产一区二区三区最好精华液| 亚洲免费视频一区二区| 欧美日韩国产精品专区| 1024成人网色www| 久久久久看片| 国产亚洲精品7777| 午夜精品成人在线视频| 国产精品成人aaaaa网站| av成人老司机| 欧美日韩在线另类| 一区二区久久久久| 欧美精品日韩www.p站| 亚洲国产小视频在线观看| 久久亚洲综合色一区二区三区| 国产一区视频在线看| 久久高清免费观看| 国产欧美一区二区视频| 久久av在线看| 激情偷拍久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区在线视频观看|