你现在位置:首页>技术论文>数据通讯>正文
基于I2C总线数据写入器的设计
日期:2006-4-16 15:50:09 来源:本文摘自《PLC&FA》  
点击: 作者:未知
点击【】放大字体.

1  引言

WW.W_PLCJS_COM-PLC-技.术_网

    (Inter-Integrated Circuit)总线是一种用于连接微控制器及其外围设备的总线。总线最主要的优点是其简单和有效。由于接口直接在组件上,故其占用空间小,减少了电路板的空间和芯片引脚的数量,广泛用于智能化仪表。现在有的MCU已提供接口,但对于没有直接支持总线的MCU则需要用软件进行模拟。本文以AT89S52单片机为核心,与PC进行通信,实现具有总线的EEPROM AT24C04读写功能,构成一种数据写入器,用于仪器仪表等设备中表格、曲线和参数等的读写。所有程序用C语言完成。
——可——编——程——控-制-器-技——术——门——户

2  单片机和PC两方的通信格式

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    本设计中的数据通信格式如下:第一字节为发给MCU的命令,第二字节保留。后16字节是所要写入的数据。但在开始操作时最先发送的仅为前2字节。命令有如下几种:写命令(CMD_WRITE)、读命令(CMD_READ)、操作结束命令(CMD_OVER)、状态检查命令(CMD_CHECKOK)。
WWW_PLC※JS_COM-PmLC-技.术_网

    两方的通信过程大致如下:PC发出前缀为CMD的命令,然后监听串口等待MCU返回的前缀为RSP的准备就绪的回应(写入时为RSP_WRITEREADY;读出时为RSP_READREADY),若超时则给出错误提示;收到该回应后进行读写操作;结束时PC发出结束命令并等待MCU的结束回应;若正确收到该回应则提示成功,否则提示操作完成但未收到回应。在写操作中,每发送18字节进行一次确认。另外,由于读芯片中是读出的所有内容,故此时PC不发结束命令而只等待结束回应。
——可——编——程——控-制-器-技——术——门——户

    在执行写操作时,PC都以CMD_WRITE为命令发送18字节的数据并等待MCU的RSP_WRITTEN。在执行读操作时,PC先接受MCU发来的以     RSP_READ为回应的18字节数据,然后再发送1个字节的命令CMD_READ。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

3  I2C总线时序模拟

WW.W_PLCJS_COM-PLC-技.术_网

     本设计使用的EEPROM为AT24C04,它可用串行总线。由于89S52不直接支持总线,因此只能使用IO口来模拟的总线时序。89S52可以进行位寻址,这给时序模拟带来了方便。
WWcW_PLCJS_COM-PLC-技.术_网

(1) 通信开始信号
plcjs.技.术_网

    根据的规程,通信开始信号是当SCL(串行时钟信号)处于高电平时在SDA(串行数据信号)上给出一个下跳沿,且下跳沿后,SCL还要维持高电平4μs。此过程可用如下代码模拟:
plcjs.技.术_网

_SDA=1;
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

_SCL=1;
WWW_P※LCJS_COM-PLC-)技.术_网

 _nop_();
plcjs.技.术_网

 _nop_();
WWW_PLCJS@_COM%-PLC-技.术_网

 _nop_();
WWW_P※LCJS_CO※M-PLC-技-.术_网

 _nop_();
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

_SDA=0;  // 下跳沿
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 _nop_();
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 _nop_();
WWW_PLCJS_COM-PLC-技.术_网

 _nop_();
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 _nop_();  // 维持SCL为高电平4us
WWW_PLC※JS_COM-PmLC-技.术_网

_SCL=0;
plcjs.技.术_网

(2) 通信停止信号
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

通信停止信号是当SCL为高电平时在SDA上出现一个上跳沿,且SDA上跳前的低电平应维持4us以上。此过程模拟代码和开始信号类似,在此省略。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

(3) 字节传送完毕确认信号
WW.W_PLC※JS_C,OM-PL,C-技.术_网

该信号是在SDA为低电平时SCL上出现一个正脉冲,此过程可用如下代码模拟:
WW.W_PLCJS_COM-PLC-技.术_网

_SDA=0;
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 _SCL=1;
plcjs.技.术_网

 _nop_();
WWW_PLCJS@_COM%-PLC-技.术_网

 _nop_();
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 _nop_();
WWW_P※LCJS_COM-PLC-)技.术_网

 _nop_();
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

_SCL=0;
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

_SDA=1;
WWW.PLCJS.COM——可编程控制器技术门户

(4) 非确认信号
WWW_P※LCJS_COM-PLC-)技.术_网

该信号便于控方传送停止信号,在SDA为高电平时,SCL上出现一个正脉冲,除此,模拟代码和字节传送完毕确认信号类似,不再赘述。

本新闻共3页,当前在第11 2  3  
WWW_P※LCJS_COM-PLC-)技.术_网

评论内容
载入中...
相关文章
商城相关
相关下载
博客相关
论坛相关
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 
   深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce......
广州汇巨自动化设备有限公司 
   广州汇巨自动化设备有限公司是一家专业工业自动化产品和自动化设备开发、维修改造、电......
深圳联脉电子有限公司 
   公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监......
北京力天昭阳科技发展有限公司 
   北京力天昭阳科技发展有限公司(PekingPowerSkyScience&......
东莞市友诚自动化 
   本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20......
深圳市爱威轮实业有限公司 
   爱威轮实业对广大用户的技术支持与服务,贯穿于与客户接触的每一个环节中,渗透在每一......
·栏目热门排行
·站内热门排行
载入中。。
报告错误·关于我们· 用户帮助· 联系我们 · 友情链接· 本站服务 · 合作伙伴 · 版权声明· 招聘信息 · 投搞指南

迅闻自动化工程部声明如下:
旗下网站:PLC技术网(www.plcjs.com)-可编程控制器技术门户
网站备案号:粤ICP备17165530号
网站法律顾问:ITLAW-庄毅雄律师
法律保护:PLC技术网,迅闻电子,plcjs.com,plcjs.net,plcjs.cn等字样

Copyright 2010-2015. All rights reserved. 

51La