中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線: 4007-888-234

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

技術(shù)支持

剖析dsPIC單片機(jī)數(shù)字信號(hào)控制器的細(xì)節(jié)

更新時(shí)間: 2019-03-23

十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,為您剖析dsPIC單片機(jī)數(shù)字信號(hào)控制器的細(xì)節(jié)。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

Microchip的16位數(shù)字信號(hào)控制器dsPIC融合了高性能16位MCU的控制優(yōu)勢(shì)和完全實(shí)現(xiàn)的DSP高運(yùn)算速度,形成了適合嵌入式系統(tǒng)設(shè)計(jì)的緊密結(jié)合的單芯片單指令流解決方案。 

讓我們看一看過去和現(xiàn)在的一些微控制器(MCU)在性能和工具方面的表現(xiàn)。過去的MCU特性簡(jiǎn)單,比較容易使用。這些MCU工具不僅容易使用,并能提供合理的性能配置,雖然仿真器可能做得像磚頭一樣大。那時(shí),F(xiàn)lash只是代表了家喻戶曉的電視動(dòng)作名星Flash Gordon的名字,而不是標(biāo)準(zhǔn)的MCU程序存儲(chǔ)器技術(shù)。想象一下過去的嵌入式應(yīng)用設(shè)計(jì)師來到21世紀(jì)、看到有這么多嵌入式MCU和數(shù)字信號(hào)處理器(DSP)解決方案可選時(shí)的情景吧。除非他們能靜下心來仔細(xì)揣摩,否則對(duì)最佳器件的選擇將是相當(dāng)棘手甚至可能是難以實(shí)現(xiàn)的。

如今的MCU和DSP確實(shí)集成了最新的科技結(jié)晶,但有時(shí)要付出易用和靈活的代價(jià)。如今在MCU中很容易看到Flash程序存儲(chǔ)器,但在DSP中還不多見。MIPS標(biāo)稱值不再是用單字節(jié)而是用雙字節(jié)來衡量。Microchip公司的16位DSC結(jié)合這兩個(gè)領(lǐng)域的最佳性能:簡(jiǎn)單靈活的30MIPS性能、業(yè)界領(lǐng)先的可靠Flash程序存儲(chǔ)器、豐富且靈活易用的外圍設(shè)備以及先進(jìn)易用的工具套件。Microchip在設(shè)計(jì)16位dsPIC DSC時(shí)充分考慮了當(dāng)前嵌入式設(shè)計(jì)師的需要。

架構(gòu)分析 

Microchip公司通過16位dsPIC DSC的發(fā)布首次提出了DSC的概念。DSC采用16位(數(shù)據(jù))改良過的哈佛架構(gòu),它充分融合了高性能16位MCU的控制優(yōu)勢(shì)和完全實(shí)現(xiàn)的DSP的高運(yùn)算速度,從而形成了適合嵌入式系統(tǒng)設(shè)計(jì)的緊密結(jié)合的單芯片單指令流解決方案。

dsPIC DSC架構(gòu)支持84條指令和10種尋址模式。共有16個(gè)可用作數(shù)據(jù)或地址寄存器的16位CPU內(nèi)核工作寄存器(術(shù)語(yǔ)稱為W寄存器陣列),其中包括了用于軟件堆棧訪問的專用寄存器。所有的W寄存器都可以通過數(shù)據(jù)空間中的存儲(chǔ)器映射鏡像進(jìn)行直接或間接訪問。該特性允許任何指令將任何寄存器(或寄存器的一部分)用作源或目的操作數(shù)。

指令集由用于嵌入式應(yīng)用的各種靈活的MCU指令和從單指令流執(zhí)行的DSP操作專用指令集組成,兩種指令共享很多CPU資源。架構(gòu)的頂層框圖如圖1所示。 

三個(gè)地址產(chǎn)生單元(AGU)可以采用一套靈活的尋址模式在一個(gè)指令執(zhí)行周期內(nèi)完成一個(gè)或兩個(gè)(對(duì)于DSP MAC類指令)數(shù)據(jù)存儲(chǔ)器讀和一個(gè)數(shù)據(jù)存儲(chǔ)器寫操作。接著MCU指令可以在一個(gè)周期內(nèi)對(duì)以下操作求值,

