C8051F340单片机对智能测量系统的控制设计

C8051F340单片机对智能测量系统的控制设计,第1张

1 引言

C8051F340单片机对智能测量系统的控制设计,C8051F340单片机对智能测量系统的控制设计,第2张

图 1 系统结构框图

智能数据采集系统包括:步进电机控制、数据采集、数据传输、数据处理等部分(如图1 所示)。为了进一步提高系统的可靠性和降低成本,本文提出了采用片上系统(SOC)的解决方案——基于C8051F340 的智能测量模块,该模块接收上位机的指令来控制步进电机的动 作,对传感器送来的信号进行A/D转换,向上位机传送测量数据。

2 模块的工作原理和功能

智能测量模块的核心是片上系统(SOC),即 C8051F340 单片机,它具有 USB 通信端口和 A/D 转换模块。通过应用 C8051F340 内含的数字端口实现对步进电机的控制,A/D 模块 对模拟输入端的信号进行数据采集,通过芯片中的 USB 端口与上位机进行数据 交换 。采用C8051F340 单片机后,可以充分利用芯片的内部资源,从而节约系统成本。

2.1 步进电机控制功能

步进电机的控制量为时钟脉冲、启、停和方向控制信号。在实际应用中启、停信号和方 向控制信号相对来说比较简单,只要向指定的数字端口输出高、低电平就能控制步进电机的启动、停止、正向和逆向转动。 步进电机所需的时钟脉冲则要通过对片内定时器进行编程,使用定时中断在指定的数字端口输出脉冲信号。C8051F340 内含的定时器 2 是一个 16 位的计数器/定时器(见图 2),由两个 8 位的 SFR 组成:TMR2L(低字节)和 TMR2H(高字节)。定时器 2 可以工作在 16 位自动 重装载方式、8 位自动重装载方式(两个 8 位定时器)或 USB 帧起始(SOF)捕捉方式。当T2SPLIT =“0”且 T2SOF =“0”时,定时器 2 工作在自动重装载的 16 位定时器方式。

C8051F340单片机对智能测量系统的控制设计,C8051F340单片机对智能测量系统的控制设计,第3张

图 2 定时器 2 的 16 位方式原理图

定时器 2 可以使用 SYSCLK、SYSCLK/12 或外部振荡器时钟/8 作为时钟源。当 16 位定 时器寄存器发生溢出(从 0xFFFF 到 0x0000)时,定时器 2 重载寄存器(TMR2RLH 和 TMR2RLL) 中的 16 位计数初值被自动装入到定时器 2 寄存器对 TMR2H:TMR2L,并将定时器 2 高字节 溢出标志 TF2H 置“1”。如果定时器 2 中断被允许,每次溢出都将产生中断。在定时器 2 的中断服务程序中,可根据上位机下达的指令,对中断次数进行计数。当中 断次数达到指定数值时立即改变指定端口的数值(0 变 1、1 变 0),从而就能在该数字端口产 生一个指定脉宽的脉冲信号。智能测量模块采用 C8051F340 片内振荡器(12MHz)产生的 SYSCLK/12 作为定时器的时钟源,数字端口设置为推挽输出,当重载寄存器的值为 0xFF64 时能在数字端口输出最高为3205Hz 的方波。由于所选用的芯片是低电压、低功耗的高速器件,有时还存在着数字端口与步进电机控制电路之间信号电平的匹配问题,为此可选用相应的电平转移电路来解决。

2.2 数据采集和处理功能

C8051F340 内部有一个 10 位 SAR ADC 和一个差分输入多路选择器。该 ADC 工作在200ksps 的最大采样速率时可提供真正 10 位的线性度。ADC 系统包含一个可编程的模拟多 路选择器,用于选择 ADC 的正输入和负输入以及测量信号源。A/D 转换可以有 6 种启动方式:软件命令、定时器 0 溢出、定时器 1 溢出、定时器 2 溢出、定时器 3 溢出或外部转换启动信号。这种灵活性允许用软件事件、周期性信号(定时器溢出)或外部硬件信号触发转换。 一个状态位用于指示转换完成,或产生中断(如果被允许)。转换结束后 10 位结果数据字被锁存到 ADC 数据寄存器,即 ADC0H 和 ADC0L 中(见图 3)。

C8051F340单片机对智能测量系统的控制设计,C8051F340单片机对智能测量系统的控制设计,第4张

图3 10位ADC电路图

