STC12C5A60S2精簡開發板使用手機及其經典例程
上傳時間: 2013-10-19
上傳用戶:JIEWENYU
C51單片機的串口通信例程
標簽: 串行通信
上傳時間: 2013-12-17
上傳用戶:wutong
DSP的使用正呈爆炸式發展。OFDM、GPS相關器、FFT、FIR濾波器或H.264之類計算密集型算法在從移動電話到汽車的各種應用中都很常見。設計人員實現DSP有三種選擇:他們可以使用DSP處理器、FPGA或掩膜ASIC。ASIC具有最高的吞吐量、最低的功耗和最低的成本,但其極大的NRE和較長研制周期使其對許多設計而言并不適用。定制ASIC的研制周期可達一年之久,比最終產品的使用壽命都長。FPGA已占居較大的市場份額,因為其能提供比DSP處理器更好的吞吐量,而且沒有ASIC的極大NRE和較長研制周期。 因此,常常將基于ARM的MCU和FPGA結合使用來實現這些設計,其中FPGA實現設計的DSP部分。然而,FPGA也有其自身的不足--最突出的是功耗很高(靜態功耗接近2W),且性能比ASIC慢。FPGA時鐘用于邏輯執行時通常限制為50MHz,而ASIC可以400MHz或更高頻率執行邏輯。其他缺點還包括在IP載入基于SRAM的FPGA時安全性還不夠理想,成本也較高。盡管FPGA成本已迅速降低,但價格通常在10,000片左右就不再下降,因此仍比較昂貴。 新型可定制Atmel處理器(CAP)MCU具有的門密度、單元成本、性能和功耗接近基于單元的ASIC,而NRE較低且開發時間較快。與基于ARM的非可定制標準產品MCU一樣,不需要單獨的ARM許可。 可定制MCU利用新型金屬可編程單元結構(MPCF)ASIC技術,其門密度介于170K門/mm2與210K門/mm2之間,與基于單元的ASIC相當。例如,實現D觸發器(DFF)的MPCF單元與標準的單元DFF都使用130nm的工藝,所用面積差不多相同。
上傳時間: 2013-10-29
上傳用戶:xymbian
在開放式數控系統結構模型的基礎上,研究了基于ISA總線的DSP通信控制原理。采用中斷方式完成了PC機和DSP之間的通信。介紹了以DriverWorks為工具開發ISA設備WDM驅動程序的方法,探討了中斷處理、驅動程序與應用程序之間的通信,簡要說明了驅動程序的安裝與調試。通過調試,系統設計運行穩定。 Abstract: The ISA bus and DSP correspondence control principle is investigated in the basis of the existing open architecture numerical control system.The interrupt method is used to realize the communication between PC and DSP based on the ISA bus.The methods of WDM driver exploitation for ISA device using Driver Works are introduced.The main process of driver program and the keys such as handle interrupt and the communication between the drivers and application are presented.And how to debug and install the drive is explained.
上傳時間: 2013-11-04
上傳用戶:kang1923
第一章 序論……………………………………………………………6 1- 1 研究動機…………………………………………………………..7 1- 2 專題目標…………………………………………………………..8 1- 3 工作流程…………………………………………………………..9 1- 4 開發環境與設備…………………………………………………10 第二章 德州儀器OMAP 開發套件…………………………………10 2- 1 OMAP介紹………………………………………………………10 2-1.1 OMAP是什麼?…….………………………………….…10 2-1.2 DSP的優點……………………………………………....11 2- 2 OMAP Architecture介紹………………………………………...12 2-2-1 OMAP1510 硬體架構………………………………….…12 2-2.2 OMAP1510軟體架構……………………………………...12 2-2.3 DSP / BIOS Bridge簡述…………………………………...13 2- 3 TI Innovator套件 -- OMAP1510 ……………………………..14 2-2.1 General Purpose processor -- ARM925T………………...14 2-2.2 DSP processor -- TMS320C55x …………………………15 2-2.3 IDE Tool – CCS …………………………………………15 2-2.4 Peripheral ………………………………………………..16 第三章 在OMAP1510上建構Embedded Linux System…………….17 3- 1 嵌入式工具………………………………………………………17 3-1.1 嵌入式程式開發與一般程式開發之不同………….….17 3-1.2 Cross Compiling的GNU工具程式……………………18 3-1.3 建立ARM-Linux Cross-Compiling 工具程式………...19 3-1.4 Serial Communication Program………………………...20 3- 2 Porting kernel………………………………………………….…21 3-2.1 Setup CCS ………………………………………….…..21 3-2.2 編譯及上傳Loader…………………………………..…23 3-2.3 編譯及上傳Kernel…………………………………..…24 3- 3 建構Root File System………………………………………..…..26 3-3.1 Flash ROM……………………………………………...26 3-3.2 NFS mounting…………………………………………..27 3-3.3 支援NFS Mounting 的kernel…………………………..27 3-3.4 提供NFS Mounting Service……………………………29 3-3.5 DHCP Server……………………………………………31 3-3.6 Linux root 檔案系統……………………………….…..32 3- 4 啟動及測試Innovator音效裝置…………………………..…….33 3- 5 建構支援DSP processor的環境…………………………...……34 3-5.1 Solution -- DSP Gateway簡介……………………..…34 3-5.2 DSP Gateway運作架構…………………………..…..35 3- 6 架設DSP Gateway………………………………………….…36 3-6.1 重編kernel……………………………………………...36 3-6.2 DEVFS driver…………………………………….……..36 3-6.3 編譯DSP tool和API……………………………..…….37 3-6.4 測試……………………………………………….…….37 第四章 MP3 Player……………………………………………….…..38 4- 1 MP3 介紹………………………………………………….…….38 4- 2 MP3 壓縮原理……………………………………………….….39 4- 3 Linux MP3 player – splay………………………………….…….41 4.3-1 splay介紹…………………………………………….…..41 4.3-2 splay 編譯………………………………………….…….41 4.3-3 splay 的使用說明………………………………….……41 第五章 程式改寫………………………………………………...…...42 5-1 程式評估與改寫………………………………………………...…42 5-1.1 Inter-Processor Communication Scheme…………….....42 5-1.2 ARM part programming……………………………..…42 5-1.3 DSP part programming………………………………....42 5-2 程式碼………………………………………………………..……43 5-3 雙處理器程式開發注意事項…………………………………...…47 第六章 效能評估與討論……………………………………………48 6-1 速度……………………………………………………………...48 6-2 CPU負載………………………………………………………..49 6-3 討論……………………………………………………………...49 6-3.1分工處理的經濟效益………………………………...49 6-3.2音質v.s 浮點與定點運算………………………..…..49 6-3.3 DSP Gateway架構的限制………………………….…50 6-3.4減少IO溝通……………….………………………….50 6-3.5網路掛載File System的Delay…………………..……51 第七章 結論心得…
上傳時間: 2013-10-14
上傳用戶:a471778
dsPIC30F數字信號控制器單片機和DSP領域的最佳選擇 什么是數字信號控制器 數字信號控制器(DSC)是單片機嵌入式控制器,它輕松集成了單片機(MCU)的控制功能以及數字信號處理器(DSP)的計算功能和數據吞吐能力。
上傳時間: 2013-12-23
上傳用戶:小儒尼尼奧
Virtex-5, Spartan-DSP FPGAs Application Note This application note demonstrates how efficient implementations of Digital Up Converters(DUC) and Digital Down Converters (DDC) can be done by leveraging the Xilinx DSP IPportfolio for increased productivity and reduced time to development. Step-by-step instruction is given on how to perform system-level trade off analysis and develop the most efficient FPGA implementation, thus allowing engineers a flexible, low-cost and low-power alternative to ASSP technologies.
標簽: Spartan-DSP Virtex FPGAs Ap
上傳時間: 2013-10-23
上傳用戶:raron1989
單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統) 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現在開始,我們將要系統地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數字的形式。但這種形式實在是為難我們人了,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數據送到相應的位置中去,為什么要送數據呢?第一個因為送入的數可以讓燈全滅掉,第二個是為了要實現延時,從這里我們可以看出來,在用單片機的編程語言編程時,經常要用到數據的傳遞,事實上數據傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數據傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規定做什么事情,后面還有一些參數,分析一下,數據傳遞必須要有一個“源”也就是你要送什么數,必須要有一個“目的”,也就是你這個數要送到什么地方去,顯然在上面那條指令中,要送的數(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數據傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0 ?。唬ǎ保? LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ?。唬ǎ担?;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ?。唬ǎ罚?D2: DJNZ R6,D2 ?。唬ǎ福? DJNZ R7,D1 ?。唬ǎ梗? RET ;(10) END ??;(11) 表1 MAIN: SETB P1.0 ?。唬ǎ保? MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ??;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ?。唬ǎ罚?D2: DJNZ R6,D2 ??;(8) DJNZ R7,D1 ??;(9) RET ;(10) END ?。唬ǎ保保?表2 這樣一來,我每次調用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環,這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調用則見表2中的主程,也就是先把一個數送入30H,在子程序中R7中的值并不固定,而是根據30H單元中傳過來的數確定。這樣就可以滿足要求。 從這里我們可以得出結論,在數據傳遞中要找到被傳遞的數,很多時候,這個數并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數,我們把尋找操作數所在單元的地址稱之為尋址。在這里我們直接使用數所在單元的地址找到了操作數,所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數放在工作寄存器中,從工作寄存器中尋找數據,則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數據送到累加器A中去。提一個問題:我們知道,工作寄存器就是內存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區別了嗎?為什么要加以區分呢?的確,這兩條指令執行的結果是完全相同的,都是將00H單元中的內容送到A中去,但是執行的過程不同,執行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(E5H 00H),而第二條則只要一個字節(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節又能有多少? 不對,如果這條指令只執行一次,也許無所謂,但一條指令如果執行上1000次,就是1毫秒,如果要執行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節數同樣如此。 再來提一個問題,現在我們已知,尋找操作數可以通過直接給的方式(立即尋址)和直接給出數所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數,分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數,就用MOV A,30H,那么下一個數呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數,不是得20條指令才能寫完嗎?這里只有20個數,如果要送200個或2000個數,那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據這個寄存器單元中的數值決定該到哪個單元中取數據,比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發生變化,比如取完一個數后,將這個寄存器單元中的值加1,還是執行同一條指令,可是取數的對象卻不一樣了,不是嗎。通過例子來說明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數20送到R7中,執行完后R7中的值應當是20。第二句是將立即數30H送入R0工作寄存器中,所以執行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內容送入A中,此時,執行這條指令的結果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉到標號LOOP處繼續執行,因此,執行完這句后,將轉去執行MOV A,@R0這句話,此時相當于執行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環20次為止,就實現了我們的要求:從30H單元開始將20個數據送入A中。 這也是一種尋找數據的方法,由于數據是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數據。 二、指令 數據傳遞類指令 1) 以累加器為目的操作數的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數34H送入A中,執行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 這組指令功能是把源地址單元中的內容送入工作寄存器,源操作數不變。
上傳時間: 2013-10-13
上傳用戶:3294322651
當今集成電路設計已經進入 SOC 時代,于是各公司針對自己的設計需求挑選一款性價比較高的處理器作為內核是一件非常重要的事情。下面將介紹一款集成了DSP 和MCU 功能的處理器ZSP neo 。ZSP neo 是一類新型的處理器,它在一個的內核中集成了DSP 和MCU 的功能。對于那些需要比現有8 位微控制器更高的控制處理性能,而又無需32 位微控制器的對成本敏感的應用來說,ZSP neo 是一個理想的選擇。ZSP neo 針對其性能要求采用了相應的架構:·采用基于 RISC 的架構:處理器具有靜態分支預測功能;所以程序員設計程序時無需考慮跳轉延時?!げ捎昧?Load-Store 架構:處理器對存儲器的操作使用 load 和store 指令;操作不直接發生在存儲器中。所有其他指令均為寄存器-寄存器操作;使用寄存器節省了存儲器帶寬。采用多種load/store 指令,這樣優化了存儲器操作;同時支持32 位和16 位的數據操作。處理器允許前推的靈活架構;功能單元的結果能夠在下個周期無條件地被其他功能單元使用。
上傳時間: 2013-10-19
上傳用戶:奔跑的雪糕
針對MCS51 微控制器(單片機)在實際工程開發中遇到的調試難題,提出一種在線調試解決方案。充分利用微控制器本身自帶RS232 接口,以Keil C51 開發出服務例程駐留于微控制器內,從而完成實際工程調試。該服務例程已在實際工程中得到現場應用,全面達到了設計要求。本文涉及的服務例程對于實際工程中MCS51 微控制器的調試具有普遍參考價值。
上傳時間: 2013-12-24
上傳用戶:stvnash