实现串行E_2PROM芯片的PC界面操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2002 01 09 收修改稿日期:2002 04 26
实现串行E 2
PROM 芯片的PC 界面操作
贾东耀,汪仁煌
(广东工业大学,广东广州 510090)
摘要:基于串行总线I 2C 或SPI 的E 2PROM 芯片已被广泛应用于智能仪表中,但通常对E 2
PROM 的操作是利用单片机实现,可视性不强。
文中以X25045为例,给出了一种实现串行E 2PROM 芯片功能的新方案,即通过PC 机和单片机之间的串行通讯,可以很方便的实现PC 机对E 2PROM 的读写操作,并且可以把需要存入E 2PROM 的数据以数据库文件的形式保存起来,设计更为灵活。
PC 机界面采用VB6 0编程,形象直观。
该设计充分利用了PC 机的资源,在模块方式嵌入系统中,对于无显示模板系统的调试,确认存取数据和基本参数的准确性等方面的操作方便、简单。
本方案具有典型性,对于其他I 2C 或SPI 总线串行E 2PROM 的读写同样适用。
关键词:通讯约定;单片机C 语言
中图分类号:TP333 文献标识码:B 文章编号:1002-1841(2002)08-0031-03
Operation of Serial C hip E 2
PROM On PC Interface
Jia Dongyao,Wang Renhuang
(Guangdong U niversity of T echnology ,Guangdo ng 510090,China)
Abstract:E 2
PROM chips based on SPI or I 2
C ser ial bus have been used w idely in intelligent instruments and sensors,while the normal oper atio n on E 2PROM is reailized by single chip and is inv isible.T his paper introduces one new method of realizing the function of chip E 2PROM and g ives the example of X25045.By using the serial communication between the P C and single chip,the read and w rite operation of X25045is carried out easily on PC,and the data to be sto red in E 2PRO M can be stored in database file form.T he PC interface is built by Visual Basic 6.0and vivid result is got.Especial ly in model embedded system,this method is effectiv e in debugging embedded system w ithout display model,conforming access data and ex aming the acuracy of basic parameters by making fully use of the PC resourses.T he metho d i s ty pical and can be applied to other E 2PROM chips based o n SPI or I 2C bus.Key Words:Communication Protocol;Single Chip C L anguage
1 方案的提出
目前基于串行总线I 2C 或SPI 的E 2PROM 芯片越来越多,被广泛应用于单片机系统、智能仪表等各个领域。
但一般设计中对E 2PROM 的操作通常是利用单片机(下位机)实现,而其中的数据读写修改,很难直观的表现出来。
由于实际中经常采用集散控制系统,通常上位机为PC 机,而下位机采用单片机,文中给出一种方案,利用PC 机和单片机之间的串行通讯,由PC 机将数据通过串行口传给下位机单片机系统,经单片机控制E 2
PROM,从而实现E 2
PROM 的多种功能。
这里以美国Xicor 公司生产的E 2PROM 系列中典型的X25045为例,它采用SPI 总线与单片机交换数据(目前已有替代产品X5045,除了在页工作方式上比X25045功能有所增强外,其他完全一样)。
该芯片为8脚DIP 封装,可编程,集成了WATCHDOG 定时器、电压监控和E 2PROM 3个功能电路。
它可以与许多常用的微控制器直接连接,构成完善的计算机测控系统,并且可以通过编程控制各种功能的工作和运行,在工业
控制、智能仪器仪表设计中应用非常广泛。
本系统中PC 机采用VB6.0编程,所有对X25045
的操作均在PC 机上完成,人机界面直观形象。
而单片机则采用C51编程,C 语言具有完善的模块程序结构,简便,灵活性好,会大大缩短开发周期,增加软件的可读性。
2 X25045芯片介绍及硬件接口
X25045的引脚排列如图1所示。
CS 芯片选择输入;SO 串行输出;S I 串行输入;SCK 串行时钟输入;W P 写保护输入;RES ET 复位输出。
图1 X25045引脚排列
X25045芯片主要特点有:
可编程 看门狗!定时器,通过编程可设定不同的溢
31
第8期∀元器件与应用∀
出时间;512#8位串行E 2PROM,具有4字节页工作方式(与之兼容替代产品X5045/43具有16字节页工作方式);低功耗CMOS 结构,有较宽的电源电压范围:2.7~5.5V;可通过编程建立块锁定,提供上电/掉电保护电路、写锁存以及写保护引脚等;在线电擦除,其擦写次数达10万次以上,数据可保存10年不丢失。
本系统主要的硬件部分是AT 89C51与X25045的接口设计,上位机PC 机则直接利用它的RS232串行口即可。
接口电路见图2
所示。
图2 X25045与89C51硬件连接
X25045采用简单的三线总线串行外设接口(SPI)与单片机交换数据并实现程控。
对芯片进行操作的所有操作码、字节地址及写入的数据均从SI 引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO 引脚串行移出,并在串行时钟下降沿输出。
整个数据交换期间,CS 必须是低电平且WP 输入必须是高电平。
如果在预定的时间内总线没有活动,则它将在RESET 引脚提供复位输出。
3 软件结构
软件分PC 机Visual Basic 编程和89C51单片机C 语言编程两部分,现分别介绍如下。
PC 机部分PC 机采用VB6.0编程,这样界面非常直观,人机交互效果好。
3 1 通讯功能实现
VB 提供了具有通讯功能的MSCOMM.OCX 控件,该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。
M SCOMM 控件提供两种处理通讯的方式:(1)事件驱动通讯,即发送或接收数据过程中触发ONCOM M 事件,通过编程访问CommEvent 属性了解通信事件的类型,分别进行各自的处理。
(2)查询方式,通过检查CommEvent 属性的值来查询事件和错误。
文中采用查询方式。
M SCOMM 控件初始化:
M mPort =2 ∃设置串口2
M SComm1.Settings =%9600,n,8,1% ∃设定工作方式M SComm1.InBufferSize =512∃输入缓冲区大小设置
M SComm1.InputMode =1 ∃二进制形式接收M SComm1.InputLen =0 ∃一次读出输入缓冲区中的所有数据
M SComm1.OutBufferSize =512 ∃输出缓冲区大小设置
M SComm1.OutBufferCount =0 ∃清空输出缓冲区M SComm1.InBufferCount =0 ∃清空输入缓冲区M SComm1.PortOpen =True 打开串口
PC 机与单片机89C51之间的通讯约定如下:一般情况下PC 与多个89C51单片机系统进行主从式通讯,其方案是89C51采用串口工作方式3,即11位异步接收/发送方式,有效数据为9位,其中第9位为地址/数据信息的标志位,以此区分各从机。
但现在PC 机采用VB 编程,其MSCOMM 控件为标准的10位串口通信,包括8位标准数据和数据的起始位和停止位。
这样二者格式不相符,故很难利用上述方案。
考虑单片机串口设为工作方式1,即改为10位异步接
收/发送方式,通讯流程如下:
通讯时首先发通信开始标志,接着发送各下位机单片机的地址信号和芯片X25045的片选信号,然后发送X25045的工作命令字。
这里为X25045的各种功能设定不同的命令字,命令字为一个字节,格式可以人为设定。
再往下即进行数据处理,转入相应的处理功能模块,最后对数据进行校验。
该通讯规约非常简便,较好的解决了上述问题,从而实现PC 机与单片机之间的主从式通讯及对X25045的功能操作。
3 2 X25045中数据的处理
利用VB 中的数据库技术可以对X25045中的数据进行编辑,并且能够以数据库文件的形式把内容保存起来,便于查看,需要对E 2PROM 进行修改时,只需调入数据库文件,进行连续写操作即可。
这里采用数据访问对象(DAO),它可以用于独立方式的Microsoft Jet 数据库引擎,也可以通过新的ODBCDirect 选项直接访问远程数据库。
本方案对X25045中的数据可以实现以下功能:(1)创建数据文件。
把要写入E 2EPROM 中的数据保存为Jet 数据库文件格式。
以表格的形式把文件中的数据按地址显示,操作者可以直接对数据进行修改、删除、保存。
(2)数据写入。
根据PC 与89C51之间的通讯约定,发送写入X25045中的数据,进行校验和校验。
操作时只需输入数据的起始地址,可以进行连续写入。
如成功显示正确信息,否则显示失败信息。
(3)数据读出。
根据PC 与89C51之间的通讯约定,发读命令。
同样也可实现连续读出功能。
32
仪表技术与传感器
2002年
对于设定看门狗功能,写保护功能等,方法与上类似,这里不再赘述。
4 单片机部分
该部分采用C51编程。
C 语言编程具有快捷,模块功能强大,可读性好,效率高等优点,目前很多公司
的单片机产品都支持C 语言开发。
4 1 程序初始化
包括设定串口工作方式,定时器,中断寄存器初始化,各变量的初始化。
T MOD=0x 20; //定时器1为发生器
TH 1=0xfd; //设定波特率T L1=0x fd;
SCON=0x50; //串口工作方式1EA=1; //开中断ES=1;
T R1=1; //启动T1
SPECHAR=0xff;//设定通讯开始标志chk_data=0; //校验和清零
4 2 串口中断服务程序
单片机进入中断程序后,首先判断串口收到数据是否为通讯开始标志,不是即退出中断。
否则关串口中断,然后按照通讯约定,以查询方式依次接收PC 机发来的数据。
首先判断单片机地址,若不符则恢复开中断,退出中断服务程序,等待下一个通讯开始标志;若相符则选择工作芯片地址,转入相应的处理程序。
结束后恢复开中断,退出中断服务程序。
通讯流程如图3所示。
N
N
退出中断
开串口中断转入相应处理程序
Y
判断地址?
接收数据(地址、命令
字、操作数据)
关串口中断Y
是否通讯开始标志?
开始
图3 中断处理程序
以下为串口中断程序:
void serial_int(vo id )interrupt 4
{ start=SBUF;
if (start==SPECHAR)//比较是否通讯开始标志{ ES=0;//是,则采用查询方式接收 以下接收数据,暂存至store 数组.........
if(store[0]=cpu addr)//单片机地址判断{ switch(store[1]){......case 3:E 2PROM option();//转入相应处理程序
break;}}
ES=1;//开串口中断,退出中断服务程序 }
4 3 X25045芯片处理子程序
该部分对X25045进行操作。
X25045内部包含1个八位指令寄存器,提供有6条指令供编程使用。
所有指令、地址和数据均以最高有效位(MSB)在先的方式串行传送,在写操作前必须设置写允许锁存器,并在整个写过程中保持有效,在读/写数据指令中,还包含有A8地址位。
编程时严格按照读/写操作的工作时序图。
程序功能举例:
下面的子程序用以实现X25045的功能
先定义一些变量。
X25045指令寄存器中6条指令值分别设置如下
#define WREN 0x 06#define WRDI 0x 04#define RDSR
0x 05#define WRSR 0x 01#define READ 0x 03#define WRITE 0x 02
定义电平值#define H IGH 1#define LOW 0
由硬件电路图(参见图2),芯片引脚设定如下:sbit CS=P 10&
;sbit SI=P 11&;sbit SO=P 12&;
sbit SCK=P 13&;
(1)读X25045中一个指定地址的数据unsig ned char read_by te(address){ unsig ned int address;
unsig ned char result;
(下转第51页)
33
第8期∀元器件与应用∀
<5∋),出水温度的响应曲线如图6(a)所示。
图6(b)是K e ,K ec ,K u 固定的出水温度曲线。
由出水温度曲线可以看出,模糊控制器取得了较好的控制效果,而在
线自调整因子的方法是解决系统稳态振荡及抑制超调
的一种有效途径。
(a)采用在线自调整因子的响应曲线 (b)量化,比例因子固定的响应曲线
图6 出水温度曲线
6 结论
通过模糊控制策略在DCS 系统中的应用,实践证明达到了较好的控制效果;在充分利用了DCS 系统资源的基础上,加上先进控制是解决实际工业生产过程中复杂系统控制的一种有效的策略。
参
考
文
献
[1] 余永权,曾碧.单片机模糊逻辑控制.北京:北京航空航天大学出
版社,1995.
[2] 王磊,王为民.模糊控制理论及应用.北京:国防工业出版社,
1997.
[3] 李友善,李军.模糊控制理论及其在过程控制中的应用.北京:国
防工业出版社,1993.
[4] 孙庚山,兰西柱.工程模糊控制.北京:机械工业出版社,1995.[5] 智能自动化系列组态(第1,2,3册).上海:FOXBORO 公司,1993.[6] I/A ∃S 系统及应用.上海:福克斯波罗有限公司,1993.
(上接第33页)
CS=LOW;
w by te((unsig ned char)(address>255?(0x 08|READ):READ));//发读命令字
w byte((unsigned char )(address &0x00ff));//发读操作的指定地址
result=r byte();//接收数据CS=HIGH;
return(result);//返回值 }
(2)向memory 一个指定地址写数据void write byte(address,Data)
{ unsigned int address;
unsigned char Data;
write _com d(WREN);//发写使能命令字CS=LOW;
w byte ((unsigned char )(address>255?(0x 08|WRIT E):WRITE));//发写命令字w byte ((unsigned char )(address &
0x00ff));//操作地址
w byte(Data);//发写数据CS=H IGH ;
w ip poll();//延迟等待return; }
(3)写状态寄存器void write reg(status){ unsigned char status;
write comd(WREN);//发写命令字CS=LOW;
w byte(WRSR);//发写状态寄存器命令字w byte(status);//写状态字CS=H IGH ;w ip
poll();//延迟等待 }
5 结束语
本文较完整的给出了如何利用PC 机实现对X25045的操作方案,在用单片机和X25045组合使用WATCHDOG 定时器、电压监控和E 2PROM 3个功能,有利于使嵌入式系统更简洁,特别是在模块方式嵌入系统中,本方案充分利用PC 机的资源对于无显示模板系统的调试,确认存取数据和基本参数的准确性,操作方便简单。
该方法对于其他I 2C 或SPI 总线串行E 2
PROM 的读写同样适用。
参
考
文
献
[1] X25043/45可编程看门狗监控E 2PROM 数据手册.武汉力源电子
股份有限公司,1998:1-10.
[2] 马忠梅,籍顺心,张凯等.单片机C 语言应用程序设计.北京:北京
航空航天大学出版社,1999:212-222.
51
第8期∀研究与开发∀。