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

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

工業(yè)(yè)<b>接口</b>

  • ADS-B接收機(jī)DIY全套資料

    制作基于PIC Mcu 的ADS-B接收機(jī)的全套資料,包括SCH、PCB、源碼和PC端軟件。

    標(biāo)簽: ADS-B DIY 接收機(jī)

    上傳時間: 2013-04-24

    上傳用戶:cx111111

  • 2012TI杯陜西賽題B題--頻率補(bǔ)償電路

    2012TI杯陜西賽題H題,2012TI杯陜西賽題B題--頻率補(bǔ)償電路.

    標(biāo)簽: 2012 TI 頻率補(bǔ)償電路

    上傳時間: 2013-10-07

    上傳用戶:ysystc670

  • 基于脈沖變壓器的總線式RS485隔離器

    為簡化總線式RS485隔離器的設(shè)計(jì),提出基于脈沖變壓器的總線式RS485隔離器的技術(shù)方案。該方案具有簡單實(shí)用、無需電源、無需考慮數(shù)據(jù)流向、在有限范圍內(nèi)波特率自適應(yīng)、底層用戶群體易于理解和掌控等特點(diǎn)。給出了基本實(shí)驗(yàn)電路和脈沖變壓器的主要設(shè)計(jì)依據(jù)。基于脈沖變壓器的總線式RS485隔離器,尤其適合工業(yè)環(huán)境下半雙工的A、B兩線制RS485通信網(wǎng)的升級改造,其基本思想也適用于全雙工的W、X、Y、Z四線制RS485/RS422通信網(wǎng)。

    標(biāo)簽: 485 RS 脈沖變壓器 總線式

    上傳時間: 2013-10-07

    上傳用戶:lizx30340

  • MOTOROLA 8位增強(qiáng)型單片機(jī)M68HC11原理與應(yīng)用

    本書分三部分介紹在美國廣泛應(yīng)用的、高功能的M68HC11系列單片機(jī)(8位機(jī) ,Motorola公司)。內(nèi)容包括M68HC11的結(jié)構(gòu)與其基本原理、開發(fā)工具EVB(性能評估板)以及開發(fā)和應(yīng)用技術(shù)。本書在介紹單片機(jī)硬、軟件的基礎(chǔ)上,進(jìn)一步介紹了在美國實(shí)驗(yàn)室內(nèi),如何應(yīng)用PC機(jī)及EVB來進(jìn)行開發(fā)工作。通過本書的介紹,讀者可了解這種單片機(jī)的原理并學(xué)會開發(fā)和應(yīng)用方法。本書可作為大專院校單片機(jī)及其實(shí)驗(yàn)的教材(本科、短訓(xùn)班)。亦可供開發(fā)、應(yīng)用單片機(jī)的各專業(yè)(計(jì)算機(jī)、機(jī)電、化工、紡織、冶金、自控、航空、航海……)有關(guān)技術(shù)人員參考。 第一部分 M68HC11 結(jié)構(gòu)與原理Motorola單片機(jī) 1 Motorla單片機(jī) 1.1 概述 1.1.1 Motorola 單片機(jī)發(fā)展概況(3) 1.1.2 Motorola 單片機(jī)結(jié)構(gòu)特點(diǎn)(4) 1.2 M68HC11系列單片機(jī)(5) 1.2.1 M68HC11產(chǎn)品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9單片機(jī)引腳說明(8) 1.3 Motorola 32位單片機(jī)(14) 1.3.1中央處理器(CPU32)(15) 1.3.2 定時處理器(TPU)(16) 1.3.3 串行隊(duì)列模塊(QSM)(16) 1.3.4 系統(tǒng)集成模塊 (SIM)(16) 1.3.5 RAM(17) 2 系統(tǒng)配置與工作方式 2.1 系統(tǒng)配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的編程與擦除(20) 2?2 工作方式選擇(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通單片工作方式(23) 2.3.2 普通擴(kuò)展工作方式(23) 2.3.3 特殊自舉方式(27) 2.3.4 特殊測試方式(28) 3 中央處理器(CPU)與片上存儲器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和雙累加器D(32) 3.1.2 變址寄存器X、Y(32) 3.1.3 棧指針SP(32) 3.1.4 程序計(jì)數(shù)器PC(33) 3.1.5 條件碼寄存器CCR(33) 3.2 片上存儲器(34) 3.2.1 存儲器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 復(fù)位和中斷 4.1 復(fù)位(41) 4.1.1 M68HC11的系統(tǒng)初始化條件(41) 4.1.2 復(fù)位形式(43) 4.2 中斷(48) 4.2.1 條件碼寄存器CCR中的中斷屏蔽位(48) 4.2.2 中斷優(yōu)先級與中斷矢量(49) 4.2.3 非屏蔽中斷(52) 4.2.4 實(shí)時中斷(53) 4.2.5 中斷處理過程(56) 5 M68HC11指令系統(tǒng) 5.1 M68HC11尋址方式(59) 5.1.1 立即尋址(IMM)(59) 5.1.2 擴(kuò)展尋址(EXT)(60) 5.1.3 直接尋址(DIR)(60) 5.1.4 變址尋址(INDX、INDY)(61) 5.1.5 固有尋址(INH)(62) 5.1.6 相對尋址(REL)(62) 5.1.7 前置字節(jié)(63) 5.2 M68HC11指令系統(tǒng)(63) 5.2.1 累加器和存儲器指令(63) 5.2.2 棧和變址寄存器指令(68) 5.2.3 條件碼寄存器指令(69) 5.2.4 程序控制指令(70) 6 輸入與輸出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 應(yīng)答I/O子系統(tǒng)(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 數(shù)據(jù)格式(83) 6.3.3 SCI硬件結(jié)構(gòu)(84) 6.3.4 SCI寄存器(86) 6.4 串行外圍接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引腳信號(92) 6.4.3 SPI結(jié)構(gòu)(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系統(tǒng)與外部設(shè)備進(jìn)行串行數(shù)據(jù)傳輸(99) 7 定時器系統(tǒng)與脈沖累加器 7.1 概述(105) 7.2 循環(huán)計(jì)數(shù)器(107) 7.2.1 時鐘分頻器(107) 7.2.2 計(jì)算機(jī)正常工作監(jiān)視功能(110) 7.2.3 定時器標(biāo)志的清除(110) 7.3 輸入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定時器輸入捕捉鎖存器(TIC1、TIC2、TIC3) 7.3.3 輸入信號沿檢測邏輯(113) 7.3.4 輸入捕捉中斷(113) 7.4 輸出比較功能(114) 7.4.1 概述(114) 7.4.2 輸出比較功能使用的寄存器(116) 7.4.3 輸出比較示例(118) 7.5 脈沖累加器(119) 7.5.1 概述(119) 7.5.2 脈沖累加器控制和狀態(tài)寄存器(121) 8 A/D轉(zhuǎn)換系統(tǒng) 8.1 電荷重新分布技術(shù)與逐次逼近算法(125) 8.1.1 基本電路(125) 8.1.2 A/D轉(zhuǎn)換逐次逼近算法原理(130) 8.2 M68HC11中A/D轉(zhuǎn)換的實(shí)現(xiàn)方法(131) 8.2.1 逐次逼近A/D轉(zhuǎn)換器(131) 8.2.2 控制寄存器(132) 8.2.3 系統(tǒng)控制邏輯(135)? 9 單片機(jī)的內(nèi)部操作 9.1 用立即>    圖書前言   美國Motorola公司從80年代中期開始推出的M68HC11系列單片機(jī)是當(dāng)今功能最強(qiáng)、性能/價格比最好的八位單片微計(jì)算機(jī)之一。在美國,它已被廣泛地應(yīng)用于教學(xué)和各種工業(yè)控制系統(tǒng)中。?   該單片機(jī)有豐富的I/O功能,完善的系統(tǒng)保護(hù)功能和軟件控制的節(jié)電工作方式 。它的指令系統(tǒng)與早期Motorola單片機(jī)MC6801等兼容,同時增加了91條新指令。其中包含16位乘法、除法運(yùn)算指令等。   為便于用戶開發(fā)和應(yīng)用M68HC11單片機(jī),Motorola公司提供了多種開發(fā)工具。M68HC11 EVB (Evaluation Board)性能評估板就是一種M68HC11系列單片機(jī)的廉價開發(fā)工具。它既可用來 調(diào)試用戶程序,又可在仿真方式下運(yùn)行。為方便用戶,M68HC11 EVB可與IBM?PC連接 ,借助于交叉匯編、通信程序等軟件,在IBM?PC上調(diào)試程序。?   本書分三部分(共15章)介紹了M68HC11的結(jié)構(gòu)和基本原理、開發(fā)工具-EVB及開發(fā)應(yīng)用實(shí)例等。第一部分(1~9章),介紹M68HC11的結(jié)構(gòu)和基本原理。包括概述,系統(tǒng)配置與工作方式、CPU和存儲器、復(fù)位和中斷、指令系統(tǒng)、I/O、定時器系統(tǒng)和脈沖累加器、A/D轉(zhuǎn)換系統(tǒng)、單片機(jī)的內(nèi)部操作等。第二部分(10~11章),介紹M68HC11 EVB的原理和技術(shù)特性以及EVB的應(yīng)用。第三部分(12~15章),介紹M68HC11的開發(fā)與應(yīng)用技術(shù)。包括基本的編程練習(xí)、應(yīng)用程序設(shè)計(jì)、接口實(shí)驗(yàn)、接口設(shè)計(jì)及應(yīng)用等。   讀者通過學(xué)習(xí)本書,不僅可了解M68HC11的硬件、軟件,而且可了解使用EVB開發(fā)和應(yīng)用M68HC11單片機(jī)的方法。在本書的第三部分專門提供了一部分實(shí)驗(yàn)和應(yīng)用程序。?   本書系作者張寧作為高級訪問學(xué)者,應(yīng)邀在美國馬薩諸塞州洛厄爾大學(xué)(University of Massachusetts Lowell)工作期間完成的。全書由張寧執(zhí)筆。在編著過程中,美國洛厄爾大學(xué)的R·代克曼教授?(Professor Robert J. Dirkman)多次與張寧一起討論、研究,并提供部分資料及實(shí)驗(yàn)數(shù)據(jù)。參加編寫和審校等工作的還有王云霞、孫曉芳、劉安魯、張籍、來安德、張楊等同志。?   為將M68HC11系列單片機(jī)盡快介紹給我國,美國Motorola公司的Terrence M.S.Heng先生曾大力支持本書的編著和出版。在此表示衷心感謝。    

    標(biāo)簽: MOTOROLA M68 68 11

    上傳時間: 2013-10-27

    上傳用戶:rlgl123

  • PSHLY-B回路電阻測試儀

    PSHLY-B回路電阻測試儀介紹

    標(biāo)簽: PSHLY-B 回路 電阻測試儀

    上傳時間: 2013-11-05

    上傳用戶:木子葉1

  • 8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù)

    8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù):第一節(jié)   8051 單片機(jī)系統(tǒng)擴(kuò)展概述第二節(jié)  單片機(jī)外部存儲器擴(kuò)展第三節(jié)  單片機(jī)輸入輸出(I/O)口擴(kuò)展及應(yīng)用第四節(jié)   LED顯示器接口電路及顯示程序第五節(jié)  單片機(jī)鍵盤接口技術(shù)第六節(jié) 單片機(jī)與數(shù)模(D/A)及模數(shù)(A/D)轉(zhuǎn)換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機(jī)送出的地址信號,用于訪問外部存儲器單元或I/O端口。A   地址總線是單向的,地址信號只是由單片機(jī)向外發(fā)出。B   地址總線的數(shù)目決定了可直接訪問的存儲器單元的數(shù)目。例如N位地址,可以產(chǎn)生2N個連續(xù)地址編碼,因此可訪問2N個存儲單元,即通常所說的尋址范圍為 2N個地址單元。MCS—51單片機(jī)有十六位地址線,因此存儲器展范圍可達(dá)216 = 64KB地址單元。C   掛在總線上的器件,只有地址被選中的單元才能與CPU交換數(shù)據(jù),其余的都暫時不能操作,否則會引起數(shù)據(jù)沖突。2、數(shù)據(jù)總線(Data Bus,簡寫為DB)數(shù)據(jù)總線用于在單片機(jī)與存儲器之間或單片機(jī)與I/O端口之間傳送數(shù)據(jù)。A   單片機(jī)系統(tǒng)數(shù)據(jù)總線的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長一致。例如MCS—51單片機(jī)是8位字長,所以數(shù)據(jù)總線的位數(shù)也是8位。B   數(shù)據(jù)總線是雙向的,即可以進(jìn)行兩個方向的數(shù)據(jù)傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實(shí)際上就是一組控制信號線,包括單片機(jī)發(fā)出的,以及從其它部件送給單片機(jī)的各種控制或聯(lián)絡(luò)信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結(jié)構(gòu)形式大大減少了單片機(jī)系統(tǒng)中連接線的數(shù)目,提高了系統(tǒng)的可靠性,增加了系統(tǒng)的靈活性。此外,總線結(jié)構(gòu)也使擴(kuò)展易于實(shí)現(xiàn),各功能部件只要符合總線規(guī)范,就可以很方便地接入系統(tǒng),實(shí)現(xiàn)單片機(jī)擴(kuò)展。

    標(biāo)簽: 8051 單片機(jī) 系統(tǒng)擴(kuò)展 接口技術(shù)

    上傳時間: 2013-10-18

    上傳用戶:assef

  • 并行接口

    7.1 并行接口概述并行接口和串行接口的結(jié)構(gòu)示意圖并行接口傳輸速率高,一般不要求固定格式,但不適合長距離數(shù)據(jù)傳輸7.2 可編程并行接口芯片82C55     7.2.1  8255的基本功能 8255具有2個獨(dú)立的8位I/O口(A口和B口)和2個獨(dú)立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作為輸入時提供三態(tài)緩沖器功能,作為輸出時提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。8255有3種工作方式,方式0、方式1和方式2,能使用無條件、查詢和中斷等多種數(shù)據(jù)傳送方式完成CPU與I/O設(shè)備之間的數(shù)據(jù)交換。B口和C口的引腳具有達(dá)林頓復(fù)合晶體管驅(qū)動能力,在1.5V時輸出1mA電流,適于作輸出端口。C口除用做數(shù)據(jù)口外,當(dāng)8255工作在方式1和方式2時,C口的部分引腳作為固定的聯(lián)絡(luò)信號線。

    標(biāo)簽: 并行接口

    上傳時間: 2013-10-25

    上傳用戶:oooool

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

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

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • 8255A可編程并行接口

    并行接口電路:微處理器與I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸時均需經(jīng)過接口電路實(shí)現(xiàn)系統(tǒng)與設(shè)備互連的匹配。并行接口電路中每個信息位有自己的傳輸線,一個數(shù)據(jù)字節(jié)各位可并行傳送,速度快,控制簡單。由于電氣特性的限制,傳輸距離不能太長。8255A是通用的可編程并行接口芯片,功能強(qiáng),使用靈活。適合一些并行輸入/輸出設(shè)備的使用。8255A并行接口邏輯框圖三個獨(dú)立的8位I/O端口,口A、口B、口C。口A有輸入、輸出鎖存器及輸出緩沖器。口B與口C有輸入、輸出緩沖器及輸出鎖存器。在實(shí)現(xiàn)高級的傳輸協(xié)議時,口C的8條線分為兩組,每組4條線,分別作為口A與口B在傳輸時的控制信號線。口C的8條線可獨(dú)立進(jìn)行置1/置0的操作。口A、口B、口C及控制字口共占4個設(shè)備號。8255A并行接口的控制字工作模式選擇控制字:口A有三種工作模式,口B有二種工作模式。口C獨(dú)立使用時只有一個工作模式,與口A、口B配合使用時,作為控制信號線。三種工作模式命名為:模式0、模式1及模式2。模式 0 為基本I/O端口,模式1為帶選通的I/O端口,模式 2 為帶選通的雙向I/O端口。口A可工作在三種模式下,口B可工作在模式 0與模式 1下,口C可工作在模式0下或作為控制線配合口A、口B工作。

    標(biāo)簽: 8255A 可編程 并行接口

    上傳時間: 2013-11-07

    上傳用戶:xitai

  • 微機(jī)接口技術(shù)試題

    微機(jī)接口技術(shù)試題:《微機(jī)接口技術(shù)》模擬試題  一、 選擇題:(每空1分,共20分)1. CPU與外設(shè)之間交換數(shù)據(jù)常采用        、       、       和        四種方式,PC機(jī)鍵盤接口采用      傳送方式。 ⒉ 當(dāng)進(jìn)行DMA方式下的寫操作時,數(shù)據(jù)是從       傳送到       __中。 ⒊ PC總線、ISA總線和EISA總線的地址線分別為:     、     和     根。 ⒋ 8254定時/計(jì)數(shù)器內(nèi)部有     個端口、共有     種工作方式。 ⒌8255的A1和A0引腳分別連接在地址總線的A1和A0,當(dāng)命令端口的口地址為317H時,則A口、B口、C口的口地址分別為     、     、      。 ⒍ PC微機(jī)中最大的中斷號是       、最小的中斷號是       。 ⒎PC微機(jī)中鍵盤是從8255的       口得到按鍵數(shù)據(jù)。 ⒏ 串行通信中傳輸線上即傳輸_________,又傳輸_________。 二、選擇題:(每題2分,共10分)⒈ 設(shè)串行異步通信每幀數(shù)據(jù)格式有8個數(shù)據(jù)位、無校驗(yàn)、一個停止位,若波特率為9600B/S,該方式每秒最多能傳送(    )個字符。  ①  1200     ②  150 ③  960          ④  120 2.輸出指令在I/O接口總線上產(chǎn)生正確的命令順序是(    )。① 先發(fā)地址碼,再發(fā)讀命令,最后讀數(shù)據(jù)。② 先發(fā)讀命令、再發(fā)地址碼,最后讀數(shù)據(jù)。③ 先送地址碼,再送數(shù)據(jù),最后發(fā)寫命令。④ 先送地址碼,再發(fā)寫命令、最后送數(shù)據(jù)。3 使用8254設(shè)計(jì)定時器,當(dāng)輸入頻率為1MHZ并輸出頻率為100HZ時,該定時器的計(jì)數(shù)初值為(      )。 ① 100   ② 1000 ③ 10000 ④ 其它 4 在PC機(jī)中5號中斷,它的中斷向地址是(     )。 ① 0000H:0005H   ② 0000H:0010H ③ 0000H:0014H        ④ 0000H:0020H 5. 四片8259級聯(lián)時可提供的中斷請求總數(shù)為(      )。 ① 29個  ② 30個  ③ 31個    ④ 32個 6. 下述總線中,組內(nèi)都是外設(shè)串行總線為(   )組。① RS-485、IDE、ISA。② RS-485、IEEE1394、USB。③ RS-485、PCI、IEEE1394。④ USB、SCSI、RS-232。 7. DMA在(  )接管總線的控制權(quán)。① 申請階段  ② 響應(yīng)階段 ③ 數(shù)據(jù)傳送階段   ④ 結(jié)束階段 8. 中斷服務(wù)程序入口地址是(  )。 ① 中斷向量表的指針 ② 中斷向量 ③ 中斷向量表  ④ 中斷號

    標(biāo)簽: 微機(jī) 接口技術(shù) 試題

    上傳時間: 2013-11-16

    上傳用戶:xiaoxiang

主站蜘蛛池模板: 新田县| 桐乡市| 礼泉县| 林州市| 迁西县| 万荣县| 鄱阳县| 宜川县| 焦作市| 天等县| 金阳县| 淮安市| 武城县| 宣恩县| 镇远县| 依兰县| 祁东县| 池州市| 乌审旗| 镇原县| 榆林市| 沁阳市| 自治县| 威远县| 扎赉特旗| 沭阳县| 冷水江市| 沭阳县| 呼玛县| 边坝县| 临安市| 南通市| 宜黄县| 建德市| 喀喇沁旗| 塔河县| 民丰县| 尖扎县| 马尔康县| 建宁县| 神农架林区|