寫在前面:很多朋友都問我做的是什么東西,我說單片機,但是大部分人也是不甚了解,額,我粗略的將它寫出來,并且和一些可編程的芯片做了一些比較,我盡量寫的通俗些,因為有些東西如果沒有接觸過數(shù)電模電的可能很難理解。參考資料一些是百度的,一些來自老師,一些來自自己理解。如有疏漏請指出。謝謝
注:下面所有的芯片后面都省略了“系列”2字。 通用型CPU : 1968年“叛逃”仙童公司(Fairchild)的摩爾和諾依曼(有名的仙童“八叛徒”中兩個)加上安迪·格魯夫(A.Grove)創(chuàng)立了Intel公司,1971年推出了世界上第一枚處理器。而同樣曾經(jīng)是仙童公司的銷售部主任的桑德斯(非“八叛徒”)1969年創(chuàng)立了AMD公司。如今這兩家公司都以生產(chǎn)通用型處理器而聞名世界,當然AMD在06年并購ATI之后,他也生產(chǎn)顯卡。早期AMD曾經(jīng)使用過Intel的核,之后研發(fā)出與Intel不同結構的CPU。(可見仙童半導體公司的厲害之處了,雖然它的輝煌時期在上個世紀60年代,后來因為“八叛徒”的出走,仙童一直處于低潮,而且換了好多東家,但是它的影響力一直持續(xù)到了今天,我們導師做變頻用的IGBT或者一些大功率可控硅首選的還是仙童,“八叛徒”也證實了當時美國硅谷人才濟濟) Intel酷睿雙核處理器(盒)
 AMD速龍雙核(盒)
 里面的CPU芯片
