




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C8051F020的恒电量腐蚀监测系统的研究与设计 摘要:为了满足腐蚀监测实际需求,设计了一款基于恒电量原理,利用高性能C8051F020 单片机技术的现场腐蚀监控系统。该系统直接利用C8051F020 已经封装的一个12 位100kbps 的逐次逼近型ADC 进行数据采集,通过上位机数据分析软件给出极化曲线以及腐蚀动力学参数。系统中上位机和下位机之间的通信方案有两种选择:第一是采用RS232协议直接通讯,第二是利用调制解调器(MODEM)。摆脱了监测系统对PCI采集卡的依赖 ,并实现了远程控制。关键词:C8051F020, ADC, RS232, 数据采集, 调制解调器(MODEM)Studies on Corrosion Measurement System Based on C8051F020 MCU and Coulostatic Method Abstract: Corrosion Measurement System Based on C8051F020 MCU and Coulostatic Method is introduced,This system can directly achieve data acquisition by the 100kbps successive close-ADC0. polarization curve and chemicalkinetic parameter will be offered by the subsystem of data transacting and analyzing in PC.To satisfy the actual needs in the monitoring of corrosion,Two types Of communication between Upper Monitor and Microcontrollers are designed ,through RS-232C serial part or Modem. The new system brakes away from the restrict of PCI and realize telecontrol .Keywords: C8051F020 ,ADC ,RS232 ,Data acquistion ,Modem.50 引言腐蚀给国民经济带来的巨大经济损失己经引起人们的重视,腐蚀防护成为现代科学技术研究的重要领域之一。金属腐蚀速率和机理是研究腐蚀防护的主要内容,腐蚀监检测技术又是研究金属腐蚀速率和机理的重要手段。所以腐蚀检测技术的重要性突出地显现出来。 恒电量技术是采用先进的电子技术,将已知量的电荷作为激励信号,在极短的时间内对所研究的腐蚀体系进行扰动,而后记录极化电位随时间的衰减曲线,经过分析处理得到多个电化学参数的一种测量技术。它有着快速、扰动小、无损检测和结果定量等优点,因此是一种极具应用潜力的腐蚀监测方法.在测控系统中,基于数据采集卡的系统,一是板卡本身的价格高,二是采集卡必须安装在计算机内,在现场监控应用中有局限性。本系统基于恒电量原理,采用美国Cygnal 公司的C8051F020 单片机为控制核心,组成了现场腐蚀监测系统,采样过程不要PC机控制。由于环境监控站点不集中,区域跨度大,现场挂片人工取样的方式需要耗费大量的人力、时间等资源。并且无法动态连续的观察腐蚀数据。为此本系统具有两个全双工串口,一个串口可方便地与计算机相连,另一个串口与Modem 相连,应用标准外置式调制解调器,借助公用电话交换机网络,不受地点的限制,迅速、安全地实现远距离数据通信。1 系统的工作原理系统分两部分组成:(1)单片机系统负责采集,数字滤波以及存储.(2)上位机监控软件有VC+和Matlab混合编程,实现和下位机的数据通信以及数据的处理分析. 2 单片机系统的硬件设计:C8051F020 单片机1是集成的混合信号片上系统SOC,具有与MCS251内核及指令集完全兼容的微控制器,机器周期由标准的12个系统时钟周期降为1个系统时钟周期, 指令处理能力比MCS51大大提高,并且ADC的数据读取自动完成。片内JTAG调试电路提供全速非侵入式的电路,内调试不需要仿真器.2.1 电源电路两种供电方式,一是220V50HZ交流电, 二是12V铅酸电池供电.220V首先需要变压器降到 图1: 单片机系统组成框图 12V,通过IN4007二极管和W7805稳压芯片将电压稳定在5V,然后通过LM2937把5V电压转化为3.3V,供硬件系统使用.2.2 外部时钟电路 为了充分发挥C8051F020 单片机的高速、高性能, 保证测试系统极高的采样频率, 本系统采用C8051F020 单片机外部时钟,晶振频率为22.1184MHz,外部时钟由外部谐振器、并行方式的晶体、电容、电阻连接到C8051F020 单片机的XTAL1 /XTAL2 引脚。2.3 采样与串口通信前段测量模块为恒电量测量模块,有程控放大器AD620和四组基准电容组成。该系统直接利用C8051F020 已经封装的一个12 位的100kbps 的逐次逼近型ADC 进行数据采集,数据可以存储在IDE硬盘里,也可以选择通过RS232或则MODEM向上位机直接传送。PC机配置的是标准的RS232接口,其供电电压为12 V,而C8051F020输出的是TTL电平,采用+3.3V供电, 要完成单片机与PC 机的数据通讯,必须规范二者的电气参数,对单片机输出的TTL电平进行电平转换,采用的是芯片MAX3223.PC机利用VC+境下Mscomm通信控件实现与下位机的异步串口通信4,操作步骤:选择ClassWizard为新创建的通信控件加入一个成员变量,将其命名为m_commute,设置控件属性进行串口初始化m_commute. SetCommPort(1) 使用串口1;m_commute .SetSettings(“4800,N, 8, 1”) 波特率为4800,无奇偶校验, 8位数据位, 1位停止位.对控件采用事件驱动法,编辑OnComm事件的代码.51单片机采取中断方式响应。握手协议SHP(1): 需要开始传送数据块的甲方总是先发送0x06, 提出申请。乙方收到0x06后,决定接收就发送0x00,若拒绝接收就发送0x15。甲方收到是0x00,就可开始发送后续数据。收到是0x15,则等待时机再提出申请。接收正确发送0X0F,错误发0XF0。2.4 日历时钟电路 利用C8051F020的SMBUS总线完成对时钟-日历芯片PCF85632的读取。SMBUS是一种同步双向串行总线,与 IC串行总线兼容,为二线传输,总线上所有器件都连到同名端的SDA(串行数据)、SCL(串行时钟)线上,SMBUS总线上数据传输的最大速率可达系统时钟频率的1/8以上,相对比一般IC总线规定的速度快。SMUBUS配置:(1)端口配置XBR0=0X01,Smbus的SDA,SCL分别连到两个端口引脚P0.2, P0.3;XBR1=0x14,允许INT0,INT1;XBR2=0x44, 允许UART1,交叉开关和弱上拉。(2)I/O口输出模式配置:P0MDOUT=0xD1,SDA,SCL被功能选择开关选择到某个引脚时,则该引脚被自动设置为漏极开路输出,INT0,INT1为推拉方式。在高速和高驱动时,总线应设置为推拉方式,而在低速和低驱动时,总线设置为漏极开路即可。(3)寄存器配置:SMB0CN = 0x44,其中位ENSMB=1,表示允许Smbus,应答标志控制位AA=1,表示在确认周期返回确认信号; SMB0CR = 0x92,总线时钟频率设置为100KHz,EIE1=EIE1|0x02,开启中断。下面介绍如何读去日历时间:定义字符型数组unsigned char xdata time7。检查Smbus总线是否忙。如果空闲,则通过STA=1来启动总线,并在进入中断后读取状态寄存器SMBOSTA的值,若SMBOSTA=0x08,表示起始条件发送完,单片机将从机件的地址通过SMBODAT发送出去;若进入中断后读得SMBOSTA=0x18,表示从地址已发送并收到ACK,此时可通过SMBODAT向从器件写内部地址,此时主机为了继续占有总线,将在写入子地址完毕后,将STA置1,并重新产生位起始条件;然后将从机的地址和读控制程序装入SMBODAT,以使主机变为接受单元,而PCF8563变为发送单元,开始读取日历时间。比如年: time6 =0xff&SLA_READ(CHIP_PCF8563, 0x08) .考虑到系统稳定性,把对外设的初始化放在初始化末尾子程序执行。2.5 数据存储 本系统下位机负责放电曲线极化电压的采样,一次测量大概是3000个点左右,占存储空间为20K30K,我们的现场测量的地点与实验室距离较远,希望下位机持续采样的时间能在两周左右,采集结束后上传PC机进行数据处理。海量数据的存储采取PC系统的硬盘3, 容量大、接口智能化程度高、控制方便。 C8051F020 CPLD双口RAMIDE硬盘 图2:数据存储原理图 双口RAM采用IDT7024,CPLD采用EPM7064,实现地址发生逻辑控制功能,IDE硬盘大小为20G。数据传输模式为PIO模式,该模式采用高速的数据块I/O,以扇区为单位,用中断请求方式进行批量数据交换。在扇区读写操作时,一次按16 位长度通过内部的高速PIO数据寄存器传输。 工作时,双口RAM写入端地址有CPLD给出,地址计数器初值为0,对与每个采样脉冲,地址计数器加1,在完整的放电曲线采样完成后,CPLD向单片机发出读取RAM数据的请求,单片机查询IDE硬盘是否空闲,是启动IDE硬盘从双口RAM的首地址开始读取数据,当硬盘将双口RAM中数据全部取走后,然后等待新一轮数据采集。数据传输在硬盘端口寄存器与缓冲存储器之间进行,不经过单片机,单片机只是对硬盘进行初始化,并发相应的写命令。2.6 远程控制电路MODEM提供标准的RS232接口,与单片机之间的连接需要MAX3233进行电平转换.56支持标准AT 指令集,具有拨号/ 自动应答功能.由于单片机不具有RTS ,CTS ,CD ,RI 等握手信号,也就不具有硬件流量控制功能。为了保证在通信过程中数据传送正确,且不丢失,本系统采用软件方法来握手。协议如SHP(1). 下位机发送数据步骤:(1) 发送“ADDT+电话号码+ENTER”命令-(2)建立连接,执行握手协(3)发送数据RS232/COM2PSTNMODEM下位机恒电量板PC/MODEMPC机图3 :MODEM通信原理图 2.7 其他(1)8051F020内置64K的FLASH存储器,可以固化程序代码。(2)ADC0的参考电压采用内部电压基准,控制寄存器的设置:REF0CN = 0x03。(3)数字滤波采用三点平滑currentValuem =(currentValuem-1+currentValuem+currentValuem+1)/3;(4)两个模拟输出量为:DAC0用于控制恒电量测量模块上标准电容充电电位;DAC1用于腐蚀电位补偿。3 监控软件功能及实现3.1基本功能(1)通信功能:一是由PC机和单片机系统的串口通信;二是由PC机通过串口连接Modem实现远程控制单片机,数据由单片机通过Modem实现远程上传PC机,能正确实现拨号和挂断。(2)数据分析功能:采样测得完整的恒电量极化充放电电位曲线,根据电位时间变化方程式E(t)=q Rp/(RpCd-Rs Co)exp(-t/ RpCd -exp(-t/ Rs Co) 给出腐蚀动力学参数Rp、Cd。其中以上方程式是根据等效电路模型列拉普拉斯变换等式,求出E(S)再做逆变换得到.(3)数据显示: 采用电子表格的形式来显示数据。3.2所用软件以Windows系统为工作平台,用Visual C+实现软件的主体,用Visual C+和Matlab混合编程实现数据分析功能。Visual C+是进行数字图像处理编程的主要工具,有集成化的开发环境、友好的界面、灵活的编程风格、编译速度快、执行速度快、易维护和升级等优点 ,搭建监控软件平台.而拟合和计算则利用MATLAB, Matlab 是Mathworks 公司推出的数学软件,包含大量高度集成的函数可供调用,命令语句功能十分强大.3.3功能实现最终要实现脱离MATLAB运行7, 采用的方法为将Matlab 程序翻译为C+源文件直接嵌入到VC程序中去, 主要拟合函数nonlinfit用MatLab编写, 使用了MatLab工具箱函数lsqcurvefit, 在MatLab中检验运行正常,然后用MatLab命令mcc t -L nonlinfit.m,将此m文件转化为VC可使用的.hpp和.cpp文件nonlinfit.hpp, nonlinfit.cpp.将这两个文件加入工程,并在nonlinfit.cpp中加入头文件“stdafx.h”.在调用这个函数的VC文件中,加入头文件“matlab.hpp”,就可以调用此拟合函数nonlinfit,并可直接使用MATLAB数学库函数.数据显示采用CgridCtrl控件来管理和显示。4 实验应用 图4 测量数据 对实验室多组模拟电解池做了大量的测验,以上为其中一组数据:模拟电解池:Rp=50.8, Cd=220F,自动档测量条件为:标准电容220F,极化电压13V,采样频率8000HZ 测量结果: Rp=51.2426
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论