在SX系列單片機上實現(xiàn)的虛擬技術(shù)
虛擬技術(shù)是計算機應(yīng)用的一個重要方面,單片機(MCU)領(lǐng)域也不例外。虛擬技術(shù)是計算機對真實情況的軟件模擬。多年來,在單片機的應(yīng)用中,虛擬技術(shù)也曾零星 的用于外設(shè)接口或功能單元的時序模擬、狀態(tài)模擬以及控制模擬上。例如,各種串行接口的虛擬傳送,頻率信號源的虛擬輸出,以及虛擬的LED譯碼控制等。
虛擬技術(shù)的本質(zhì)是計算機的軟件仿真,只有當軟件仿真到達實時效果時,虛擬技術(shù)才能到達實用水平而得到普及推廣。因此單片機虛擬技術(shù)的實用化基礎(chǔ)是單片 機執(zhí)行指令的高速度。例如當指令速度到達0.5MIPS(百萬條指令/秒)時,可實現(xiàn)傳輸速度100kbps的I2C串行總線接口的虛擬,但是無法實現(xiàn)傳輸速度為1.05MH z的SPI串行總線的仿真。指令速度越高,可虛擬的對象就越廣泛。在采用模擬技 術(shù)時,除了要求指令高速運行外,還要有合理的片內(nèi)資源支持并實現(xiàn)專業(yè)化設(shè)計,對虛擬對象有徹底的了解,開發(fā)出優(yōu)秀的軟件包,并為虛擬對象的軟件包制定出規(guī)范。
SX系列單片機
您聽說過每秒執(zhí)行1億條指令的8位單片機嗎?SCENIX公司的SX系列新型單片機就 是這樣的單片機(詳情請查網(wǎng)址:www.scenix.com)。在研發(fā)過程中充分考慮到基于高速指令運行下的虛擬外設(shè)(也就是軟件外設(shè))。除了極高的指令運行速度 ,極高的時鐘頻率外,在片內(nèi)資源的配置及I/O端口的設(shè)置方面都作了專門化的考 慮,并組織了較大規(guī)模的虛擬外設(shè)軟件包開發(fā)隊伍。目前已有多種虛擬外設(shè)軟件 模塊可以免費提供。 您在項目開發(fā)過程中,您可能為提高您的系統(tǒng)速度而不得不改用16位的單片機或 用DSP(數(shù)字信號處理器)。當您在設(shè)計您的系統(tǒng)時您可能需要多個串口、幾路A /D和D/A,或一個紅外數(shù)據(jù)收/發(fā)器,最好還能有一個I2C/SPI串行外圍接口,但您 可能很難找到一個合適的單片機滿足您的要求。如果采用SX系列超高速單片機, 這些外部電路可以根據(jù)您的系統(tǒng)要求隨時添加進您的單片機,而不會額外增加系 統(tǒng)的成本。
美國SCENIX公司推出的SX系列超高速單片機,其結(jié)構(gòu)和指令與普通的單片機類似 ,但它利用其高速性能發(fā)展和提高了單片機“虛擬外設(shè)”這一概念的內(nèi)容和實用化水平。它把許多單片機可能會用到的功能通過模塊化的軟件來實現(xiàn)。由于這種 軟件模塊相對獨立,結(jié)構(gòu)明晰,入口和出口參數(shù)已經(jīng)定義好了,開發(fā)者無須知道 模塊是如何實現(xiàn)的,只需把需要的模塊加到自己的應(yīng)用程序中去即可。
SCENIX公司為什么會想到這個主意呢?在8位嵌入式單片機領(lǐng)域中,單片機處理器 的結(jié)構(gòu)與20年前仍差不多,但是更加小巧,芯片上也集成了更多的外設(shè)功能和各 種存儲器,尺寸也更小。但是,如果將各種應(yīng)用項目所需的功能都放在單片機內(nèi) 部便會使芯片面積增大,制造成本太高。通常,設(shè)計人員只能通過修改現(xiàn)有設(shè)計 和重造掩膜,增加所需外設(shè)功能的芯片,才能增加單片機的功能,以滿足不同領(lǐng) 域應(yīng)用的需要。而且,單片機的供應(yīng)商為滿足特定應(yīng)用對不同性能的需要,必須制造同一器件的不同變體。例如,用于電視機遙控的單片機采用8位內(nèi)核,配置各 種片內(nèi)的外圍模塊來實現(xiàn)ROM和RAM、多個可編程I/O口、時鐘產(chǎn)生電路和用于紅外(IR)接口的通用異步收發(fā)器(UART)等功能。在相同的處理器內(nèi)核基礎(chǔ)上增加 I2C總線接口等功能,就可用于錄像機和攝像機。其它應(yīng)用可能需要增加通信功能等等。
也有人嘗試用單片機的部分能力來實現(xiàn)軟件外設(shè)功能,但是,8位單片機的吞吐量 通常限制了軟件外設(shè)的使用。盡管有時在單片機中也加入一兩種軟件外設(shè)功能,但這些功能必須是簡單的、吞吐量較低的并且對實時性要求不太高的,而復雜外 設(shè)和高吞吐量外設(shè)功能仍需采用硬件實現(xiàn)。例如,8位單片機的平均吞吐量接近4 MIPS,用軟件實現(xiàn)100kHz后臺定時器約需要1.0MIPS吞吐量,19.2kbps的UART約需 要1.5MIPS,模數(shù)轉(zhuǎn)換器(ADC)約需5MIPS。這些功能占用單片機資源太多,往往 只能通過硬件來實現(xiàn)。一些簡單的功能,如I2C/SPI/MICROWIRE串行接口則可以通 過軟件來實現(xiàn)。許多工程師經(jīng)常用軟件實現(xiàn)低速UART作為硬件UART的補充,滿足 雙UART的需要。但是如果需要高速或多個軟件UART,普通單片機就顯得有點力不 從“芯”了,更別說A/D轉(zhuǎn)換器、電機控制器和雙音多頻(DTMF)檢測等其它功能 了。對于那些實時性比較強或需要中斷來實現(xiàn)的外圍設(shè)備,普通的單片機由于速 度和其中斷響應(yīng)的不可預見性而應(yīng)用受到限制。
SCENIX采取了另一種可行的方法,即開發(fā)一種全新的適宜執(zhí)行軟件外設(shè)功能的8位單片機架構(gòu)。專門用軟件來實現(xiàn)硬件外設(shè)的功能,在很多情況下無需進行專用外 圍模塊的開發(fā),從而增加了設(shè)計的靈活性,降低了最終產(chǎn)品的整體成本,縮短了 上市周期。
有些單片機方面的專家正在致力于單片機應(yīng)用標準化方面的研究,他們建議單片 機的應(yīng)用要避免低水平的重復開發(fā)。虛擬外設(shè)的開發(fā)思路恰好適應(yīng)了單片機軟件 的標準化和模塊化的設(shè)計要求。