標(biāo)題: 漫談可編程芯片 [打印本頁(yè)]

作者: daming    時(shí)間: 2014-12-29 01:41
標(biāo)題: 漫談可編程芯片
寫在前面:很多朋友都問我做的是什么東西,我說單片機(jī),但是大部分人也是不甚了解,額,我粗略的將它寫出來,并且和一些可編程的芯片做了一些比較,我盡量寫的通俗些,因?yàn)橛行〇|西如果沒有接觸過數(shù)電模電的可能很難理解。參考資料一些是百度的,一些來自老師,一些來自自己理解。如有疏漏請(qǐng)指出。謝謝
注:下面所有的芯片后面都省略了“系列”2字。
通用型CPU
1968年“叛逃”仙童公司(Fairchild)的摩爾和諾依曼(有名的仙童“八叛徒”中兩個(gè))加上安迪·格魯夫(A.Grove)創(chuàng)立了Intel公司,1971年推出了世界上第一枚處理器。而同樣曾經(jīng)是仙童公司的銷售部主任的桑德斯(非“八叛徒”)1969年創(chuàng)立了AMD公司。如今這兩家公司都以生產(chǎn)通用型處理器而聞名世界,當(dāng)然AMD06年并購(gòu)ATI之后,他也生產(chǎn)顯卡。早期AMD曾經(jīng)使用過Intel的核,之后研發(fā)出與Intel不同結(jié)構(gòu)的CPU。(可見仙童半導(dǎo)體公司的厲害之處了,雖然它的輝煌時(shí)期在上個(gè)世紀(jì)60年代,后來因?yàn)椤鞍伺淹健钡某鲎撸赏恢碧幱诘统,而且換了好多東家,但是它的影響力一直持續(xù)到了今天,我們導(dǎo)師做變頻用的IGBT或者一些大功率可控硅首選的還是仙童,“八叛徒”也證實(shí)了當(dāng)時(shí)美國(guó)硅谷人才濟(jì)濟(jì))

Intel酷睿雙核處理器(盒)

AMD速龍雙核(盒)

里面的CPU芯片

單片機(jī)(Microcontroller Unit 其實(shí)直譯過來應(yīng)該叫做微控制器
       8051 30年前,Intel推出了MSC-51系列,與71年的4位處理器不同的是51系列是8位的,也就是一次可以執(zhí)行8位,之后51發(fā)展就脫離通用型CPU的發(fā)展路線,后來在里面集成了IO,ROM,,RAM,定時(shí)計(jì)數(shù)器,中斷等等,其實(shí)廣義的講就成為了一款計(jì)算機(jī),當(dāng)然是有別于通用型計(jì)算機(jī),相比較的話ROMRead Only Memory)就相當(dāng)于硬盤,程序軟件就是放在這個(gè)里面的,執(zhí)行的時(shí)候就按照你編寫的程序一條條往下執(zhí)行,不過燒寫進(jìn)ROM的程序是機(jī)器碼,一般的ROM是比較小的,大概就幾K到幾十K之間,一張圖片都放不下的。RAMRandom Access Memory)就相當(dāng)于電腦上的內(nèi)存,內(nèi)存的作用在于將運(yùn)算的中間變量暫時(shí)存儲(chǔ)在這個(gè)地方,所以內(nèi)存大的電腦,可以開很多軟件也不卡,RAM也就相當(dāng)于這個(gè)功能,但是電腦上的有2G,但是單片機(jī)上的只有幾十字節(jié)到幾K。定時(shí)計(jì)數(shù)器其實(shí)每個(gè)電腦(準(zhǔn)確的說是電腦CPU)都有,不過調(diào)用時(shí)需要API函數(shù),因?yàn)椴僮飨到y(tǒng)把所有和硬件有關(guān)系的操作都用API函數(shù)封裝了,其實(shí)無(wú)非就是計(jì)數(shù)的功能,1/主頻 秒計(jì)數(shù)值加一,就是這樣,想要定時(shí)多久就計(jì)算出該計(jì)數(shù)幾次就可以了。中斷的響應(yīng)處理,對(duì)應(yīng)于通用計(jì)算機(jī)比如對(duì)于鼠標(biāo),鍵盤等事件的響應(yīng)處理等等,因?yàn)楝F(xiàn)在的計(jì)算機(jī)的主頻都上G了,中斷響應(yīng)的時(shí)間大概是1/主頻,所以人是無(wú)法感覺到的,串口通信,早期的九針,一般的臺(tái)式機(jī)主機(jī)箱后面都有,筆記已經(jīng)沒有了,可以實(shí)現(xiàn)單片機(jī)和電腦的通信,或者兩臺(tái)單片機(jī)或兩臺(tái)計(jì)算機(jī)的通信。以上其實(shí)是單片機(jī)的簡(jiǎn)介,而51當(dāng)然全部具備,8051內(nèi)核,51和通用CPU一樣是有自己的指令,51111條,當(dāng)然所謂的指令集其實(shí)是建立在匯編的基礎(chǔ)上的,如果你用C編程,最終編譯器會(huì)先將C語(yǔ)言程序先編譯成匯編語(yǔ)句,再把匯編語(yǔ)句編譯成機(jī)器碼。51的指令是CISCComplex Instruction Set Computer)即復(fù)雜指令集計(jì)算機(jī),也就是說指令不是單周期的,大部分都是1~3周期,但是乘法和除法是4個(gè)周期的,加上51的機(jī)器周期是外掛晶振的12分頻,即外面的晶振/12才是51的主頻,比較悲劇,所以它的速度永遠(yuǎn)基本處于微秒級(jí)。51IOInput/Output)口是準(zhǔn)雙向IO口,因?yàn)橥粫r(shí)刻這個(gè)口既可以作為輸入也可以作為輸出,而也只有51內(nèi)核的單片機(jī)是這樣,其他后來研發(fā)的單片機(jī)都是標(biāo)準(zhǔn)IO口,也就是IO口必須要配置成輸入或者輸出才能工作。


