山东交通学院,山东济南 250357
传统的用于工业现场监测的智能节点多是基于现场总线技术。由于自身技术的局限性以及多种总线标准分割共存局面的存在,现场总线技术在工控领域的进一步应用受到了限制[1]。
基于μCLinux操作系统的网络化节点由嵌入式处理器、外围硬件、嵌入式操作系统及应用软件系统等组成,具有多路模拟量和开关量的实时采集与显示、可以通过上位机实现远程控制、完成数据采集记录、检测故障记录、上下限报警、历史数据记录、网络数据传输等功能。采用带有以太网接口和控制器的嵌入式节点为船舶设备的网络化数据采集和远程智能监控提供了硬件支持。
嵌入式控制系统需要一个实时的操作系统对系统控制节点进行管理。对内可以管理控制节点上各设备的运作和协调;对外则可以连接到Internet。μCLinux不仅集成了TCP/IP协议,还有很丰富的其它网络协议,如 DHCP Server,webserver等[2]。
μClinux是一个源码开放的操作系统,具有良好的移植性,可以移植到不同的微处理器的开发板上。在编译系统内核时可以对内核重新配置和裁减,选择嵌入式设备所需的功能支持模块以减小内核大小达到在嵌入式系统有限资源的基础上实现所需功能。μCLinux的移植工作主要是用源代码建立交叉编译环境,对内核配置编译,制作文件系统,下载调试和执行内核后添加应用程序。可按以下步骤进行:
(1)首先下载μClinux源码包和交叉编译器,这里分别用的是uClinux-dist- 20040408.tar.gz版本和armelf-tools-20030314.sh。
(2)将uClinux-dist-20040408.tar.gz拷贝到/home/下进行解压缩,在/home/下生成uClinux-dist目录。解压命令:tar xvzf uClinux-ARMSYS-20040801.tar.gz
(3)进行补丁文件的安装。
把补丁文件uClinux-20040408.patch文件拷贝到uClinux-dist目录下,运行命令:patch-p0< uClinux-20040408.patch 。 分别在 uClinuxdist/linux-2.4.x目录和在uClinux-dist/config下生成内核配置文件kernel_44b0.cfg和用户配置文件user_44b0.cfg。
(4)安装交叉编译器:将arm-elftools-20030314.sh拷贝到根目录,运行安装:sh arm-elf-tools-20030314.sh。它将会安装在usr/local/目录下。
(5)内核的配置:在目录uClinux-dist下,运行make menuconfig命令进行开发板、芯片、版本号和库文件设置,这里我们依次选为Samsung,、4510B、linux-2.4.x和μClib。
进入内核定制界面,选项“载入内核配置文件”,选中该项并回车,这时输入配置文件kernel_44b0.cfg,因为在打补丁时该文件已生成在默认目录下,此处只需将文件名输入。
随后是载入配置文件user_44b0.cfg后对用户应用程序的界面配置。为了使使内核映像和根文件映像占用空间较小,可以把不需要的一些应用程序去掉。配置完毕后退出并保存。
(6)对内核进行编译,烧入压缩格式的内核映象文件。
编译完成后将在uClinux-dist/image下生成image.ram, image.rom, romfs.img 三个映像文件,把它们改成后缀名为.bin格式的文件烧入Flash中。
(7)应用程序的添加:在uClinux-dist/user目录下新建目录,编写自己的应用程序,配置编译后就可下载到开发板Flash中。
系统核心控制器件是32位RISC处理器S3C44B0X。具有丰富的片上外设,有可选择的8KBCache,内部SRAM、LCD控 制 器、2通 道UART、4通道DMA、系统管理器、5通道带PWM 的定时器、I/O口、8通道10位ADC和PLL倍频器。S3C44B0X通过提供全面的、通用的片上外设,大大减少了系统中除处理器以外的元器件配置,从而最小化系统的成本,并提高了系统的可靠性[3]。嵌入式工业控制系统节点的硬件设计组成如图1所示。
系统使用了4MB 的Flash只读存储器,8MB的DRAM。嵌入式操作系统、应用程序的代码和文件系统存储在Flash中,用RTL8019AS以太网控制器为嵌入式控制器扩展了一个以太网端口。由于在系统运行时需要存储一些可配置信息,如本地IP地址、服务器IP地址、数据采集计划和决策、运行方式等,使用了串行E2PROM存储各种配置信息。S3C44B0X自身具有10位A/D 转换器、PWM信号输出和多个I/O口,故对工业现场的各种设备进行数据采集和监控时,只要将相应的传感器信号接入控制器的端口即可。
系统配备了键盘和LED接口,具有良好的人机界面。采用zlg7289A芯片通过串行方式与微处理器S3C44BOX进行通讯实现键盘扫描和LED的显示,接线如图2所示[4]。
ZLG7289A具有SPI 串行接口功能的可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片,该芯片同时还可连接多达64 键的键盘矩阵,单片即可完成LED 显示、键盘接口的全部功能。图中将S3C44BOX的EINT7与ZLG7289A的KEY链接,利用外部中断方式判断有无键按下;D19-D20分别作为数据传输、时钟和片选输入与ZLG7289A连接;SEG0-SEG7作为LED段控制,DIG0-DIG7为位控制,同时还可以作为键盘矩阵。
S3C44BOX内有两个串口控制器(UART),利用它在本系统中实现一个RS-232接口,既可作为系统开发时的串口调试之用,也可以作为产品的扩展通信接口。采用的电平转化芯片是MAX232,把3.3V的逻辑电平转换为RS232逻辑电平,进行传输。
RTL8019AS是带有即插即用功能的全双工以太网控制器,在一块芯片上集成了RTL8019内核和一个16KB的SDRAM存储器。图3用RTL8019AS、FB2022设计的以太网接口电路。
图中74LV138是3-8译码器,FB2022是隔离变压器。该电路使用外部中断EXINT3,处理器的片选信号 nGCS1和 A16、A17、A18通过 74LV138 输出为网卡的使能控制端。nOE 和nWE控制网卡的读写,nRESET 控制网卡的复位,FB2022起变压滤波的作用,TPIN+、TPIN-为接收线,TPOUT+、TPOUT-为发送线,通过隔离变压器与以太网接口RJ45连接,,通过标准带RJ45插头的双绞线接入以太网,实现与主机进行接收和发送数据报等工作。
RTL8019AS工作于中断方式下,当接收到数据时通过INTO输出低电平信号发出中断,处理器输出片选信号和读信号,选中以太网控制器,从RTL8019AS内部RAM读取数据。
对于需要进行模拟量控制输出的场合,采用外部D/A转换器实现对执行器的控制信号,设计中选用10位TLV5617A数模转换器实现,连接原理如图4所示。
TLV5617A 是带有灵活3线串行接口的双10位电压输出数/模转换器DAC串行接口,它可用含有4个控制位和10个数据位的串行16位字符串编程。通过S3C44B0X的I/O线对DAC7512写转换数据。引脚的下降沿开始将数据一位接一位(从最高有效位开始)转移到在SCLK引脚的下降沿上的内部寄存器中,在16位数据传送完或上升时,转移寄存器的内容被移入目标锁存DACA或DACB缓冲器中,这取决于数据字中的控制位。
嵌入式网络节点的软件模块主要分为:网络通信模块、数据发送模块、任务模块、数据处理模块、数据接收模块和辅助功能模块。
网络通信模块主要担负与远程计算机或上位机的通信功能,进行网卡芯片初始化,网络协议栈的移植,完成数据上传与接受。当有数据过来,通过本地DMA将数据从网线拷贝到网卡接收缓冲区,当缓冲区满时,再通过远程DMA将数据拷贝到内存供处理器处理。
数据处理模块包括模拟节点数据采集算法,完成数据的预处理和分析功能。
数据接收模块解析接受到的远程主机的数据帧,调用各个模块完成不同的功能。
任务模块主要接受上位机来的监测任务,根据任务要求,对现场的各个通道的数据进行切换、监测和控制。由此,智能节点根据任务自主地完成对现场数据的监控。
辅助功能模块完成智能节点的设置、历史数据记录、设置看门狗等辅助性功能。
嵌入式智能节点流程如图5。
采用被动模式和主动模式完成和上位机的通信及监控功能,两种方式是交互进行的。系统上电后节点首先是处于被动工作模式下,处于查询状态,在与远程主机完成确认之后,程序等待远程计算机的指令。接收到指令后,判断指令类型,转入相应的子程序。
嵌入式智能节点主动工作模式下自主地实现本地节点任务中规定工作,例如接收人机接口输入设定,采集现场数据,根据要求进行PID运算,通过与嵌入式控制器相连接的执行机构完成现场参数控制,数据记录报警等。
本文设计的嵌入式网络节点已经在船舶柴油机气缸冷却水温度控制中得到应用测试,完成了对冷却水的温度检测、控制和远程监控,具有良好性能和效果。所设计智能节点的控制器数据处理能力和速度得到较大提高,试验测试冷却水温度的就地控制精度达到±0.2℃,精度较之原单片机系统提高一倍;采用TLV5617A数模转换器能够使控制参数输出精度达到0.1%,调节阀机构动作更准确;所设计以太网口的数据吞吐能力较大,远程传送速度大大提升,远程主机及时准确的接收到现场数据。由此可见采用网络化的智能节点便于在大范围内共享资源,形成丰富的数据库,实现对各数据点的网络化。嵌入式的应用增强了系统性稳定性、开放性、灵活性及便于软件移植和升级等特点,在工业测控领域具有很好的发展潜力和应用前景。