版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2013年全国大学生电子设计竞赛XXXXXXXXXXXXX(X题)【XX组】2013年9月x日I摘 要 随着电子技术的迅猛发展,触摸设备越来越多的走进了我们的生活,本文介绍了用覆铜板做手写绘图板的基本原理。给出了微小电阻测量法,微小信号放大的方法,以及由于导线电路引起的电压误差的减小方法。以及用软件进行系统初始矫正的程序。本系统通过用高精度,低偏置电压的运放OPA2227,将覆铜板上微小的分压放大,在经过AD采集,由STM32进行处理和计算,从而得到覆铜板上任意一点的坐标,其精度在A区误差为3mm,在B区为5mm。并可实现画圆的功能。显示部分用LCD12864来显示,可以检测接触,显示坐标和象
2、限。在实际的系统中由于电压的不稳定性,和导线的影响,我们又引入了电阻补偿,软件矫正的方法。极大的减小了误差。关键词:STM32单片机 微小信号放大 AD转换 电压补偿 运放OPA2227U目 录1系统方案11.1 测量模块的论证与选择11.2 电源模块的论证与选择11.3 显示模块的论证与选择1 1.3 显示模块的论证与选择.12系统理论分析与计算12.1 坐标点测量方法的分析12.2 误差分析与矫正方法的计算12.3 低功耗设计方法的计算23电路与程序设计23.1电路的设计23.1.1系统总体框图23.1.2 电源子系统框图与电路原理图23.1.3 测量电路系统框图与电路原理图23.1.5
3、运放电路系统框图与电路原理图2 3.1.6 单片机最小系统框图与电路原理图.23.2程序的设计23.2.1程序功能描述与设计思路23.2.2程序流程图34测试方案与测试结果34.1测试方案34.2 测试结果及分析34.21测试结果(数据)34.2.2测试分析与结论4附录1:电路原理图5附录2:源程序6XXXXXXXX(X题)【XX组】1系统方案本系统主要由测量模块、电源模块,显示模块、单片机最小系统模块组成,下面分别论证这几个模块的选择。1.1 测量模块的论证与选择方案一:将覆铜板的一端看做地,则覆铜板内任意一点与端点存在电阻,将覆铜板接入电桥,通过判断每一点的电阻值大小,来确定每一点的相对位
4、置。其仿真如下(图1),当改变测量点的位置时,其电阻分压通过后级运放有明显变化。该方案优点如是功耗小,不用外界电源接入覆铜板。缺点是复杂,不宜调试调试。 图1 桥式电路仿真 方案二:通过分析覆铜板横向和纵向接入电路时,内部的等势面大致如图(横向图2,纵向图3)所示:利用此原理可测得覆铜板内任意一点的电位,进而判断其位置。 图2 图3虽然方电桥法功耗较低,调试较为复杂,也不易精确确定某个点的位置。相比之下,方案二思路简单,调试方便,配以低偏置电压运放和高精度A/D可以达到测量要求。综合以上二种方案,选择方案二。1.2 电源模块的论证与选择方案一:采用7805等稳压芯片,特点是电路简单,但难以满足
5、较大电流。方案二:12V到5V采用LM2576开关稳压芯片,电压稳定主要给单片机供电。 12V转3.5V(图5)为测量电路提供电源,要求有较大的输出电流,电压稳定性要高,因此用13005做的线性电源。由于高精度低偏置电压OPA2227需要+5v,-5v 供电,因此用TI公司的TPS60400做负压产生。综合以上二种方案,选择方案二。1.3 显示模块的论证与选择方案一:采用字符型LCD1602液晶显示器。微功耗、尺寸小,超薄轻巧,价格便宜,但显示信息量较少,仅限于字符,不能显示图形,难以满足设计需求。方案二:采用无字库LCD12864,12864是128*64点阵液晶模块,控制器为 KS0108
6、或兼容 ST7920 T6963C 。12864显示信息量大、字迹清晰、稳定,美观、视觉舒适低功耗,能够显示图形。系统选择方案二,可以用中文LCD2864液晶进行丰富的菜单显示,使整个控制系统更加人性化。1.3 单片机的论证与选择方案一:使用STC12c887,电路简单,运算速度低,内置AD位数低,难以满足要求。方案二:在整个电路中,电阻计算,坐标位置显示,和上电校验等复杂任务的处理都要依靠单片机来完成,所以采用一款我们熟炼,可靠,高运算性能的单片机,是保证我们完成整个任务的基石,在众多优秀芯片中STM系列较好,他们都采用高密度非易失性存储器技术制造。片上Flash允许程序存储器在系统可编程,
7、亦适于常规编程器,在单芯片上,拥有灵巧的32 位CPU 和在系统可编程Flash,在众多嵌入式控制应用系统中得到广泛应用,且价格相比同类产品非常便宜,具有很高的性价比功能强大、应用成熟,可以更好的完成任务。所以在系统我们采用我们常用的高性能微控制器STM32。2系统理论分析与计算2.1 坐标点测量方法的分析与计算 用分压法,分压即电阻串联分压,在电路中被测覆铜板将和已知电阻R1串联,R1的阻值为100欧,经测试,当电压为3.5V时,整个覆铜板的总压降约为1mv,经过高精度低偏置运算放大器OPA2227放大,其放大倍数为 R2/(R1+R1)* = 500则气压将为理论为500 mv,但是由于覆
8、铜板的电阻太小,加上后部导线的影响,其两端压降约为260mv。经过调整后的STM32内部AD可达16位完全可满足要。 确定坐标时分别两步,首先将覆铜板接入如图3电路,其等势面可确定,即电势从左到右依次减小,理想情况下,在一定范围内,从上到下可近似认为相等。经实际测量确实符合这一规律。则取铜板内一点,测其点位就可以确定点的横坐标。第二,再通过控制电路继电器控制电路将电极转变(如图4),理想情况下,在一定范围内横向上可以认为电势近似相等,从上到下依次递减。再测这一点的电位便可确定其纵坐标。以上分析均在理想情况下进行的,实际测量时可能存在误差,需要矫正与调整。 根据理论计算结果,测量电路的总电流约为
9、350mA,而覆铜板的压降放大500 倍后约为260mv,铜板的电阻为V/500/350= 0.0014欧,横向时每10mm的距离压降为35mv经16位AD采样完全可以满足3mm的精度。2.2 误差分析与矫正方法分析与计算 在实际测量时,发现系统主要存在三方面的误差。 第一,由于覆铜板两端点的导线长度不可能完全相等,而且还要加入继电器转换电路,致使覆铜板两端的电位存在误差。解决办法是在电位较低的一段前加入电阻补偿,使其产生压降,这样既可调节使两端点位相同。本系统采用加入康铜丝的方法。 第二,由于铜板内部的铜分布不均,导致内部等势面变形,在铜板的边缘部分这种变形尤为明显,在靠近中心的部分,这种现
10、象不显著。因此需要实际的测量一些数据,当检测边缘地带时进行软件的补偿。 第三,由于电源随机性,上电时的输出电压不那么稳,导致每次测量时同一点的电位有差别,虽然只是几个毫伏,但经过运放的处理,误差非常明显,但是任意两点间的差值比较稳定。解决办法为在测量前加入矫正环节,具体是先测量一组数据存入单片机,当上电时检测指定点的电压,在与单片机内存储的数据进行比对,从而确定差值,再在以后每一个数据上加上或者减去这一差值既可得到较为准确的数据。 2.3 低功耗设计的分析与计算 本系统的采用电阻分压的方法进行测量。从理论上分析,若想要得到较为大的分压值就需要较大的电流,但这样又增加了系统的功耗。进行多级放大可
11、以解决之一问题,即在较小的电流下得到较小的压差,在经过第二级的放大。是这一差别更加显著,从而提高了精度,降低了功耗。 系统功耗的计算:W = U*I,其中U为加在系统上的总电压,I为流过系统的总电流,I = I1 +I2,I1为单片机部分消耗的电流,大约为200mA,I2为测量电路消耗的电流,大约为300mA,这样系统的总功耗约为5W。3电路与程序设计3.1电路的设计3.1.1系统总体框图系统总体框图如图4所示图4 系统总体框图3.1.2 电源模块子系统框图与电路原理图1、12V到5V电路原理图 采用LM2576开关稳压芯片,电压稳定主要给单片机供电。 图5 12V到5V子系统电路2、12V转
12、3.5V子系统电路 12V转3.5V(图5)为测量电路提供电源,要求有较大的输出电流,电压稳定性要高,因此用13005做的线性电源。 图5 12V转3.5V子系统电路2、5V到-5,+5V子系统框图与电路原理图由于高精度低偏置电压OPA2227需要+5v,-5v 供电,因此用TI公司的TPS60400做负压产生,如右图。:3.1 3测量电路子系统框图与电路原理图 测量电路专门为检测覆铜板电位而设计,由于覆铜板的整体电阻很小,必须在测量回路中加以较大的电流才会得到明显的电压输出,选用3.5V与10欧电阻串联,在满足精度的前提下尽量降低功耗。由于确定覆铜板内某一点位置时要变换覆铜板两侧电极,就需要
13、一组继电器电路来控制转换。3.14 运放电路子系统框图与电路原理图测量电路中,覆铜板的整体压降仅为1mv左右,为了提高精度,必须采用高精度,低偏置运算放大器,本系统采用的是OPA2227,原理图如右图所示。3.15 单片机最小系统子系统框图与电路原理图STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品
14、用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、增强型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理
15、念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能,瞄准超低成本预算的应用。该系列微控制器缩短了采用 8 位和 16 位微控制器的设备与采用 32 位微控制器的设备之间的性能差距,能够在经济型用户终端产品上实现先进且复杂的功能。系统采用STM32F103C3。3.2程序的设计3.2.1程序功能描述与设计思路单片机上电进行初始化,由于要减小误差,必须进行初始系统的矫正,程序有自动监测矫正成功与否的设置。若不成功就继续进行矫正,若成功则马上采集X
16、轴的数据,采集完毕,用单片机控制测量电路的转换,进行Y轴的测量与转化。当以上两步完毕后,启动液晶显示程序,显示坐标,象限等相关数据。一个周期的采集完毕后,系统进入等待状态,等待下一次的测量。3.2.2程序流程图1、主程序流程图4测试方案与测试结果4.1测试方案 首先检查利用仿真软件进行功能仿真,从理论上进行分析计算,用MATLAB对覆铜板的电位分布进行绘图,确保方案的可行性,有了理论 的保障,才能进行实际操作与测量。1.首先用理想的电源,在理想的状态下进行测试,测出横纵坐标的电压值。2.接入实际的电路进行测量,把测量的数据与理想状态下进行比对,查找出误差的原因, 进一步采取措施减小误差。 3.
17、将硬件误差调至最低,为进一步提高精度进行软件补偿。 4.2 测试结果及分析4.2.1测试结果(数据)测试方法:在X轴-6到6,Y轴-4到4之间实际测量,没5MM一个刻度起家而过如下表。 表1 X轴:R=10,U=3.5(室温下)坐标6 543210-1- 2 -3-4 -5-6U/mv800784678748727708688666646627610 592577在横向通电下,列的电压值大致相同。 表2 Y轴:R =10,U =3.5(室温下)坐标6543210-1-2-3-4-5-6电位差1371048065544949547292122164190在纵向通电下,每一列存在压差且近似均匀分布
18、 表3 Y轴:Y = 0,X=6到-6 R=10,U=3.5(室温下)坐标6 543210-1- 2 -3-4 -5-6U/mv6056056605603603601600599597596595 594593由上表可知,在横向通电时可确定某一列,在纵向通电时科确定哪一行,进而确定点的坐标。另外MATLAB做出其数学模型(图9,图10) 图9 Y轴模型 图10 Y轴模型 4.3.2测试分析与结论根据上述测试数据,可以得出以下结论:1. 通过实际使用测试,和对测量数据的分析,横向每10mm的电压差为10-20mv,在A区电压差大,两侧小。2. 纵向每10mm有5到10mv 的变化,在A区压差下,
19、边缘压差大。3. 通过16位AD采样可以完成5mm到3mm的误差范围,并能准确显示象限,又有画圆的功能。4. 综上所述,本设计达到基本要求,两项发挥要求。4.4 总结 仪器类的作品往往各方面都具有严格的要求,尤其是精确度这方面,所以高精度是我们在设计整个电路时的基本原则,所以在作品在最终测试时,确实在这一块发挥很好,达到我们预计结果。我们在完成题目基本要求的同时,还对功能做了扩展,做了良好的人机交互界面,使其更具实用性。 能够完成整个作品的制作与我们丰富的理论知识与优秀的动手能力和有好的合作是分不开的,我想我们已经准备好迎接更多更大挑战。 参考文献:信号与系统,沈元隆 周井全编,北京:人民邮电
20、出版社,2007年;C程序设计,谭浩强著,北京:清华大学,2005年;电子技术基础-模拟部分,康华光编,北京:高等教育出版社,2006年;电子技术基础-数字部分,康华光编,北京:高等教育出版社,2006年;单片机原理及应用,李建忠著,西安:西安电子科技大学,2002 年;晶体管电路设计,铃木雅臣著,北京:科学出版社,2006年;15附录1:电路原理图(部分)附录2:源程序(部分) 文件名称: 电子设计大赛 手写绘图* 开发应用芯片;STM32F103ZET6* 开发平台: KEIL 4.12* 日期: 2013095*/#include "stm32f10x.h"#incl
21、ude "1602.h"#include "12864.h"#include "delay.h"#include "sys.h"#include "wrup.h"#include <math.h>const u8 num10=0,1,2,3,4,5,6,7,8,9;/ 数字显示代码u8 dis6;u16 ad;u32 tempu32 = 0;u8 gototime = 0;u8 time = 0;float pianyi_X,pianyi_Y;float caiyang1;float
22、 caiyang2;float caiyang3;float caiyang4;u8 jdq1_flag=0;/继电器1允许标志位u8 jdq2_flag=0;/继电器2允许标志位typedef enum FAILED = 0, PASSED = !FAILED areaStatus;/typedef enum one,two,three,four quatationStatus;typedef struct u16 xval; /X轴电压 u16 yval; /y轴电压 float xvalue; /x 坐标值 float yvalue; /y 坐标值 areaStatus x_xiansh
23、i; /x符号 areaStatus y_xianshi; /y符号 XYAttitude;XYAttitude Attiude;#define jdq1_1 GPIOA->BSRR = GPIO_Pin_5 #define jdq1_0 GPIOA->BRR = GPIO_Pin_5/A5#define jdq2_1 GPIOA->BSRR = GPIO_Pin_6/A6#define jdq2_0 GPIOA->BRR = GPIO_Pin_6void RCC_Configuration(void);void NVIC_Configuration(void);voi
24、d Delay(_IO uint32_t nCount);void GPIO_Configuration(void);void dis_x(u16 x_v);void dis_y(u16 y_v);/u16 GetVolt(u16 advalue) / / return (u16)(advalue * 330 / 4096); /求的结果扩大了100倍,方便下面求出小数/ /*求平均值函数*/void filter(void)/ int sum = 0;/u8 count;/u8 i; / for(i=0;i<3;i+)/ / for ( count=0;count<N;count
25、+)/ / sum += AD_Valuecounti;/ / After_filteri=sum/N;/ sum=0;/ / void disp_v(float valye) u8 s; u16 adcx; u16 t; adcx=valye; valye-=adcx; t=10000*valye; dis0=adcx/10+0x30; dis1=adcx%10+0x30; dis2='.' dis3=t/1000+0x30; dis4=t%1000/100+0x30; dis5=t%1000%100/10+0x30; LCD_Write(LCD_Write_Con_Cmd,
26、 0x93); for(s=0;s<6;s+) LCD_Write(LCD_Write_Dis_Data, diss); int get_mv(float mv) u16 adcx; u16 t; adcx=mv; mv-=adcx; t=10000*mv; return(t/1000)*100+(t%1000/100)*10+(t%1000%100/10);void display_location(float mv,areaStatus flag) /显示X坐标 u16 adcx; u16 t; u8 s; u8 dis5; adcx=mv; mv-=adcx; t=10000*mv
27、; dis1=adcx%10+0x30; dis2='.' dis3=t/1000+0x30; dis4=t%1000/100+0x30; if(flag=FAILED) dis0='-' else dis0='+' LCD_Write(LCD_Write_Con_Cmd, 0x9b); for(s=0;s<5;s+) LCD_Write(LCD_Write_Dis_Data, diss); void display_loca(float mv,areaStatus flag) /显示y坐标 u16 adcx; u16 t; u8 s; u
28、8 dis5; adcx=mv; mv-=adcx; t=10000*mv; dis1=adcx%10+0x30; dis2='.' dis3=t/1000+0x30; dis4=t%1000/100+0x30; if(flag=FAILED) dis0='-' else dis0='+' LCD_Write(LCD_Write_Con_Cmd, 0x9d); for(s=0;s<5;s+) LCD_Write(LCD_Write_Dis_Data, diss); int caiyang(void) u16 i; for(i = 0;i &
29、lt; 256;i+) /根据过采样技术,每提高一位AD分辨率,需要增加4倍的采样率;从12位AD分辨率增加到16位AD分辨率,即增加4位,所以需要增加256倍的采样率 gototime = 0; TIM_Cmd(TIM2, ENABLE); /开启时钟 ADC_SoftwareStartConvCmd(ADC1, ENABLE); /软件启动ADC转换 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ); /等待转换结束 ad = 0;ad = ADC_GetConversionValue(ADC1); /读取ADC值 tempu32 += ad; /累加 while(gototime = 0); /延时:390.5us。采样率:10/秒 TIM_Cmd(TIM2, DISABLE); /关闭时钟 ad = tempu32 >> 8; /16位分辨率,累加值右移4位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网合作协议争议仲裁语言
- 传染病护理中的护理管理总论
- 临沂共享经济行业劳动合同范本
- 《橙病虫害防治技术》课程标准
- 临时工劳动合同法律咨询
- 临时救援租车协议书范本
- PE项目管理创新工具
- 交通枢纽监控管理实施细则
- 交通运输行业飞行员薪资协议
- 个人借款协议书格式样本
- 朝鲜半岛局势演变
- 自然科学基金项目申请书
- 第四届全国新能源汽车关键技术技能大赛(新能源汽车轻量化技术方向)决赛参考试题库(含答案)
- 2024年秋新鲁科版三年级上册英语课件 Unit 6 lesson 1
- 教师资格考试小学数学面试试题与参考答案
- 2024-2025学年深圳市九年级上册期中考试模拟试卷历史试卷
- 人教版英语2024七年级上册全册单元测试卷
- 人教版2024年中考地理模拟试卷及答案(含三套题)
- 沪教版2024九年级上册化学各章节必背知识点复习提纲
- 加油加气站 反恐防范重点目标档案 范例2024
- 2024年冬奥会知识竞赛题库及答案(共139题)
评论
0/150
提交评论