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所示:
图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显示