At89s51單片機(jī)PDIP封裝

      AVR 51比它來了一個(gè)質(zhì)的飛躍,雖然也是8位的,但是AVR內(nèi)核,131條指令,RISCReduced Instruction Set Computer)即精簡(jiǎn)指令集計(jì)算機(jī),也就是說幾乎所有指令都是單周期,AVR集成了只需要兩個(gè)時(shí)鐘周期硬件乘法器。不需分頻,精簡(jiǎn)指令集,所以當(dāng)它的晶振處于1M的時(shí)候,就可以達(dá)到1MIPS的速度。AVR除了有上面所提到的51的所有功能,還集成了810ADCAnalog to digital converter將模擬量轉(zhuǎn)換為數(shù)字量),SPISerial Peripheral Interface串行外設(shè)接口即硬件SPI),TWITwo – Wires serial Interface 即硬件I2C)等,這些都是各種通信協(xié)議的硬件實(shí)現(xiàn),而不是像51一樣只能靠模擬。AVRIO為標(biāo)準(zhǔn)IO口,它可以輸出大電流,可以直接驅(qū)動(dòng)繼電器,如果是3V電機(jī),可以直接驅(qū)動(dòng),而最大只能輸出十幾毫安的51是做不到的,因?yàn)殡姍C(jī)啟動(dòng)需要大電流。當(dāng)然芯片AVR90S系列、tiny系列和mega系列,每種都有子產(chǎn)品,資源稍有不同。這款芯片體現(xiàn)了A先生和V先生的智慧,可以說AVR系列是一款經(jīng)典的單片機(jī),不過很遺憾,最近它的號(hào)召力在慢慢下降,因?yàn)槿虻墓┴浘o張和Atmel公司對(duì)市場(chǎng)的“遲鈍”反應(yīng),導(dǎo)致很多有心人在炒片子,據(jù)業(yè)內(nèi)人士稱代理也在炒,其實(shí)很多這種芯片可能都是靠走.私,特別是珠三角,在國(guó)內(nèi),一旦有芯片被大量使用,那么跟風(fēng)無(wú)數(shù),商家有利可圖自然大量購(gòu)進(jìn)賣出,那么就會(huì)缺貨,就和當(dāng)年TIDSP差不多(好芯片永遠(yuǎn)話題不斷),所以不重視大中華市場(chǎng)是不行的。很多人都已經(jīng)轉(zhuǎn)戰(zhàn)ST或者STC的芯片,因?yàn)閮r(jià)格低,也許這算是AVR的一種沒落。

