基于Linux和s3C2440的GPC控制器设计
时间:01-24
来源:作者:单片机与嵌入式系统 江西理工大学 徐涢基 杜宝祯 祝静 何鹏举
点击:
近年来,基于Internet的网络化控制系统已成为国内外测控领域研究的热点,在石油勘探开发、钢铁化工等领域有着广阔的应用前景。而控制器的设计和研发是整个网络控制系统的关键和核心。在一些地域高度分散以及环境恶劣的控制现场,使用嵌入式系统作为控制器节点,可更有利于多点分布式综合布控及并行处理,实现更好的测控效果。然而由于网络传输本身的特点,网络时延会不可避免地影响网络控制系统的控制性能和稳定性,因此本文提出基于S3C2440A及嵌入式Linux的GPC(Generalized PredictiveControl)控制器的设计方案,具有一定的通用性。
1 控制器硬件平台设计
控制器节点是嵌入式网络化测控系统的中心。在测控系统中,主控制器承担着控制算法的实现和数据采集两大任务,这要求控制器节点的硬件平台有更强的计算能力,以及更好的网络性能。本文中控制器的硬件平台采用三星公司的S3C2440,外围设备主要有RAM、Flash等。控制器的硬件平台结构如图1所示。
(1)S3C2440处理器简介
本系统采用三星公司的16/32位RISC微处理器S3C2440AL作为控制器核心。S3C2440AL的一大特点是其核心处理器(CPU)采用16/32位ARM920T的RISC微处理器。ARM920T实现了MMU、AMBA BUS和Har-vard高速缓冲体系结构。系统资源和外围接口丰富,包括电源管理器、外部存储器控制器、4通道DMA、3通道UART、8路10位ADC和GPIO等。
(2)外围电路简介
控制器外围电路主要由存储器电路模块、通信模块以及JTAG调试电路等构成。其中存储器电路模块采用2片HY57V561620FTP芯片作为外扩SDRAM;采用1片SST39VF1601(2 MB)芯片作为NOR Flash,用于存放bootloader程序;采用1片K9F1208芯片(64 MB)作为NAND Flash,用于存放操作系统以及文件系统。在通信模块中采用DM9000网卡芯片和网络变压器HR911103A,以实现以太网接口的设计;同时设计了USBhost接口电路,为下一步实现WLAN通信提供接口。A/D和D/A接口电路实现数据的采集和控制信号的发出。
2 控制器软件平台设计
2.1 软件平台整体结构
控制器节点软件体系结构如图2所示。其中最底层为设备驱动程序层,主要进行处理器初始化和驱动各外设电路模块;第2层为嵌入式Linux操作系统,主要管理系统的软硬件资源、上层应用,以及操作底层驱动接口;第3层为Web服务器,以实现控制器的:Browser/Server访问控制;第4层为应用程序,主要包括实时数据库、GPC控制算法和时钟同步应用程序。
2.2 bootloader的配置和编译
首先在宿主机的Linux下建立arm-linux-gcc-2.95.3交叉编译环境,将vivi.tgz解压缩到Linux的相应目录下,进入vivi目录,执行make menuconfig命令进入vivi配置界面,对vivi的参数进行配置。完成配置之后,进行编译,此时已经在当前目录下生成了vivi。可使用H-JTAG将vivi烧写到NAND Flash运行。
2.3 Linux的移植
(1)编译Linux内核
首先在宿主机的Linux下建立arm-linux-gcc-3.4.1交叉编译环境,然后将Liunx-2.6.13.tgz解压缩到Linux的某一目录下,执行make menuconfig命令进入内核配置界面,定制Linux内核,包括配置CPU选项、网卡声卡驱动、串口、对yaffs文件系统的支持等选项。完成定制之后,保存设置退出。然后对内核进行编译,即可生成内核映像文件zImage。
(2)制作yaffs文件系统
制作yaffs文件系统映像需要使用mkyaffsimage工具程序。首先将其解压缩到/usr/sbin目录下,然后将文件系统解压缩到Linux某一目录下,此时用户可以将自己编写的应用程序或其他文件添加到文件系统中。添加完毕后使用mkyaffsimage命令即可得到root.img镜像文件。最后可使用H-JTAG将生成的映像文件烧写到NAND Flash运行。
2.4 Boa服务器的移植和构建
在网络化测控系统中,每个测控节点都需要使用Web浏览器进行监控和数据交互。Web服务器作为一个数据载体,可以将本地的信息和数据通过网络传递给远端发出请求的客户,这对远程网络化监控的实现有重要意义。因此Web Server的移植成为一项必不可少的工作。Boa的优点在于其源代码开放、性能好和可靠性高。本文中Web Server的构建也是基于Boa展开的。
首先在官方网站上下载Boa的源码boa-0.94.13.tar.gz,解压缩到Linxu宿主机的某一目录下,然后进入src目录,执行./congfig命令,生成Makefile.in文件。由于生成的Makefile文件是针对X86平台的,为了生成能够在ARM上运行的Boa,需要修改Makefile文件。找到CC=gcc,CPP=gcc-E这两行,并修改为CC=arm-linux-gcc,CPP=arm-linux-gcc-E;然后使用make命令进行编译,编译成功后会在src目录下生成1个可运行在ARM平台下的Boa可执行文件,然后将编译好的Boa程序放入,/sbin目录下。
在目标板上运行Boa之前,还需要对boa.conf文件进行配置。boa.conf文件主要包含的boa基本参数:Port,boa服务器监听的端口;User,连接到服务器的客户端的身份;DocumentRoot,HTML文件的根目录。用户可以根据自己的需要进行设置,设置完毕后进入sbin目录,直接运行Boa就可以直接启动Web服务器。
1 控制器硬件平台设计
控制器节点是嵌入式网络化测控系统的中心。在测控系统中,主控制器承担着控制算法的实现和数据采集两大任务,这要求控制器节点的硬件平台有更强的计算能力,以及更好的网络性能。本文中控制器的硬件平台采用三星公司的S3C2440,外围设备主要有RAM、Flash等。控制器的硬件平台结构如图1所示。
(1)S3C2440处理器简介
本系统采用三星公司的16/32位RISC微处理器S3C2440AL作为控制器核心。S3C2440AL的一大特点是其核心处理器(CPU)采用16/32位ARM920T的RISC微处理器。ARM920T实现了MMU、AMBA BUS和Har-vard高速缓冲体系结构。系统资源和外围接口丰富,包括电源管理器、外部存储器控制器、4通道DMA、3通道UART、8路10位ADC和GPIO等。
(2)外围电路简介
控制器外围电路主要由存储器电路模块、通信模块以及JTAG调试电路等构成。其中存储器电路模块采用2片HY57V561620FTP芯片作为外扩SDRAM;采用1片SST39VF1601(2 MB)芯片作为NOR Flash,用于存放bootloader程序;采用1片K9F1208芯片(64 MB)作为NAND Flash,用于存放操作系统以及文件系统。在通信模块中采用DM9000网卡芯片和网络变压器HR911103A,以实现以太网接口的设计;同时设计了USBhost接口电路,为下一步实现WLAN通信提供接口。A/D和D/A接口电路实现数据的采集和控制信号的发出。
2 控制器软件平台设计
2.1 软件平台整体结构
控制器节点软件体系结构如图2所示。其中最底层为设备驱动程序层,主要进行处理器初始化和驱动各外设电路模块;第2层为嵌入式Linux操作系统,主要管理系统的软硬件资源、上层应用,以及操作底层驱动接口;第3层为Web服务器,以实现控制器的:Browser/Server访问控制;第4层为应用程序,主要包括实时数据库、GPC控制算法和时钟同步应用程序。
2.2 bootloader的配置和编译
首先在宿主机的Linux下建立arm-linux-gcc-2.95.3交叉编译环境,将vivi.tgz解压缩到Linux的相应目录下,进入vivi目录,执行make menuconfig命令进入vivi配置界面,对vivi的参数进行配置。完成配置之后,进行编译,此时已经在当前目录下生成了vivi。可使用H-JTAG将vivi烧写到NAND Flash运行。
2.3 Linux的移植
(1)编译Linux内核
首先在宿主机的Linux下建立arm-linux-gcc-3.4.1交叉编译环境,然后将Liunx-2.6.13.tgz解压缩到Linux的某一目录下,执行make menuconfig命令进入内核配置界面,定制Linux内核,包括配置CPU选项、网卡声卡驱动、串口、对yaffs文件系统的支持等选项。完成定制之后,保存设置退出。然后对内核进行编译,即可生成内核映像文件zImage。
(2)制作yaffs文件系统
制作yaffs文件系统映像需要使用mkyaffsimage工具程序。首先将其解压缩到/usr/sbin目录下,然后将文件系统解压缩到Linux某一目录下,此时用户可以将自己编写的应用程序或其他文件添加到文件系统中。添加完毕后使用mkyaffsimage命令即可得到root.img镜像文件。最后可使用H-JTAG将生成的映像文件烧写到NAND Flash运行。
2.4 Boa服务器的移植和构建
在网络化测控系统中,每个测控节点都需要使用Web浏览器进行监控和数据交互。Web服务器作为一个数据载体,可以将本地的信息和数据通过网络传递给远端发出请求的客户,这对远程网络化监控的实现有重要意义。因此Web Server的移植成为一项必不可少的工作。Boa的优点在于其源代码开放、性能好和可靠性高。本文中Web Server的构建也是基于Boa展开的。
首先在官方网站上下载Boa的源码boa-0.94.13.tar.gz,解压缩到Linxu宿主机的某一目录下,然后进入src目录,执行./congfig命令,生成Makefile.in文件。由于生成的Makefile文件是针对X86平台的,为了生成能够在ARM上运行的Boa,需要修改Makefile文件。找到CC=gcc,CPP=gcc-E这两行,并修改为CC=arm-linux-gcc,CPP=arm-linux-gcc-E;然后使用make命令进行编译,编译成功后会在src目录下生成1个可运行在ARM平台下的Boa可执行文件,然后将编译好的Boa程序放入,/sbin目录下。
在目标板上运行Boa之前,还需要对boa.conf文件进行配置。boa.conf文件主要包含的boa基本参数:Port,boa服务器监听的端口;User,连接到服务器的客户端的身份;DocumentRoot,HTML文件的根目录。用户可以根据自己的需要进行设置,设置完毕后进入sbin目录,直接运行Boa就可以直接启动Web服务器。
S3C2440 Linux GPC控制器 GPC 相关文章:
- 千兆网络接口在S3C2440A系统中的应用(10-19)
- 基于嵌入式ARM9的USB设计与实现(07-16)
- 基于嵌入式系统的银行评价器设计方案(03-29)
- 基于S3C2440的LED背光源节电系统设计方案(02-18)
- 基于S3C2440的基础介绍、技术文献及设计方案大全(03-08)
- SoC前段(ARM)嵌入式系统开发实作训练(上) (02-28)