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

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

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

開發(fā)工具

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

技術(shù)支持

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

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

dsPIC30F6010單片機(jī)的原理及應(yīng)用

更新時(shí)間: 2019-03-23
閱讀量:1669

十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享dsPIC30F6010單片機(jī)的原理及應(yīng)用。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

摘要:Microchip公司推出的dsPIC30F系列單片機(jī)是一種集16位單片機(jī)控制特點(diǎn)和DSP功能于一身的新型芯片。文中介紹了dsPIC30F6010的基本特點(diǎn)、硬件結(jié)構(gòu)和指令特點(diǎn),分析了dsPIC30F6010在編程開發(fā)應(yīng)用上的技術(shù)特點(diǎn),并給出了一段具體的編程示例。

    關(guān)鍵詞:DSP;dsPIC30F6010;PIC單片機(jī)

 

1 前言

 

隨著電子技術(shù)的發(fā)展以及集成電路規(guī)模的不斷擴(kuò)大,工業(yè)等各應(yīng)用領(lǐng)域?qū)τ诤诵男酒囊笤絹碓娇量?。因而,?jì)算機(jī)芯片也朝著高速化、專業(yè)化、模塊化、功能化、低功耗、低電壓工作等方向不斷地發(fā)展、更新。

Microchip公司的PIC系列單片機(jī)以其內(nèi)置Flash以及精簡指令集等技術(shù)特點(diǎn)成為中低檔8位單片機(jī)的主流產(chǎn)品,但是在一些復(fù)雜系統(tǒng)應(yīng)用中,它仍存在一些缺陷和不足。為此,Microchip公司新推出了dsPIC30F系列16位單片機(jī)。它是一種具有單片機(jī)和DSP綜合功能的16位CPU,不但保留了單片機(jī)的基本性能、豐富了外圍模塊,還兼具DSP的高速運(yùn)算能力,是嵌入式系統(tǒng)設(shè)計(jì)的最佳解決方案之一。由于集多種功能于單一芯片,從而大大節(jié)省了電路板空間。目前開發(fā)的dsPIC30F產(chǎn)品主要分為通用系列、電機(jī)控制和電源變換系列、傳感器系列等。其中dsPIC30F6010以其豐富的外圍模塊、I/O接口、可支持多種電機(jī)控制等特點(diǎn),廣泛應(yīng)用于電機(jī)控制、開關(guān)電源控制等領(lǐng)域。該單片機(jī)在許多應(yīng)用中優(yōu)于32位控制器。dsPIC30F6010的主要特點(diǎn)有:

 

●Flash程序空間容量大,外圍部件豐富;

 

●強(qiáng)大的中斷能力,可靈活處理中斷;

 

●編程開發(fā)能力強(qiáng)大,可支持C編譯,并可方便地與PIC系列單片機(jī)結(jié)合使用;

 

●強(qiáng)大的DSP演算能力,與其它DSP的指令集相比,dsPIC30F6010只有84個(gè)基本指令且多為單周期指令,從而大大簡化了編程效率;

    ●內(nèi)嵌SPI、UART、CAN等多種通訊模塊,且具有適合于電機(jī)控制的8通道PWM以及正交編碼接口器;

 

●內(nèi)含10位高速A/D和16位深度結(jié)果緩沖區(qū),有多種數(shù)據(jù)方式;可在睡眠方式下進(jìn)行轉(zhuǎn)換;同時(shí)具有多種時(shí)鐘模式;

 

●寬范圍工作電壓(2.5V~5.5V),大大優(yōu)于其它單片機(jī)的5V工作電壓和DSP的3.3V工作電壓。

 

2 dsPIC30F6010的結(jié)構(gòu)特點(diǎn)

 

2.1 CPU結(jié)構(gòu)

dsPIC30F6010采用改進(jìn)型哈佛結(jié)構(gòu),CPU核具有24位寬指令字。dsPIC30F6010的硬件結(jié)構(gòu)框圖如圖1所示。它的PC指針為23位寬(最低位恒為“0”),可尋址4M×24位程序存儲(chǔ)器空間。除了跳轉(zhuǎn)、表格等指令外,所有的指令均在一個(gè)周期內(nèi)完成。指令采用流水線操作方式,分為MCU和MAC等級(jí)指令,適合C編譯。dsPIC30F6010擁有16個(gè)16位工作寄存器(W0~W15),可作為數(shù)據(jù)、地址或地址偏移量寄存器,其中W15還可作為CALL指令或中斷的軟件堆棧指針。dsPIC30F6010共有54個(gè)中斷源和8個(gè)不可屏蔽陷阱,每個(gè)中斷源有7個(gè)中斷優(yōu)先級(jí),可通過狀態(tài)寄存器進(jìn)行軟件編寫,故可靈活控制中斷,中斷控制器可支持5個(gè)外部中斷(INT0~INT4)請(qǐng)求。

 

