机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
基于MSP430F449的数据存储和USB串行通信实现
基于MSP430F449的数据存储和USB串行通信实现
 更新时间:2008-8-19 13:26:11  点击数:96
【字体: 字体颜色
  在数据采集设备以及具有相关功能的仪器设计中,数据的存储和传输是一个非常重要的环节,本文在成功实践的基础上,介绍微控制器MSP430F449实现数据的采集后的数据存储及与上位机数据通信的相关内容。文中给出了实用的硬件电路和部分软件代码,详细讲解了在数据存储中需要注意的一些环节。

  在数据采集和测量仪器尤其是便携式设备中,数据存储和传输是不可避免的问题,近年来TI公司推出的低功耗微控制器MSP430,在仪器设计和制造领域引起巨大变革,新型控制器和大容量串行存储器的应用大大提高产品了的性能。本文主要解决两个问题

  1 解决经过MSP430采集后的数据与EEPROM24C256的数据接口问题,也就是数据存储问题;

  2 解决EEPROM与上位机(普通微机)的数据通信问题,也就是存储后的数据上传问题。

  首先对主要的集成电路做简单介绍

MSP430F449简介

  MSP430F449是MSP430系列中的一种,MSP430系列是一种具有集成度高,功能丰富、功耗低等特点的16位单片机。它的集成调试环境Embedded Workbench 提供了良好的C语言开发平台。设计中基于程序的复杂性和程序容量大的要求选择了MSP430F449,这款芯片具有64K程序存储器,可以满足大部分复杂控制的需要;它的封装100-PIN QFP具有良好的互换性,与MSP430F437 、MSP430F435等芯片具有完全一致的管脚可以在程序量上进行合理选择。

24C256简介

  24C256是支持I2C协议的串行EEPROM,容量32768字节。

  以上是24C256的管脚图,其中A0,A1,A2构成存储器的物理地址,作为I2C总线上区分不同存储器的控制地址,可以在I2C总线上同时连接8个设备。 WP是写保护,高电平将禁止对器件的写操作;SCL和SDA是数据传输的控制线,其中SCL是时钟,SDA是双向数据线,用来完成数据的写入和读出,数据的传输按照I2C协议的要求由时钟端SCL配合共同完成。

CP2102简介

  CP2102是USB到UART的桥接电路,完成USB数据和UART数据的转换,电路连接简单,数据传输可靠,把下位机串行数据转换成USB数据格式,方便实现数据通信,在上位机上通过运行该芯片的驱动程序把USB数据可以按照简单的串口进行读写操作编程简单,操作灵活。


图1 MSP430F449 接口原理图

  以上是MSP430F449与EEPROM以及CP2102的接口原理图,本文重点在于介绍数据采集过程完成以后的数据存贮和数据传输。

  数据的采集多种多样,可以经过片内的ADC转换器对模拟量进行采集,也可以通过独立的端口控制线对特殊的传感器比如温度传感器、压力传感器等进行数据转换,这不作为本文介绍的内容。本文主要是针对不同的采集过程完成后数据的存储和传输处理。

数据自动存储的客观要求

  在许多测量过程中,不仅要求读取简单的仪表值,而且还需要对一段时间的数据进行科学的分析和处理以取得预测和分析的目的。在这种情况下,可能要求测量时间长,采集要求自动进行,无需人工值守,所以数据必须自动存储;另一个原因,采集数据的频率比较高,人的观察不能满足实际需要,这就要求对采集的数据进行有效的存储。

集成电路合理选择

  有很多大容量的FLASH芯片已经得到广泛应用,但是这类芯片口线较多,需要占用较多的控制器资源,在控制外围器件多,接口复杂的情况下,特别是便携式仪器功能全、体积小,为了精简外围电路,在不影响存储量的情况下,具有I2C接口的串行EEPROM就成为了最佳选择。

24C256程序控制原理

  24C256是具有I2C接口的512x64存储器,在数据的存储过程中除了遵循I2C协议必须的逻辑以外,一个最容易忽视并且最容易导致出错的问题就是存储地址问题。

  24C256的数据容量是32768,即可以存储的有效字节数。所以它的地址是16位整型数,有效范围是0~32768,数据字节为单位存储,在16位地址其中有效数据只有15位,低6(0~5)位地址表示的容量是0~63,然后连续的9(6~14)位地址表示页码的范围是0~511,在数据连续存储过程中,相同的页面内,存储地址自动完成累加过程;数据在不同页面的存储时,地址不能自动累加,如果不做正确处理,数据将从本页开始的地址重新开始覆盖已经存在的数据。例如,地址是63(二进制码111111)表示的是第0页的最后一个存储空间,地址64(二进制码1,000000)表示第1页最开始的存储空间。在当前存储地址是63时如果该器件处于连续存储模式下,数据将出错。

  原因是什么呢? 24C256支持数据的连续存储,最大的存贮数量是64即一页的内容,如果在地址选择上超过了这个限制,数据将会覆盖本页开始的位置重新存储,这就造成数据的错误,在使用上,虽然数据是分页存储的,但在形式上是连续数据,所以存储中不需要特意区分页地址和页内地址。

  在连续存储中,尽管数据每次存储的数量小于64,数据也可能出错,例如每次存储数量为11,地址的变化是0,11,22,33,44,55,66……,看上去没有什么问题,地址是按照每次11递增的,然而存储的结果还是出错了,原因是什么呢?在地址55开始的空间无法提供连续11个页内存储空间,当地址增加到63以后数据又从该页0地址重新开始,从而导致数据储存的错误。有效的解决办法是如果使用连续存储模式,地址的安排上要使存储块的大小为64,32,16,8,4,2此外都不能使用连续地址存储。如果数据采集中的有效数据位小于64,比如每次采集的结果是30字节,在连续存储模式下要按照32为单位存储,不足的字节补零处理。

  以下是24C256数据传输基本控制模块

  // 延时处理模块
void IIC_Delay(void)
{
_NOP();
_NOP(); <
[1] [2] [3]  下一页
  • 上一篇: Keil软件仿真的串口调试技巧
  • 下一篇: C8051F005单片机的比例电磁铁控制技术
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1