高可用性繫統(tǒng)常常采用雙路饋送功率分配,旨在實(shí)現(xiàn)冗餘並增強(qiáng)系統(tǒng)的可靠性。“或”二極管把兩路電源一起連接在負(fù)載點(diǎn)上,最常用的是肖特基二極管,目的在於實(shí)現(xiàn)低損耗
標(biāo)簽: 理想二極管 保護(hù) 電源布線 錯(cuò)誤
上傳時(shí)間: 2013-10-19
上傳用戶:BOBOniu
CMOS 邏輯系統(tǒng)的功耗主要與時(shí)脈頻率、系統(tǒng)內(nèi)各閘極輸入電容及電源電壓有關(guān),裝置尺寸縮小後,電源電壓也隨之降低,使得閘極大幅降低功耗。這種低電壓裝置擁有更低的功耗和更高的運(yùn)作速度,因此系統(tǒng)時(shí)脈頻率可升高至 Ghz 範(fàn)圍。
上傳時(shí)間: 2013-10-14
上傳用戶:immanuel2006
單相橋式逆變電路為例:S1~S4是橋式電路的4個(gè)臂,由電力電子器件及輔助電路組成。S1、S4閉合,S2、S3斷開(kāi)時(shí),負(fù)載電壓uo為正S1;S1、S4斷開(kāi),S2、S3閉合時(shí),uo為負(fù),把直流電變成了交流電。改變兩組開(kāi)關(guān)切換頻率,可改變輸出交流電頻率。圖5-1 逆變電路及其波形舉例電阻負(fù)載時(shí),負(fù)載電流io和uo的波形相同,相位也相同。阻感負(fù)載時(shí),io滯后于uo,波形也不同(圖5-1b)。t1前:S1、S4通,uo和io均為正。t1時(shí)刻斷開(kāi)S1、S4,合上S2、S3,uo變負(fù),但io不能立刻反向。io從電源負(fù)極流出,經(jīng)S2、負(fù)載和S3流回正極,負(fù)載電感能量向電源反饋,io逐漸減小,t2時(shí)刻降為零,之后io才反向并增大 (2)換流方式分類換流——電流從一個(gè)支路向另一個(gè)支路轉(zhuǎn)移的過(guò)程,也稱換相。開(kāi)通:適當(dāng)?shù)拈T極驅(qū)動(dòng)信號(hào)就可使其開(kāi)通。關(guān)斷:全控型器件可通過(guò)門極關(guān)斷。半控型器件晶閘管,必須利用外部條件才能關(guān)斷,一般在晶閘管電流過(guò)零后施加一定時(shí)間反壓,才能關(guān)斷。研究換流方式主要是研究如何使器件關(guān)斷。本章?lián)Q流及換流方式問(wèn)題最為全面集中,因此在本章講述1、器件換流利用全控型器件的自關(guān)斷能力進(jìn)行換流(Device Commutation)。2、電網(wǎng)換流由電網(wǎng)提供換流電壓稱為電網(wǎng)換流(Line Commutation)??煽卣麟娐贰⒔涣髡{(diào)壓電路和采用相控方式的交交變頻電路,不需器件具有門極可關(guān)斷能力,也不需要為換流附加元件。3、負(fù)載換流由負(fù)載提供換流電壓稱為負(fù)載換流(Load Commutation)。負(fù)載電流相位超前于負(fù)載電壓的場(chǎng)合,都可實(shí)現(xiàn)負(fù)載換流。負(fù)載為電容性負(fù)載時(shí),負(fù)載為同步電動(dòng)機(jī)時(shí),可實(shí)現(xiàn)負(fù)載換流。
上傳時(shí)間: 2013-10-15
上傳用戶:qingdou
雙輪平衡車開(kāi)發(fā)文檔(自平衡小車的開(kāi)發(fā)),雙輪平衡車開(kāi)發(fā)文檔。
上傳時(shí)間: 2013-11-18
上傳用戶:ysystc699
在冶金、化工,機(jī)械等各類工業(yè)控制中,電加熱爐都得到了廣泛的應(yīng)用。目前國(guó)內(nèi)的電加熱爐溫度控制器大多還停留在國(guó)際60年代水平,仍在使用繼電一接觸器控制或常規(guī)PID控制,自動(dòng)化程度低,動(dòng)態(tài)控制精度差,滿足不了日益發(fā)展的工藝技術(shù)要求。電加熱爐的溫度是生產(chǎn)工藝的一項(xiàng)重要指標(biāo),溫度控制的好壞將直接影響產(chǎn)品的質(zhì)量。電加熱爐由電阻絲加熱,溫度控制具有非線性、大滯后、大慣性、時(shí)變性、升溫尊向性等特點(diǎn)。而且,在實(shí)際應(yīng)用和研究中,電加熱爐溫度控制遇到了很多困難:第一,很難建立精確的數(shù)學(xué)模型:第二,不能很好地解決非線性、大滯后等問(wèn)題。以精確數(shù)學(xué)模型為基礎(chǔ)地經(jīng)典控制理論和現(xiàn)代控制論在解決這些問(wèn)題時(shí)遇到了極大地困難,而以語(yǔ)言規(guī)則模型(IF—THEN)為基礎(chǔ)的模糊控制理論卻是解決上述問(wèn)題的有效途徑和方法。國(guó)內(nèi)現(xiàn)有的一些模糊設(shè)計(jì)方法大多存在不同缺點(diǎn),而且真正把理論研究應(yīng)用到實(shí)際系統(tǒng)的也較少。所以,深入研究在電加熱爐系統(tǒng)控制中具體模糊控制設(shè)計(jì)理論是十分必要的。本文針對(duì)電加熱爐這一控制對(duì)象,以Ts.94—1型號(hào)的箱形電加熱爐為參考對(duì)象,分別采用工業(yè)控制中普遍使用的PID控制、經(jīng)常見(jiàn)到的模糊控制策略,如基本模糊控制,對(duì)其進(jìn)行仿真實(shí)驗(yàn),比較,并進(jìn)行了理論分析。針對(duì)上述電加熱爐控制中存在的問(wèn)題,本文設(shè)計(jì)了雙模糊控制器。雙模糊控制器在參數(shù)自整定模糊控制理論的基礎(chǔ)上,對(duì)比例因子進(jìn)行調(diào)整,克服原算法復(fù)雜麗不實(shí)用的特點(diǎn),根據(jù)電加熱爐不同的工作狀態(tài)采用不同的模糊控制器,提高了控制精度,改善了控制效果。本文把模糊控制與神經(jīng)網(wǎng)絡(luò)技術(shù)相結(jié)合,利用神經(jīng)網(wǎng)絡(luò)很強(qiáng)的學(xué)習(xí)能力和自適應(yīng)能力,建立了自適應(yīng)神經(jīng)模糊推理系統(tǒng)。把不依賴精確數(shù)學(xué)模型的模糊控制系統(tǒng)與有價(jià)值的經(jīng)驗(yàn)數(shù)據(jù)或參考模型相結(jié)合,彌補(bǔ)了模糊控制的不足,使模糊控制系統(tǒng)更能發(fā)揮其強(qiáng)大優(yōu)勢(shì),控制效果理想。在實(shí)踐應(yīng)用方面,以電加熱爐為控制對(duì)象,開(kāi)發(fā)了89C51單片機(jī)模糊控制器,主要進(jìn)行了硬件和軟件的設(shè)計(jì)。
標(biāo)簽: 單片機(jī) 中的應(yīng)用 模糊控制 電加熱爐
上傳時(shí)間: 2013-10-28
上傳用戶:yuanwenjiao
□基于來(lái)電顯示技術(shù),識(shí)別主人,利用手機(jī)或固定電話實(shí)現(xiàn)免接通,免費(fèi)用的絕密遙控關(guān)及撤防?!鯁涡酒喙δ芸删幊淘O(shè)計(jì),MCU內(nèi)核,有著十分靈活廣泛的應(yīng)用(可定制特殊功能)。自動(dòng)撥號(hào)的電話報(bào)警器方面:室內(nèi)手動(dòng)延時(shí)布防,手機(jī)或固定電話免接通遙控撤防;撥號(hào)報(bào)警+現(xiàn)場(chǎng)報(bào)警(可選)。電話遙控開(kāi)關(guān)方面:用于開(kāi)啟電控門鎖,保險(xiǎn)柜電控鎖,車庫(kù)電動(dòng)門,電器開(kāi)關(guān)...等。更多應(yīng)用......?!鯁涡酒疃嗫纱嫒?組電話號(hào)碼(6個(gè)主人)不重碼,最后一組號(hào)碼可刷新,掉電不丟失,可保100年。□非主人撥入無(wú)效,主人需20秒內(nèi)連續(xù)撥通兩次遙控才有效(撤防或開(kāi)關(guān)),操縱成功后會(huì)自動(dòng)回?fù)苓b控者電話一次,以表示遙控成功。絕不影響電話的正常使用?!跹h(huán)撥打1-6組主人電話號(hào)碼報(bào)警15次,接聽(tīng)報(bào)警時(shí)警聲提示,可同時(shí)選擇現(xiàn)場(chǎng)報(bào)警。無(wú)注冊(cè)用戶時(shí),觸發(fā)報(bào)警將自動(dòng)轉(zhuǎn)入連續(xù)現(xiàn)場(chǎng)報(bào)警1分鐘?!踅泳幚砉δ?,接聽(tīng)報(bào)警期間,手機(jī)或固定電話按"#"鍵退出報(bào)警。未接警的號(hào)碼繼續(xù)打報(bào)警?!鮾H設(shè)計(jì)兩按鈕實(shí)現(xiàn)用戶注冊(cè)、信息刪除、室那手動(dòng)布防撤防、輸出開(kāi)關(guān)控制、報(bào)警模式設(shè)定,報(bào)警期間無(wú)法手動(dòng)撤防?!鮾煞N反復(fù)可編程報(bào)警模式。掉電不丟失。模式1:報(bào)警完畢自動(dòng)撤防;模式2:報(bào)警完畢保持布防?!鮾煞N自適應(yīng)電路模式:DTMF解碼器接入模式和DTMF解碼器不接入模式。自動(dòng)實(shí)現(xiàn)不同的電路設(shè)計(jì)實(shí)現(xiàn)不同的輸出控制功能。同一電路設(shè)計(jì),通過(guò)增減硬部件即可實(shí)現(xiàn)不同的輸出功能,QL310上電時(shí)自動(dòng)識(shí)別DTMF解碼器是否存在。□兩路警聲輸出:其中一路輸出用于操作音提示及報(bào)警時(shí)加載到電話線路中供監(jiān)聽(tīng)用。另一路為現(xiàn)場(chǎng)報(bào)警使用(可根據(jù)需要選用,這路只有在報(bào)警時(shí)才有輸出,設(shè)計(jì)時(shí)可通過(guò)加大功率提高警聲)?!鯛顟B(tài)記憶功能:布撤防狀態(tài)都有記憶功能(掉電不丟失)??杀苊獠汲贩榔陂g的偶然的停電再上電是狀態(tài)發(fā)生變化。比如,當(dāng)前為布防狀態(tài),掉電再上電后還是保持布防狀態(tài)?!跏謩?dòng)布撤防提示音,布撤防LED指示燈。□上電開(kāi)機(jī)報(bào)警模式提示音,模式1發(fā)一聲提示音;模式2發(fā)兩聲提示音。□觸發(fā)端的信號(hào)智能檢測(cè),因此可適應(yīng)任何觸發(fā)信號(hào):或高電平,或低電平,或高/低脈沖信號(hào);無(wú)源的開(kāi)關(guān)信號(hào),如繼電器,干簧管或門磁開(kāi)關(guān)等(由于觸發(fā)端內(nèi)部有上拉電阻)。標(biāo)準(zhǔn)的TTL電平,通過(guò)外接簡(jiǎn)單的限幅電路可實(shí)現(xiàn)更高電平或脈沖的輸入(紅外探頭,防火探頭等)。特強(qiáng)抗干擾處理,長(zhǎng)距離布線可抗強(qiáng)電磁干擾?!?0腳PDIP封裝及20腳SOP封裝?!?V低功耗。使用3.58M晶振?!豕I(yè)級(jí)設(shè)計(jì),工作溫度:-40℃~+85℃
上傳時(shí)間: 2013-11-13
上傳用戶:lacsx
C8051F單片機(jī) C8051F系列單片機(jī) 單片機(jī)自20世紀(jì)70年代末誕生至今,經(jīng)歷了單片微型計(jì)算機(jī)SCM、微控制器MCU及片上系統(tǒng)SoC三大階段,前兩個(gè)階段分別以MCS-51和80C51為代表。隨著在嵌入式領(lǐng)域中對(duì)單片機(jī)的性能和功能要求越來(lái)越高,以往的單片機(jī)無(wú)論是運(yùn)行速度還是系統(tǒng)集成度等多方面都不能滿足新的設(shè)計(jì)需要,這時(shí)Silicon Labs 公司推出了C8051F系列單片機(jī),成為SoC的典型代表。 C8051F具有上手快(全兼容8051指令集)、研發(fā)快(開(kāi)發(fā)工具易用,可縮短研發(fā)周期)和見(jiàn)效快(調(diào)試手段靈活)的特點(diǎn),其性能優(yōu)勢(shì)具體體現(xiàn)在以下方面: 基于增強(qiáng)的CIP-51內(nèi)核,其指令集與MCS-51完全兼容,具有標(biāo)準(zhǔn)8051的組織架構(gòu),可以使用標(biāo)準(zhǔn)的803x/805x匯編器和編譯器進(jìn)行軟件開(kāi)發(fā)。CIP-51采用流水線結(jié)構(gòu),70%的的指令執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期,是標(biāo)準(zhǔn)8051指令執(zhí)行速度的12倍;其峰值執(zhí)行速度可達(dá)100MIPS(C8051F120等),是目前世界上速度最快的8位單片機(jī)。 增加了中斷源。標(biāo)準(zhǔn)的8051只有7個(gè)中斷源Silicon Labs 公司 C8051F系列單片機(jī)擴(kuò)展了中斷處理這對(duì)于時(shí)實(shí)多任務(wù)系統(tǒng)的處理是很重要的擴(kuò)展的中斷系統(tǒng)向CIP-51提供22個(gè)中斷源允許大量的模擬和數(shù)字外設(shè)中斷一個(gè)中斷處理需要較少的CPU干預(yù)卻有更高的執(zhí)行效率。 集成了豐富的模擬資源,絕大部分的C8051F系列單片機(jī)都集成了單個(gè)或兩個(gè)ADC,在片內(nèi)模擬開(kāi)關(guān)的作用下可實(shí)現(xiàn)對(duì)多路模擬信號(hào)的采集轉(zhuǎn)換;片內(nèi)ADC的采樣精度最高可達(dá)24bit,采樣速率最高可達(dá)500ksps,部分型號(hào)還集成了單個(gè)或兩個(gè)獨(dú)立的高分辨率DAC,可滿足絕大多數(shù)混合信號(hào)系統(tǒng)的應(yīng)用并實(shí)現(xiàn)與模擬電子系統(tǒng)的無(wú)縫接口;片內(nèi)溫度傳感器則可以迅速而精確的監(jiān)測(cè)環(huán)境溫度并通過(guò)程序作出相應(yīng)處理,提高了系統(tǒng)運(yùn)行的可靠性?! 〖闪素S富的外部設(shè)備接口。具有兩路UART和最多可達(dá)5個(gè)定時(shí)器及6個(gè)PCA模塊,此外還根據(jù)不同的需要集成了SMBus、SPI、USB、CAN、LIN等接口,以及RTC部件。外設(shè)接口在不使用時(shí)可以分別禁止以降低系統(tǒng)功耗。與其他類型的單片機(jī)實(shí)現(xiàn)相同的功能需要多個(gè)芯片的組合才能完成相比,C8051單片機(jī)不僅減少了系統(tǒng)成本,更大大降低了功耗。 增強(qiáng)了在信號(hào)處理方面的性能,部分型號(hào)具有16x16 MAC以及DMA功能,可對(duì)所采集信號(hào)進(jìn)行實(shí)時(shí)有效的算法處理并提高了數(shù)據(jù)傳送能力?! 【哂歇?dú)立的片內(nèi)時(shí)鐘源(精度最高可達(dá)0.5%),設(shè)計(jì)人員既可選擇外接時(shí)鐘,也可直接應(yīng)用片內(nèi)時(shí)鐘,同時(shí)可以在內(nèi)外時(shí)鐘源之間自如切換。片內(nèi)時(shí)鐘源降低了系統(tǒng)設(shè)計(jì)的復(fù)雜度,提高了系統(tǒng)可靠性,而時(shí)鐘切換功能則有利于系統(tǒng)整體功耗的降低?! √峁┛臻e模式及停機(jī)模式等多種電源管理方式來(lái)降低系統(tǒng)功耗 實(shí)現(xiàn)了I/O從固定方式到交叉開(kāi)關(guān)配置。固定方式的I/O端口,既占用引腳多,配置又不夠靈活。在C8051F中,則采用開(kāi)關(guān)網(wǎng)絡(luò)以硬件方式實(shí)現(xiàn)I/O端口的靈活配置,外設(shè)電路單元通過(guò)相應(yīng)的配置寄存器控制的交叉開(kāi)關(guān)配置到所選擇的端口上?! ?fù)位方式多樣化,C8051F把80C51單一的外部復(fù)位發(fā)展成多源復(fù)位,提供了上電復(fù)位、掉電復(fù)位、外部引腳復(fù)位、軟件復(fù)位、時(shí)鐘檢測(cè)復(fù)位、比較器0復(fù)位、WDT復(fù)位和引腳配置復(fù)位。眾多的復(fù)位源為保障系統(tǒng)的安全、操作的靈活性以及零功耗系統(tǒng)設(shè)計(jì)帶來(lái)極大的好處?! 膫鹘y(tǒng)的仿真調(diào)試到基于JTAG接口的在系統(tǒng)調(diào)試。C8051F在8位單片機(jī)中率先配置了標(biāo)準(zhǔn)的JTAG接口(IEEE1149.1)。C8051F的JTAG接口不僅支持Flash ROM的讀/寫操作及非侵入式在系統(tǒng)調(diào)試,它的JTAG邏輯還為在系統(tǒng)測(cè)試提供邊界掃描功能。通過(guò)邊界寄存器的編程控制,可對(duì)所有器件引腳、SFR總線和I/O口弱上拉功能實(shí)現(xiàn)觀察和控制?! 8051F系列單片機(jī)型號(hào)齊全,可根據(jù)設(shè)計(jì)需求選擇不同規(guī)模和帶有特定外設(shè)接口的型號(hào),提供從多達(dá)100個(gè)引腳的高性能單片機(jī)到最小3mmX3mm的封裝,滿足不同設(shè)計(jì)的需要?! 』谏鲜鎏攸c(diǎn),Silicon Labs 公司C8051F系列單片機(jī)作為SoC芯片的杰出代表能夠滿足絕大部分場(chǎng)合的復(fù)雜功能要求,并在嵌入式領(lǐng)域的各個(gè)場(chǎng)合都得到了廣泛的應(yīng)用:在工業(yè)控制領(lǐng)域,其豐富的模擬資源可用于工業(yè)現(xiàn)場(chǎng)多種物理量的監(jiān)測(cè)、分析及控制和顯示;在便攜式儀器領(lǐng)域,其低功耗和強(qiáng)大的外設(shè)接口也非常適合各種信號(hào)的采集、存儲(chǔ)和傳輸;此外,新型的C8051F5xx系列單片機(jī)也在汽車電子行業(yè)中嶄露頭角。正是這些優(yōu)勢(shì),使得C8051單片機(jī)在進(jìn)入中國(guó)市場(chǎng)的短短幾年內(nèi)就迅速風(fēng)靡,相信隨著新型號(hào)的不斷推出以及推廣力度的不斷加大,C8051系列單片機(jī)將迎來(lái)日益廣闊的發(fā)展空間,成為嵌入式領(lǐng)域的時(shí)代寵兒 此系列單片機(jī)完全兼容MCS-51指令集,容易上手,開(kāi)發(fā)周期短,大大節(jié)約了開(kāi)發(fā)成本。C8051F系統(tǒng)集成度高,總線時(shí)鐘可達(dá)25M
上傳時(shí)間: 2013-11-24
上傳用戶:testAPP
中穎單片機(jī)入門與實(shí)戰(zhàn) 單片機(jī)又稱單片微處理器,其應(yīng)用已滲入到各行各業(yè),生產(chǎn)廠家亦從二十年前的寥寥幾家發(fā)展到現(xiàn)在的幾十間甚至更多。不同的廠家基于各自的架構(gòu)平臺(tái),設(shè)計(jì)了不同功能特點(diǎn)的單片機(jī),這就使得工程師們可以按照具體設(shè)計(jì)要求挑選最適合的一款芯片進(jìn)行系統(tǒng)開(kāi)發(fā),既滿足功能需求又能最大限度降低成本,提高了自己產(chǎn)品的性價(jià)比。中穎單片機(jī)基于公司自有的4-bit CPU IP(CPU60)發(fā)展起來(lái),芯片采用的是程序內(nèi)存和數(shù)據(jù)存儲(chǔ)器在物理空間上完全獨(dú)立的哈佛結(jié)構(gòu)。程序內(nèi)存和數(shù)據(jù)存儲(chǔ)器地址以及總線完全分開(kāi),可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。同時(shí)由于讀取指令和存取操作數(shù)可以同時(shí)進(jìn)行(流水線作業(yè)),因而具有較高的執(zhí)行效率。中穎設(shè)計(jì)工程師以此設(shè)計(jì)了SH66XX, SH67XX 和SH69XX 等一系列的單片機(jī),涵蓋了包括消費(fèi)類,家電及來(lái)電顯示電話的多方面應(yīng)用,以其產(chǎn)品的多樣化,優(yōu)異的抗干擾性能,良好的性價(jià)比和及時(shí)的售后服務(wù)在競(jìng)爭(zhēng)激烈的市場(chǎng)占有一席之地,并且每年的出貨量在持續(xù)快速的增長(zhǎng)中。中穎單片機(jī)能在短短數(shù)年間取得如此成績(jī)及市場(chǎng)認(rèn)可度,自有其道理。
標(biāo)簽: 中穎單片機(jī)
上傳時(shí)間: 2013-11-20
上傳用戶:huanglang
為了解決一些遠(yuǎn)程單片機(jī)設(shè)備不方便升級(jí)內(nèi)部程序的困難,本文提出了利用單片機(jī)系統(tǒng)中現(xiàn)有的數(shù)據(jù)獲取方式來(lái)升級(jí)單片機(jī)內(nèi)部程序的方法。本文利用凌陽(yáng)16 位單片機(jī)可以自讀寫片內(nèi)程序空間的特性,通過(guò)在片內(nèi)駐留BootLoader 程序的方式實(shí)現(xiàn)了凌陽(yáng)16 位單片機(jī)片內(nèi)程序的在需要時(shí)的遠(yuǎn)程升級(jí)。單片機(jī)獲取數(shù)據(jù)的方式可以有很多,本文選取通過(guò)串口獲取數(shù)據(jù)進(jìn)行程序升級(jí)為例,并選取常見(jiàn)的凌陽(yáng)單片機(jī)SPCE061A 為例介紹了此方法的設(shè)計(jì)思路以及實(shí)現(xiàn)過(guò)程。單片機(jī)的應(yīng)用非常廣泛,在某些情況下,單片機(jī)內(nèi)部程序的升級(jí)在所難免,但是往往需要對(duì)單片機(jī)產(chǎn)品進(jìn)行收回才能實(shí)現(xiàn),這樣在一些遠(yuǎn)程設(shè)備的程序升級(jí)問(wèn)題上就顯得非常不方便。但是有些遠(yuǎn)程設(shè)備本身留有遠(yuǎn)程通訊的方式:例如某些遠(yuǎn)程數(shù)據(jù)傳輸模塊,為了把數(shù)據(jù)上報(bào)總會(huì)留有通訊的接口,比如422、485 甚至GPRS 或者局域網(wǎng)接口;又或者某些車載定位設(shè)備,為了和監(jiān)控中心通訊會(huì)留有GSM、CDMA 或者GPRS 等通訊方式。在這種情況下就可以利用其現(xiàn)有的通訊方式對(duì)其內(nèi)部單片機(jī)程序進(jìn)行升級(jí)而不需要收回產(chǎn)品。本文的主要內(nèi)容就是來(lái)研究這種遠(yuǎn)程升級(jí)單片機(jī)程序的方法。由于近年來(lái)凌陽(yáng)科技的單片機(jī),尤其是 16 位單片機(jī),得到了越來(lái)越多的推廣,其應(yīng)用領(lǐng)域越來(lái)越廣泛。本文選取一種常見(jiàn)的凌陽(yáng)科技的16 位單片機(jī)SPCE061A 為例,來(lái)介紹單片機(jī)程序遠(yuǎn)程升級(jí)的方法。SPCE061A 里內(nèi)嵌了32K 字的閃存(FLASH),即可以作為程序存儲(chǔ)空間又可以存儲(chǔ)數(shù)據(jù),并且有自讀寫任意閃存地址的能力,本文利用這一功能,提出了通過(guò)在單片機(jī)中駐留BootLoader 程序的方法,來(lái)實(shí)現(xiàn)單片機(jī)程序的遠(yuǎn)程升級(jí)。遠(yuǎn)程升級(jí)的實(shí)現(xiàn),需要單片機(jī)自身的響應(yīng)同時(shí)還需要遠(yuǎn)程服務(wù)器提供升級(jí)所需的代碼。下文將通過(guò)這兩個(gè)方面來(lái)分別介紹。
標(biāo)簽: 單片機(jī)程序 遠(yuǎn)程升級(jí)
上傳時(shí)間: 2013-10-31
上傳用戶:yxgi5
九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來(lái)控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問(wèn)I/O空間中所有地址的最外層特權(quán)級(jí)。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 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許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級(jí)執(zhí)行的程序所訪問(wèn)。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見(jiàn),當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問(wèn)的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問(wèn)所有I/O地址,要么不可訪問(wèn)所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問(wèn)部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問(wèn)另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問(wèn)I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問(wèn);否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問(wèn)I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見(jiàn),TSS內(nèi)偏移66H的字確定I/O許可位圖的開(kāi)始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開(kāi)始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問(wèn)許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開(kāi)始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開(kāi)始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過(guò),則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問(wèn)。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對(duì)應(yīng)I/O端口00H—3FH DB 10000000B ;對(duì)應(yīng)I/O端口40H—47H DB 01100000B ;對(duì)用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實(shí)行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見(jiàn),不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見(jiàn)即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開(kāi)始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問(wèn)的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問(wèn)的許可檢查總被認(rèn)為不可訪問(wèn)而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無(wú)意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見(jiàn),只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過(guò)任務(wù)門調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。
上傳時(shí)間: 2013-12-11
上傳用戶:nunnzhy
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1