AVR : Atmega16芯片 PDIP封裝


AVR : Atmega16芯片 TQFP封裝

       PIC AVR一樣同是RISC,當(dāng)然指令集是不一樣的。沒有用過并沒有多少發(fā)言權(quán),個(gè)人感覺專用性比較強(qiáng),擁有各種封裝,更適合用于批量生產(chǎn)的場(chǎng)合。

PIC單片機(jī) PDIP封裝

PIC單片機(jī) TQFP封裝

       MSP430   TITexas Instruments德州儀器)公司的力作,16位單片機(jī),最大的特點(diǎn)為低功耗,誕生十幾年來至今未見得有哪款單片機(jī)可以在功耗上與它抗衡,在時(shí)鐘關(guān)閉的時(shí)候最小只有0.1uA的功耗,低頻工作下也是微安級(jí)的,3.3V的電壓,這種功耗,它做成的手持設(shè)備,只要兩節(jié)干電池可以工作幾年。RISC,只有27條指令,相當(dāng)簡(jiǎn)潔,集成硬件乘法器,每個(gè)IO口都可以作為中斷,對(duì)于中斷的嵌套很方便,不像AVR只能以軟件來嵌套中斷,而且還有主次時(shí)鐘,自帶著鎖相環(huán)的功能。當(dāng)然每個(gè)系列是不一樣的,資源多少的問題,這個(gè)片子一般都是TQFP封裝的,當(dāng)然是有PDIP封裝的,較少而已,因?yàn)檫@片子引腳比較多。資源功能方面,當(dāng)然說起TI的可編程芯片,可能更多人會(huì)想到DSPDigital Signal Processor)芯片,430不可避免的帶著DSP的影子。當(dāng)然也繼承了TI公司貴的特點(diǎn),MSP430確實(shí)很貴。

MSP430單片機(jī) PDIP封裝

       STM8 STSGS-THOMSON Microelectronics即意法半導(dǎo)體)的得意之作,8位單片機(jī),手上有一套三合一體驗(yàn)的板子,還沒有開始研究它,不過看下他的資源,所有都是AVR8位機(jī)的兩倍,但是價(jià)格只有它的1/31/2,難怪很多人都轉(zhuǎn)戰(zhàn)ST了,價(jià)格永遠(yuǎn)是硬道理,老板看中的是成本。

STM8系列單片機(jī) TQFP封裝

總結(jié) :由此可以看出其實(shí)除了51之外,其他的芯片資源都是差不多的,因?yàn)槎际?font face="Times New Roman">RISC結(jié)構(gòu)的,加上功能足夠多,所以基本上操縱芯片無(wú)非就是操縱寄存器,當(dāng)然這篇文章主要是寫給一些不是這個(gè)專業(yè)的朋友看的,隱去了一些東西,比如JTAGE2PROM,Atmel公司對(duì)FlashE2PROM的研究使它的芯片擦寫次數(shù)和質(zhì)量都很高,關(guān)于開發(fā)工具的話,AVR有很多,公認(rèn)編譯出來代碼效率最高的是IAR AVR,其次CVAVRCode Vision AVR,ICCAVR,WinAVR(GCC,這個(gè)編譯器GNU開發(fā),完全免費(fèi))這三款代碼效率差不多,這些和Atmel公司開發(fā)的AVR Studio內(nèi)聯(lián)就可以仿真,如果加上JTAG就可以單步仿真,下載可以使用ISPIn System Programmable 在線系統(tǒng)可編程)。MSP430STM8都可以使用IAR的編譯軟件。

AVR單片機(jī)的ISP下載器,Usbasp

自制的AVR JTAG仿真下載器


MSP430單片機(jī) 三合一仿真下載器


