当前位置:首页 > 工业控制 > 电子设计自动化


摘要:为实现对装药过程中实时温度的检测,设计了一套C8051F340单片机与时分复用技术进行数据采集和通信的多通道温度采集系统。实验验证了CPLD在进行分时控制时具有计时准确,门选电路设计方便,集成度高的优点,同时结合Silicon Laboratories公司提供的USBXpress开发工具使得单片机与计算机的USB通信实现变得极为简便。
关键词:红外测温;时分复用;SOC

0 引言
螺旋装药过程中,经常会因为内部药品温度分布不均匀导致在装药过程中药品内出现气泡的现象,这严重影响了弹体内的药品质量和弹药参数。因此,本文希望通过设计一种温度监测系统来实现对腔体内药品温度检测,寻找装药过程中温度与药品质量之间的关系。由于装药机结构的特殊性,我们无法通过传统的接触测温法获取药品的温度。因此本文设计了一种基于红外测温方法的系统来实现对药品温度的实时检测。

1 时分复用原理
复用方法的设计主要依据TN9红外传感器的信号特征及接口特点,TN9红外温度传感器具有5个接口,其中电源和地不需要接到CPLD上,其余三个接口分别为低电平有效的TN9工作使能接口,工作在主模式的SPI时钟接口和数据接口。采用复用模式是只需通过设置合适的时序和门电路控制就可以将这些具有相同功能的接口连接到同一个模块上。
实际应用中当EA有效时TN9传感器通过SPI总线在大约180ms和560ms时发送两次温度数据,第一次为环境温度数据,第二次为目标温度数据。当EA无效时传感器仍会发送数据,只不过发送的数据没有意义,这时就需要通过合适的门电路控制将无用信号屏蔽掉。当采用多路采集通道时,随着传感器数量的增加所需引脚及控制门电路会极大增加,处于精确时间控制及多门选电路的需要,数据采集模块使用CPLD来实现相对单片机加门电路简单灵活。


如图1所示,以双通道TN9数据接收模块举例来说明SPI总线复用方式。EA信号通过分时模块来控制,由于VHDL语言可以被认为是为CPLD内部逻辑单元建立了连接关系,在系统运行时语句本身并不消耗系统时间,因此通过寄存器设可以是CPLD的时间设置极为精确。这里设置TN9工作周期为1s,400ms时间为高电平(EA禁止),第一个传感器启动后约200 ms下一个传感器以同样方式开始工作,这样保证不同传感器回来的信号不重叠在一起。由于TN9在EA无效期间仍会发送无效数据,且SPI总线上的DATA线与CLK线空闲时为高电平,这里设计了如图1所示的门控电路来实现对无效信息的屏蔽。

2 系统设计
系统以C8051F340单片机为核心,它通过UART总线和USB总线分别与CPLD和电脑相连接。


2.1 数据采集模块设计
数据采集模块的核心模块由CPLD实现,CPLD接收到单片机控制命令后进行复位并开始工作,分时模块和门电路配合实现传感器的分时启动以及屏蔽掉SPI总线发回的环境温度数据及使能信号无效(高电平)时的乱码。SPI模块实现CPLD的从器件接受功能,每次工作将TN9发回的16位温度数据存入寄存器。寄存器控制模块在接受完16位温度数据后,启动串口发送,将高低8位数据分别发送给单片机,单片机在其中断函数中进行相应处理。
2.2 单片机模块设计
USB数据发送功能的实现是这一部分的难点,这里使用Silicon Laboratories公司提供的USBXpress和Configuration Wizard开发包并结合Keil uVision3开发环境可以很方便的实现C80S1F340单片机的配置工作,这样单片机程序编写和USB通信开发难度,我们只需要关注自己要实现的功能部分并不需要很了解复杂的USB通信协议。


如图3所示,单片机上电后完成系统初始化配置,初始化配置语句可以使用Configuration Wizard来进行配置,C8051F340的UART0接口(第二功能)固定在P0^4,P0^5,USB也只能使用特定端口,这里不需要对端口进行特别配置,将其端口模式设置为推拉即可,系统时钟设置为使用内部时钟模式,通过选择多路开关和倍频使USB时钟工作在48MHz。作为USB系统中的从设备,系统初始化设置完成后,执行等待命令DisplayLED(),然后在中断函数中根据USB中对要执行的操作进行判断。
UART0使用定时器2作为波特率发生器,并使能定时器0中断允许。USB初始化首先要调用USBXpress提供的API函数USB_Clock_Start(),然后对其端口初始化,这里使用USBXpress提供的默认设置即可。
由于温度数据为16位数据,串口每次接收其中8位,这里定义个数组In_Packet[3]后两位用来存放MSB,LSP的值,第一位存放传感器标志位。当In_Packet[3]数组数据更新后,调用USBXpress的API函数Block_Write(In_Packet,3)将温度数据发送给上位机。
2.3 上位机软件设计
USBXpress提供VC6.0进行USB通信的动态链接库,这里采取了静态方法加载动态链接库的形式,这样需要在编译选项中把USBXpress提供的SiUSBXp.lib路径添加进去,并在需要调用时添加头文件siusbxp.h。
程序依照USBXpress提供的API函数编写,在程序界面初始化时调用SI_GetNumDevices()和SI_GetProductString()函数获取USB器件信息,由于传感器工作间隔200ms左右,这里设定50ms的定时器,在其响应函数中执行SI_Read(),当Buffer中有数据时就会将数据读取到定义好结构体当中去,并使用Format命令将其转换为字符串类型且按16进制方式将数据更新到编辑框中。



3 总结
系统基本实现了温度的采集和传输功能,并能通过VC6.0将数据保存,提供给matlab等数学分析软件进行数据分析,实验证明了利用CPLD可以很精确地实现对传感器的分时控制,C8051F340利用USBXpress提供的API进行USB开发极大地简化了开发流程。
实验只进行了简单的框架搭建,这里只是对基于CPLD进行时分复用方法采集传感器数据并且使用C8051F340利用USB总线与计算机进行通信的可行性进行了验证,完善稳定的系统仍需要大量的后期工作去完成。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备
关闭
关闭