1. 單片機原理的單片機
單片機早期的含義為單片微型計算機SCM,簡稱單片機。
工作原理分為如下幾步:
取指令。從內存儲器取出指令送到指令寄存器。
分析指令。對指令寄存器中存放的指令進行分析,由解碼器對操作碼進行解碼,將指令的操作碼轉換成相應的控制電信號,並由地址碼確定操作數的地址。
執行指令。它是由操作控制線路發出的完成該操作所需的一系列控制信息,完成指令所需要的操作。
為執行下一條指令做准備。形成下一條指令的地址,指令計數器(PC)指向存放下一條指令的地址,最後控制單元將執行結果寫入內存。
2. Atmel單片機
Atmel一共有三個系列的單片機AT89 AT90 AT91.
AT89是以51內核為標準的單片機。它是改進型的51單片機。比如說標準的8051單片機沒有20pin封裝的晶元。但是AT89C2051 AT89C4051都是20pin封裝的單片機。它主要是把原51單片機的P0口和P2口省略了,然後再改進了一些功能。可以認為它們是精簡型51單片機,比較適合初學者學習。AT89有許多型號。比如AT89C51 AT89S51 AT89C52 AT89S52 AT89S8252(後面幾款其實是8052單片機,但是和8051的指令系統兼容的,只是增加了一些功能而已,也可以認為是51系列的單片機)。對於AT89系列單片機都是FLASH型單片機,燒錄次數至少在1000次以上(數據手冊提供,實際估計要在4000以上了)只要晶元上帶有「s」字樣的單片機都可以支持ISP(在線燒錄)。
AT90系列單片機主要對應的是AVR單片機(這是Atmel的最主要的單片機了)。AVR分成三檔。Attiny系列,AT90系列,ATmega系列。分別對應AVR中的低檔,中檔和高檔單片機。現在有的AT90系列單片機已經轉型給了Attiny系列和ATmega系列了。所有的AVR單片機都支持ISP。而且AVR單片機是一款RISC(精簡指令)型單片機。51單片機是CISC(集中指令)型單片機。AVR單片機的功能遠遠強於51.
AT91系列單片機主要對應的是高端的32位ARM單片機。一般採用ARM7內核,ARM是現在嵌入式系統32位里的主流單片機。
3. arm單片機和avr、51有什麼區別
ARM、DSP、FPGA的技術特點和區別
ARM(AdvancedRISCMachines)是微處理器行業的一家知名企業,設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟體。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位單片機的行業標准,它提供一系列內核、體系擴展、微處理器和系統晶元方案,四個功能模塊可供生產廠商根據不同用戶的要求來配置生產。由於所有產品均採用一個通用的軟體體系,所以相同的軟體可在所有產品中運行。目前ARM在手持設備市場佔有90以上的份額,可以有效地縮短應用程序開發與測試的時間,也降低了研發費用。
DSP(digitalsingnalprocessor)是一種獨特的微處理器,有自己的完整指令系統,是以數字信號來處理大量信息的器件。一個數字信號處理器在一塊不大的晶元內包括有控制單元、運算單元、各種寄存器以及一定數量的存儲單元等等,在其外圍還可以連接若干存儲器,並可以與一定數量的外部設備互相通信,有軟、硬體的全面功能,本身就是一個微型計算機。DSP採用的是哈佛設計,即數據匯流排和地址匯流排分開,使程序和數據分別存儲在兩個分開的空間,允許取指令和執行指令完全重疊。也就是說在執行上一條指令的同時就可取出下一條指令,並進行解碼,這大大的提高了微處理器的速度。另外還允許在程序空間和數據空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶元。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。由於它運算能力很強,速度很快,體積很小,而且採用軟體編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。根據數字信號處理的要求,DSP晶元一般具有如下主要特點:
(1)在一個指令周期內可完成一次乘法和一次加法;
(2)程序和數據空間分開,可以同時訪問指令和數據;
(3)片內具有快速RAM,通常可通過獨立的數據匯流排在兩塊中同時訪問;
(4)具有低開銷或無開銷循環及跳轉的硬體支持;
(5)快速的中斷處理和硬體I/O支持;
(6)具有在單周期內操作的多個硬體地址產生器;
(7)可以並行執行多個操作;
(8)支持流水線操作,使取指、解碼和執行等操作可以重疊執行。
當然,與通用微處理器相比,DSP晶元的其他通用功能相對較弱些。
FPGA是英文FieldProgrammableGateArray(現場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎上進一步發展的產物,是專用集成電路(ASIC)中集成度最高的一種。FPGA採用了邏輯單元陣列LCA(LogicCellArray)這樣一個新概念,內部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(InputOutputBlock)和內部連線(Interconnect)三個部分。用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的邏輯。它還具有靜態可重復編程和動態在系統重構的特性,使得硬體的功能可以像軟體一樣通過編程來修改。作為專用集成電路(ASIC)領域中的一種半定製電路,FPGA既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。可以毫不誇張的講,FPGA能完成任何數字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬體描述語言自由的設計一個數字系統。通過軟體模擬,我們可以事先驗證設計的正確性。在PCB完成以後,還可以利用FPGA的在線修改能力,隨時修改設計而不必改動硬體電路。使用FPGA來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,採用不同的編程方式。加電時,FPGA晶元將EPROM中數據讀入片內編程RAM中,配置完成後,FPGA進入工作狀態。掉電後,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。可以說,FPGA晶元是小批量系統提高系統集成度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
區別是什麼?:ARM具有比較強的事務管理功能,可以用來跑界面以及應用程序等,其優勢主要體現在控制方面,而DSP主要是用來計算的,比如進行加密解密、調制解調等,優勢是強大的數據處理能力和較高的運行速度。FPGA可以用VHDL或verilogHDL來編程,靈活性強,由於能夠進行編程、除錯、再編程和重復操作,因此可以充分地進行設計開發和驗證。當電路有少量改動時,更能顯示出FPGA的優勢,其現場編程能力可以延長產品在市場上的壽命,而這種能力可以用來進行系統升級或除錯。
新手在學習時,最好能有51單片機的基礎.這樣今後學起別的片子來會快很多.推薦你們用鐵牛單片機實驗板F1版
4. 現在比較主流的32位單片機學哪個好
便攜儀器、工控、小家電等電子產品用STM32還是比較多的,32位單片機基本都是基於ARM-CORTEX內核,重要是了解其架構和外設怎麼用,至於編程無非就是C或者C++。所以我建議你先找個STM32F1系列的單片機來學,學完之後以後就算是用其他家的單片機(比如TI\ATMEL)也很容易上手的。另外,熟悉後再移植下FreeRTOS,跑一下系統,在復雜的應用場合單片機跑系統是大勢所趨。
5. AVR單片機怎樣進行32位運算
AVR3232位RISC處理器內核是專門針對同時要求高性能和低功耗的現代化應用而開發的,可在每個時鍾周期內處理更多的工作,因此能夠以更低的時鍾頻率、非常低的功耗,達到相同的吞吐量。
AVR32單片機是ATMEL公司在2006年繼AVR之後推出的,由ATMEL公司獨立研發,它也不同於其它32位的ARM。AVR是1997年由ATMEL公司挪威設計中心的A先生與V先生利用ATMEL公司的Flash新技術,共同研發出RISC精簡指令集的高速8位單片機。
6. 英飛凌的32位單片機用什麼開發環境
支持 TriCore 的開發環境有:Tasking, HighTec.
免費版的開發環境 HighTec 可以從以下地址下載:www.infineon.com/FreeTricoreToolChain
7. atmel 公司推出的單片機晶元有哪些
你還是比較了解atmel 公司的,因為他一共有隻三個系列的單片機:
51單片機是AT89系列的;AVR單片機是AT90系列的;還有就是AT91系列單片機,內核用的是ARM,有16位的也有32位的;
優勢是相對的,因為他們各有千秋,51適合初學者入門,是學習單片機的基石;AVR又上了一個台階能讓你對單片機內部各個寄存器有更深入的了解;功能最強大的當然是ARM,也最有優勢。
但實際中要考慮成本和用途,低端產品用51單片機肯定成本低,所以要比ARM有優勢;高端產品ARM最強大
8. ATMEL單片機和STC單片機相比有什麼優缺點
AVR是流行大廠,所佔市場份額較大,技術領先, 但不和51兼容,價格較貴
STC堅守51體系,有較多的人熟悉掌握,並且增強了許多功能,實際上就是和AVR類似的功能和技術,如PWM 單時鍾執行周期AD轉換SPI 介面內部RC時鍾可外部中斷喚醒的掉電模式等同樣性能下比AVR便宜不少但STC無更高檔的8位單片機,如FLASH達64K以上,RAM達4K單片機,同價位下,AVR單片機的EEPROM容量較小,中低檔都為512B STC單片機的EEPROM容量較大,多數都在4K以上,但STC的EEPROM不支持單個位元組擦除,只能以512位元組為一個扇區擦除STC ISP下載和UART串口合用,方便使用,節省了引腳,但有人說它是偽ISP 實際上8位單片機畢竟有它的局限,因此再追求高速度大容量也趕不上16位和32位微處理器,因此我認為如果不追求高速度高性能,一般應用STC單片機都能滿足要求,對於復雜的數據處理和控制還得32位的ARM上場
9. 同一個項目分別用stm32和51單片機會有什麼不同
李工的經驗,有如下幾點不同,希望你供你參考。
1.51是8位單片機,而stm32是32位單片機。時鍾方面stm32運行頻率更高,性能更好。兩種單片機性能差別比較大。
2.片上資源不一樣。簡單講stm32單片機外設豐富,比如串口,I2c等。stm32單片機片上flash和RAM更大。以後升級功能,改進功能的空間大。如果考慮以後功能升級,建議考慮stm32.
3.成本上應該是51單片機要便宜一些。
4.stm32單片機開發資料和參考程序比較多,有庫函數,應用起來方便。51單片機更多直接操作寄存器,開發不方便。
我是北漂李工,一個北漂8年的程序員。
在項目開發過程中,我們經常會遇到需要單片機選型,所以我們常常會根據項目功能需求來選擇合適的單片機品牌和型號。常見的51內核單片機和STM32單片機也會是我們主要考慮的型號。
STM32與51單片機的參數差異 STM32與51單片機軟體開發難度差異STM32使用寄存器比51單片機要多很多,其配置比51復雜,而且中斷邏輯,時鍾配置使能控制等很多概念都是51單片機中所沒有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加強大,雖然官方提供了開發固件庫和相關開發輔助工具,但很多時候,遇到bug調試難度也加大了很多。
stm32固件庫很多實用結構體和指針變數,很多在51單片機開發過程不太注重結構體與指針的使用,那麼在STM32開發過程中,就難以理解其固件庫的運用邏輯。
STM32與51單片機的性價比差異STM32比51處理速度快,外設功能豐富強大,所以價格普遍比51單片機偏貴,在項目選型過程中,需要根據項目功能需求,選擇合適的單片機,如果是51單片機能用,那麼考慮項目成本,肯定是不能選擇STM32,如果51單片機不能用,即使再便宜,也用不了。
總之, 作為單片機開發工程師,需要能夠進行一定的器件選型能力,這個也是必備的專業技能。
搞多了開發,你會發現其實用什麼真的不重要,只要你會用就行。單片機好比一個精密機床,你要想加工一件作品,你用任何品牌的機床都可以,關鍵點是這個機床你會不會用,了解通透程度如何。不同品牌機床操作方法肯定大同小異,不會差別很多,你會用一種,另外一種不用看手冊,也能猜出個七八分。機床這樣,編程也是這樣,給你個51,你應該能控制全世界。
首先如果同一個項目可以用51和STM32同時開發,就不建議使用STM32了,51成本更低。
STM32和51單片機不同點有很多:
1.開發方式不同
51單片機一般是直接操作寄存器,STM32主要操作庫函數編程
2.系統資源不同
一般而言STM32資源要比51單片機更多
3.開發環境可能不同
51和STM32一般來講都可以在Keil下開發,但STM32有更多中選擇,可以在Linux下面開發,windows Esplise下開發,甚至直接用VSCode + 插件方式開發。
4.操作系統區別
一般而言,51單片機不支持操作系統,STM32支持各種主流操作系統,STM32開發起來更容易,可以很方便的利用系統實現各種場景下的應用,51單片機由於沒有操作系統,開發起來有一定阻礙,甚至有時候必須要做出部分功能的犧牲才能達到整體功能的和諧運行。
5.後期維護方式可能不同
STM32資源足夠多,可以寫一個bootloader程序來完成之後的系統升級工作,不需要拆機就可以完成固件的升級,而51單片機則不可以。
STM32系列單片機分為CORTEX M0,M1,M4內核,個人覺得STM32F0系列的從性價比,功能上可以完全替代51單片機,而且性能更好。當然也可以使用51,價格更便宜一些,,但是要做功能復雜一些的產品,51系列的單片機是不能滿足的,比如驅動RGB 屏,至少要用STM32F429,支持LTDC介面,而且需要外擴內存,支持FMC介面,比如要做數字音頻,要支持I2S ,比如要做USB傳輸,要支持USB ,要移植操作系統,文件系統等等,要看CPU 的資源等等,總之,要根據所做的項目看CPU的資源是否滿足要求是非常重要的,這要再設計前期靠考慮周到,否則,項目做到一半發現資源不夠,需要重來是很郁悶的事情。
做產品要考慮成本,幾毛錢就能搞定的,沒必要幾塊甚至幾十塊。一般來講,價格越貴的,資源越多,使用起來越簡單,隨心所欲。簡而言之,價格越低,資源越少的單片機,完成項目的難度越大,需要優化代碼和演算法。
在stm32之前是8051的天下,silabs的c8051f外設相當的強大。硬體不錯,可惜代碼不夠多。atmel的代碼比較多,可惜晶元不夠強大。
stm32一出,橫掃天下,要硬體有硬體,要軟體有軟體,價格便宜量又足,連低端產品都用他。
電動自行車控制器都用它,無刷電機都用它。
stm32是史上最廣泛使用的單片機。
只要資源夠用,都可以,20年前我用8051,現在用stm32。stm32方便些,可以在線調試。我現在開發東西復雜一點的,用stm32 1系列和4系列。簡單一點的用stm8s一塊多錢的樣子。
我覺得你的問題對比對象不太對,一般能用51的項目用stm8或者avr即可。一般來說stm32比51強太多了,無論是性能和價格都沒有可比性。
所以在我看來開發上沒有什麼太大不同,無非就是開發環境不一樣,如果代碼規范的話很容易進行互相移植(最近晶元漲價嚴重,我們公司正在換國產),而所謂的外設(uart iic spi等等)其實沒有太大區別。
但是在生產上差別就出來了,主要在於交貨能力,一般而言同為一級代理采購物料,st的交貨能力要比stc的強(當然最近行情st也不行了,交期干到了9月份)。所以如果你的產品是主力長期貨,建議選擇交貨能力強的。
我就記得51單片機放不了幾個變數就超出了。復雜點的程序都很難寫。