当前位置:首页 > 嵌入式 > 嵌入式硬件

  包装机系统可用于粉末东颗粒物料(如水泥、化肥、粮食等)的定时包装,自动化程度、计量精度要求越来越高。针对用户的要求,本系统设计了一种基于PIC16F877单片机控制的电子秤水泥包装机控制系统。

  控制系统包括调零、调满、设定粗细流阈值、插袋、喂料、压袋、推包、破袋处理等控制功能。另外,对检测的质量进行数码显示,对状态采用LED指示。同时还完成了与上位机的通信,可以实时观测质量变化及控制状态的情况,并在硬件和软件上分别采用了抗干扰措施和系统保护措施。本系统硬件结构简单,运行稳定可靠,软硬兼备,具有完善的控制功能和抗干扰能力。

  1 控制器工作原理

  电子秤是包装机的一个独立的控制部件,安装在包装机电控箱内,从包装箱观察窗可以看到电子秤的质量显示和状态LED指示。其控制系统由检测电路、控制电路、设定显示电路及与上位机的通信电路等几部分组成。控制器原理框图如图1所示。

  系统经过调零调满后,发出插袋信号。当检测到包准备好信号时开始喂料,此时粗细阈一起打开,CPU根据由荷重传感器检测的质量信号,与由按键设定输入的粗细阈流值进行比较判断,先后控制关闭粗细阈。再由检测的推包位置到和皮带脉冲到信号,发出推包控制信号。另外,阈值设定和与上位机的通信在软件中通过中断来控制实现。物料的质量由数码管实时显示。

  2 硬件电路设计

  根据系统的控制功能,并结合包装机机械构件的工作原理,在软件设计过程中,应力求硬件结构简单,控制可靠。软硬协调,相得益彰。以下将对控制系统的CPU选择及检测部分、控制部分、显示与阈值设定部分及串行通信部分的设计进行介绍。

  2.1 CPU的选择

  用户要求包装质量精度比较高,即要求水漏质量的测量具有很高的精度,这就要求系统的A/D转换精度比较高。另外,在喂料过程中采用粗流细流两种方式,CPU 需对粗流细流阈的设定值有掉电保护作用。美国Microship公司的PIC16F877单片机能满足系统的这些要求。PIC16F877内含10位的 A/D转换器,价格便宜,外围接口电路简单,转换精度高,对本系统而言控制精度可达0.05kg。这带有256字节的电何擦写的EEPROM存储器。每次工作粗流细流阈值的设定值可以从EEPROM中读出以前写入的设定值,或重新按键设定并写入EEPROM以备下次使用。另外PIC16F877有8K× 14bit的FLASH存储器,386×8bit的数据SRAM及同步串行模块。充足的资源可供以后开发改进。看门狗可以对软件运行出错提供保护功能。 RISC(精简指令集计算机)指令易学易用。

  2.2 检测电路

  检测部分主要介绍模拟输入电路和状态检测电路两部分,电路如图2所示。

  CPU的RA0、RA1、RA5为内部A/D转换器的输入,分别外接调零、调满、质量检测电路,RA2、RA3连接外部参考电压。电位器RW1、RW2用于电子秤的标定,定时检查标定,以免影响精度。另外,质量的测量主要从测量精度出发,荷重传感器输出电压(0~5mV)经放大电路产生0~5V电压,放大电路的微分环节是为了确保动态垢过程中质量测量的精度,用作动态校正。电位器RW5可以调节满值。放大电路如图3所示。

  包装机系统的工作是个顺序的过程,需要检测一系列的状态信号。单片机的RE0、RE1、RE2口作为由电子秤外部产生的包准备好、推包位置、皮带脉冲到状态信号的检测口。各种检测回路中接有发交二极管,指示状态检测情况。

  2.3 显示与阈值设定电路

  显示电路在喂料时用于显示物料质量,在阀值设定时用于显示设定值。阈值设定由按键设定来实现,电路如图4所示。

  物料质量是不断变化的,要求可以时刻观测质量的值,且精度可达到0.05kg。采用4个数码管显示,单片机的D口输出8位二进制显示值经电阻送到数码管数据线。另外RB口的RB1、RB2、RB3、RB4经反相驱动器ULN2003分别驱动4个数码管,作为片选信号。显示时考虑到视觉暂存现象,每次显示通过软件延时200ms,使显示得以正常工作。

  按键设定电路中,按键S3按下时,粗流设定开始,再按下时,细流设定开始,再按下就设定退出;按键S2、S1进行设定值加减,并且每次按键按下都有对应的设定值通过数码管显示。如此工作完成对粗细流阈值的设定工作。

  2.4 控制电路

  本系统完成的控制有压袋、推包、喂料、粗流下料等,分别由单片机双向I/O端口的RC0、RC1、RC2和RC3输出控制。单片机输出的控制信号经过三极管放大、光耦隔离、又一级三极管放大,分别驱动控制继电器K1、K2、K3和K4,使其按照控制的要求通电或断电,继而产生压袋、粗流下料、喂料、推包等相应的控制动作;同时,在继电器开关回路中,接有发光二极管,用以显示控制状态。此控制电路中的光耦隔离,增加了系统的抗干扰性,也起到了保护作用。单片机的控制电路如图5所示。

  2.5 串行通信电路

  本系统还要完成与上位机串行通信的功能。上位机为工控机,用来监测各种状态。设置单片机的串行通信接口SC1为可以与工控机进行通信的全双工异步系统。 SCI是一种利用RC6、RC7两个引脚作为通信线的二进制串行通信接口。把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/ 数据(RX/DT)线,并把单片机的串行通信接口设置为从动方式,由上位控制发送、接收。单片机通过响应中断来实现与上位机的通信,其串行通信电路如图6 所示。

  串行通信接口(SCI)异步工作方式由以下重要部件组成:波特率发生器(BRG)、采样电路、异步接收器、异步发送器。8位的BRG用来驱动来自振荡器的时钟产生标准的波特率频率。接收线RX(RC7)上的数据通过1个三中取二检测电路对其采样3次,以决定RX(RC7)引脚上的电平是高电平还是低电平。 SCI的发送器和接收器在功能上是独立的,但它们所用的数据格式和波特率是相同的。串行通信接口采用标准的不归零(NRZ)格式,即1位起始位、8位数据位和1位停止位。SCI接收和发送顺序是从最低位(LSB)开始的。

  3 软件设计

  在软件设计中,既综合了系统的功能、性能要求及硬件电路,又考虑了软件的易维护性。采用模块化结构,并尽量做到模块的独立性,减少模块之间的交叠。整个软件设计由主程序、各个功能子程序、中断服务程序组成。下面介绍主程序的设计及中断服务程序的设计。

  3.1 主程序设计

  根据系统的工作原理,主程序由初始化、数据采集和处理、调零、调满、读设定值、显示及检测各种状态位和控制各种状态等几部分组成。程序执行行中不循环检测各种状态位,并执行各种相关的子程序,完成控制任务。主程序流程如图7所示。

  3.2 中断服务程序设计

  在此系统程序设计中,中断程序的设计是个难点。其中按键设定阈值产生外部中断,另外与上位机的通信也采用中方式实现,还有同部的定时中断。考虑到多种中断,存在中断优先级的问题,选用的PIC16F877单片机的中断功能有其独立特性,即它只有一个中断入口地址0004h。每种中断都要由此进入中断程序,因此中断程序开始现场保存垢,要进行各种中断村污位的顺序检测和判断。当判断到中断标志位时,转到相应的中断服务子程序中。根据检测标志位的顺序,可以人为地定义中断优先级。先判断的优先级就高。本系统根据实际情况,定义串行通信中断优先级最高,其次为定时中断,然后是按键设定外部中断,如图8所示。

  另外,中断存在嵌套问题。由于中断入口地址只有一个,因此,当出现中断嵌套时,各级中断返回的地址正确与否是很关键的。由调试过程,总结出要处理好每次中断的现场保护和恢复现场是很重要的,并要注意其中的换页位置。

  该系统结构简单,运行稳定可靠,控制精度高,具有完善的保护功能;可继承性好,并为以后的技术改进留有一定的资源;成本低廉,经用户试和反应良好。

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