單片機(Microcontroller Unit) : 其實直譯過來應該叫做微控制器 8051 : 30年前,Intel推出了MSC-51系列,與71年的4位處理器不同的是51系列是8位的,也就是一次可以執(zhí)行8位,之后51發(fā)展就脫離通用型CPU的發(fā)展路線,后來在里面集成了IO,ROM,,RAM,定時計數(shù)器,中斷等等,其實廣義的講就成為了一款計算機,當然是有別于通用型計算機,相比較的話ROM(Read Only Memory)就相當于硬盤,程序軟件就是放在這個里面的,執(zhí)行的時候就按照你編寫的程序一條條往下執(zhí)行,不過燒寫進ROM的程序是機器碼,一般的ROM是比較小的,大概就幾K到幾十K之間,一張圖片都放不下的。RAM(Random Access Memory)就相當于電腦上的內存,內存的作用在于將運算的中間變量暫時存儲在這個地方,所以內存大的電腦,可以開很多軟件也不卡,RAM也就相當于這個功能,但是電腦上的有2G,但是單片機上的只有幾十字節(jié)到幾K。定時計數(shù)器其實每個電腦(準確的說是電腦CPU)都有,不過調用時需要API函數(shù),因為操作系統(tǒng)把所有和硬件有關系的操作都用API函數(shù)封裝了,其實無非就是計數(shù)的功能,1/主頻 秒計數(shù)值加一,就是這樣,想要定時多久就計算出該計數(shù)幾次就可以了。中斷的響應處理,對應于通用計算機比如對于鼠標,鍵盤等事件的響應處理等等,因為現(xiàn)在的計算機的主頻都上G了,中斷響應的時間大概是1/主頻,所以人是無法感覺到的,串口通信,早期的九針,一般的臺式機主機箱后面都有,筆記已經(jīng)沒有了,可以實現(xiàn)單片機和電腦的通信,或者兩臺單片機或兩臺計算機的通信。以上其實是單片機的簡介,而51當然全部具備,8051內核,51和通用CPU一樣是有自己的指令,51是111條,當然所謂的指令集其實是建立在匯編的基礎上的,如果你用C編程,最終編譯器會先將C語言程序先編譯成匯編語句,再把匯編語句編譯成機器碼。51的指令是CISC(Complex Instruction Set Computer)即復雜指令集計算機,也就是說指令不是單周期的,大部分都是1~3周期,但是乘法和除法是4個周期的,加上51的機器周期是外掛晶振的12分頻,即外面的晶振/12才是51的主頻,比較悲劇,所以它的速度永遠基本處于微秒級。51的IO(Input/Output)口是準雙向IO口,因為同一時刻這個口既可以作為輸入也可以作為輸出,而也只有51內核的單片機是這樣,其他后來研發(fā)的單片機都是標準IO口,也就是IO口必須要配置成輸入或者輸出才能工作。
At89s51單片機PDIP封裝
AVR : 和51比它來了一個質的飛躍,雖然也是8位的,但是AVR內核,131條指令,RISC(Reduced Instruction Set Computer)即精簡指令集計算機,也就是說幾乎所有指令都是單周期,AVR集成了只需要兩個時鐘周期硬件乘法器。不需分頻,精簡指令集,所以當它的晶振處于1M的時候,就可以達到1MIPS的速度。AVR除了有上面所提到的51的所有功能,還集成了8路10位ADC(Analog to digital converter將模擬量轉換為數(shù)字量),SPI(Serial Peripheral Interface串行外設接口即硬件SPI),TWI(Two – Wires serial Interface 即硬件I2C)等,這些都是各種通信協(xié)議的硬件實現(xiàn),而不是像51一樣只能靠模擬。AVR的IO為標準IO口,它可以輸出大電流,可以直接驅動繼電器,如果是3V電機,可以直接驅動,而最大只能輸出十幾毫安的51是做不到的,因為電機啟動需要大電流。當然芯片AVR有90S系列、tiny系列和mega系列,每種都有子產(chǎn)品,資源稍有不同。這款芯片體現(xiàn)了A先生和V先生的智慧,可以說AVR系列是一款經(jīng)典的單片機,不過很遺憾,最近它的號召力在慢慢下降,因為全球的供貨緊張和Atmel公司對市場的“遲鈍”反應,導致很多有心人在炒片子,據(jù)業(yè)內人士稱代理也在炒,其實很多這種芯片可能都是靠走.私,特別是珠三角,在國內,一旦有芯片被大量使用,那么跟風無數(shù),商家有利可圖自然大量購進賣出,那么就會缺貨,就和當年TI的DSP差不多(好芯片永遠話題不斷),所以不重視大中華市場是不行的。很多人都已經(jīng)轉戰(zhàn)ST或者STC的芯片,因為價格低,也許這算是AVR的一種沒落。 AVR : Atmega16芯片 PDIP封裝
AVR : Atmega16芯片 TQFP封裝
PIC : 與AVR一樣同是RISC,當然指令集是不一樣的。沒有用過并沒有多少發(fā)言權,個人感覺專用性比較強,擁有各種封裝,更適合用于批量生產(chǎn)的場合。 PIC單片機 PDIP封裝
 PIC單片機 TQFP封裝
