当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]0 背景利用嵌入式技术,给工业系统安装智能控制器,对其进行在线监控和检测,就能及时发现故障并处理,从而不但保证工业系统始终处于良好的运行状态,同时也减轻值机维护人

0 背景

利用嵌入式技术,给工业系统安装智能控制器,对其进行在线监控和检测,就能及时发现故障并处理,从而不但保证工业系统始终处于良好的运行状态,同时也减轻值机维护人员的负担。面向工业应用的智能控制系统一般包括如下功能:多路模拟量和开关量的实时采集并显示、通过控制器或上位机进行启停等命令控制、工作状态采集并记录、数据上传、故障记录并报警、历史数据保存、定时开关机等,同时还应具有网络数据传输与控制和软件升级功能。传统的智能控制器一般多采用8位单片机实现,但随着实际功能复杂度的增加,尤其是实现大量数据采集和保存、彩色图形交互和网络通信等,单片机已很难满足实时控制的要求。因此,采用32位ARM处理器来实现的方案是较为理想的选择。

1 智能控制器硬件平台

根据功能需求,系统主控芯片采用S3C44B0X。该处理器是基于ARM7TDMI内核SOC芯片,片内集成LCD控制器、SDRAM控制器、RTC、UART和ADC等模块,这为硬件系统的设计带来方便同时也提供系统可靠性。除此之外,硬件上还需扩展存储系统、键盘液晶、CPLD芯片、串口通信、网卡通信等模块。存储系统选用较大容量的Nor Flash来存放代码和工作过程中需记录的数据。LCD采用320×240的STN彩色液晶屏幕,模拟量数据采集采用内部ADC和外扩多路选择器,开关量采集与控制采用CPLD芯片来实现I/O口的扩展。系统硬件总体框图如图1所示:

2 智能控制器软件总体方案概述

智能控制器软件部分主要包括启动模块、系统初始化模块实时时钟显示、IIC键盘、串口通信、液晶显示、网络通信、数据采集及控制、数据保存及故障记录和自动升级等模块.软件系统流程图见图2。

 

3 软件主要设计方法

3.1 IIC键盘和开关量处理

本系统采用一片CPLD来扩展I/O端口,并利用S3C44B0X处理器的PF1和PF5等IO端口来模拟IIC协议完成数据通信。首先使用vhdl硬件描述语言设计IIC协议的硬件电路,并下载到CPLD芯片中,主要完成对外部端口的输入采集和输出控制以及与主处理器的通信。按照此协议标准,编写数据传输的启动停止、数据接收发送以及确认位接收等子程序。调试时应注意SDA和SCL信号的时序关系。由于此种方式下处理器只能通过查询方式才能判断是否有键按下,因此本设计采用定时器定时几毫秒来读IIC接口片内数据,主程序判断按键标记。此外,系统的32路开关量实时控制也是通过此接口来实现。

3.2 GUI显示

良好的人机交互设计给系统的操作带来方便。嵌入式系统中的GUI设计应综合考虑代码占用的资源、GUI响应的速度和易于使用三个因素。若移植成熟的GUI 源码,占用资源太大,响应速度相对较慢,本设计采用面向对象的设计方法,合理的定义了一些数据结构,使得图形化显示既满足要求,又具有良好的扩展性。

依据人机界面设计的具体要求,分析显示数据的特点,为方便参数的显示和处理我们定义了一系列的数据结构,从而使得系统的显示和修改异常方便。首先确定系统需要多少个窗口,每个窗口有多少个菜单,画出窗口之间的变迁图,可以知道所有的窗口应当组成一个树形结构。主要的数据结构如图2-5所示。

软件设计时,首先按照定义的数据结构定义每屏的显示数据和窗口处理函数,当有键按下时,系统依据当前键值、当前窗口号和当前光标确定系统按键后的新窗口号和当前光标,然后根据窗口号和光标从该窗口的数据区中取出将要显示的数据给窗口缓冲区,液晶显示的界面就是从窗口缓冲区中将数据直接取出并显示。

依据显示窗口中数据处理的行为,可把显示方法分为两种。一种是利用上述的显示方法,具有良好的统一性,另一种的单独处理。因为在显示的各个界面中,有些界面数据处理特别少,有些处理特别多,比如参数修改窗口界面,此时需要把这些窗口独立出来单独处理。当按键调用此窗口时,系统调用此窗口的专用窗口处理函数来处理,直到检测到退出此窗口的消息时,才结束此操作,调用另外模块。在实际工程中,合理利用这两种显示方法对于复杂行为的人机交互的处理带来方便。一般是系统的主要顶级窗口显示使用统一显示,而叶子窗口使用单独处理较好。

 

 

3.3 数据采集及控制

模拟量数据采集主要含有采集算法和数据处理两部分。为了确保采集的正确性,本文采用中位值平均滤波方法。采集的数据多达32路,而且被系统频繁执行,因此好的设计结构至关重要。在综合权衡多路开关切换时间、启动转换切换时间和数据转换时间后,采用一路采集多次方法。采集模块在启动当前路模数转换的同时,对前一路的采集进行滤波处理并保存显示,这样节约了采集模块所用的时间。

3.4 网络通信模块

网络通信主要完成网卡芯片的初始化、数据的收发以及网络协议栈的移植。本系统网卡芯片RTL8019AS内含16KRAM,用作发送和接收缓冲区。当有数据过来,通过本地DMA将数据从网线拷贝到网卡接收缓冲区,当缓冲区满时,再通过远程DMA将数据拷贝到内存供处理器处理。

网卡芯片的驱动程序主要通过对网卡芯片内部一系列寄存器的配置来实现网卡的复位、物理地址配置、读写缓冲区指针的配置和数据收发配置等。编写程序过程中应熟悉网卡芯片前32个地址空间的所完成的功能和操作方法,从而使网卡能正常工作。当完成了驱动程序后,就需要移植TCP/IP协议栈。在熟悉ARP、 IP、ICMP、TCP、UDP、TELNET等协议以及各种公开源码的协议栈的基础上,本文选用代码小、效率高的uIP协议栈。在调试的过程中,依据网络原理的分层结构以及网络数据传输的打包和解包过程,一层一层的调试,并用VC编写一些网络截包程序和收发程序来联合调试,确保数据在传输过程中收发正常并按正确的方式流动。此外,调试过程应注意数据宽度以及边界对齐问题,否则数据将不能正确收发。

4 小结

智能控制器的设计不仅完成了基本的人机界面和输入输出操作,而且具有良好的通信、数据查询、自动升级、自动开关机、数据自动记录、故障自动记录到片内FLASH以及故障数据向上位机传输等功能。经过反复测试与实验,各项性能均满足要求。

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

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 隧道灯 驱动电源
关闭