EDA Electronic Design Automation):電子設(shè)計(jì)自動(dòng)化

       CPLDComplex Programmable Logic Device CPLD其實(shí)有兩種,一種就是叫CPLD,還有一種稱為FPGAField Programmable Gate Array)。CPLD直譯叫做復(fù)雜可編程邏輯器件,FPGA直譯叫做現(xiàn)場(chǎng)可編程門陣列,它們準(zhǔn)確的來說是硬件數(shù)字電路,里面是各種門的組合,而我們編程的目的在于在這塊芯片上熔出一個(gè)數(shù)字電路來,因?yàn)橛布臇|西永遠(yuǎn)都會(huì)比軟件快,它和通用型的CPU和單片機(jī)有著本質(zhì)的區(qū)別在于它的并行性,因?yàn)閿?shù)字和模擬電路通電后的反應(yīng)都是瞬時(shí)的,非時(shí)序電路的各個(gè)節(jié)點(diǎn)之間是沒有所謂暫緩的,也就是說它不會(huì)像CPU或者單片機(jī)一樣是按照一條條的程序來執(zhí)行,當(dāng)然利用狀態(tài)機(jī)可以,這個(gè)是編程的手法問題。CPLD是擁有ROM,它可以像單片機(jī)一樣下載完程序之后可以一直使用,而FPGA不可以,FPGA相當(dāng)于一塊集結(jié)了數(shù)字電路的高速RAM,所以稱為現(xiàn)場(chǎng)可編程門陣列,它的程序只有在現(xiàn)場(chǎng)可用,一旦斷電就什么都沒有了,所以一般做產(chǎn)品的話就會(huì)在上面掛一個(gè)E2PROM。現(xiàn)在CPLD作為一種新興力量加入到可編程芯片中,在一些高速的場(chǎng)合,DSP芯片都無(wú)法完成的DSP技術(shù),可以由CPLD來取代DSP芯片(注:DSP既可以是Digital Signal Processor數(shù)字信號(hào)處理芯片,也可以是Digital Signal Process數(shù)字信號(hào)處理技術(shù)),F(xiàn)在由于IP軟核的復(fù)用,如果將處理器軟和下到CPLD中,那么這塊東西就變成了一款處理器,Nios處理器,有硬件的運(yùn)行方式,但是也有像CPU和單片機(jī)一樣編程方式。世界上生產(chǎn)CPLD有名的公司是Altera、Xilinx公司等,一般教學(xué)可能Altera會(huì)多一些,至少我們學(xué)校訂購(gòu)了Altera公司的產(chǎn)品,DE2開發(fā)板,使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language即超高速集成電路硬件描述語(yǔ)言)或者Verilog HDLVerilog Hardware Description Language)顧名思義是對(duì)硬件進(jìn)行直接的操作,Altera芯片的開發(fā)軟件是Quartus II。當(dāng)然它可以做單片機(jī)或者通用CPU可以做的事情,但是由于芯片本身特性的局限是它無(wú)法像普通單片機(jī)或CPU一樣進(jìn)行方便的編程,IP核和Nios可以說是解決方案。

Altera的FPGA芯片,由于管腳過多所以使用BGA封裝,引腳不在旁邊而在反面,如圖左邊是正面,右邊是反面

