用P89C664实现I2C总线大批量数据的自动存储
摘要:结合Flash Magic软件对PhilipsP89C664单片机ISP功能进行详细介绍,同时详细叙述利用P89C664硬件I2C接口接收数据并转发到电脑,实现I2C总线大批量数据的自动保存技术,并附有完事的源泉程序清单及必要的注释。
关键词:Flash Magic ISP I2C P89C664
引言
在实际工作中,有些情况下可能需要对一些I2C接口发出的数据进行分析,如果数据较少则比较容易解决。比如可以直接把数据保存到单片机的RAM中,然后通过LED显示出来,但如果数据量很大,这种方法就很河取了。在这种情况下,想办法把大量的数据保存到电脑里是一个比较好的方法这样不但可以解决大批量数据的存储问题,同时也易于编辑、分析和打印。javascript:window.open(this.src);" style="cursor:pointer;"/>
但是,电脑的外设接口中是没有I2C接口的,因此需要对I2C部迟疑不决的数据进行转换,使之能发往电脑,实现数据的文件存储。综合各种因素考虑,采用UART串口的方式比较方便,因为串口技术简单、应用广泛、各种应用软件也较为丰富。
本文不仅介绍了如何实现I2C数据的转发和自动存储,同时也介绍了P89C664的ISP功能,并给出了详细配合相关软件,完全可以省去一台价格不菲的编程器,实用性强。这非常适合业余自学单片机技术或者在家吵建立一个简单实用的开发系统。
1 P89C664单片机及ISP、IAP简介
P89C664是Plilips公司一款优秀的51内核单片机芯片、带64KB的Flash程序夏令、1792B的数据存储器、I2C硬件全工作方式接口、6 clocks/12 clocks可选、8个中断源/4级中断优先级、双DPTR寄存器、PCA以及IAP、ISP功能等,具体内容请参考相关资源。在Philips的网站上可以下载到详细的技术资料及各种应用文档:http://www.semiconductors.philips.com/。
javascript:window.open(this.src);" style="cursor:pointer;"/>
下面科简单的介绍一下ISP、IAP的概念。
ISP(In System Programming),即在系统编程。它允许MCU还在产品电路板上时,对其下载新的程序。这种技术的一个明优点是,不需要把MCU芯片从你的电路板上拆下来,再装到传统的编程器上来写入新的程序。你尽可以把具有ISP功能的MCU芯片焊接在电路板上,应用更加可靠、方便。当然,你得把MCU的UART串口留出,并设计好简单的外围电路;同时还配有一个专用的ISP软件以实现用户程序的直下载。这种专用的ISP下载软件可以在各公司的网部上免费下载到。P89C664的ISP软件可在Philips公司的网站上下载。当然,如果你有兴趣也可以自己设计一个个性化的ISP下载软件,因为Philips公司对ISP的各种编程指令是开放的。
javascript:window.open(this.src);" style="cursor:pointer;"/>
IAP(In Application Programming),即在应用中程序。就是说,MCU自己可以获取新的代码并对自己重新编程。这是一个极为有用的技术,比如可以通过Internet、程控电话网等给你的产品远程升级,就像常见的杀毒软件可以自动升级一样。有了这项技术,你就可以利用现在的程控电话网、互联网等实现你的嵌入式系统远程自动升级,而无须传统的那种给客户邮寄芯片而带来的不便。
需要指出的是:ISP和IAP的核心技术是相同的,都是调用内部的标准程序对Flash存储器进行擦除和重新编程。区别在于:ISP由片内固化的一个默认的串行加载程序(Boot Loader)来完成这一动作;而IAP则由用户在自己的程序中完成这一调用,这就为产品的远程升级提供了可能,甚至可以说是MCU应用技术的一个里程碑。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 ISP技术的应用
对于Philips的MCU,其ISP电路很简单,就是一个与计算机串口通信的电路(注:根据ISP控制软件的不同电路会略有不同),电路如图1所示。
国外的嵌入式系统学会(Embedded Systems Academy)提供了一个ISP软件Flash Magic,可以在该组织的网站上下载到,网址为http://www.esacademy.com/。上面的连接电路也是与该软件配套使用的。这是一款很优秀的软件,操作方便、功能强大,并且该软件支持Philips公司的几乎所有带ISP的器件。另外,Philips公司也免费提供ISP软件,但其易用性方面不如Flash Magic。
Flash Magic的安装过程与标准的Windows软件类似,在此不再详述。安装完成后,启动Flash Magic后,有图2所示画面。javascript:window.open(this.src);" style="cursor:pointer;"/>
紧接着Flash Magic软件将用默认的设置尝试连接ISP芯片,如图3所示。
请注意状态栏中的显示“Attempting to connect...”,说明Flash Magic正在尝试着连接ISP装置。如果你已经用Flash Magic下载过程序并且没有更改ISP装置的话,则很快就可连接上。如果你是第一次使用,则需要进行一些必要的针对性设置,以便Flash Magic能正常连接带ISP的MCU。如果连接不上,Flash Magic将弹出图4所示的提示框。
请点击“取消”!然后在软件的主界面中选择菜单Options/Advanced Options...,如图5所示。
此时弹出设置框,请切换到Hardware Config选项卡,如图6所示。
使“Use DTR and RTS to control RST and PSEN”、“Keep RTS asserted while COM Port open”选项有效即可,其它都不用更改,直接点“OK”确定。
Flash Magic的主界面上有清晰的1、2、3、4、5数字指示。这1~5的数字不令表示5个不同的区域,同时也不是下载程序的5个步骤。当然如果你已经设置好了,每次下载后就可直接点"start"按钮即可。
在区域1中,我们需要设置这里的每一个选项,在这里我们是以P89C664为例的,如图7所示。
COM Port:Flash Magic支持COM1、COM2、COM3和COM4共4个串口,在过大多数电脑只有COM1和COM2口,主选择正确的COM口,该COM就是连接用户板的那个串口。
javascript:window.open(this.src);" style="cursor:pointer;"/>