用P89C664实现I2C总线大批量数据的自动存储

发布者:ZenMaster123最新更新时间:2012-04-11 来源: dzsc关键字:P89C664  I2C总线  自动存储 手机看文章 扫描二维码
随时随地手机看文章

引言

在实际工作中,有些情况下可能需要对一些I2C接口发出的数据进行分析,如果数据较少则比较容易解决。比如可以直接把数据保存到单片机的RAM中,然后通过LED显示出来,但如果数据量很大,这种方法就很河取了。在这种情况下,想办法把大量的数据保存到电脑里是一个比较好的方法这样不但可以解决大批量数据的存储问题,同时也易于编辑、分析和打印。

但是,电脑的外设接口中是没有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/。

下面科简单的介绍一下ISP、IAP的概念。

ISP(In System Programming),即在系统编程。它允许MCU还在产品电路板上时,对其下载新的程序。这种技术的一个明优点是,不需要把MCU芯片从你的电路板上拆下来,再装到传统的编程器上来写入新的程序。你尽可以把具有ISP功能的MCU芯片焊接在电路板上,应用更加可靠、方便。当然,你得把MCU的UART串口留出,并设计好简单的外围电路;同时还配有一个专用的ISP软件以实现用户程序的直下载。这种专用的ISP下载软件可以在各公司的网部上免费下载到。P89C664的ISP软件可在Philips公司的网站上下载。当然,如果你有兴趣也可以自己设计一个个性化的ISP下载软件,因为Philips公司对ISP的各种编程指令是开放的。

IAP(In Application Programming),即在应用中程序。就是说,MCU自己可以获取新的代码并对自己重新编程。这是一个极为有用的技术,比如可以通过Internet、程控电话网等给你的产品远程升级,就像常见的杀毒软件可以自动升级一样。有了这项技术,你就可以利用现在的程控电话网、互联网等实现你的嵌入式系统远程自动升级,而无须传统的那种给客户邮寄芯片而带来的不便。

需要指出的是:ISP和IAP的核心技术是相同的,都是调用内部的标准程序对Flash存储器进行擦除和重新编程。区别在于:ISP由片内固化的一个默认的串行加载程序(Boot Loader)来完成这一动作;而IAP则由用户在自己的程序中完成这一调用,这就为产品的远程升级提供了可能,甚至可以说是MCU应用技术的一个里程碑。

2 ISP技术的应用

对于Philips的MCU,其ISP电路很简单,就是一个与计算机串口通信的电路(注:根据ISP控制软件的不同电路会略有不同),电路如图1所示。

 

国外的嵌入式系统学会(Embedded SySTems Academy)提供了一个ISP软件Flash Magic,可以在该组织的网站上下载到,网址为http://www.esacademy.com/。上面的连接电路也是与该软件配套使用的。这是一款很优秀的软件,操作方便、功能强大,并且该软件支持Philips公司的几乎所有带ISP的器件。另外,Philips公司也免费提供ISP软件,但其易用性方面不如Flash Magic。[page]

Flash Magic的安装过程与标准的Windows软件类似,在此不再详述。安装完成后,启动Flash Magic后,有图2所示画面。

紧接着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”确定。[page]

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就是连接用户板的那个串口。

Baud Rate:这里设置程序的下载速率,根据情况选择合适的值,不易太大,否则会因为干扰而无法连接,通常情况下用19200bps就比较合适了。

Device:选择ISP器件型号,在Flash Magic的1.81版中,共支持35种ISP器件,这里选择P89C664。

Oscillator Frea.(MHz):在这里请填入你用户板上MCU用兵晶振频率值。

其它部分类似,可以自己下载下一个Flash Magic,新自操作一下就会很清楚了。

除了下载用户程序外,Flash Magic还提供了其它的一些功能,都集中在“ISP”菜单中。可以亲自去试一下,以后你会发现Flash Magic真的很好用。有了它一定能让你的开发工作事半功倍,而且可以省去一台昂贵的编程器,对单片机的初学者尤为适用。

3 I2C接收数据并转发到电脑

由于P89C664带有硬件I2C接口,因此我们用它作为从器件接收I2C总线上的数据,Philips公司在相关的技术资料中给出了标准的I2C接口控制程序包。其实也可根据P89C664的资料自己来编写I2C接口的控制程序,不过Philips公司提供的参考程序很值得我们学习、研究。下面程序中用的就是Phlips公司推出的I2C接口控制程序,为了更适用于接收大批量的I2C总线数据,我们对其中的一部分代码作了必要的更改,如果需要标准的控制程序请自己从Philips的网站上下载。