MSP430 : TI(Texas Instruments德州儀器)公司的力作,16位單片機,最大的特點為低功耗,誕生十幾年來至今未見得有哪款單片機可以在功耗上與它抗衡,在時鐘關閉的時候最小只有0.1uA的功耗,低頻工作下也是微安級的,3.3V的電壓,這種功耗,它做成的手持設備,只要兩節(jié)干電池可以工作幾年。RISC,只有27條指令,相當簡潔,集成硬件乘法器,每個IO口都可以作為中斷,對于中斷的嵌套很方便,不像AVR只能以軟件來嵌套中斷,而且還有主次時鐘,自帶著鎖相環(huán)的功能。當然每個系列是不一樣的,資源多少的問題,這個片子一般都是TQFP封裝的,當然是有PDIP封裝的,較少而已,因為這片子引腳比較多。資源功能方面,當然說起TI的可編程芯片,可能更多人會想到DSP(Digital Signal Processor)芯片,430不可避免的帶著DSP的影子。當然也繼承了TI公司貴的特點,MSP430確實很貴。
MSP430單片機 PDIP封裝
STM8 : ST(SGS-THOMSON Microelectronics即意法半導體)的得意之作,8位單片機,手上有一套三合一體驗的板子,還沒有開始研究它,不過看下他的資源,所有都是AVR的8位機的兩倍,但是價格只有它的1/3到1/2,難怪很多人都轉戰(zhàn)ST了,價格永遠是硬道理,老板看中的是成本。 STM8系列單片機 TQFP封裝
總結 :由此可以看出其實除了51之外,其他的芯片資源都是差不多的,因為都是RISC結構的,加上功能足夠多,所以基本上操縱芯片無非就是操縱寄存器,當然這篇文章主要是寫給一些不是這個專業(yè)的朋友看的,隱去了一些東西,比如JTAG和E2PROM,Atmel公司對Flash和E2PROM的研究使它的芯片擦寫次數(shù)和質量都很高,關于開發(fā)工具的話,AVR有很多,公認編譯出來代碼效率最高的是IAR AVR,其次CVAVR(Code Vision AVR),ICCAVR,WinAVR(GCC,這個編譯器GNU開發(fā),完全免費)這三款代碼效率差不多,這些和Atmel公司開發(fā)的AVR Studio內聯(lián)就可以仿真,如果加上JTAG就可以單步仿真,下載可以使用ISP(In System Programmable 在線系統(tǒng)可編程)。MSP430和STM8都可以使用IAR的編譯軟件。 AVR單片機的ISP下載器,Usbasp
 自制的AVR JTAG仿真下載器
MSP430單片機 三合一仿真下載器
EDA (Electronic Design Automation):電子設計自動化
CPLD(Complex Programmable Logic Device) :CPLD其實有兩種,一種就是叫CPLD,還有一種稱為FPGA(Field Programmable Gate Array)。CPLD直譯叫做復雜可編程邏輯器件,FPGA直譯叫做現(xiàn)場可編程門陣列,它們準確的來說是硬件數(shù)字電路,里面是各種門的組合,而我們編程的目的在于在這塊芯片上熔出一個數(shù)字電路來,因為硬件的東西永遠都會比軟件快,它和通用型的CPU和單片機有著本質的區(qū)別在于它的并行性,因為數(shù)字和模擬電路通電后的反應都是瞬時的,非時序電路的各個節(jié)點之間是沒有所謂暫緩的,也就是說它不會像CPU或者單片機一樣是按照一條條的程序來執(zhí)行,當然利用狀態(tài)機可以,這個是編程的手法問題。CPLD是擁有ROM,它可以像單片機一樣下載完程序之后可以一直使用,而FPGA不可以,FPGA相當于一塊集結了數(shù)字電路的高速RAM,所以稱為現(xiàn)場可編程門陣列,它的程序只有在現(xiàn)場可用,一旦斷電就什么都沒有了,所以一般做產(chǎn)品的話就會在上面掛一個E2PROM。現(xiàn)在CPLD作為一種新興力量加入到可編程芯片中,在一些高速的場合,DSP芯片都無法完成的DSP技術,可以由CPLD來取代DSP芯片(注:DSP既可以是Digital Signal Processor數(shù)字信號處理芯片,也可以是Digital Signal Process數(shù)字信號處理技術)。現(xiàn)在由于IP軟核的復用,如果將處理器軟和下到CPLD中,那么這塊東西就變成了一款處理器,Nios處理器,有硬件的運行方式,但是也有像CPU和單片機一樣編程方式。世界上生產(chǎn)CPLD有名的公司是Altera、Xilinx公司等,一般教學可能Altera會多一些,至少我們學校訂購了Altera公司的產(chǎn)品,DE2開發(fā)板,使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language即超高速集成電路硬件描述語言)或者Verilog HDL(Verilog Hardware Description Language)顧名思義是對硬件進行直接的操作,Altera芯片的開發(fā)軟件是Quartus II。當然它可以做單片機或者通用CPU可以做的事情,但是由于芯片本身特性的局限是它無法像普通單片機或CPU一樣進行方便的編程,IP核和Nios可以說是解決方案。 Altera的FPGA芯片,由于管腳過多所以使用BGA封裝,引腳不在旁邊而在反面,如圖左邊是正面,右邊是反面
DSP (Digital Signal Processor / Digital Signal Process) : 數(shù)字信號處理芯片/數(shù)字信號處理技術 TMS320 :和MSP430一樣這是TI(Texas Instruments德州儀器)公司的力作,當然這個也和MSP430一樣是芯片系列的頭文件,準確的說這兩種芯片應該是TMS320XXXX或者是MSP430XXX,而我們專業(yè)使用的TMS320LF240X。從第一枚商用DSP芯片由TI生產(chǎn)到今天這幾十年,DSP的發(fā)展可謂飛速,速度越來越快,功耗越來越低,價格越來越低,功能越來越強大,特別是對于數(shù)字信號如音頻、圖像的處理,當然還有在我們電氣專業(yè)領域來說至關重要的變頻調速方面有著很重要的地位。TI的DSP芯片的發(fā)展中,留在市場上的有2000系列,5000系列和6000系列。它的結構和單片機基本沒有區(qū)別,只是更加適用于數(shù)字信號處理,所以它對處理數(shù)字信號和算法的能力是單片機遠遠無法達到的,它集成的硬件乘法器和本身的特性使它可以在1個時鐘周期就可以算出一個乘法和一個加法,而其對浮點和定點的運算是單片機速度達不到的(當然DSP是分為浮點和定點即Float – Point 和Fixed - Point),如快速傅里葉算法FFT或者PI調節(jié)算法的實現(xiàn),使用單片機完全是杯具。開發(fā)DSP的工具有CCS,其開發(fā)過程和單片機一樣,有C和匯編,也有JTAG仿真下載(當然JTAG是一種協(xié)議而已,這里不再贅述)。
 DSP芯片,TQFP封裝
