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

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

電<b>連接器</b>

  • 磁芯電感器的諧波失真分析

    磁芯電感器的諧波失真分析 摘  要:簡述了改進(jìn)鐵氧體軟磁材料比損耗系數(shù)和磁滯常數(shù)ηB,從而降低總諧波失真THD的歷史過程,分析了諸多因數(shù)對諧波測量的影響,提出了磁心性能的調(diào)控方向。 關(guān)鍵詞:比損耗系數(shù), 磁滯常數(shù)ηB ,直流偏置特性DC-Bias,總諧波失真THD  Analysis on THD of the fer rite co res u se d i n i nductancShi Yan Nanjing Finemag Technology Co. Ltd., Nanjing 210033   Abstract:    Histrory of decreasing THD by improving the ratio loss coefficient and hysteresis constant of soft magnetic ferrite is briefly narrated. The effect of many factors which affect the harmonic wave testing is analysed. The way of improving the performance of ferrite cores is put forward.  Key words: ratio loss coefficient,hysteresis constant,DC-Bias,THD  近年來,變壓器生產(chǎn)廠家和軟磁鐵氧體生產(chǎn)廠家,在電感器和變壓器產(chǎn)品的總諧波失真指標(biāo)控制上,進(jìn)行了深入的探討和廣泛的合作,逐步弄清了一些似是而非的問題。從工藝技術(shù)上采取了不少有效措施,促進(jìn)了質(zhì)量問題的迅速解決。本文將就此熱門話題作一些粗淺探討。  一、 歷史回顧 總諧波失真(Total harmonic distortion) ,簡稱THD,并不是什么新的概念,早在幾十年前的載波通信技術(shù)中就已有嚴(yán)格要求<1>。1978年郵電部公布的標(biāo)準(zhǔn)YD/Z17-78“載波用鐵氧體罐形磁心”中,規(guī)定了高μQ材料制作的無中心柱配對罐形磁心詳細(xì)的測試電路和方法。如圖一電路所示,利用LC組成的150KHz低通濾波器在高電平輸入的情況下測量磁心產(chǎn)生的非線性失真。這種相對比較的實用方法,專用于無中心柱配對罐形磁心的諧波衰耗測試。 這種磁心主要用于載波電報、電話設(shè)備的遙測振蕩器和線路放大器系統(tǒng),其非線性失真有很嚴(yán)格的要求。  圖中  ZD   —— QF867 型阻容式載頻振蕩器,輸出阻抗 150Ω, Ld47 —— 47KHz 低通濾波器,阻抗 150Ω,阻帶衰耗大于61dB,       Lg88 ——并聯(lián)高低通濾波器,阻抗 150Ω,三次諧波衰耗大于61dB Ld88 ——并聯(lián)高低通濾波器,阻抗 150Ω,三次諧波衰耗大于61dB FD   —— 30~50KHz 放大器, 阻抗 150Ω, 增益不小于 43 dB,三次諧波衰耗b3(0)≥91 dB, DP  —— Qp373 選頻電平表,輸入高阻抗, L ——被測無心罐形磁心及線圈, C  ——聚苯乙烯薄膜電容器CMO-100V-707APF±0.5%,二只。 測量時,所配用線圈應(yīng)用絲包銅電磁線SQJ9×0.12(JB661-75)在直徑為16.1mm的線架上繞制 120 匝, (線架為一格) , 其空心電感值為 318μH(誤差1%) 被測磁心配對安裝好后,先調(diào)節(jié)振蕩器頻率為 36.6~40KHz,  使輸出電平值為+17.4 dB, 即選頻表在 22′端子測得的主波電平 (P2)為+17.4 dB,然后在33′端子處測得輸出的三次諧波電平(P3), 則三次諧波衰耗值為:b3(+2)= P2+S+ P3 式中:S 為放大器增益dB 從以往的資料引證, 就可以發(fā)現(xiàn)諧波失真的測量是一項很精細(xì)的工作,其中測量系統(tǒng)的高、低通濾波器,信號源和放大器本身的三次諧波衰耗控制很嚴(yán),阻抗必須匹配,薄膜電容器的非線性也有相應(yīng)要求。濾波器的電感全由不帶任何磁介質(zhì)的大空心線圈繞成,以保證本身的“潔凈” ,不至于造成對磁心分選的誤判。 為了滿足多路通信整機的小型化和穩(wěn)定性要求, 必須生產(chǎn)低損耗高穩(wěn)定磁心。上世紀(jì) 70 年代初,1409 所和四機部、郵電部各廠,從工藝上改變了推板空氣窯燒結(jié),出窯后經(jīng)真空罐冷卻的落后方式,改用真空爐,并控制燒結(jié)、冷卻氣氛。技術(shù)上采用共沉淀法攻關(guān)試制出了μQ乘積 60 萬和 100 萬的低損耗高穩(wěn)定材料,在此基礎(chǔ)上,還實現(xiàn)了高μ7000~10000材料的突破,從而大大縮短了與國外企業(yè)的技術(shù)差異。當(dāng)時正處于通信技術(shù)由FDM(頻率劃分調(diào)制)向PCM(脈沖編碼調(diào)制) 轉(zhuǎn)換時期, 日本人明石雅夫發(fā)表了μQ乘積125 萬為 0.8×10 ,100KHz)的超優(yōu)鐵氧體材料<3>,其磁滯系數(shù)降為優(yōu)鐵

    標(biāo)簽: 磁芯 電感器 諧波失真

    上傳時間: 2014-12-24

    上傳用戶:7891

  • 浩辰CAD 2012專業(yè)版下載

    附件附帶破解補丁 浩辰CAD 2012專業(yè)版破解方法: 按正常安裝浩辰CAD 2012專業(yè)版,點擊安裝KeyGen.exe。 浩辰CAD2012,以增強軟件實用性、易用性為主要目標(biāo),新增了大量實用功能,改進(jìn)了著色、消隱的正確性,提升了大幅面光柵圖像處理的性能,同時改進(jìn)了LISP\VBA二次開發(fā)接口的正確性和兼容性。 浩辰CAD 2012根據(jù)國內(nèi)外用戶的需求,增加了大量實用功能,例如動態(tài)塊、DWF文件插入、隔離隱藏對象、轉(zhuǎn)換EXCEL表格、塊屬性管理器、放樣、超級填充等。 浩辰cad2012新增功能: 1、動態(tài)塊(bedit)      動態(tài)塊具有靈活性和智能性。 用戶在操作時可以輕松地更改圖形中的動態(tài)塊參照。 可以通過自定義夾點或自定義特性來操作動態(tài)塊參照中的幾何圖形。   a)通過設(shè)置圖塊中元素的可見性,一個圖塊中可以包含一種圖形的多種形態(tài),如下圖的汽車模塊就包含跑車、轎車和卡車的各向視圖,只需在可見性列表中選擇一個選項,就可以顯示相應(yīng)的圖形。   還可對圖塊中的圖形設(shè)置參數(shù)和動作,可對圖塊的整體或部分圖形進(jìn)行移動、旋轉(zhuǎn)、翻轉(zhuǎn)、縮放、陣列等;并可建立查詢列表,對圖塊進(jìn)行參數(shù)化控制。通過圖塊的動作設(shè)置,一個圖塊可以派生出數(shù)個圖塊,如下圖所示:   2、DWF參考底圖(dwfattach)      可以將dwf文件插入到當(dāng)前圖中作為參考底圖,并可以捕捉到底圖的端點、中點,如下圖所示:   3、對象隔離、對象隱藏、取消對象隔離      可將選擇的對象暫時隱藏,也可將選擇對象以外的其他所有對象隱藏。當(dāng)圖中對象較多,利用此命令可以簡化圖紙,方便后續(xù)操作,操作起來比圖層隔離更加簡便、直觀。   4、凍結(jié)其它圖層和鎖定其它圖層      浩辰CAD 之前版本提供了圖層隔離的功能,凍結(jié)其他圖層和鎖定其它圖層與圖層隔離功能類似,可以通過選擇需要顯示或可編輯對象,將其他圖層進(jìn)行凍結(jié)和鎖定。      5、CAD表格轉(zhuǎn)EXCEL表格      可以直接選擇CAD中由直線、多段線和單行文字、多行文字組成的表格輸出為EXCEL表格。   6、文字遞增      可以對序號、編號、數(shù)值進(jìn)行遞增復(fù)制,間距、數(shù)量和增量均可隨心所欲地控制。   7、多段線布爾運算      可直接對封閉的多段線進(jìn)行差并交計算,無需轉(zhuǎn)換面域,有時比修剪更簡便。   8、拼寫檢查(spell)      此功能實現(xiàn)對用戶輸入的單詞或文章進(jìn)行單詞校驗,提示匹配的單詞列表,方便用戶進(jìn)行正確的單詞填寫工作。可以實現(xiàn)不同語言的單詞校驗工作,包括英文,德文,等8種語言。      可以對全部實體(包括布局,模型中的所有實體)進(jìn)行校驗。      可以分別對布局或模型中的實體進(jìn)行校驗。      可以單獨對一個實體或一個選擇集進(jìn)行校驗。      方便用戶自定義詞典。      兼容的自定義詞典。      支持文字,塊內(nèi)文字,塊屬性,屬性,標(biāo)注的校驗。      9、放樣(Loft)      通過對包含兩條或者兩條以上的橫截面曲線的一組曲線進(jìn)行放樣(繪制實體或曲面)來創(chuàng)建三維實體或曲面。   10、塊屬性管理器(battman)      創(chuàng)建帶屬性的塊后,執(zhí)行 battman 對塊中屬性定義進(jìn)行查詢和修改,如果將修改應(yīng)用到所有塊參照,則對應(yīng)塊的塊參照中屬性實體也會做對應(yīng)修改。   11、超級填充(superhatch)      超級填充命令有點像hatch命令,不同的是,可以使用該命令將光柵圖像、塊、外部參照和擦除這些實體作為填充實體對閉合區(qū)域進(jìn)行填充。   12、線上寫字      可以在選擇線上書寫文字,線會被自動打斷,文字會放到線中間。 ◆ 重要功能改進(jìn)      1、超鏈接      浩辰CAD 2012版的超鏈接不僅修改了以前存在的一些錯誤,而且提供了更為豐富的功能。   a)支持web鏈接的瀏覽和連接的設(shè)置。      b)支持打開操作系統(tǒng)可打開的所有文件。      c)支持dwg圖紙的視圖定位。      d)支持超鏈接的復(fù)制粘貼。      e)可以通過鼠標(biāo)光標(biāo)狀態(tài)來判斷是否存在鏈接,方便用戶判斷是否存在鏈接。      f)可以通過ctrl+鼠標(biāo)點擊打開設(shè)置的文件,方便用戶的操作。      g)可以通過右鍵打開塊內(nèi)實體的鏈接。      2、光柵圖像      浩辰CAD 2012版不僅增加了圖像格式的支持,同時提升了大分辨率光柵圖像的插入、顯示和打印的效果和速度。   a) 增加了對多種圖像格式的支持,諸如:CALS-1(*.cal,*.mil,*.rst,*.cg4)、RLC、GEOSPORT(.bil)、PICT(.pct/.pict)、IG4、Autodesk Animator(.fil/.flc)。      b) 內(nèi)存使用問題,可以插入多張圖片,內(nèi)存不會增加。      c) 光柵圖像打印問題(不清晰)。      d) 插入大圖像時,預(yù)覽速度大幅提升。      3、二次開發(fā)改進(jìn)      浩辰CAD 2012版針對二次開發(fā)商和用戶提出的一些LISP及VBA與AutoCAD存在的兼容性問題進(jìn)行了系統(tǒng)梳理,兼容性有明顯提升,此外還針對國外二次開發(fā)商的需求開發(fā)了Lisp調(diào)試器。      a) Lisp改進(jìn)      處理了線程問題、命令范圍值問題、VLX解析問題,對Lisp程序執(zhí)行速度進(jìn)行了優(yōu)化。      b) VBA改進(jìn)      處理了VBA的文檔管理、接口不全、接口錯誤、類派生關(guān)系錯誤問題。      c) Lisp調(diào)試器      用戶在使用浩辰CAD時,由于LISP與AutoCAD不完全兼容,用戶需要一個工具進(jìn)行調(diào)試,以協(xié)助用戶解決及分析報告LISP問題。此系統(tǒng)以完成調(diào)試功能為主,不處理詞法分析前的映射。適用于中級以上開發(fā)用戶。

    標(biāo)簽: 2012 CAD 浩辰

    上傳時間: 2013-11-10

    上傳用戶:giraffe

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

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

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

    上傳時間: 2013-10-07

    上傳用戶:lizx30340

  • 38V/100A可直接并聯(lián)大功率AC/DC變換器

    38V/100A可直接并聯(lián)大功率AC/DC變換器 隨著電力電子技術(shù)的發(fā)展,電源技術(shù)被廣泛應(yīng)用于計算機、工業(yè)儀器儀表、軍事、航天等領(lǐng)域,涉及到國民經(jīng)濟(jì)各行各業(yè)。特別是近年來,隨著IGBT的廣泛應(yīng)用,開關(guān)電源向更大功率方向發(fā)展。研制各種各樣的大功率,高性能的開關(guān)電源成為趨勢。某電源系統(tǒng)要求輸入電壓為AC220V,輸出電壓為DC38V,輸出電流為100A,輸出電壓低紋波,功率因數(shù)>0.9,必要時多臺電源可以直接并聯(lián)使用,并聯(lián)時的負(fù)載不均衡度<5%。   設(shè)計采用了AC/DC/AC/DC變換方案。一次整流后的直流電壓,經(jīng)過有源功率因數(shù)校正環(huán)節(jié)以提高系統(tǒng)的功率因數(shù),再經(jīng)半橋變換電路逆變后,由高頻變壓器隔離降壓,最后整流輸出直流電壓。系統(tǒng)的主要環(huán)節(jié)有DC/DC電路、功率因數(shù)校正電路、PWM控制電路、均流電路和保護(hù)電路等。 1 有源功率因數(shù)校正環(huán)節(jié) 由于系統(tǒng)的功率因數(shù)要求0.9以上,采用二極管整流是不能滿足要求的,所以,加入了有源功率因數(shù)校正環(huán)節(jié)。采用UC3854A/B控制芯片來組成功率因數(shù)電路。UC3854A/B是Unitrode公司一種新的高功率因數(shù)校正器集成控制電路芯片,是在UC3854基礎(chǔ)上的改進(jìn)。其特點是:采用平均電流控制,功率因數(shù)接近1,高帶寬,限制電網(wǎng)電流失真≤3%[1]。圖1是由UC3854A/B控制的有源功率因數(shù)校正電路。   該電路由兩部分組成。UC3854A/B及外圍元器件構(gòu)成控制部分,實現(xiàn)對網(wǎng)側(cè)輸入電流和輸出電壓的控制。功率部分由L2,C5,V等元器件構(gòu)成Boost升壓電路。開關(guān)管V選擇西門康公司的SKM75GB123D模塊,其工作頻率選在35kHz。升壓電感L2為2mH/20A。C5采用四個450V/470μF的電解電容并聯(lián)。因為,設(shè)計的PFC電路主要是用在大功率DC/DC電路中,所以,在負(fù)載輕的時候不進(jìn)行功率因數(shù)校正,當(dāng)負(fù)載較大時功率因數(shù)校正電路自動投入使用。此部分控制由圖1中的比較器部分來實現(xiàn)。R10及R11是負(fù)載檢測電阻。當(dāng)負(fù)載較輕時,R10及R11上檢測的信號輸入給比較器,使其輸出端為低電平,D2導(dǎo)通,給ENA(使能端)低電平使UC3854A/B封鎖。在負(fù)載較大時ENA為高電平才讓UC3854A/B工作。D3接到SS(軟啟動端),在負(fù)載輕時D3導(dǎo)通,使SS為低電平;當(dāng)負(fù)載增大要求UC3854A/B工作時,SS端電位從零緩慢升高,控制輸出脈沖占空比慢慢增大實現(xiàn)軟啟動。 2 DC/DC主電路及控制部分分析 2.1 DC/DC主電路拓?fù)?在大功率高頻開關(guān)電源中,常用的主變換電路有推挽電路、半橋電路、全橋電路等[2]。其中推挽電路的開關(guān)器件少,輸出功率大,但開關(guān)管承受電壓高(為電源電壓的2倍),且變壓器有六個抽頭,結(jié)構(gòu)復(fù)雜;全橋電路開關(guān)管承受的電壓不高,輸出功率大,但是需要的開關(guān)器件多(4個),驅(qū)動電路復(fù)雜。半橋電路開關(guān)管承受的電壓低,開關(guān)器件少,驅(qū)動簡單。根據(jù)對各種拓?fù)浞桨傅墓こ袒瘜崿F(xiàn)難度,電氣性能以及成本等指標(biāo)的綜合比較,本電源選用半橋式DC/DC變換器作為主電路。圖2為大功率開關(guān)電源的主電路拓?fù)鋱D。

    標(biāo)簽: 100 38 AC DC

    上傳時間: 2013-11-13

    上傳用戶:ukuk

  • 80C51特殊功能寄存器地址表

    /*--------- 8051內(nèi)核特殊功能寄存器 -------------*/ sfr ACC = 0xE0;             //累加器 sfr B = 0xF0;  //B 寄存器 sfr PSW    = 0xD0;           //程序狀態(tài)字寄存器 sbit CY    = PSW^7;       //進(jìn)位標(biāo)志位 sbit AC    = PSW^6;        //輔助進(jìn)位標(biāo)志位 sbit F0    = PSW^5;        //用戶標(biāo)志位0 sbit RS1   = PSW^4;        //工作寄存器組選擇控制位 sbit RS0   = PSW^3;        //工作寄存器組選擇控制位 sbit OV    = PSW^2;        //溢出標(biāo)志位 sbit F1    = PSW^1;        //用戶標(biāo)志位1 sbit P     = PSW^0;        //奇偶標(biāo)志位 sfr SP    = 0x81;            //堆棧指針寄存器 sfr DPL  = 0x82;            //數(shù)據(jù)指針0低字節(jié) sfr DPH  = 0x83;            //數(shù)據(jù)指針0高字節(jié) /*------------ 系統(tǒng)管理特殊功能寄存器 -------------*/ sfr PCON  = 0x87;           //電源控制寄存器 sfr AUXR = 0x8E;              //輔助寄存器 sfr AUXR1 = 0xA2;             //輔助寄存器1 sfr WAKE_CLKO = 0x8F;        //時鐘輸出和喚醒控制寄存器 sfr CLK_DIV  = 0x97;          //時鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1;        //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE     = 0xA8;           //中斷允許寄存器 sbit EA    = IE^7;  //總中斷允許位  sbit ELVD  = IE^6;           //低電壓檢測中斷控制位 8051

    標(biāo)簽: 80C51 特殊功能寄存器 地址

    上傳時間: 2013-10-30

    上傳用戶:yxgi5

  • PSHLY-B回路電阻測試儀

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

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

    上傳時間: 2013-11-05

    上傳用戶:木子葉1

  • Keil C51使用詳解

    Keil C51使用詳解Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng),與匯編相比,C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C 來開發(fā),體會更加深刻。Keil C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹 Keil C51 開發(fā)系統(tǒng)各部分功能和使用。第二節(jié) Keil C51 單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51 工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標(biāo)文件(.ABS)。ABS 文件由OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex 文件,以供調(diào)試器dScope51 或tScope51 使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM 中。圖(1) C51 工具包整體結(jié)構(gòu)圖第三節(jié) Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進(jìn)行以下操作(設(shè)C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運行Autoexec.bat2. C51 for Windows 的安裝及注意事項:在 Windows 下運行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設(shè)置最簡單(設(shè)安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節(jié) Keil C51 工具包各部分功能及使用簡介1. C51 與A51(1) C51C51 是C 語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而 Commandfile 為一個連接控制文件其內(nèi)容包括:.C 源文件及各編譯控制指令,它沒有固定的名字,開發(fā)人員可根據(jù)自己的習(xí)慣指定,它適于用控制指令較多的場合。(2) A51A51 是匯編語言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。Commandfile 同C51 中的Commandfile 類似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫文件連接定位生成絕對目標(biāo)文件(.ABS),其使用方法為:L51 目標(biāo)文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個模塊分別經(jīng) C51 與A51 編譯后生成多個OBJ 文件,連接時,這些文件全列于目標(biāo)文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile 為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile 為連接控制文件,其具體內(nèi)容是包括了目標(biāo)文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標(biāo)模塊庫文件大多不止1 個,因而第2 種方法較多見,這個文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統(tǒng)RTX51 是一個實時多任務(wù)操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機系統(tǒng)軟件向RTOS 發(fā)展是一種趨勢,這種趨勢對于186 和38610及68K 系列CPU 更為明顯和必須,對8051 因CPU 較為簡單,程序結(jié)構(gòu)等都不太復(fù)雜,RTX51 作用顯得不太突出,其專業(yè)版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個RTX51TINY 版本的RTOS。RTX51 TINY 適用于無外部RAM 的單片機系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching 技術(shù)因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個源級調(diào)試器和模擬器,它可以調(diào)試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產(chǎn)生的程序。它不需目標(biāo)板(for windows 也可通過mon51 接目標(biāo)板),只能進(jìn)行軟件模擬,但其功能強大,可模擬CPU 及其外圍器件,如內(nèi)部串口,外部I/O 及定時器等,能對嵌入式軟件功能進(jìn)行有效測試。

    標(biāo)簽: Keil C51 使用詳解

    上傳時間: 2013-11-01

    上傳用戶:zhouxuepeng1

  • EZ-USB FX系列單片機USB外圍設(shè)備設(shè)計與應(yīng)用

    EZ-USB FX系列單片機USB外圍設(shè)備設(shè)計與應(yīng)用:PART 1 USB的基本概念第1章 USB的基本特性1.1 USB簡介21.2 USB的發(fā)展歷程31.2.1 USB 1.131.2.2 USB 2.041.2.3 USB與IEEE 1394的比較41.3 USB基本架構(gòu)與總線架構(gòu)61.4 USB的總線結(jié)構(gòu)81.5 USB數(shù)據(jù)流的模式與管線的概念91.6 USB硬件規(guī)范101.6.1 USB的硬件特性111.6.2 USB接口的電氣特性121.6.3USB的電源管理141.7 USB的編碼方式141.8 結(jié)論161.9 問題與討論16第2章 USB通信協(xié)議2.1 USB通信協(xié)議172.2 USB封包中的數(shù)據(jù)域類型182.2.1 數(shù)據(jù)域位的格式182.3 封包格式192.4 USB傳輸?shù)念愋?32.4.1 控制傳輸242.4.2 中斷傳輸292.4.3 批量傳輸292.4.4 等時傳輸292.5 USB數(shù)據(jù)交換格式302.6 USB描述符342.7 USB設(shè)備請求422.8 USB設(shè)備群組442.9 結(jié)論462.10 問題與討論46第3章 設(shè)備列舉3.1注冊表編輯器473.2設(shè)備列舉的步驟493.3設(shè)備列舉步驟的實現(xiàn)--使用CATC分析工具513.4結(jié)論613.5問題與討論61第4章 USB芯片與EZUSB4.1USB芯片的簡介624.2USB接口芯片644.2.1Philips接口芯片644.2.2National Semiconductor接口芯片664.3內(nèi)含USB單元的微處理器684.3.1Motorola694.3.2Microchip694.3.3SIEMENS704.3.4Cypress714.4USB芯片總攬介紹734.5USB芯片的選擇與評估744.6問題與討論80第5章 設(shè)備與驅(qū)動程序5.1階層式的驅(qū)動程序815.2主機的驅(qū)動程序835.3驅(qū)動程序的選擇865.4結(jié)論865.5問題與討論87第6章 HID群組6.1HID簡介886.2HID群組的傳輸速率886.3HID描述符906.3.1報告描述符936.3.2主要 main 項目類型966.3.3整體 global 項目卷標(biāo)976.3.4區(qū)域 local 項目卷標(biāo)986.3.5簡易的報告描述符996.3.6Descriptor Tool 描述符工具 1006.3.7兼容測試程序1016.4HID設(shè)備的基本請求1026.5Windows通信程序1036.6問題與討論106PART 2 硬件技術(shù)篇第7章 EZUSB FX簡介7.1簡介1097.2EZUSB FX硬件框圖1097.3封包與PID碼1117.4主機是個主控者1137.4.1從主機接收數(shù)據(jù)1137.4.2傳送數(shù)據(jù)至主機1137.5USB方向1137.6幀1147.7EZUSB FX傳輸類型1147.7.1批量傳輸1147.7.2中斷傳輸1147.7.3等時傳輸1157.7.4控制傳輸1157.8設(shè)備列舉1167.9USB核心1167.10EZUSB FX單片機1177.11重新設(shè)備列舉1177.12EZUSB FX端點1187.12.1EZUSB FX批量端點1187.12.2EZUSB FX控制端點01187.12.3EZUSB FX中斷端點1197.12.4EZUSB FX等時端點1197.13快速傳送模式1197.14中斷1207.15重置與電源管理1207.16EZUSB 2100系列1207.17FX系列--從FIFO1227.18FX系列--GPIF 通用型可程序化的接口 1227.19AN2122/26各種特性的摘要1227.20修訂ID1237.21引腳描述123第8章 EZUSB FX CPU8.1簡介1308.28051增強模式1308.3EZUSB FX所增強的部分1318.4EZUSB FX寄存器接口1318.5EZUSB FX內(nèi)部RAM1318.6I/O端口1328.7中斷1328.8電源控制1338.9特殊功能寄存器 SFR 1348.10內(nèi)部總線1358.11重置136第9章 EZUSB FX內(nèi)存9.1簡介1379.28051內(nèi)存1389.3擴(kuò)充的EZUSB FX內(nèi)存1399.4CS#與OE#信號1409.5EZUSB FX ROM版本141第10章 EZUSB FX輸入/輸出端口10.1簡介14310.2I/O端口14310.3EZUSB輸入/輸出端口寄存器14610.3.1端口配置寄存器14710.3.2I/O端口寄存器14710.4EZUSB FX輸入/輸出端口寄存器14910.5EZUSB FX端口配置表15110.6I2C控制器15610.78051 I2C控制器15610.8控制位15810.8.1START位15810.8.2STOP位15810.8.3LASTRD位15810.9狀態(tài)位15910.9.1DONE位15910.9.2ACK位15910.9.3BERR位15910.9.4ID1, ID015910.10送出 WRITE I2C數(shù)據(jù)16010.11接收 READ I2C數(shù)據(jù)16010.12I2C激活加載器16010.13SFR尋址 FX 16210.14端口A~E的SFR控制165第11章 EZUSB FX設(shè)備列舉與重新設(shè)備列舉11.1簡介16711.2預(yù)設(shè)的USB設(shè)備16911.3USB核心對于EP0設(shè)備請求的響應(yīng)17011.4固件下載17111.5設(shè)備列舉模式17211.6沒有存在EEPROM17311.7存在著EEPROM, 第一個字節(jié)是0xB0 0xB4, FX系列11.8存在著EEPROM, 第一個字節(jié)是0xB2 0xB6, FX系列11.9配置字節(jié)0,FX系列17711.10重新設(shè)備列舉 ReNumerationTM 17811.11多重重新設(shè)備列舉 ReNumerationTM 17911.12預(yù)設(shè)描述符179第12章 EZUSB FX批量傳輸12.1簡介18812.2批量輸入傳輸18912.3中斷傳輸19112.4EZUSB FX批量IN的例子19112.5批量OUT傳輸19212.6端點對19412.7IN端點對的狀態(tài)19412.8OUT端點對的狀態(tài)19512.9使用批量緩沖區(qū)內(nèi)存19512.10Data Toggle控制19612.11輪詢的批量傳輸?shù)姆独?9712.12設(shè)備列舉說明19912.13批量端點中斷19912.14中斷批量傳輸?shù)姆独?0112.15設(shè)備列舉說明20512.16自動指針器205第13章 EZUSB控制端點013.1簡介20913.2控制端點EP021013.3USB請求21213.3.1取得狀態(tài) Get_Status 21413.3.2設(shè)置特性(Set_Feature)21713.3.3清除特性(Clear_Feature)21813.3.4取得描述符(Get_Descriptor)21913.3.5設(shè)置描述符(Set Descriptor)22313.3.6設(shè)置配置(Set_Configuration)22513.3.7取得配置(Get_Configuration)22513.3.8設(shè)置接口(Set_Interface)22513.3.9取得接口(Get_Interface)22613.3.10設(shè)置地址(Set_Address)22713.3.11同步幀22713.3.12固件加載228第14章 EZUSB FX等時傳輸14.1簡介22914.2等時IN傳輸23014.2.1初始化設(shè)置23014.2.2IN數(shù)據(jù)傳輸23014.3等時OUT傳輸23114.3.1初始化設(shè)置23114.3.2數(shù)據(jù)傳輸23214.4設(shè)置等時FIFO的大小23214.5等時傳輸速度23414.5.1EZUSB 2100系列23414.5.2EZUSB FX系列23514.6快速傳輸 僅存于2100系列 23614.6.1快速寫入23614.6.2快速讀取23714.7快速傳輸?shù)臅r序 僅存于2100系列 23714.7.1快速寫入波形23814.7.2快速讀取波形23914.8快速傳輸速度(僅存于2100系列)23914.9其余的等時寄存器24014.9.1除能等時寄存器24014.9.20字節(jié)計數(shù)位24114.10以無數(shù)據(jù)來響應(yīng)等時IN令牌24214.11使用等時FIFO242第15章 EZUSB FX中斷15.1簡介24315.2USB核心中斷24415.3喚醒中斷24415.4USB中斷信號源24515.5SUTOK與SUDAV中斷24815.6SOF中斷24915.7中止 suspend 中斷24915.8USB重置中斷24915.9批量端點中斷25015.10USB自動向量25015.11USB自動向量譯碼25115.12I2C中斷25215.13IN批量NAK中斷 僅存于AN2122/26與FX系列 25315.14I2C STOP反相中斷 僅存于AN2122/26與FX系列 25415.15從FIFO中斷 INT4 255第16章 EZUSB FX重置16.1簡介25716.2EZUSB FX打開電源重置 POR 25716.38051重置的釋放25916.3.1RAM的下載26016.3.2下載EEPROM26016.3.3外部ROM26016.48051重置所產(chǎn)生的影響26016.5USB總線重置26116.6EZUSB脫離26216.7各種重置狀態(tài)的總結(jié)263第17章 EZUSB FX電源管理17.1簡介26517.2中止 suspend 26617.3回復(fù) resume 26717.4遠(yuǎn)程喚醒 remote wakeup 269第18章 EZUSB FX系統(tǒng)18.1簡介27118.2DMA寄存器描述27218.2.1來源. 目的. 傳輸長度地址寄存器27218.2.2DMA起始與狀態(tài)寄存器27518.2.3DMA同步突發(fā)使能寄存器27518.2.4虛擬寄存器27818.3RD/FRD與WR/FWR DMA閃控的選擇27818.4DMA閃控波形與延伸位的交互影響27918.4.1DMA外部寫入27918.4.2DMA外部讀取280第19章 EZUSB FX寄存器19.1簡介28219.2批量數(shù)據(jù)緩沖區(qū)寄存器28319.3等時數(shù)據(jù)FIFO寄存器28419.4等時字節(jié)計數(shù)寄存器28519.5CPU寄存器28719.6I/O端口配置寄存器28819.7I/O端口A~C輸入/輸出寄存器28919.8230 Kbaud UART操作--AN2122/26寄存器29119.9等時控制/狀態(tài)寄存器29119.10I2C寄存器29219.11中斷29419.12端點0控制與狀態(tài)寄存器29919.13端點1~7的控制與狀態(tài)寄存器30019.14整體USB寄存器30519.15快速傳輸30919.16SETUP數(shù)據(jù)31119.17等時FIFO的容量大小31119.18通用I/F中斷使能31219.19通用中斷請求31219.20輸入/輸出端口寄存器D與E31319.20.1端口D輸出31319.20.2輸入端口D腳位31319.20.3端口D輸出使能31319.20.4端口E輸出31319.20.5輸入端口E腳位31419.20.6端口E輸出使能31419.21端口設(shè)置31419.22接口配置31419.23端口A與端口C切換配置31619.23.1端口A切換配置#231619.23.2端口C切換配置#231719.24DMA寄存器31919.24.1來源. 目的. 傳輸長度地址寄存器31919.24.2DMA起始與狀態(tài)寄存器32019.24.3DMA同步突發(fā)使能寄存器32019.24.4選擇8051 A/D總線作為外部FIFO321PART 3 固件技術(shù)篇第20章 EZUSB FX固件架構(gòu)與函數(shù)庫20.1固件架構(gòu)總覽32320.2固件架構(gòu)的建立32520.3固件架構(gòu)的副函數(shù)鉤子32520.3.1工作分配器32620.3.2設(shè)備請求 device request 32620.3.3USB中斷服務(wù)例程32920.4固件架構(gòu)整體變量33220.5描述符表33320.5.1設(shè)備描述符33320.5.2配置描述符33420.5.3接口描述符33420.5.4端點描述符33520.5.5字符串描述符33520.5.6群組描述符33520.6EZUSB FX固件的函數(shù)庫33620.6.1包含文件 *.H 33620.6.2子程序33620.6.3整體變量33820.7固件架構(gòu)的原始程序代碼338第21章 EZUSB FX固件范例程序21.1范例程序的簡介34621.2外圍I/O測試程序34721.3端點對, EP_PAIR范例35221.4批量測試, BulkTest范例36221.5等時傳輸, ISOstrm范例36821.6問題與討論373PART 4 實驗篇第22章 EZUSB FX仿真器22?1簡介37522?2所需的工具37622?3EZUSB FX框圖37722.4EZUSB最終版本的系統(tǒng)框圖37822?5第一次下載程序37822.6EZUSB FX開發(fā)系統(tǒng)框圖37922.7設(shè)置開發(fā)環(huán)境38022.8EZUSB FX開發(fā)工具組的內(nèi)容38122.9EZUSB FX開發(fā)工具組軟件38222.9.1初步安裝程序38222.9.2確認(rèn)主機 個人計算機 是否支持USB38222.10安裝EZUSB控制平臺. 驅(qū)動程序以及文件38322.11EZUSB FX開發(fā)電路板38522.11.1簡介38522.11.2開發(fā)電路板的瀏覽38522.11.3所使用的8051資源38622.11.4詳細(xì)電路38622.11.5LED的顯示38722.11.6Jumper38722.11.7連接器39122.11.8內(nèi)存映象圖39222.11.9PLD信號39422.11.10PLD源文件文件39522.11.11雛形板的擴(kuò)充連接器P1~P639722.11.12Philips PCF8574 I/O擴(kuò)充IC40022.12DMA USB FX I/O LAB開發(fā)工具介紹40122.12.1USBFX簡介40122.12.2USBFX及外圍整體環(huán)境介紹40322?12?3USBFX與PC連接軟件介紹40422.12.4USBFX硬件功能介紹404第23章 LED顯示器輸出實驗23.1硬件設(shè)計與基本概念40923.2固件設(shè)計41023.3.1固件架構(gòu)文件FW.C41123.3.2描述符文件DESCR.A5141223.3.3外圍接口文件PERIPH.C41723.4固件程序代碼的編譯與鏈接42123.5Windows程序, VB設(shè)計42323.6INF文件的編寫設(shè)計42423.7結(jié)論42623.8問題與討論427第24章 七段顯示器與鍵盤的輸入/輸出實驗24.1硬件設(shè)計與基本概念42824.2固件設(shè)計43124.2.1七段顯示器43124.2.24×4鍵盤掃描43324.3固件程序代碼的編譯與鏈接43424.4Windows程序, VB設(shè)計43624.5問題與討論437第25章 LCD文字型液晶顯示器輸出實驗25.1硬件設(shè)計與基本概念43825.1.1液晶顯示器LCD43825.2固件設(shè)計45225.3固件程序代碼的編譯與鏈接45625.4Windows程序, VB設(shè)計45725.5問題與討論458第26章 LED點陣輸出實驗26.1硬件設(shè)計與基本概念45926.2固件設(shè)計46326.3固件程序代碼的編譯與鏈接46326.4Windows程序, VB設(shè)計46526.5問題與討論465第27章 步進(jìn)電機輸出實驗27.1硬件設(shè)計與基本概念46627.1.11相激磁46727.1.22相激磁46727.1.31-2相激磁46827?1?4PMM8713介紹46927.2固件設(shè)計47327.3固件程序代碼的編譯與鏈接47427.4Windows程序, VB設(shè)計47627.5問題與討論477第28章 I2C接口輸入/輸出實驗28.1硬件設(shè)計與基本概念47828.2固件設(shè)計48128.3固件程序代碼的編譯與鏈接48328.4Windows程序, VB設(shè)計48428.5問題與討論485第29章 A/D轉(zhuǎn)換器與D/A轉(zhuǎn)換器的輸入/輸出實驗29.1硬件設(shè)計與基本概念48629.1.1A/D轉(zhuǎn)換器48629.1.2D/A轉(zhuǎn)換器49029.2固件設(shè)計49329.2.1A/D轉(zhuǎn)換器的固件設(shè)計49329.2.2D/A轉(zhuǎn)換器的固件設(shè)計49629.3固件程序代碼的編譯與鏈接49729.4Windows程序, VB設(shè)計49829.5問題與討論499第30章 LCG繪圖型液晶顯示器輸出實驗30.1硬件設(shè)計與基本概念50030.1.1繪圖型LCD50030.1.2繪圖型LCD控制指令集50330.1.3繪圖型LCD讀取與寫入時序圖50530.2固件設(shè)計50630.2.1LCG驅(qū)動程序50630.2.2USB固件碼51330.3固件程序代碼的編譯與鏈接51630.4Windows程序, VB設(shè)計51730.5問題與討論518附錄A Cypress控制平臺的操作A.1EZUSB控制平臺總覽519A.2主畫面520A.3熱插拔新的USB設(shè)備521A.4各種工具欄的使用524A.5故障排除526A.6控制平臺的進(jìn)階操作527A.7測試Unary Op工具欄上的按鈕功能528A.8測試制造商請求的工具欄 2100 系列的開發(fā)電路板 529A.9測試等時傳輸工具欄532A.10測試批量傳輸工具欄533A.11測試重置管線工具欄535A.12測試設(shè)置接口工具欄537A.13測試制造商請求工具欄 FX系列開發(fā)電路板A.14執(zhí)行Get Device Descriptor 操作來驗證開發(fā)板的功能是否正確539A.15從EZUSB控制平臺中, 加載dev_io的范例并且加以執(zhí)行540A.16從Keil偵錯應(yīng)用程序中, 加載dev_io范例程序代碼, 然后再加以執(zhí)行542A.17將dev_io 目標(biāo)文件移開, 且使用Keil IDE 集成開發(fā)環(huán)境 來重建545A.18在偵錯器下執(zhí)行dev_io目標(biāo)文件, 并且使用具有偵錯能力的IDE547A.19在EZUSB控制平臺下, 執(zhí)行ep_pair目標(biāo)文件A.20如何修改fw范例, 并在開發(fā)電路板上產(chǎn)生等時傳輸550附錄BEZUSB 2100系列及EZUSB FX系列引腳表B.1EZUSB 2100系列引腳表555B?2EZUSB FX系列引腳圖表561附錄C EZUSB FX寄存器總覽附錄D EEPROM燒錄方式

    標(biāo)簽: EZ-USB USB 單片機 外圍設(shè)備

    上傳時間: 2013-11-21

    上傳用戶:努力努力再努力

  • PIC單片機設(shè)計電子密碼鎖

    介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲器,8級深度的硬堆棧。 用PIC單片機設(shè)計的電子密碼鎖微芯公司生產(chǎn)的PIC8位COMS單片機,采用類RISC指令集和哈弗總線結(jié)構(gòu),以及先進(jìn)的流水線時序,與傳統(tǒng)51單片機相比其在速度和性能方面更具優(yōu)越性和先進(jìn)性。PIC單片機的另一個優(yōu)點是片上硬件資源豐富,集成常見的EPROM、DAC、PWM以及看門狗電路。這使得硬件電路的設(shè)計更加簡單,節(jié)約設(shè)計成本,提高整機性能。因此PIC單片機已成為產(chǎn)品開發(fā),尤其是產(chǎn)品設(shè)計和研制階段的首選控制器。本文介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲器,8級深度的硬堆棧。硬件設(shè)計  電路原理見圖1。Xx8位數(shù)據(jù)線接4x4鍵盤矩陣電路,面板布局見表1,A、B、C、D為備用功能鍵。RA0、RA7輸出4組編碼二進(jìn)制數(shù)據(jù),經(jīng)74LS139譯碼后輸出逐行掃描信號,送RB4-RB7列信號輸入端。余下半個139譯碼器動揚聲器。RB2接中功率三極管基極,驅(qū)動繼電器動作。有效密碼長度為4位,根據(jù)實際情況,可通過修改源程序增加密碼位數(shù)。產(chǎn)品初始密碼為3345,這是一隨機數(shù),無特殊意義,目的是為防止被套解。用戶可按*號鍵修改密碼,按#號鍵結(jié)束。輸入密碼并按#號確認(rèn)之后,腳輸出RB2腳輸出高電平,繼電器閉合,執(zhí)行一次開鎖動作。  若用戶輸入的密碼正確,揚聲器發(fā)出一聲稍長的“滴”提示聲,若輸入的密碼與上次修改的不符,則發(fā)出短促的“滴”聲。連續(xù)3次輸入密碼錯誤之后,程序鎖死,揚聲器報警。直到CPU被復(fù)位或從新上電。軟件設(shè)計  軟件流程圖見圖3。CPU上電或復(fù)位之后將最近一次修改并保存到EEPROM的密碼讀出,最為參照密匙。然后等待用戶輸入開鎖密碼。若5分鐘以內(nèi)沒有接受到用戶的任何輸入,CPU自動轉(zhuǎn)入掉電模式,用戶輸入任意值可喚醒CPU。每次修改密碼之后,CPU將新的密碼存入內(nèi)部4個連續(xù)的EEPROM單元,掉電后該數(shù)據(jù)任有效。每執(zhí)行一次開鎖指令,CPU將當(dāng)前輸入密碼與該值比較,看是否真確,并給出相應(yīng)的提示和控制。布     局  所有元件均使用SMD表貼封裝,縮小體積,便于產(chǎn)品安裝,60X60雙面PCB板,頂層是一體化輸入鍵盤,底層是元件層。成型后的產(chǎn)品體積小巧,能很方便的嵌入防盜鐵門、保險箱柜。

    標(biāo)簽: PIC 單片機設(shè)計 電子密碼鎖

    上傳時間: 2013-10-31

    上傳用戶:uuuuuuu

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

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

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

    上傳時間: 2013-10-17

    上傳用戶:gai928943

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区欧美亚洲| 欧美性做爰猛烈叫床潮| 国产精品福利av| 亚洲一区二区三区视频| 国产综合香蕉五月婷在线| 久久这里有精品15一区二区三区| 尤物九九久久国产精品的分类| 欧美 日韩 国产 一区| 制服丝袜激情欧洲亚洲| 国产亚洲一区二区精品| 欧美福利一区二区| 午夜精品视频| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩精品一区二区| 欧美一区网站| 亚洲国产中文字幕在线观看| 国产精品久久看| 蜜臀va亚洲va欧美va天堂| 亚洲一区二区视频在线观看| 黄色精品一区二区| 欧美视频官网| 久久天堂精品| 亚洲一区二区黄色| 亚洲韩国精品一区| 国产视频久久久久| 欧美日韩精品一区二区天天拍小说| 欧美影院精品一区| 亚洲精品一二三区| 精品动漫3d一区二区三区免费版| 欧美日韩综合一区| 免费久久99精品国产自在现线| 亚洲综合好骚| 亚洲国产精品精华液网站| 国产日韩欧美在线看| 欧美日韩1080p| 麻豆久久精品| 午夜在线视频一区二区区别| 亚洲激情网站| 好看的亚洲午夜视频在线| 欧美人成在线| 蜜月aⅴ免费一区二区三区 | 免费视频一区二区三区在线观看| 午夜精品999| 亚洲老板91色精品久久| 欧美视频四区| 欧美在线观看一区二区三区| 一区二区不卡在线视频 午夜欧美不卡' | 亚洲最新合集| 在线观看亚洲视频| 国产亚洲一区精品| 国产精品久久久久毛片软件| 欧美特黄一级| 欧美日韩高清在线| 欧美精品一区视频| 免费成人高清在线视频| 欧美在线亚洲| 欧美一区二区精品在线| 午夜精品久久久久久久蜜桃app | 欧美日韩国产综合一区二区| 美日韩丰满少妇在线观看| 久久精品三级| 久久精品国产视频| 欧美一站二站| 久久国产免费| 久久精品综合一区| 久久久国产精品亚洲一区| 性色av一区二区三区在线观看| 亚洲欧美电影在线观看| 亚洲中字黄色| 亚洲欧美日韩一区二区三区在线观看 | 亚洲毛片在线观看.| 91久久久在线| 亚洲精品少妇网址| 亚洲破处大片| 99热精品在线| 亚洲午夜高清视频| 亚洲欧美一区二区精品久久久 | 欧美日在线观看| 欧美激情综合五月色丁香小说| 欧美fxxxxxx另类| 欧美77777| 欧美精品免费在线观看| 欧美—级在线免费片| 欧美看片网站| 国产精品成人免费视频| 国产精品一区=区| 国内精品久久久久影院薰衣草| 精品动漫3d一区二区三区免费版 | 欧美综合77777色婷婷| 欧美专区在线观看一区| 久久久99久久精品女同性| 西瓜成人精品人成网站| 欧美在线播放一区| 噜噜噜躁狠狠躁狠狠精品视频| 欧美高清成人| 国产精品magnet| 国产日韩欧美一区二区三区四区 | 国产精品视频久久一区| 国产一区清纯| 亚洲精品资源| 亚洲女性裸体视频| 久久久久综合| 欧美乱妇高清无乱码| 国产精品日韩高清| 狠狠色丁香婷综合久久| 91久久精品日日躁夜夜躁国产| 一本到12不卡视频在线dvd| 亚洲欧美在线免费| 美女精品网站| 欧美性一区二区| 一区二区三区在线视频免费观看| 91久久久精品| 欧美亚洲网站| 欧美国产日韩亚洲一区| 国产精品素人视频| 136国产福利精品导航网址应用| 一本色道久久精品| 久久精品1区| 欧美全黄视频| 国产一区在线看| 一本久久知道综合久久| 久久精品91久久香蕉加勒比 | 亚洲精品国产精品久久清纯直播 | 欧美成人高清视频| 欧美日韩免费在线观看| 国产午夜亚洲精品羞羞网站| 亚洲精品久久久久久久久久久久 | 久久爱另类一区二区小说| 欧美国产视频在线观看| 国产欧美va欧美va香蕉在| 亚洲人成网站在线观看播放| 欧美一级欧美一级在线播放| 欧美激情一区二区三区在线视频观看 | 欧美区在线播放| 国产在线观看91精品一区| 宅男噜噜噜66国产日韩在线观看| 欧美专区中文字幕| 欧美午夜精品久久久久免费视| 在线播放亚洲一区| 亚洲欧美久久久久一区二区三区| 欧美大片在线看| 精品不卡一区| 午夜精品视频在线观看| 欧美日韩亚洲一区二区三区在线观看 | 91久久精品一区| 久久精品成人| 国产伦精品一区二区三区四区免费 | 欧美jizz19性欧美| 国产亚洲激情视频在线| 亚洲特级片在线| 欧美激情中文字幕乱码免费| 欧美人与性动交α欧美精品济南到| 欧美三区视频| 亚洲伦伦在线| 欧美精品日韩| 亚洲国产日韩一级| 久久男女视频| 好看的亚洲午夜视频在线| 午夜精品久久久久久99热软件| 欧美日韩免费在线观看| 亚洲激情一区| 狂野欧美一区| 伊人婷婷欧美激情| 欧美一区二区三区在| 国产精品久久久久久久午夜片| 夜夜嗨网站十八久久| 欧美屁股在线| 亚洲精品乱码久久久久久蜜桃91| 麻豆精品视频在线观看| 狠狠干成人综合网| 久久精品av麻豆的观看方式| 国产日韩欧美一区在线| 久久av资源网站| 国内综合精品午夜久久资源| 午夜激情综合网| 国产乱肥老妇国产一区二| 午夜国产精品视频免费体验区| 欧美视频一区二区| 亚洲综合大片69999| 国产精品一区二区在线观看| 午夜精品影院在线观看| 国产精品一区一区三区| 亚洲第一福利社区| 蜜乳av另类精品一区二区| 91久久在线| 欧美日韩精品欧美日韩精品| 亚洲视频狠狠| 国产精品一区二区三区观看| 欧美一级理论片| 韩国av一区二区三区在线观看 | 免播放器亚洲一区| 亚洲国产精品免费| 欧美精品日韩| 亚洲尤物精选| 国产一区二区三区日韩| 久热精品视频| 99视频精品免费观看| 国产九区一区在线| 久久午夜激情| 亚洲精品你懂的|