程序的流程是首先设置好I2C接口的地址以及各SFR的值,然后启动I2C接口,并把接收到的数据通过串口发往电脑,在电脑上启动另一串口调试软件并做好相关的设置,即可将I2C总线的数据接收并保存下来。在这里,我们的用户板作用相当于一个协议转换装置,即把I2C总线的数据流转换为UART的数据流并发往电脑。

请注意:一般我们的ISP下载、串口调试是公用同一部分电路和同一个串口的。因此,Flash Magic和串口调试软件不能同时启动,否则将出错,请在下载完程序后关闭Flash Magic软件再启动串口调试软件。

由于串口一直以来都是各种计算机系统所提供的一个标准接口,因此串口中的调试软件在网上随处可见,当然你若有兴趣也可自己设计一款串口调试软件。

在这里我们采用的是一个名为串口调试器,英文名COMPort Debuger的软件,比较好用,并且具有大批量数据的自动保存功能,这个功能很重要。该软件启动后的界面如图8所示。

在发送区和接收区中显示有软件作者的网站,大家可以去那里下载最新版。

在用户板程序运行并对串口调试设置好后即可点“打开串口”,此时在接收区将显示通过串口发来的各种数据。

网站(www.dpj.com.cn)给出该转发装置中P89C664的完事源泉程序,程序中附有必要的注释。

结语

本文较为详细的介绍了P89C664 ISP功能的应用,及利用简单的在线下载装置编程实现I2C总线的数据转发和保存;同时给出了详细的I2C硬件接口的初始化及整套装置的源程序。可用于各种大批量I2C总线数据的自动保存、编辑、分析、打印等,也可将该置用于一般的开发中,测试你的程序是否满足要求等。

关键字:P89C664  I2C总线  自动存储 引用地址:用P89C664实现I2C总线大批量数据的自动存储

上一篇:并行接口铁电存储器FM1808及其应用
下一篇:用FIFO设计A/D与DSP之间的接口

推荐阅读最新更新时间:2024-05-02 22:00

按平台模式设计的虚拟I2C总线软件包VIIC
摘要:VIIC是主方式下的虚拟I2C总线软件包,用于80C51系列单片机的单主系统中。只需两根普通I/O口线就可随时扩展I2C总线外围器件。将VIIC1.0装入程序存储器中,对其中的符号单元赋值后,使用三条通用操作命令就可实现任何I2C总线外围器件的应用程序设计。本文以VIIC为例,介绍应用软件形式的广义平台设计方法,给出VIIC1.0程序文本。按照这一思路,也可移植到其他系列的嵌入式系统中。 关键词:平台模式虚拟I2C总线VIIC应用程序设计 一、I2C总线及其虚拟应用 1. I2C总线应用呼唤平台模式 目前,单片机应用系统的外围扩展已从并行方式为主过渡到以串行方式为主的时代。许多新型外围器件都带有串行扩展接口。通常的串
[传感技术]
基于I2C总线的MSP430应用系统设计
引言 串行护展总线技术是新一代单片机技术发展的一个显著特点。其中PHILIPS公司推出的I2C总线最为著名,它包括一个两端接口,通过一个带有缓冲区的接口,数据可以被I2C发送或接收,控制和状态信息则通过一套内存映射寄存器来传送。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430单片机温度控制系统中的一个典型实例。 I2C总线是用2根双向I/O信号线(串行时钟线SCL和串行数据线SDA)把多种器件连接起来,并实现器件之间的串行通讯。 MSP430是TI公司一种具有超低功耗的功能强大的
[单片机]
基于<font color='red'>I2C总线</font>的MSP430应用系统设计
I2C总线规范
  1.硬件组成:时钟线:SCL。数据线:SDA。 2.硬件要求:由于I2C的设备为OD(Open Drain,开漏),故在总线上需要加上拉电阻。5V电路中一般使用5.1K的上拉电阻,3.3V电路中可以使用4.7K的上拉电阻。 3.数据速率:100kbps,400kbps,3.4Mbps。 4.通信起始条件:SCL高电平时,SDA发生下降沿跳转。 5.通信终止条件:SCL高电平时,SDA发生上升沿跳转。 6.ACK:在一个字节发送完成后,如果需要ACK,则在第9个时钟周期,发送设备释放SDA,由接受设备控SDA产生低电平的ACK。 6.数据主→从正常传输:①主寻址从,发送地址和写
