C51單片機是我們生活中最常用的系列,MCS-51系列單片機有4個并行口(P0,P1,P2,P3口),但對一個稍微復雜的應用系統來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴展并行口以滿足實際的需要。習慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對比較復雜的系統中,但如是對一般的系統而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號來進行并行口的擴展,這樣就能充分利用單片機有限的I/O資源,在本設計中是將P1口擴展成一個或幾個8位并行口,在每一個八位口上接入8個發光二極管做為輸出,二極管是做開關量來使用的,在這里設計了跑馬燈和流水燈程序,做到對開關量的開斷控制;配合開關量的控制筆者設計了一個共陽LED數碼管,用來顯示當前發光二極管發亮的序號,做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉換器和一放大器輸出一個模擬信號,其結果可以通過示波器看出。這樣整個系統即有了數字信號輸出和模擬信號輸出,也有數碼管顯示功能,實用性能大提高了。2、 基于89C51的系統硬件設計2.1 并行口的擴展的電路設計 眾所周知,C51系列的單片機都有四個I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態,所以這次設計,我們就是使用閑置不用的P3口做為選能信號線來將P1口進行并行口擴展。 (1) 種方式的并行口擴展優點 連線簡單; 不占用存儲器空間; (2) 編程也方便靈活。但也有很大的缺點 并行口擴展能力有限,(如使用74LS573(74LS373)且不進行驅動處理,則最多可擴展4個同樣類型的并行輸出端口,當然還需要與之對應的四個選通信號。) 如擴展較多,選通信號占用并行口位數太多,例如欲擴展8個并行輸出端口,則需要8個選能信號,此時,僅選能信號就占用了一個8位并行口,這對在I/O端口線有限的單片機系統中,如此浪費資源的現象是不能容忍的。在本次的設計中,采用芯片74HC573(帶三態輸出的八進制透明D型鎖存器)對P1口進行了一個8位并行口的擴展,選通信號選用P3口的P3.3引腳。原理圖如圖1所示:
上傳時間: 2013-11-18
上傳用戶:dbs012280
單片機應用技術選編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
1. RS-232-C 詳解 22. 串口通信基本接線方法 123. 串口通訊的概念及接口電路 134. 有關RS232和RS485接口的問答 145. 同步通信方式 166. 通信協議197. 實戰串行通訊258. 全雙工和半雙工方式 339. 淺析PC 機串口通訊流控制 3410. 奇偶校驗 3511. 開發通信軟件的技術與技巧 3612. 接口技術的基本知識 4113. 一個單片機串行數據采集/傳輸模塊的設計 4414. 單工、半雙工和全雙工的定義 4815. 從RS232 端口獲得電源4916. 串行同步通信的應用5017. 串行通信波特率的一種自動檢測方法5318. RS-232、RS-422 與RS-485 標準及應用5619. 串口泵 6串行通信接口標準經過使用和發展,目前已經有幾種。但都是在RS-232標準的基礎上經過改進而形成的。所以,以RS-232C為主來討論。RS-323C 標準是美國EIA(電子工業聯合會)與BELL等公司一起開發的1969 年公布的通信協議。它適合于數據傳輸速率在0~20000b/s 范圍內的通信。這個標準對串行通信接口的有關問題,如信號線功能、電器特性都作了明確規定。由于通行設備廠商都生產與RS-232C制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信接口中廣泛采用。在討論RS-232C 接口標準的內容之前,先說明兩點:首先,RS-232-C標準最初是遠程通信連接數據終端設備DTE(Data Terminal Equipment)與數據通信設備DCE(Data Communication Equipment)而制定的。因此這個標準的制定,并未考慮計算機系統的應用要求。但目前它又廣泛地被借來用于計算機(更準確的說,是計算機接口)與終端或外設之間的近端連接標準。顯然,這個標準的有些規定及和計算機系統是不一致的,甚至是相矛盾的。有了對這種背景的了解,我們對RS-232C標準與計算機不兼容的地方就不難理解了。其次,RS-232C 標準中所提到的“發送”和“接收”,都是站在DTE 立場上,而不是站在DCE 的立場來定義的。由于在計算機系統中,往往是CPU 和I/O設備之間傳送信息,兩者都是DTE,因此雙方都能發送和接收。
上傳時間: 2013-11-21
上傳用戶:crazyer
主要功能:1、將串口通訊協議存儲為一個通訊文件,可是隨時將存儲通訊協議文件調入計算機運行與下位機通訊可以實現通訊對話,供下位機工程師參考使用,其主要的通訊協議本程序把它們分成四種情況。以下說明:1)下位機直接發送數據,上位機只接收不回應數據。2)下位機直接發送數據,上位機接收并回應數據。3)上位機直接發送數據,下位機只接收不回應數據。4)上位機直接發送數據,下位機接收并回應數據。下位機工程師完全可以利用這個功能單獨的并且很方便的調試與上位機通訊程序,更改雙方的通訊協議,不再需要上位機工程師的配合。windwos標準操作,使用方便。2、可以監聽活動串口的數據,將監聽到的數據顯示到數據顯示區里面,可以保存。也可以將原先保存的文件數據讀進來,以供分析。數據可以按照十六進制和ascii碼顯示出來。3、自動識別串口設置,當不知道對方設備的通訊串口設置時,可以利用該功能讓此程序自動識別,當然前提是對方設備必須是一直在發數據,整個識別過程大概需要二分鐘。4、可以通過該程序,利用串口將文件發送到另一個計算機上。另一個計算機通過接收文件接收所發出的文件。
上傳時間: 2013-11-11
上傳用戶:semi1981
自制單片機MSP-FET430仿真器 前言:本想到市場買個自制的MSP-FET430仿真工具,但看其做工可不敢恭維。于是打開當時千元購買的FET(1個不夠用啊),又參網上提供的自制FET的資料,依南士接插件的外殼尺寸繪制了自認為布板較合理的PCB使用。上圖為電路參考原型,注意圖中FET 的連接形式(25 針屏蔽電纜轉接線,長度小于20 厘米的扁平線),這樣的連接更利于下載調試的可靠性。.....
上傳時間: 2013-11-20
上傳用戶:xdqm
自制89C51單片機實驗電路板 學習單片機離不開實驗,以往單片機的實驗往往依賴于仿真機和單片機學習系統,價格昂貴,初學者很難配備。近年來,隨著FLASH型單片機的廣泛應用,采用軟件模擬加寫片驗證成為一種經濟實用的實驗方法,以AT89C51單片機為例,其價格不足¥10RMB,而擦、寫次數可以有1000次,一塊芯片即可做上千次的實驗。目前,流行的單片機開發軟件Keil可以免費獲得用于學習的EVAL版;編程器價格并不昂貴,專門用于寫89C51類芯片的編程器價格更低廉(不足百元),而且編程器也是以后開發單片機所必備的工具;相比之下,用于實驗的電路板制作比較麻煩,用萬用板搭接,只能做些很簡單的電路,稍復雜的電路一般要用到雙面板,而業余條件下是很難自制雙面板的,而且實驗電路板主要是用于學習,學完了,也就沒有什么使用價值了,所以很多人希望能夠廉價地獲得。作者在多年單片機教學(包括從事網絡教學)的基礎上,開發了一塊有較多功能但使用單面板的單片機實驗板,適于業余愛好者自制。這塊實驗板采用89C51為主芯片,板上安裝了5位數碼管,8個發光二極管,四個按鈕開關,一個簡單的音響電路,一個用于計數實驗的振蕩器,At24CXXX類芯片插座,X5045芯片插座,RS232串行接口等。使用這塊實驗板可以進行流水燈、人機界面程序設計、音響、中斷、計數器等基本編程練習,還可以學習I2C接口芯片使用、SPI接口芯片使用、與PC機進行串行通訊等目前較為流行的技術。圖1是該實驗板的電路原理圖,從圖中可以看出,該實驗板由若干塊集成電路和一些阻容元件等組成,下面我們就分別介紹。1、發光二極管接口主芯片(U1)的P1端口接了8個發光二極管,這些發光二極管的負極接到P1端口各引腳,而正極則通過一個排電阻(標號為JP4,阻值為470毆)接到正電源端,這樣,這些發光二極管亮的條件就U1的P1口相引的引腳為低電平,即如果P1口某引腳輸出為0,相應的燈亮,如果輸出為1,相應的燈滅。例:MOV P1,#0FH該行程序將使發光二極管L1-L4熄滅,而L5-L8點亮。2、數碼管接口U1的P0口和P2口的部份引腳構成了5位LED數碼管驅動電路,這里LED數碼管采用了共陽型,共陽型數碼管的筆段(即對應abcdefgh)引腳是二極管的負極,所有二極管的正極連在一起,構成公共端,即片選端,對于這種數碼管的驅動,要求在片選端提供電流,為此,使用了PNP型三極管作為片選端的驅動,共使用5只三極管,所有三極管的發射極連在一起,接到正電源端,它們的基極則分別連到P2.0⋯P2.4,這樣,當P2.0⋯P2.4中某引腳輸出是高電平時,三極管不導通,不能給相應位的數碼管供電,該位數碼管的所有筆段都不亮,反之,如果某引腳是低電平時,三極管導通,可以給相應的數碼管供電,該位數碼管是否點亮,點亮哪些筆段,取決于這些筆段引腳是高或低電平。從圖圖1 共陽型數LED顯示器.....
上傳時間: 2013-11-14
上傳用戶:dingdingcandy
提出了利用12c總線擴展單片機的并行口的方法。對于不具有12C總線的單片機,可以利用其I/O口模擬來實現。
上傳時間: 2013-10-16
上傳用戶:cursor
用二端口S-參數來表征差分電路的特性■ Sam Belkin差分電路結構因其更好的增益,二階線性度,突出的抗雜散響應以及抗躁聲性能而越來越多地被人們采用。這種電路結構通常需要一個與單端電路相連接的界面,而這個界面常常是采用“巴倫”器件(Balun),這種巴倫器件提供了平衡結構-到-不平衡結構的轉換功能。要通過直接測量的方式來表征平衡電路特性的話,通常需要使用昂貴的四端口矢量網絡分析儀。射頻應用工程師還需要確定幅值和相位的不平衡是如何影響差分電路性能的。遺憾的是,在射頻技術文獻中,很難找到一種能表征電路特性以及衡量不平衡結構所產生影響的好的評估方法。這篇文章的目的就是要幫助射頻應用工程師們通過使用常規的單端二端口矢量網絡分析儀來準確可靠地解決作為他們日常工作的差分電路特性的測量問題。本文介紹了一些用來表征差分電路特性的實用和有效的方法, 特別是差分電壓,共模抑制(CMRR),插入損耗以及基于二端口S-參數的差分阻抗。差分和共模信號在差分電路中有兩種主要的信號類型:差分模式或差分電壓Vdiff 和共模電壓Vcm(見圖2)。它們各自的定義如下[1]:• 差分信號是施加在平衡的3 端子系統中未接地的兩個端子之上的• 共模信號是相等地施加在平衡放大器或其它差分器件的未接地的端子之上。
上傳時間: 2013-10-14
上傳用戶:葉山豪
軟件名稱:Commix混合串口調試工具軟件版本:1.0 軟件作者:周陳平作者郵件:ggenien@163.com 軟件容量:193KB 軟件語言:簡體中文授權形式:免費軟件應用平臺:Win95/98/NT/2000 發布日期:2001年11月06日軟件介紹: 很好的串口調試工具,能夠混合輸入、顯示16進制數、10進制數、ASCII字符,能按多種常用方法(如Modbus等)自動加入校驗,還可將設定好的參數保存為注冊表文件,尤其適合做工業控制方面的通訊調試。使用說明按界面上的“?”就能看到。只有一個執行文件,不用安裝。 打開程序后,有16個串口可供選擇 Commix 混合輸入串口調試工具 Commix設計為串口調試工具,最大特點是:能夠混合輸入16進制數、10進制數、ASCII字符,這種功能通過轉義符“\”實現。 界面說明: 1、 HEX: 輸入數據看作16進制字節,不區分大小寫 ASCII: 輸入數據看作ASCII字符 忽略空格輸入: 是否忽略用戶輸入數據中的空格 自動換行: 是否在接收與發送的數據之間自動換行顯示 2、 在HEX和ASCII方式輸入時,轉義符輸入都有效 3、 在ASCII方式,20h到7Eh的字符直接顯示,其他字符顯示為轉義符形式 4、 如果改變顯示區的光標位置,新的顯示將插入在光標處 5、 用戶輸入(從串口輸出)的數據顯示為綠色,從串口輸入的數據顯示為藍色,發送到接收之間的間隔時間(毫秒)顯示為灰色,用戶在顯示區輸入的字符顯示為黑色 6、 程序不檢測串口狀態,因此也能用于最簡單的3線制(第2、3、5針)RS232通訊 7、 串口打開后,修改通訊參數時不必關閉,新參數立即生效 8、 程序結束時,參數自動保存到注冊表;點擊注冊表圖標,可將當前設置保存到注冊表文件 校驗使用: 1、 主界面上,“校驗”復選框被選中時,會出現校驗設置窗口 2、 選擇不同的校驗方式,會有不同的選項出現 HEX/ASCII: 選擇校驗結果的存放方式 3、 如果校驗被允許,程序將按“數據 校驗 結束符”的順序發送,結束符的默認格式與主界面上的HEX/ASCII設置相同 轉義符使用: 1、 16進制輸入: \xhh 2、 10進制輸入: \ddd 3、 預定義字符輸入: \ccc 或 \cc 或 \\ 4、 顯示字符輸入: \ra 5、 轉義符輸入長度必須與上述相符,不區分大小寫 轉義符使用舉例: \x1B 、\027 、\ESC 的值是 1Bh \x0d 、\013 、\cr 的值是 0Dh \rA 、\065 的值是 41h \\ 、\r\ 、\x5C 的值是 字符\ ASCII輸入: \stx011234R01\etx57\cr\lf 與HEX輸入:02 30 31 31 32 33 34 \rR 30 31 03 \r5 \r7 \cr\lf 是相同的 轉義符中的預定義字符: 輸入 值 \\ 字符\ \LF 0Ah \CR 0Dh \NUL 0 \SOH 1 \STX 2 \ETX 3 \EOT 4 \ENQ 5 \ACK 6 \NAK 15h \CAN 18h \ESC 27h
上傳時間: 2013-11-20
上傳用戶:dalidala