|
 2 齒輪和凸輪組成的控制器 在模擬計算機誕生前,也就是蒸汽機時代,有些機械天才硬是用數(shù)百個齒輪和凸輪搭建出機械計算機,人們通過轉(zhuǎn)動印有數(shù)字的各種齒輪,另一些齒輪就將運算結(jié)果顯示出來。機械計算機在人類史上上曾經(jīng)是高科技產(chǎn)品,第二次世界大戰(zhàn)時,德國著名的密碼機就是一種機電混合式計算機,它當時是最保密的通信工具。
 3 發(fā)條和秒表和繼電器組成的控制器 在電氣時代開始時,人們用鐘表內(nèi)機械的旋轉(zhuǎn)分時控制一些繼電器的通斷,從而控制一些機床和生產(chǎn)線的運行。這種裝置類似于早期洗衣機內(nèi)的定時器。
 三 入門首選 AT89S51系列單片機
1 簡介
1980,英特爾公司開發(fā)出一種簡易的8031CPU,在當時該CPU性能不比8086差很多,但價格較便宜,因此被很多低端應用選中。由于市場看好,ATMEL公司購買了8031的內(nèi)核,把Flash存儲器和加強型IO口融入進去開發(fā)出了AT89系列單片機。所有兼容8031指令和內(nèi)核相似的單片機統(tǒng)稱為51單片機,它是目前應用最廣泛的8位單片機之一。因51單片機結(jié)構(gòu)簡單,指令易學,應用廣泛,因此是初學單片機首選機型。如果有人想不學51,直接學AVR,那么此人一定會遇到很多難題,困惑和郁悶將伴隨著學習過程。如果學了51再學AVR和其他單片機,人們會發(fā)現(xiàn)“所謂單片機都不過如此”。 2 性能 根據(jù)任務具體需要選擇最合適的單片機,使單片機資源充分利用,使系統(tǒng)性價比達到最高,同時兼顧未來擴展需要,不一味追求高性能單片機,這就是選單片機的原則。 AT89S51有4K的Flash程序存儲器,128字節(jié)的RAM,32條IO口,中斷系統(tǒng)具有6個中斷源、5個終端矢量、2個中斷優(yōu)先級的中斷結(jié)構(gòu);串行口是一個全雙工的串行通信口;AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;振蕩器頻率0-33MHz(AT89S51),0-16MHz(AT89LS51); 有ISP 在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個強大易用的功能。 AT89S52程序儲存器容量為8KB,還有AT89S55,ROM容量更大。 有很多公司生產(chǎn)了很多擴展型51系列單片機,有的帶有AD轉(zhuǎn)換器,有的帶有比較器,有的帶有PWM,讀者可以根據(jù)自身需要選擇合適的51單片機,但要注意他們的管腳定義和編程方式。 3 使用方法 AT89S51 適于做單片機學習板、電子時鐘、超聲波測距儀等不需要采集模擬量和控制大功率外部元件的電路。S51與過去的C51的區(qū)別在于S51支持ISP在線編程,即C51需要幾百元的編程器編程,而S51僅需一條25針并口線和非常簡單的轉(zhuǎn)換電路即可接在臺式電腦打印機接口燒程序,下載燒程序小軟件即實現(xiàn)可對S51單片機編程。對51單片機編程一般選用Keil軟件,可采用C語言或者匯編語言,編完程后選擇輸出HEX文件,然后用燒程序小軟件讀取HEX文件,再燒寫到單片機中。 4 實踐經(jīng)驗 A 剛開始看書時,按照書上的電路圖連線然后通電調(diào)試,但總不成功,將自己的電路和書上的電路仔細對照發(fā)現(xiàn)不了問題。原因在于很多書上的電路圖都是“簡化圖”,即省略了一些電路,而這些被省略的電路卻關乎系統(tǒng)的運行。比如,當單片機書講到AD轉(zhuǎn)換電路,給出的電路圖多省略了晶振和復位電路,按照AD轉(zhuǎn)換電路圖搭出來的系統(tǒng)自然不能運行。 B 51單片機P0口輸出信號時需要上拉電阻,我經(jīng)常忘記加電阻,導致電路不好使。 C 51單片機31引腳需要接正極,以選擇采用內(nèi)部程序存儲器。如果忘記給這個引腳以正確的電壓,你的單片機可能不能執(zhí)行程序。

4 應用舉例 


