基于嵌入式nu的手机缴费系统.docx
- 文档编号:11924911
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:49
- 大小:2.27MB
基于嵌入式nu的手机缴费系统.docx
《基于嵌入式nu的手机缴费系统.docx》由会员分享,可在线阅读,更多相关《基于嵌入式nu的手机缴费系统.docx(49页珍藏版)》请在冰豆网上搜索。
基于嵌入式nu的手机缴费系统
目 录
摘 要1
关键字1
Abstract2
Keywords2
1 绪论3
1.1 引言3
1.2 嵌入式手机缴费系统概述3
1.3 论文的主要工作4
2 系统平台分析6
2.1 开发板芯片S3C2410X简介6
2.2 开发环境6
2.2.1 交叉编译工具链6
2.2.2 建立tftp服务器7
2.2.3 配置NFS服务8
2.2.4 设置minicom9
2.3 开发板BootLoader11
2.3.1 移植u-boot11
2.3.2 配置和编译u-boot12
2.3.3 烧写u-boot12
3 定制板上系统14
3.1 开发板Linux内核14
3.1.1 移植Linux内核14
3.1.2 Linux内核的配置和编译15
3.1.3 烧写Linux映像zImage17
3.2 制作板上根文件系统19
3.2.1 在一个已建好的文件系统上进行修改19
3.2.2 建立根文件系统19
3.3 LCD驱动20
3.3.1 FrameBuffer21
3.3.2 JXARM9-2410-1开发板Linux显示(FrameBuffer)驱动程序21
3.4 网络驱动22
4 本系统支撑软件的构建23
4.1 MiniGUI简介23
4.2 MiniGUI的安装及配置23
4.2.1 MiniGUI的安装23
4.2.2 MiniGUI的本地运行环境设置23
4.3 MiniGUI的移植24
4.3.1 交叉编译zlib库24
#cd/usr/bin24
4.3.2 交叉编译png库25
4.3.3 交叉编译jpeg库25
4.3.4 交叉编译popt库25
4.3.5 交叉编译libmingui25
4.4 MiniGUI编程基础28
4.5 mSQL及其配置与编译29
4.5.1mSQL简介29
4.5.2 mSQL的安装30
4.5.3 mSQL的配置30
4.6 交叉编译mSQL31
4.7 操作mSQL数据库32
4.7.1 创建数据库32
4.7.2 创建表32
4.7.3 查询表信息34
5 客户端的设计与实现35
5.1 MiniGUI客户端的设计与实现35
5.1.1 MiniGUI客户端的设计与实现35
5.2 MiniGUI与mSQL接口的设计与实现36
6 系统用户使用指南38
结论41
参考文献41
致 谢42
基于嵌入式Linux的手机缴费系统
摘 要:
随着嵌入式系统技术的发展,以ARM公司的32位RISC处理器结合开源免费、性能优良的Linux操作系统的嵌入式平台,越来越多受到嵌入式手持设备商的青睐,近年来,显现了巨大的市场价值和广阔的应用前景。
本论文研究和解决在课题是设计一个基于嵌入式Linux的手机缴费系统。
首先介绍了嵌入式手机缴费系统的优点和应用前景。
然后,进行了硬件平台的介绍,搭建软件开发平台。
再次,介绍u-boot,编译内核,定制根文件系统。
安装和交叉编译了图形系统MiniGUI和嵌入式数据库mSQL,之后,分析了MiniGUI和mSQL的编程以及如何将mSQL操作函数嵌入到MiniGUI程序中进行程序设计。
最后,总结了本设计中的缺陷并提出相应解决方法。
关键字:
嵌入式系统;MiniGUI;内核;Linux;mSQL
ASystemofMobilePaymentbasedonembeddedLinux
LuRongChang
(20010SessionStudentofTheInformationManagementandInformationSystemMajorOfDepartmentOf
ComputerScience HunanCityUniversity,Yiyang,Hunan,413000,China)
Abstract:
Withthedevelopmentofembeddedsystemstechnology,the32-bitRISCprocessor,suchasARM,combinedwithopensourceprojectoffreeandtheembeddedoperatingsystemplatformofLinuxwhichplayexcellentperformanceonembeddeddevelopmentbecomemoreandmorepopularinembeddedhandhelddevicemakers,showingahugemarketvalueandbroadapplicationprospectsinrecentyears.Inthisthesis,researchandresolveissueshasbeendoneistodesignaLinux-basedembeddedsystemsofmobilepayment.Firstofall,itintroducedtheadvantagesandapplicationprospectsofmobilepaymentsystem.Then,itintroducedhardwareplatform,thesetupofthesoftwareplatformneededindevelopmentsystem.Consequently,itintroducedtheconceptaboutu-boot,whichistheBootLoaderoftheARMtarget,themethodofcompilingtheLinuxkernelandhowtocustomizetherootfilesystem.Finally,itplantedhegraphicssystemofMiniGUIandmSQLDBMSthroughthecrosscompiler.Basedontheworkmentionedabove,thisthesisanalysistheprogrammingofMiniGUIandmSQLandrealizeapracticalsystemofmealorder,anditjustgiveagoodexampleofitselfhowtooperatemSQLfunctionsembeddedintheMiniGUIProgramming.Inconclusion,thisthesissummedupthedeficienciesindesignandthecorrespondingsolution.
Keywords:
embeddedsystems;MiniGUI;kernel;Linux;mSQL
1 绪论
1.1 引言
进入21世纪以来,嵌入式系统在我们日常生活中可以说是无处不在,我们每天都会接触到各种各样的嵌入式产品,嵌入式产品在极大地方便了我们的生活的同时也给企业带来了巨大的利润。
嵌入式系统是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件等组成。
嵌入式开发或者说嵌入式系统是当前最热门最有发展前途的IT应用领域之一,大到油田的集散控制系统和工厂流水线,小到家用VCD机或手机,甚至组成普通PC终端设备,广泛应用于汽车电子、无线通信、智能手机、便携式产品、数码相机、数字电视、数字机顶盒等领域。
由于现代控制技术、多媒体技术和Internet的应用与普及,也促使消费电子、计算机、通信(3C)一体化趋势步伐加快,嵌入式技术也就自然的成为一个研究热点。
嵌入式系统的应用将越来越多样化,为越来越多领域的用户提供最佳的选择方案。
当前通信服务越来越多样化,消费者对其服务质量和水平的要求也越来越高。
根据其对产品要求小型化、低功耗、专用性等特点,可断言嵌入式技术将在提高通信服务过程中发挥重要作用。
1.2 嵌入式手机缴费系统概述
可以说嵌入式手机缴费系统是当前通信行业对提高自身服务水平和质量的一大尝试,它集网络通信技术和电脑终端技术于一身。
手机缴费系统投入市场之后可以为提高通信行业的服务水平提供强有力的支持。
目前,国内已有公司开发出了手机缴费系统,市场上出现的手机缴费系统都是作为提高当前通信业的服务水平的一部分出现的,它们除了基本的缴费功能外,为了便于客户和管理者使用,还添加了一些功能,例如,查询当前手机余额,以及当月消费记录等。
要实现功能完善的手机系统,往往需要集中公司的人力物力资源,个人要想完成功能完善的手机缴费系统是有一定难度的。
基于各种资源的有限,本次设计只是实现了一个功能简单的手机缴费系统。
在系统的实现中涉及到的技术主要有:
嵌入式技术、数据库技术、用户图形界面编程技术等。
基于手机缴费系统的实现功能,它一般要涉及到很多数据,而且还要对数据进行各种处理,所以一般手机缴费系统都用数据库来管理数据。
另外,由于广大消费者的非专业性,为了方便他们的使用,还要设计一个比较友好的图形用户界面。
当然,在手机缴费系统,需要用到计算机网络。
在本次设计的系统中,用MiniSQL(mSQL)来管理数据,当然操作系统自然选用Linux,用户图形界面使用了MiniGUI进行设计。
在硬件上,选用了低功耗、高性能的ARM9处理器。
手机缴费系统由客户端、计算机网络和服务器组成。
客户端采用嵌入式技术实现,是本系统开发的重点和难点,它的服务对象主要是广大消费者,消费者可以用它进行费用的缴纳等。
服务器充当数据管理员的角色,系统中的所有数据都保存在其上,它通过数据库管理系统轻松完成数据库管理的任务。
服务器主要面向营业员。
客户端与服务器通过网络连接。
通信行业引进手机缴费系统,具有重大的意义:
首先,提高运营效率和降低经营成本,使用手机缴费统可以加快缴费速度,减少手工缴费的人工服务,减少人力资源的投入;其次手机缴费系统是一个高科技产品,它代替传统的消费者需要去指定地点缴费的方式给人一种全新的感觉;最后,能营造一个便捷、舒适的缴费环境。
1.3 论文的主要工作
本文是在武汉创维特提供的JXARM9-2410-1开发板及其软件系统的基础上完成的。
本文的主要工作包括:
第一:
搭建开发平台。
安装Linux和Windows双操作系统,并进行一些必要的配置。
第二:
对开发板上原有系统进行改造。
在宿主机的RedHatLinux操作系统下安装Linux发行包以及交叉编译器arm-linux-gcc。
然后对Linux内核进行配置(makemenuconfig)并选择适合本系统的配置选项,配置完成后进行编译生成Linux映像文件zImage。
本实验主要应用MiniGUI和mSQL两个软件,因此在开发板根文件系统中需要添加运行上述软件用到的相应库文件和头文件。
第三:
在宿主机上安装和移植MiniGUI和mSQL。
开发板上运行的软件需在宿主机上用交叉编译工具链arm-linux-gcc进行交叉编译,之后下载到开发板运行。
第四:
使用MiniGUI并编写MiniGUI程序,分别完成宿主机端和开发板手机缴费系统用户图形界面的应用程序。
第五:
在用户图形界面中嵌入访问mSQL服务的接口。
在MiniGUI程序中使用mSQL数据库的API函数对数据进行访问和操作。
第六:
总结了论文的成果。
指出了本设计中的一些不足之处并提出了若干解决方案。
2 系统平台分析
JXARM9-2410-1教学实验系统的硬件部分包括基本模块、调试模块、通信模块、人机交互模块、A/D及D/A模块、工业控制模块、IDE/CF/SD/MMC接口模块、GPRS模块、GPS模块和扩展模块。
目标处理器采用Samsung公司的S3C2410X微处理器。
主板包括3个UART接口,标准JTAG接口,10M/100M以太网卡,2个USBHOST接口,5.7英寸、STN256色LCD显示器/触摸屏,640X480的分辨率。
系统具有体积小、功耗低、处理能力强等特点。
2.1 开发板芯片S3C2410X简介
S3C2410X微处理器是一款有Samsung公司为手持设备设计的低功耗、高集成度的机遇ARM920T核的微处理器。
为了降低系统总成本和减少外围器件,这款芯片中还集成了以下的部件:
16KB指令Cache、16KB数据Cache、MMU、外部存储控制器、LCD控制器(STN和TFT)、NANDFlash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器,以及4个PWM定时器和1个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。
现在它广泛应用于PDA、移动通信、路由器、工业控制等领域。
2.2 开发环境
绝大多数的Linux软件开发都是以本机开发方式进行的。
由于嵌入式系统一般资源都比较紧张,不能在本机(即开发板)运行开发工具,因此,嵌入式系统的开发采用一种叫做交叉编译调试的方式。
为了进行交叉编译与调试,需要在宿主机(运行编译与调试工具的机器)上构建一些工具与搭建合适的环境,比如安装交叉编译工具链,建立tftp服务器,构建网络文件系统nfs等。
2.2.1 交叉编译工具链
交叉编译工具链的目的是为了在一个平台体系结构下能编译、链接、处理和调试另一个平台体系结构下的程序,使得编译生成的程序能够在另一个平台下运行。
Linux使用的是GNU的工具链,包括:
binutils,gcc,glibc等。
与JXARM9-2410-1开发板配套的光盘里有交叉编译工具链,版本号为2.95.3,解压在宿主机的/usr/local/arm/2.95.3目录下。
同时,移植mSQL时也会用到版本号为3.4.1的交叉编译工具链。
具体情况可见参考文献[1]。
在编译过程中,经常接触的工具除了交叉编译工具链外,还有一个就是GNUmake程序。
make完成开发项目中自动编译的工作。
Make主要是通过Makefile来完成工作的。
2.2.2 建立tftp服务器
开发板上使用u-boot作为BootLoader,这个BootLoader使用tftp协议从宿主机上下载文件到开发板上。
为了使用tftp在宿主机和开发板之间传输文件,在宿主机上需要安装配置tftp服务器。
本文的宿主机安装的是RedHat9.0完整版,已经安装有tftp服务器程序,仅进行适当的配置即可。
在宿主机上执行:
#setup,如下图2.1
图2.1tftp服务配置1
然后选择Systemservice,将其中的tftp一项选中,并去掉ipchains和iptable两项服务,还要选择Firewallconfiguration,选中Nofirewall。
如下图2.2
图2.2tftp服务配置2
左后,退出setup,执行#servicexinetdrestart命令以启动tftp服务。
2.2.3 配置NFS服务
网络文件系统NFS极大地简化了开发与调试过程。
在没有NFS的情况下,一般的开发调试过程都是:
编译生成目标板平台的可执行文件→制作ramdisk→下载ramdisk到开发板上→启动开发板的系统→运行程序。
这个过程将一直重复,知道程序的运行结果正确为止。
有了NFS,开发板上的系统可以把宿主机的某目录当作本机上的目录甚至是根目录。
这样,把宿主机上交叉编译好的可执行文件复制到NFS目录中,在开发板上就可以运行该科执行文件。
开发调试过程变为:
编译生成目标平台的可执行文件→复制文件到NFS目录→目标板上mount操作→运行程序,省去了制作ramdisk、下载ramdisk和重启开发板几个步骤,而这几个步骤又是占整个过程绝大部分时间的,因此也节省了大量的宝贵时间。
RedHat9.0完全安装版有NFS服务器程序,需要做一些配置才能使其可用。
编辑/etc/exports文件,命令是#vi/etc/exports,在该空文件中添加/tftpboot192.168.1.45/255.255.255.0(rw),其中“/tftpboot”是共享的目录,也是目标系统的根文件系统目录:
“192.168.1.45”表示该服务提供给所有的主机和网络。
然后用命令$/etc/init.d/nfsrestart重新启动NFS服务,刚才的设置就生效了。
注意,在使用NFS服务之前应确认防火墙没有限制NFS服务,并且在系统服务中portmap服务是启动运行的。
如下图2.3
图2.3启动nfs服务
2.2.4 设置minicom
在Linux操作系统下,使用minicom作为超级终端,因此首先必须正确配置超级终端。
在宿主机端Linux下执行:
#minicom–s
图2.4 minicom配置1
第一次使用时需要对串口进行配置,在选择“Serialportsetup”,然后回车将出现如下配置菜单,如图2.4。
参照图2.5的配置,相应输入左边的“A”、“B”等字符将出现配置各自参数的界面,分别配置成上述设置。
设置完成后回车退出,并选择保存。
然后选择Exit菜单,将启动minicom程序,此时请将JXARM9-2410的UART0连接到PC机串口并将JXARM9-2410重新上电既可。
图2.5minicom配置2
2.3 开发板BootLoader
BootLoader是在操作系统内核或用户应用程序运行之前运行的一段小程序。
通过这段小程序可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。
对于一个嵌入式系统来说,可能有的包括操作系统,有的小型系统也可以只包括应用程序,但是在这之前都需要BootLoader为它准备一个正确的环境。
武汉创维特JXARM9-2410-1使用u-boot作为开发板的BootLoader。
u-boot是由德国DENX小组开发的交叉平台BootLoader,其全称为universalBootLoader。
u-boot的开发目标是支持尽可能多的嵌入式处理器和嵌入式操作系统。
通过串口链接以后,用户可以交互式地输入命令和看到结果。
2.3.1 移植u-boot
u-boot能够支持多种体系结构的处理器,支持的开发板也越来越多。
因为BootLoader是完全依赖硬件平台的,所以在新电路板上需要移植u-boot。
移植u-boot工作就是添加开发板硬件相关的文件、配置选项,然后配置编译。
在u-boot-1.1.1版本中已经有关于S3C2410X的移植代码,因此只要进行配置选择正确的移植版本即可,本系统使用的是smdk2410-config配置。
到此,u-boot的移植过程就结束了,没做什么工作,只是引用了别人的成果而已。
嵌入式系统开发中这是一个很重要的思想:
将硬件配置最接近的开发板相应工具的源码做修改并使之能在目标板上运行。
2.3.2 配置和编译u-boot
进入u-boot所在的目录
#cd/home/cvtech/jx2410/u-boot-1.1.1
删除目录下编译的中间文件
#makedistclean
为目标板选择相应的配置文件
#makesmdk2410_config
编译
#make
2.3.3 烧写u-boot
如果当前系统已经有u-boot烧写到flash,也可以通过u-boot烧写。
JX2410#protectoffall
Un-ProtectFlashBank#1
JX2410#erase1:
0
EraseFlashSectors0-0inBank#1
Erasingsector0...done
JX2410#tftp30000000u-boot.bin
RTL8019ASFounded!
MAC:
0x8-0x0-0x3e-0x26-0xa-0x5b
MAC:
0x0:
0x0:
0x0:
0x0:
0x0:
0x0
TFTPfromserver192.168.1.188;ourIPaddressis192.168.1.45
Filename'u-boot.bin'.
Loadaddress:
0x30000000
Loading:
#########################
done
Bytestransferred=126976(1f000hex)
JX2410#cp.b3000000001f000
CopytoFlash...\done
成功后重新上电,执行的将是新的u-boot。
(JX2410#表示u-boot控制台,紧接其后的以黑体和斜体字表示的为在u-boot控制台上输入的命令行,并以回车键结束。
)这种方法是在系统中原有的u-boot正常的情况下进行的,如果由于操作失败或者中途断电等原因导致烧写失败,将使得u-boot无法正常启动,因此也就不能再使用上述方法烧写,而只能使用仿真器进行烧写。
3 定制板上系统
3.1 开发板Linux内核
Linux是一个类似于Unix的操作系统,不仅能够运行在PC上,在嵌入式系统方面也有很成熟的应用,已成为嵌入式操作系统的理想选择。
将Linux内核移植到ARM的时候要打上ARM公司的补丁。
创维特开发板上的系统打的是2.4.18-rmk-pxal补丁。
该系统除了完成基本的内核移植外,还完善了大量外围设备的驱动。
3.1.1 移植Linux内核
对于嵌入式Linux系统来说,内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及Linux内核通用的程序。
移植的难度也取决于两种硬件平台的差异。
Linux对于特定的硬件平台的软件就是BSP(BoardSupportPackage)。
由于Linux内核具备可移植性的特点,并且已经支持了各种体系结构的很多种目标板,很容易从中找到和自己硬件类似的目标板。
参考内核已经支持的目标板来移植BSP,就如同使用模板开发程序。
内核移植工作,主要就是添加开发板初始化和驱动程序的代码。
这部分代码大部分是跟体系结构相关的,在arch目录下按照不同的体系结构管理。
下面以ARMS3C2410平台为例,进行内核代码移植。
添加开发板平台支持选项,主要修改以下几个文件:
arch/arm/mach-s3c2410
arch/arm/tools/mach-types
arch/arm/config.in
arch/arm/Makefile
arch/arm/boot/compressed
include/asm-arm/arch-s3c2410
移植开发板驱动程序
S3C2410属于片上系统,处理器芯片具备串口、显示等外围接口的控制器。
这样,参考板上的设备驱动程序多数可以直接使用。
但不同的开发板可以使用不同的SDRAM、Flash、以太网接口芯片等。
这就需要根据硬件修改或者开发驱动程序。
3.1.2 Linux内核的配置和编译
配套光盘中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 nu 手机 缴费 系统