有兩種方式可以讓設備和應用程序之間聯系:1. 通過為設備創建的一個符號鏈;2. 通過輸出到一個接口WDM驅動程序建議使用輸出到一個接口而不推薦使用創建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創建一個惟一的、獨立于語言的訪問設備的方法。一個應用程序使用Win32APIs來調用設備。在某個Win32 APIs和設備對象的分發函數之間存在一個映射關系。獲得對設備對象訪問的第一步就是打開一個設備對象的句柄。 用符號鏈打開一個設備的句柄為了打開一個設備,應用程序需要使用CreateFile。如果該設備有一個符號鏈出口,應用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統本調用希望打開一個設備。這個設備必須有一個符號鏈,以便應用程序能夠打開它。有關細節查看有關Kdevice和CreateLink的內容。在上述調用中第一個參數中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數不是Windows 98/2000中驅動程序(.sys文件)的路徑。是到設備對象的符號鏈。如果使用DriverWizard產生驅動程序,它通常使用類KunitizedName來構成設備的符號鏈。這意味著符號鏈名有一個附加的數字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應用程序需要被覆蓋的I/O,第六個參數(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設備信息集,該信息集包含了特殊類中的所有設備接口信息。應用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設備接口的抽象。它的成員函數DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設備。下面用一個小例子來顯示這些類最基本的使用方法: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;} 在設備中執行I/O操作一旦應用程序獲得一個有效的設備句柄,它就能使用Win32 APIs來產生到設備對象的IRPs。下面的表顯示了這種對應關系。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 需要解釋一下設備類成員的Close和CleanUp:CreateFile使內核為設備創建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調用Close。如果被打開的設備不支持指定的功能,則調用相應的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應用程序代碼中可能會在打開設備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權的用戶企圖打開這個設備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數轉換成IRP域的方法依賴于設備對象的屬性。當設備設置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創建了一個存儲在IRP中的MDL域。一個設備可以通過調用Kirp::Mdl來存取MDL。當設備設置DO_BUFFERED_IO標志,設備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或寫操作獲得buff地址。當設備不設置DO_BUFFERED_IO標志也不設置DO_DIRECT_IO,內核設置IRP 的UserBuffer域來對應ReadFile或WriteFile中的buff參數。然而,存儲區并沒有被鎖住而且地址只對調用進程有效。驅動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調用,buffer參數的轉換依賴于特殊的I/O控制代碼,它不在設備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構造控制代碼。這個宏的其中一個參數指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數: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,系統分配一個單一的緩沖來作為輸入與輸出。驅動程序必須在向輸出緩沖放數據之前拷貝輸入數據。驅動程序通過調用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統緩沖拷貝數據到提供給Ring 3級調用者使用的緩沖中。驅動程序必須在結束前存儲拷貝到IRP的Information成員中的數據個數。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數呈現不同的含義。參數InputBuffer被拷貝到一個系統緩沖,這個緩沖驅動程序可以通過調用KIrp::IoctlBuffer。參數OutputBuffer被映射到KMemory對象,驅動程序對這個對象的訪問通過調用KIrp::Mdl來實現。對于METHOD_OUT_DIRECT,調用者必須有對緩沖的寫訪問權限。注意,對METHOD_NEITHER,內核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現在使用一個DeviceIoControl調用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,這里放的是包含有執行操作命令的字符串指針 0, FirmwareRev, //這里是output串指針,存放從驅動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果輸出緩沖足夠大,設備拷貝串到里面并將拷貝的資結束設置到FirmwareRevSize中。在驅動程序中,代碼看起來如下所示: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 . . . } }
上傳時間: 2013-10-17
上傳用戶:gai928943
單片機原理與應用教程采用教、學、做相結合的模,以理論為基礎、著眼應用,系統詳盡地介紹了單片機應用技術所需的基本知識和技能。全書共分9章,包括MCS-51系列單片機的硬件結構、工作原理、指令系統、接口技術、串行通信、中斷系統、語言程序設計及各功能部件的組成和應用等。通過學習這些內容,可對MCS-51系列單片機有一個總體的概念和認識,并在掌握基本硬件的基礎上用軟件實現其功能。 第1章 MCS-51單片機系統結構1.1 單片機概述1.2 MCS-51單片機結構簡介1.3 并行I/O接口1.4 單片機的復位電路與時鐘電路1.5 單片機的工作方式1.6 構建MCS-51型單片機的最小系統本章小結習題第2章 MCS-51指令系統與程序設計2.1 概述2.2 尋址方式2.3 指令系統2.4 匯編程序設計本章小結 習題第3章 單片機的定時與中斷系統3.1 定時器/計數器3.2 中斷系統3.3 單片機中斷與定時器/計數器的應用訓練本章小結習題第4章 串行通信技術4.1 串行通信概念4.2 MCS-51串行通信接口4.3 串行口的擴展應用4.4 串行通信的應用本章小結習題第5章 單片機的系統擴展技術5.1 程序存儲器的擴展5.2 數據存儲器的擴展5.3 TTL芯片擴展I/O并行接口的應用訓練5.4 Intel系列可編程序接口芯片5.5 8155/8156可編程I/O接口應用訓練5.6 8253/8254可編程定時器/計數器的應用訓練……第6章 單片機接口實用技術及應用第7章 單片機開發系統第8章 單片機應和系統的設計方法第9章 單片機高級語言C51的應用
上傳時間: 2013-10-28
上傳用戶:tzrdcaabb
隨著單片機開發技術的不斷發展,目前已有越來越多的人從普遍使用匯編語言到逐漸使用高級語言開發,其中主要是以C語言為主,市場上幾種常見的單片機均有其C語言開發環境。這里以最為流行的80C51單片機為例來學習單片機的C語言編程技術。大家都有C語言基礎,但是編單片機程序,大家還得找專門的書來學習一下。這里我們只介紹Keil這種工具軟件的用法。學習一種編程語言,最重要的是建立一個練習環境,邊學邊練才能學好。Keil軟件是目最流行開發80C51系列單片機的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(µVision)將這些部份組合在一起。下面我以一個實驗舉一個例子,一步一步學習Keil軟件的使用。 首先我們看硬件原理圖: 很明顯,要點亮使發光二極管,必須使單片機的I/O口P1.0輸出低電平。于是我們的任務就是編程序使P1.0輸出地電平。1. 使用Keil前必須先安裝。安裝過程簡單,這里不在敘述。2. 安裝好了Keil軟件以后,我們打開它。打開以后界面如下:
上傳時間: 2013-11-07
上傳用戶:wtrl
微機接口技術試題:《微機接口技術》模擬試題 一、 選擇題:(每空1分,共20分)1. CPU與外設之間交換數據常采用 、 、 和 四種方式,PC機鍵盤接口采用 傳送方式。 ⒉ 當進行DMA方式下的寫操作時,數據是從 傳送到 __中。 ⒊ PC總線、ISA總線和EISA總線的地址線分別為: 、 和 根。 ⒋ 8254定時/計數器內部有 個端口、共有 種工作方式。 ⒌8255的A1和A0引腳分別連接在地址總線的A1和A0,當命令端口的口地址為317H時,則A口、B口、C口的口地址分別為 、 、 。 ⒍ PC微機中最大的中斷號是 、最小的中斷號是 。 ⒎PC微機中鍵盤是從8255的 口得到按鍵數據。 ⒏ 串行通信中傳輸線上即傳輸_________,又傳輸_________。 二、選擇題:(每題2分,共10分)⒈ 設串行異步通信每幀數據格式有8個數據位、無校驗、一個停止位,若波特率為9600B/S,該方式每秒最多能傳送( )個字符。 ① 1200 ② 150 ③ 960 ④ 120 2.輸出指令在I/O接口總線上產生正確的命令順序是( )。① 先發地址碼,再發讀命令,最后讀數據。② 先發讀命令、再發地址碼,最后讀數據。③ 先送地址碼,再送數據,最后發寫命令。④ 先送地址碼,再發寫命令、最后送數據。3 使用8254設計定時器,當輸入頻率為1MHZ并輸出頻率為100HZ時,該定時器的計數初值為( )。 ① 100 ② 1000 ③ 10000 ④ 其它 4 在PC機中5號中斷,它的中斷向地址是( )。 ① 0000H:0005H ② 0000H:0010H ③ 0000H:0014H ④ 0000H:0020H 5. 四片8259級聯時可提供的中斷請求總數為( )。 ① 29個 ② 30個 ③ 31個 ④ 32個 6. 下述總線中,組內都是外設串行總線為( )組。① RS-485、IDE、ISA。② RS-485、IEEE1394、USB。③ RS-485、PCI、IEEE1394。④ USB、SCSI、RS-232。 7. DMA在( )接管總線的控制權。① 申請階段 ② 響應階段 ③ 數據傳送階段 ④ 結束階段 8. 中斷服務程序入口地址是( )。 ① 中斷向量表的指針 ② 中斷向量 ③ 中斷向量表 ④ 中斷號
上傳時間: 2013-11-16
上傳用戶:xiaoxiang
1 MCS-51單片機系統擴展的基本概念2 程序存儲器擴展技術3 數據存儲器擴展4 輸入/輸出口擴展技術MCS-51單片機系統擴展的基本概念1.1 MCS-51單片機最小應用系統1.2 MCS-51單片機的外部擴展性能MCS-51單片機最小應用系統1.8051/8751最小應用系統(如圖1所示)。由于集成度的限制,這種最小應用系統只能用作一些小型的控制單元。其應用特點是:(1)全部I/O口線均可供用戶使用。(2)內部存儲器容量有限(只有4KB地址空間)。(3)應用系統開發具有特殊性。2.8031最小應用系統8031是片內無程序存儲器的單片機芯片,因此,其最小應用系統應在片外擴展EPROM。圖2為用8031外接程序存儲器構成的最小系統。
上傳時間: 2014-04-03
上傳用戶:MATAIYES
單片機基礎知識單片機的外部結構:1、 DIP40雙列直插;2、 P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)3、 電源VCC(PIN40)和地線GND(PIN20);4、 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)5、 內置振蕩電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6、 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機內部I/O部件:(所為學習單片機,實際上就是編程控制以下I/O部件,完成指定任務)1、 四個8位通用I/O端口,對應引腳P0、P1、P2和P3;2、 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一個串行通信接口;(SCON,SBUF)4、 一個中斷控制器;(IE,IP)針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有端口的定義。教科書的160頁給出了針對MCS51系列單片機的C語言擴展變量類型。 C語言編程基礎:1、 十六進制表示字節0x5a:二進制為01011010B;0x6E為01101110。2、 如果將一個16位二進數賦給一個8位的字節變量,則自動截斷為低8位,而丟掉高8位。3、 ++var表示對變量var先增一;var—表示對變量后減一。4、 x |= 0x0f;表示為 x = x | 0x0f;5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變量TMOD的低四位賦值0x5,而不改變TMOD的高四位。6、 While( 1 ); 表示無限執行該語句,即死循環。語句后的分號表示空循環體,也就是{;}第一章 單片機最小應用系統:單片機最小系統的硬件原理接線圖:1、 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2、 接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF3、 接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理4、 接配置:EA(PIN31)。說明原因。第二章 基本I/O口的應用第三章 顯示驅動第七章 串行接口應用
標簽: 單片機
上傳時間: 2013-10-30
上傳用戶:athjac
單片機最小系統電路
上傳時間: 2013-11-08
上傳用戶:zhf01y
單片機應用技術選編(3) 目錄 第一章 單片機的綜合應用技術1.1 8098單片機存儲器的擴展技術1.2 87C196KC單片機的DMA功能1.3 MCS?96系列單片機高精度接口設計1.4 利用PC機的8096軟件開發系統1.5 EPROM模擬器及其應用1.6 MCS?51智能反匯編軟件的設計與實現1.7 MCS?51系列軟件設計與調試中一個值得注意的問題1.8 PL/M語言在微機開發系統中的應用特性1.9 MCS?51單片機開發系統中的斷點產生1.10 C語言實型數與單片機浮點數之間數據格式的轉換1.11 微機控制系統初始化問題探討1.12 MCS?51中斷系統中的復位問題1.13 工業控制軟件的編程原則與編程技巧1.14 CMOS微處理器的功耗特性及其功耗控制原理和應用1.15 基于PLL技術的A/D、D/A轉換器的設計1.16 智能儀器監控程序的模塊化設計1.17 用軟件邏輯開關實現單片機的地址重疊使用1.18 8259A可編程中斷控制器與8031單片機接口電路及編程1.19 NSC810及其在各種微處理機中的應用1.20 MC146818在使用中的幾個問題1.21 交流伺服系統中采用8155兼作雙口信箱存儲器的雙微機結構1.22 實用漢字庫芯片的制作 第二章 新一代存儲器及邏輯器件2.1 新一代非易失性記憶元件--閃爍存儲器2.2 Flash存儲器及應用2.3 隨機靜態存儲器HM628128及應用2.4 非揮發性隨機存儲器NOVRAM2.5 ASIC的設計方法和設計工具2.6 GAL器件的編程方法及其應用2.7 第三代可編程邏輯器件--高密EPLD輯器件EPLDFPGA設計轉換 第三章 數據采集、前向通道與測量技術 3.1 溫度傳感器通道接口技術 3.2 LM135系列精密溫度傳感器的原理和應用 3.3 儀表放大器AD626的應用 3.4 5G7650使用中應注意的問題 3.5 用集成運算放大器構成電荷放大器組件 3.6 普通光電耦合器的線性應用 3.7 高線性光耦合型隔離放大器的研制 3.8 一種隔離型16位單片機高精度模擬量接口3.9 單片16位A/D轉換器AD7701及其與8031單片機的串行接口3.10 雙積分型A/D轉換器與MCS?51系列單片機接口的新方法3.11 8031單片機與AD574A/D轉換器的最簡接口3.12 8098單片機A/D轉換接口及其程序設計3.13 提高A/D轉換器分辨率的實用方案3.14 用CD4051提高8098單片機內10位A/D轉換器分辨率的方法3.15 單片機實現16位高速積分式A/D轉換器3.16 434位A/D轉換器MAX133(134)的原理及應用3.17 AD574A應用中應注意的問題 3.18 CC14433使用中應注意的問題 3.19 高精度寬范圍數據采集系統的溫度補償途徑 3.20 縮短ICL7135A/D采樣程序時間的一種方法 3.21 用單片機實現的數字式自動增益控制 3.22 自動量程轉換電路 3.23 雙積分型A/D的自動量程切換電路 3.24 常用雙積分型A/D轉換器自換程功能的擴展3.25 具有自動量程轉換功能的單片機A/D接口3.26 混合型數據采集器SDM857的功能與應用3.27 高速數據采集系統的傳輸接口3.28 SJ2000方向鑒別位移脈寬頻率檢測多用途專用集成電路3.29 多路高速高精度F/D專用集成電路3.30 數控帶通濾波器的實現及其典型應用 第四章 控制系統與后向通道接口技術4.1 模糊邏輯與模糊控制4.2 自動控制技術的新發展--模糊控制技術4.3 模糊控制表的確定原則4.4 變結構模糊控制系統的實驗研究4.5 新型集成模糊數據相關器NLX1124.6 功率固態繼電器的應用4.7 雙向功率MOS固態繼電器4.8 SSR小型固態繼電器與PSSR功率參數固態繼電器4.9 JGD型多功能固態繼電器的原理和應用4.10 光電耦合器在晶閘管觸發電路中的應用4.11 一種廉價的12位D/A轉換器AD667及接口4.12 利用單片機構成高精度PWM式12位D/A4.13 三相高頻PWM模塊SLE45204.14 專用集成電路TCA785及其應用4.15 單片溫度控制器LM3911的應用4.16 工業測控系統軟件設計的若干問題研究 第五章 人機對話通道接口技術5.1 廉價實用的8×8鍵盤5.2 單片機遙控鍵盤接口5.3 對8279鍵盤顯示接口的改進5.4 用單片機8031的七根I/O線實現對鍵盤與顯示器的控制5.5 通用8位LED數碼管驅動電路ICM7218B5.6 利用條圖顯示驅動器LM3914組成100段LED顯示器的方法5.7 液晶顯示器的多極驅動方式5.8 點陣式液晶顯示屏的構造與應用5.9 點陣式液晶顯示器圖形程序設計5.10 DMF5001N點陣式液晶顯示器和8098單片機的接口技術5.11 8098單片機與液晶顯示控制器HD61830接口5.12 利用PL/M語言對點陣式液晶顯示器進行漢字程序設計5.13 語音合成器TMS 5220的開發與應用5.14 制作T6668語音系統的一些技術問題5.15 單片機、單板機在屏顯系統中的應用 第六章 多機通訊網絡與遙控技術6.1 用雙UART構成的可尋址遙測點裝置--兼談如何組成系統6.2 IBM?PC微機與8098單片機的多機通訊6.3 80C196單片機與IBM?PC機的串行通訊6.4 IBM?PC與MCS?51多機通訊的研究6.5 半雙工方式傳送的單片機多機通信接口電路及軟件設計6.6 單片機與IBM/PC機通訊的新型接口及編程6.7 用光耦實現一點對多點的總線式通訊電路6.8 用EPROM作為通訊變換器實現多機通訊6.9 ICL232單電源雙RS?232發送/接收器及其應用6.10 DTMF信號發送/接收電路芯片MT8880及應用6.11 通用紅外線遙控系統6.12 8031單片機在遙控解碼方面的應用 第七章 電源、電壓變換及電源監視7.1 用于微機控制系統的高可靠性供電方法7.2 80C31單片機防掉電和抗干擾電源的設計7.3 可編程基準電壓源7.4 電源電壓監視器件M81953B7.5 檢出電壓可任意設定的電源電壓監測器7.6 低壓降(LDO?Low Drop?Out)穩壓器7.7 LM317三端可調穩壓器應用二例7.8 三端集成穩壓器的擴流應用 第八章 可靠性與抗干擾技術8.1 數字電路的可靠性設計實踐與體會8.2 單片機容錯系統的設計與實現8.3 微機測控系統的接地、屏蔽和電源供給8.4 ATE的抗干擾及接地技術8.5 微處理器監控電路MAX690A/MAX692A8.6 電測儀表電路的實用抗干擾技術8.7 工業鍍鋅電阻爐溫度控制機的抗干擾措施8.8 一種簡單的抗干擾控制算法 ? 第九章 綜合應用實例9.1 蔬菜灌溉相關參數的自動檢測9.2 MH?214溶解氧測定儀9.3 COP840C單片機在液晶線控空調電腦控制器中的應用9.4 單片機在電飯煲中的應用9.5 用PIC單片機制作電扇自然風發生器 第十章 文章摘要 一、 單片機的綜合應用技術1.1 摩托羅拉8位單片機的應用和開發1.2 NS公司的COP800系列8位單片機1.3 M68HC11與MCS?51單片機功能比較1.4 8098單片機8M存儲空間的擴展技術1.5 80C196KC單片機的外部設備事件服務器1.6 一種多進程實時控制系統的軟件設計1.7 開發單片機的結構化高級語言PL/M?961.8 應用軟件開發中的菜單接口技術1.9 單片機用戶系統EPROM中用戶程序的剖析方法1.10 BJS?98硬件、軟件典型實驗1.11 FORTH語言系統的開發應用1.12 在Transputer系統上用并行C語言編程的特點1.13 一種軟件擴展8031內部計數器簡易方法1.14 MCS 51系列單片機功能測試方法研究1.15 用CD 4520B設計對稱輸出分頻器的方法1.16 多路模擬開關CC 4051功能擴展方法1.17 條形碼技術及其應用系統的設計與實現? 二、 新一代存儲器及邏輯器件2.1 一種多功能存儲器M6M 72561J2.2 串行E2PROM及其在智能儀器中的應用2.3 新型高性能的AT24C系列串行E2PROM2.4 2K~512K EPROM編程卡2.5 電子盤的設計與實現2.6 NS GAL器件的封裝標簽、類型代碼和編程結構間的關系 三、數據采集、前向通道與測量技術3.1 儀器用精密運放CA3193的應用3.2 集成電壓?電流轉換器XTR100的應用3.3 瞬時浮點放大器及應用3.4 隔離放大器289J及其應用3.5 ICS?300系列新型加速度傳感器3.6 一種實用的壓力傳感器接口電路3.7 霍爾傳感器的應用3.8 一種對多個傳感器進行調理的方法3.9 兩線制壓力變送器3.10 小信號雙線變送器XTR101的使用3.11 兩線長距離頻率傳輸壓力變送器的設計3.12 測溫元件AD590及其應用3.13 熱敏電阻應用動態3.14 一種組合式A/D、D/A轉換器的設計3.15 一種復合式A/D轉換器3.16 TLC549串行輸出ADC及其應用3.17 提高A/D轉換精度的方法--雙通道A/D轉換3.18 模數轉換器ICL7135的0~3.9999V顯示3.19 微型光耦合器3.20 一種高精度的分壓器電路3.21 利用單片機軟件作熱電偶非線性補償3.22 三線制RTD測量電路及應用中要注意的問題3.23 微伏信號高精度檢測中極易被忽略的問題3.24 寬范圍等分辨率精密測量法3.25 傳感器在線校準系統3.26 一種高精度的熱敏電阻測溫電路3.27 超聲波專用集成電路LM1812的原理與應用3.28 旋轉變壓器數字化檢測及其在8098單片機控制伺服系統中的應用3.29 單片集成兩端式感溫電流源AD590在溫度測控系統中的應用?3.30 數字示波器和單片機構成的自動測試系統3.31 霍爾效應式功率測量研究 四、 控制系統與后向通道接口技術4.1 模糊邏輯與模糊控制(實用模糊控制講座之一)4.2 紅綠燈模糊控制器(實用模糊控制講座之二)4.3 國外模糊技術新產品4.4 交流串級調速雙環模糊PI單片機控制系統4.5 時序控制專用集成電路LT156及其應用4.6 電池充電控制集成電路4.7 雙向晶閘管4.8 雙向可控硅的自觸發電路及其應用4.9 微處理器晶閘管頻率自適應觸發器4.10 F18系列晶閘管模塊介紹4.11 集成電路UAA4002的原理及應用4.12 IGBT及其驅動電路4.13 TWH8751應用集錦4.14 結構可變式計算機工業控制系統設計4.15 單片機控制的音響編輯器 五、 人機對話通道接口技術5.1 5×7點陣LED智能顯示器的應用5.2 基于8031串行口的LED電子廣告牌5.3 點陣液晶顯示控制器與計算機的接口技術5.4 單片機控制可編程液晶顯示系統5.5 大規模語言集成電路應用綜述5.6 最新可編程語言集成電路MSSIO61的應用5.7 用PC打印機接口擴展并行接口 六、 多機系統、網絡與遙控技術6.1 用8098單片機構成的分布式測溫系統6.2 平衡接口EIA?422和EIA485設計指南6.3 I2C BUS及其系統設計6.4 摩托羅拉可尋址異步接受/發送器6.5 用5V供電的RS232C接口芯片6.6 四通道紅外遙控器6.7 TA7333P和TA7657P的功能及應用 七、 電源、電壓變換及電源監視7.1 單片機控制的可控硅三相電源調壓穩壓技術7.2 集成開關電源控制器MC34063的原理及應用7.3 LM299精密基準電壓源7.4 集成過壓保護器的應用7.5 3V供電的革命7.6 HMOS微機的超低電源電壓運行技術 八、 可靠性與抗干擾設計8.1 淺談艦船電磁兼容與可靠性 九、 綜合應用實例9.1 8098單片機交流電氣參數測試系統的設計和應用9.2 主軸回轉誤差補償控制器9.3 FWK?A型大功率發射臺微機控制系統9.4 高性能壓控振蕩型精密波形發生器ICL8038及應用9.5 單片機COP 840C在洗碗機中的應用
上傳時間: 2013-11-10
上傳用戶:lijinchuan
單片機應用技術選編10 目錄 第一章 專題論述1.1 嵌入式系統的技術發展和我們的機遇(2)1.2 一種新的電路設計和實現方法——進化硬件(8)1.3 從8/16位機到32位機的系統設計(13)1.4 混合SoC設計(18)1.5 AT24系列存儲器數據串并轉換接口的IP核設計(23)1.6 低能耗嵌入式系統的設計(28)1.7 嵌入式應用中的零功耗系統設計(31)1.8 數字指紋協議的研究與發展(37)1.9 指紋識別控制系統設計(45)1.10 條形碼的計算機編碼與識別(48)1.11 藍牙技術綜述(54)1.12 藍牙通信過程解析與研究(60)1.13 藍牙模塊基帶電路的接口技術(65)1.14 藍牙HCI層數據通信的實現(72)1.15 藍牙技術硬件實現模式分析(77)1.16 Bluetooth技術與相關器件(83)1.17 基于藍牙技術的無線收發芯片nRF401(88)1.18 藍牙收發芯片RF2968的原理及應用(93)1.19 nRFTM系列單片機無線收發器的應用設計(99)1.20 基于藍牙技術的家庭網絡(106) 第二章 綜合應用2.1 嵌入式系統的超時控制及其應用(114)2.2 多路讀寫的SDRAM接口設計(118)2.3 SDRAM視頻存儲控制器的設計與實現(123)2.4 集成多路模擬開關的應用技巧(129)2.5 合理選擇DCDC轉換器(133)2.6 單片機定時器中斷時間誤差的分析及補償(137)2.7 單片機無線串行接口電路設計(140)2.8 單片機控制Modem的兩種硬件接口方法(143)2.9 使用PWM得到精密的輸出電壓(147)2.10 測控系統前向通道的誤差分析及標定(150)2.11 如何認識和提高ADC的精度(155)2.12 提高ADC分辨率的硬件和軟件措施(160)2.13 智能溫度傳感器的發展趨勢(165)2.14 溫度傳感器的選擇策略(169)2.15 單線數字溫度傳感器DS18B20數據校驗與糾錯(174)2.16 TMP03/04型數字溫度傳感器的工作原理(180)2.17 TMP03/04型數字溫度傳感器的應用(184)2.18 諧振式水晶溫度傳感器的現狀和發展預測(189)2.19 石英晶體溫度傳感器的應用(194)2.20 無線數字溫度傳感器的設計(199)2.21 液晶屏溫度響應特性及其溫度控制(203)2.22 CPU卡的接口特性、傳輸協議與讀寫程序設計(209)2.23 一種基于鐵電存儲器的雙機串行通信技術(215) 第三章 軟件技術3.1 面向應用的嵌入式操作系統(222)3.2 嵌入式實時操作系統及其應用(228)3.3 Windows CE在嵌入式工業控制系統中的應用思考(234)3.4 簡易非搶先式實時多任務操作系統的設計與應用(239)3.5 單片機程序設計中運用事件驅動機制(248)3.6 實時操作系統RTLINUX的原理及應用(253)3.7 RTLinux的實時機制分析(256)3.8 基于RTLinux系統的設備驅動程序開發與應用(261)3.9 嵌入式實時操作系統μC/OSⅡ及其應用(265)3.10 在MOTOROLA 568XX系列DSP上運行μC/OSⅡ(267)3.11 Franklin C51浮點數與A51浮點數的相互轉換、傳遞及其在混合編程中的應用(272) 第四章 網絡、通信與數據傳輸4.1 嵌入式系統以太網接口的設計(280)4.2 以太網在網絡控制系統中的應用與發展趨勢(285)4.3 IPv4向IPv6的過渡(291)4.4 在嵌入式網絡應用中實現TCP/IP協議(295)4.5 一種以太網與8位單片機的連接方法(300)4.6 RS485總線通信避障及其多主發送的研究(305)4.7 RS422/RS485網絡的無極性接線設計(310)4.8 RS485與USB接口轉換卡的設計與實現(315)4.9 低壓電力線載波數據通信及其應用前景(320)4.10 基于LM1893的電力線載波通信系統設計(327)4.11 家庭無線信息網絡解決方案(331)4.12 基于GSM短消息接口的MC3一體化遙測系統(334)4.13 基于短消息的自動抄表系統(337) 第五章 新器件與新技術5.1 ARM核嵌入式系統的開發平臺ADS(344)5.2 大容量Flash型AT91系列ARM核微控制器(350)5.3 內嵌UHF ASK/FSK發射器的8位微控制器(357)5.4 專用單片機C5042E在SPWM技術中的編程技巧(361)5.5 新型高精度時鐘芯片RTC4553(367)5.6 A/D芯片TLC2543與Neuron芯片的接口應用(372)5.7 一種新型傳感器接口IC(376)5.8 新型CMOS圖像傳感器及其應用(380)5.9 GMS97C2051與ISD2560組成的小型語音系統(385)5.10 73M2901芯片在嵌入式Modem中的應用(389)5.11 電能計量芯片組AT73C500和AT73C501及其應用(395) 第六章 總線技術6.1 PCI總線及其接口芯片的應用(406)6.2 實現RS485/RS422和CAN轉換——總線網橋的構建(409)6.3 工控系統應用CAN總線的幾種改進方法(413)6.4 快速和高可靠性的CAN網絡模塊ADAM?500/CAN(418)6.5 SJA1000在CAN總線系統節點的應用(422)6.6 用C167CR實現CAN總線通信(430)6.7 1?WIRE網絡的特性與應用(436)6.8 基于TINI的一線制網絡互連技術(441)6.9 單總線數字溫度傳感器的自動識別技術(445)6.10 TM卡信息紐扣在預付費水表中的應用(450)6.11 USB 2.0性能特點及其應用(455)6.12 USB總線協議信息包分析(459)6.13 USB設備的開發(463)6.14 嵌入式系統中USB總線驅動的開發及應用(467)6.15 USB接口單片機SL11R的特點及應用(475)6.16 USB接口器件PDIUSBD12的接口應用設計(479)6.17 USB 2.0控制器CY7C68013特點與應用(486)6.18 基于EZ?USB的數據采集與控制(491)6.19 基于USB接口的IC卡讀寫器的設計(498)6.20 IEEE 1394總線技術與應用(501) 第七章 可靠性及安全性技術7.1 單片機復位電路的可靠性分析(508)7.2 提高移位寄存器接口電路可靠性的措施(515)7.3 單片機嵌入式系統軟件容錯設計(518)7.4 鍵盤信息泄漏與防泄漏鍵盤設計(526)7.5 USB安全鑰功能擴展與優化設計(532)7.6 單片機多機冗余設計及控制模塊的VHDL語言描述(540)7.7 一種快速可靠的串行flash容錯系統的設計與實現(545)7.8 射頻電路印刷電路板的電磁兼容性設計(550)7.9 去耦電容在PCB板設計中的應用(553)7.10 密碼訪問器件X76F100在單片機系統中的應用(560)7.11 計算機的電磁干擾研究(566)7.12 EMI和屏蔽(一)(573)7.13 EMI和屏蔽(二)(579)7.14 微機接口設計中的靜電沖擊(ESD)防護措施(585)7.15 單片機應用系統中去除工頻干擾的快速實現(589)7.16 傳輸線路引起的數字信號畸變與抑制(593) 第八章 DSP及其應用技術8.1 TMS320VC5402電路設計中應注意的幾個問題(600)8.2 DSP系統中的外部存儲器設計(604)8.3 TMS320C24x的C語言與匯編語言的接口技術(610)8.4 DSP環境下C語言編程的優化實現(615)8.5 基于TMS320C6000高速算法的實現(619)8.6 TMS320F240串行外設接口及其應用(624)8.7 基于DSP的Modem及其驅動程序的設計與實現(631)8.8 W3100在DSP系統以太網接口中的應用(637)8.9 CAN總線控制器與DSP的接口(643)8.10 基于DSP的USB傳輸系統的實現(648) 第九章 HDL與可編程器件技術9.1 談談EDA的硬件描述語言(654)9.2 基于VHDL語言的FPGA設計(657)9.3 VHDL的設計特點與應用研究(662)9.4 單片機應用系統的CPLD應用設計(668)9.5 用CPLD實現單片機與ISA總線接口的并行通信(674)9.6 FPGA實現PCI總線接口技術(679)9.7 用FPGS實現DES算法的密鑰簡化算法(685)9.8 可編程模擬器件原理與開發(690)9.9 數字/模擬ISP技術及其EDA工具(695)9.10 可編程模擬器件ispPAC20在電路設計中的應用(698)9.11 基于FPGA的I2C總線接口實現方法(701)9.12 基于CPLD的串并轉換和高速USB通信設計(705)9.13 用HDL語言實現循環冗余校驗(712)9.14 利用單片機和CPLD實現直接數字頻率合成(DDS)(717)9.15 基于Verilog?HDL的軸承振動噪聲電壓峰值檢測(722) 第十章 綜合應用10.1 AVR高速單片機LED顯示系統(728)10.2 基于ADμC812與SJA1000數據采集系統的設計(732)10.3 用AT89C2051設計的PC/AT鍵盤(736)10.4 利用89C2051實現POCSAG編碼的方法(739)10.5 加載感應DAC的應用(741)10.6 利用MAX7219設計LED大屏幕基本顯示模塊(745)10.7 單片機用作通用紅外遙控接收器的設計(751)10.8 紅外遙控器軟件解碼及其應用(754) 第十一章 文章摘要 一、專題論述(758)1.1 與8051兼容的單片機的新發展(758)1.2 正在崛起的低功耗微處理器技術(758)1.3 低功耗電子系統設計的綜合考慮(758)1.4 數字電路設計方案的比較與選擇(758)1.5 單片機應用系統中數學協處理器的開發(758)1.6 實現基于IP核技術的SoC設計(758)1.7 基于知識產權的SoC關鍵技術與設計(759)1.8 基于IP核復用技術的SoC設計(759)1.9 將IP集成進SoC(759)1.10 模擬/混合電路SoC的設計難題(759)1.11 系統級可編程芯片(SOPC)設計思想與開發策略(759)1.12 基于SoC的PAGER控制芯片設計(759)1.13 一種高性能CMOS帶隙電路的設計(759)1.14 基于結構的指紋分類技術(760)1.15 指紋識別的預處理組合算法(760)1.16 一種指紋識別的細節特征匹配的方法(760)1.17 指紋IC卡及其應用(760)1.18 人臉照片的特征提取與查詢(760)1.19 一種快速、魯棒的人臉檢測方法(760)1.20 128條碼的編碼分析和識別算法(761)1.21 身份證號碼快速識別系統(761)1.22 漢字識別技術的新方法及發展趨勢(761)1.23 藍牙技術及其應用展望(761)1.24 藍牙技術淺析(761)1.25 藍牙HCI USB傳輸層規范(761)1.26 藍牙服務發現協議(SDP)的實現(761)1.27 藍牙技術安全性解析(762)1.28 藍牙技術及其應用(762)1.29 BluetoothASIC接口技術(762)1.30 RF CMOS藍牙收發器的設計(一)(762)1.31 RF CMOS藍牙收發器的設計(二)(762)1.32 單片藍牙控制器AT76C551(762)1.33 設計RF CMOS藍牙收發器(762)1.34 ROK 101 007/1藍牙模塊的特性與應用(763)1.35基于nRF401的PC機無線收發模塊的設計(763)1.36 無線收發芯片nRF401在監測系統中的應用(763)1.37 基于射頻收發芯片nRF401的計算機接口電路設計(763)1.38 采用nRF401實現單片機與PC機無線數據通信(763)1.39 基于射頻收發芯片nRF403的無線接口電路設計(763)1.40 藍牙局域網無線接入網關的研制(763)1.41 基于藍牙的無線數據采集系統(764)1.42 安立藍牙無線測試解決方案(764)1.43 嵌入式系統中的藍牙電話應用規范的實現(764)1.44 藍牙“三合一電話”的解決方案(764)1.45 用Bluetooth技術構建分布式污水處理控制系統(764)1.46 MPEG的發展動態及其未來預測(764)1.47 軟件無線電的關鍵技術與未來展望(764)1.48 軟件無線電與虛擬無線電(765)1.49 射頻無線測控系統及其應用(765)1.50 一種新的感知工具——電子標記筆(765)1.51 智能住宅用戶控制器設計(765)1.52 利用GPS對計算機實現精確授時(765)1.53 IP代理遠程測控系統(765)1.54 曼徹斯特碼編碼與解碼硬件實現(765)1.55 便攜式設備中電源軟開關設計的一種方法(766)1.56 便攜式設備的電源方案設計(766)1.57 StrongARM及其嵌入式應用平臺(766)1.58 嵌入式系統在光傳輸設備中的應用(766)1.59 光纖無源器件技術的發展方向(766) 二、 綜合應用(767)2.1 數據存儲技術的應用(767)2.2 SL11R單片機外部存儲器擴展(767)2.3 構成大容量非易失性SRAM方法分析(767)2.4 一種專用高速硬盤存儲設備的設計與實現(767)2.5 基于CDROM的嵌入式系統設計(767)2.6 串行E2PROM的應用設計與編程(767)2.7 利用UART擴展大容量具有SPI接口的快速串行E2PROM的方法(767)2.8 用單片機實現異步串行數據再生(768)2.9 非易失性數字性電位器與單片機的接口設計(768)2.10 數控電位器在頻率可調信號源中的應用(768)2.11 單片機上一種新穎實用的ex函數計算方法(768)2.12 單片機系統設計的誤區與對策(768)2.13 基于SystemC的嵌入式系統軟硬件協同設計(768)2.14 一種基于JTAG TAP的嵌入式調試接口設計(769)2.15 工作頻率可動態調整的單片機系統設計(769)2.16 嵌入式系統高效多串口中斷源的實現(769)2.17 AVR單片機計時器的優化使用(769)2.18 可編程定時/計數器提高輸出頻率準確度方法(769)2.19 用插值調整法設計單片機串行口波特率(769)2.20 “頻率準確度”自動校準(770)2.21 雙時基頻率校準電路(770)2.22 電壓頻率轉換電路的動態特性分析及求解(770)2.23 單片機測控系統的低功耗設計(770)2.24 MCS96/196三字節浮點庫(770)2.25 循環冗余校驗方法研究(770)2.26 32位微處理器下偽SPI技術的研究與實現(770)2.27 智能儀表LED點陣顯示模塊的設計(771)2.28 點陣式圖形VFD與單片機的硬件接口及編程技術(771)2.29 內置漢字字模的EPROM制作技術(771)2.30 利用VC++實現漢字字模的提取與小漢字庫的生成(771)2.31 高分辨率電壓與電流快速數據采集方法(771)2.32 單片機與數字溫度傳感器DS18B20的接口設計(771)2.33 新型溫度傳感器DS18B20高精度測溫的實現(772)2.34 MAX6576/6577集成溫度傳感器(772)2.35 AD22105型低功耗可編程集成溫度控制器(772)2.36 基于IEEE 1451.1的網絡化智能傳感器設計(772)2.37 數字式溫度傳感器與儀表的智能化設計(772)2.38 用單片機軟件實現傳感器溫度誤差補償(772)2.39 Σ?Δ A/D轉換器的原理及分析(772)2.40 一種提高A/D分辨率的信號調理電路設計(773)2.41 高精度數據轉換器接口技術(773)2.42 高精度雙積分A/D轉換器與單片機接口的新方法(773)2.43 一種高速A/D與MCS51單片機的接口方法(773)2.44 基于串行FIFO雙口RAM的高速A/D轉換采集系統的設計(773)2.45 超高速數據采集系統的設計與實現(773)2.46 廉價隔離型高精度D/A轉換器(774)2.47 智能卡及其應用技術研究(774)2.48 Jupiter GPS接收機數據的提取(774)2.49 基于單片機的脈沖頻率的寬范圍高精度測量(774)2.50 電源模塊輸入軟啟動電路的設計(774)2.51 不停車電子收費系統關鍵技術(774)2.52 一種直接采用計算機串行口控制步進電機的新方法(774)2.53 8051系列單片機通用鼠標接口程序設計(775)2.54 可編程ASIC與MCS51單片機接口設計及實現(775) 三、軟件技術(776)3.1 無線信息設備的理想操作系統Symbian OS(776)3.2 TMS320C55x嵌入式實時多任務系統DSP/BIOS II(776)3.3 兩種嵌入式操作系統的比較(776)3.4 用自由軟件開發嵌入式應用(776)3.5 開放源代碼軟件的應用研究(776)3.6 清華嵌入式軟件系統的解決方案(776)3.7 單片機應用程序的高級語言設計(777)3.8 基于RTX51的單片機軟件設計(777)3.9 多網口通信在VXWORKS中的實現(777)3.10 嵌入式實時操作系統中實現MBUF(777)3.11 硬實時操作系統——RTLinux(777)3.12 Linux嵌入式系統的上層應用開發研究(777)3.13 嵌入式Linux內核下串行驅動程序的實現(777)3.14 嵌入式Linux的中斷處理與實時調度的實現機制(778)3.15 基于Linux平臺的應用研究(778)3.16 基于Linux的嵌入式系統開發(778)3.17 基于Linux的嵌入式系統設計與實現(778)3.18 基于RTLinux的實時控制系統(778)3.19 基于RTLinux的實時機器人控制器研究(778)3.20 嵌入式Linux系統在溫室計算機控制中的應用(778)3.21 基于Linux的USB驅動程序實現(779)3.22 Linux環境下實現串口通信(779)3.23 Linux系統下RS485串行通信程序設計(779)3.24 Linux系統下藍牙設備驅動程序研究和實現 (779)3.25 基于μCLinux和GPRS的無線數據通信系統(779)3.26 嵌入式Linux開發平臺的USB主機接口設計(779)3.27 CAN通信卡的Linux設備驅動程序設計實現(779)3.28 μC/OSII實時操作系統內存管理的改進(780)3.29 μC/OSII在總線式數據采集系統中的應用(780)3.30 實時操作系統μC/OSII在MCF5272上的移植(780)3.31 μC/OSII在51XA上的移植應用(780)3.32 實時嵌入式內核在DSP上的移植實現(780)3.33 利用全局及外部變量實現C51無參數化調用A51函數(780)3.34 基于狀態分析的鍵盤管理軟件設計(780)3.35 PS/2接口C語言通信函數庫設計(781)3.36 DS18B20接口的C語言程序設計(781)3.37 基于KeilC51的SLE4428 IC卡驅動程序設計(781)3.38 智能型并口用軟件加密狗的設計(781)3.39 啤酒發酵控制器中的多任務分析與實現(781)3.40 CAN網絡應用軟件的設計與研究(781)3.41 USB軟件系統的開發(782) 四、網絡、通信與數據傳輸(783)4.1 網際協議過渡——從IPv4到IPv6(783)4.2 IPv6簡介(783)4.3 傳輸控制協議(TCP)介紹(783)4.4 TCP/IP協議的ASIC設計與實現(783)4.5 IP電話的TCP/IP協議的實現方法(783)4.6 基于嵌入式TCP/IP協議棧的信息家電連接Internet單芯片解決方案(783)4.7 基于以太網的家庭網絡平臺(784)4.8 單芯片家庭網關平臺CX821xx(784)4.9 用于單片機的以太網網關——網絡通(784)4.10 基于“網絡通”的單片機以太網CAN網關的應用(784)4.11 第三代快速以太網控制器及其應用(784)4.12 工業以太網在控制系統中的應用前景(784)4.13 工業以太網控制模塊的研究與研制(785)4.14 以太網、控制網與設備網的性能比較與分析(785)4.15 嵌入式系統以太網控制器驅動程序的設計與實現(785)4.16 WIN9X下微機與單片機的串行通信(785)4.17 利用VB6.0實現PC機與單片機的串口通信(785)4.18 基于VB6的PC機與多臺單片機通信的應用(785)4.19 用C++Builder6.0實現80C51與PC串行通信(785)4.20 VC++中實現基于多線程的串行通信(786)4.21 RS232串行通信線路的連接方法設計分析(786)4.22 高效率串行通信協議的設計(786)4.23 利用增強并口協議傳輸數據(786)4.24 應用于RS485網絡的多信道串行通信接口的設計(786)4.25 以Visual C++實現PC與89C51之間的串行通信(786)4.26 智能多路RS422串行通信卡的設計(786)4.27 RS232接口轉換為通用串行接口的設計原理(787)4.28 基于智能模塊的RS485通信協議轉換路由器(787)4.29 RS232接口轉USB接口的通信方法(787)4.30 用VB實現PC與PDA的串行通信(787)4.31 利用WindowsAPI實現與GPS的串口通信(787)4.32 VB6.0在無線通信中的應用(787)4.33 用PTR2000實現單片機與PC機之間的無線數據通信(787)4.34 基于光纖RS232/RS485傳輸系統(788)4.35 利用串口實現PC與PDA的同步通信(788)4.36 實現32位單片機MC68332與PC機串行通信的底層程序設計(788)4.37 基于VB的USB設備檢測通信研究(788)4.38 USB設備與PC機之間的通信機制的實現技術研究(788)4.39 利用MODEM實現單片機與PC機遠程通信(788)4.40 談談電力線通信(788)4.41 低壓電力線載波高速數據通信設計(789)4.42 PL2000在低壓電力線載波通信中的應用(789)4.43 一種電力線擴頻載波通信節點的具體實現(789)4.44 一種基于電力線的家庭以太網絡實現方法(789)4.45 基于電力線載波的家庭智能化局域網研究(789)4.46 低壓電力線擴頻家庭自動化系統(789)4.47 智能家庭網絡研究與開發(790)4.48 藍牙在家庭網絡中的實現(790)4.49 參照CEBus標準的家庭網絡系統研究與實現(790)4.50 采用藍牙技術構建智能家庭網絡(790)4.51 家庭網絡中的設備集成研究(790)4.52 一種嵌入式通信協議系統及在智能住宅網絡中的應用(790)4.53 基于手機短消息(SMS)的遠程無線監控系統的研制(791)4.54 基于GSM短信息方式的遠程自來水廠地下水位自動監控系統(791)4.55 TC35及其在短消息自動抄表系統中的應用(791)4.56 計算機不同通信接口下的數據采集技術問題研究(791)4.57 80C152單片機在HDLC通信規程中的應用(791)4.58 內置MODEM通信模塊在遠程監測系統中的應用(791)4.59 用單片機普通I/O口實現多機通信的一種新方法(792)4.60 利用串行通信實現實時狀態監控(792)4.61 基于FIFO芯片的單片機并行通信(792) 五、新器件與新技術(793)5.1 CYGNAL的C8051F02x系列高速SoC單片機(793)5.2 AduC812單片機控制系統的開發(793)5.3 可編程外圍芯片PSD5xx與單片機68CHC11的接口(793)5.4 模糊單片機NLX230及其接口軟硬件設計(793)5.5 低功耗MSP430單片機在3V與5V混合系統中的邏輯接口技術(793)5.6 MSP430F149單片機在便攜式智能儀器中的應用(793)5.7 用MSP430F149單片機實現步進電機通用控制器(793)5.8 PIC和DS18B20溫度傳感器的接口設計(794)5.9 用P87LPC764單片機的I2C總線擴展“米”字形LED顯示器(794)5.10 鐵電存儲器FM24C04原理及應用(794)5.11 CAT24C021在天文望遠鏡控制器中的應用(794)5.12 串行時鐘芯片在智能傳感器中的應用(794)5.13 RTC器件X1228及其在不間斷供電系統中的應用(794)5.14 新型A/D轉換技術——流水線ADC(794)5.15 集成芯片AD558及其應用(795)5.16 14位3MHz單片模數轉換器AD9243的應用(795)5.17 16位模數轉換器MAX195在單片機系統中的應用(795)5.18 24位模/數轉換器CS5532及其應用(795)5.19 ADS7825模數轉換芯片及其在高速數據采集系統中的應用(795)5.20 新型D/A變換器AD9755及其應用(795)5.21 單片機與串口D/A轉換器MAX525的接口設計(795)5.22 幾種PWN控制器(796)5.23 一種新型的可編程的4~20mA二線制變送器XTR108及其應用(796)5.24 可編程溫度監控器ADT14及其應用(796)5.25 一種適用于51系列單片機的R/F轉換電路(796)5.26 通用集成濾波器的特點及應用(796)5.27 串行顯示驅動器PS7219及單片機的SPI接口設計(796)5.28 新型的鍵盤顯示芯片——SK5279A的應用(797)5.29 高效語音壓縮芯片AMBE—2000TM及其在語音壓縮中的應用(797)5.30 適于語音處理的SDA80D51芯片及其數字錄放音系統(797)5.31 基于ISD2560語音芯片的小型實用語音系統(797)5.32 發射信號處理器AD6622在軟件無線電中的應用(797)5.33 基于UM3758108A芯片遠距多路參數監測系統(797)5.34 單片頻率計ICM7216D及應用(797)5.35 X25045芯片在微機測控系統中的應用(798)5.36 MC14562B在多CPU系統串行通信中的應用(798)5.37 高級串行通信控制器SAB82525及其應用(798)5.38 MAX121芯片在高速串行接口電路中的應用(798)5.39 應用DS2480實現RS232與單總線的串行接口(798)5.40 介紹一種真正的單芯片MODEM73M2901C/5V(798)5.41 HART調制解調器SYM20C15應用設計(799)5.42 TM1300同步串行接口與Modem模擬前端之間的通信(799)5.43 TEMIC系列射頻卡及其應用(799)5.44 用Philips PCD600x實現多線電話并機(799)5.45 SDH專用集成電路套片DTT1C08A和DTT1C20A及其應用(799)5.46 GAL16V8用于步進電動機驅動器(799)5.47 UC3717步進電機驅動電路與89C2051單片機的接口技術(799)5.48 TinySwitch單片開關電源的設計方法(800)5.49 基于MAX883的動態供電設計(800)5.50 高壓PWM電源控制器MAX5003及其應用(800)5.51 單片機與大功率負載的開關接口(800)5.52 遲滯開關功率轉換器LM3485在電源系統中的應用(800)5.53 功率邏輯器件在嵌入式系統中的應用(800)5.54 TPS60101用于低功耗系統的電源解決方案(800)5.55 新型電能表芯片AT73C550及其應用(801)5.56 運動控制芯片MCX314及其應用(801) 六、總線技術(802)6.1 PCItoPCI橋及其應用設計(802)6.2 基于PCI總線的數據采集系統(802)6.3 VXI和PXI總線技術的應用及其發展前景(802)6.4 基于PC104總線的嵌入式以太網卡設計(802)6.5 基于RS485總線的傳感器網絡化技術研究(802)6.6 RS232總線轉CAN總線裝置的設計與實現(802)6.7 現場總線技術的發展與工業以太網綜述(803)6.8 廣義現場總線標準與工業以太網(803)6.9 用單片機設計現場總線轉換網橋(803)6.10 基于LonWorks的在系統編程技術(803)6.11 Neuron芯片與MCS51系列單片機串行通信的實現(803)6.12 Neuron芯片多總線I/O對象的應用(803)6.13 CAN總線及其應用技術(804)6.14 CAN總線協議分析(804)6.15 CAN總線智能節點的設計和實現(804)6.16 CAN總線控制器SJA1000的原理及應用(804)6.17 CAN總線與PC機通信卡接口電路設計(804)6.18 CAN總線及其在測控系統中的實現(804)6.19 基于CAN總線的溫度、壓力控制系統(804)6.20 基于CAN總線的新型網絡數控系統(805)6.21 CAN總線在混和動力汽車電機控制系統中的應用(805)6.22 CAN總線技術在石油鉆井監控系統中的應用(805)6.23 一種電動閥的DeviceNet總線接口設計(805)6.24 單總線技術及其應用(805)6.25 美國DALLAS公司單線可編程數字溫度傳感器技術(805)6.26 基于單總線技術的農業溫室控制系統設計(805)6.27 單總線協議轉換器在分布式測控系統中的應用(806)6.28 單總線技術在電子信息識別系統中的應用(806)6.29 信息紐扣及其在安全巡檢管理系統中的應用(806)6.30 SPI串行總線接口及其實現(806)6.31 通用串行總線USB及其產品開發(806)6.32 通用串行總線(USB)數據傳輸模型(806)6.33 基于USB總線的測試系統開發(806)6.34 一種USB外設的實現方法(807)6.35 基于USB接口的PTP協議在Win32上編程實現(807)6.36 USB在便攜式外設間的應用及其協議(807)6.37 多USB接口的局域網接入技術的實現(807)6.38 USB接口設計及其在工業控制中的應用(807)6.39 USB技術在第四代數控測井系統中應用(807)6.40 用AN2131Q開發USB接口設備(807)6.41 USB/IrDA橋控制芯片STIr4200S(808)6.42 一種基于USB接口的家庭網絡適配器的設計(808)6.43 基于USB總線的實時數據采集系統設計(808)6.44 基于SL11R的USB接口數據采集系統(808)6.45 基于USB的數據采集系統設計與實現(808)6.46 USB2.0在高速數采系統中應用(808)6.47 基于USB的航空檢測數據采集系統的設計(808)6.48 基于USB總線的小型圖像采集系統的設計(809)6.49 USB技術及其在圖像數據傳輸中的應用(809)6.50 USB2.0在遙感圖像采集中的應用(809)6.51 CCD攝像機的USB接口設計(809)6.52 帶USB接口的發動機點火波形測量系統(809)6.53 USB接口智能傳感器標定數據采集系統的設計(809)6.54 USB接口在糧倉自動測溫系統中的應用(810)6.55 基于GPIF的USBATA解決方案(810)6.56 基于USB總線新型視頻監視和會議系統(810)6.57 基于USB接口的高性能虛擬示波器(810)6.58 IEEE 1394與現場總線(810)6.59 IEEE 1394高速串行總線及其應用(810)6.60 EF4442及其應用(811) 七、可靠性及安全性技術(812)7.1 單片機系統可靠掉電保護的實現(812)7.2 提高單片機應用系統可靠性的軟件技術(812)7.3 單片機應用系統中元器件的可靠性設計(812)7.4 DSP復位問題研究(812)7.5 計算機RAM檢錯糾錯電路的設計與實現(812)7.6 利用USB接口進行軟件加密的設計思想和實現方法(812)7.7 計算機電磁信息泄露與防護研究(813)7.8 USB軟件狗的設計及反破解技術(813)7.9 全隔離微機與單片機的RS485通信技術(813)7.10 印制板的可靠性設計(813)7.11 多層布線的發展及其在電源電路電磁兼容設計中的應用(813)7.12 印制電路板的電磁兼容性預測(813)7.13 PCB的熱設計(813)7.14 密碼術研究綜述(814)7.15 利用匯編語言實現DES加密算法(814)7.16 USB保護電路的選擇(814)7.17 基于CAN總線的多機冗余系統的設計(814)7.18 藍牙鏈路層安全性(814)7.19 開關電源諧波含量測試分析及抑制(814)7.20 系統可靠性冗余的優化研究(814)7.21 電子工程系統中電磁干擾的診斷和控制方法初探(815)7.22 微機化儀器電磁兼容性設計(815)7.23 電磁兼容設計中的屏蔽技術(815)7.24 幾種電磁干擾的分析與解決(815)7.25 計算機的電磁干擾研究(815)7.26 電子電路中抗EMI設計(815)7.27 測試系統中干擾及其形成機理(816)7.28 一種基于ST62單片機的強抗干擾控制器的設計(816)7.29 微控制器硬件抗干擾技術(816)7.30 一種具有高抗干擾能力單片機通信電路的設計(816)7.31 測控系統抗干擾設計(816)7.32 單片機應用系統的抗干擾軟件設計(816)7.33 變頻系統測控軟件抗干擾研究(816)7.34 快速瞬變脈沖群干擾的原理及硬件防護(817)7.35 巧用單片機軟件抗系統瞬時干擾(817)7.36 微機式保護裝置中浪涌干擾的硬件防護(817)7.37 具有抗干擾性能的單片機智能儀表的設計(817)7.38 RS232串行通信消除干擾噪聲的設計方法分析(817)7.39 熱插拔冗余電源的設計(817)7.40 IC卡讀寫器的密碼識別(817)7.41 16位高抗干擾D/A轉換(818) 八、DSP及其應用技術(819)8.1 TMS320F206定點DSP芯片開發實踐(819)8.2 ADSP2181精簡開發板的研制(819)8.3 DSP系統中的外部存儲器設計(819)8.4 Flash存儲器在DSP系統中的應用(819)8.5 DSP系統的硬盤接口研究(819)8.6 TMS320C6201與FlashRAM的接口設計與編程技術(819)8.7 基于DSP的實時MPEG4編碼的軟件優化設計(819)8.8 TMS320C62X DSP的軟件開發與優化編程(820)8.9 IP安全內核及其DSP實現的研究(820)8.10 基于TMS320C54X DSK平臺的Zoom?FFT的快速實現(820)8.11 高速DSP與串行A/D轉換器TLC2558接口的設計(820)8.12 TMS320C2X DSP的一種實用人機接口的設計與實現(820)8.13 DSP系統中常用串口通信的設計(820)8.14 DSP與單片機之間串行通信的實現(821)8.15 基于DMA方式的8位單片機與16位DSP雙機通信接口(821)8.16 DSP與PC機間的DMA通信接口設計(821)8.17 TMS320VC5402與I2C總線接口的實現(821)8.18 ZLG7289A與DSPSPI的接口技術(821)8.19 DSP與PCI總線接口設計及實現(821)8.20 TMS320C6X與PC高速通信的實現(822)8.21 DSP與PC之間的以太通信 (822)8.22 TM1300 DSP系統以太網接口的設計(822)8.23 基于DSP的CAN總線通信系統(822)8.24 TMS320VC5410 DSP中USB客戶驅動程序開發與實現(822)8.25 基于TMS320C55x DSP的USB通信研究與固體設計(822)8.26 基于DSP的USB口數據采集分析系統(823)8.27 DSP數字信號處理器的浮點數正弦的實現(823)8.28 應用TMS320F240芯片設計高精度可控信號發生器(823)8.29 基于MSP430C325單片機的便攜式體溫計的設計(823)8.30 基于TMS320VC5409的語音識別模塊(823)8.31 基于DSP的ADμC812應用系統設計(823) 九、HDL與可編程器件技術(824)9.1 一種基于CPLD器件的現代數字系統設計方法(824)9.2 基于可編程邏輯器件CPLD及硬件描述語言VHDL的EDA方法(824)9.3 利用硬件描述語言Verilog HDL實現對數字電路的設計和仿真(824)9.4 硬件描述語言VHDL指稱語義的研究(824)9.5 VHDL語言邏輯綜合的研究(824)9.6 CPLD/FPGA的優化設計(824)9.7 用單片機實現可編程邏輯器件的配置(825)9.8 UART的Verilog HDL實現及計算機輔助調試(825)9.9 基于CPLD的UART設計(825)9.10 用在系統可編程邏輯器件開發并行接口控制器(825)9.11 用CPLD設計EPP數據采集控制器(825)9.12 帶FPGA的PCI接口應用(825)9.13 基于CPLD的PCI總線存儲卡的設計(826)9.14 基于CPLD的中斷控制器IP設計(826)9.15 基于FPGA設計的精度管理策略(826)9.16 VHDL語言在描述DES加密機中的應用(826)9.17 基于P89C51RD2 IAP功能的數據存取與軟件升級(826)9.18 在系統可編程模擬器件ispPAC30及其應用(826)9.19 可編程模擬器設計及ispPAC30應用(826)9.20 ispPAD在模擬電路設計中的應用(827)9.21 在系統可編程模擬器件(ispPAC)及其應用(827)9.22 在系統可編程模擬器件ispPAC20及其應用(827)9.23 ispLSI1032E器件及其應用(827)9.24 用ispPAC20實現的最簡溫度測控系統(827)9.25 在系統可編程器件設計應用實例(827)9.26 在FPGA開發板上設計8051的開發平臺(828)9.27 由可編程邏輯器件與單片機構成的雙控制器(828)9.28 用VHDL設計專用串行通信芯片(828)9.29 基于FPGA的ARINC429總線接口芯片的設計與實現(828)9.30 I2C總線通信接口的CPLD實現(828)9.31 FPGA模擬MBUS總線的實現(828)9.32 基于FPGA的USB2.0控制器設計(828)9.33 USB外設接口的FPGA實現(829)9.34 循環冗余校驗碼的單片機及CPLD實現(829)9.35 可編程芯片在測控系統中的應用(829)9.36 可編程邏輯器件在浮點放大器中的應用(829)9.37 FPGA在高速多通道數據采集中的應用(829)9.38 在DSP采樣系統中采用DAC實現量程自動轉換(829)9.39 基于VHDL語言的數字頻率計設計(830)9.40 基于VHDL語言的數字頻率計的設計(830)9.41 CPLD在SPWM變頻調速系統控制中的應用(830)9.42 ISP技術在交通控制器中的應用(830)9.43 基于ISP技術的有限狀態機控制系統設計(830)9.44 如何使用ISP技術產生任意波形(830)9.45 打印控制卡的FPGA外圍電路設計(830)9.46 加密可編程邏輯陣列芯片引腳的判別(831)9.47 藍牙系統中的加密技術及其算法的FPGA實現(831)9.48 運用VHDL語言設計電視墻數字圖像處理電路(831)9.49 CPLD在電路板故障診斷中的應用(831)9.50 用硬件描述語言設計一個簡單的超標量流水線微處理器(831)9.51 用CPLD技術實現高速數據識別碼檢測器(831)9.52 用CPLD控制ISD2590語音芯片的技術應用(832) 十、綜合應用(833)10.1 嵌入式處理器StrongARM的開發研究(833)10.2 基于StrongARM的視頻采集與處理系統(833)10.3 基于StrongARM的遠程網絡監控系統設計(833)10.4 基于80C196KC的CAM鎖定功能實現可控硅的觸發控制(833)10.5 基于MSP430F149的低成本智能型電力監測儀(833)10.6 一種基于ADμC812單片機的數據采集器(833)10.7 基于PIC16C72單片機的線性V/F轉換器設計(834)10.8 基于PIC16C923單片機的非接觸式光纖溫度測量儀(834)10.9 用89C2051構成智能儀表的鍵顯接口(834)10.10 基于89C2051的解碼器設計(834)10.11 基于AT89C2051的準方波逆變電源(834)10.12 單片機AT89C2051構成的智能型頻率計(834)10.13 基于AT89C2051單片機的旋轉變壓器位置測量系統設計(834)10.14 AT89C2051單片機對顯示驅動芯片MC14499的IC級代換(835)10.15 實用變量程模擬信號單片機檢測電路(835)10.16 GPS高精度時鐘的設計和實現(835)10.17 一種基于GPS的高速數據采集卡的實現(835)10.18 V/F轉換電壓測量系統(835)10.19 用20位DAC實現0~10 V可程控精密直流參考源的設計(835)10.20 單片MAX752實現的CCD供電電源的設計(835)10.21 基于雙口RAM的智能型開關量控制卡的設計(836)10.22 矩陣鍵盤產生PC機鍵盤信號的應用設計(836)10.23 基于C51的漢字/數字混合液晶顯示及更新的方法(836)10.24 實現串行E2PROM芯片的PC界面操作(836)10.25 一種軟硬件結合的POCSAG碼解碼裝置研制(836)10.26 藍牙技術在醫療監護中的應用(836)10.27 一種紅外感應泵液器的單片機應用設計(836)10.28 電話報警系統的設計(837)10.29 無軌電車整流站自動化監控系統(837)10.30 PWM恒流充電系統的設計(837)10.31 微功耗智能IC卡燃氣表的研制(837)10.32 軟件接口技術在串行通信中的應用(837)10.33 數字化直流接地系統絕緣檢測儀的設計與開發(837)10.34 4Mbps紅外無線計算機通信卡研制(837)10.35 MCB1電力測量控制儀中CAN總線通信模板的設計及編程(838)10.36 單片機在晶閘管觸發電路中的應用(838)10.37 基于DS1302的子母鐘系統(838)
上傳時間: 2013-12-04
上傳用戶:vmznxbc
九.輸入/輸出保護為了支持多任務,80386不僅要有效地實現任務隔離,而且還要有效地控制各任務的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護。 這里下載本文源代碼。 <一>輸入/輸出保護80386采用I/O特權級IPOL和I/O許可位圖的方法來控制輸入/輸出,實現輸入/輸出保護。 1.I/O敏感指令輸入輸出特權級(I/O Privilege Level)規定了可以執行所有與I/O相關的指令和訪問I/O空間中所有地址的最外層特權級。IOPL的值在如下圖所示的標志寄存器中。 標 志寄存器 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許可位圖規定了I/O空間中的哪些地址可以由在任何特權級執行的程序所訪問。I/O許可位圖在任務狀態段TSS中。 I/O敏感指令 指令 功能 保護方式下的執行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數據 CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數據 CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關,并且只有在滿足所列條件時才可以執行,所以把它們稱為I/O敏感指令。從表中可見,當前特權級不在I/O特權級外層時,可以正常執行所列的全部I/O敏感指令;當特權級在I/O特權級外層時,執行CLI和STI指令將引起通用保護異常,而其它四條指令是否能夠被執行要根據訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執行,那么將引起出錯碼為0的通用保護異常。 由于每個任務使用各自的EFLAGS值和擁有自己的TSS,所以每個任務可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實模式下總是可執行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執行是很不方便的,不能滿足實際要求需要。因為這樣做會使得在特權級3執行的應用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實際需要與此剛好相反,只允許任務甲的應用程序訪問部分I/O地址,只允許任務乙的應用程序訪問另一部分I/O地址,以避免任務甲和任務乙在訪問I/O地址時發生沖突,從而避免任務甲和任務乙使用使用獨享設備時發生沖突。 因此,在IOPL的基礎上又采用了I/O許可位圖。I/O許可位圖由二進制位串組成。位串中的每一位依次對應一個I/O地址,位串的第0位對應I/O地址0,位串的第n位對應I/O地址n。如果位串中的第位為0,那么對應的I/O地址m可以由在任何特權級執行的程序訪問;否則對應的I/O地址m只能由在IOPL特權級或更內層特權級執行的程序訪問。如果在I/O外層特權級執行的程序訪問位串中位值為1的位所對應的I/O地址,那么將引起通用保護異常。 I/O地址空間按字節進行編址。一條I/O指令最多可涉及四個I/O地址。在需要根據I/O位圖決定是否可訪問I/O地址的情況下,當一條I/O指令涉及多個I/O地址時,只有這多個I/O地址所對應的I/O許可位圖中的位都為0時,該I/O指令才能被正常執行,如果對應位中任一位為1,就會引起通用保護異常。 80386支持的I/O地址空間大小是64K,所以構成I/O許可位圖的二進制位串最大長度是64K個位,即位圖的有效部分最大為8K字節。一個任務實際需要使用的I/O許可位圖大小通常要遠小于這個數目。 當前任務使用的I/O許可位圖存儲在當前任務TSS中低端的64K字節內。I/O許可位圖總以字節為單位存儲,所以位串所含的位數總被認為是8的倍數。從前文中所述的TSS格式可見,TSS內偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長可達8K字節,所以開始偏移應小于56K,但必須大于等于104,因為TSS中前104字節為TSS的固定格式,用于保存任務的狀態。 1.I/O訪問許可檢查細節保護模式下處理器在執行I/O指令時進行許可檢查的細節如下所示。 (1)若CPL<=IOPL,則直接轉步驟(8);(2)取得I/O位圖開始偏移;(3)計算I/O地址對應位所在字節在I/O許可位圖內的偏移;(4)計算位偏移以形成屏蔽碼值,即計算I/O地址對應位在字節中的第幾位;(5)把字節偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產生出錯碼為0的通用保護故障;(6)若不越界,則從位圖中讀對應字節及下一個字節;(7)把讀出的兩個字節與屏蔽碼進行與運算,若結果不為0表示檢查未通過,則產生出錯碼為0的通用保護故障;(8)進行I/O訪問。設某一任務的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對應I/O端口00H—3FH DB 10000000B ;對應I/O端口40H—47H DB 01100000B ;對用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對應I/O端口50H—0FFFFH DB 0FFH ;位圖結束字節TSSLen = $TSSSEG ENDS 再假設IOPL=1,CPL=3。那么如下I/O指令有些能正常執行,有些會引起通用保護異常: in al,21h ;(1)正常執行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執行 out 20h,eax ;(6)正常執行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執行 由上述I/O許可檢查的細節可見,不論是否必要,當進行許可位檢查時,80386總是從I/O許可位圖中讀取兩個字節。目的是為了盡快地執行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個字節。例如,上面的第(8)條指令要對I/O位圖中的兩個位進行檢查,其低位是某個字節的最高位,高位是下一個字節的最低位。可見即使只要檢查兩個位,也可能需要讀取兩個字節。另一方面,最多檢查四個連續的位,即最多也只需讀取兩個字節。所以每次要讀取兩個字節。這也是在判別是否越界時再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節時產生越界,必須在I/O許可位圖的最后填加一個全1的字節,即0FFH。此全1的字節應填加在最后一個位圖字節之后,TSS界限范圍之前,即讓填加的全1字節在TSS界限之內。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當TSS的界限大于I/O許可位圖開始偏移加8K時,I/O許可位圖的有效部分就有8K字節,I/O許可檢查全部根據全部根據該位圖進行。當TSS的界限不大于I/O許可位圖開始偏移加8K時,I/O許可位圖有效部分就不到8K字節,于是對較小I/O地址訪問的許可檢查根據位圖進行,而對較大I/O地址訪問的許可檢查總被認為不可訪問而引起通用保護故障。因為這時會發生字節越界而引起通用保護異常,所以在這種情況下,可認為不足的I/O許可位圖的高端部分全為1。利用這個特點,可大大節約TSS中I/O許可位圖占用的存儲單元,也就大大減小了TSS段的長度。 <二>重要標志保護輸入輸出的保護與存儲在標志寄存器EFLAGS中的IOPL密切相關,顯然不能允許隨便地改變IOPL,否則就不能有效地實現輸入輸出保護。類似地,對EFLAGS中的IF位也必須加以保護,否則CLI和STI作為敏感指令對待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對EFLAGS中的這三個字段的處理比較特殊,只有在較高特權級執行的程序才能執行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權級下對這三個字段的處理情況。 不同特權級對標志寄存器特殊字段的處理 特權級 VM標志字段 IOPL標志字段 IF標志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權級0執行的程序才可以修改IOPL位及VM位;只能由相對于IOPL同級或更內層特權級執行的程序才可以修改IF位。與CLI和STI指令不同,在特權級不滿足上述條件的情況下,當執行POPF指令和IRET指令時,如果試圖修改這些字段中的任何一個字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標志中的VM位總為0。 <三>演示輸入輸出保護的實例(實例九)下面給出一個用于演示輸入輸出保護的實例。演示內容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權指令引起的異常;使用段間調用指令CALL通過任務門調用任務,實現任務嵌套。 1.演示步驟實例演示的內容比較豐富,具體演示步驟如下:(1)在實模式下做必要準備后,切換到保護模式;(2)進入保護模式的臨時代碼段后,把演示任務的TSS段描述符裝入TR,并設置演示任務的堆棧;(3)進入演示代碼段,演示代碼段的特權級是0;(4)通過任務門調用測試任務1。測試任務1能夠順利進行;(5)通過任務門調用測試任務2。測試任務2演示由于違反I/O許可位圖規定而導致通用保護異常;(6)通過任務門調用測試任務3。測試任務3演示I/O敏感指令如何引起通用保護異常;(7)通過任務門調用測試任務4。測試任務4演示特權指令如何引起通用保護異常;(8)從演示代碼轉臨時代碼,準備返回實模式;(9)返回實模式,并作結束處理。
上傳時間: 2013-12-11
上傳用戶:nunnzhy