九.輸入/輸出保護為了支持多任務,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位圖中的兩個位進行檢查,其低位是某個字節的最高位,高位是下一個字節的最低位??梢娂词怪灰獧z查兩個位,也可能需要讀取兩個字節。另一方面,最多檢查四個連續的位,即最多也只需讀取兩個字節。所以每次要讀取兩個字節。這也是在判別是否越界時再加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
用單片機實現溫度遠程顯示摘 要:文章介紹了用AT89S8252單片機的串行接口與智能溫度巡回檢測儀(XJ-08S)通過RS—485總線相互通訊實現熱水溫度遠程顯示的一種低成本解決方案,內容涉及RS—485總線通訊、單片機驅動數碼管顯示、數據轉換以及鍵盤處理軟硬件設計等內容。關鍵詞:單片機 RS—485總線 數碼管顯示 數據轉換 鍵盤處理一、前 言目前檢測溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補償導線,而溫度補償導線價格很貴,并且線路太長也會影響測量精度。在實際應用中往往需要對較遠處(1KM左右)的溫度信號進行監視。現有的解決方案有很多,例如:1、 在現場用智能儀表對溫度信號進行測量,用計算機作上位機與智能儀表進行通訊來實現遠程溫度監測(采用這種方案要增加計算機設備及相關計算機軟件)。2、 NCU+DDC實現遠程溫度監測。用兩個DDC,一個安裝在現場測量溫度,另一個安裝在監視地,兩個DDC通過NCU進行通訊從而實現遠程溫度監測。但以上方案都存在成本高的問題,有沒有低成本的解決方案呢?其實,在單片機應用日益廣泛的今天,完全可以用單片機以極低的成本來實現遠程溫度監測。二、問題的提出我單位管理的鍋爐房同時給兩棟建筑物內的兩家酒店供應蒸汽,由安裝在兩棟建筑物地下室的熱交換器進行熱交換后產生熱水送給客房。從鍋爐房至兩個熱交換站的距離分別約600米,值班人員要不停地奔波于兩個熱交換站與鍋爐房之間進行設備巡視,檢查熱水溫度是否控制在規定的范圍,這樣不僅增加了值班人員的勞動強度,同時也使鍋爐房經常無人(因每班1人值班)。如果能在鍋爐房顯示兩個熱交換站內各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時才需到各熱交換站檢查設備,這樣便可解決上述問題。我公司曾就此問題找專業公司作過方案,其報價在人民幣10萬元左右,后因種種原因該項目未實施。經過分析,本人發現可以用單片機+智能儀表以低成本實現溫度遠程顯示,并且經過實驗取得了成功,現將設計方案簡述如下:三、控制要求及解決方案選擇 1、 兩個熱交換站分高低區共安裝有8個熱交換器,正常水溫在45oC至65oC之間;兩個熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點兩種方式顯示8個熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點方式時每按上鍵或下鍵一次則顯示上或下一個熱交換器熱水溫度,每3秒自動更新數據一次。3、 根據控制要求選擇單片機+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現場測量溫度,設計制作一個單片機裝置完成與智能儀表的通訊及數據顯示。四、通訊協議、智能儀表選擇及其參數介紹因熱水溫度信號變化較慢,因而對通信的速度要求不高,對于這種低速率遠距離的通訊選用RS-485總線適宜。RS-485是EIA(美國電子工業聯合會)在1983年公布的新的平衡傳輸標準,是工業界使用最為廣泛的雙向、平衡傳輸線標準接口,它以半雙工方式通信,支持多點連接,傳統驅動器允許創建多達32個節點的網絡,且其具有傳輸距離遠(最大傳輸距離為1200M),傳輸速度快(1200M時為100KBPS)等優點。其連接方法如下圖所示。
上傳時間: 2013-10-12
上傳用戶:luopoguixiong
基于多點網絡的水廠自動監控系統設計Design of MPI Based Automatic Monitoring and Control System in Water Works劉 美 俊(湖南工程學院,湘潭411101)摘要針對水廠工作水泵多、現場離控制站距離遠的特點,提出了一種基于MPI多點網絡的自動監控系統的設計方法,分析了系統的工作原理,介紹了系統中數據的采集與處理、主站與從站的通信原理以及系統軟件的設計。由于這種系統的主、從站PLC之間采用MPI網絡通信,具有運行可靠、性能價格比高的特點,所以適用于中小規模水廠的分布式監控場合。關鍵詞多點網絡主站從站監控系統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 自來 水 廠 的自動控制系統一般分為兩大部分,一對組態硬件要求較高,投資較大。相對而言,MPI網是水源地深水泵的工作控制,一是水廠區變頻恒壓供絡速度可達187.5 M bps,通過一級中繼器傳輸距離可水控制,兩部分的實際距離通常都比較遠。某廠水源達Ikm 。根據水廠的具體情況,確定以MPI方式組地有3臺深井泵給水廠區的蓄水池供水。水廠區的成網絡,主站PLC為S7-300系列的CPU3121FM,從任務是對水池的水進行消毒處理后,通過加壓泵向管站為S7-200系列的CPU222。這樣既滿足了系統要路恒壓供水。選用Siemens公司的S7系列可編程控求,又相對于Profibus網絡節省了三分之一的成本,制器(PLC)和上位機組成實時數據采集和監控系統, 這種分布式監控系統具有較高的性能價格比。系統對深水泵進行遠程控制,對供水泵采用變頻器進行恒中PLC的物理層采用RS - 485接口,網絡延伸選用壓控制以保證整個水廠的電機設備安全、可靠地運帶防雷保護的中繼器,使系統的安全運行得到了保行。證。MPI網絡的拓撲結構如圖1所示。1 多點網絡(NWI)監控系統的組成Sie me ns 公司S7系列PLC通常有MP」多點網絡與Profibus現場總線網絡兩種組網方式。Profibus現場總線的應用目前較為普遍,通用性較好,它由Profibus一DP, Profibus一FMS, Profibus一PA組成。Profibus - DP型用于分散外設間的數據傳輸,傳輸速率為9.6kbps一12Mbps,主要用于現場控制器與分散1/0之間的通信,可滿足交直流調速系統快速響應的時間要求,特別適合于加工自動化領域的應用;Profibus - FMS主要解決車間級通信問題,完成中等傳輸速度的循環或非循環數據交換任務,適用于紡織、樓宇自動化、可編程控制器、低壓開關等;Profibus - PA型采用了OSI模型的物理層和數據鏈路層,適用于過程自動化的總線類型。
上傳時間: 2013-10-09
上傳用戶:fac1003
單片機原理與應用《課程簡介》:單片機已成為電子系統中進行數據采集、信息處理、通信聯絡和實施控制的重要器件。通常利用單片機技術在各種系統、儀器設備或裝置中,形成嵌入式智能系統或子系統。因此,單片機技術是電類專業特別是電子信息類學生必須具備的基本功。本課程以51系列單片機為模型,主要向學生介紹單片機的基本結構、工作原理、指令系統與程序設計、系統擴展與工程應用。作為微機原理與接口技術的后續課程,本課程強調實踐環節,側重系統構成與應用設計。力求通過實踐環節,軟、硬結合,培養初步的單片機開發能力,并使其前導課程講授的基本概念得到綜合與深化。由于課時的限制,綜合性的應用設計安排在后續課程《微機應用系統設計》中進行。 課 程 內 容:第一章 單片微型計算機概述單片機的發展與應用 MCS-51系列單片機簡介第二章 MCS-51系列單片機結構MCS-51單片機基本結構 CPU 時序簡介 存儲器空間結構 片內RAM與SFR時鐘電路與復位電路 并行I/O口與總線擴展第三章 MCS-51單片機指令系統指令系統簡介數據傳送指令 數據處理指令 位處理指令 程序控制指令匯編語言程序設計方法 程序調試的常用方法第四章 SCB-I 單片單板機SCB-I 單片單板機結構簡介 監控系統簡介SCB-I 單片單板機的基本操作 第五章 單片機常用接口電路的軟、硬件設計LED顯示接口電路與應用編程鍵盤接口電路與應用編程計數器/定時器工作原理及其應用編程MCS-51中斷系統及其應用編程8255擴展并行接口及其應用編程串行通信接口及其應用編程A/D與D/A轉換接口及其應用編程*第六章 單片機應用系統設計舉例第七章 單片機開發工具簡介* 加“*”為選講內容教學要求:1、 了解單片機的一般性概念及單片機技術的發展。2、 掌握51系列單片機的基本結構與工作原理。3、 掌握51系列單片機的指令系統與程序設計的基本方法。4、 以單片單板機為樣板,掌握51系列單片機的系統擴展設計。5、 通過實驗,掌握單片機常用接口電路的軟硬件設計及其應用。6、 以上為本課程的基本要求。作為提高要求,對有能力、有興趣的學生,若能較快地完成基本實驗,可在規定課時內安排有一定難度的綜合性實驗,以提高其應用設計的能力。 課時安排和考核方式:1、 講課40學時,實驗20學時,課內外學時比 1:2 ;(實驗從第七周開始,7個基本實驗,選做1個綜合實驗)2、 考核方式平時考查 20實驗考核 40(含實驗過程、實驗驗收與實驗報告)期末筆試 40參考書:《MCS-51單片機應用設計》 張毅剛 等編 哈爾濱工業大學出版社《MCS-51系列單片機原理及應用》 孫涵芳 徐愛卿 編著 北京航空航天大學出版社《單片微機與測控技術》 趙秀菊 等編 東南大學出版社《單片微型機原理、應用與實驗》 張友德 等編 復旦大學出版社 《單片機實驗》 肖璋 雷兆宜 編 暨南大學講義
上傳時間: 2014-01-08
上傳用戶:417313137
單片機應用系統抗干擾技術:第1章 電磁干擾控制基礎. 1.1 電磁干擾的基本概念1 1.1.1 噪聲與干擾1 1.1.2 電磁干擾的形成因素2 1.1.3 干擾的分類2 1.2 電磁兼容性3 1.2.1 電磁兼容性定義3 1.2.2 電磁兼容性設計3 1.2.3 電磁兼容性常用術語4 1.2.4 電磁兼容性標準6 1.3 差模干擾和共模干擾8 1.3.1 差模干擾8 1.3.2 共模干擾9 1.4 電磁耦合的等效模型9 1.4.1 集中參數模型9 1.4.2 分布參數模型10 1.4.3 電磁波輻射模型11 1.5 電磁干擾的耦合途徑14 1.5.1 傳導耦合14 1.5.2 感應耦合(近場耦合)15 .1.5.3 電磁輻射耦合(遠場耦合)15 1.6 單片機應用系統電磁干擾控制的一般方法16 第2章 數字信號耦合與傳輸機理 2.1 數字信號與電磁干擾18 2.1.1 數字信號的開關速度與頻譜18 2.1.2 開關暫態電源尖峰電流噪聲22 2.1.3 開關暫態接地反沖噪聲24 2.1.4 高速數字電路的EMI特點25 2.2 導線阻抗與線間耦合27 2.2.1 導體交直流電阻的計算27 2.2.2 導體電感量的計算29 2.2.3 導體電容量的計算31 2.2.4 電感耦合分析32 2.2.5 電容耦合分析35 2.3 信號的長線傳輸36 2.3.1 長線傳輸過程的數學描述36 2.3.2 均勻傳輸線特性40 2.3.3 傳輸線特性阻抗計算42 2.3.4 傳輸線特性阻抗的重復性與阻抗匹配44 2.4 數字信號傳輸過程中的畸變45 2.4.1 信號傳輸的入射畸變45 2.4.2 信號傳輸的反射畸變46 2.5 信號傳輸畸變的抑制措施49 2.5.1 最大傳輸線長度的計算49 2.5.2 端點的阻抗匹配50 2.6 數字信號的輻射52 2.6.1 差模輻射52 2.6.2 共模輻射55 2.6.3 差模和共模輻射比較57 第3章 常用元件的可靠性能與選擇 3.1 元件的選擇與降額設計59 3.1.1 元件的選擇準則59 3.1.2 元件的降額設計59 3.2 電阻器60 3.2.1 電阻器的等效電路60 3.2.2 電阻器的內部噪聲60 3.2.3 電阻器的溫度特性61 3.2.4 電阻器的分類與主要參數62 3.2.5 電阻器的正確選用66 3.3 電容器67 3.3.1 電容器的等效電路67 3.3.2 電容器的種類與型號68 3.3.3 電容器的標志方法70 3.3.4 電容器引腳的電感量71 3.3.5 電容器的正確選用71 3.3.6 電容器使用注意事項73 3.4 電感器73 3.4.1 電感器的等效電路74 3.4.2 電感器使用的注意事項74 3.5 數字集成電路的抗干擾性能75 3.5.1 噪聲容限與抗干擾能力75 3.5.2 施密特集成電路的噪聲容限77 3.5.3 TTL數字集成電路的抗干擾性能78 3.5.4 CMOS數字集成電路的抗干擾性能79 3.5.5 CMOS電路使用中注意事項80 3.5.6 集成門電路系列型號81 3.6 高速CMOS 54/74HC系列接口設計83 3.6.1 54/74HC 系列芯片特點83 3.6.2 74HC與TTL接口85 3.6.3 74HC與單片機接口85 3.7 元器件的裝配工藝對可靠性的影響86 第4章 電磁干擾硬件控制技術 4.1 屏蔽技術88 4.1.1 電場屏蔽88 4.1.2 磁場屏蔽89 4.1.3 電磁場屏蔽91 4.1.4 屏蔽損耗的計算92 4.1.5 屏蔽體屏蔽效能的計算99 4.1.6 屏蔽箱的設計100 4.1.7 電磁泄漏的抑制措施102 4.1.8 電纜屏蔽層的屏蔽原理108 4.1.9 屏蔽與接地113 4.1.10 屏蔽設計要點113 4.2 接地技術114 4.2.1 概述114 4.2.2 安全接地115 4.2.3 工作接地117 4.2.4 接地系統的布局119 4.2.5 接地裝置和接地電阻120 4.2.6 地環路問題121 4.2.7 浮地方式122 4.2.8 電纜屏蔽層接地123 4.3 濾波技術126 4.3.1 濾波器概述127 4.3.2 無源濾波器130 4.3.3 有源濾波器138 4.3.4 鐵氧體抗干擾磁珠143 4.3.5 貫通濾波器146 4.3.6 電纜線濾波連接器149 4.3.7 PCB板濾波器件154 4.4 隔離技術155 4.4.1 光電隔離156 4.4.2 繼電器隔離160 4.4.3 變壓器隔離 161 4.4.4 布線隔離161 4.4.5 共模扼流圈162 4.5 電路平衡結構164 4.5.1 雙絞線在平衡電路中的使用164 4.5.2 同軸電纜的平衡結構165 4.5.3 差分放大器165 4.6 雙絞線的抗干擾原理及應用166 4.6.1 雙絞線的抗干擾原理166 4.6.2 雙絞線的應用168 4.7 信號線間的串擾及抑制169 4.7.1 線間串擾分析169 4.7.2 線間串擾的抑制173 4.8 信號線的選擇與敷設174 4.8.1 信號線型式的選擇174 4.8.2 信號線截面的選擇175 4.8.3 單股導線的阻抗分析175 4.8.4 信號線的敷設176 4.9 漏電干擾的防止措施177 4.10 抑制數字信號噪聲常用硬件措施177 4.10.1 數字信號負傳輸方式178 4.10.2 提高數字信號的電壓等級178 4.10.3 數字輸入信號的RC阻容濾波179 4.10.4 提高輸入端的門限電壓181 4.10.5 輸入開關觸點抖動干擾的抑制方法181 4.10.6 提高器件的驅動能力184 4.11 靜電放電干擾及其抑制184 第5章 主機單元配置與抗干擾設計 5.1 單片機主機單元組成特點186 5.1.1 80C51最小應用系統186 5.1.2 低功耗單片機最小應用系統187 5.2 總線的可靠性設計191 5.2.1 總線驅動器191 5.2.2 總線的負載平衡192 5.2.3 總線上拉電阻的配置192 5.3 芯片配置與抗干擾193 5.3.1去耦電容配置194 5.3.2 數字輸入端的噪聲抑制194 5.3.3 數字電路不用端的處理195 5.3.4 存儲器的布線196 5.4 譯碼電路的可靠性分析197 5.4.1 過渡干擾與譯碼選通197 5.4.2 譯碼方式與抗干擾200 5.5 時鐘電路配置200 5.6 復位電路設計201 5.6.1 復位電路RC參數的選擇201 5.6.2 復位電路的可靠性與抗干擾分析202 5.6.3 I/O接口芯片的延時復位205 5.7 單片機系統的中斷保護問題205 5.7.1 80C51單片機的中斷機構205 5.7.2 常用的幾種中斷保護措施205 5.8 RAM數據掉電保護207 5.8.1 片內RAM數據保護207 5.8.2 利用雙片選的外RAM數據保護207 5.8.3 利用DS1210實現外RAM數據保護208 5.8.4 2 KB非易失性隨機存儲器DS1220AB/AD211 5.9 看門狗技術215 5.9.1 由單穩態電路實現看門狗電路216 5.9.2 利用單片機片內定時器實現軟件看門狗217 5.9.3 軟硬件結合的看門狗技術219 5.9.4 單片機內配置看門狗電路221 5.10 微處理器監控器223 5.10.1 微處理器監控器MAX703~709/813L223 5.10.2 微處理器監控器MAX791227 5.10.3 微處理器監控器MAX807231 5.10.4 微處理器監控器MAX690A/MAX692A234 5.10.5 微處理器監控器MAX691A/MAX693A238 5.10.6 帶備份電池的微處理器監控器MAX1691242 5.11 串行E2PROM X25045245 第6章 測量單元配置與抗干擾設計 6.1 概述255 6.2 模擬信號放大器256 6.2.1 集成運算放大器256 6.2.2 測量放大器組成原理260 6.2.3 單片集成測量放大器AD521263 6.2.4 單片集成測量放大器AD522265 6.2.5 單片集成測量放大器AD526266 6.2.6 單片集成測量放大器AD620270 6.2.7 單片集成測量放大器AD623274 6.2.8 單片集成測量放大器AD624276 6.2.9 單片集成測量放大器AD625278 6.2.10 單片集成測量放大器AD626281 6.3 電壓/電流變換器(V/I)283 6.3.1 V/I變換電路..283 6.3.2 集成V/I變換器XTR101284 6.3.3 集成V/I變換器XTR110289 6.3.4 集成V/I變換器AD693292 6.3.5 集成V/I變換器AD694299 6.4 電流/電壓變換器(I/V)302 6.4.1 I/V變換電路302 6.4.2 RCV420型I/V變換器303 6.5 具有放大、濾波、激勵功能的模塊2B30/2B31305 6.6 模擬信號隔離放大器313 6.6.1 隔離放大器ISO100313 6.6.2 隔離放大器ISO120316 6.6.3 隔離放大器ISO122319 6.6.4 隔離放大器ISO130323 6.6.5 隔離放大器ISO212P326 6.6.6 由兩片VFC320組成的隔離放大器329 6.6.7 由兩光耦組成的實用線性隔離放大器333 6.7 數字電位器及其應用336 6.7.1 非易失性數字電位器x9221336 6.7.2 非易失性數字電位器x9241343 6.8 傳感器供電電源的配置及抗干擾346 6.8.1 傳感器供電電源的擾動補償347 6.8.2 單片集成精密電壓芯片349 6.8.3 A/D轉換器芯片提供基準電壓350 6.9 測量單元噪聲抑制措施351 6.9.1 外部噪聲源的干擾及其抑制351 6.9.2 輸入信號串模干擾的抑制352 6.9.3 輸入信號共模干擾的抑制353 6.9.4 儀器儀表的接地噪聲355 第7章 D/A、A/D單元配置與抗干擾設計 7.1 D/A、A/D轉換器的干擾源357 7.2 D/A轉換原理及抗干擾分析358 7.2.1 T型電阻D/A轉換器359 7.2.2 基準電源精度要求361 7.2.3 D/A轉換器的尖峰干擾362 7.3 典型D/A轉換器與單片機接口363 7.3.1 并行12位D/A轉換器AD667363 7.3.2 串行12位D/A轉換器MAX5154370 7.4 D/A轉換器與單片機的光電接口電路377 7.5 A/D轉換器原理與抗干擾性能378 7.5.1 逐次比較式ADC原理378 7.5.2 余數反饋比較式ADC原理378 7.5.3 雙積分ADC原理380 7.5.4 V/F ADC原理382 7.5.5 ∑Δ式ADC原理384 7.6 典型A/D轉換器與單片機接口387 7.6.18 位并行逐次比較式MAX 118387 7.6.28 通道12位A/D轉換器MAX 197394 7.6.3 雙積分式A/D轉換器5G14433399 7.6.4 V/F轉換器AD 652在A/D轉換器中的應用403 7.7 采樣保持電路與抗干擾措施408 7.8 多路模擬開關與抗干擾措施412 7.8.1 CD4051412 7.8.2 AD7501413 7.8.3 多路開關配置與抗干擾技術413 7.9 D/A、A/D轉換器的電源、接地與布線416 7.10 精密基準電壓電路與噪聲抑制416 7.10.1 基準電壓電路原理417 7.10.2 引腳可編程精密基準電壓源AD584418 7.10.3 埋入式齊納二極管基準AD588420 7.10.4 低漂移電壓基準MAX676/MAX677/MAX678422 7.10.5 低功率低漂移電壓基準MAX873/MAX875/MAX876424 7.10.6 MC1403/MC1403A、MC1503精密電壓基準電路430 第8章 功率接口與抗干擾設計 8.1 功率驅動元件432 8.1.1 74系列功率集成電路432 8.1.2 75系列功率集成電路433 8.1.3 MOC系列光耦合過零觸發雙向晶閘管驅動器435 8.2 輸出控制功率接口電路438 8.2.1 繼電器輸出驅動接口438 8.2.2 繼電器—接觸器輸出驅動電路439 8.2.3 光電耦合器—晶閘管輸出驅動電路439 8.2.4 脈沖變壓器—晶閘管輸出電路440 8.2.5 單片機與大功率單相負載的接口電路441 8.2.6 單片機與大功率三相負載間的接口電路442 8.3 感性負載電路噪聲的抑制442 8.3.1 交直流感性負載瞬變噪聲的抑制方法442 8.3.2 晶閘管過零觸發的幾種形式445 8.3.3 利用晶閘管抑制感性負載的瞬變噪聲447 8.4 晶閘管變流裝置的干擾和抑制措施448 8.4.1 晶閘管變流裝置電氣干擾分析448 8.4.2 晶閘管變流裝置的抗干擾措施449 8.5 固態繼電器451 8.5.1 固態繼電器的原理和結構451 8.5.2 主要參數與選用452 8.5.3 交流固態繼電器的使用454 第9章 人機對話單元配置與抗干擾設計 9.1 鍵盤接口抗干擾問題456 9.2 LED顯示器的構造與特點458 9.3 LED的驅動方式459 9.3.1 采用限流電阻的驅動方式459 9.3.2 采用LM317的驅動方式460 9.3.3 串聯二極管壓降驅動方式462 9.4 典型鍵盤/顯示器接口芯片與單片機接口463 9.4.1 8位LED驅動器ICM 7218B463 9.4.2 串行LED顯示驅動器MAX 7219468 9.4.3 并行鍵盤/顯示器專用芯片8279482 9.4.4 串行鍵盤/顯示器專用芯片HD 7279A492 9.5 LED顯示接口的抗干擾措施502 9.5.1 LED靜態顯示接口的抗干擾502 9.5.2 LED動態顯示接口的抗干擾506 9.6 打印機接口與抗干擾技術508 9.6.1 并行打印機標準接口信號508 9.6.2 打印機與單片機接口電路509 9.6.3 打印機電磁干擾的防護設計510 9.6.4 提高數據傳輸可靠性的措施512 第10章 供電電源的配置與抗干擾設計 10.1 電源干擾問題概述513 10.1.1 電源干擾的類型513 10.1.2 電源干擾的耦合途徑514 10.1.3 電源的共模和差模干擾515 10.1.4 電源抗干擾的基本方法516 10.2 EMI電源濾波器517 10.2.1 實用低通電容濾波器518 10.2.2 雙繞組扼流圈的應用518 10.3 EMI濾波器模塊519 10.3.1 濾波器模塊基礎知識519 10.3.2 電源濾波器模塊521 10.3.3 防雷濾波器模塊531 10.3.4 脈沖群抑制模塊532 10.4 瞬變干擾吸收器件532 10.4.1 金屬氧化物壓敏電阻(MOV)533 10.4.2 瞬變電壓抑制器(TVS)537 10.5 電源變壓器的屏蔽與隔離552 10.6 交流電源的供電抗干擾方案553 10.6.1 交流電源配電方式553 10.6.2 交流電源抗干擾綜合方案555 10.7 供電直流側抑制干擾措施555 10.7.1 整流電路的高頻濾波555 10.7.2 串聯型直流穩壓電源配置與抗干擾556 10.7.3 集成穩壓器使用中的保護557 10.8 開關電源干擾的抑制措施559 10.8.1 開關噪聲的分類559 10.8.2 開關電源噪聲的抑制措施560 10.9 微機用不間斷電源UPS561 10.10 采用晶閘管無觸點開關消除瞬態干擾設計方案564 第11章 印制電路板的抗干擾設計 11.1 印制電路板用覆銅板566 11.1.1 覆銅板材料566 11.1.2 覆銅板分類568 11.1.3 覆銅板的標準與電性能571 11.1.4 覆銅板的主要特點和應用583 11.2 印制板布線設計基礎585 11.2.1 印制板導線的阻抗計算585 11.2.2 PCB布線結構和特性阻抗計算587 11.2.3 信號在印制板上的傳播速度589 11.3 地線和電源線的布線設計590 11.3.1 降低接地阻抗的設計590 11.3.2 減小電源線阻抗的方法591 11.4 信號線的布線原則592 11.4.1 信號傳輸線的尺寸控制592 11.4.2 線間串擾控制592 11.4.3 輻射干擾的抑制593 11.4.4 反射干擾的抑制594 11.4.5 微機自動布線注意問題594 11.5 配置去耦電容的方法594 11.5.1 電源去耦595 11.5.2 集成芯片去耦595 11.6 芯片的選用與器件布局596 11.6.1 芯片選用指南596 11.6.2 器件的布局597 11.6.3 時鐘電路的布置598 11.7 多層印制電路板599 11.7.1 多層印制板的結構與特點599 11.7.2 多層印制板的布局方案600 11.7.3 20H原則605 11.8 印制電路板的安裝和板間配線606 第12章 軟件抗干擾原理與方法 12.1 概述607 12.1.1 測控系統軟件的基本要求607 12.1.2 軟件抗干擾一般方法607 12.2 指令冗余技術608 12.2.1 NOP的使用609 12.2.2 重要指令冗余609 12.3 軟件陷阱技術609 12.3.1 軟件陷阱609 12.3.2 軟件陷阱的安排610 12.4 故障自動恢復處理程序613 12.4.1 上電標志設定614 12.4.2 RAM中數據冗余保護與糾錯616 12.4.3 軟件復位與中斷激活標志617 12.4.4 程序失控后恢復運行的方法618 12.5 數字濾波619 12.5.1 程序判斷濾波法620 12.5.2 中位值濾波法620 12.5.3 算術平均濾波法621 12.5.4 遞推平均濾波法623 12.5.5 防脈沖干擾平均值濾波法624 12.5.6 一階滯后濾波法626 12.6 干擾避開法627 12.7 開關量輸入/輸出軟件抗干擾設計629 12.7.1 開關量輸入軟件抗干擾措施629 12.7.2 開關量輸出軟件抗干擾措施629 12.8 編寫軟件的其他注意事項630 附錄 電磁兼容器件選購信息632
上傳時間: 2013-10-20
上傳用戶:xdqm
本書介紹Linux環境下的編程方法,內容包括Linux系統命令、 Shell腳本、編程語言(gawk、Perl)、系統內核、安全體系、X Window等,內容豐富、論述全面,涵蓋了Linux系統的方方面面。本書附帶光盤包括了RedHat Linux系統的最新版本,及安裝方法,還包括本書的大量程序代碼,極大地方便了讀者,為使用和將要使用Linux系統的技術人員提供了較全面的參考。 目 錄前言第一篇 Linux系統介紹第1章 Linux簡介 …11.1 Linux 的起源 11.2 自由軟件基金會的GNU計劃 11.3 Linux 的發音 21.4 Linux 的特點 21.5 基本硬件要求 31.6 如何獲得Linux 31.6.1 從網上下載Linux 31.6.2 從光盤獲得Linux 31.7 涉及Linux 的Web 網址和新聞討論組 61.8 Linux 的不足之處 7第2章 外殼及常用命令 82.1 登錄和退出 82.2 Linux 系統的外殼 82.3 外殼的常用命令 92.3.1 更改帳號密碼 92.3.2 聯機幫助 92.3.3 遠程登錄 92.3.4 文件或目錄處理 92.3.5 改變工作目錄 102.3.6 復制文件 102.3.7 移動或更改文件、目錄名稱 102.3.8 建立新目錄 102.3.9 刪除目錄 112.3.10 刪除文件 112.3.11 列出當前所在的目錄位置 112.3.12 查看文件內容 112.3.13 分頁查看文件內容 112.3.14 查看目錄所占磁盤容量 112.3.15 文件傳輸 112.3.16 文件權限的設定 122.3.17 檢查自己所屬的工作組名稱 132.3.18 改變文件或目錄工作組所有權 132.3.19 改變文件或目錄的最后修改時間 132.3.20 文件的鏈接 132.3.21 文件中字符串的查尋 142.3.22 查尋文件或命令的路徑 142.3.23 比較文件或目錄的內容 142.3.24 文件打印輸出 142.3.25 一般文件的打印 142.3.26 troff 文件的打印 142.3.27 打印機控制命令 142.3.28 進程控制 152.3.29 外殼變量 162.3.30 環境變量 162.3.31 別名 162.3.32 歷史命令 172.3.33 文件的壓縮 172.3.34 管道命令的使用 172.3.35 輸入/輸出控制 182.3.36 查看系統中的用戶 182.3.37 改變用戶名 182.3.38 查看用戶名 182.3.39 查看當前系統上所有工作站 的用戶 192.3.40 與某工作站上的用戶交談 192.3.41 檢查遠程系統是否正常 192.3.42 電子郵件的使用簡介 19第3章 Linux系統的網絡功能 213.1 Linux支持的網絡協議 213.1.1 TCP/IP 213.1.2 TCP/IP 版本 6 213.1.3 IPX/SPX 213.1.4 AppleTalk 協議集 213.1.5 廣域網 223.1.6 ISDN 223.1.7 PPP、SLIP及PLIP 223.1.8 業余無線電 223.1.9 ATM 223.2 Linux系統下的文件共享和打印共享 223.2.1 Machintosh 環境 223.2.2 Windows 環境 223.2.3 Novell 環境 233.2.4 UNIX 環境 233.3 Linux系統中的Internet/Intranet功能 233.3.1 郵件 233.3.2 Web 服務器 243.3.3 Web 瀏覽器 243.3.4 FTP 服務器和客戶機 243.3.5 新聞服務 243.3.6 域名系統 243.3.7 DHCP和 bootp 243.3.8 NIS 243.4 Linux系統下應用程序的遠程執行 243.4.1 Telnet 253.4.2 遠程命令 253.4.3 X Window 253.5 Linux系統的網絡互連功能 253.5.1 路由器 253.5.2 網橋 253.5.3 IP偽裝 253.5.4 IP統計 263.5.5 IP 別名 263.5.6 流量限制器 263.5.7 防火墻 263.5.8 端口下傳 263.5.9 負載平衡 263.5.10 EQL 273.5.11 代理服務器 273.5.12 按需撥號 273.5.13 管道、移動IP和虛擬個人網絡 273.6 Linux系統中的網絡管理 273.6.1 Linux系統下的網絡管理應用程序 273.6.2 SNMP 283.7 企業級Linux網絡 283.7.1 高可用性 283.7.2 RAID 283.7.3 冗余網絡 28第4章 Linux系統管理簡介 294.1 root 帳號 294.2 啟動和關閉系統 294.2.1 從軟盤啟動 294.2.2 使用LILO 啟動 294.2.3 關閉Linux系統 304.3 掛接文件系統 304.3.1 掛接軟盤 304.3.2 創建新的文件系統 304.3.3 卸載文件系統 314.4 檢查文件系統 314.5 使用文件作為交換區 314.6 系統和文件的備份 324.7 設置系統 334.7.1 設置系統名 334.7.2 使用維護磁盤 334.7.3 重新設置root 帳號口令 334.7.4 設置登錄信息 33第二篇 Linux高級語言及管理編程第5章 外殼編程 355.1 創建和運行外殼程序 355.1.1 創建外殼程序 355.1.2 運行外殼程序 355.2 使用外殼變量 365.2.1 給變量賦值 365.2.2 讀取變量的值 375.2.3 位置變量和其他系統變量 375.2.4 引號的作用 375.3 數值運算命令 385.4 條件表達式 405.4.1 if 表達式 405.4.2 case 表達式 415.5 循環語句 425.5.1 for 語句 435.5.2 while 語句 435.5.3 until 語句 445.6 shift 命令 445.7 select 語句 455.8 repeat 語句 465.9 子函數 46第6章 gawk語言編程 486.1 gawk的主要功能 486.2 如何執行gawk程序 486.3 文件、記錄和字段 486.4 模式和動作 496.5 比較運算和數值運算 506.6 內部函數 506.6.1 隨機數和數學函數 516.6.2 字符串的內部函數 516.6.3 輸入輸出的內部函數 526.7 字符串和數字 526.8 格式化輸出 526.9 改變字段分隔符 546.10 元字符 546.11 調用gawk程序 556.12 BEGIN和END 556.13 變量 566.14 內置變量 566.15 控制結構 576.15.1 if 表達式 576.15.2 while 循環 576.15.3 for 循環 586.15.4 next 和 exit 586.16 數組 586.17 用戶自定義函數 586.18 幾個實例 59第7章 Perl語言編程 607.1 什么是Perl 607.2 Perl的現狀 607.3 初試Perl 607.4 Perl變量 607.4.1 標量 607.4.2 數組 637.4.3 相關數組 657.5 文件句柄和文件操作 657.6 循環結構 667.6.1 foreach循環 667.6.2 判斷運算 667.6.3 for循環 677.6.4 while 和 until循環 677.7 條件結構 677.8 字符匹配 687.9 替換和翻譯 697.9.1 替換 697.9.2 翻譯 707.10 子過程 707.10.1 子過程的定義 707.10.2 參數 707.10.3 返回值 707.11 Perl程序的完整例子 71第三篇 Linux系統內核分析第8章 Linux內核簡介 738.1 系統初始化 738.2 系統運行 738.3 內核提供的各種系統調用 748.3.1 進程的基本概念和系統 的基本數據結構 748.3.2 創建和撤消進程 748.3.3 執行程序 748.4 存取文件系統 75第9章 系統進程 769.1 什么是進程 769.2 進程的結構 769.3 進程調度 789.4 進程使用的文件 799.5 進程使用的虛擬內存 809.6 創建進程 819.7 進程的時間和計時器 819.7.1 實時時鐘 819.7.2 虛擬時鐘 819.7.3 形象時鐘 819.8 程序的執行 829.8.1 ELF文件 829.8.2 腳本文件 82第10章 內存管理 8310.1 內存管理的作用 8310.2 虛擬內存的抽象模型 8310.3 按需裝入頁面 8410.4 交換 8510.5 共享虛擬內存 8510.6 存取控制 8510.7 高速緩存 8610.7.1 緩沖區高速緩存 8610.7.2 頁面高速緩存 8610.7.3 交換高速緩存 8610.7.4 硬件高速緩存 8610.8 系統頁面表 8610.9 頁面的分配和釋放 8710.9.1 頁面的分配 8810.9.2 頁面的釋放 8810.10 內存映射 8810.11 請求調頁 8910.12 頁面高速緩存 8910.13 內核交換守護進程 90第11章 進程間通信 9111.1 信號機制 9111.2 管道機制 9211.3 System V IPC 機制 9311.3.1 信息隊列 9311.3.2 信號量 9411.3.3 共享內存 96第12章 PCI 9812.1 PCI 系統 9812.2 PCI地址空間 9812.3 PCI設置頭 9912.4 PCI I/O 和 PCI 內存地址 10012.5 PCI-ISA橋 10012.6 PCI-PCI 橋 10012.7 PCI初始化 10112.7.1 Linux系統內核有關PCI的 數據結構 10112.7.2 PCI 設備驅動程序 10212.7.3 PCI BIOS 函數 10512.7.4 PCI Fixup 105第13章 中斷和中斷處理 10613.1 中斷 10613.2 可編程中斷控制器 10613.3 初始化中斷處理的數據結構 10713.4 中斷處理 108第14章 設備驅動程序 10914.1 硬件設備的管理 10914.2 輪詢和中斷 11014.3 直接內存存取 11014.4 內存 11114.5 設備驅動程序和內核之間的接口 11114.5.1 字符設備 11214.5.2 塊設備 11314.6 硬盤 11314.6.1 IDE 硬盤 11514.6.2 初始化IDE 硬盤子系統 11514.6.3 SCSI 硬盤 11514.6.4 初始化 SCSI 磁盤子系統 11614.6.5 傳遞塊設備請求 11814.7 網絡設備 11814.7.1 網絡設備文件名 11814.7.2 總線信息 11814.7.3 網絡接口標記 11914.7.4 協議信息 11914.7.5 初始化網絡設備 119第15章 文件系統 12115.1 Linux文件系統概述 12115.2 ext2文件系統 12215.2.1 ext2的索引節點 12215.2.2 ext2超級塊 12415.2.3 ext2 數據塊組描述符 12415.2.4 ext2 中的目錄 12515.2.5 在ext2 文件系統中查找文件 12515.2.6 改變ext2 文件系統中文件 的大小 12615.3 VFS 12715.3.1 VFS 超級塊 12815.3.2 VFS 索引節點 12915.3.3 登記文件系統 12915.3.4 掛接文件系統 13015.3.5 在VFS中查找文件 13115.3.6 撤消文件系統 13115.3.7 VFS 索引節點緩存 13215.3.8 VFS目錄緩存 13215.4 緩沖區緩存 13315.5 /proc 文件系統 135第16章 網絡系統 13616.1 TCP/IP 網絡簡介 13616.2 TCP/IP網絡的分層 13716.3 BSD 套接口 13816.4 INET套接口層 14016.4.1 創建BSD 套接口 14116.4.2 給INET BSD 套接口指定地址 14116.4.3 在INET BSD套接口上創建連接 14216.4.4 監聽INET BSD 套接口 14216.4.5 接收連接請求 14316.5 IP 層 14316.5.1 套接口緩沖區 14316.5.2 接收IP數據包 14416.5.3 發送IP數據包 14416.5.4 數據碎片 14416.6 地址解析協議 145第17章 系統內核機制 14717.1 Bottom Half處理 14717.2 任務隊列 14817.3 計時器 14917.4 等待隊列 14917.5 信號量 150第四篇 Linux系統高級編程第18章 Linux內核模塊編程 15118.1 一個簡單程序Hello World 15118.2 設備文件 15218.3 /proc文件系統 15618.4 使用/proc輸入 15818.5 與設備文件通信 16218.6 啟動參數 16918.7 系統調用 17018.8 阻塞進程 17218.9 替換printk 17718.10 調度任務 178第19章 有關進程通信的編程 18119.1 進程間通信簡介 18119.2 半雙工UNIX管道 18119.2.1 基本概念 18119.2.2 使用C語言創建管道 18219.2.3 創建管道的簡單方法 18519.2.4 使用管道的自動操作 18719.2.5 使用半雙工管道時的注意事項 18819.3 命名管道 18819.3.1 基本概念 18819.3.2 創建FIFO 18819.3.3 FIFO操作 18919.3.4 FIFO的阻塞 19019.3.5 SIGPIPE信號 19019.4 System V IPC 19019.4.1 基本概念 19019.4.2 消息隊列基本概念 19119.4.3 系統調用msgget() 19419.4.4 系統調用msgsnd() 19519.4.5 系統調用msgctl() 19719.4.6 一個msgtool的實例 19919.5 使用信號量編程 20119.5.1 基本概念 20119.5.2 系統調用semget() 20219.5.3 系統調用semop() 20319.5.4 系統調用semctl() 20419.5.5 使用信號量集的實例:semtool 20519.6 共享內存 20919.6.1 基本概念 20919.6.2 系統內部用戶數據結構 shmid_ds 20919.6.3 系統調用shmget() 21019.6.4 系統調用shmat() 21119.6.5 系統調用shmctl() 21119.6.6 系統調用shmdt() 21219.6.7 使用共享內存的實例:shmtool 212第20章 高級線程編程 21520.1 線程的概念和用途 21520.2 一個簡單的例子 21520.3 線程同步 21720.4 使用信號量協調程序 21820.5 信號量的實現 22020.5.1 Semaphore.h 22020.5.2 Semaphore.c 221第21章 Linux系統網絡編程 22521.1 什么是套接口 22521.2 兩種類型的Internet套接口 22521.3 網絡協議分層 22521.4 數據結構 22521.5 IP地址和如何使用IP地址 22621.5.1 socket() 22621.5.2 bind() 22621.5.3 connect() 22721.5.4 listen() 22821.5.5 accept() 22821.5.6 send() 和 recv() 22921.5.7 sendto() 和 recvfrom() 23021.5.8 close() 和 shutdown() 23021.5.9 getpeername() 23121.5.10 gethostname() 23121.6 DNS 23121.7 客戶機/服務器模式 23221.8 簡單的數據流服務器程序 23221.9 簡單的數據流客戶機程序 23421.10 數據報套接口 23521.11 阻塞 237第22章 Linux I/O端口編程 24022.1 如何在 C 語言下使用I/O端口 24022.1.1 一般的方法 24022.1.2 另一個替代方法: /dev/port 24122.2 硬件中斷 與 DMA 存取 24122.3 高精確的時間 24122.3.1 延遲時間 24122.3.2 時間的量測 24322.4 使用其他程序語言 24322.5 一些有用的 I/O 端口 24322.5.1 并行端口 24322.5.2 游戲端口 24422.5.3 串行端口 245第五篇 Linux系統安全分析第23章 系統管理員安全 24723.1 安全管理 24723.2 超級用戶 24723.3 文件系統安全 24723.3.1 Linux文件系統概述 24723.3.2 設備文件 24823.3.3 /etc/mknod命令 24923.3.4 安全考慮 24923.3.5 find命令 25023.3.6 secure程序 25023.3.7 ncheck命令 25023.3.8 安裝和拆卸文件系統 25023.3.9 系統目錄和文件 25123.4 作為root運行的程序 25123.4.1 啟動系統 25123.4.2 init進程 25123.4.3 進入多用戶 25223.4.4 shutdown命令 25223.4.5 系統V的cron程序 25223.4.6 系統V版本2之后的cron程序 25223.4.7 /etc/profile 25323.5 /etc/passwd文件 25323.5.1 口令時效 25323.5.2 UID和GID 25423.6 /etc/group文件 25423.7 增加、刪除和移走用戶 25423.7.1 增加用戶 25423.7.2 刪除用戶 25523.7.3 將用戶移到另一個系統 25523.8 安全檢查 25523.8.1 記帳 25523.8.2 其他檢查命令 25623.8.3 安全檢查程序的問題 25623.8.4 系統泄密后怎么辦 25723.9 加限制的環境 25823.9.1 加限制的外殼 25823.9.2 用chroot()限制用戶 25823.10 小系統安全 25923.11 物理安全 25923.12 用戶意識 26023.13 系統管理員意識 26123.13.1 保持系統管理員個人的 登錄安全 26123.13.2 保持系統安全 261第24章 系統程序員安全 26324.1 系統子程序 26324.1.1 I/O子程序 26324.1.2 進程控制 26324.1.3 文件屬性 26424.1.4 UID和GID的處理 26524.2 標準C程序庫 26524.2.1 標準I/O 26524.2.2 /etc/passwd的處理 26624.2.3 /etc/group的處理 26724.2.4 加密子程序 26824.2.5 運行外殼 26824.3 編寫安全的C程序 26824.3.1 需要考慮的安全問題 26824.3.2 SUID/SGID程序指導準則 26924.3.3 編譯、安裝SUID/SGID程序 的方法 26924.4 root用戶程序的設計 270第25章 Linux系統的網絡安全 27225.1 UUCP系統概述 27225.1.1 UUCP命令 27225.1.2 uux命令 27225.1.3 uucico程序 27325.1.4 uuxqt程序 27325.2 UUCP的安全問題 27325.2.1 USERFILE文件 27325.2.2 L.cmds文件 27425.2.3 uucp登錄 27425.2.4 uucp使用的文件和目錄 27425.3 HONEYDANBER UUCP 27525.3.1 HONEYDANBER UUCP與 老UUCP的差別 27525.3.2 登錄名規則 27625.3.3 MACHINE規則 27725.3.4 組合MACHINE和LOGNAME 規則 27825.3.5 uucheck命令 27825.3.6 網關 27825.3.7 登錄文件檢查 27925.4 其他網絡 27925.4.1 遠程作業登錄 27925.4.2 NSC網絡系統 28025.5 通信安全 28025.5.1 物理安全 28025.5.2 加密 28125.5.3 用戶身份鑒別 28225.6 SUN OS系統的網絡安全 28325.6.1 確保NFS的安全 28325.6.2 NFS安全性方面的缺陷 28425.6.3 遠程過程調用鑒別 28425.6.4 Linux鑒別機制 28425.6.5 DES鑒別系統 28525.6.6 公共關鍵字的編碼 28625.6.7 網絡實體的命名 28625.6.8 DES鑒別系統的應用 28725.6.9 遺留的安全問題 28725.6.10 性能 28825.6.11 啟動和setuid程序引起的問題 28825.6.12 小結 289第26章 Linux系統的用戶安全性 29026.1 口令安全 29026.2 文件許可權 29026.3 目錄許可 29126.4 umask命令 29126.5 設置用戶ID和同組用戶ID許可 29126.6 cp mv ln和cpio命令 29126.7 su和newgrp命令 29226.7.1 su命令 29226.7.2 newgrp命令 29226.8 文件加密 29226.9 其他安全問題 29326.9.1 用戶的.profile文件 29326.9.2 ls -a 29326.9.3 .exrc文件 29326.9.4 暫存文件和目錄 29326.9.5 UUCP和其他網絡 29326.9.6 特洛伊木馬 29426.9.7 誘騙 29426.9.8 計算機病毒 29426.9.9 要離開自己已登錄的終端 29426.9.10 智能終端 29426.9.11 斷開與系統的連接 29426.9.12 cu命令 29526.10 保持帳戶安全的要點 295第六篇 X window系統的內部結構和使用第27章 X Window系統的基本知識 29727.1 X Window系統介紹 29727.1.1 X的特點 29727.1.2 什么是窗口系統 29827.1.3 X發展的歷史 29927.1.4 X的產品 29927.1.5 MIT發行的X 29927.2 X的基本結構 30227.2.1 X 的基本元素 30327.2.2 服務程序和客戶程序如何 交互通信 30427.2.3 X 的網絡概況 30627.3 從用戶界面的角度概觀X 30727.3.1 管理界面:窗口管理器 30727.3.2 應用程序界面和工具箱 30927.3.3 其他系統角度 30927.4 術語和符號 31027.4.1 術語 31027.4.2 符號 31127.5 啟動和關閉X 31227.5.1 啟動X 31227.5.2 執行X程序的方式 31327.5.3 關閉X 31427.6 窗口管理器基礎—uwm 31527.6.1 什么是窗口管理器 31527.6.2 啟動uwm 31527.6.3 基本窗口操作 —uwm 的菜單 31527.6.4 移動窗口 31627.6.5 重定窗口大小 31627.6.6 建立新窗口 31627.6.7 管理屏幕空間 31827.6.8 中止應用程序窗口 32027.6.9 激活uwm菜單的其他方式 32027.7 使用 x的網絡設備 32027.7.1 指定遠程終端機—display 選項 32127.7.2 實際使用遠程的顯示器 32227.7.3 控制存取顯示器—xhost 32227.8 終端機模擬器—詳細介紹xterm 32327.8.1 選擇xterm功能—菜單與 命令行選項 32327.8.2 滾動xterm屏幕 32427.8.3 記錄與終端機的交互過程—寫 記錄 32527.8.4 剪貼文本 32527.8.5 使用Tektronix模擬功能 32627.8.6 使用不同的字體 32727.8.7 使用顏色 32727.8.8 其他xterm選項 32727.8.9 設定終端機鍵盤 328第28章 實用程序和工具 32928.1 實用程序 32928.2 保存、顯示和打印屏幕圖像 33028.3 使用X的應用程序 33228.3.1 文字編輯器—Xedit 33328.3.2 郵件/信息處理系統—xmh 33628.4 示例和游戲程序 33628.4.1 找出通過隨機迷宮的 路徑—maze 33628.4.2 擔任鼠標指針的大眼睛— xeyes 33628.4.3 智慧盤游戲—puzzle 33728.4.4 打印一個大X標志—xlogo 33728.4.5 跳動的多面體—ico 33728.4.6 動態幾何圖案—muncher與 plaid 33728.7 顯示信息和狀態的程序 33728.7.1 列出X服務程序的特征— xdpyinfo 33828.7.2 獲取有關窗口的信息 33828.7.3 觀察X的事件—xev 340第29章 定制X Window系統 34129.1 使用X的字體和顏色 34129.1.1 字體初步 34129.1.2 字體命名 34229.1.3 觀察特定字體的內容—xfd 34329.1.4 保存字體和位置 34329.1.5 例子:在你的服務程序中 增加新字體 34529.1.6 使用X的顏色 34629.2 定義和使用圖形 34729.2.1 系統圖形程序庫 34729.2.2 交互編輯圖形—bitmap 34729.2.3 編輯圖形的其他方法 34929.2.4 定制根窗口—xsetroot 34929.3 定義應用程序的缺省選項— Resources 35029.3.1 什么是資源 35029.3.2 XToolkit 35129.3.3 管理資源—資源管理器 35329.3.4 資源的類型—如何指定值 35829.4 實際使用資源 35929.4.1 在何處保存資源的缺省值 35929.4.2 在服務程序上保存缺省值— xrdb 36329.4.3 常見的錯誤和修正 36629.5 定制鍵盤和鼠標 36729.5.1 實際使用轉換 36829.5.2 轉換—格式和規則 37429.5.3 轉換規范中常見的問題 37729.6 鍵盤和鼠標—對應和參數 37929.6.1 鍵盤和鼠標映射—xmodmap 37929.6.2 鍵盤和鼠標參數設定—xset 38229.7 進一步介紹和定制uwm 38429.7.1 uwm的新特征 38429.7.2 定制uwm 38629.8 顯示器管理器—xdm 39029.8.1 需要做些什么 39029.8.2 xdm 39129.8.3 xdm的更多信息 39229.8.4 uwm配置 395附錄A Gcc使用介紹 396附錄B 安裝X Window窗口系統 410
上傳時間: 2013-11-10
上傳用戶:changeboy
LPC1700系列Cortex-M3微控制器用于處理要求高度集成和低功耗的嵌入式應用。ARM Cortex-M3是下一代新生內核,它可提供系統增強型特性,例如現代化調試特性和支持更高級別的塊集成。LPC1700系列Cortex-M3微控制器的操作頻率可達100MHz。ARM Cortex-M3 CPU具有3級流水線和哈佛結構,帶獨立的本地指令和數據總線以及用于外設的稍微低性能的第三條總線。ARM Cortex-M3 CPU還包含一個支持隨機跳轉的內部預取指單元。LPC1700系列Cortex-M3微控制器的外設組件包含高達512KB的Flash存儲器、64KB的數據存儲器、以太網MAC、USB主機/從機/OTG接口、8通道的通用DMA控制器、4個UART、2條CAN通道、2個SSP控制器、SPI接口、3個I2C接口、2-輸入和2-輸出的I2S接口、8通道的12位ADC、10位DAC、電機控制PWM、正交編碼器接口、4個通用定時器、6-輸出的通用PWM、帶獨立電池供電的超低功耗RTC和多達70個的通用I/O管腳
上傳時間: 2013-10-16
上傳用戶:icarus
影響無線通訊可靠性和距離的幾個因素無線通信距離的主要性能指標有四個:一是發射機的射頻輸出功率;二是接收機的接收靈敏度;三是系統的抗干擾能力;四是發射/接收天線的類型及增益。而在這四個主要指標中,各國電磁兼容性標準(如北美的FCC、歐洲的EN 規范)均只限制發射功率,只要對接收靈敏度及系統的抗干擾能力兩項指標進行優化,即可在符合FCC或CE 標準的前提下擴大系統的通信距離。一影響無線通信距離的因素1、地理環境通信距離最遠的是海平面及陸地無障礙的平直開闊地, 這也是通常用來評估無線通信設備的通信距離時使用的地理條件。其次是郊區農村、丘陵、河床等半障礙、半開闊環境,通信距離最近的是城市樓群中或群山中,總之,障礙物越密集,對無線通信距離的影響就越大,特別是金屬物體的影響最大。一些常見的環境對無線信號的損耗見下表根據路徑損耗公式:Ld=32.4+20logf +20logd f=MHZ d=Km 可知信號每損耗6dB,通訊距離就會減少一半!另一個因素就是多路徑影響, 所以如果無線模塊附近的障礙物較多時也會影響通訊的距離和可靠性。2、電磁環境直流電機、高壓電網、開關電源、電焊機、高頻電子設備、電腦、單片機等設備對無線通信設備的通信距離均有不同程度的影響。3、氣侯條件空氣干燥時通信距離較遠,空氣潮濕(特別是雨、雪天氣)通信距離較近,在產品容許的環境工作溫度范圍內,溫度升高會導致發射功率減小及接收靈敏度降低,從而減小了通信距離。
上傳時間: 2013-11-13
上傳用戶:bvdragon
用途:測量地磁方向,測量物體靜止時候的方向,測量傳感器周圍磁力線的方向。注意,測量地磁時候容易受到周圍磁場影響,主芯片HMC5883 三軸磁阻傳感器特點(抄自網上): 1,數字量輸出:I2C 數字量輸出接口,設計使用非常方便。 2,尺寸小: 3x3x0.9mm LCC 封裝,適合大規模量產使用。 3,精度高:1-2 度,內置12 位A/D,OFFSET, SET/RESET 電路,不會出現磁飽和現象,不會有累加誤差。 4,支持自動校準程序,簡化使用步驟,終端產品使用非常方便。 5,內置自測試電路,方便量產測試,無需增加額外昂貴的測試設備。 6,功耗低:供電電壓1.8V, 功耗睡眠模式-2.5uA 測量模式-0.6mA 連接方法: 只要連接VCC,GND,SDA,SDL 四條線。 Arduino GND -> HMC5883L GND Arduino 3.3V -> HMC5883L VCC Arduino A4 (SDA) -> HMC5883L SDA Arduino A5 (SCL) -> HMC5883L SCL (注意,接線是A4,A5,不是D4,D5) 源程序: #include <Wire.h> #include <HMC5883L.h> HMC5883Lcompass; voidsetup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } voidloop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(","); Serial.print(yDegrees); Serial.print(","); Serial.print(zDegrees); Serial.println(";"); delay(100); }
上傳時間: 2013-12-16
上傳用戶:stella2015
三菱FX-PLC 的通訊協議參考(含有源碼):三菱FX 系列PLC 專用協議通信指令一覽FX 系列PLC 專用協議通信指令一覽以下將詳細列出PLC 專用協議通信的指令指令 注釋BR 以1 點為單位,讀出位元件的狀態WR 以16 點為單位,讀出位元件的狀態,或以1 字為單位讀出字元件的值BW 以1 點為單位,寫入位元件的狀態WW 以16 點為單位,寫入位元件的狀態或以1 字為單位寫入值到字元件BT 以1 點為單位,SET/RESET 位元件WT 以16 點為單位,SET/RESET 位元件,或寫入值到字元件RR 控制PLC 運行RUNRS 控制PLC 停止STOPPC 讀出PLC 設備類型TT 連接測試注:位元件包括X,Y,M,S 以及T,C 的線圈等字元件包括D,T,C,KnX,KnY,KnM 等。
上傳時間: 2015-01-02
上傳用戶:gdgzhym