A B . C

其中: A=源操作數(shù)1(W寄存器直接尋址);


B=源操作數(shù)2(W寄存器直接或間接讀);


C=結(jié)果目標(biāo)(W寄存器直接或間接寫);


是指令操作符

指令獲取機(jī)制采用簡(jiǎn)單的預(yù)取設(shè)計(jì),可以減輕大多數(shù)流程變化、必然的操作復(fù)雜性以及伴隨指令流水線的中斷延遲問題。大多數(shù)指令在一個(gè)周期內(nèi)執(zhí)行完成,那些與流程控制有關(guān)的指令最多可能需要三個(gè)周期(一般是一個(gè)或兩個(gè)周期)。除法操作需要18個(gè)周期,但可以在任何時(shí)候被完全中斷。對(duì)MCU來說中斷是最常見的請(qǐng)求,但會(huì)顯著降低深度流水線式DSP的標(biāo)稱性能。

dsPIC DSC內(nèi)核通過62個(gè)獨(dú)立向量提供用于陷阱和中斷的向量化異常設(shè)計(jì)。異常由高達(dá)8個(gè)陷阱和54個(gè)中斷組成。每個(gè)中斷的優(yōu)先級(jí)非常靈活,可以按預(yù)先確定的"自然順序"分配,也可以按用戶可分配的從0(最低)到7(最高)之間的任意優(yōu)先級(jí)分配。dsPIC DSC架構(gòu)提供明確快速的中斷和陷阱響應(yīng):進(jìn)入延時(shí)為6個(gè)周期(200ns@30MIPS),退出延時(shí)為3個(gè)周期(100ns@30MIPS)。DSC本身的硬件特性、靈活直觀的軟件指令為異常情況的存儲(chǔ)和恢復(fù)提供了有力的支持。 

dsPIC DSC內(nèi)核支持MCU和DSP功能需要的各種位操作。雖然位操作在MCU中很常見,但它們?cè)贒SP中的應(yīng)用卻沒有那么廣泛。dsPIC DSC增加了更強(qiáng)大的位操作功能,如一些位測(cè)試、位設(shè)置和位移動(dòng)指令以及能識(shí)別出數(shù)據(jù)字中第一個(gè)有效位的位尋找操作。位尋找指令為縮放DSP操作數(shù)和規(guī)格化累加器值等功能提供了重要的支持。

dsPIC DSC提供業(yè)界領(lǐng)先的可靠的Flash程序存儲(chǔ)器和數(shù)據(jù)EEPROM,它們的E/W周期典型值分別是(10K分鐘/100K)和(100K分鐘/1E+06)。DSC架構(gòu)支持4Mx24位寬的線性程序空間(PS)和64KB線性數(shù)據(jù)空間(DS),第一套dsPIC DSC產(chǎn)品最多可支持144KB的PS和8KB的DS。dsPIC DSC的亮點(diǎn)是程序空間可視化(PSV)。PSV可以將32KB的PS映射進(jìn)DS的上部32KB位,允許任何指令像訪問DS一樣訪問PS。像LCD圖形和菜單、傳感器校正數(shù)據(jù)、大型固定數(shù)據(jù)陣列、FFT旋轉(zhuǎn)因子和數(shù)字濾波器系數(shù)等許多數(shù)據(jù)常量都可以充分利用這一性能優(yōu)勢(shì)。 

