MIPS架構(gòu)下PIC32單片機(jī)的UART通信
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 PIC32系列單片機(jī)簡(jiǎn)介
PIC32系列單片機(jī)是Microchip Technology Inc.(美國(guó)微芯科技公司)推出的高性能32位單片機(jī),它是以MIPS32架構(gòu)為基礎(chǔ)設(shè)計(jì)的。目前推出的PIC32MX3XX分支為通用型,PIC32MX4XX分支帶有USB功能,PIC32MX5XX分支帶有USB和CAN功能,PIC32MX6XX分支帶有USB和Ethernet功能,PICMX7XX分支則帶有USB、CAN和Ethernet功能。PIC32系列單片機(jī)采用哈佛結(jié)構(gòu),帶有5級(jí)流水線,工作頻率最高80 MHz;具有高效指令架構(gòu)、高性能硬件乘法器/累加器及多至8組32個(gè)內(nèi)核寄存器,可實(shí)現(xiàn)1.56一款DMIPS/MHz的運(yùn)行速度。此外,PIC32系統(tǒng)具有指令和ROM數(shù)據(jù)預(yù)取緩沖器的64字節(jié)高速緩存,128位寬的閃存,可縮短單個(gè)指令的取指時(shí)間,支持MIPSl6e 16位指令集構(gòu)架,可最多減少40%的代碼。
PIC32系列單片機(jī)包括了閃存范圍從32 KB到512 KB的可擴(kuò)展器件,片上RAM從8 KB到128 KB,引腳與64/100引腳的16位單片機(jī)PIC24FJ-XXXGA系列兼容,新推出的PIC32MX5XX/6XX/7XX提供XBGA的封裝。另外,PIC32系列單片機(jī)帶有豐富的外設(shè)資源——5個(gè)定時(shí)器、16路通道的10位A/D轉(zhuǎn)換器及通信接口,即SPI、I2C、UART和PMP,同時(shí)PIC32還有集成的CRC計(jì)算功能和基于模式的傳輸終端選擇功能的DMA控制器。此外,PIC32MX5/6/7系列包括10/100 Mbps以太網(wǎng)、CAN2.0b控制器、USB主設(shè)備/從設(shè)備和OTG。
PIC32系列單片機(jī)不僅比PIC 8位、16位單片機(jī)速度更快、性能更強(qiáng),同時(shí)相對(duì)于ARM系列的32位單片機(jī)也具有一定的優(yōu)勢(shì)。雖然Microc-hip能選擇的MISP 4K最高時(shí)鐘頻率只有80 MHz,但是由于MIPS內(nèi)核簡(jiǎn)潔,多家處理器評(píng)估機(jī)構(gòu)確認(rèn)PIC32的處理能力總體性能更高,而且PI-C32的指令多為單周期指令,比多周期指令執(zhí)行速度更迅捷。PIC32系列單片機(jī)多達(dá)128 KB的RAM,使其在數(shù)據(jù)處理上更具優(yōu)。Microchip微公司還有一個(gè)非常獨(dú)特的優(yōu)勢(shì),就是該公司所有8、16和32位的器件都是充分兼容的,所有的這些全系列的產(chǎn)品使用的都是同樣的開(kāi)發(fā)工具,單一的開(kāi)發(fā)環(huán)境,軟件庫(kù)也是全面兼容的,這對(duì)于客戶更為方便。此外,Ashling、Green Hills及Hi-Tech提供了完整工具鏈支持,CM-X、Exp-ress Logic等提供RTOS支持,EasyGUI、Segger、RamTeX及Micrium等提供繪圖工具支持。值得一提的是,微芯公司為開(kāi)發(fā)人員準(zhǔn)備了入門工具包,示例源文件,同時(shí)免費(fèi)提供了如USB、TCP/IP協(xié)議棧,以及Graphics和FATl6文件系統(tǒng)開(kāi)發(fā)的中間件模塊。PIC32的MPLAB C32編譯器包括了16位Microchip MCU兼容的軟件外設(shè)函數(shù)庫(kù),以更加方便快捷地使用外沒(méi)模塊。PIC32系列單片機(jī)的結(jié)構(gòu)框圖如圖1所示。
Microchip集成開(kāi)發(fā)工具支持所有PIC32型號(hào)單片機(jī),包括MPLAB集成開(kāi)發(fā)環(huán)境(IDE)、MPLAB C32 C編譯器、MPLAB REAL ICE仿真系統(tǒng)、MPLAB ICD2在線調(diào)試器及Explore 16開(kāi)發(fā)板等。PIC32系列單片機(jī)要求MAPLAB IDE版本要在8.0以上,現(xiàn)最新版本為8.43,MAPLAB IDE軟件可以從微芯公司官方網(wǎng)站www.microchip.com免費(fèi)下載。MPLAB ICD2在線調(diào)試器是一款低價(jià)位的PIC開(kāi)發(fā)工具,可設(shè)置一個(gè)1次斷點(diǎn),調(diào)試能力較弱。MPLAB ICD3保留了與Microchip RJ-11接口的向后兼容,可輕松連接目標(biāo)板,迅速進(jìn)行器件編程;可多達(dá)1000個(gè)軟件斷點(diǎn),2~5.5 V工作電壓;可支持最低2.0 V的低電壓調(diào)試,具有高速的編程能力,比MPLAB ICD2的編程速度快5~15倍。MPLAB REALICE仿真系統(tǒng)能夠支持標(biāo)準(zhǔn)和先進(jìn)的調(diào)試功能,如復(fù)雜斷點(diǎn)、應(yīng)用代碼的追蹤和數(shù)據(jù)采集、代碼執(zhí)行計(jì)時(shí)及實(shí)時(shí)變量監(jiān)控。新推出的MPLAB PM3通用器件編程器支持全部的PIC器件產(chǎn)品及最新dsPIC30系列的編程。但是MPLAB REAL ICE,ICD3和PM3價(jià)格都比較昂貴,ICD2盡管功能有限,但價(jià)格便宜,可實(shí)現(xiàn)PIC32系列的編程仿真。關(guān)于具體PIC32各型號(hào)單片機(jī)所支持的編程器、仿真器、編譯器以及各版本的IDE所支持的PIC系列型號(hào)可以在MPLAB IDE(8.0版本以上)的Configure『Select device…進(jìn)行查看。[!--empirenews.page--]
2 P1032的UART串口編程
下面以UART串口模塊為例來(lái)敘述PIC32的開(kāi)發(fā)過(guò)程,電路原理如圖2所示??紤]到MAPLAB ICD3和MPLAB REAL ICE仿真器的價(jià)格較貴,采用了USB口的MPLAB ICD2(MPLAB IDE支持USB口的MPLABICD2,不支持串口的ICD2)。本實(shí)驗(yàn)采用MAPLAB IDE8.33集成開(kāi)發(fā)環(huán)境,選擇PIC32MX32-0F128H。
在PIC32編程中,需要對(duì)配置字進(jìn)行配置(主要是對(duì)系統(tǒng)時(shí)鐘、外設(shè)時(shí)鐘等進(jìn)行配置)。這一工作可在程序中定義,也可以通過(guò)MPLAB IDE中的菜單Configure |Configuration Bits…對(duì)配置字進(jìn)行設(shè)置;同時(shí)可通過(guò)Project | Select Language Toolsuite選擇編譯器,通過(guò)Configure | Select Device選擇芯片型號(hào)。由于MPLAB IDE8.33集成開(kāi)發(fā)環(huán)境程序只是對(duì)以前版本的升級(jí)改進(jìn),因此使用過(guò)MAPIAB IDE開(kāi)發(fā)環(huán)境的開(kāi)發(fā)人員可方便、快速地掌握其使用方法。本實(shí)驗(yàn)采用MPLAB C32編譯器,程序1為直接使用MPLAB C32編譯器中的軟件外設(shè)函數(shù)庫(kù)進(jìn)行UART的操作;程序2則是采用讀寫(xiě)寄存器對(duì)UART進(jìn)行操作。程序?qū)崿F(xiàn)上位機(jī)發(fā)送數(shù)據(jù),PIC32單片機(jī)收到數(shù)據(jù)后返回上位機(jī)。