首先要明白一個東西,可以叫架構(gòu)或者說內(nèi)核,可以把這個東西理解成芯片設(shè)計時候的大框架,STC系列的單片機是一個大的框架設(shè)計的,叫8051。STM32也是一個大框架設(shè)計的,叫ARM。這里沒有說到2530,先別急,往后看。
那么是不是一種大框架設(shè)計出來的芯片都是一樣的?其實也不都是一樣的。區(qū)別有兩方面,一方面是芯片硬件上的外設(shè)資源,另一方面,是芯片配套的軟件SDK。
芯片硬件上的外設(shè)資源,包括但不限于它有多少個定時器,它有多少中斷,有多少IO,有多少串口,有多少SPI,有多少IIC,當(dāng)然,也包括它帶不帶無線射頻的組件。所以你看STC的芯片型號非常多,區(qū)別其實就在外設(shè)(很典型的例子,stc12c5a60 pwm是8位的,stc15w4系列pwm是16位的)。傳統(tǒng)的51單片機是不帶無線射頻部分的組件的,比如STC的芯片。而C2530設(shè)計的目的是面向ZigBee的,ZigBee是一種常用2.4G頻段通信的協(xié)議簇??梢园裐igBee、藍(lán)牙理解為同一層面的東西。所以這就是51單片機(暫且定義為以stc為代表的各種51單片機)和cc2530的一個區(qū)別,即硬件外設(shè)上,2530帶無線射頻組件,有豐富的外設(shè)(flash,ram等等)。
芯片SDK方面,芯片廠商設(shè)計芯片的時候光給你數(shù)據(jù)手冊是不行的,因為現(xiàn)在芯片設(shè)計的越來越復(fù)雜,各家芯片廠商設(shè)計的芯片之間也有一些差異,所以這些廠商在設(shè)計芯片的時候,通常也會提供不同的SDK。比如,野火的《STM32庫開發(fā)實戰(zhàn)指南》就講的STM32的庫(相當(dāng)于ST公司給大家的SDK),當(dāng)然,現(xiàn)在有更好用的stm32cube了。你肯定會說,STC51單片機沒給我SDK啊?STC的51單片機確實設(shè)計的太好上手了,不需要復(fù)雜的SDK,一個功能,數(shù)據(jù)手冊幾行代碼復(fù)制出來就能用。但是在無線傳感器網(wǎng)絡(luò)這個領(lǐng)域就行不通了。比如剛才提到,2530比STC51多了無線射頻的外設(shè),那2540也比STC51多了無線射頻的外設(shè),2530和2540又有啥區(qū)別?區(qū)別就在SDK。2530和2540,一個應(yīng)用場景是ZigBee,一個是藍(lán)牙,Ti都為其設(shè)計了非常復(fù)雜的SDK,其中核心就是OSAL??梢赃@樣理解,你要用STC51的方式,來操作寄存器寫一遍藍(lán)牙協(xié)議?;蛘遉igBee協(xié)議棧,歡迎大神來嘗試哈!搭起我的小板凳,強勢圍觀。所以,我們不可能從零開始實現(xiàn)一個無線協(xié)議棧,那么TI就幫我們完成了,OSAL負(fù)責(zé)各種任務(wù)的調(diào)度,我們根據(jù)TI SDK預(yù)留好的借口,就能快速的開發(fā)出自己無線傳感器網(wǎng)絡(luò)的demo了。
綜上,2530和普通51單片機的區(qū)別,硬件外設(shè)上,2530的外設(shè)更加強大,核心是多了無線射頻的模組。軟件層面上,2530提供了SDK,開發(fā)需要你了解OSAL才能用的好這個芯片,而普通51單片機沒有。