注:本文是作者以前發(fā)表在其個人博客,現(xiàn)在發(fā)布到“聚豐開發(fā)”專欄
不經(jīng)意間,“酷睿雙核”已經(jīng)成為電腦CPU性能達標的代名詞,雙核從字面意思理解就是里面有兩個CPU的核,原來一臺電腦只有一個CPU核處理事情,如果用了雙核CPU,就有兩個CPU核來處理事情,這樣速度和效能會更高。
這樣在一般人眼里,雙核儼然代表了先進的技術(shù)和先進的性能,當(dāng)然同時也代表著先進的價格,不信可以去回顧一下市場價格,同一時期雙核電腦CPU要比單核的價格高不少。
從性能和價格上電腦CPU和單片機是沒有可比性,如果說電腦CPU是大佬,那么單片機就是大佬馬仔的馬仔的馬仔的馬仔的馬仔。既然雙核電腦CPU性能比單核的要強大不少,作為和電腦CPU八百年前祖上是一家的單片機,如果也用雙核技術(shù),想必性能也會提升不少。
理論上講設(shè)計出雙核單片機完全沒有問題,只是單片機要求價格便宜,要是設(shè)計出一款雙核單片機,假設(shè)性能可以提升一倍,但價格也要上升許多,恐怕不會有多少人可以用。
在我的潛意識里,一直都認為雙核單片機是一種相對昂貴的產(chǎn)品,應(yīng)該沒有機會和現(xiàn)在大量價格不超過人民幣1塊錢的普通單片機進行競爭,直到去年底接觸到***應(yīng)廣科技的一款雙核單片機,才徹底改變了我這種認識。
在介紹這種雙核單片機之前,讓我們一起了解一下目前市場上價格不超過人民幣1塊錢的一些單片機,這些單片機的具體性能參數(shù)不做介紹,這里只列舉大致參考價格(可能存在少許偏差)。
義隆 EM78P153 市場參考價0.7~0.8元
飛凌 兼容版153 市場參考價0.55~0.6元
博巨興 兼容版153 市場參考價0.45~0.55元
麥肯、佑華等公司性能相當(dāng)型號 市場參考價 0.6~0.7元
在讓我們來看一下這款單片機的一些性能參數(shù):
內(nèi)置2個FPPA處理單元
1k Word OTP 程序存儲器
64 Bytes RAM 數(shù)據(jù)存儲器
包含跳轉(zhuǎn)指令在內(nèi)的絕大多數(shù)指令為單周期指令
支持位操作
支持硬件延時和等待指令 *注1 *注2
13條雙向IO口+1條輸入口
3通道8位A/D轉(zhuǎn)換器
IO支持VDD/2電壓驅(qū)動LCD
內(nèi)部低速RC、內(nèi)部高速RC、外部振蕩器、外部RC、外部時鐘可選
休眠電流<1uA
工作電壓 2.5~5.5V
工作溫度 -40~105攝氏度
(*注1:該單片機支持delay 100指令,該指令為延時等待100+1個周期)
(*注2:該單片機支持wait1 pa.0指令,該指令為當(dāng)pa.0為高時才執(zhí)行下一條指令)
以我個人的經(jīng)驗,現(xiàn)在市面上的單片機,如果想找出一款支持PWM、ADC、UART中任意一種功能的型號,價格一般都超過人民幣1塊錢,而且一般都只支持其中的一到兩種,除非是價格達到2~3元的型號。而如果選用前面列舉參數(shù)的單片機,本身硬件已經(jīng)直接支持ADC,而且還可以通過軟件在不影響主程序的前提下實現(xiàn)高速PWM和UART功能。

上圖為該雙核單片機的內(nèi)部構(gòu)架示意圖,從圖可見該單片機內(nèi)部有兩個核,分別為FPP0和FPP1,每個核自己有獨立的程序指針(PC)、堆棧指針(SP)、累加器(ACC)和狀態(tài)寄存器(CF)。設(shè)計原理并不復(fù)雜,是讓這兩個核共享系統(tǒng)時鐘,第一個系統(tǒng)時鐘周期執(zhí)行FPP0程序,第二個系統(tǒng)時鐘周期執(zhí)行FPP1程序,依次間隔往復(fù),這樣就可以讓兩個核各自運行自己的程序。
兩個核都可以訪問控制RAM和特殊功能寄存器,因為在一個系統(tǒng)周期內(nèi)只有一個核在工作,所以不會出現(xiàn)兩個核同時寫某個RAM或寄存器的狀況。為了讓大家更清晰地理解這個雙核單片機的工作機理,下面我以問答的方式對部分特性進行說明。
1.兩個核的程序放在什么地方?如何執(zhí)行?
樣例代碼:
地址 指令
0x000 goto main0
0x001 goto main1
...
main0:
...
main1:
...
回答:單片機上電后FPP0的程序指針指向0x000,F(xiàn)PP1的程序指針指向0x001,但是單片機系統(tǒng)只啟動FPP0,F(xiàn)PP0跳轉(zhuǎn)到main0開始執(zhí)行該位置的代碼,F(xiàn)PP1需要在main0代碼設(shè)置相應(yīng)控制寄存器位才能啟動。
系統(tǒng)上電只啟動FPP0是為了便于程序統(tǒng)一初始化各特殊功能寄存器,如果在FPP0和FPP1中都分別進行初始化,很有可能造成系統(tǒng)配置混亂。
2.如果我在main1中使用跳轉(zhuǎn)指令跳轉(zhuǎn)到main0中,會有什么后果?
goto main0
goto main1
...
main0:
...
main0_loop:
...
goto main0_loop
...
main1:
...
goto main0 //***這里跳轉(zhuǎn)到main0中***//
...
回答:編譯器會報警出錯,所以后果就是代碼錯誤無法通過編譯,需要刪除該代碼。
3.會不會出現(xiàn)兩個核同時寫某個RAM變量而導(dǎo)致寫失敗的情況?
回答:每個系統(tǒng)時鐘周期只有一個核會工作,所以不會出現(xiàn)兩個核在同一時刻寫同一地址的情況。
4.既然FPP1需要FPP0的程序來啟動,那不啟動FPP1時是不是FPP0運行速度會增快一倍呢?
回答:啟動FPP1與不啟動FPP1不影響FPP0的運行速度,F(xiàn)PP0的速度總是系統(tǒng)時鐘的一半,這個是由系統(tǒng)硬件自動進行分配的,不啟動FPP1的影響是在屬于FPP1的那一半時間單片機沒有執(zhí)行代碼。
-
單片機
+關(guān)注
關(guān)注
6074文章
45341瀏覽量
663695
發(fā)布評論請先 登錄
雙核單片機之初體驗
如何在rt-thread studio上開發(fā)STM32H747這類雙核的單片機?
雙核單片機是什么
S12X系列雙核單片機的整車控制器CAN結(jié)點設(shè)計
雙核單片機之初體驗--2
雙核單片機之初體驗--3
單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)——雙單片機串口通信實驗
AN5286_STM32H7x5/x7雙核單片機調(diào)試的應(yīng)用手冊
STM32H5 DA 之初體驗(帶 TrustZone)

雙核單片機之初體驗--1
評論