單片機應(yīng)用技術(shù)簡介
【摘 要】綜述了單片機應(yīng)用技術(shù)的進展和動向。給出了4,8,16,32,64位單片機的特點和功能,以及專用總線、軟件和應(yīng)用程序開發(fā)工具等內(nèi)容。
關(guān)鍵詞:單片機 綜述 應(yīng)用技術(shù)
單片機在集成度、功能、性能、體系結(jié)構(gòu)方面都有了飛速發(fā)展,已能集成一個完整的功能強大、性能優(yōu)良的計算機應(yīng)用系統(tǒng)。但目前國內(nèi)許多單片機應(yīng)用單位仍停留在采用片內(nèi)無ROM等低檔單片機的狀態(tài),無論在系統(tǒng)設(shè)計上、使用維護上、經(jīng)濟效益上這都是不合算的。這種狀況必須改變。本文就單片機的發(fā)展現(xiàn)狀進行綜述,希望能對提高國內(nèi)單片機技術(shù)的應(yīng)用水平有所促進。
1 單片機的硬件
單片微型計算機,簡稱單片機,是微型計算機的一個分支。它是在一塊芯片上集成(嵌入)了CPU、RAM和ROM存儲器、I/O接口等而構(gòu)成的微型計算機。因主要用于工業(yè)測控領(lǐng)域,故又稱為微控制器或嵌入式控制器。單片機的核心是中央處理器CPU。用超大規(guī)模集成技術(shù)把CPU集成在一塊芯片上,稱為微處理器。微處理器、微控制器和微型計算機三者的關(guān)系十分密切。目前,單片機在工業(yè)測控領(lǐng)域中已占重要地位。各電氣廠商、機電行業(yè)和測控企業(yè)都把單片機作為本部門產(chǎn)品更新?lián)Q代、產(chǎn)品智能化的重要工具。全世界單片機的生產(chǎn)廠家有30多家,能生產(chǎn)60多個系列,1000多個型號的產(chǎn)品。產(chǎn)量大,僅1996年的產(chǎn)量就達18億片。
1.1 單片機的特點
單片機問世以來所走的路與微處理器是不同的。微處理器向著高速運算、數(shù)據(jù)分析與處理能力、大規(guī)模容量存儲等方向發(fā)展,以提高通用計算機的性能。其接口界面也是為了滿足外設(shè)和網(wǎng)絡(luò)接口而設(shè)計的 。單片機則是從工業(yè)測控對象、環(huán)境、接口特點出發(fā),向著增強控制功能、提高工業(yè)環(huán)境下的可靠性、靈活方便的構(gòu)成應(yīng)用計算機系統(tǒng)的界面接口的方向發(fā)展。因此,單片機有著自已的特點,主要是:〔1〕〔2 〕
·品種多樣,型號繁多。品種型號逐年擴充以適應(yīng)各種需要。使系統(tǒng)開發(fā)者有很大的選擇自由。CPU從4、8、16、32到64位,有些還采用RISC技術(shù);
·提高性能,擴大容量。集成度已達200萬個晶體管以上。總線工作速度已達數(shù)十微秒。工作頻率達到30MHz甚至40MHz。指令執(zhí)行周期減到數(shù)十微秒。存儲器容量RAM發(fā)展到1K、2K,RO M發(fā)展到32K、64K;
·增加控制功能,向外部接口延伸。把原屬外圍芯片的功能集成到本芯片內(nèi)?,F(xiàn)今的單片機已發(fā)展到在一塊含有CPU的芯片上,除嵌入RAM、ROM存儲器和I/O接口外,還有A/D、PWM、U ART、Timer/Counter、DMA、Watchdog、Serial Port、Sensor、driver、還有顯示驅(qū)動、鍵盤控制、函數(shù)發(fā)生器、比較器等,構(gòu)成一個完整的功能強的計算機應(yīng)用系統(tǒng);
·低功耗。供電電壓從5V降到3V、2V甚至1V左右。工作電流從mA級降到μA級。在生產(chǎn)工藝上以CMOS代替NMOS,并向HCMOS過渡;
·應(yīng)用軟件配套。提供了軟件庫,包括標準應(yīng)用軟件,示范設(shè)計方法。使用戶開發(fā)單片機應(yīng)用系統(tǒng)時更快速、方便。使有可能做到用一周時間開發(fā)一個新的應(yīng)用產(chǎn)品;
·系統(tǒng)擴展與配置。有供擴展外部電路用的三總線結(jié)構(gòu)DB、AB、CB,以方便構(gòu)成各種應(yīng)用系統(tǒng)。根據(jù)單片機網(wǎng)絡(luò)系統(tǒng)、多機系統(tǒng)的特點專門開發(fā)出單片機串行總線。此外,還特別配置有傳感器,人機對話 、網(wǎng)絡(luò)多通道等接口,以便構(gòu)成網(wǎng)絡(luò)和多機系統(tǒng)。
1.2 單片機的性能〔3〕
單片機通常按其微處理器字長的位數(shù)來分類,如4、8、16、32、64位單片機。
1.2.1 4位機
1971年Intel首先推出了4位微處理器芯片4004。此后各廠家相繼推出4位機產(chǎn)品。因4位機每次只能處理一位BCD碼數(shù)據(jù),故只適于簡單控制場合。但因其價廉,在家電等消費類產(chǎn)品中仍有廣泛應(yīng)用。近年來 ,為了抵御8位機的侵蝕,4位機在結(jié)構(gòu)和性能上有了很大發(fā)展。主要有:
·采用<1μm CMOS工藝,使指令執(zhí)行速度達到1μs.ROM為32~64kB,RAM為4k×4位。這些增強性能已與8位機相當;
·將LED、LCD、VFD等顯示驅(qū)動集成在單片中。這種增強的I/O功能甚至比一般的8位機還強;
·降低功耗。低于2.2V電壓和μA級電流也能運行。這比一般8位機還低一些;
·采用類似于RISC的結(jié)構(gòu)。使4位機的性能大幅度提高;
·針對特定的應(yīng)用加入特定的功能。如A/D、D/A、過零檢測、比較器、計數(shù)器、定時器、圖形顯示、遙控等。
但即使如此,4位機的市場占有率仍然較小。性能如表1(篇幅所限,僅舉數(shù)種說明)所列。
1.2.2 8位機
由于8位機可以一次處理一個ASCII字符,因而用途十分廣泛。如顯示、終端鍵盤、打印、字處理、工業(yè)控制等。市場占有率70%以上。功能豐富,品種齊全,通用性強。1972年Intel首先推出了8位微處理器8008,隨后于1976年率先推出8位機MCS-48系列。1980年又推出MCS-51系列產(chǎn)品,其性能大大超過48系列產(chǎn)品。如計算速度為48系列的10倍,時鐘12MHz時指令周期可為1μs等。Motorola到78年才推出第一個單片機MC6801系列,不過,功能已相當豐富,如嵌入有EEPROM、A/D、LED驅(qū)動、PWM輸出等,成為功能很強的工業(yè)控制器。Zilog也在78年推出Z8系列單片機,它一開始就以一種新面貌出現(xiàn),不單可用作單片機,還可作為微處理器用于微計算機系統(tǒng)中。值得特別提出的是,Atmel公司推出的89C系列單片機〔4〕,其內(nèi)核與工業(yè)標準的80C51同,即指令集與管腳分布與MCS51產(chǎn)品兼容。它的特點是時鐘頻率更高 ,可達33MHz,最高可達40MHz,因而運算速度更快。我國單片機主要應(yīng)用領(lǐng)域之一為工業(yè)測控 ,用于此領(lǐng)域的單片機多為8位機,而以MCS-51系列和AT89C5系列用得最多。不少高校的微機原理或單片機原理課程都以這種機型為背景機。
生產(chǎn)8位機的廠家相當多,品種型號很多。在我國,主流則是上述幾家公司的派系產(chǎn)品。而每一派系又有多個廠家及其多種型號產(chǎn)品。如屬于Intel派系的有Philips/Signetics,Siemens,AMD,OKI,MARTRA-MHS等公司型號的產(chǎn)品。屬于Motorola派系的有Hitachi,Mitsubish,Rockwell,WDC等公司型號產(chǎn)品。屬于Zilog派系的有NEC,Hitachi,SGS-Thomson等公司型號的產(chǎn)品。在這幾個派系中以Intel的市場占有率最高,Motorola居中,Zilog最低。為了占領(lǐng)市場,Motorola還研制了6804/68HC04芯片,它是介于4位機與8位機之間的系列,CPU處理8位數(shù)據(jù),運行8位指令,但數(shù)據(jù)則是每次串行輸出一位,設(shè)計目標是4位機的價格,很適于質(zhì)高價廉的場合。
1.2.3 16位機
1978年Intel最先推出16位微處理器868系列,與隨后Motorola的M68000,Zilog的Z8000成為當時的三大系列16位微處理器。由于8位機應(yīng)用廣泛而且能解決問題,使16位單片機進入市場較晚,到1988年Inte l才推出MCS-96系列機。此機具有高速運算及高速處理和控制能力,具有16位的CPU,8位的外部總線( 因此又稱準16位機),豐富高效的指令系統(tǒng),性能價格比優(yōu)異,其售價只比8位機稍微高一些。片內(nèi)有A /D、PWM、Watchdog及靈活的中斷系統(tǒng)。在工作頻率12MHz時指令執(zhí)行時間為1~2μs。由于性能功能均良好,一出現(xiàn)便引起工業(yè)界廣泛注意 。在我國,早年以MCS-96應(yīng)用最多,近年來,Intel80C196、80C25 1、80C51XA等有廣泛的應(yīng)用 。生產(chǎn)16位機的廠家還有Motorola,MATRA-MHS,Mostek(Thomson),NEC ,OKI,Phil ips/Signetic,Sieme ns等。但到目前總產(chǎn)量仍不大,遠低于8位機。不過由于采取了增強功能、提高性能、品種多樣化和不斷降低價格等措施,近年來發(fā)展迅速,估計90年代末期可望趕上8位機。所采取的措施主要有:
·增強運算能力,加大容量。片內(nèi)有健全的乘除指令,RAM容量加大到2k,ROM到64k,可直接支持C和Forth語言;
·提高數(shù)據(jù)處理與傳輸能力。一般都增加了DMA傳輸和快速I/O功能;
·提高速度。如80C51XA工作頻率達30MHz,HPC系列達40MHz。指令周期降至數(shù)μs。
·采用RISC結(jié)構(gòu)。如Waterscale的PSC1000,Harris的RTX2000等均采用RISC結(jié)構(gòu)。
現(xiàn)今16位機以Intel的8096系列的產(chǎn)量最大,準16位機8098已停產(chǎn)。CMOS工藝的單片機以國家半導體的HPC系列的性能價格比最高,Hitachi的H8/500則是目前綜合性能最好的單片機。
1.2.4 32位機
隨著高技術(shù)在智能機器人、光盤、激光打印機、圖像與數(shù)據(jù)實時處理、復雜實時控制、網(wǎng)絡(luò)服務(wù)器等領(lǐng)域的應(yīng)用發(fā)展,16位機已顯得無能為力,需要32位機才能滿足要求。80年代末推出了多種32位機產(chǎn)品 。如Motorola推出的產(chǎn)品68300、Intel的80960都是1989年出品。其共同特點是:
·尋址能力在GB級以上(存儲、處理彩色圖像需要特大存儲器);
·高指令執(zhí)行速度。每秒M級條指令。如Intel的i960A速度為66MIPS;
·快速運算能力。有的嵌入浮點運算部件,運算能力大為增強;
·直接支持高級語言和實時多任務(wù)執(zhí)行。如支持C、Forth語言。嵌入實時多任務(wù)操作系統(tǒng)。大多數(shù)采用RISC結(jié)構(gòu)。除Motorola的MC68332、國家半導體的NS32CG160等仍用CISC外,均用RISC。
1.2.5 64位機
64位機在引擎控制、智能機器人控制、磁盤控制、語音/圖像通信、算法密集的實時控制等場合使用。但國內(nèi)仍未見有應(yīng)用。下面給出一個產(chǎn)品例子。
英國Inmos公司的Transputer T800是64位高性能機。它集成有處理器、高速緩存、64位浮點運算器、存儲控制器、串行接口,適用于超高速并行處理。
中央處理器為32位,其浮點運算速度達12億次/秒。RAM 4k,I/O鏈接通道4組20Mbit/s,時鐘頻率25MHz,數(shù)據(jù)傳輸率100MB/s,可尋址外部存儲空間4GB。外存儲器傳輸率33MB/s。
2 單片機的總線
一直以來,單片機沒有自己的專門的總線標準,通常是由著名廠家推出自己產(chǎn)品時配套設(shè)計的。如MC S-51系列單片機就設(shè)計有完善的三總線結(jié)構(gòu)(地址總線AB,數(shù)據(jù)總線DB,控制總線CB),要構(gòu)成不同的單片機應(yīng)用系統(tǒng)是方便的。雖然,單片機可以歸結(jié)為工控機的一種,而工控機的成熟主流總線是STD總線,但單片機卻沒有完全執(zhí)行STD總線標(IEEE961),而以控制總線差別較大。
這里只論及完全根據(jù)單片機的特點,按照控制系統(tǒng)網(wǎng)絡(luò)及多機系統(tǒng)的需要而設(shè)計的串行接口總線。有了此總線,多個單片機就能以一定的拓樸結(jié)構(gòu)組成多種系統(tǒng),彌補了在網(wǎng)絡(luò)控制方面的不足。
單片機應(yīng)用系統(tǒng)涉及多種多樣的外部設(shè)備或系統(tǒng)的互連和通信,有必要在單片機與外部芯片間插入有通信功能的接口。這樣做的好處是:1)串行總線連線少,結(jié)構(gòu)簡單,安裝調(diào)整方便。在傳送速度不太高的場合,串行總線是可取的;2)總線接口部分已集成到芯片中,系統(tǒng)可以按功能模塊直接聯(lián)接;3)故障診斷排除十分簡單;4)可利用軟件庫進行安裝,減少軟件開發(fā)時間;5)取消外部接口電路,外部接線少,體積小,可靠,價廉。目前已生產(chǎn)出多種產(chǎn)品,但仍未有正式批準的國際標準。常見的有以下幾種總線〔5〕〔6〕:
·IIC總線(Inter-Integrated Circuit)。這是Philips開發(fā)的一種內(nèi)部雙向二線串行總線。一為串行數(shù)據(jù)總線。另一為串行時鐘總線。線上設(shè)備可用軟件尋址,且可自動沖突仲裁 。標準傳送速率100kbit/s,最大400kbit/s.適于非高速系統(tǒng)。
·BIT總線。這是Intel開發(fā)的一種分布式機間通信的串行總線。通過RUPI-44系列的串行接口單元,可實現(xiàn)點對點、多點主從、環(huán)形網(wǎng)三種鏈路結(jié)構(gòu)的通信。外同步速率2.4MB/s(點對點,多點),1.0MB/s(環(huán)形網(wǎng))。
·MicroWire總線。這是國家半導體開發(fā)的一種三線串行接口總線。一為數(shù)據(jù)輸出線,二為數(shù)據(jù)輸入線,三為時鐘線。線上只有一臺機為主機,其余為從機。MicroWire/plus是增強型。各型號功能各異。
·SPI/SCI總線(串行輸入接口/串行通信口)。由Motorola開發(fā)。SPI為并行同步總線(兩條串行數(shù)據(jù)線,一條串行時鐘線)通過SPI的互連可構(gòu)成各種應(yīng)用系統(tǒng)。SCI為異步通信接口。
·VESA總線(Video Electronics StandardAssociation)。由視頻電子標準協(xié)會等多家公司聯(lián)合推出的全開放模塊式的局部總線。又稱VESALocal總線,簡稱VL。此總線支持高速視頻處理,總線寬32位,數(shù)據(jù)線可擴至64位。數(shù)據(jù)傳輸率132MB/s。適于多媒體場合。
·CAN總線(Controller Area Network)。這是一種單片機外部串行總線。采用多元競爭式結(jié)構(gòu)。按設(shè)定仲裁字的方式進行總線仲裁。是網(wǎng)絡(luò)系統(tǒng)的一種重要總線型式。
此外,還有Signetics公司的芯片內(nèi)部的DDB總線等。
1995年末,世界上最新開發(fā)的Intel公司的總線產(chǎn)品compact PCI被介紹給我國的工控〔7〕 〔8〕,而該類產(chǎn)品在我國目前仍處于初創(chuàng)研發(fā)階段。作為歸結(jié)為工控機類的單片機,如何徹底解決設(shè)備共享問題 ,從而加入現(xiàn)場控制系統(tǒng)(FCS)中,一直是工控界關(guān)注的問題。
3 單片機的軟件
通常單片機開發(fā)中用的程序設(shè)計語言是匯編語言。編寫程序后用PE、EDLIN等軟件在計算機上編輯,然后編譯成機器碼文件,再由通信軟件將機器碼文件送入單片機聯(lián)機調(diào)試。隨著單片機系統(tǒng)規(guī)模的擴大和功能的復雜,用匯編語言編制程序的方法有明顯的缺點。主要是效率低,程序不易維護,不能移植,很不適應(yīng)要求。有必要尋求一種高效率的結(jié)構(gòu)化的高級程序設(shè)計語言。這些語言現(xiàn)在有C、PL/M、Forth 、Pascal、Modula-2等〔9〕。
C語言是一種介于高級語言和匯編語言之間的適于單片機開發(fā)用的語言。它既有高級語言的特點,又易與匯編語言接口。原來用匯編語言寫的程序現(xiàn)在可以用C語言編寫。只是在體現(xiàn)速度的場合如信息的實時處理、實時控制,以及和硬件打交道的場合如接口驅(qū)動程序,才會插入?yún)R編語言程序。一些開發(fā)系統(tǒng)都配有C語言調(diào)試程序、編譯器等。
PL/M是Intel開發(fā)的一種結(jié)構(gòu)化高級語言。如PL/M-96是其中一種。其編譯生成的機器碼就是MCS-96系列單片機的機器碼。其編譯、連接、定位程序可以在80386及其兼容機上運行。
Forth語言原來是60年代美國人CharlesMoore發(fā)明的一種中級計算機語言,用于控制天文望遠鏡,1986年移植到單片機中。它具有速度快、程序簡單、結(jié)構(gòu)精巧、擴充方便、空間節(jié)省等特點。適宜向工控、設(shè)備管理、數(shù)據(jù)處理、智能機器人、儀表等領(lǐng)域推廣應(yīng)用。Forth語言別具一格,與其它高級語言不同,它以詞典為核心,以堆棧為運算場所,把解釋、編譯、調(diào)度、設(shè)備管理等集于一體,能同時使用For th高級語言、編語言、機器語言。因Forth的內(nèi)核只占2k~8k,很容易裝入儀表內(nèi)部。
因Modula-2是基于Pascal開發(fā)系統(tǒng)移植來的,具有Pascal的特點,它們都比C差些。在此不再敘述。
4 單片機的開發(fā)工具
因單片機本身不具備開發(fā)功能,因此,在開發(fā)單片機時必須借助某些開發(fā)工具。這些開發(fā)工具通常稱為仿真器或開發(fā)系統(tǒng)??晒┎捎玫挠小?0〕:
·在線仿真器。簡稱仿真器。仿真器通過RS-232接口(或并行口)與宿主機相連。又用電纜線把仿真器與目標系統(tǒng)相接。用仿真器中的“仿真單片機”取代目標系統(tǒng)的同類型的“目標單片機”。然后在宿主機上進行各種操作,從而獲得對仿真單片機也即對目標單片機的仿真和控制功能。這是我國用得最多的一種,其操作平臺由DOS系統(tǒng)發(fā)展到WINDOWS。
·在位仿真式的在線仿真器。與在線仿真器不同的是,把仿真器與目標系統(tǒng)間的連接電纜歸并到仿真器的負載之中,從而不會影響目標系統(tǒng)的性能(如噪聲干擾、穩(wěn)定性等)。北京東方計算機技術(shù)研究所開發(fā)的UD-96/C196仿真器采用了這種技術(shù)。
·綜合開發(fā)系統(tǒng)。把在線仿真器、邏輯分析儀、信息發(fā)生器、EPROM寫入器等原來分開的功能部分有機地結(jié)合在一起。使開發(fā)工作更有效、方便,但價格昂貴。
·自開發(fā)系統(tǒng)。與在線仿真器不同的是取消用電纜連接另外的目標系統(tǒng)。開發(fā)完畢后就將自身作為目標系統(tǒng)使用。開發(fā)價格較低。
下面介紹一下國內(nèi)外的幾種Forth語言開發(fā)系統(tǒng)。
·英國Triangle DigitalServices公司的TDS-9090跟蹤數(shù)據(jù)仿真器(Track Data Simulato r)。通過RS-232與計算機相連,即可用Forth語言編程。然后將程序代碼存入PROM中,生成一個獨立的系統(tǒng)。在非易失性RAM支持下獨立運行。TDS的硬件是CMOSHatchi的HD63A03Y 8位單片機,指令與Motorola的680 0兼容。RAM 30K,ROM16K,EPROM 16K,EEPROM 256B。包含有一個寫機器語言的符號匯編器,可同時使用Forth及匯編語言。具有全屏幕編輯、多任務(wù)、時鐘、看門狗、低電源運行功能。
·加拿大SDS電子技術(shù)公司的SDSForth-51開發(fā)系統(tǒng)。其硬件為Intel的8051系列8位單片機。包括For th-51軟件和SL-51Kit開發(fā)工具兩部分。將Kit與PC機連接,即可用Forth或匯編語言編程??捎肞C聯(lián)機調(diào)試。最后生成二進制文件裝入仿真器。
·MCS96-Forth 1.0開發(fā)系統(tǒng)。1996年,國內(nèi)有人在MCS-96系列單片機上開發(fā)出一種Fort h系統(tǒng),命名為MCS96-Forth 1.0,提供一個實用的Forth開發(fā)工具,已經(jīng)通過鑒定。已具備正式投入運行條件 。Forth語言已經(jīng)漢化。