【《单片机控制的静力水准仪系统软件设计及调试案例探析》2400字】_第1页
【《单片机控制的静力水准仪系统软件设计及调试案例探析》2400字】_第2页
【《单片机控制的静力水准仪系统软件设计及调试案例探析》2400字】_第3页
【《单片机控制的静力水准仪系统软件设计及调试案例探析》2400字】_第4页
【《单片机控制的静力水准仪系统软件设计及调试案例探析》2400字】_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

单片机控制的静力水准仪系统软件设计及调试案例分析目录TOC\o"1-3"\h\u3815单片机控制的静力水准仪系统软件设计及调试案例分析 1254891软件设计 259381.1软件总体设计 2171191.2CCD驱动程序的设计 366191.3ZigBee软件部分的设计 6158271.4LabVIEW上位机的程序设计 8292682系统调试 10250942.1线阵CCD调试 1014382.2总体调试 10软件设计软件总体设计软件的总体设计主要涉及到线阵CCD驱动程序、数据传输程序和LabVIEW上位机程序设计,通过串口进行各部分的连接。软件的总体设计框图如图4.1所示:图4.1系统软件总体框图本设计的系统程序主要涉及以下几个部分CCD驱动程序的设计:主要是对TCD1304传感器进行驱动,使之能够正常运行,进行数据采集。Zigbee软件部分的设计:主要主要讲ZigBee协调器和终端组网,是为了实现数据从处理单元到显示单元的通讯。数据显示程序的设计:为的是实现数据的对比分析和直观显示,并且设置了报警阈值,使得竖直沉降值更为清晰明了。CCD驱动程序的设计如图4.2所示是TCD1304的整体时序要求(摘自TCD1304DGdatasheet)。从图中可以看出,SH(shiftgate)脉冲用于控制积分时间,相邻SH脉冲下降沿之间的间隔就是积分时间。ICG(积分清除门,integrationcleargate)负脉冲则控制开始clockout模拟输出的时间,在idle状态下,ICG为高电位,负脉冲发生时ICG电位被拉低。ϕM为时钟输入信号,OS为模拟输出端,ICG负脉冲结束后,OS开始依次输出各个像素上的值。比较ϕM的时序和OS的时序,可以看到每4个时钟周期OS输出一个像素上的值,即对于TCD1304来说完成一次像素间的电荷转移需要的时间可以看作4个时钟周期[16]。图4.2TCD1304的整体时序要求图4.3TCD1304的具体时序要求图4.2未给出具体的时序要求。具体的时序要求如图4.3所示(也摘自TCD1304APdatasheet)。从图中我们知道如下的要求:在初始状态,ICG引脚为高电位,SH引脚为低电位,时钟信号正常工作CCD的一个工作周期从ICG负脉冲的下降沿开始ICG负脉冲下降沿后推迟500ns为SH脉冲的上升沿SH脉冲至少持续1000nsSH脉冲结束后,ICG负脉冲再推迟5000ns后结束ICG负脉冲结束时,时钟信号必须为高电位图4.4TCD1304的驱动脉冲相位关系图首先我们配置CCD所需的时钟信号,该信号由MCU上第二个计时器TIM2的第一个频道CH1输出到PA0引脚。我们首先设置TIM2时钟的ClockSource为InternalClock,Channel1的模式设置为PWMGenerationCH1。由于之前设置的工作主频是72MHz而CCD时钟需要的频率是2MHz,因此,CCD时钟的ARR值应设为ARR = 72/2 − 1 = 35,时钟信号的dutycycle为50%,故CCR的值应设为CCR = 36/2 − 1 = 17[17]。SH信号由TIM3CH1输出到PA6引脚,设置TIM1时钟的ClockSource为InternalClock,Channel1的模式设置为PWMGenerationCH1,同时,由于线阵CCD的典型的积分时间是在ms量级,在72MHz频率下,1ms=72000个周期。而STM32F103RCT6的计时器均为16bit计时器,其最大值为216 − 1 = 65535,如果直接使用计时器的PWM输出,脉冲周期甚至不能达到1ms。因此,我们将这个计时器设置为One-PulseMode。SH脉冲的长度我们设置为4μs,即288个周期,延迟500ns+100周期,为36+100=136个周期,故设置CCR = 136, ARR = 288 + 136 = 424即可[18]。ICG信号所需的负脉冲则由TIM1CH1输出到PA8引脚,同样设置TIM1时钟的ClockSource为InternalClock,Channel1的模式设置为PWMGenerationCH1,同时设置One-PulseMode。脉冲长度为9μs,即648个周期,延迟100周期,故设置CCR=100,ARR=648+100=748即可[19]。ZigBee软件部分的设计本设计中传感器采集的数据发送至STM32,而STM32与ZigBee终端节点相连,ZigBee终端节点通过ZigBee远程通信将数据传给ZigBee协调器,以此将数据传到上位机。本设计设置了四个终端节点,即可以同时对多点进行测量。本设计的重点在于协调器与多个终端组网。由网络协调器启动ZigBee网络的初始化,首先,我们要组件网络就要对网络节点进行判定,该节点是都已经连接了其他网络系统,若是已经存在与其他网络的连接,那么我们称此节点为本网络的子节点。图4.5ZigBee网络初始化流程图ZigBee入网流程较为复杂,分为四个部分,入网前准备、Beacon、开始入网、Transportkey(NWKkey),需要注意的是,ZigBee信道为11~26,一般考虑效率和与WiFi信道干扰问题[20],会选择几条优先信道(如11、15、20、25)进行扫网,并且要看CSMA.CA信道访问能否成功以及协调器向上层发送连接指示原语时,判断资源能否足够。图4.6ZigBee入网流程图作为一个兼容无线收发器,RF内核的控制使得ZigBee的无线模块能够实现较好的模拟。并且,ZigBee还给无线设备和MCU提供了一个接口,实现先发送命令,再对其状态进行读取,完成自动操作以及确保无线设备事件按序进行[21]。LabVIEW上位机的程序设计该上位机读取协调器收到的多组数据,并将这些数据进行整合显示,实时显示各个传感器的数据,并采用波形进行显示。上位机界面的设计由四个数字波形图来显示波形,用I/O口和布尔灯来连接和显示串口状态,实时显示测点位置,和垂直沉降状态。图4.7上位机前面板设计图后面板总体为平铺顺序结构,第一个框图设置串口为默认值,并用布尔灯显示状态。主程序框图以While循环不断运行,其中四个局部变量连接四个属性节点,对前面板上的开始采集、打开串口、退出三个控件进行读写操作。开始采集按钮连接选择结构,判断串口正确继续运行。扫描串口信息,创建了液位信息四个显示控件,再串联四个信号收集器,将数据实时显示在波形图控件上,使测量点1作为基准值,其余测量点的数值使用比较控件与其数值进行对比,使用逻辑并,当任何一个测量点与基准值相差大于等于1000时,警报指示灯亮。建筑物垂直沉降超过200mm则会有一定程度的坍塌风险,因此设置警报阈值为1000。串口选择错误则不会有任何显示。选择结构里面嵌套一个顺序结构,执行完前面的主程序,即完成数据的采集,会弹出是否保存数据的对话框,选择是,则会保存在专门的文件夹。图4.8整体流程图系统调试线阵CCD调试线阵CCD的调试主要是其驱动和检测的调试,首先将驱动程序烧录至STM32单片机芯片内,使用线阵CCD驱动板通过USBTOTTL模块连接到电脑端,使用XCOM2.0串口,发送@a0001#@[22],使用单条发送,波特率设置值为115200,打开串口,点击发送,得到光强和液位边界信息。图5.1串口显示总体调试总体调试是一个完整的项目必不可少的部分,部分调试正常说明部分设计能够正常运行,总体调试再对各部分的连接传输进行测试,测试结果正常才能证明项目完成。该系统总体设计使用了3个CCD传感器,对应两个驱动板和一个完整的线阵CCD-TCD1304模块,一个一字激光器,三段

温馨提示

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

评论

0/150

提交评论