. ..
.
一、 设计介绍 .......................................................................................................................... 3
1.1 设计目的 ...................................................................................................................... 3 1.2 课题分析 ..................................................................................................................... 3 二、 系统硬件模块 ................................................................................................................... 3
2.1 S5PV210 ....................................................................................................................... 3 三、 系统软件 .......................................................................................................................... 3
3.1 操作系统 ..................................................................................................................... 3 3.2 编译工具 ..................................................................................................................... 4 四、 模块划分 .......................................................................................................................... 4
4.1主界面模块 ................................................................................................................... 4
4.1.1 功能描述 ............................................................................................................ 4 4.1.2 程序代码 ........................................................................................................... 4 4.2 wifi设备模块 ............................................................................................................... 6
4.2.1 功能描述 ........................................................................................................... 6 4.2.2 程序代码 ........................................................................................................... 6
五、 结束语 ............................................................................................................................. 8 六、 附录 ................................................................................................................................. 9 6.1 设备管理完整代码 ....................................................................................................... 9
z.
. ..
.
广 西 科 技 大 学
z.
课 程 设 计 报 设 计 名 称: 物流设备界面管理系统 专 业 班 级: 自动化142 学 生 姓 名: 学 生 学 号: 指 导 教 师: 设 计 时 间: 2016.11
告 . ..
.
一、设计介绍
1.1 设计目的
此次课程设计是基于s5pv210芯片在linux系统上进行编程设计。旨在通过具体的工程项目实训能够使我们基本掌握在虚拟机环境下,运用linux系统指令进行程序设计与编写;理解模块化的设计思想以及学会利用库函数进行编程;熟知函数之间的封装,调用与API接口。为将来进行大规模的系统设计与开发打下良好基础。
1.2 课题分析
课题名称为“物流设备界面管理系统”,具体分为4大模块:Wife设备管理,Camrea设别管理,Zigbee设备管理以及RFID管理。希望能够通过编程实现每个设备的借还记录管理,方便仓库管理人员对设备的管理与维护。具体描述为,当从仓库中向外借出设备时,该设备的数量减一;反之数量加一。如此,可大大减轻相关人员的工作量,实现设备的自动化管理。
二、系统硬件模块
由于此次设计是由校企合作和培训机构导师进行讲解,于是我们硬件模块用到了S5PV210的开发板。一下详细介绍这块芯片以及我们系统使用到开发板的相应功能模块。
2.1 S5PV210
S5PV210采用了ARM CortexTM-A8内核,ARM V7指令集,主频可达1GHZ,64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB的二级缓存,可以实现2000DMIPS(每秒运算2亿条指令集)的高性能运算能力。S5PV210包含很多强大的硬件编解码功能,内建MFC(Multi Format Codec),支持MPEG-1/2/4,H.263,H.264等格式视频的编解码,支持模拟/数字TV输出。JPEG硬件编解码,最大支持8000x8000分辨率,内建高性能PowerVR SGX540 3D图形引擎和2D图形引擎,支持2D/3D图形加速,是第五代PowerVR产品,其多边形生成率为2800万多边形/秒,像素填充率可达2.5亿/秒,在3D和多媒体方面比以往大幅提升,能够支持DX9,SM3.0,OpenGL2.0等PC级别显示技术。具备IVA3硬件加速器,具备出色的图形解码性能,可以支持全高清、多标准的视频编码,流畅播放和录制30帧/秒的1920×1080像素(1080p)的视频文件,可以更快解码更高质量的图像和视频,同时,内建的HDMIv1.3,可以将高清视频输出到外部显示器上。
此次设计我们主要用到了一下模块:LCD屏幕显示,触摸板,以及摄像头等模块。
三、系统软件 3.1 操作系统
这次设计选择了linux作为操作系统。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows
z.
. ..
.
中相似,可以说是一个Linux版的Windows。Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
3.2 编译工具
因为装了ubantu的虚拟机所以采用了交叉编译,编译工具为gcc。GCC的外部接口长得
像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。
四、模块划分 4.1主界面模块
4.1.1 功能描述
主界面主要是调用了LCD屏幕显示相关机构及开发人员的详细信息,并附上属于自己的Logo。具体编程思路为:首先对LCD屏幕进行配置,相关的参数可以通过库函数进行修改;显示自己制作的Logo图片;通过循环输出每个像素点。
4.1.2 程序代码
#include
#define TS_DEV \#define LCD_DEV \ int lcd_init(void) { //void *则为“无类型指针”,void *可以指向任何类型的数据 g_lcd_fd = open(\ //打开屏幕 g_fd_men=(unsignedlong*)mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,
g_lcd_fd,0);
z.
. ..
.
//强制转换为无符号长整型指针 if(g_fd_men == NULL) { printf(\ return -1; } return 0; }
int show_shape(unsigned long *g_fd_men,int x,int y,int w,int h,const char *pathname) { int bmp_fd,i,j; char bmp_buffer[w*h*3]; int lcd_buffer[w*h]; bmp_fd = open(pathname,O_RDONLY);//图片首地址 if(bmp_fd == -1) { printf(\ return -1; } lseek(bmp_fd,54,SEEK_SET); read(bmp_fd,bmp_buffer,sizeof(bmp_buffer)); for(i=0;i show_wifi_number(int x,int y,int wifi) { int fd; char buffer[1]; show_shape(g_fd_men,x,y,72,72,bmp[wifi]); } z.