当前位置:首页 > 单片机 > 单片机
[导读]摘要:为实现对装药过程中实时温度的检测,设计了一套C8051F340单片机与时分复用技术进行数据采集和通信的多通道温度采集系统。实验验证了CPLD在进行分时控制时具有计时准确,门选电路设计方便,集成度高的优点,同


摘要:为实现对装药过程中实时温度的检测,设计了一套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总线与计算机进行通信的可行性进行了验证,完善稳定的系统仍需要大量的后期工作去完成。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