一本到国产在线精品国内,国产大屁股视频免费区无卡,精品国产日韩aV在线免费观看,国产欧美日韩综合精品一区二区

建立先進理念和體系,創(chuàng)造更好技術和工藝,開創(chuàng)不凡業(yè)績和局面

當前位置:首頁>芯片解密>瀏覽正文

詳解微控制器單片機(MCU)

來源:龍人計算機研究所 作者:站長 時間:2009-10-12 15:05:41

       架構由于微控制器MCU具備單價低、系統(tǒng)硬件架構簡單、應用程序的發(fā)展及修改容易、芯片穩(wěn)定度佳、可靠度高,是故其應用領域極廣,幾乎是無所不在。

   在MCU開發(fā)方面,以架構而言,可分為兩大主流;RISC(如HOLTEK HT48XXX系列)與CISC(如華邦W78系列). RISC (Reduced Instruction Set Computer) 代表MCU的所有指令都是利用一些簡單的指令組成的,簡單的指令代表 MCU 的線路可以盡量做到最佳化,而提高執(zhí)行速率,相對的使得一個指令所需的時間減到最短。HOLTEK的HT46XX(A/D MCU系列) HT47XX(R to F MCU系列) HT48XX(一般I/O MCU系列) HT49XX(LCD MCU系列) 便是采用 RISC 結構來設計。不管是 RISC 或是 CISC(Complex Instruction Set Computer),設計MCU的目的便是為人類服務的,對于 RISC 來說,因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針對較復雜組合的工作便需要由『編譯程序』(compiler) 來執(zhí)行,而 CISC MCU因為硬件所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代替,compiler 的工作因而減少許多。
  以一個數值運算程序來說,使用 CISC 指令集的MCU運算對于一個積分表達式可能只需要十個機器指令,而 RISC MCU在執(zhí)行相同的程序時,卻因為CPU 本身不提供浮點數乘法的指令,所以可能需要執(zhí)行上百個機器指令 (但每一個指令可能只需要 CISC 指令十分之一的時間),而由程序語言轉換成機器指令的動作是由程序語言的 Compiler 來執(zhí)行,所以在 RISC MCU的Compiler 便會較復雜 。因為同樣一個高級語言 A=B*C 的運算,在 RISC MCU轉換為機器指令可能有許多種組合,而每一種組合的『時間/空間』組合都不盡相同。
  所以 RISC 與 CISC 的取舍之間,似乎也是MCU硬件架構與軟件(Compiler) 的平衡之爭,應該沒有絕對優(yōu)勢的一方,只能說因應不同的需求而有不同的產品,例如工作單純的打印機核心 MCU,便適合使用效能穩(wěn)定,但單位指令效率較佳的 RISC MCU.
  微控制器(MCU)的基本架構
  微控制器產品架構由早期以累積器為基礎的CPU,演進至現(xiàn)今含精簡指令(RISC)或同時含RISC、DSP如Motorola的68356,也有如DEC的SAIIC、與Hitachi的SH-DSP系列等之32位嵌入式微控制器 ,每一系列產品又因應不同的應用與接口需求 ,衍生出不同規(guī)格的產品 。微控制器產品以特性做為區(qū)分的標準與市場統(tǒng)計的依據 ,區(qū)分為4位 、8位 、以及16/32位等三大類 。各廠商依其不同功能組合 ,發(fā)展出系列性的微控制器產品 ,如NEC供應PD75X的4位系列 ,Toshiba供應47CXX的4位系列 、HOLTEK供應HT48CXX的8位系列 、及Intel之MCS-96的16位系列等。
  以下就微控器的基本架構做介紹,如下先介紹MCU架構方塊圖。