dsPIC30F6010與PIC單片機(jī)最大的區(qū)別在于其內(nèi)嵌一個(gè)DSP高速引擎,從而提高了CPU核的運(yùn)算能力。DSP引擎包括一個(gè)17×17乘法器、一個(gè)40位AGU、兩個(gè)40位飽和累加器、一個(gè)40位雙向桶形移位器。DSP引擎的引入可以方便單片機(jī)快速、高效地進(jìn)行一些數(shù)據(jù)處理,以提高整個(gè)系統(tǒng)的實(shí)時(shí)性。

2.2 數(shù)據(jù)RAM結(jié)構(gòu)

 

dsPIC30F6010的數(shù)據(jù)存儲(chǔ)器為16位寬,共32K字。圖2是整個(gè)數(shù)據(jù)存儲(chǔ)器映射圖,其中特殊功能寄存器共2kB,地址為0x0000~0x07FF,主要包括CPU和外圍設(shè)備的控制或狀態(tài)寄存器。RAM地址從0x8000開始,分為X?cái)?shù)據(jù)存儲(chǔ)器和Y數(shù)據(jù)存儲(chǔ)器,可分開作為2個(gè)單獨(dú)的數(shù)據(jù)空間(相對(duì)于一些DSP指令而言),也可合并作為線性數(shù)據(jù)空間(相對(duì)于MCU指令而言)。每個(gè)存儲(chǔ)器都有自己的AGU地址發(fā)生單元。雙源DSP操作的MAC等級(jí)指令可對(duì) X和Y數(shù)據(jù)存儲(chǔ)器進(jìn)行操作,從而把數(shù)據(jù)空間分成兩部分以分別存放兩個(gè)操作數(shù)。MCU指令只能通過X存儲(chǔ)器的AGU來尋址整個(gè)寄存器的數(shù)據(jù)空間,以便以W寄存器作為地址指針來進(jìn)行讀/寫操作。數(shù)據(jù)存儲(chǔ)器頂部的32kB數(shù)據(jù)可任意映射到16k字程序空間中。dsPIC30F6010的大部分指令都能夠進(jìn)行數(shù)據(jù)存儲(chǔ)器的讀/寫、工作寄存器(數(shù)據(jù))讀、程序存儲(chǔ)器讀3個(gè)操作。對(duì)于DSP指令,用W8和W9可執(zhí)行X存儲(chǔ)器空間內(nèi)的儲(chǔ)存器讀寫,若指向Y存儲(chǔ)器,則返回“0”,如果指向未執(zhí)行的地址,將產(chǎn)生錯(cuò)誤的地址捕捉。同理,W10和W11作為Y存儲(chǔ)器的地址指針。8kB的近似數(shù)據(jù)空間可以直接通過工作寄存器指令形成的13位絕對(duì)地址來存取。

  2.3 程序存儲(chǔ)器結(jié)構(gòu)

 

圖3所示的程序存儲(chǔ)器映射圖分為兩部分:用戶程序空間和用戶配置空間。用戶程序空間包括復(fù)位矢量、中斷矢量表、程序存儲(chǔ)器和數(shù)據(jù)EEPROM存儲(chǔ)器;配置空間包括一些設(shè)備配置寄存器以及器件的ID位等。PC指針最低位恒為“0”,增量為2。

 

訪問4M×24位程序存儲(chǔ)器的方法有三種,第一種是通過23位PC指針;第二種是通過特殊的表格讀/寫指令(TBLRDL、TBLWTL、TBLRDH和TBLWTH),第三種是通過PSV操作模式(程序空間可見)把16k字程序空間頁面映射到數(shù)據(jù)存儲(chǔ)器地址空間的高32kB。

 

dsPIC30F6010的外圍模塊比PIC豐富許多。首先,通信模式增加了CAN模塊接口,其它通信模塊的數(shù)量也增加了,因而可適應(yīng)大系統(tǒng)的設(shè)計(jì)需求。其次,dsPIC30F6010有5個(gè)16位timer模塊,其中TMR2和TMR3、TMR4和TMR5可以分別組合成32位定時(shí)器,程序員可以選擇多種工作方式,例如16位/32位定時(shí)器、32位同步計(jì)時(shí)器、門控等

模式。此外,dsPIC30F6010還增加了電機(jī)控制PWM模塊以及積分編碼模塊。

3 指令特點(diǎn)

 

dsPIC30F系列單片機(jī)在增加了DSP功能后,其指令也只有84條,因此,和其它DSP相比,可大大簡化編程難度。dsPIC30F6010在指令上的主要特點(diǎn)有:

 

(1)dsPIC30F6010的指令格式有別于PIC單片機(jī),它的格式為: 操作符 源操作數(shù) 目的操作數(shù),此外還增加了許多三操作數(shù)指令;

 

(2)dsPIC30F6010為16位CPU,因而在指令操作上有字操作和字節(jié)操作兩種模式,可實(shí)現(xiàn)8位和16位操作;

 