智能测量模块在数据采集时,GND 被选择为负输入,则 ADC0 工作在单端方式,转化 码为 10 位无符号整数,所测量的输入信号范围为 0 ~VREF×1023/1024。VREF 为 A/D 转换 时的参考电压,可用片内提供的基准电压。转换数据在寄存器对 ADC0H:ADC0L 中的 存储 方式可以是左对齐或右对齐,采用右对齐时测量结果的数值范围为 0 ~0x3FF。向 AD0BUSY 写“1”方式提供了用软件控制 ADC0 转换的能力。AD0BUSY 位在转换期间被置“1”,转 换结束后复“0”。在定时器 2 的中断服务程序中,可根据步进电机的工作模式和上位机的指令,确定步进 电机运动多少步后再启动 A/D (AD0BUSY 写“1”)——采集数据,并将数据保存在闪存中。 对于被测信号电平有严格的要求,前置放大器的输出级可用运放 OP07 组成电压跟随电路,并在输出端加装限压保护电路以保证单片机模拟输入端的 安全 。

2.3 数据通信功能

C8051F340 集成了 USB 功能控制器,用于实现 USB 接口的外部设备(C8051F340 不能作 USB 主设备),USB 功能控制器和收发器具有完整的 USB 2.0 认证,支持全速与低速 *** 作 并包含 8 个端点管线,控制端点(端点 0)总是作为双向 IN/OUT 端点,其它端点被作为 3 对IN/OUT 端点管线,通信速度可通过特殊功能寄存器 USB0XCN 中的 SPEED 位选择,要使USB0 工作在全速方式,USB0 的时钟必须为 48 MHz。当 USB 接收数据时,串行接口引擎SIE)在接收完一个完整的数据包后中断处理器;相应的握手信号由 SIE 自动产生。当发送 数据时,SIE 在发送完一个完整的数据包并且收到相应的握手信号后中断处理器。智能测量模块采用 C8051F340 片内振荡器(12MHz)产生的 SYSCLK,经内置的 4 倍时钟 乘法器产生 48MHz 时钟,使 USB0 工作在全速方式。模块设置成通过端点 1 向上位机发送数据,端点 2 接收上位机送来的数据,USB 工作在中断方式。

3 软件设计及系统 测试

模块通讯 协议 的三层结构模型为:物理层、数据链路层和应用层。物理层和数据链路层的功能包括各种通讯帧结构的组织和收发, 是由 SOC 本身实现的, 因此系统的开发将集中在应用层软件的设计。

固件程序主要包括初始化、主控程序和 3 个中断服务程序。模块初始化部分就是要定义SOC 的工作频率,定义模拟、数字端口的输入/输出模式,定义 USB 中断、定时器 2 中断和A/D 中断的工作模式;主控程序处理前台任务,主要是响应各类中断和利用公共数据区进行数据交换;步进电机的控制、数据的采集和数据的通信都将利用中断服务程序在后台实现。

C8051F340单片机对智能测量系统的控制设计,C8051F340单片机对智能测量系统的控制设计,第5张

C8051F340单片机对智能测量系统的控制设计,C8051F340单片机对智能测量系统的控制设计,第6张

图 5 上位机程序框图

上位机程序采用 VC 可视化开发平台,对 USB 端口形成的通信管道进行标准的读写 *** 作,从而实现上位机与 C8051F340 的数据通讯,实时显示现场参数、绘制图形,并对现场参数进行系统分析。

上位机程序采用主线程和辅线程协调工作模式, 可以降低主程序处理时间, 提高通讯效率。

对图 1 所示的系统进行 测试 :分别对椭圆偏振片、圆偏振片组成的光路进行光强分布测试,步进电机由 C8051F单片机控制,每秒钟转一圈测 200 个数据;PC 机通过 USB 口接收数据,并对数据进行分析和拟合,根据偏振片的不同组合,可得到圆形、椭圆形、腰果形等不同类型的图形

4 结束语

论文提出的基于 C8051F340 的智能测量系统由于采用小体积贴装芯片,不必外接其它A/D转换和 USB 通信接口器件,减小了整机的体积,提高了整机的性价比和可靠性。测试表明,该模块在实际检测过程中能够准确的提取被测对象的信号特征,各项指标都符合测试要求。

本文作者创新点:采用SILICon Laboratories 公司最新推出的一款微控制器 C8051F340 为 智能测量系统的核心,因其可提供 USB 功能,集测量控制、数据采集、数据通讯为一体,便于软件开发,并减小了整机的体积,提高了整机的性价比和可靠性。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2565496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-07
下一篇 2022-08-07

发表评论

登录后才能评论

评论列表(0条)

保存