DSP (Digital Signal Processor / Digital Signal Process) 數(shù)字信號(hào)處理芯片/數(shù)字信號(hào)處理技術(shù)
      
  TMS320 MSP430一樣這是TI(Texas Instruments德州儀器)公司的力作,當(dāng)然這個(gè)也和MSP430一樣是芯片系列的頭文件,準(zhǔn)確的說這兩種芯片應(yīng)該是TMS320XXXX或者是MSP430XXX,而我們專業(yè)使用的TMS320LF240X。從第一枚商用DSP芯片由TI生產(chǎn)到今天這幾十年,DSP的發(fā)展可謂飛速,速度越來越快,功耗越來越低,價(jià)格越來越低,功能越來越強(qiáng)大,特別是對(duì)于數(shù)字信號(hào)如音頻、圖像的處理,當(dāng)然還有在我們電氣專業(yè)領(lǐng)域來說至關(guān)重要的變頻調(diào)速方面有著很重要的地位。TIDSP芯片的發(fā)展中,留在市場(chǎng)上的有2000系列,5000系列和6000系列。它的結(jié)構(gòu)和單片機(jī)基本沒有區(qū)別,只是更加適用于數(shù)字信號(hào)處理,所以它對(duì)處理數(shù)字信號(hào)和算法的能力是單片機(jī)遠(yuǎn)遠(yuǎn)無(wú)法達(dá)到的,它集成的硬件乘法器和本身的特性使它可以在1個(gè)時(shí)鐘周期就可以算出一個(gè)乘法和一個(gè)加法,而其對(duì)浮點(diǎn)和定點(diǎn)的運(yùn)算是單片機(jī)速度達(dá)不到的(當(dāng)然DSP是分為浮點(diǎn)和定點(diǎn)即Float – Point Fixed - Point),如快速傅里葉算法FFT或者PI調(diào)節(jié)算法的實(shí)現(xiàn),使用單片機(jī)完全是杯具。開發(fā)DSP的工具有CCS,其開發(fā)過程和單片機(jī)一樣,有C和匯編,也有JTAG仿真下載(當(dāng)然JTAG是一種協(xié)議而已,這里不再贅述)。
DSP芯片,TQFP封裝


ARMAdvanced RISC Machines :既是一款處理器名字也是一個(gè)公司的名字
       ARM 1991年成立于英國(guó)劍橋,這個(gè)偉大公司誕生不到二十年卻讓世界如此震驚,拿出你的手機(jī),里面的處理器90%ARM,他們不產(chǎn)芯片而是靠出賣自己的設(shè)計(jì)技術(shù)的授權(quán),它擁有單片機(jī)、DSP、通用CPU的優(yōu)點(diǎn),卻有著自己的特色,適用于消費(fèi)電子、圖像處理、多媒體、移動(dòng)設(shè)備等嵌入式領(lǐng)域,由于沒有用過,發(fā)言權(quán)比較少。授權(quán)方有Atmel、三星、索尼,飛思卡爾、英特爾、TI、ST等等。ARM用于嵌入式系統(tǒng)可以跑操作系統(tǒng),那是有別于通用CPU的操作系統(tǒng),嵌入于專用型的場(chǎng)合,使用Unix、Linux等操作系統(tǒng),比如手機(jī)的操作系統(tǒng)塞班(Symbian),Google的安卓(Android),還有微軟的Windows Mobile。

國(guó)內(nèi)用的比較多的三星的ARM芯片,上圖為ARM11,BGA封裝

       STM32 意法半導(dǎo)體的基于ARM Cortex-M3內(nèi)核的32位單片機(jī),資源非常豐富?梢耘懿僮飨到y(tǒng),但是因?yàn)閮?nèi)部存儲(chǔ)器的限制,只能跑uC/OS – II操作系統(tǒng)嚴(yán)格意義上說它是一款ARM,相當(dāng)于ARM7。

STM32,TQFP封裝

后記:后面貼幾個(gè)開發(fā)軟件。


Wave6000 :國(guó)產(chǎn)比較悲劇的軟件,用于開發(fā)51的匯編編譯器


Keil uVision2 :用的最廣的C51編譯器用于編譯各種8051內(nèi)核的單片機(jī)


內(nèi)聯(lián)GCC的AVR Studio :用于編譯AVR系列的C程序


AVR fighter :用于AVR系列單片機(jī)的熔絲位設(shè)置和燒寫


IAR :這個(gè)公司開發(fā)各種單片機(jī)編譯軟件,有51、AVR、MSP430、STM8、STM32等等市場(chǎng)上見得到的單片機(jī),并且編譯出來的代碼效率很高


Quartus II  :Altera公司開發(fā)的編譯、燒寫其公司CPLD和FPGA的軟件


Altium Designer :畫板軟件,方便實(shí)用,可以觀看自己設(shè)計(jì)的板子的3D圖,但是國(guó)內(nèi)支持的PCB還停留在Protel 99se


作者: AOP    時(shí)間: 2015-2-13 21:50
講得不錯(cuò),謝謝了

作者: fsdch    時(shí)間: 2016-1-21 17:15
學(xué)習(xí)……51黑有你更精彩。。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1