(3)dsPIC30F6010除了保留有PIC單片機(jī)的大部分指令功能外,還增加了許多傳送、數(shù)學(xué)運(yùn)算、邏輯運(yùn)算指令;相比PIC單片機(jī),它的最大優(yōu)點(diǎn)是增加了乘除法指令,因而可大大減少編程難度并優(yōu)化程序。為了適應(yīng)字操作,相應(yīng)增加了減2、加2等指令;

 

(4)增加了相應(yīng)的DSP功能指令,如DSP指令、程序流指令等;

 

(5)由于有多種堆棧形式,因而也就增加了不同形式的堆棧指令。

4 編程示例

 

dsPIC30F6010可支持C編譯、匯編以及混合編譯等多種模式,用戶可根據(jù)自身能力選擇不同的編程方式。

 

4.1 C編譯

 

dsPIC30F6010的編程模式基本上和C語言及其它單片機(jī)或DSP的C編譯相似,下面以A/D采樣為例給出其編程應(yīng)用,設(shè)計(jì)時(shí)需要注意的是:

 

(1)寄存器必須大寫;

 

(2) 直接對(duì)某些位進(jìn)行操作時(shí),可在該寄存器后加bits,如ADCON1bits.ADON=1;

 

(3) 牢記先定義后使用的原則,調(diào)用的數(shù)學(xué)函數(shù)必須由編譯軟件庫函數(shù)所支持。

int main (void)   ;主程序

 

{ portinitial();

 

adinitial();

 

ADCON1bits.ADON=1;

 

ADCON1bits.SAMP=1;

 

delay();

 

ADCON1bits.SAMP=0;

 

… … … …

 

}

 

void portinitial()  ;初始化I/O口

 

{

 

TRISE=0x0000;

 

PORTE=0x0000;

 

}

void adinitial()  ;AD初始化子程序

 

{ ADCON1=0x2208;

 

ADCON2=0x0000;

 

ADCON3=0x0000;

 

ADCHS=0x0000;

ADCSSL=0x0000;

 

ADPCFG=0x0000;

 

IFS0bits.ADIF=0;

 

IEC0bits.ADIE=1;

 

}

 

void delay() ;延時(shí)子程序

 

{

for (j=1000;--j;) continue

 

}

 

4.2 混編技術(shù)

 

在C語言中調(diào)用匯編語言時(shí),只要在C匯編中定義一個(gè)extern型變量或函數(shù)并在其前面加一前綴( )即可。如在C程序中:

… … … …

 

extern void modulo(unsigned int *, unsigned int *, unsigned int);聲明函數(shù)類型

 

… … … …

 

int main (void)

 

{… … … …

 

modulo( array1, array2, PRODLEN-1);在C程序中調(diào)用

… … … …

 

}

 

在匯編中調(diào)用:

 

.global_modulo ;定義全局變量

 

_modulo:

 

… … … …

 

.end

 

5 結(jié)束語

 

在某些應(yīng)用場合,綜合了16位單片機(jī)和DSP功能的dsPIC30F器件要大大優(yōu)于32位單片機(jī),而且可降低成本,同時(shí),C代碼效率也降低了對(duì)存儲(chǔ)器的需求,從而緩解了16位單片機(jī)和低端數(shù)字信號(hào)處理器DSP存在的性能差。由于它本身的DSP功能大大提高了運(yùn)算和響應(yīng)能力,因而提高了系統(tǒng)的實(shí)時(shí)性,可完全適應(yīng)現(xiàn)代工業(yè)控制技術(shù)發(fā)展的要求。豐富的外圍模塊以及I/O設(shè)備,必然使得dsPIC30F在未來的DSP市場中占有重要地位。目前,該產(chǎn)品已經(jīng)開始在電機(jī)控制、網(wǎng)絡(luò)連接、語音和音響、電源變換和監(jiān)視、傳感器控制、汽車控制等領(lǐng)域中開發(fā)應(yīng)用。可以預(yù)見,隨著dsPIC30F系列產(chǎn)品的不斷開發(fā)和完善,以及開發(fā)工具、開發(fā)軟件的不斷豐富,dsPIC30F必將得到廣大用戶的青睞。

茶陵县| 永安市| 历史| 通城县| 进贤县| 铜川市| 台南市| 天台县| 施甸县| 新蔡县| 分宜县| 鹤壁市| 黄大仙区| 弥勒县| 许昌市| 大丰市| 天水市| 张家港市| 日喀则市| 航空| 宜黄县| 彰武县| 维西| 黄冈市| 新竹县| 甘南县| 子洲县| 隆德县| 巴楚县| 仁布县| 伊川县| 淮阳县| 泌阳县| 甘南县| 兴隆县| 深州市| 磴口县| 隆尧县| 喀喇| 准格尔旗| 巩义市|