為了實(shí)現(xiàn)更高層次的系統(tǒng)器件集成,dsPIC DSC具有豐富的外圍電路,有幾種外圍電路支持FIFO緩沖,有助于減少中斷頻率開銷。dsPIC DSC支持各種用于故障防止和穩(wěn)定系統(tǒng)操作的系統(tǒng)管理功能,包括可編程上電定時(shí)器、看門狗與晶振啟動(dòng)定時(shí)器、可編程欠壓復(fù)位與低壓檢測(cè)電路。所有的dsPIC DSC器件都支持內(nèi)部的7.37MHz晶振,大多數(shù)dsPIC DSC還同時(shí)支持7.37MHz內(nèi)部晶振和滿足30MIPS吞吐量的片上PLL。一個(gè)明顯的好處是可以取消外部晶振,因此可以降低整個(gè)系統(tǒng)的成本。dsPIC DSC支持故障防止用時(shí)鐘監(jiān)視電路。該電路對(duì)器件時(shí)鐘進(jìn)行實(shí)時(shí)監(jiān)視,如果有故障發(fā)生,它會(huì)自動(dòng)切換到內(nèi)部晶振以保證連續(xù)穩(wěn)定和無故障的安全的系統(tǒng)工作過程。

為了實(shí)現(xiàn)最優(yōu)化的電源管理,dsPIC DSC支持睡眠和空閑操作模式。睡眠模式時(shí)CPU內(nèi)核和外設(shè)都停止工作,器件電流只有數(shù)毫安。在睡眠模式下,大多數(shù)外設(shè)都支持器件喚醒功能。而空閑模式下用戶可以有選擇地激活外設(shè),此時(shí)CPU內(nèi)核也是停止工作的,因此可以降低器件的工作電流。

“動(dòng)態(tài)PLL模式切換”和“運(yùn)行時(shí)輸入時(shí)鐘分頻”模式用于額外的電源管理控制。

簡(jiǎn)單明確的DSP性能 

dsPIC DSC的DSP和MCU部分緊密地配合。這二個(gè)部分共享指令裝載和解碼邏輯,因此在一個(gè)代碼序列中MCU和DSP指令可以任意混合。DSC內(nèi)核具有完整的DSP功能(不僅是附加的乘法-累加單元),可以支持并行的雙操作數(shù)存取存儲(chǔ)器尋址、整套MAC類型的操作、飽和邏輯和零開銷循環(huán)控制,例如完全可中斷的DO和REPEAT指令。

dsPIC DSC的DSP引擎直接從W寄存器陣列輸入數(shù)據(jù),但包含它自己專門的40位結(jié)果寄存器(累加器A和B)。DSP引擎受操作MCU ALU的相同的單指令解碼器控制。所有操作數(shù)有效的地址都是利用X和Y AGU從W陣列中的寄存器產(chǎn)生。因此MCU指令流程不可能實(shí)施并行操作,雖然MCU ALU和DSP引擎資源可以被同一條指令并行使用。所有DSP指令都是單字指令,并且在一個(gè)周期內(nèi)執(zhí)行完。ED和EDAC(歐幾里得距離運(yùn)算)這二條指令在執(zhí)行周期內(nèi)同時(shí)使用16位MCU ALU計(jì)算(預(yù)取的)操作數(shù)差異。EDAC指令在模式識(shí)別應(yīng)用中非常有用,例如生物統(tǒng)計(jì)識(shí)別或一些基于維特比譯碼器的應(yīng)用。

DSP引擎的簡(jiǎn)化框圖如圖2所示,包含了一個(gè)高速16×16位乘法器、一個(gè)40位ALU、兩個(gè)40位(可選)飽和累加器和一個(gè)40位寬、16位雙向筒形移位器。

DSP引擎不僅可以從W寄存器陣列直接取得數(shù)據(jù),也包含了存儲(chǔ)和加載端口,可以通過X數(shù)據(jù)總線使用PSV從DS或PS存取數(shù)據(jù)。16位Q15(1.15)小數(shù)累加器在加載入所選累加器之前可以通過筒形移位器進(jìn)行符號(hào)位擴(kuò)展和任意縮放。累加器在將值以1.15格式小數(shù)存儲(chǔ)之前先要存儲(chǔ)指令、適當(dāng)縮放,并進(jìn)行四舍五入或截短。四舍五入邏輯模塊也包含額外的飽和邏輯,可正確處理與四舍五入相關(guān)的1.15溢出狀態(tài)(不修改累加器源數(shù)據(jù))。筒形移位器可以將40位或16位字?jǐn)?shù)值向右或向左最多移16位,主要用于累加器、任意位置數(shù)據(jù)存儲(chǔ)器或任意W寄存器的多位移位。