ARM(Advanced RISC Machines) :既是一款處理器名字也是一個公司的名字 ARM :1991年成立于英國劍橋,這個偉大公司誕生不到二十年卻讓世界如此震驚,拿出你的手機,里面的處理器90%是ARM,他們不產(chǎn)芯片而是靠出賣自己的設計技術的授權,它擁有單片機、DSP、通用CPU的優(yōu)點,卻有著自己的特色,適用于消費電子、圖像處理、多媒體、移動設備等嵌入式領域,由于沒有用過,發(fā)言權比較少。授權方有Atmel、三星、索尼,飛思卡爾、英特爾、TI、ST等等。ARM用于嵌入式系統(tǒng)可以跑操作系統(tǒng),那是有別于通用CPU的操作系統(tǒng),嵌入于專用型的場合,使用Unix、Linux等操作系統(tǒng),比如手機的操作系統(tǒng)塞班(Symbian),Google的安卓(Android),還有微軟的Windows Mobile。 國內用的比較多的三星的ARM芯片,上圖為ARM11,BGA封裝
STM32 : 意法半導體的基于ARM Cortex-M3內核的32位單片機,資源非常豐富。可以跑操作系統(tǒng),但是因為內部存儲器的限制,只能跑uC/OS – II操作系統(tǒng)嚴格意義上說它是一款ARM,相當于ARM7。 STM32,TQFP封裝
后記:后面貼幾個開發(fā)軟件。
Wave6000 :國產(chǎn)比較悲劇的軟件,用于開發(fā)51的匯編編譯器
Keil uVision2 :用的最廣的C51編譯器用于編譯各種8051內核的單片機
內聯(lián)GCC的AVR Studio :用于編譯AVR系列的C程序
AVR fighter :用于AVR系列單片機的熔絲位設置和燒寫
IAR :這個公司開發(fā)各種單片機編譯軟件,有51、AVR、MSP430、STM8、STM32等等市場上見得到的單片機,并且編譯出來的代碼效率很高
Quartus II :Altera公司開發(fā)的編譯、燒寫其公司CPLD和FPGA的軟件
Altium Designer :畫板軟件,方便實用,可以觀看自己設計的板子的3D圖,但是國內支持的PCB還停留在Protel 99se
|