MIPS架构下PIC32单片机的UART通信
扫描二维码
随时随地手机看文章
1 PIC32系列单片机简介
PIC32系列单片机是Microchip Technology Inc.(美国微芯科技公司)推出的高性能32位单片机,它是以MIPS32架构为基础设计的。目前推出的PIC32MX3XX分支为通用型,PIC32MX4XX分支带有USB功能,PIC32MX5XX分支带有USB和CAN功能,PIC32MX6XX分支带有USB和Ethernet功能,PICMX7XX分支则带有USB、CAN和Ethernet功能。PIC32系列单片机采用哈佛结构,带有5级流水线,工作频率最高80 MHz;具有高效指令架构、高性能硬件乘法器/累加器及多至8组32个内核寄存器,可实现1.56一款DMIPS/MHz的运行速度。此外,PIC32系统具有指令和ROM数据预取缓冲器的64字节高速缓存,128位宽的闪存,可缩短单个指令的取指时间,支持MIPSl6e 16位指令集构架,可最多减少40%的代码。
PIC32系列单片机包括了闪存范围从32 KB到512 KB的可扩展器件,片上RAM从8 KB到128 KB,引脚与64/100引脚的16位单片机PIC24FJ-XXXGA系列兼容,新推出的PIC32MX5XX/6XX/7XX提供XBGA的封装。另外,PIC32系列单片机带有丰富的外设资源——5个定时器、16路通道的10位A/D转换器及通信接口,即SPI、I2C、UART和PMP,同时PIC32还有集成的CRC计算功能和基于模式的传输终端选择功能的DMA控制器。此外,PIC32MX5/6/7系列包括10/100 Mbps以太网、CAN2.0b控制器、USB主设备/从设备和OTG。
PIC32系列单片机不仅比PIC 8位、16位单片机速度更快、性能更强,同时相对于ARM系列的32位单片机也具有一定的优势。虽然Microc-hip能选择的MISP 4K最高时钟频率只有80 MHz,但是由于MIPS内核简洁,多家处理器评估机构确认PIC32的处理能力总体性能更高,而且PI-C32的指令多为单周期指令,比多周期指令执行速度更迅捷。PIC32系列单片机多达128 KB的RAM,使其在数据处理上更具优。Microchip微公司还有一个非常独特的优势,就是该公司所有8、16和32位的器件都是充分兼容的,所有的这些全系列的产品使用的都是同样的开发工具,单一的开发环境,软件库也是全面兼容的,这对于客户更为方便。此外,Ashling、Green Hills及Hi-Tech提供了完整工具链支持,CM-X、Exp-ress Logic等提供RTOS支持,EasyGUI、Segger、RamTeX及Micrium等提供绘图工具支持。值得一提的是,微芯公司为开发人员准备了入门工具包,示例源文件,同时免费提供了如USB、TCP/IP协议栈,以及Graphics和FATl6文件系统开发的中间件模块。PIC32的MPLAB C32编译器包括了16位Microchip MCU兼容的软件外设函数库,以更加方便快捷地使用外没模块。PIC32系列单片机的结构框图如图1所示。
Microchip集成开发工具支持所有PIC32型号单片机,包括MPLAB集成开发环境(IDE)、MPLAB C32 C编译器、MPLAB REAL ICE仿真系统、MPLAB ICD2在线调试器及Explore 16开发板等。PIC32系列单片机要求MAPLAB IDE版本要在8.0以上,现最新版本为8.43,MAPLAB IDE软件可以从微芯公司官方网站www.microchip.com免费下载。MPLAB ICD2在线调试器是一款低价位的PIC开发工具,可设置一个1次断点,调试能力较弱。MPLAB ICD3保留了与Microchip RJ-11接口的向后兼容,可轻松连接目标板,迅速进行器件编程;可多达1000个软件断点,2~5.5 V工作电压;可支持最低2.0 V的低电压调试,具有高速的编程能力,比MPLAB ICD2的编程速度快5~15倍。MPLAB REALICE仿真系统能够支持标准和先进的调试功能,如复杂断点、应用代码的追踪和数据采集、代码执行计时及实时变量监控。新推出的MPLAB PM3通用器件编程器支持全部的PIC器件产品及最新dsPIC30系列的编程。但是MPLAB REAL ICE,ICD3和PM3价格都比较昂贵,ICD2尽管功能有限,但价格便宜,可实现PIC32系列的编程仿真。关于具体PIC32各型号单片机所支持的编程器、仿真器、编译器以及各版本的IDE所支持的PIC系列型号可以在MPLAB IDE(8.0版本以上)的Configure『Select device…进行查看。
2 P1032的UART串口编程
下面以UART串口模块为例来叙述PIC32的开发过程,电路原理如图2所示。考虑到MAPLAB ICD3和MPLAB REAL ICE仿真器的价格较贵,采用了USB口的MPLAB ICD2(MPLAB IDE支持USB口的MPLABICD2,不支持串口的ICD2)。本实验采用MAPLAB IDE8.33集成开发环境,选择PIC32MX32-0F128H。
在PIC32编程中,需要对配置字进行配置(主要是对系统时钟、外设时钟等进行配置)。这一工作可在程序中定义,也可以通过MPLAB IDE中的菜单Configure |Configuration Bits…对配置字进行设置;同时可通过Project | Select Language Toolsuite选择编译器,通过Configure | Select Device选择芯片型号。由于MPLAB IDE8.33集成开发环境程序只是对以前版本的升级改进,因此使用过MAPIAB IDE开发环境的开发人员可方便、快速地掌握其使用方法。本实验采用MPLAB C32编译器,程序1为直接使用MPLAB C32编译器中的软件外设函数库进行UART的操作;程序2则是采用读写寄存器对UART进行操作。程序实现上位机发送数据,PIC32单片机收到数据后返回上位机。