[嵌入式]
MSP430与I2C总线接口技术的研究
引言 MSP430单片机自从2000年问世以来,就以其功能完善、超低功耗、开发简便的特点得到了许多设计人员的青睐。MSP430与传统的51单片机在结构上有很大的区别。其中之一就是:在MSP430的外围接口电路中,没有提供像51那样控制外设读、写、地址锁存信号的硬件电路。与这种接口电路相适应,MSP430更倾向使用I2C总线以及ISP等基于串行接口的外围器件。另一方面,随着I2C技术的发展和成熟,其硬件结构简单、高速传输、器件丰富等特点使该类器件的应用越来越广泛。因此研究新型单片机MSP430与I2C总线接口技术有着重要的意义。本文针对这一问题进行研究,分析研究了MSP430与I2C总线接口的原理和方法,提出了高效的接口方法,介
[单片机]
MSP430与<font color='red'>I2C总线</font>接口技术的研究
基于I2C总线的高分辨率红外式触摸屏设计
  引言   随着平面显示器的大规模应用和大屏幕平板显示器的出现,红外触摸屏的应用已十分广泛。同时,分辨率的进一步提高成为红外触摸屏应用于大屏幕的关键,本文提出了一种提高红外式触摸屏分辨率的方法。   系统结构及工作原理   系统工作原理   红外触摸屏基本原理是光束阻断技术,它不需要在原来的显示器表面覆盖任何材料,只需在显示屏幕的四周安放一个框架。框架两个对边上,一边安装红外发光二极管(LED),另一边安装红外线探测器,在显示屏幕的表面形成一个由红外线组成的栅格。当有任何物体进入这个栅格的时候,就会阻挡一些光线,光电转换电路就会收到变化的信号,由ADC转换后,MCU将计算的触摸位置坐标传递给操作系统。   早期红外触摸
[单片机]
基于<font color='red'>I2C总线</font>的高分辨率红外式触摸屏设计
I2C之知(三)--I2C总线的字节格式、时钟同步和仲裁
        字节格式         发送到SDA线上的每个字节必须是8位.每次传输的字节数量是不受限制的.每个字节后必须跟着一个ACK应答位.数据从最高有效位(MSB)开始传输.如果从机要执行一些功能后才能接收或者发送新的完整数据,比如说服务一个内部中断,那么它可以将时钟线SCL拉低来强制使主机进入wait状态.当从机准备好新的字节数据传输时,释放时钟线SCL,数据传输便继续进行.         ACK和NACK         每个字节后都有ACK发生.ACK应答位允许接收器通知发送器字节成功接收了下一个字节可以发送了.主机产生所有的时钟脉冲,包括应答位的第9个时钟脉冲. ACK应答信号是如下定义的:在ACK的第9
[嵌入式]
基于I2C总线和SD卡的火车轮轴承温度采集系统
    引  言     火车轮轴承的损坏将导致重大交通事故,提前预防是避免事故发生的最好办法。现有的轴承温度采集系统大都不能实时采集温度信息,而且不能大量保存相关信息供人们分析。本文介绍的火车轮轴承温度采集系统运用高性能的处理器,能够在火车运行的过程中不断记录温度与时间信息,并实时地把相关信息存储到SD卡中。     1  系统设计原理     火车轮轴承温度采集系统的工作原理是,各测量点通过温度传感器获取轴承温度信息,随后通过I2C总线把这些信息转输给主机,主机收到后根据数据进行超温报警等动作,同时把数据存储在SD卡中,以便查询。该系统以S3C2440A 为主控制器,外部各个温度传感器直接挂接在I2C总线上,就可以实现主
[嵌入式]
I2C总线控制的CD2518彩电
  I2C总线控制是由一连串二进制编码脉冲信号,通过程序指令方式实现微处理器对单元功能集成电路的控制和信息交换,以软件代替硬件,提高控制系统效率。从而实现电视信号的控制,以CPU为核心,存储器为记忆,经过TV信号处理,来完成彩色解码、图像中放、视放、伴音、遥控,使电路简化,功能增加,提高产品的可靠性。   利用I2C总线设计应用程序,简化了硬件设计,使用户“傻瓜化”,在生产中,可以省掉一大半可调电位器,大大地简化了调整工艺,产品一致性好,提高了产品的可靠性,并且具有故障自检功能,能够缩短检修时间,提高检修率。   一、CD2518彩电的I2C控制系统   彩电的I2C总线的控制系统是由硬件电路和软件数据系统组成的,硬件电路是
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved