單片機(jī)設(shè)計經(jīng)驗技巧精華集錦(四)
1 簡介
DSP數(shù)字信號處理(Digital Signal Processing,簡稱DSP),它是一種獨特的微處理器,是以數(shù)字信號來處理大量信息的器件。其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實時運行速度可達(dá)每秒數(shù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色。
在高速小車巡線、語音識別等領(lǐng)域DSP被廣泛應(yīng)用。但如果僅用DSP檢測幾個碰撞開關(guān)、控制幾個電機(jī)顯得大材小用。
七 新興控制器 FPGA
1簡介
FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。簡單說,如果使用者想開發(fā)一個用簡單數(shù)字邏輯電路就能控制的小車,又嫌搭電路麻煩,他就可用軟件給一個FPGA編程讓它實現(xiàn)數(shù)字電路功能去控制小車。即FPGA可被用來模擬各種電路。有的FPGA甚至能模擬51單片機(jī)的運行。因FPGA通過編程即可修改它模擬的電路結(jié)構(gòu),因此在系統(tǒng)實驗、調(diào)試中很方便,很多愛好者嘗試用FPGA做機(jī)器人控制器。
八 更多可供選擇的單片機(jī)
我們選擇學(xué)一款單片機(jī)前首先要考慮自己面對的實際任務(wù)需要什么性能的單片機(jī),然后在眾多性能滿足要求的單片機(jī)中作出選擇。此時我們還要考慮不同單片機(jī)的“應(yīng)用廣泛程度”,比方說:當(dāng)我們要做一個電子大賽智能小車,有AVR單片機(jī)和PIC單片機(jī)可滿足任務(wù)需要,如何在兩者中作出選擇需要考慮哪種單片機(jī)學(xué)起來比較容易、學(xué)習(xí)資料容易獲取、可供參考的程序和案例更加豐富、哪種單片機(jī)更容易獲得編程軟件和下載器等。筆者感覺要想做智能小車,AVR單片機(jī)的資料比較豐富。
世界上有種類繁多的單片機(jī),它們當(dāng)中絕大多數(shù)都可用來控制機(jī)器人,但存在一個是否合適的問題。比如PLC是可編程控制器,當(dāng)然可以用來控制愛好者手中的機(jī)器人,但PLC多用于工業(yè)控制領(lǐng)域,設(shè)備龐大價格昂貴,同時不易獲得用PLC控制小型機(jī)器人的資料。愛好者選擇學(xué)一種單片機(jī)前,首先得明確自己要用單片機(jī)干什么,然后再選最合適的單片機(jī)學(xué)習(xí)。學(xué)單片機(jī)重在學(xué)精一兩種單片機(jī),如果有人泛泛地學(xué)ARM、PLC、PIC、凌陽、DSP、FPGA等所有有名的單片機(jī),那么他將無法擁有真正的深度開發(fā)能力。所謂深度開發(fā),以AVR單片機(jī)為例,初學(xué)者可以用它實現(xiàn)小燈交替閃爍,中級技術(shù)人員可以用它控制參加比賽的機(jī)器人,而真正的高級開發(fā)人員可以用AVR實現(xiàn)機(jī)器視覺、無人機(jī)自動駕駛、坦克火控系統(tǒng)……
AVR單片機(jī)過時了嗎?
有初學(xué)者甚至中級開發(fā)人員認(rèn)為因ARM性能一般比AVR性能高,因此ARM將代替AVR,AVR將退出歷史舞臺,或者M(jìn)SP430將代替51系列單片機(jī),或者FPGA將取代所有單片機(jī)等。這種看法不對,因為不同單片機(jī)都有各自的特點和優(yōu)點,沒有哪種單片機(jī)是完美的,在不同場合用最合適的單片機(jī),發(fā)揮它們各自的特長,而不存在ARM一統(tǒng)天下,取代所有其他型號單片機(jī)的可能性。試想,原本十幾元的電子表因為采用ARM控制買到幾百元,誰能受得了?因此不要覺得AVR已經(jīng)過時,學(xué)完51就直接學(xué)ARM,或者覺得學(xué)51沒用,直接學(xué)ARM,否則你將碰壁。
MSP430系列單片機(jī):比較適于機(jī)器人開發(fā),是美國德州儀器推向市場的一種16位、具有精簡指令集的、超低功耗的混合信號處理器。具有Flash存儲器,中斷源較多,并且可以任意嵌套,使用時靈活方便。MSP430系列單片機(jī)的電源電壓采用的是 1.8~3.6V 電壓。因而可使其在1MHz的時鐘條件下運行時,芯片的電流會在200~400uA左右,時鐘關(guān)斷模式的最低功耗只有0.1uA。MSP430系列單片機(jī)的各成員都集成了較豐富的片內(nèi)外設(shè)。它們分別是看門狗、模擬比較器、定時器、串口0、1、硬件乘法器、液晶驅(qū)動器、10位/12位ADC、16位Sigma-Delta AD、直接尋址模塊(DMA)、IO端口、基本定時器(Basic Timer)等的一些外圍模塊的不同組合。MSP430 系列單片機(jī)引進(jìn)了JTAG技術(shù),不僅使開發(fā)工具變得簡便,而且價格也相對低廉,并且還可以實現(xiàn)在線編程。
PIC單片機(jī):可用于機(jī)器人開發(fā),是8位單片機(jī),產(chǎn)品種類豐富,采用精簡指令集,有不錯的開發(fā)環(huán)境,引腳驅(qū)動能力強(qiáng),可直接連接繼電器控制強(qiáng)電。自帶看門狗,有睡眠和低功耗模式。很多性能不如AVR和MSP430系列單片機(jī),但因其有特殊優(yōu)點,也被廣泛應(yīng)用。
凌陽單片機(jī):比較適于機(jī)器人開發(fā),以16位計算機(jī)為核心,集成不同規(guī)模的RAM、ROM和其他豐富的功能電路,使用者可以根據(jù)自己需要選擇集成了特定功能電路的凌陽單片機(jī)。凌陽單片機(jī)指令系統(tǒng)提供出具有較高運算速度的16位,16位的乘法運算指令和內(nèi)積運算指令,為其應(yīng)用添加了DSP功能,因此凌陽適合進(jìn)行語音識別。在我國凌陽單片機(jī)在學(xué)校比較常見,應(yīng)用實例較多,可作為機(jī)器人愛好者選用的單片機(jī)。
九 實例:用AVR單片機(jī)創(chuàng)造機(jī)器生命
1 什么是機(jī)器生命
機(jī)器生命就是一個能自主生存的機(jī)器,一個自動為生存下去而奮斗的機(jī)器。對于機(jī)器生命來說,生存的含義就是不斷電,繼續(xù)運行。機(jī)器生命具有完全自主決策、自主行動、活動于未知世界、不需人類參與就能持續(xù)運行并且自我維護(hù)等特征。影片《終結(jié)者》中的天網(wǎng)就是超級機(jī)器生命。《霹靂5號》描述了一個機(jī)器人從無生命到有生命的過程。
N.維納(Norbert Wiener,1894~1964)寫《控制論》時創(chuàng)造出第一個機(jī)器生命Wiener龜,這個機(jī)器龜僅有2個電子管組成的模擬計算機(jī),但它卻能實現(xiàn)真正的烏龜覓食、睡覺、探索、逃避等行為,其表現(xiàn)如同一個有生命的生物一樣。機(jī)器龜上面有太陽能電池,當(dāng)自身電池快用完前,機(jī)器龜樂于尋找一個光線充足的地方充電,充滿電后可能找個地方睡懶覺,或者探索未知世界,它有避免碰撞和避免到傾斜地方的趨向,我們無法預(yù)知它的行蹤,因為它不是按照程序運行的,就如同我們自己一樣。后來維納在他的機(jī)器龜上又加了一個電子管,三個電子管連接成簡單的神經(jīng)網(wǎng)絡(luò),通過對機(jī)器龜訓(xùn)練,維納通過搖鈴可控制機(jī)器龜?shù)男袨椤U缬猩飳W(xué)家訓(xùn)練狗使得狗聽到搖鈴聲后就流口水。
2 我們可以自己動手做一個機(jī)器寵物
我們今天有先進(jìn)的單片機(jī),制作一個更好的機(jī)器生命其實不難。機(jī)器生命遠(yuǎn)比按固定程序運行的機(jī)器人好玩,就如同寵物狗比玩具狗好玩一樣。我們設(shè)想的機(jī)器生命可以是一個小型履帶式機(jī)器人,帶有太陽能板,能感受光線強(qiáng)弱,障礙物距離和碰撞,為了實現(xiàn)人機(jī)互動,該機(jī)器生命具有語音識別功能。試想你學(xué)習(xí)一天,回到寢室,叫一聲TONY,你的機(jī)器寵物轉(zhuǎn)身飛快跑向你,那種感覺只有寵物的創(chuàng)造者才能體會……
3 如何實現(xiàn)?如何設(shè)計電路?如何設(shè)計結(jié)構(gòu)?
這個機(jī)器生命方案采用ATmega16單片機(jī)做控制器,單片機(jī)的8路AD通道和其余24個IO接口都被使用。AVR單片機(jī)AD轉(zhuǎn)換頻率高于音頻,可以用來進(jìn)行簡單的語音采集。機(jī)器生命的程序較復(fù)雜,而AVR單片機(jī)適合進(jìn)行快速復(fù)雜運算。本設(shè)計的電路板上除了ATmega16單片機(jī)外,還有2個LG9110電機(jī)驅(qū)動芯片、2個LM386音頻功放芯片,和LM393電壓比較器芯片,再加上少量電阻電容和三極管,電路簡潔,適合初學(xué)者和中級愛好者動手制作。
LCD采用通用1602模塊,支持3位控制線4位數(shù)據(jù)線,如果你采用IO口復(fù)用技術(shù),可用6條線控制LCD模塊。
此方案涉及光電檢測、自動充電、語音識別、超聲波測距、鍵盤(4個碰撞開關(guān))、LCD液晶顯示、電機(jī)驅(qū)動等技術(shù),這些都是動手做簡單機(jī)器人的基本技術(shù),如果愛好者能把這個機(jī)器生命做好,那么你的電路設(shè)計、調(diào)試經(jīng)驗和編程能力都會有很大的提高。
這個機(jī)器生命的技術(shù)含量相當(dāng)于20世紀(jì)70年代國際機(jī)器人領(lǐng)域的先進(jìn)水平。當(dāng)時已經(jīng)有很多非常精密和復(fù)雜的工業(yè)機(jī)器人被應(yīng)用,但這種簡單的機(jī)器人怎么能稱作先進(jìn)呢?因為技術(shù)的復(fù)雜和技術(shù)的先進(jìn)不是一個概念,復(fù)雜+精密不一定等于先進(jìn)。先進(jìn)的東西不一定復(fù)雜和精密。
評論