單片機(jī)的基本功能對于大多數(shù)MCU來說,以下功能是最常見和最基本的。不同單片機(jī)的描述方法可能不同,但本質(zhì)是一樣的。
1. Timer : Timer的種類雖然很多,但可以分為兩大類。第一種是具有固定時(shí)間間隔的Timer,也就是說它的定時(shí)是由系統(tǒng)設(shè)定的,不能由用戶程序控制。系統(tǒng)僅提供幾種不同類型的定時(shí)器。給用戶程序一個(gè)固定的時(shí)間間隔,如32Hz、16Hz、8Hz等。由于這種定時(shí)器在4位MCU 中比較常見,可以用來實(shí)現(xiàn)時(shí)鐘、定時(shí)等相關(guān)功能。
另一種是可編程定時(shí)器。這種定時(shí)器的計(jì)時(shí)可以由用戶程序控制。控制方式包括時(shí)鐘源的選擇、預(yù)分頻數(shù)的選擇、預(yù)置數(shù)的設(shè)置等。大多數(shù)MCU同時(shí)具備這三種,也有的可能具備其中一種或兩種。這種Timer應(yīng)用非常靈活,實(shí)際使用也是千變?nèi)f化的。最常見的應(yīng)用之一是使用它來實(shí)現(xiàn)PWM輸出。
由于可以自由選擇時(shí)鐘源,因此此類Timer一般與Event Counter結(jié)合使用。
2. IO口:任何MCU都有一定數(shù)量的IO口。沒有IO口,MCU將失去與外界通信的通道。根據(jù)IO口的可配置情況,可分為以下幾種:
純輸入或純輸出:這種類型的IO口由MCU硬件設(shè)計(jì)決定,只能輸入或輸出,不能通過軟件實(shí)時(shí)設(shè)置。
3.直接讀寫IO口:例如MCS-51的IO口就 屬于這種IO口。執(zhí)行讀IO端口命令時(shí),為輸入端口;當(dāng)執(zhí)行寫 IO 端口命令時(shí),它自動(dòng)成為一個(gè)輸出端口。
程序編程設(shè)置輸入輸出方向:該類IO口的輸入或輸出由程序根據(jù)實(shí)際需要設(shè)置,應(yīng)用更靈活,可實(shí)現(xiàn)一些總線級應(yīng)用,如12C總線、各種LCD、LED Driver控制總線等。
使用IO口的時(shí)候一定要牢記這一點(diǎn):對于輸入口,必須有一個(gè)清電平信號(hào),保證不能懸空(這個(gè)可以通過加上拉或下拉電阻來實(shí)現(xiàn)) ; 而對于輸出端口,輸出狀態(tài)電平必須考慮到其外部連接,應(yīng)保證Standby或靜態(tài)時(shí)沒有source current或sink current。
外部中斷:外部中斷是大多數(shù)MCU 的基本功能。它們通常用于實(shí)時(shí)信號(hào)生成、數(shù)據(jù)采樣和狀態(tài)檢測。上升沿、下降沿、電平觸發(fā)都是中斷方式。在大多數(shù)情況下,外部中斷是通過輸入端口處理的。如果是IO口,只有設(shè)置為輸入口時(shí)才會(huì)啟用中斷功能;如果設(shè)置為輸出端口,外部中斷功能會(huì)自動(dòng)關(guān)閉(ATMEL的ATiny系列有一些例外,輸出端口也可以觸發(fā)中斷功能)。外部中斷的應(yīng)用如下:
外觸發(fā)信號(hào)檢測:一種是基于實(shí)時(shí)性要求,如可控硅控制、突發(fā)信號(hào)檢測等,另一種是基于省電。
信號(hào)頻率測量:為確保不丟失信號(hào),外部中斷是最佳選擇。
解碼數(shù)據(jù):為了降低遙控應(yīng)用領(lǐng)域的設(shè)計(jì)成本,經(jīng)常需要使用軟件對各種編碼數(shù)據(jù)進(jìn)行解碼,例如曼徹斯特編碼和PWM 編碼。
按鍵檢測和系統(tǒng)喚醒:為了使MCU 進(jìn)入休眠狀態(tài),必須通過外部中斷將其喚醒。最基本的形式是一個(gè)按鈕,而層次的變化是由按鈕的動(dòng)作引起的。
4 、通信接口:MCU提供的通信接口一般有SPI接口、UART。I2C 接口等,描述如下:
SPI接口:這類接口是大多數(shù)MCU提供的最基本的通信方式。它的數(shù)據(jù)傳輸由一個(gè)同步時(shí)鐘控制。信號(hào)包括SDI(串行數(shù)據(jù)輸入)、SDO(串行數(shù)據(jù)輸出)、SCLK(串行時(shí)鐘)和Ready信號(hào);在某些情況下,可能沒有 Ready 信號(hào);這類接口可以工作在Master模式或者Slave模式,通俗的說就是看誰提供時(shí)鐘信號(hào),提供時(shí)鐘的一方是Master,對方是Slaver。
UART:屬于最基本的異步傳輸接口。它的信號(hào)線只有兩條Rx和Tx線。基本數(shù)據(jù)格式為:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even, Odd or None) + Stop Bit(1~2Bit)。一位數(shù)據(jù)所占用的時(shí)間稱為波特率。
對于大多數(shù)單片機(jī),數(shù)據(jù)位長度、數(shù)據(jù)校驗(yàn)方式(奇校驗(yàn)、偶校驗(yàn)或無校驗(yàn))、停止位長度和波特率都可以通過程序編程靈活設(shè)置。當(dāng)然。這類接口最常見的方式是與PC的串口通信。
I2C接口:I2C是飛利浦開發(fā)的數(shù)據(jù)傳輸協(xié)議。它還使用兩個(gè)信號(hào)來實(shí)現(xiàn):SDAT(串行數(shù)據(jù)輸入和輸出)和SCLK(串行時(shí)鐘)。最大的好處是可以在這條總線上掛接多個(gè)設(shè)備,并且可以通過地址來識(shí)別和訪問它們;I2C總線最大的優(yōu)點(diǎn)之一就是通過IO口使用軟件實(shí)現(xiàn)非常方便,其傳輸?shù)臄?shù)據(jù)速率完全由SCLK控制。為了控制,它可以快也可以慢,不像 UART 接口,它有嚴(yán)格的速率要求。
5 、看門狗:看門狗是大部分單片機(jī)的基本配置,只能讓程序復(fù)位不能關(guān)閉(有些是在程序燒錄時(shí)設(shè)置的,比如Microchip PIC 系列單片機(jī)),而有些單片機(jī)是由一個(gè)特定的方法,無論它是否打開。比如三星的KS57系列,只要程序訪問Watchdog寄存器,就會(huì)自動(dòng)開啟,不能再次關(guān)閉。一般來說,看門狗的復(fù)位時(shí)間可以通過程序來設(shè)置。Watchdog最基本的應(yīng)用是為MCU因意外故障而死機(jī)提供自恢復(fù)能力。 |