熱插拔表示一個系統(tǒng)在輸入端、輸出端和信號總線都處于工作狀態(tài)的情況下,安裝或拆卸電源模塊的能力。熱插拔冗余電源系統(tǒng)增加了系統(tǒng)的容錯程度,這對于要求緊急停機的系統(tǒng)格外需要。 為了實現(xiàn)一個熱插拔電源系統(tǒng),設計者應當深入了解一些電氣方面的有關問題,比如冗余技術和電流共享,并且他還應當對散熱、安全性和機械方面的問題加以注意。 電源系統(tǒng)的冗余通常用n+x的方法來描述,這里的n代表在滿足系統(tǒng)最大供電要求時所需要的電源模塊數(shù)量,x表示所安裝附加電源模塊的數(shù)量。所以,一個n+1的系統(tǒng)就表示系統(tǒng)有比能提供最大負載電流條件下所需最少的電源模塊數(shù)還多1個的電源模塊。 正如其它冗余電源系統(tǒng)一樣,在熱插拔系統(tǒng)中加上更多的電源模塊可以增加冗余度,所以,如果在一個系統(tǒng)中安裝了比能支持最大系統(tǒng)負載所需要的最少模塊還多x個的電源模塊,就能夠在有x個模塊失效的情況下仍保證維持系統(tǒng)全部正常工作。
上傳時間: 2013-11-07
上傳用戶:gundamwzc
KEIL7.0完全破解版、中文補丁 k51v700acc.com Keil C51 V7.00 0FDH的漢字bug補丁,同時處理A51和C51兩個文件,把他放到\bin\目錄下執(zhí)行。 this software is update to bin\ for hanzhi use SN = K1RIP-M2192-KO14E 用戶名(FIRST & LAST)= 11RI2Z 這是已經(jīng)通過了的安裝碼 安裝過程: 可以選擇評估安裝,也可以選擇完全安裝.選擇完全安裝后輸入上面系列號,如果提示插入A盤時選擇解壓目錄的/ADDON/c51AddON/目錄即可完成安裝。 解壓目錄帶有minitos for keil C51的項目,可以直接在Keil C51上測試和學習嵌入式操作系統(tǒng)。 minitos for 51版本 可以使用keilc51進行調(diào)試, 學習嵌入操作系統(tǒng) 無須硬件支持,可以在keilc51可以直接運行 minitos 0226 for keil C51的項目文件在: \MiniTOS51_0226移植_Release_20090204\MiniTOS\KeilC51\project 文件名為minitos51.Uv2
上傳時間: 2014-12-25
上傳用戶:lalalal
寫給學單片機的年輕人:周立功 珍惜求學機會 作為過來人思前想后,我感到完全有責任將發(fā)自心底的感受傳遞給年輕一代,“一個企業(yè)家心靈深處渴望優(yōu)秀人才的卓越追求和深層次的嘆息、痛苦和感受”。您們千萬不要等到畢業(yè)求職時才覺得自己能力太差,世界上從來就沒有后悔藥。當然,如果您現(xiàn)在看了我寫的這篇文章可能還不算晚,因為您還有機會在以后的歲月里奮起直追——“亡羊補牢,尤未為晚”。對于現(xiàn)在剛進入大學的學生,您應該更加珍惜這美好的求學機會,因為眨眼之間幾年就過去了,您很快就會感到來自全社會生存競爭的壓力,您面臨的對手再也不僅僅是您身邊的同學,今天您在班上的成績的確是前幾名,但一走到社會上去才感到是多么地脆弱而又多么地不堪一擊。 面試本科生 在面試大多數(shù)本科生時,我僅僅是詢問了一些有關MCS-51 系列單片機的基本原理,但卻幾乎很少有人能夠完全答對,簡直是五花八門。很多作為一個即將畢業(yè)的自動化專業(yè)本科生,至今還不知道單片機是這個專業(yè)的核心基礎,難道不可悲嗎?您的水平不高我完全心中有底,其實我只要求這些學生能夠掌握單片機應用開發(fā)的基本技能,用匯編和C51 寫過一些基本的程序,真正動手做過一些簡單的項目,然后將自己做過的項目寫成比較規(guī)范的文檔。我想,這種形式的“自我介紹”肯定要比讓別人看您那寫的千遍一律的“八股文”簡歷不知要強多少倍,古人言:“一葉知秋”其實講的就是這個道理。平心而論只有具備這樣基礎的學生才配得上企業(yè)花錢對您進行二次“開發(fā)” 事實上,很多學生根本就不管老師平時是多么地勸導都聽不進去,我認為您只要平時善于做一個有心人,主動一些多找老師請教,然后從大三開始幫老師打打下手干一些活。還有一個途徑就是自己花錢購買一些學習開發(fā)實驗板,加強動手能力的訓練。但也有很多學生說沒有錢,可事實上并非如此,現(xiàn)在的學生購買手機成風,我不知道手機對您們現(xiàn)在來說到底有多大的用途?事實上,現(xiàn)在的學生家庭條件普遍都不太好,可這些孩子們的攀比心里卻十分地嚴重和可怕。到今天即將畢業(yè)之際才感到找工作太難。父母一個子兒地攢下一些辛苦錢給您購買電腦容易嗎?“望子成龍――可憐天下父母心”!他們是希望您能夠?qū)W到一些真本事,而您可能很多時間都在玩游戲,上網(wǎng)聊天,實際上對于您來說僅僅是舉手之勞,只要花幾百元買一塊實驗板,辛苦一個暑假的時間強化實踐,可能您就會與眾不同。與此同時,可能您的信心大增,前途一片光明。俗話說得好:倉庫有糧,心中不慌!如果您平時沒有準備,那么臨時匆匆忙忙地上陣面試肯定是要敗下來的。從2003 年開始是全國第一次擴招之后畢業(yè)人數(shù)最多的第一年,以后的畢業(yè)生還會更多,同時還有更多的研究生與本科生搶飯碗,面對就業(yè)的困境壓力不能說不大,痛苦在其中。還有就是我每天都要面臨那些看不完的自我介紹簡歷,很可惜幾乎都是清一色的“八股文”令人討厭。其實只要您的成績不是太差,分數(shù)不是應聘成功的關鍵,重要的是做人要踏實,不要有水分,實際上,只要將您平時做過的小制作寫成一篇心得,再帶上您的作品,“事實勝于雄辯”這樣更能打動人。還有很多經(jīng)歷了四年本科又三年研究生階段學習行將畢業(yè)的碩士生,不僅不知道嵌入式操作系統(tǒng)是什么東西,而且連C++都不能熟練掌握,驅(qū)動程序開發(fā)的能力就更不容提了,僅僅做了一個單片機的應用設計就拿到碩士文憑了,術業(yè)缺乏專攻泛泛而談,說句實在話,怎么樣也教人無法接受啊!對于我來說,如果您沒有特別的才能,我寧愿用三年時間培養(yǎng)一個好的本科生給更高的待遇,他肯定不比一般的碩士生差。所以,考上了研究生之后,您要時刻明白加強動手能力的培養(yǎng)和前沿科學技術的學習至關重要的,這是您將來面試的“殺手澗”,因為您畢業(yè)之后要求的工資待遇起碼是一般本科生的兩倍,但是這個錢不是那么好拿的。頂多3-5 年的時間,大家肯定能夠看到一個現(xiàn)實,那就是如果您還不能熟練地掌握嵌入式操作系應用開發(fā)技術的話,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?鄧伯伯有句名言,不管白貓還是黑貓,抓住老鼠就是好貓!我們知道企業(yè)家是要賺錢的,否則這個企業(yè)就留不住人才,無情的市場競爭機制將會毫不猶豫地將這個老板淘汰出局。一個可持續(xù)發(fā)展的企業(yè),如果離開了富有聰明才智的優(yōu)秀人才,那是不可想象的。光有幾個還不行,而是要有一個卓越的軍團。 就業(yè)問題 其實就業(yè)的問題,對于一個努力的人來說是何等地簡單,我面試了300 多本科生,我只對其中幾個成績中等的本科生感興趣,他們主要是參加過2001 年全國電子大賽,有的是平時業(yè)余時間,暑假及其寒假都在跟老師干活的學生,與他們聊天真是一種莫大的享受和欣慰,對于我來說真的是如獲至寶。于是,我就立即勸他們,您的成績中等確實難以考上好的學校和導師還不如不考研究生以免浪費時間,同時也充滿自信告訴他們,“我就是伯樂!我愿意給您機會和花錢培養(yǎng)您”。事實上,即便您考上研究生,如果沒有遇上具有超前眼光和經(jīng)費充足的導師,您讀了也白讀,更何況現(xiàn)在的研究生擴招的這么多?一個導師帶那么多研究生,有那么多課題嗎?即便有的話,他應付得過來嗎?可能殘酷的現(xiàn)實將會讓您看到,畢業(yè)之后回頭一看還遠遠不如當年同您一道畢業(yè)的同班同學。確實也是,人家的機會比您好得多,關鍵是人家對待機會比您把握得好,可以說:恰到火候。難道非要讀研究生理論水平才高嗎?這是何等地荒謬啊!我們知道電子與計算機技術的發(fā)展日新月異。大學的更新速度一定就要快嗎?回答是否定的,比如說推廣PHILIPS 的最新單片機和USB 技術吧!他們的更新速度肯定比一個可持續(xù)發(fā)展的企業(yè)要慢得多,難道說我們的人才水平不夠高嗎?我們公司就有一批這樣在各個領域里出類拔萃的“年輕專家”從 2003 年開始,我們將會有一系列的專著在北京航空航天大學出版社出版,大多數(shù)的著作都來自于我們長期的基礎研究和應用開發(fā),可以毫不夸張地說這些都是我們這個年輕團隊合作的結晶。他們是優(yōu)秀和卓越的人才,他們沒有就業(yè)的壓力,他們不怕炒魷魚,相反我倒時刻要想盡辦法加強公司的管理,從工資,獎金,福利,生活和事業(yè)成就感等各個方面絞盡腦汁善待人才和留住人才,這么努力的人才根本就不需要過多地為工作和生活發(fā)愁,對于這個問題當然是仁者見仁智者見智,也就是下面我要講到的問題,一個人如何根據(jù)自己的特點、條件和機遇對自己如何定位的問題,也是至關重要的。 定位問題 比如說,如果您對單片機的理解僅僅是入門水平的話,那么您首先就應該低調(diào)一些,因為您主要的任務是為了尋找一個可以學習的機會,說句實在話,此刻此刻您一定要清醒地意識到:尋找伯樂比眼前的利益更加重要!因為您現(xiàn)在確實還沒有可以驕傲的資本,您一定要想盡辦法取得第一次正式踏入社會的入場卷,這對您來說是何等地重要啊!俗話說得好,“萬丈高樓從地起”您一定要尋找機會通過業(yè)績表現(xiàn)出您的能力,您確實與眾不同之處。這樣您就可能在一個公司里樹立您的“信用”,有了信用之后隨之而來的機會將會越來越多,到那時您根本就不用不愁自己的待遇和地位問題了。所以對于一個剛剛步入社會的年輕人來說,您能夠做到以“誠信” 打天下,您將來的前途肯定是無限光明。千萬不要感到自己在班上的成績是前幾名或者相對來說自己的動手能力相比之下比同學強多少、多少,或者自己在讀書期間貸了多少款,或者家里是多么地缺錢,因為當您加入整個社會的競爭之后,這些都不是您要求高薪的理由,這個時候您的心態(tài)將可能會決定您的命運,因此對自己要有充分的認識和正確的估價,經(jīng)常是很多學生用這些理由向我開出高價,我無話可說只好“搖頭和嘆息”。 如果您的水平還不夠,我認為也不要自卑,要知道機會是時刻屬于有準備的年輕人,但也不可掉以輕心,此時此刻,您應該振作起來,立即拿起書本努力學習和加強實戰(zhàn)的訓練,待到羽翼豐滿之時大膽地走出去闖蕩,讓社會來對您做一個恰當?shù)脑u價,然后再根據(jù)現(xiàn)實的情況不斷地調(diào)整自己,繼續(xù)學習和實踐,由于電子和計算機科學的高速發(fā)展呈現(xiàn)日新月異的變化局勢,您一定要明白:您距離失敗永遠只有6 個月!
標簽: 單片機
上傳時間: 2013-11-02
上傳用戶:vodssv
at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產(chǎn)生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實這樣規(guī)定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數(shù)115200 8 N 1以及運行XMODEM協(xié)議。對USB DEVICE進行初始化以及運行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內(nèi)啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅(qū)動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動,這時rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時bms為低電平,則系統(tǒng)從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復位,就可以看到系統(tǒng)先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
在單片機應用開發(fā)中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著 工程師。為幫助工程師解決單片機設計上的難題,《電子工程專輯》網(wǎng)站特邀Holtek香 港分公司工程部處長鄧宏杰先生擔任《單片機應用編程技巧》專題討論的嘉賓,與廣大 設計工程師交流單片機設計開發(fā)經(jīng)驗。現(xiàn)根據(jù)論壇中的討論歸納出單片機開發(fā)中應掌握 的幾個基本技巧。一、 如何提高C語言編程代碼的效率鄧宏杰指出,用C語言進行單片機程序設計是單片機開發(fā)與應用的必然趨勢。他強調(diào):“ 如果使用C編程時,要達到最高的效率,最好熟悉所使用的C編譯器。先試驗一下每條C語言編譯以后對應的匯編語言的語句行數(shù),這樣就可以很明確的知道效率。在今后編程的 時候,使用編譯效率最高的語句。” 他指出,各家的C編譯器都會有一定的差異,故編譯效率也會有所不同,優(yōu)秀的嵌入式系統(tǒng)C編譯器代碼長度和執(zhí)行時間僅比以匯編語言編寫的同樣功能程度長5-20%。他說:“對于復雜而開發(fā)時間緊的項目時,可以采用C語言,但前提是要求你對該MCU系統(tǒng)的C語言和C編譯器非常熟悉,特別要注意該C編譯系統(tǒng)所能支持的數(shù)據(jù)類型和算法。雖然C語言是最普遍的一種高級語言,但由于不同的MCU廠家其C語言編譯系統(tǒng)是有所差別的,特別是在一些特殊功能模塊的操作上。所以如果對這些特性不了解,那么調(diào)試起來問題就會很 多,反而導致執(zhí)行效率低于匯編語言。” 二、 如何減少程序中的bug? 對于如何減少程序的bug,鄧宏杰給出了一些建議,他指出系統(tǒng)運行中應考慮的超范圍管理參數(shù)有: 1.物理參數(shù)。這些參數(shù)主要是系統(tǒng)的輸入?yún)?shù),它包括激勵參數(shù)、采集處理中的運行參 數(shù)和處理結束的結果參數(shù)。合理設定這些邊界,將超出邊界的參數(shù)都視為非正常激勵或 非正常回應進行出錯處理。 2.資源參數(shù)。這些參數(shù)主要是系統(tǒng)中的電路、器件、功能單元的資源,如記憶體容量、 存儲單元長度、堆疊深度。在程式設計中,對資源參數(shù)不允許超范圍使用。 3.應用參數(shù)。這些應用參數(shù)常表現(xiàn)為一些單片機、功能單元的應用條件。如E2PROM的擦 寫次數(shù)與資料存儲時間等應用參數(shù)界限。 4.過程參數(shù)。指系統(tǒng)運行中的有序變化的參數(shù)。
上傳時間: 2013-10-21
上傳用戶:chukeey
R2=0時電動及回饋制動狀態(tài)下的機械特性 1、改變他勵直流電動機機械特性有哪些方法? 2、他勵直流電動機在什么情況下,從電動機運行狀態(tài)進入回饋制動狀態(tài)?他勵直流電動機回饋制動時,能量傳遞關系,電動勢平衡方程式及機械特性又是什么情況? 重點 掌握直流電機的電動和回饋制動特性 難點 調(diào)節(jié)直流電動機M的額定值(三個條件互相制約,同時滿足。) 1、額定電流IN 2、額定勵磁電流IfN 3、額定轉(zhuǎn)速nN 了解和測定他勵直流電動機在R2=0時電動及回饋制動狀態(tài)下的機械特性 直流他勵電動機機械特性測定的實驗原理圖
上傳時間: 2013-10-12
上傳用戶:sdlqbbla
無論是自動應答機、護照/身份驗證設備,或者是便利店內(nèi)的銷售點終端,都有一些重要信息,例如口令、個人身份識別號(PIN)、密鑰和專有加密算法等,需要特別保護以防失竊。金融服務領域采用了各種精細的策略和程序來保護硬件和軟件。因此,對于金融交易系統(tǒng)的設計者來講,在他設計一個每年要處理數(shù)十億美元業(yè)務的設備時,必將面臨嚴峻挑戰(zhàn)。為確保可信度,一個支付系統(tǒng)必須具有端到端的安全性。中央銀行的服務器通常放置在一個嚴格限制進入的建筑物內(nèi),周圍具有嚴密的保護,但是遠端的支付終端位于公共場所,很容易遭受竊賊侵襲。盡管也可以將微控制器用保護外殼封閉起來,并附以防盜系統(tǒng),一個有預謀的攻擊者仍然可以切斷電源后突破防盜系統(tǒng)。外殼可以被打開,如果將外殼與微控制器的入侵響應加密邊界相聯(lián)結,對于安全信息來講就增加了一道保護屏障。為了實現(xiàn)真正的安全性,支付系統(tǒng)應該將入侵響應技術建立在芯片內(nèi)部,并使用可以信賴的運算內(nèi)核。這樣,執(zhí)行運算的芯片在發(fā)生入侵事件時就可以迅速刪除密鑰、程序和數(shù)據(jù)存儲器,實現(xiàn)對加密邊界的保護1。安全微控制器最有效的防護措施就是,在發(fā)現(xiàn)入侵時迅速擦除存儲器內(nèi)容。DS5250安全型高速微控制器就是一個很好的典范,它不僅可以擦除存儲器內(nèi)容,而且還是一個帶有SRAM程序和數(shù)據(jù)存儲器的廉價的嵌入式系統(tǒng)。物理存儲器的信心保證多數(shù)嵌入式系統(tǒng)采用的是通用計算機,而這些計算機在設計時考慮更多的是靈活性和調(diào)試的便利性。這些優(yōu)點常常又會因引入安全缺口而成為其缺陷2。竊賊的首個攻擊點通常是微控制器的物理存儲器,因此,對于支付終端來講,采用最好的存儲技術尤其顯得重要。利用唾手可得的邏輯分析儀,例如Hewlett-Packard的HP16500B,很容易監(jiān)視到地址和數(shù)據(jù)總線上的電信號,它可能會暴露存儲器的內(nèi)容和私有數(shù)據(jù),例如密鑰。防止這種竊聽手段最重要的兩個對策是,在存儲器總線上采用強有力的加密措施,以及選擇在沒有電源時也能迅速擦除的存儲技術。有些嵌入式系統(tǒng)試圖采用帶內(nèi)部浮置柵存儲器(例如EPROM或閃存)的微控制器來獲得安全性。最佳的存儲技術應該能夠擦除其內(nèi)容,防止泄密。但紫外可擦除的EPROM不能用電子手段去擦除,需要在紫外燈光下照射數(shù)分鐘才可擦除其內(nèi)容,這就增加了它的脆弱性。閃存或EEPROM要求處理器保持工作,并且電源電壓在規(guī)定的工作范圍之內(nèi),方可成功完成擦除。浮置柵存儲技術對于安全性應用來講是很壞的選擇,當電源移走后,它們的狀態(tài)會無限期地保持,給竊賊以無限長的時間來找尋敏感數(shù)據(jù)。更好的辦法是采用象SRAM這樣的存儲技術,當電源被移走或入侵監(jiān)測電路被觸發(fā)時以下述動作之一響應:• 當電源被移走后存儲器復零。• 入侵監(jiān)測電路在數(shù)納秒內(nèi)擦除內(nèi)部存儲器和密鑰。• 外部存儲器在應用軟件的控制下以不足100ns的寫時間進行擦除。
上傳時間: 2013-11-14
上傳用戶:dick_sh
首先我必須放下架子,因為本文的讀者中很大一部分在不久的將來都會超越我。而且我也100%不能自詡為高手,我不過是比本文的部分讀者碰的釘子多些罷了。再退一步講,即使你請了一位“高手”幫忙,如果他不是對你的具體系統(tǒng)十分了解,也只能給你一些原則上的建議罷了。
標簽: 單片機 程序調(diào)試
上傳時間: 2013-11-19
上傳用戶:戀天使569
C語言常見英語詞匯及其他提示語可以用下.
上傳時間: 2013-11-08
上傳用戶:kxw404582151
注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調(diào)光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現(xiàn)難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個PWM 周期,共循環(huán)255 次。 假設bright=100 時候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環(huán)之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅(qū)動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環(huán)。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時候,將brights 置零重新計數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數(shù)一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-08
上傳用戶:dingdingcandy