隨著我國通信、電力事業的發展,通信、電力網絡的規模越來越大,系統越來越復雜。與之相應的對交流供電的可靠性、靈活性、智能化、免維護越來越重要。在中國通信、電力網絡中,傳統的交流供電方案是以UPS或單機式逆變器提供純凈不間斷的交流電源。由于控制技術的進步、完善,(N+X)熱插拔模塊并聯逆變電源已經非常成熟、可靠;在歐美的通信、電力發達的國家,各大通信運營商、電力供應商、軍隊均大量應用了這種更合理的供電方案。與其它方案相比較,(N+X)熱插拔模塊并聯逆變電源具有以下明顯的優點。
上傳時間: 2014-03-24
上傳用戶:alan-ee
T-60W開關電源技術參數
上傳時間: 2013-10-28
上傳用戶:change0329
適用于51單片機的串口發n
上傳時間: 2014-12-25
上傳用戶:qingzhuhu
PSHLY-B回路電阻測試儀介紹
上傳時間: 2013-11-05
上傳用戶:木子葉1
89c51一種用N+1條線實現矩陣鍵盤
標簽: 矩陣鍵盤
上傳時間: 2014-12-26
上傳用戶:lhw888
假定從8位AD中讀取數據(如果是更高位的AD可定義數據類型為int),子程序為get_ad(); 1、限幅濾波法(又稱程序判斷濾波法) A、方法: 根據經驗判斷,確定兩次采樣允許的最大偏差值(設為A) 每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值 B、優點: 能有效克服因偶然因素引起的脈沖干擾 C、缺點 無法抑制那種周期性的干擾 平滑度差 /* A值可根據實際情況調整 value為有效值,new_value為當前采樣值 濾波程序返回有效的實際值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值濾波法 A、方法: 連續采樣N次(N取奇數) 把N次采樣值按大小排列 取中間值為本次有效值 B、優點: 能有效克服因偶然因素引起的波動干擾 對溫度、液位的變化緩慢的被測參數有良好的濾波效果 C、缺點: 對流量、速度等快速變化的參數不宜 /* N值可根據實際情況調整 排序采用冒泡法*/
上傳時間: 2014-12-26
上傳用戶:nanshan
摘要:本文詳細的介紹了基于施耐德Modicon Premium T PCX 57 PLC在郵政自動化分揀系統中控制系統的應用,系統的網絡拓撲結構,工藝流程和信息采集等。關鍵詞:T PCX57 PLC FIPIO總線 OPC Momentum I/O模塊 分揀系統
上傳時間: 2013-11-10
上傳用戶:kristycreasy
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了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 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
arm指令集(1) ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。 (1)B 跳4專指令 B〔條件) (地址) B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的地址,從那里繼續執行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。 (2)BL 帶返回的跳轉指令 BI,〔條件) (地址) BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執行,它是子例程的一個基本但強力的實現。 (3)BLX 帶返回和狀態切換的跳轉指令 BLX <地址> BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉到指令中指定的目標地址,并將程序狀態切換到Thumb狀態,該指令同時將PC寄存器的內容復制到LR寄存器中。 BLX(1)指令屬于無條件執行的指令。 第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內容復制到LR寄存器中。 (4)BX 帶狀態切換的跳轉指令 BX(條件) (dest) BX指令跳轉到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。
上傳時間: 2014-12-27
上傳用戶:laomv123
8051單片機系統擴展與接口技術:第一節 8051 單片機系統擴展概述第二節 單片機外部存儲器擴展第三節 單片機輸入輸出(I/O)口擴展及應用第四節 LED顯示器接口電路及顯示程序第五節 單片機鍵盤接口技術第六節 單片機與數模(D/A)及模數(A/D)轉換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機送出的地址信號,用于訪問外部存儲器單元或I/O端口。A 地址總線是單向的,地址信號只是由單片機向外發出。B 地址總線的數目決定了可直接訪問的存儲器單元的數目。例如N位地址,可以產生2N個連續地址編碼,因此可訪問2N個存儲單元,即通常所說的尋址范圍為 2N個地址單元。MCS—51單片機有十六位地址線,因此存儲器展范圍可達216 = 64KB地址單元。C 掛在總線上的器件,只有地址被選中的單元才能與CPU交換數據,其余的都暫時不能操作,否則會引起數據沖突。2、數據總線(Data Bus,簡寫為DB)數據總線用于在單片機與存儲器之間或單片機與I/O端口之間傳送數據。A 單片機系統數據總線的位數與單片機處理數據的字長一致。例如MCS—51單片機是8位字長,所以數據總線的位數也是8位。B 數據總線是雙向的,即可以進行兩個方向的數據傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實際上就是一組控制信號線,包括單片機發出的,以及從其它部件送給單片機的各種控制或聯絡信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結構形式大大減少了單片機系統中連接線的數目,提高了系統的可靠性,增加了系統的靈活性。此外,總線結構也使擴展易于實現,各功能部件只要符合總線規范,就可以很方便地接入系統,實現單片機擴展。
上傳時間: 2013-10-18
上傳用戶:assef