四 愛好者制作機器人首選 AVR系列單片機
1 簡介
AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機。高可靠性、功能強、高速度、低功耗和低價位一直是衡量單片機性能的重要指標,而AVR單片機是典型高性能單片機。 早期單片機,比如51單片機為了提高可靠性(防止數(shù)據(jù)誤讀或跑飛)采用較高的分頻系數(shù)對時鐘分頻,使得指令周期長,執(zhí)行速度慢。例如51單片機需要12個晶振周期才能組成1個機器周期,而且很多指令需要2個機器周期才能執(zhí)行。AVR單片機的推出,徹底打破這種舊設計格局,廢除了機器周期,采用精簡指令集,取指周期短,又可預取指令,實現(xiàn)流水作業(yè),故可高速執(zhí)行指令。AVR單片機在12個晶振周期中能執(zhí)行12條指令,從這個角度看,如果晶振頻率相同,AVR的速度是51的12倍到24倍。 AVR有32個通用寄存器,在進行大量復雜運算時,AVR的32個寄存器可相當于51的32個累加器,克服了51系列單片機只有單一累加器數(shù)據(jù)處理造成的瓶頸現(xiàn)象,在復雜運算時速度比51快5倍以上。由此可看出,51與AVR相比是多么慢,AVR是多么快。 AVR系列單片機多內(nèi)部集成了多路AD轉(zhuǎn)換器、電壓比較器、ISP、I2C、JTAG總線電路、UART串口、大功率IO口、看門狗等實用電路,并且很多AVR單片機型號有EEPROM、FLASH、SRAM三種存儲器,可以實現(xiàn)實時修改程序存儲器中的內(nèi)容,即AVR單片機可以自己修改自己的程序。同時AVR一般能工作在寬電壓范圍(2.7~6.0V),有的居然可以在1.8V電壓下工作。以上這些性能只是AVR眾多性能中的一部分,然而已經(jīng)讓51系列單片機望塵莫及了。 如此高性能的單片機價格居然和51單片機差不多,比如ATmega8價格為8元左右,ATmega16在13元左右,這是AVR有極高性價比的真實寫照。
 2 性能 AVR家族人丁興旺,包括ATinyAVR(微小型)、低功耗類、ATmegaAVR高中低檔5類單片機。它們都基于同一核心技術(shù),但在內(nèi)部集成的電路多少上有不同。不論你要做電子手表還是視頻處理,都有一款合適的AVR單片機能滿足你的需要。 本文只列出ATmega16中檔單片機的性能: 16KB的FLASH程序存儲器;512B的EEPROM;1KB的SRAM;32個快速寄存器;32個大功率IO口;20個中斷;2個外部中斷口;有SPI、SUART、I2C總線接口;2個8位定時器;1個16位定時器;3個PWM通道;有實時時鐘RTC;8個10位AD通道;電壓比較器;看門狗;內(nèi)置時鐘振蕩器;JTAG接口;ISP在線編程;電壓范圍為2.7V-5.5V;外部時鐘晶振0-16MHz;有PID和多種貼片封裝。 AVR的IO口能輸出20mA和吸收40mA的電流,不僅可直接驅(qū)動LED,甚至可直接驅(qū)動微型直流減速電機。而且AVR的IO口可編程設置成輸入、輸出、高阻態(tài)狀態(tài),是真正的3態(tài)IO口。和51相比使用AVR開發(fā)產(chǎn)品你會發(fā)現(xiàn)前所未有的方便和自由。 AVR單片機可上操作系統(tǒng),比如UCOS2、Linux等,自主編程實現(xiàn)操作系統(tǒng)功能也很容易。 根據(jù)任務具體需要選擇最合適的單片機,使單片機資源充分利用,使系統(tǒng)性價比達到最高,同時兼顧未來擴展需要,不要一味選用高性能單片機,這就是選單片機的原則。 用ARM+操作系統(tǒng)做超聲波測距儀——殺雞用了牛刀。用AVR中檔單片機做機器視覺——有些吃不消。如果把它們調(diào)換一下,一切就恰到好處了。 3 使用方法 學AVR單片機的好書是《AVR單片機嵌入式系統(tǒng)原理與應用實踐》,封面見下圖。 AVR一般采用CVAVR編程軟件編程,也可用GUN GCC AVR、AVR Studio軟件編程??刹捎脜R編或C語言編程。燒程序前先輸出HEX文件,然后用SLISP(雙龍ISP)軟件加載,再通過ISP編程線或者25針并口連接線燒入AVR單片機,支持在線編程。 由于AVR單片機最小系統(tǒng)很簡單,就是電源+晶振(可不用)+LED+ISP接口(通電就運行,斷電就停止,不用復位電路),因此任何初學者都可以用面包板搭出AVR最小系統(tǒng),并且編程實踐。 4 實踐經(jīng)驗 使用AVR單片機時注意要正確設置熔絲位,SLISP軟件就可設置,熔絲位可決定單片機是采用外部晶振還是采用內(nèi)部時鐘振蕩器,如果熔絲位設置為采用外部晶振,而電路中沒有接入晶振,則AVR程序不能運行。很多初學者忽視了這一點,他們的AVR系統(tǒng)不能運行卻找不到原因。再有就是AVR的IO口在使用前需先編程設置其狀態(tài),否則你將發(fā)現(xiàn)程序在運行,但IO口沒信號。
 4 應用舉例

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

|