DSP指令集 

DSP MAC類指令能夠以33ns@30MIPS的速度執(zhí)行下面的所有指令,或有選擇的執(zhí)行某些指令(取決于指令本身)。MAC指令如圖3所示。

在這個(gè)指令例子中,我們可以識(shí)別出乘法操作以及必須和可選的操作數(shù)。必須的操作數(shù)由MAC W4*W5和A基本語(yǔ)法組成,可選操作數(shù)遵循右邊所示??傊?,這個(gè)MAC指令內(nèi)一共可以進(jìn)行7種操作,執(zhí)行時(shí)間為一個(gè)周期。表1對(duì)DSP指令集作了總結(jié)。這些指令加上多個(gè)靈活的尋址模式即可產(chǎn)生確定的DSP性能。

表2提供了16位DSC的一些DSP性能基準(zhǔn)。dsPIC DSC架構(gòu)性能明顯可與DSP媲美,而且它還能提供感覺上類似MCU的指令集、編程器模型和存儲(chǔ)器架構(gòu)。

軟件和硬件開發(fā)工具 

新架構(gòu)的采用往往極具挑戰(zhàn)性。然而,采用16位dsPIC DSC卻要容易得多。這種新架構(gòu)的確定是架構(gòu)師、編譯、設(shè)計(jì)、測(cè)試和應(yīng)用小組合作開發(fā)的過程。此外,從覆蓋了大量算法/應(yīng)用的第三方算法開發(fā)者處獲得的反饋和全球各地的用戶反饋的信息被結(jié)合起來。

Microchip公司提供了一整套便利和高性價(jià)比的軟硬件工具,這些工具均集成了業(yè)界領(lǐng)先的MPLAB(r) C30 C編譯器。這是一個(gè)全功能、兼容ANSI的最優(yōu)化的編譯器,可提供體積小巧并且高效率的代碼。圖4是與以控制作為核心的代碼相關(guān)的MPLAB C30 C編譯器性能的快照(snapshot),與多個(gè)已經(jīng)證實(shí)的16位MCU和DSP芯片制造商的產(chǎn)品作了比較評(píng)估。MPLAB C30 C編譯器是一個(gè)匯編和鏈接工具套件,具有完整的ANSI C標(biāo)準(zhǔn)庫(kù)。這個(gè)完整的庫(kù)包括字符操作、動(dòng)態(tài)存儲(chǔ)器分配、數(shù)據(jù)轉(zhuǎn)換、時(shí)間記錄、DSP、數(shù)學(xué)和外設(shè)庫(kù)。 

需要用匯編語(yǔ)言編寫一些時(shí)序嚴(yán)格的子程序嗎?不用擔(dān)心,dsPIC DSC指令集非常直觀和直接了當(dāng),與來自DSP固有架構(gòu)的一些奇怪指令有很大的不同。除了軟件語(yǔ)言工具外,Microchip公司還為dsPIC DSC提供:高性價(jià)比的MPLAB ICD2調(diào)試器和編程器、MPLAB ICE 4000實(shí)時(shí)在電路仿真開發(fā)環(huán)境和MPLAB PM3通用器件編程器。Microchip公司還為dsPIC DSC的代碼開發(fā)、模擬和仿真環(huán)境提供MPLAB可視化器件初始化工具(VDI)和MPLAB集成開發(fā)環(huán)境(IDE)。

404
返回首頁(yè) |  返回上一頁(yè)
正镶白旗| 靖宇县| 青龙| 邹城市| 嘉义市| 盘山县| 若尔盖县| 吉林省| 缙云县| 鸡泽县| 修文县| 盘锦市| 福建省| 探索| 修文县| 玛纳斯县| 茶陵县| 米林县| 闻喜县| 日照市| 舒城县| 青龙| 卓尼县| 冕宁县| 那曲县| 松溪县| 咸宁市| 陆川县| 蒲江县| 蓬溪县| 铅山县| 祁东县| 云林县| 荔波县| 阳西县| 南涧| 祁阳县| 乌苏市| 乌兰察布市| 临澧县| 竹北市|