在单片机的世界里,“字节”(Byte)是一个贯穿始终的核心概念。从存储数据到执行指令,从变量定义到外设通信,字节无处不在。很多初学者在学习单片机时,往往更关注复杂的程序逻辑和外设驱动,却忽略了字节这个基础知识点,导致在后...

关键字: 单片机 字节

在单片机的数字逻辑中,我们通常最关注的是高电平和低电平两种状态,它们构成了二进制数字世界的基础。然而,除了这两种状态之外,还有一种至关重要但常常被忽视的状态——高阻态(High Impedance State)。高阻态就...

关键字: 单片机 高阻态

对于PIC入门者来说,不需要盲目追求高端开发板,一块功能均衡、资料丰富的入门款就能满足需求。比如Microchip官方推出的PIC16F84A开发板,它搭载经典的8位PIC内核,引脚布局清晰,自带LED、按键等基础外设,...

关键字: PIC 单片机

该低功耗器件支持5V运行,在实现高性能的同时,能有效保障系统简洁性与成本效益

关键字: MCU 单片机 工业自动化

在嵌入式系统开发中,总线错误(Bus Error)与段错误(Segmentation Fault)并称两大"程序杀手"。不同于段错误源于非法内存访问,总线错误本质是硬件对访问方式的严格约束被突破,尤其在ARM架构中表现尤...

关键字: 嵌入式开发 CAN总线

在嵌入式系统开发中,硬件依赖、模块耦合和资源限制使得传统单元测试难以实施。CMock作为专为C语言设计的自动化Mock框架,通过解析头文件自动生成Mock模块,成为破解嵌入式测试难题的核心工具。

关键字: 嵌入式开发 CMock

在资源受限的嵌入式系统中,C++继承机制常被视为"奢侈特性",但合理运用可显著提升代码复用性与可维护性。本文从嵌入式开发特性出发,解析继承机制的最佳应用场景与实践准则。

关键字: C++ 嵌入式开发

在物联网设备、工业控制器等嵌入式系统中,固件升级是功能迭代与漏洞修复的关键环节。然而,升级过程中断电或固件损坏可能导致设备变砖(无法启动)。本文聚焦双分区固件升级架构与防砖保护机制,提供可落地的开发方案。

关键字: Bootloader 嵌入式开发

在嵌入式通信开发中,协议解析是连接硬件层与应用层的核心环节。基于前文设计的ITLV(改进型TLV)协议框架,本文深入对比一次性解析与流式解析两种策略,重点分析粘包、断包及数据噪声等典型场景下的处理机制。

关键字: 嵌入式开发 协议解析

在嵌入式设备智能化浪潮中,用户对交互体验的要求日益严苛。传统嵌入式GUI开发常面临开发效率低、跨平台适配难、视觉效果受限等痛点。CDroid作为一款基于C++11开发的跨平台GUI引擎,通过移植Android开发模式,为...

关键字: 嵌入式开发 UI开发
关闭