




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字式电参数测试仪的设计报告摘要根据设计任务与要求,该设计的控制部分以STM32f103RBT6单片机为主控芯片,利用其单片机内部自带的12AD模/数转化器读取外部输入的电压值,经最小二乘法处理后,可以使所测的电压值满足设计的要求。因为经处理后可以得到比较精确的电压值,因此可以将电阻的测量以及电流的测量转换为对电压的测量,然后通过数学公式求出电阻值和电压值。对于电阻的转换,可以采用串联分压的原理进行转换,同时为了精确度,可以根据所测电阻范围的变化用继电器选择不同的分压阻值,从而提高精确度。对于电流的测量,可以通过测精度已知电阻两端的电压值的方法,根据欧姆定律求得电流值。对于频率的测量,由于题目所给的方波的峰值为1V,因此需要通过一个比较器358放大输入方波的峰值,便于单片机的检测,由于单片机内部时钟可以倍频到72MHz,所以经过比较器后的输入信号可以被单片机所采集并测出频率。对于功率的测量,由于已经测出电阻两端的电压值,所以根据功率计算公式P=U*U/R得到功率值。关键词:STM32f103RBT6,12位AD转换器,模拟开关,目录1 系统方案1.1控制芯片的选择与比较方案一:STM32单片机STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。 STM32f103RBT6有DMA,2个12为ADC(16通道),4个16位定时器,51个可用IO口。STM32芯片用3.3V供电。STM32f103RBT6的这些配置安全可以满足该系统的需求。这些配置无论到哪里都是很不错的,更重要的是其价格较低,为18元左右的零售价。也是市场上32位单片机的主流。方案二:STC12C5A60S2单片机STC单片机是51单片机的一种,内部自带8通道的10位ADC,3个16位定时器/计数器,32个可用IO口。以5V电压供电。拥有灵巧的8位CPU,并且价格低廉。由于该系统用于测量电参数,对于各个量的测量精度都有很高的要求,并且题目中要求刷新周期为2S,因此需要AD转换周期短,而STM32单片机在这方面比STC单片机更合适。而这些参数的关键就是所测电压值的精确性,因此我们选择拥有多通道的12位ADC的STM32单片机1.2测电阻方案的选择与比较:方案一:串联分压原理 V Rx R0 图1串联电路原理图根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。通过测量Rx和R0上的电压。由公式 Rx=V*R0/Ux - R0 方案二:利用直流电桥平衡原理的方案 图2 电桥(其中R1,R2,为可变电位器,R3为已知电阻,R4为被测电阻)根据电路平衡原理,不断调节电位器,使得电表指针指向正中间。由R1*R4=R3*R4.在通过测量电位器电阻值,可得到R4的值。方案三:利用555构成单稳态的方案 图3 555定时器构成单稳态 根据555定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电阻阻值。由f=1/ (R1+2R2)*C*In2得到公式: R2=1/2*1/ (f*c*Ln2)-R1上述三种方案从对测量精度要求而言,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比较而言,方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。而方案一的原理简单,操作简单,成本低廉,而且由于12位的ADC可以在很大程度上弥补方案一精度低的缺陷。故本设计选择了方案一,并且通过模拟开关的转换来改变已知电阻值的大小,以满足整个范围内测电阻的精度要求。1.3测量电流值的方案的选择与比较方案一:霍尔传感器测电流法霍尔传感器由于通电螺线管内部存在磁场,其大小与导线中的电流成正比,故可以利用霍尔传感器测量出磁场,从而确定导线中电流的大小。利用这一原理可以设计制成霍尔电流传感器。方案二:转换电压测电流法通过一个高精度、小阻值的电阻直接串联进电路对电流进行采样,将电流转换为电压进行测量。再由欧姆定理进行转换。上述两个方案相比较,方案一其优点是不与被测电路发生电接触,不影响被测电路,不消耗被测电源的功率。但是霍尔传感器比较适合大电流的测量,而对于题目中所给的小电流的测量在精度上将有所下降,且不易测量。方案二电路简单,容易实现,且成本相对于方案一大大减小。虽然方案二精度比方案一差,但是主控芯片内置的12位A/D很大程度上解决了这个问题,故本设计选用了方案二。1.4测量电压值的方案本设计采用了分压法测电压。分压法具有电路简单,操作方便的特点。1.5信号放大方案的选择与比较方案一:运用模拟电路知识,运用三极管或莫斯管搭建放大电路。方案二:采用集成放大芯片对信号进行放大。方案一相对于方案二更节约成本,但是电路太过复杂,且稳定性不好。所以本设计采用方案二对信号进行放大。选用的是ad620集成运放芯片。这款芯片的特点是低功耗,工作电压低,只需要5V就可以正常工作。2 理论分析与设计2.1 频率测量的精确度分析STM32f103RBT6内部可以将8MHz的外部时钟倍频到72MHz,这个高频时钟信号可以提高频率测量的精确度。本设计通过三极管将50MV交流电信号放大到4V左右,然后再通过三极管将其变为3.3V的方波,让STM32可以捕捉到。2.2 电压值的测量分析由于单片机的AD的基准源为3.3V,因此要对电压的测量进行分段处理,当电压小于3V时,由单片机直接测量。当电压在3V到10V时,先通过外部分压电路,采得十分之一的待测电压,然后由单片机测量,所得值再有程序内部处理得到待测电压。2.3 电流的测量分析采样电阻选值为86,待测电流范围为100A10mA,即所采得电压理想值范围为8.6mv860mv,实际电压值略有偏差。由于所用内置A/D为12位A/D,基本可以满足8.6mv860mvd的电压范围,所以把所采得的电压直接交由单片机测量处理。2.4 电阻的测量分析电阻的测量整体上采用串联分压原理进行测量,但是如果只是采用一个固定的已知电阻值来测量电阻值,当所测电阻值与已知电阻值之间的差值太大时就会严重影响测量精度,因此需要对题目要求的电阻值测量范围进行分段测量,通过大量的实验后决定采用四个不同的已知电阻值作为分压电阻,其阻值分别为100,1K,10K,100K。各个分压电阻之间用三个继电器进行控制,根据测量的不同进行自动换挡。经测试发现,所测电阻值满足发挥部分的要求2.5功率的测量分析以电流测量模式和电压测量模式同时工作,将所测得的电压和电流值,利用P=U*I,间接的到所测器件在实际工作电路中的功率。3 电路与程序设计1. 各模块电路 1.1电源模块本设计需要3.3V、5V三种电压。其中3.3V主要给主控模块供电,5V主要作为继电器、LED的驱动电源,-5V主要与+5V为集成运算放大器提供工作电压。整个设计以两节3.7V大功率干电池供电。由于两节电池输出为7.4V电压,所以设计中先用7805稳压器得到5V电压,再由lm1117-3.3稳压器的到3.3V电压。而-5V我们选用了超电压转换器7660s来得到。该芯片具有价格低,功耗低,电路简单的特点。+3.3V电压+5V电压-5V电压1.2电流检测电路1.3电压检测电路 1.4电阻检测模块1.5频率检测模块1.6显示模块1.7主控模块2主要程序#include #include delay.h#include sys.h#include N5110.h#include ADC1.h#include Frequency.hu16 g_Wave_Count = 0;double r = 0;void JiDian_RCC_Configuration(void);void JiDian_GPIO_Configuration ( void);void Measure_R(void);void Measure_V(void);#define PC13 PCout(13) #define PC1 PCout(1) #define PC3 PCout(3) #define PC0_VPCout(0) /电压换挡#define LED0 PCout(9)#define LED1 PCout(7)#define LED2 PBout(15)#define LED3 PBout(13)int Va = 0,Va1 = 0;int main()double a = 0.0;Stm32_Clock_Init(9);delay_init(72);N5110_RCC_Configuration();N5110_Init ();/测频初始化RCC_Configuration ( ); /时钟初始化 GPIO_Configuration ( ); /端口初始化 NVIC_Configuration ( ); /中断配置初始化 TIM1ERT_Configuration ( ); /TIM1初始化 TIM2_Configuration ( ); /TIM2初始化/ADC初始化:ADC1_RCC_Configuration();ADC1_GPIO_Configuration();ADC1_Configuration();DMA_RCC_Configuration();DMA_ADC1_Configuration();/继电器初始化JiDian_RCC_Configuration();JiDian_GPIO_Configuration ();PC13 = 0; /初始化以100为基准PC1 = 0;PC3 = 0;PC0_V = 0;while (1)N5110_Write_Litter_Str (Fre :,0,0,1);N5110_Print_Int (g_Wave_Count*2,Hz,0,0,0);/测电流a = Get_Volatge(3) /( 86.0*4.5*(1+0.0507315);N5110_Write_Litter_Str (A :,1,0,1);/显示Volatge:N5110_Print_Double (a, mA,0,0,0);/测电压Measure_V();/测电阻Measure_R();/测功率N5110_Write_Litter_Str (P :,4,0,1);/显示Volatge:N5110_Print_Double (a*Va1/1000.0, mW,0,0,0);/显示采集电压/*/函数名称:void TIM1_CC_IRQHandler(void)/功能:定时器1比较匹配中断/参数:无/ 返回值:无/*void TIM1_CC_IRQHandler(void)if(TIM_GetITStatus(TIM1,TIM_IT_CC1)!= RESET) /判断是否为定时器1比较匹配中断TIM_ClearITPendingBit(TIM1, TIM_FLAG_CC1); /清除TIM1的待处理位TIM_ClearFlag(TIM1, TIM_FLAG_CC1); /清除TIM1的待处理标志位 /*/函数名称:void TIM2_IRQHandler (void)/功能:定时器2溢出中断,每1ms溢出一次/参数:无/ 返回值:无/*void TIM2_IRQHandler (void) static u16 Count = 0; if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)/判断是否为定时器2溢出中断 Count+; if (Count = 500) Count = 0; /测试灯1s翻转一次g_Wave_Count = TIM_GetCounter(TIM1);TIM_SetCounter(TIM1,0); TIM_ClearITPendingBit(TIM2,TIM_IT_Update); /清除TIM2的待处理位 TIM_ClearFlag(TIM2,TIM_FLAG_Update); /清中断标记 void JiDian_RCC_Configuration(void)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);/使能GPIOA,ADC1时钟void JiDian_GPIO_Configuration ( void)GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_3|GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_9|GPIO_Pin_7;/选中0,2,3,4管脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /管脚工作状态为模拟输入 GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15|GPIO_Pin_13;/选中0,2,3,4管脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /管脚工作状态为模拟输入 GPIO_Init(GPIOB, &GPIO_InitStructure); void Measure_R(void) /测电阻换挡if (PC13 = 0) & (PC1 = 0) & (PC3 = 0) /以100为已知电阻r = 3.3*101.15*1000/Get_Volatge(1) - 101.15;N5110_Write_Litter_Str (R:,3,0,1);/显示Volatge:N5110_Print_Double (r, ,0,0,0);/显示采集电压if (r = 800) & (r = 8000)& (r = 80000) /转到100kPC13 = 1;delay_ms(100);PC3 = 1;delay_ms(100);PC1 = 0;delay_ms(100);LED0 = 1; LED1 = 0;LED2 = 0; LED3 = 0;if (PC13 = 0)&(PC1 = 1) & (PC3 = 0) /以1kr = 3.3*998.3*1000/Get_Volatge(1) - 998.3;N5110_Write_Litter_Str (R:,3,0,1);/显示Volatge:N5110_Print_Double (r, ,0,0,0);/显示采集电压if (r = 8000) & ( r = 80000) /转到100kPC13 = 1;delay_ms(100);PC3 = 1;delay_ms(100);PC1 = 0;delay_ms(100); LED0 = 0; LED1 = 1;LED2 = 0; LED3 = 0;if (PC13 = 1)&(PC3 = 0) & (PC1 = 0) /以10kr = 3.3*9.893*1000*1000/Get_Volatge(1) - 9.893*1000; N5110_Write_Litter_Str (R:,3,0,1);/显示Volatge:N5110_Print_Double (r, ,0,0,0);if (r = 800) & ( r = 80000) /转到100kPC13 = 1;delay_ms(100);PC3 = 1;delay_ms(100);PC1 = 0;delay_ms(100); LED0 = 0; LED1 = 0;LED2 = 1; LED3 = 0; if (PC13 = 1)&(PC3 = 1) & (PC1 = 0) /以100kr = 3.3*101.20*1000*1000/Get_Volatge(1) - 101.20*1000; N5110_Write_Litter_Str (R:,3,0,1);/显示Volatge:N5110_Print_Double (r, ,0,0,0);if (r = 800) & ( r = 8000) & ( r 80000)/转到10k PC13= 1;delay_ms(100);PC3 = 0;delay_ms(100);PC1 = 0;delay_ms(100);LED0 = 0; LED1 = 0;LED2 = 0; LED3 = 1; void Measure_V(void) /电压换挡Va = Get_Volatge(0);if (Va = 3000)PC0_V = 0;elsePC0_V = 1;elsePC0_V = 0;delay_ms(20);N5110_Write_Litter_Str (V :,2,0,1);/显示Volatge:Va1 = Get_Volatge(0)*10;N5110_Print_Int (Va1, mV,0,0,0);/显示采集电压delay_ms(20);if (Va1 300)PC0_V = 0;elsePC0_V = 1;4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年外贸业务岗位面试要点与模拟题答案详解
- 2025年共青团高校委员会招聘考试模拟试题及答案解析
- 预防乙脑知识培训课件
- 平均指标说课稿-2025-2026学年中职专业课-统计基础知识-纳税事务-财经商贸大类
- 预算执行审计课件
- 2025合法的家具厂劳动合同模板
- 13《胡萝卜先生的长胡子》教学设计-2024-2025学年三年级上册语文统编版
- 医德医风安全培训试题及答案解析
- 焦结炉工岗位操作技能考核试卷及答案
- 阴阳极制作工主管竞选考核试卷及答案
- 四川大学宣传介绍PPT
- 小学生元宵中秋猜谜语竞赛题目
- 《商业银行资本管理办法》附件13-账簿划分和名词解释
- 燃气轮机离心式压缩机组运行操作手册教学教材
- GB 7956.2-2014消防车第2部分:水罐消防车
- FZ/T 21001-2009自梳外毛毛条
- 二年级语文《称赞》练习题
- 2023年重庆市社区工作者考试试题
- 湘教版高中音乐(鉴赏)《黄河大合唱》课件
- 三字经全文带拼音打印版带翻译
- 山东省青岛市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
评论
0/150
提交评论