詳細解釋基于OHCI的USB主機初始化U盤的全過程。
上傳時間: 2013-12-24
上傳用戶:xzt
基于OHCI的USB主機初始化U盤的過程,未加注釋的。
上傳時間: 2017-02-19
上傳用戶:qweqweqwe
統一建模語言( U M L)是一個通用的可視化建模語言,用于對軟件進行描述、可視化處 理、構造和建立軟件系統制品的文檔
上傳時間: 2014-11-24
上傳用戶:it男一枚
一個數值計算程序的OpenMP的并行化代碼,其中對循環部分的并行化可以做為參考
上傳時間: 2017-06-19
上傳用戶:aig85
高性能ADC產品的出現,給混合信號測試領域帶來前所未有的挑戰。并行ADC測試方案實現了多個ADC測試過程的并行化和實時化,減少了單個ADC的平均測試時間,從而降低ADC測試成本。 本文實現了基于FPGA的ADC并行測試方法。在閱讀相關文獻的基礎上,總結了常用ADC參數測試方法和測試流程。使用FPGA實現時域參數評估算法和頻域參數評估算法,并對2個ADC在不同樣本數條件下進行并行測試。 通過在FPGA內部實現ADC測試時域算法和頻域算法相結合的方法來搭建測試系統,完成音頻編解碼器WM8731L的控制模式接口、音頻數據接口、ADC測試時域算法和頻域算法的FPGA實現。整個測試系統使用Angilent 33220A任意信號發生器提供模擬激勵信號,共用一個FPGA內部實現的采樣時鐘控制模塊。并行測試系統將WM8731.L片內的兩個獨立ADC的串行輸出數據分流成左右兩通道,并對其進行串并轉換。然后對左右兩個通道分別配置一個FFT算法模塊和時域算法模塊,并行地實現了ADC參數的評估算法。 在樣本數分別為128和4096的實驗條件下,對WM8731L片內2個被測.ADC并行地進行參數評估,被測參數包括增益GAIN、偏移量OFFSET、信噪比SNR、信號與噪聲諧波失真比SINAD、總諧波失真THD等5個常用參數。實驗結果表明,通過在FPGA內配置2個獨立的參數計算模塊,可并行地實現對2個相同ADC的參數評估,減小單個ADC的平均測試時間。 FPGA片內實時評估算法的實現節省了測試樣本傳輸至自動測試機PC端的時間。而且只需將HDL代碼多次復制,就可實現多個被測ADC在同一時刻并行地被評估,配置靈活。基于FPGA的ADC并行測試方法易于實現,具有可行性,但由于噪聲的影響,測試精度有待進一步提高。該方法可用于自動測試機的混合信號選項卡或測試子系統。 關鍵詞:ADC測試;并行;參數評估;FPGA;FFT
上傳時間: 2013-07-11
上傳用戶:tdyoung
性價比超高的U盤讀寫模塊-PB375A PB375A是一個傻瓜化、簡單化的U盤讀寫解決方案。您無需了解繁瑣USB HOST底層協議和FAT文件系統,只需要將您的系統mcu與模塊通過SPI或者UART通信,操作幾個簡單命令,便可完成讀寫創建刪除文件等等功能,讓您的系統非常簡單快速的增加U盤讀寫功能。該解決方案是目前國內性價比最高的解決方案。可以根據您的需求提供芯片或者模塊,為您不斷壓縮成本,占領市場先機。 基本不需要占用單片機系統的存儲空間,最少只需要幾個字節的RAM 和幾百字節的代碼。 價格 :相比51MCU+SL811/CH375方案有著極其強的價格優勢 功能:新建、刪除、讀寫數據,打開關閉文件 檢測U盤是否存在,滿足單片機及嵌入式系統讀寫操作U盤的要求。 技術特征 # ● 用于嵌入式系統/單片機讀寫U 盤、閃盤、閃存盤、USB 移動硬盤、USB 讀卡器等。 ● 支持符合USB 相關規范基于Bulk-Only 傳輸協議的各種U 盤/閃存盤/外置硬盤。 ● 支持文件系統FAT12 和FAT16 及FAT32 ● 文件操作功能:新建、刪除、讀寫數據,打開關閉文件等。 ● SPI接口,支持3.3V電平 ● 單芯片解決方案,該模塊只需要一個主控芯片外加少量的電容電阻便可,相對于51MCU+SL811/CH375的模塊,無論模塊尺寸還是成本都有著極大的優勢。 ● 模塊尺寸:31mm*36mm ● 該模塊可根據要求進行定制 # 豐富的例程代碼幫助您更好的開發 # 更多詳情請查看資料或與我們聯系
上傳時間: 2013-04-24
上傳用戶:安首宏A
本文介紹了一個以嵌入式USB 主機接口芯片SL811HS 為核心,采用U 盤為存儲介質的單片機低功耗海量存儲系統。該系統實現了儀器的便攜化,從而,為便攜儀器或嵌入式系統的外掛式海量存儲
上傳時間: 2013-06-14
上傳用戶:zhaoq123
高性能ADC產品的出現,給混合信號測試領域帶來前所未有的挑戰。并行ADC測試方案實現了多個ADC測試過程的并行化和實時化,減少了單個ADC的平均測試時間,從而降低ADC測試成本。本文實現了基于FPGA的ADC并行測試方法。在閱讀相關文獻的基礎上,總結了常用ADC參數測試方法和測試流程。使用FPGA實現時域參數評估算法和頻域參數評估算法,并對2個ADC在不同樣本數條件下進行并行測試。 本研究通過在FPGA內部實現ADC測試時域算法和頻域算法相結合的方法來搭建測試系統,完成了音頻編解碼器WM8731L的控制模式接口、音頻數據接口、ADC測試時域算法和頻域算法的FPGA實現。整個測試系統使用Angilent33220A任意信號發生器提供模擬激勵信號,共用一個FPGA內部實現的采樣時鐘控制模塊。并行測試系統將WM8731.L片內的兩個獨立ADC的串行輸出數據分流成左右兩通道,并對其進行串并轉換。然后對左右兩個通道分別配置一個FFT算法模塊和時域算法模塊,并行地實現了ADC參數的評估算法。在樣本數分別為128和4096的實驗條件下,對WM8731L片內2個被測.ADC并行地進行參數評估,被測參數包括增益GAIN、偏移量OFFSET、信噪比SNR、信號與噪聲諧波失真比SINAD、總諧波失真THD等5個常用參數。實驗結果表明,通過在FPGA內配置2個獨立的參數計算模塊,可并行地實現對2個相同ADC的參數評估,減小單個ADC的平均測試時間。FPGA片內實時評估算法的實現節省了測試樣本傳輸至自動測試機PC端的時間。而且只需將HDL代碼多次復制,就可實現多個被測ADC在同一時刻并行地被評估,配置靈活。基于FPGA的ADC并行測試方法易于實現,具有可行性,但由于噪聲的影響,測試精度有待進一步提高。該方法可用于自動測試機的混合信號選項卡或測試子系統。
上傳時間: 2013-06-07
上傳用戶:gps6888
本書分三部分介紹在美國廣泛應用的、高功能的M68HC11系列單片機(8位機 ,Motorola公司)。內容包括M68HC11的結構與其基本原理、開發工具EVB(性能評估板)以及開發和應用技術。本書在介紹單片機硬、軟件的基礎上,進一步介紹了在美國實驗室內,如何應用PC機及EVB來進行開發工作。通過本書的介紹,讀者可了解這種單片機的原理并學會開發和應用方法。本書可作為大專院校單片機及其實驗的教材(本科、短訓班)。亦可供開發、應用單片機的各專業(計算機、機電、化工、紡織、冶金、自控、航空、航海……)有關技術人員參考。 第一部分 M68HC11 結構與原理Motorola單片機 1 Motorla單片機 1.1 概述 1.1.1 Motorola 單片機發展概況(3) 1.1.2 Motorola 單片機結構特點(4) 1.2 M68HC11系列單片機(5) 1.2.1 M68HC11產品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9單片機引腳說明(8) 1.3 Motorola 32位單片機(14) 1.3.1中央處理器(CPU32)(15) 1.3.2 定時處理器(TPU)(16) 1.3.3 串行隊列模塊(QSM)(16) 1.3.4 系統集成模塊 (SIM)(16) 1.3.5 RAM(17) 2 系統配置與工作方式 2.1 系統配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的編程與擦除(20) 2?2 工作方式選擇(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通單片工作方式(23) 2.3.2 普通擴展工作方式(23) 2.3.3 特殊自舉方式(27) 2.3.4 特殊測試方式(28) 3 中央處理器(CPU)與片上存儲器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和雙累加器D(32) 3.1.2 變址寄存器X、Y(32) 3.1.3 棧指針SP(32) 3.1.4 程序計數器PC(33) 3.1.5 條件碼寄存器CCR(33) 3.2 片上存儲器(34) 3.2.1 存儲器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 復位和中斷 4.1 復位(41) 4.1.1 M68HC11的系統初始化條件(41) 4.1.2 復位形式(43) 4.2 中斷(48) 4.2.1 條件碼寄存器CCR中的中斷屏蔽位(48) 4.2.2 中斷優先級與中斷矢量(49) 4.2.3 非屏蔽中斷(52) 4.2.4 實時中斷(53) 4.2.5 中斷處理過程(56) 5 M68HC11指令系統 5.1 M68HC11尋址方式(59) 5.1.1 立即尋址(IMM)(59) 5.1.2 擴展尋址(EXT)(60) 5.1.3 直接尋址(DIR)(60) 5.1.4 變址尋址(INDX、INDY)(61) 5.1.5 固有尋址(INH)(62) 5.1.6 相對尋址(REL)(62) 5.1.7 前置字節(63) 5.2 M68HC11指令系統(63) 5.2.1 累加器和存儲器指令(63) 5.2.2 棧和變址寄存器指令(68) 5.2.3 條件碼寄存器指令(69) 5.2.4 程序控制指令(70) 6 輸入與輸出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 應答I/O子系統(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 數據格式(83) 6.3.3 SCI硬件結構(84) 6.3.4 SCI寄存器(86) 6.4 串行外圍接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引腳信號(92) 6.4.3 SPI結構(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系統與外部設備進行串行數據傳輸(99) 7 定時器系統與脈沖累加器 7.1 概述(105) 7.2 循環計數器(107) 7.2.1 時鐘分頻器(107) 7.2.2 計算機正常工作監視功能(110) 7.2.3 定時器標志的清除(110) 7.3 輸入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定時器輸入捕捉鎖存器(TIC1、TIC2、TIC3) 7.3.3 輸入信號沿檢測邏輯(113) 7.3.4 輸入捕捉中斷(113) 7.4 輸出比較功能(114) 7.4.1 概述(114) 7.4.2 輸出比較功能使用的寄存器(116) 7.4.3 輸出比較示例(118) 7.5 脈沖累加器(119) 7.5.1 概述(119) 7.5.2 脈沖累加器控制和狀態寄存器(121) 8 A/D轉換系統 8.1 電荷重新分布技術與逐次逼近算法(125) 8.1.1 基本電路(125) 8.1.2 A/D轉換逐次逼近算法原理(130) 8.2 M68HC11中A/D轉換的實現方法(131) 8.2.1 逐次逼近A/D轉換器(131) 8.2.2 控制寄存器(132) 8.2.3 系統控制邏輯(135)? 9 單片機的內部操作 9.1 用立即> 圖書前言 美國Motorola公司從80年代中期開始推出的M68HC11系列單片機是當今功能最強、性能/價格比最好的八位單片微計算機之一。在美國,它已被廣泛地應用于教學和各種工業控制系統中。? 該單片機有豐富的I/O功能,完善的系統保護功能和軟件控制的節電工作方式 。它的指令系統與早期Motorola單片機MC6801等兼容,同時增加了91條新指令。其中包含16位乘法、除法運算指令等。 為便于用戶開發和應用M68HC11單片機,Motorola公司提供了多種開發工具。M68HC11 EVB (Evaluation Board)性能評估板就是一種M68HC11系列單片機的廉價開發工具。它既可用來 調試用戶程序,又可在仿真方式下運行。為方便用戶,M68HC11 EVB可與IBM?PC連接 ,借助于交叉匯編、通信程序等軟件,在IBM?PC上調試程序。? 本書分三部分(共15章)介紹了M68HC11的結構和基本原理、開發工具-EVB及開發應用實例等。第一部分(1~9章),介紹M68HC11的結構和基本原理。包括概述,系統配置與工作方式、CPU和存儲器、復位和中斷、指令系統、I/O、定時器系統和脈沖累加器、A/D轉換系統、單片機的內部操作等。第二部分(10~11章),介紹M68HC11 EVB的原理和技術特性以及EVB的應用。第三部分(12~15章),介紹M68HC11的開發與應用技術。包括基本的編程練習、應用程序設計、接口實驗、接口設計及應用等。 讀者通過學習本書,不僅可了解M68HC11的硬件、軟件,而且可了解使用EVB開發和應用M68HC11單片機的方法。在本書的第三部分專門提供了一部分實驗和應用程序。? 本書系作者張寧作為高級訪問學者,應邀在美國馬薩諸塞州洛厄爾大學(University of Massachusetts Lowell)工作期間完成的。全書由張寧執筆。在編著過程中,美國洛厄爾大學的R·代克曼教授?(Professor Robert J. Dirkman)多次與張寧一起討論、研究,并提供部分資料及實驗數據。參加編寫和審校等工作的還有王云霞、孫曉芳、劉安魯、張籍、來安德、張楊等同志。? 為將M68HC11系列單片機盡快介紹給我國,美國Motorola公司的Terrence M.S.Heng先生曾大力支持本書的編著和出版。在此表示衷心感謝。
上傳時間: 2013-10-27
上傳用戶:rlgl123
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