摘要: 根据复杂化、网络化控制系统的要求,工业生产现场需要一种网络功能丰富、综合性能强、智能化程度高、可靠性好的控制器。本文完成以MCU为核心的嵌入式网络控制器设计。主要工作包括移植嵌入式操作系统;使用网络控制芯片CS8900A实现TCP/IP协议的网络通信工作;完成对底层SPI的驱动程序的编写,修改CPLD程序后可通过I/O口读写对控制系统底层的现场设备进行监控;使用Qt/Embedded开发嵌入式网络控制器部分图形界面。
关键字: 嵌入式网络控制器; CPLD; 现场监控
Design of an Embedded Intelligent Network Control System based on the MCU
Zhu Yuefeng
(Mechanical and Electronic Engineering School, Kaifeng University, Henan, Kaifeng 475004)
Abstract: According to the request of complicated and networked control system, there need an intelligent, reliable controller with abundant network function and high integrative performance in the industrial production field. The embedded network controller based on MCU was designed in this paper. The main tasks includes transplanting the operation system, realizing the network communication work by controller chip CS8900A, writing the SPI driven program, monitoring the equipment according to reading and writing I/O port after modifying the CPLD program, design the interface by embedded Qt tools.
Keywords: Embedded Network Controller; CPLD; local monitoring
1 引言
以工业以太网和现场总线为代表的网络技术的高速发展,要求现场控制器能够就地控制,实现本地和远程监控功能。因此新型的现场控制器应该具有能够实现以太网和现场总线网络控制的接口,以更小的体积,实现更多的功能,这样才能构建出真正全开放、全分散的控制网络。因此,研究基于综合性能更强、网络性能更高的嵌入式网络控制器的控制系统成了一种新的发展趋势。本文主要研究嵌入式系统和网络技术结合的嵌入式网络控制器及其控制系统的实现。
2 嵌入式网络控制器硬件总体结构
图1 嵌入式网络控制器总体结构图
本文所述的嵌入式网络控制器基于三星53C2410,系统时钟使用外部12MHz晶体,由CPU内部PLL倍频至200MHz+,包括64Mbyte NandFlash,64Mbyte SDRAM,触摸屏控制器,3通道UART,一个USB主机控制器,一个USB设备控制器,SD卡/MMC卡主机控制器,Embedded-ICE调试接口,RTC实时时钟,HC总线接口,ADC模数转换接口,SPI接口,115数字音频输入/输出接口,10M以太网接口,IDE/ATA硬盘接口和2只发光二极管指示灯。如图1所示。
3 基本功能模块设计
1、微处理器最小系统设计。嵌入式网络控制器采用了三星公司集成ARM920T核的工业级S3C2410作为控制器的微处理器。先进的ARM920T处理器支持Linux、Windows CE和其他许多嵌入式操作系统的存储器管理单元(MMU)。ARM920T的32位微控制器结构带有一个5级管线,可以极低的功耗提供优异的性能。S3C2410具有丰富的网络接口,非常适合工业网络控制的要求。存储系统包括64Mbyte NandFlash,64Mbyte SDRAM。这样由CPUFLASH、SDRAM构成嵌入式控制器核心部分的最小系统。
嵌入式控制器底层设备信号量的输入/输出,通过SPI总线扩展SPI芯片来实现。嵌入式网络控制器的以太网接口是其实现网络控制的重要组成。S3C2410没有集成以太网控制器,系统采用单芯片的以太网控制器CS8900A实现以太网接口。嵌入式网络控制器含触摸屏控制器,利用触摸屏轻便、占用空间少的优点可以方便灵活地完成控制器的输入。LCD采用元太TFT真彩液晶显示模块,6.4寸大小,分辨率为640×480。
2、A/D、D/A转换。嵌入式网络控制器外围电路增加MAX1227、MAX5533,这些A/D、D/A转换芯片通过SPI控制,进行I/O口的模拟量读写工作,完成对现场模拟量的测控任务。MAX5533是双路12位、低功耗、电压输出DA/转换工具,工作电压1.5V-5.5V,16MHz三线串行接口兼容SPI、QSPI和MICROWIRE协议。通过DNI引脚输入16位数字信号,其中高四位为控制位,对MAX5533工作模式和输出口进行选择。其接线图如图2所示。
图2 MAX5533接线图
MAX1227是具有8个输入通道的A/D转换芯片。所有输入通道都可以配置为单极性或双极性模式、单端或差分输入。它们都工作于+3V电源,包括一个10MHz、SPI/QSPI/MICROWIRE兼容的串行接口。满足扩展级温度范围-40℃至+85℃。
3、现场总线接口设计。嵌入式网络控制器通过西门子专用协议芯片SPC3来实现PROFIBUS接口。SPC3内部集成完整的PROFIBUS-DP总线协议,可以自动解包和打包总线数据。控制器通过SPC3的总线接口可以很方便地实现PROFIBUS总线数据通信。由S3C24lO微处理器来管理通信事务,协议芯片SPC3来完成总线关键的时间帧部分。这样可以使控制器作为DP总线上的一个网络节点接入PROFIBUS现场总线,也可以把其作为总线桥接功能实现一些智能装置接入PROFIBUS总线。
4、以太网通信。嵌入式网络控制器采用CS8900A实现以太网通信。其功能框图如图3所示。工作原理如下:收到由主机发来的数据报后,侦听网络线路。若网络线路忙,就等待直到空闲,否则立即发送该数据帧。发送过程中,首先添加以太网帧头,然后生成CRC校验码,最后将此数据帧发送到以太网上。接收时,它将从以太网上收到的数据帧在经过解码、去掉帧头和地址校验等步骤后缓存在片内。通过CRC校验后,它会根据初始化配置情况,通知主机CS8900A收到了数据帧,最后传到主机的存储区中。
图3 CS8900A功能框图
4 系统软件设计
嵌入式网络控制器用于工业现场监控需要解决一些复杂的多任务处理工作,所以需要移植嵌入式操作系统,以此为基础开发控制器系统应用。本系统采用的MIZI Linux就是一款专用于智能手持设备和数字化应用的嵌入式Linux。在MIZI公司几年来的努力研究下MIZI Linux已经包括了许多附加值:软件包、开发工具和基于目标设备的典型用户应用。MIZI Linux针对三星电子的S3C2410X,由于已经包含所需设备驱动程序它可运行于基于S3C2410X的SMDK2410X和SMDK2410TK上。
1、CPLD程序设计。MAX1227和MAX5533的片选都是通过S3C2410的复用GPIO功能实现的。我们在CPLD程序中将nXDACK0和nXDREQ0分别连接到EXT_WE和EXT_E0。这样,我们就可以通过设置功能复用的GPIO实现对片选信号的拉低与拉高。在此嵌入式网络控制器中采用的是Altera的EPM3032,并使用MAX+plus11进行程序设计。CPLD程序完成后需要将CPLD程序烧写到EPM3032中去。使用MAX+p1us11烧写器件的具体步骤如下:首先,目标板通电,并与PC机并口连接。然后打开刚才的armcore9_new.gdf,并Set Project to Current File,接下来选中要烧写的器件EPM3032,对程序进行保存和编译。最后打开Programmer窗口,在硬件设置中选择的硬件类型为ByteBlaster, ParallelPort为LPT1,点击Programmer窗口的Program按钮就可完成器件烧写了。
2、SPI驱动程序设计。改写了CPLD程序后,可通过软件编程选中MAX1227或MAX5533,而它们的转换工作的控制则是由SPI来完成的。S3C2410有117个多功能I/O引脚,每个引脚都可通过软件设置来迎合系统和设计的要求。主程序开始之前必须定义好引脚所使用的功能,否则将被设置为I/O功能。而每个引脚的功能由控制寄存器(PnCON)决定。
表1 S3C2410X端口E配置
然后设置SPI波特率寄存器SPPREn、SPI控制寄存器SPCONn和SPI引脚控制寄存器SPPINn合理配置SPI工作模式,对SPI进行初始化。紧接着需要将GPB功能复用,这样才能通过更改后的CPLD程序对MAX1227、MAX5533、MAX7317进行片选。
表2 S3C2410X端口B配置
之后在系统中注册该设备。初始化和注册完成后驱动便停止,等待用户应用程序的调用。当用户应用程序调用时,我们通过实现Linux提供的设备驱动程序接口file_operations()中的函数read、write、open、release等完成应用系统所需一般功能。其读取数据流程如图4所示。
图4 SPI读取数据流程图
3、Linux设备驱动模块的加载。SPI驱动程序编写好后,我们自己编写Makefile文件,利用make工具来编译它。make工具最主要也是最基本的功能就是通过Makefile文件来描述源程序之间的相互关系并自动维护编译工作。而Makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。该SPI驱动的Makefile文件相对简单,只是由于我们希望它在嵌入式系统上运行,所以只需要根据具体情况更改编译器等变量的值即可。
4、人机交互界面。嵌入式网络控制器移植的嵌入式操作系统是MIZI Linux。MIZI Linux中使用Qt作为其图形界面工具包。Qt是一个用于多种平台图形界面程序开发的C+十工具包。除C++库之外,Qt还包含一些工具让编写程序变得又快又直接。Qt的跨平台能力和国际化支持保证了Qt应用程序占有尽可能广阔的市场。
本文作者创新点
本文主要论述了嵌入式网络控制器及其控制系统的研究与开发工作。该嵌入式网络控制器的主要特点是采用高性能的MCU--S3C2410,移植了嵌入式Linux系统可直接接入TCP/IP以太网,也可通过专用协议芯片接入现场总线,组网灵活;控制器还可作为独立控制节点,在无监控中心服务器的情况下完成对整个系统的监控任务。
参考文献:
[1] 陈文智.嵌入式系统开发原理与实践[M].北京:清华大学出版社,2005.
[2] 何最红,张辉.TMS320C5402与单片机SPI串口通信的实现方法[J].国外电子测量技术,2005,(2):4-6
[3] 徐维涛,郝晓弘,董建设.步入现场控制领域的工业以太网[J].PLC&FA, 2004, 6:55-58.
[4] 安连祥,谢涛娟,赵海滨,薄英杰. 冷连轧系统的网络控制与网络集成技术[J]. 微计算机信息, 2007,6-1: 18-20




