这个微芯片PICmicro公司微控制器系列(称为照片)在爱好者和商业设计师中都非常受欢迎。它太棒了我/O(运行)支持、低成本和多功能性相结合,使其成为低端产品的一个有吸引力的选择嵌入的应用程序。
一种低端微控制器
在嵌入式系统在世界范围内,对微处理器和微控制器:从简单的I/O控制器到高速信号处理器和通用CPUMicrochip的PICmicro系列微控制器从低端到中端,通过12C设备满足最简单的需求,并通过高端17C系列扩展到更高的要求。中档是最常用的设备,16C和18C系列;这些可以很好地平衡低成本和高性能.
PIC架构
PIC微控制器最初是作为一块专门的工业控制逻辑。它是从通用仪表的外围接口控制器,慢慢添加更多类似微处理器的说明书,直到它变成通用机器。它的成功在很大程度上取决于它低成本,两者都适用于发展工具和微控制器本身。
由于低端微控制器的成本要求,大多数PIC几乎没有皇家音乐学院。数据存储器组织为8位 寄存器,数量从25到3840不等;只有17Cxxx系列支持外部寻址SRAM(随机存取存储器).使用如此少的可写性存储导致对编程风格进行必要的重新平衡,大量使用查找表和展开的循环只要可能。虽然缺少RAM,EPROM公司不是,范围从768字节到128K字节。记忆被组织为哈佛建筑:的数据内存为8位宽指令内存宽度为12至16位,具体取决于设备。
从现代CPU 建筑学透视图,PIC指令集设计有一些不寻常的怪癖。由于指令宽度受到限制,双操作数计算使用一个特殊的工作寄存器,表示为w个这种设计在微处理器早期很常见,在那里工作寄存器通常被称为蓄电池。它允许非常小的指令宽度,但由于几乎连续的内存访问,执行速度较慢。
累加器设计的含义是高度冗长装配语言,因此很差代码密度一些看似简单的操作,例如阵列操作,可以接受比在现代建筑由于低端微控制器主要在汇编程序,这种繁琐冗长的编码风格在程序员的观点。
特征
结合低成本和低尺寸,PIC的I/O功能使其成为有吸引力的提议接口项目。即使是8针12Cxxx设备也有6个I/O引脚,而更常见的中档16C84有13个。许多PIC也有多个模拟输入能力,使用其中之一参考电压比较或逐次逼近方法,具有8位或10位精确度年。
可编程定时器也是一个标准功能,许多PIC都有硬件看门狗定时器允许在程序无法正常运行时重置处理器。一个有用的补充是变黄检测,允许系统设计者选择在低电压条件,而不是继续操作不正确.
许多中高端PIC都有内置USART公司(通用同步/异步接收器/发射器),这大大有助于串行接口.最大值数据传输速率受到处理器时钟速度的限制,但即使是20MHz的外部时钟允许异步通信1250K波特.
对于爱好者和教育用户来说,最大的卖点之一是PIC在双内联包(DIP)格式,易于安装在实验板或条形板许多设计受益于这样一个事实,即DIP芯片可以内置到一个简单的定制设计电路中,该电路具有构建特定系统所需的I/O连接。
大多数其他微控制器仅在表面贴装配置,这意味着预先制造的开发委员会必须用作任何家或大学项目。有些微控制器是以DIP格式提供的,但这些微控制器往往只有小容量,因此价格昂贵得令人望而却步。
PIC有三种内存配置:一次性可编程(OTP公司),EEPROM公司、和闪光。可重新编程设备用于研究与开发和更便宜的OTP产品可以批量生产。PIC的低成本OTP生产能力是它今天如此受欢迎的原因之一,这使得基于微控制器的产品可以以低廉的价格批量生产。
开发环境
由于PIC是一种广泛使用的体系结构,因此不缺少软件和相关开发硬件面向开发人员。最流行的软件包括Microchip自己的模板 集成开发环境和一个松散的集合全球导航卫星系统实用程序。
MPLAB公司是一个自由的集成在Windows中的开发工具集合多文件接口应用程序。它包括一个简单的文本编辑器这有点像流行的PFE32型,a宏汇编程序、构建系统、基本模拟器,以及一些微芯片的驱动程序EEPROM公司/闪光程序员。没有任何组件擅长,但当合并时超过充足的用于开发全面的软件项目。
微芯片和多个第三方全部报价C编译器针对各种PIC指令集。几乎所有这些都是商业的和那些自由软件,免费软件,或共享软件往往很穷代码密度与手工组装相比。无论如何,用C编写PIC软件通常没有什么好处,因为开发微控制器的大部分工作是接口使用硬件,而使用高级语言对于更复杂的算法密集型任务,使用C编译器可能是一个值得权衡的选择;在简单的接口项目中,汇编程序更有可能是最佳选择。
几个全球导航卫星系统工具可用于帮助PIC开发;所有这些都是免费软件,并已被移植到大多数UNIX系统-兼容的操作系统和Microsoft Windows。到目前为止,最有用和最受欢迎的是斯科特·达塔洛的通用程序接口模块模拟器工具。这是众所周知的功能最全、最准确的PIC模拟器可用,允许周期计数、单步指令和完整指令检查微控制器状态。提供外部硬件仿真支持,包括液晶显示器模拟器,并支持USART公司其他更高级的硬件模拟即将推出。
也可以是gputils(gputils),兼容MPLAB汇编程序和拆卸器这与Microchip的产品不相上下。完整的开发环境包括驱动程序对于PIC程序员,范围从反向工程Microchip自己的驱动程序PIC启动+套件,连接到随附的多个软件电路图构建自己的并行端口程序员。当与用户选择的文本编辑器,标准GNU制作、和版本控制系统,自由软件产品在某些方面比Microchip选项更好。
然而,GNU工具并不像MPLAB那么容易学习,并且缺乏对某些更新的PIC设备和程序员的支持。那些更熟悉窗户使用MPLAB,环境当然会感到更加轻松,而GNU集合中的单个工具对于其他人来说无疑是一个可行的选择。
参考文献:“PIC微控制器的编程和定制”,Myke Predko,McGraw-Hill,1998年
微芯片:http://www.microchip.com/
GNUPIC收藏,Scott Dattalo:网址:http://www.gnupic.org/
“PIC UART”,Thomas McGahee神父:http://redrival.com/mcgahee(镜像于http://penglet.org/pichart.asm)