MCU架構方塊圖
詳解單片機MCU 架構1
  程序內存
  程序內存(Program ROM)在微控制器中是只讀而不可寫入之記憶單元,此內存主要用來放置使用者所開發(fā)之程序,而其性質乃屬于不常更動或永不變動之資料,微控制器之動作便是依據儲存于此區(qū)之程序指令運作。在8位單芯片中常見的程序內存容量有0.5K、IK、2K、4K 及8K,而通常應用在微控制器的程序內存有下列幾種方式,見(表一):

表一
詳解單片機MCU 架構
  另外關于程序保密部分,不論是加密或保險絲燒斷保護 ,都是為了防止程序被未授權之使用者窺看、竊取(如反組譯程序 、修改內容 、盜取程序等)。程序保密這個功能選擇只在提供OTP、開窗型包裝、EEPROM 及 Flash ROM上使用,因為這些IC可借由燒錄器來回讀取程序代碼,在Mask版本則不需要進行程序保密的步驟 。
  隨機存取內存
  隨機存取內存(Random Access Memory;RAM),亦稱為讀/寫內存(Read-Write Memory),常是被用來暫時存放資料、或是程序執(zhí)行存放資料的地方,用途相當廣泛。以HOLTEK 8位微控制器為例,其容量有64、96、160及224個Byte選擇。
  累積器
  累積器(Accumulator),是MCU的運作中樞 ,80%的指令都與累積器有關 ;資料可以被存放在累積器中,直到總線或其它單元準備接受它、或直到程序需要它為止 。
  緩存器
  緩存器(Register)是MCU內部用來暫時存放資料的地方,每個緩存器的功能各不相同,但卻有一共同的特性,就是可以直接讀/寫,因其位于MCU的內部,故減少了一些不必要的等待及尋址時間,另外有些MCU的I/O Port,也以緩存器型態(tài)來直接存取控制。
  堆棧及堆棧指針
  堆棧(Stack)及堆棧指針(Stack Pointer),堆棧就和盤子一樣,一個一個由下往上堆,而取出時則由上一個一個往下拿,不能由中間抽出,因此又稱為后進先出隊列(Last-In-First-Out Queues)」。功能如下;
  一. 暫時存放PC(Program Count)的值,適用于"子程序呼叫”,或中斷發(fā)生時將PC的值暫時儲存起來;
  二. 可視為緩存器使用,以Push,Pop來完成;
  三. 有些MCU其Stack Level數是固定的(如HOLTEK μC系列),有些則可自定。
  運算邏輯單元
  運算邏輯單元(Algorithm Logic Unit;ALU),其功能在于執(zhí)行算術指令及邏輯判斷,除了產生結果之外,也產生相關的Flag(Zero、Carry、Borrow、Status),每一個MCU都不完全一樣,尤其是Carry Flag一定要查看指令解說表。
  輸入/輸出(I/O Port)
  在單芯片微電腦應用系統(tǒng)中,I/O的擴充不是目的,而是為了提供外部設備一個輸入/輸出的信道,做為外界與MCU間的溝通管道。例如接鍵盤、顯示器、驅動開關控制或測量等;在I/O擴充時必須考慮與之相連接的外圍設備硬件電路特性,如:電位匹配、干擾抑制、驅動能力(如Source,Sink能力)等。
  微控制器在I/O埠方面?zhèn)溆卸喾N電路形式,其中有多端口可以經由軟件以位單位來設定輸出/入方向。各埠附加大電流、高耐壓的緩沖器,以直接驅動LED與高功率晶體管,以及做模擬訊號的輸入之用。

  定時器、定時器
  定時器(Time Counter)、定時器(Timer),由外加振蕩晶體,經除頻電路來提供MCU數種不同的時基(Time Base)。常應用于:

  一. 時鐘之時基(如1sec、500ms、62.5ms、15.625ms等);
  二. PWM(Pulse Width Modulation)之Time Base;
  三. Key Scan;
  四. LED Scan;
  五. Frequency output;
  六. Pulse Reading;
  七. APO (Auto Power OFF)等。

  計數器
  計數器(Event Counter)專用于累計外部的事件個數,可能為Pulse或其它資料,也可用以產生正確的時間延遲。常應用于:
  一、另一種Time Base,外加固定頻率;
  二、計數器;
  三、可規(guī)劃成另一種立即中斷輸入;
  四、計速器(Speed Meter)、轉速表Tachometer)。

  中斷
  中斷(Interrupt)用來處理立即事件、或列為優(yōu)先處理之事件,負責時間計數器超時中斷、及外部事件產生中斷請求等工作。大部分微控制器的中斷處理系統(tǒng)是多層的,內設有中斷優(yōu)先級電路,以決定先后順序。常應用于:
  一、MCU呈被動Standby狀態(tài)(Halt-Stop),由外加信號來Wakeup;
  二、需要立即處理(傳感器、開關、警報器、電源故障預警器);
  三、需要一個固定間隔來處理(Display ,Key Scan ,Read-Time Clock);
  微控制器上的外圍資源
  看了這么多微控制器的的基本架構后,讓我們繼續(xù)來了解微控制器還可以加掛那些外圍資源,以擴充、延伸其功能。

  串行輸出(Serial I/O)
  微控制器內含Serial I/O是為了提供對外部外圍Device的通訊管道,各家種類不同,常見的有以下幾種:
  ◆UART(Universal Asynchronous Receiver Transmitter):Intel,Atmel;
  ◆USART(Universal Synchronous/Asynchronous Receiver
  Transmitter ):Siemens;
  ◆SPI(Serial Peripheral Interface):Motorola;
  ◆SCI(Sertal Communications Interface):這是UART的加強版;
  ◆I2C bus(lnter Integrated Circuit bus):Philips;
  ◆Microwire/Plus:National Semiconductor;
  液晶驅動裝置(LCD Driver)
  在顯示接口上,LCD(Liquid Crystal Display)是常運用的顯示裝置,例如在一些多功能的電話、數字溫度計、呼叫器、大哥大、掌上型游戲機以上皆可以發(fā)現(xiàn)它的蹤跡。因此內含LCD驅動線路的微控制器運用相當廣泛,有兩種驅動方式可供選用:Segment和Dot Matrix,例如:之前流行的寵物蛋是使用Dot Matrix的LCD顯示器;日系的微控制器廠商提供多樣內含LCD驅動裝置的微控制器可供選用,另外HOLTEK HT49XX 系列 也提供LCD驅動裝置的微控制器。
  螢光管驅動裝置(VFT Driver)
  LCD顯示器在無光源或無背光的環(huán)境下,我們即無法讀取顯示器之內容,而VFT顯示器可提供高亮度、且色彩多變化的視覺效果,常應用于高級的家電產品上,如:碟影機、DSP均衡器。要求炫麗輸出效果的產品,在微控制器的選擇上VFT(Vacuum Fluorescent Tube)Driver是重要的資源之一。
  OSD
  對于電視及監(jiān)視器人性化接口是不可缺少的功能之一,OSD(On Screen Display)部分顯示回路為接收水平同步信號(H-Sync)及垂直同步信號(V-Sync),再將信號透過RGB及Blanking將屏幕信息送出,其顯示顏色至多可達八種。各微控制器指令執(zhí)行速率會造成OSD的顯示行數及字段的不同,顯示行數由二行至數十行,字段則由15~26個字符或更多,通常執(zhí)行速率較快者可顯示較多的行數、字段,速率較慢者在顯示上會有直接的受限。
  模擬轉換數字接口(ADC)
  由于微控制器諸多應用上,需要偵測外部環(huán)境狀況,做為處理數據上的參考,如在TV應用方面其調諧器(Tuner)之自動頻率控制(Auto Frequency Control)訊號,即為電壓訊號,其它如溫度之偵測也多是轉換為電壓訊號,所以模擬/數字轉換(Analog to Digital Converter)的應用在工業(yè)及消費電子上都很廣泛。
  模擬之場合是如此頻繁,所以各廠家提供模擬/數字之轉換便成為一般之標準規(guī)格(如HOLTEK HT46XX系列),雖然如此,對于模擬/數字之分辨率各家差異很大,由3位~10位皆有,視各不同需求而異。雖然提供的轉換信道有很多,通常內部僅有一個電路處理,靠選擇器切換,對于時間考慮不是特別強調之應用上,不致有太大之影響。
  另外還有一種模擬/數字之轉換方式,就是R to F(Resistance to Freguency),一般運用在溫度/濕度之偵測,利用電阻/電容式Sensor的變化特性,轉換成頻率值,以此頻率值來計算溫度/濕度的相對性,此類的IC如HOLTEK HT47XX系列。
  數字轉換模擬接口(DAC)
  在控制模擬組件需要模擬訊號,以微控制器而言,就必須內建數字/模擬轉換(Digital to Analog Converter)來因應.其內部由數字/模擬轉換緩存器及一階梯電阻構成,數字/模擬的分辨率各為8位.在一個8位/參考電壓為5V的微控制器,假設一個數字值60轉換成模擬值的計算方式是(60/256x5Volts)=1.171875V
  例如應用在鎖相回路上,VCO(電壓控制振蕩器)即可用DAC做控制。另外Voice IC也是利用原先將語音錄制成數字資料,然后用DAC 方式將數字資料音頻轉換還原模擬語音訊號。
  脈寬調變(PWM)
  其目的也是以數字輸出搭配外圍回路,達到模擬的效果,其組成有前置配器(Pre-divider)、計數器(Counter)、數據閂鎖(Data Latches)、及比較電路
  (Compare Circuits)等。PWM(Pulse Width Modulation)分辨率由程控,當然在一般的I/O埠亦可用時間及Duty Cycle計算技巧來達成PWM之功能,但反應速度會受到限制,且以今日各大半導體廠家皆提供其PWM功能之微控制器就便利性而言 (如HOLTEK HT46XX系列),實在不需再將心思放在PWM之撰寫上,以減輕軟件的負擔。而PWM之功能由6位~14位之分辨率,適合各種不同的需求。
  DTMF產生器、接收器
  電話由原來的Pulse演進為現(xiàn)在的Tone譯碼方式,不但提高了譯碼的速度,也增加了可靠性與抗噪聲能力,DTMF(Dual Tone Multiple Frequency)顧名思義就是混合兩種頻率的音頻訊號,所以譯碼不易出差錯。應用在電話產品的微控制器時,DTMF這個資源常是選擇的重要規(guī)格。
  看門狗(Watchdog Timer)
  微控制器在產品中是不允許當機的,但受到噪聲干擾或操作不當時,需有防范措施確保微控制器在當機的情況下能夠自動重置,讓微控制器能夠繼續(xù)運作.我們可以說看門狗(Watchdog timer)是用來監(jiān)看微控制器是否為不正常的當機,許多微控制器都已把它列為標準配備。
  看門狗定時器實際上就像一個自跑式的RC振蕩器,它完全不必外加零件,意即不管是芯片的時脈振蕩接腳的時脈振蕩有沒有停止,它還是繼續(xù)計數而不隨之中斷而停止,即便是芯片進入省電的Halt狀態(tài)(在Halt狀態(tài)下,芯片之時脈停止振蕩也一定不曾停止Watchdog timer之計時,當計時逾時后將使本芯片自動重置,I/O腳輸出保持不變,耗電相當的省),Watchdog timer要不要致能,在OTP版本必須在程序燒錄時決定,以便決定要不要燒斷其保險絲,在Mask版本由使用者選擇是否使用這個功能。
  雙時脈(Dual Clock)
  微控制器的供應時脈愈高時 ,相對地耗電量也愈大 因此在一些使用電池供應的產品選用時 ,雙時脈常是必須考慮的功能 ,一般副時脈是以32.768KHz運作,主要做為計時(Real Time Clock)之用。