漫談可編程芯片 - 單片機(jī)DIY制作 單片機(jī)論壇
寫在前面:很多朋友都問我做的是什么東西,我說單片機(jī)亡哄,但是大部分人也是不甚了解,額,我粗略的將它寫出來久锥,并且和一些可編程的芯片做了一些比較,我盡量寫的通俗些异剥,因?yàn)橛行〇|西如果沒有接觸過數(shù)電模電的可能很難理解奴拦。參考資料一些是百度的,一些來自老師届吁,一些來自自己理解。如有疏漏請指出绿鸣。謝謝
注:下面所有的芯片后面都省略了“系列”2字疚沐。
通用型CPU:
1968年“叛逃”仙童公司(Fairchild)的摩爾和諾依曼(有名的仙童“八叛徒”中兩個)加上安迪·格魯夫(A.Grove)創(chuàng)立了Intel公司,1971年推出了世界上第一枚處理器潮模。而同樣曾經(jīng)是仙童公司的銷售部主任的桑德斯(非“八叛徒”)1969年創(chuàng)立了AMD公司亮蛔。如今這兩家公司都以生產(chǎn)通用型處理器而聞名世界,當(dāng)然AMD在06年并購ATI之后擎厢,他也生產(chǎn)顯卡究流。早期AMD曾經(jīng)使用過Intel的核,之后研發(fā)出與Intel不同結(jié)構(gòu)的CPU动遭。(可見仙童半導(dǎo)體公司的厲害之處了芬探,雖然它的輝煌時期在上個世紀(jì)60年代,后來因?yàn)椤鞍伺淹健钡某鲎呃宓耄赏恢碧幱诘统蓖捣拢覔Q了好多東家,但是它的影響力一直持續(xù)到了今天宵蕉,我們導(dǎo)師做變頻用的IGBT或者一些大功率可控硅首選的還是仙童酝静,“八叛徒”也證實(shí)了當(dāng)時美國硅谷人才濟(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,定時計(jì)數(shù)器蛇数,中斷等等挪钓,其實(shí)廣義的講就成為了一款計(jì)算機(jī),當(dāng)然是有別于通用型計(jì)算機(jī)耳舅,相比較的話ROM(Read Only Memory)就相當(dāng)于硬盤碌上,程序軟件就是放在這個里面的,執(zhí)行的時候就按照你編寫的程序一條條往下執(zhí)行浦徊,不過燒寫進(jìn)ROM的程序是機(jī)器碼馏予,一般的ROM是比較小的,大概就幾K到幾十K之間盔性,一張圖片都放不下的霞丧。RAM(Random Access Memory)就相當(dāng)于電腦上的內(nèi)存,內(nèi)存的作用在于將運(yùn)算的中間變量暫時存儲在這個地方冕香,所以內(nèi)存大的電腦蛹尝,可以開很多軟件也不卡,RAM也就相當(dāng)于這個功能悉尾,但是電腦上的有2G突那,但是單片機(jī)上的只有幾十字節(jié)到幾K。定時計(jì)數(shù)器其實(shí)每個電腦(準(zhǔn)確的說是電腦CPU)都有构眯,不過調(diào)用時需要API函數(shù)愕难,因?yàn)椴僮飨到y(tǒng)把所有和硬件有關(guān)系的操作都用API函數(shù)封裝了,其實(shí)無非就是計(jì)數(shù)的功能惫霸,1/主頻秒計(jì)數(shù)值加一猫缭,就是這樣,想要定時多久就計(jì)算出該計(jì)數(shù)幾次就可以了壹店。中斷的響應(yīng)處理猜丹,對應(yīng)于通用計(jì)算機(jī)比如對于鼠標(biāo),鍵盤等事件的響應(yīng)處理等等硅卢,因?yàn)楝F(xiàn)在的計(jì)算機(jī)的主頻都上G了居触,中斷響應(yīng)的時間大概是1/主頻,所以人是無法感覺到的老赤,串口通信轮洋,早期的九針,一般的臺式機(jī)主機(jī)箱后面都有抬旺,筆記已經(jīng)沒有了弊予,可以實(shí)現(xiàn)單片機(jī)和電腦的通信,或者兩臺單片機(jī)或兩臺計(jì)算機(jī)的通信开财。以上其實(shí)是單片機(jī)的簡介汉柒,而51當(dāng)然全部具備误褪,8051內(nèi)核,51和通用CPU一樣是有自己的指令碾褂,51是111條兽间,當(dāng)然所謂的指令集其實(shí)是建立在匯編的基礎(chǔ)上的,如果你用C編程正塌,最終編譯器會先將C語言程序先編譯成匯編語句嘀略,再把匯編語句編譯成機(jī)器碼。51的指令是CISC(Complex Instruction Set Computer)即復(fù)雜指令集計(jì)算機(jī)乓诽,也就是說指令不是單周期的帜羊,大部分都是1~3周期,但是乘法和除法是4個周期的鸠天,加上51的機(jī)器周期是外掛晶振的12分頻讼育,即外面的晶振/12才是51的主頻,比較悲劇稠集,所以它的速度永遠(yuǎn)基本處于微秒級奶段。51的IO(Input/Output)口是準(zhǔn)雙向IO口,因?yàn)橥粫r刻這個口既可以作為輸入也可以作為輸出剥纷,而也只有51內(nèi)核的單片機(jī)是這樣忧饭,其他后來研發(fā)的單片機(jī)都是標(biāo)準(zhǔn)IO口,也就是IO口必須要配置成輸入或者輸出才能工作筷畦。
At89s51單片機(jī)PDIP封裝
AVR:和51比它來了一個質(zhì)的飛躍,雖然也是8位的刺洒,但是AVR內(nèi)核鳖宾,131條指令,RISC(Reduced Instruction Set Computer)即精簡指令集計(jì)算機(jī)逆航,也就是說幾乎所有指令都是單周期鼎文,AVR集成了只需要兩個時鐘周期硬件乘法器。不需分頻因俐,精簡指令集拇惋,所以當(dāng)它的晶振處于1M的時候,就可以達(dá)到1MIPS的速度抹剩。AVR除了有上面所提到的51的所有功能撑帖,還集成了8路10位ADC(Analog to digital converter將模擬量轉(zhuǎn)換為數(shù)字量),SPI(Serial Peripheral Interface串行外設(shè)接口即硬件SPI)澳眷,TWI(Two – Wires serial Interface即硬件I2C)等胡嘿,這些都是各種通信協(xié)議的硬件實(shí)現(xiàn),而不是像51一樣只能靠模擬钳踊。AVR的IO為標(biāo)準(zhǔn)IO口衷敌,它可以輸出大電流勿侯,可以直接驅(qū)動繼電器,如果是3V電機(jī)缴罗,可以直接驅(qū)動助琐,而最大只能輸出十幾毫安的51是做不到的,因?yàn)殡姍C(jī)啟動需要大電流面氓。當(dāng)然芯片AVR有90S系列兵钮、tiny系列和mega系列,每種都有子產(chǎn)品侧但,資源稍有不同矢空。這款芯片體現(xiàn)了A先生和V先生的智慧,可以說AVR系列是一款經(jīng)典的單片機(jī)禀横,不過很遺憾屁药,最近它的號召力在慢慢下降,因?yàn)槿虻墓┴浘o張和Atmel公司對市場的“遲鈍”反應(yīng)柏锄,導(dǎo)致很多有心人在炒片子酿箭,據(jù)業(yè)內(nèi)人士稱代理也在炒,其實(shí)很多這種芯片可能都是靠走.私趾娃,特別是珠三角缭嫡,在國內(nèi),一旦有芯片被大量使用抬闷,那么跟風(fēng)無數(shù)妇蛀,商家有利可圖自然大量購進(jìn)賣出,那么就會缺貨笤成,就和當(dāng)年TI的DSP差不多(好芯片永遠(yuǎn)話題不斷)评架,所以不重視大中華市場是不行的。很多人都已經(jīng)轉(zhuǎn)戰(zhàn)ST或者STC的芯片炕泳,因?yàn)閮r格低纵诞,也許這算是AVR的一種沒落。
AVR : Atmega16芯片 PDIP封裝
AVR : Atmega16芯片 TQFP封裝
PIC:與AVR一樣同是RISC培遵,當(dāng)然指令集是不一樣的浙芙。沒有用過并沒有多少發(fā)言權(quán),個人感覺專用性比較強(qiáng)籽腕,擁有各種封裝嗡呼,更適合用于批量生產(chǎn)的場合。
PIC單片機(jī) PDIP封裝
PIC單片機(jī) TQFP封裝
MSP430:TI(Texas Instruments德州儀器)公司的力作皇耗,16位單片機(jī)晤锥,最大的特點(diǎn)為低功耗,誕生十幾年來至今未見得有哪款單片機(jī)可以在功耗上與它抗衡,在時鐘關(guān)閉的時候最小只有0.1uA的功耗矾瘾,低頻工作下也是微安級的女轿,3.3V的電壓,這種功耗壕翩,它做成的手持設(shè)備蛉迹,只要兩節(jié)干電池可以工作幾年。RISC放妈,只有27條指令北救,相當(dāng)簡潔,集成硬件乘法器芜抒,每個IO口都可以作為中斷珍策,對于中斷的嵌套很方便,不像AVR只能以軟件來嵌套中斷宅倒,而且還有主次時鐘攘宙,自帶著鎖相環(huán)的功能。當(dāng)然每個系列是不一樣的拐迁,資源多少的問題蹭劈,這個片子一般都是TQFP封裝的,當(dāng)然是有PDIP封裝的线召,較少而已铺韧,因?yàn)檫@片子引腳比較多。資源功能方面缓淹,當(dāng)然說起TI的可編程芯片哈打,可能更多人會想到DSP(Digital Signal Processor)芯片,430不可避免的帶著DSP的影子讯壶。當(dāng)然也繼承了TI公司貴的特點(diǎn)料仗,MSP430確實(shí)很貴。
MSP430單片機(jī) PDIP封裝
STM8:ST(SGS-THOMSON Microelectronics即意法半導(dǎo)體)的得意之作鹏溯,8位單片機(jī),手上有一套三合一體驗(yàn)的板子淹仑,還沒有開始研究它丙挽,不過看下他的資源,所有都是AVR的8位機(jī)的兩倍匀借,但是價格只有它的1/3到1/2颜阐,難怪很多人都轉(zhuǎn)戰(zhàn)ST了,價格永遠(yuǎn)是硬道理吓肋,老板看中的是成本凳怨。
STM8系列單片機(jī) TQFP封裝
總結(jié):由此可以看出其實(shí)除了51之外,其他的芯片資源都是差不多的,因?yàn)槎际荝ISC結(jié)構(gòu)的肤舞,加上功能足夠多紫新,所以基本上操縱芯片無非就是操縱寄存器,當(dāng)然這篇文章主要是寫給一些不是這個專業(yè)的朋友看的李剖,隱去了一些東西芒率,比如JTAG和E2PROM,Atmel公司對Flash和E2PROM的研究使它的芯片擦寫次數(shù)和質(zhì)量都很高篙顺,關(guān)于開發(fā)工具的話偶芍,AVR有很多,公認(rèn)編譯出來代碼效率最高的是IAR AVR德玫,其次CVAVR(Code Vision AVR),ICCAVR匪蟀,WinAVR(GCC,這個編譯器GNU開發(fā)宰僧,完全免費(fèi))這三款代碼效率差不多材彪,這些和Atmel公司開發(fā)的AVR Studio內(nèi)聯(lián)就可以仿真,如果加上JTAG就可以單步仿真,下載可以使用ISP(In System Programmable在線系統(tǒng)可編程)撒桨。MSP430和STM8都可以使用IAR的編譯軟件查刻。
AVR單片機(jī)的ISP下載器,Usbasp
自制的AVR JTAG仿真下載器
MSP430單片機(jī) 三合一仿真下載器
EDA(Electronic Design Automation):電子設(shè)計(jì)自動化
CPLD(Complex Programmable Logic Device):CPLD其實(shí)有兩種凤类,一種就是叫CPLD,還有一種稱為FPGA(Field Programmable Gate Array)穗泵。CPLD直譯叫做復(fù)雜可編程邏輯器件,F(xiàn)PGA直譯叫做現(xiàn)場可編程門陣列谜疤,它們準(zhǔn)確的來說是硬件數(shù)字電路佃延,里面是各種門的組合,而我們編程的目的在于在這塊芯片上熔出一個數(shù)字電路來夷磕,因?yàn)橛布臇|西永遠(yuǎn)都會比軟件快履肃,它和通用型的CPU和單片機(jī)有著本質(zhì)的區(qū)別在于它的并行性,因?yàn)閿?shù)字和模擬電路通電后的反應(yīng)都是瞬時的坐桩,非時序電路的各個節(jié)點(diǎn)之間是沒有所謂暫緩的尺棋,也就是說它不會像CPU或者單片機(jī)一樣是按照一條條的程序來執(zhí)行,當(dāng)然利用狀態(tài)機(jī)可以绵跷,這個是編程的手法問題膘螟。CPLD是擁有ROM,它可以像單片機(jī)一樣下載完程序之后可以一直使用碾局,而FPGA不可以荆残,F(xiàn)PGA相當(dāng)于一塊集結(jié)了數(shù)字電路的高速RAM,所以稱為現(xiàn)場可編程門陣列净当,它的程序只有在現(xiàn)場可用内斯,一旦斷電就什么都沒有了蕴潦,所以一般做產(chǎn)品的話就會在上面掛一個E2PROM。現(xiàn)在CPLD作為一種新興力量加入到可編程芯片中俘闯,在一些高速的場合潭苞,DSP芯片都無法完成的DSP技術(shù),可以由CPLD來取代DSP芯片(注:DSP既可以是Digital Signal Processor數(shù)字信號處理芯片备徐,也可以是Digital Signal Process數(shù)字信號處理技術(shù))√汛現(xiàn)在由于IP軟核的復(fù)用,如果將處理器軟和下到CPLD中蜜猾,那么這塊東西就變成了一款處理器秀菱,Nios處理器,有硬件的運(yùn)行方式蹭睡,但是也有像CPU和單片機(jī)一樣編程方式衍菱。世界上生產(chǎn)CPLD有名的公司是Altera、Xilinx公司等肩豁,一般教學(xué)可能Altera會多一些脊串,至少我們學(xué)校訂購了Altera公司的產(chǎn)品,DE2開發(fā)板清钥,使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language即超高速集成電路硬件描述語言)或者Verilog HDL(Verilog Hardware Description Language)顧名思義是對硬件進(jìn)行直接的操作琼锋,Altera芯片的開發(fā)軟件是Quartus II。當(dāng)然它可以做單片機(jī)或者通用CPU可以做的事情祟昭,但是由于芯片本身特性的局限是它無法像普通單片機(jī)或CPU一樣進(jìn)行方便的編程缕坎,IP核和Nios可以說是解決方案。
Altera的FPGA芯片篡悟,由于管腳過多所以使用BGA封裝谜叹,引腳不在旁邊而在反面,如圖左邊是正面搬葬,右邊是反面
DSP (Digital Signal Processor / Digital Signal Process):數(shù)字信號處理芯片/數(shù)字信號處理技術(shù)
TMS320:和MSP430一樣這是TI(Texas Instruments德州儀器)公司的力作荷腊,當(dāng)然這個也和MSP430一樣是芯片系列的頭文件,準(zhǔn)確的說這兩種芯片應(yīng)該是TMS320XXXX或者是MSP430XXX急凰,而我們專業(yè)使用的TMS320LF240X女仰。從第一枚商用DSP芯片由TI生產(chǎn)到今天這幾十年,DSP的發(fā)展可謂飛速抡锈,速度越來越快疾忍,功耗越來越低,價格越來越低企孩,功能越來越強(qiáng)大锭碳,特別是對于數(shù)字信號如音頻袁稽、圖像的處理勿璃,當(dāng)然還有在我們電氣專業(yè)領(lǐng)域來說至關(guān)重要的變頻調(diào)速方面有著很重要的地位。TI的DSP芯片的發(fā)展中,留在市場上的有2000系列补疑,5000系列和6000系列歧沪。它的結(jié)構(gòu)和單片機(jī)基本沒有區(qū)別,只是更加適用于數(shù)字信號處理莲组,所以它對處理數(shù)字信號和算法的能力是單片機(jī)遠(yuǎn)遠(yuǎn)無法達(dá)到的诊胞,它集成的硬件乘法器和本身的特性使它可以在1個時鐘周期就可以算出一個乘法和一個加法,而其對浮點(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封裝
ARM(Advanced RISC Machines):既是一款處理器名字也是一個公司的名字
ARM:1991年成立于英國劍橋旧烧,這個偉大公司誕生不到二十年卻讓世界如此震驚影钉,拿出你的手機(jī),里面的處理器90%是ARM掘剪,他們不產(chǎn)芯片而是靠出賣自己的設(shè)計(jì)技術(shù)的授權(quán)平委,它擁有單片機(jī)、DSP杖小、通用CPU的優(yōu)點(diǎn)肆汹,卻有著自己的特色,適用于消費(fèi)電子予权、圖像處理昂勉、多媒體、移動設(shè)備等嵌入式領(lǐng)域扫腺,由于沒有用過岗照,發(fā)言權(quán)比較少。授權(quán)方有Atmel笆环、三星攒至、索尼,飛思卡爾躁劣、英特爾迫吐、TI、ST等等账忘。ARM用于嵌入式系統(tǒng)可以跑操作系統(tǒng)志膀,那是有別于通用CPU的操作系統(tǒng)熙宇,嵌入于專用型的場合,使用Unix溉浙、Linux等操作系統(tǒng)烫止,比如手機(jī)的操作系統(tǒng)塞班(Symbian),Google的安卓(Android)戳稽,還有微軟的Windows Mobile馆蠕。
國內(nèi)用的比較多的三星的ARM芯片,上圖為ARM11惊奇,BGA封裝
STM32:意法半導(dǎo)體的基于ARM Cortex-M3內(nèi)核的32位單片機(jī)互躬,資源非常豐富∷汤桑可以跑操作系統(tǒng)吨铸,但是因?yàn)閮?nèi)部存儲器的限制,只能跑uC/OS – II操作系統(tǒng)嚴(yán)格意義上說它是一款A(yù)RM祖秒,相當(dāng)于ARM7诞吱。
STM32,TQFP封裝
后記:后面貼幾個開發(fā)軟件竭缝。
Wave6000 :國產(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 :這個公司開發(fā)各種單片機(jī)編譯軟件,有51抬纸、AVR咙俩、MSP430、STM8湿故、STM32等等市場上見得到的單片機(jī)阿趁,并且編譯出來的代碼效率很高
Quartus II??:Altera公司開發(fā)的編譯、燒寫其公司CPLD和FPGA的軟件
Altium Designer :畫板軟件坛猪,方便實(shí)用脖阵,可以觀看自己設(shè)計(jì)的板子的3D圖,但是國內(nèi)支持的PCB還停留在Protel 99se