【《某扭矩扳手系统的硬件和软件设计案例》5000字】_第1页
【《某扭矩扳手系统的硬件和软件设计案例》5000字】_第2页
【《某扭矩扳手系统的硬件和软件设计案例》5000字】_第3页
【《某扭矩扳手系统的硬件和软件设计案例》5000字】_第4页
【《某扭矩扳手系统的硬件和软件设计案例》5000字】_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

某扭矩扳手系统的硬件和软件设计案例目录TOC\o"1-3"\h\u10761某扭矩扳手系统的硬件和软件设计案例 1224581 硬件电路设计 17151.1主控芯片电路 1239641.2传感器信号采集电路 440391.3液晶显示电路 4279971.4传感器电路 611641.5按键电路 8191021.6电源电路 9172091.7时钟电路 9286462系统软件程序设计 104062.1数模转换程序设计 10132592.2按键设计程序设计 1271812.3LCD显示程序设计 131 硬件电路设计扭矩扳手硬件电路设计需要符合使用要求和设计标准,由于采用纽扣电池作为硬件电路的能量源,因此主要注重节约电源,进行降低功耗设计。因此硬件电路设计主要包括:主控芯片、电源电路、信号采集电路等,蜂鸣器发送信号并且进行报警提示,在力矩的检测上所使用的是应力片。主控芯片电路主控芯片的作用是处理运行设计好的运算程序,负责处理数据、组织逻辑等运算,有很多优点,主要有价格低廉、功耗低等优点。电源电路电源电路为整个电路硬件供电,由于各个模块存在电压差异,因此在不同的地点需要设计电压转换电路,将电压转换为适合的值,由于电池供电过程中,电池的电压波动较大,需要设计滤波电路和稳压芯片,才能实现稳定给硬件电路供电,本次设计采用高精度直流稳压电路,为数模转换电路提供5V电压,再通过电压转换模块将5V电压转化为1.3V,为硬件电路提供稳定的电源。信号采集电路信号采集电路主要采集扭矩信号,将模拟量型号转换为数字量信号,传入主控芯片进行处理和显示,达到实时显示的效果。传感器选择力矩扳手传感器是通过受力变形程度表征所施加的扭矩的大小,应变式传感器主要是由应变片和弹性体组成的电路,应变片通过树脂粘贴在弹性元件的表面。1.1主控芯片电路STM32F103C8T6单片机,采用的是ARM内核,外围引脚功能繁多、性能优异,数据处理能力强大,它的微控制器是32位的,符合实验技术的条件。数据工作频率控制在6到72mhz,数据处理速度快。STM32既能够轻松进行一个周期内的乘法操作,同时也能进行硬件方面的除法操作。STM32的FLASH有64KB,读写速度快。其丰富的GPIO接口能够允许接入多个外接设备除此之外,成本低廉,满足系统设计的相关要求。综上所述,STM32是该实时监测系统的处理芯片的最优秀的选择。本设计需要实现的功能较为复杂,需要较多的接口,所以从这方面考虑,最终选择方案四的STM32芯片作为控制核心。扭矩扳手主控芯片要求处理速度快、功耗低,所以选择STM32F407ZGT6作为芯片是,STM32F407的配置非常强大的了,该芯片的架构如下图所示,主要由应用程序代码、实时内核、中间件、内核外函数、中间件函数、器件级外设函数、实时内核定时器、嵌套向量中断控制器、跟踪接口等组成。基于ARMCORTEXM3核心的STM32系列微控制器为构建大量嵌入式系统提供了基础。从简单的电池供电软件狗到复杂的实时系统,该组件系列包括几十种不同的配置,可为本文数字扳手设计在内存大小、可用外围设备、性能和电源方面提供了广泛的选择。这些部件足够便宜少量的——最简单的设备只需几美元——来证明它们可用于大多数低容量应用。低端的“价值线”组件在成本上与用于流行的Arduino开发板,同样提供可更高的性能和更强大的外围设备。此外,所使用的外围设备是在系列化板件之间共享(例如,USART模块是所有STM32F1组件通用),并由单个固件支持图书馆。因此,学习如何为STM32F1系列的一个成员编程就可以为所有成员编程。不幸的是,功能和灵活性是以软件为代价的对于拥有大量文档和软件库的新手来说,STM32系列的开发是一项极具挑战性的任务通过。为了许多简单的系统这提供了一个快速的原型路径,然而,简单性也有其自身的成本——STM32软件平台并不适合于管理复杂实时系统中的并发活动以及与外部设备交互的软件依赖于开发的库在STM32编程模型之外使用类似的工具和技术STM32所需的。此外,STM32平台没有提供调试能力,这严重限制了更多复杂系统。同样,调试需要突破STM32平台。最后,STM32环境不支持实时操作系统(RTOS),在构建更多复杂的嵌入式系统。STM32F103C8T6单片机核心芯片的引脚图如图3-1所示。图3-1STM32单片机引脚图这个电子系统的原理图,包括电源转换器、上拉电阻、单片机最小系统等组成,电路板内部原理图如3-2图所示。图3-2单片机核心板内部原理图单片机的实物图如图3-3所示。图3-3STM32单片机核心电路板实物图1.2传感器信号采集电路信号采集电路,采集传感器的模拟量信号,通过数模转换电路转换为数字信号,然后将数字信号传入主控制器的逻辑程序。扭矩采集电路由滤波电路、应变片测量电路、电路信号采集放大电路、数字量和模拟量转换电路组成,一般将应变片粘贴在形变的结构上,当使用时,测量的电压施加在电桥两端,输出毫伏级电压信号,经过放大电路、本次设计通过选取PA5来读取外部电压的值。图3-4数模转换电路模块1.3液晶显示电路数字化显示扳手人机交互主要包括液晶显示电路,我们考虑的LCD模块采用ST1602R控制器。1602LCD是一个像素可寻址显示器,每一个像素需要多个字节来定义颜色-内部显示内存使用18位/像素(红、蓝、绿各6位)。我们将使用这个显示器在16位模式下,5位表示红色,6位表示绿色,5位表示绿色定义蓝色。显示控制器从16位自动推断当像素写入显示器时为18位。布局分开16位字中的颜色,以及由各种16位常量产生的颜色。可了解1602LCD所需的接口,有三个主要组成部分需要考虑控制器、LCD面板和显示RAM。显示ram包含面板中每个(128x160)像素的18位颜色信息。图3-5数字显示电路模块显示RAM中的数据连续传输至面板-将设备配置为从下到上扫描。写作模式像素(颜色)数据有些间接。首先,使用一个单独的“控制”界面,配置一个绘图矩形。然后,生成像素(颜色)数据写的。数据写入的位置由一对确定内部地址计数器RAC(行地址计数器)和CAC(列地址计数器地址计数器)。每个连续的像素写入都会导致这些地址计数器待更新。1602可以配置为“扫描”这个矩形任何左/右上/下顺序。有三个内部控制位(它们我们将在后面描述的接口中公开。除了扫除顺序,可以“交换”行和列的地址,从而支持“横向”模式。默认情况下,我们使用模式0x6(MY=1,MX=1,MV)=0)。这些在ST1602数据手册中有完整的描述,我的行地址顺序:1(从下到上)、0(从上到下)MX列地址顺序:1(从右到左)、0(从左到右)MV列/行交换:1(横向模式),0(纵向模式)如前所述,我们将面板配置为接受16位颜色,因此,每次数据写入都由SPI接口发送的一对字节组成。这些16位颜色数据通过内部查找表;实际显示ram像素为18位。图3-6LCD1602引脚功能1602有一个单独的控制信号来区分“控制”信息和“数据”,控制信息(将在后面讨论)用于配置显示和设置当前绘图矩形。这种方法的优点是,一旦配置了绘图矩形,数据可以在没有任何附加控制信息的情况下突发发送。1602LCD的一个简单的“驱动程序”只需要三个例程—一个要初始化控制器,一个设置绘图矩形,一个写入将数据颜色设置为当前矩形。请注意,此接口设置图形设置矩形时的方向(如上所述,madctl值0x6对应于绘图矩形的自上而下/左右扫描。madctl值0x02对应于自底向上/左右扫描,并且用于显示以自下而上方式存储数据的BMP图像文件命令。可以添加一个单独的例程来控制背光的亮度——目前我们将其实现为开/关。稍后,在第10章中,我们将展示如何用PWM信号控制亮度。如图3-7所示。图3-7显示模块电路原理图1.4传感器电路扭矩扳手的测量扭矩采用的原理一般有转角式和应变式,转角式的原理是采用物体的形变量大小来表征使用者施加力的大小,应变式是通过应变片在使用者使用时的电阻率发生的变化情况来表征使用者施加的力的值的大小。应变式扭矩板手的扭矩采集电路由应变片、弹性体和电阻丝等组成,当使用者使用时,电阻丝的阻值会发生变化,因此可以计算出使用者施加的力的大小。电阻应变效应假设一种材料的金属丝导线,直径为D,长度为L,电阻率为,则有初始电阻值为:式(3-1)其中S为导线的截面积,为导体的电阻率值。当收到轴向施加的拉力F后,金属导线会变长,相应的横截面积会变小,电阻的变化量用微分形式表示为:式(3-2)经变换后有:式(3-3)式中R为电阻值,K为金属的灵敏度系数,为轴向应变。转换电路扭矩作用使得应变材料的电阻率发生变化,为了测量其变化值,需要对测量的电路进行设计,本文采用常见的电桥电路作为电路转化形式,根据电路中应变片的个数,电桥电路可分为双臂电桥电路、单臂电桥电路和全桥电路,其中全桥电路具有对称的电路结构,所以可以补偿很多误差,因此测量的精度和灵敏度高。全桥电路由四个电阻组成,分别为R1、R2、R3、R4相连组成,当接入电压时,输出电压的值为:式(3-4)假设输出电压为零,则可以得出:式(3-5)外力作用时,有:式(3-6)假设四个电阻的值一样,都为R,则有:式(3-7)可得:式(3-8)式中,E为材料的弹性模量值。可以看出电桥的输出的电压和施加的扭矩之间成正比关系,因此可以通过测量电桥的输出电压来表征施加的扭矩值。本设计选用广州兰海电测科技有限公司生产的CZL302高端应变片,它能将作用力转换成相关电信号。它通过测量力传感元件的位移或应变来工作,本文中主要用的是弯曲。该型号系列力传感器产品广泛应用于各种设备和系统中,如交通、机器人、制造业和医疗技术。它采用微机电系统(MEMS)技术制造,具有以下特点功能材料种类有限的缺点,除了易碎和昂贵。它是运用3D打印技术制造的,也称为附加制造,是一种新兴的传感器制造技术,具有经济、省时、几何复杂、功能复杂等优点。图3-8应变片传感器原理图1.5按键电路本设计中按键电路有一个按键,它的作用是工人可以让工人设置力矩值,按键电路就是就是可复位开关电路,为了确保按键信号能够稳定输出,所以在电路中加了一个上拉电阻。按键电路原理图如图3-9所示。图3-9按键电路原理图本设计在使用时扳手收到的力矩值达到设置的力矩值时,安装的指示灯就会闪烁。本设计采用了红色LED灯作为指示灯,红色的指示灯较为显眼。当接收到单片机输出的低电平时,灯就会亮起。其电路原理图如图3-10所示。图3-10LED指示灯电路原理图1.6电源电路单片机正常工作的前提是电源稳定,在目前,这三种电源通常采用稳压电源、USB96电源,J-LINK或ST-LINK电源。稳压电源可灵活选择输出电压,对不同应用的电压要求有较好的适应性。这三种供电方式一般采用跳线方式选择。电源电压通过DC-DC转换芯片转换为芯片所需的电压。DC-DC芯片使用ASM1117-1.3三端调节器芯片,该芯片使用低压差稳压管,使输出直流电压更稳定,保护电路。图3-11电源电路原理图1.7时钟电路使用的时钟芯片是DS1302芯片,DS1302封装和皮诺设计在芯片中八针封装,引脚RST引脚在低电平复位,高电平工作正常。低的含义级可以理解为不计数和不工作。SCLK引脚表示串行时钟122针。时钟模块与MCU之间的引脚连接为:连接MCU的21号引脚到时钟芯片上的7号,MCU的22号引脚连接到时钟芯片上的6号,单片机的25号脚连接到时钟芯片的5号脚。系统原理图时钟模块如图3-12所示。图3-12时钟模块原理图2系统软件程序设计本设计采用的开发软件是KeilMDKv4,环境监测系统的设计基于单芯片微计算机。在微计算机子系统辅助程序的设计和开发中,使用芯片的开发语言包含很多种类。我的程序是用C语言写的,模块构造性好,数据类型多样,代码还是易于调用和执行。而且该语言处理数据能力高,执行速度快这样可以很快找出错误。通过定义数据类型控制硬件,提高系统的稳定性,从而保证程序的执行质量。基于STM32F407ZGT6作为芯片,设计软件,采用模块化设计程序的思想进行编程,主要有数模转换程序、LCD显示程序。系统软件设计的总体思路是,在各项元器件采集完数据后,最终将数据发送给STM32F103C8T6单片机系统,进行数据的处理,然后在集成串口屏上显示。图4-1程序主要流程2.1数模转换程序设计扭矩扳手的数模转换程序编写主要通过调用库函数来实现,使用的库函数主要分布在stm324xxadc.h和stm32f4kxadc.c两个文件夹中。程序的具体逻辑和步骤如下:(1)开启ADC1时钟和PA口时钟,设置PA口为模拟量输入;(2)配置ADC输入时钟分颇,设置ADC的通用控制寄存器CCR,模式为独立模式等;(3)设置ADC1的转换分辦率,初始化ADC1参数,对齐方式,转换方式,规则序列等相关信息;(4)开启AD转换器;(5)读取ADC转换的值。图4-2程序主要流程在完成上述的设置之后,开始设置序列规则通道的值,为了在转换完成之后读取转换的结果值。通过跳线帽,来设置Vref的参考电压,当跳线帽接到VDDA,参考电压就是3V。参考电压的理论参照值范围为:1.8V-DDA。模数转化程序:voidDac1_Init(void){GPIO_InitTypeDefGPIO_InitStructure;DAC_InitTypeDefDAC_InitType;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_4);//PA.4Êä³ö¸ßDAC_InitType.DAC_Trigger=DAC_Trigger_None;TEN1=0DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0//DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable; DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Enable;DAC_Init(DAC_Chan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论