基于S3C2440处理器Linux平台的物流配送系统设计

发布者:SparklingSoul最新更新时间:2010-11-18 关键字:物流系统  GPS  RFID  Linux 手机看文章 扫描二维码
随时随地手机看文章

引言

    现代的物流系统已经进入了信息化的阶段。信息化配送系统对信息化物流有着重要的影响。物流配送信息化,就是运用现代信息系统与电子化手段加强对企业物流链管理,形成企业物流的支撑体系,进而实现物流配送的高效率与高效益。本文通过嵌入式系统模块与GPS定位技术的融合,加上计算机控制中心,形成一个比较完善的物流配送系统。在物流配送过程中,通过这个系统对整个物流配送过程进行监控与管理。

1  相关核心技术概述

1.1  移动定位技术

    目前的移动定位技术已经非常成熟,最主要的有3类:

① 利用卫星进行后方交汇的定位技术,即GPS(Global Positioning System,全球定位系统),是由美国建立的一个卫星导航定位系。利用该系统,用户可以在全球范围内实现全天候、连续、实时的三维导航定位和测速;另外,还能够进行高精度的时间传递和精密定位。

② 利用移动通信技术提供位置服务的定位技术,即CellID (Cell Identification,小区识别码),通过识别网络中哪一个小区传输用户呼叫,并将该信息翻译成纬度和经度来确定用户位置,从而实现定位。确保终端在GPS定位失去信号的情况下, 保持最低限度的定位信息的提供。CellID方式在城市及人口密集区域能提供相对高的精度, 与GPS在城市高层建筑、林荫道、地下隧道等遮蔽情况下性能降低形成较好的互补。由于GSM(Global System for Mobile Communications,全球移动通信系统)相对于CDMA具有更小的小区半径, 因此具有相对较高的CellID定位精度。

③ 利用射频设备记录位置的定位技术,即RFID(Radio Frequency Identification,射频识别)。通过读取用于标识地理坐标的标签数据来获取定位信息。其定位精度仅取决于标签存储定位信息的精确性, 理论上可以达到任意高精度。RFID可用于仓库、码头等需要高精度定位信息的场所,来提供定位信息和其他辅助功能。RFID现在广泛用于公交报站系统,公交车上的设备检测到站点的射频设备后就自动报站,免去了公交司机到人工开启开关报站的麻烦。

    本文在物流配送网络中采用GPS辅助定位系统(GPS十CellID+RFID三者结合)的定位技术,以保证在任何时刻都能达到比较好的精度。

1.2  移动终端通信技术

    目前,常用的移动终端技术主要包括蓝牙技术、GPRS接入互联网技术、构筑在GPRS基础上的无线数据传输技术等。

    蓝牙技术是一种支持设备短距离通信(一般10 m内)的无线电技术。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4 GHz ISM(即工业、科学、医学)频段。其数据速率为1 Mbps,采用时分双工传输方案实现全双工传输。

    GPRS技术是一种新的GSM数据业务,它可以给移动用户提供无线分组数据接入服务。GPRS主要是在移动用户和远端的数据网络(如支持TCP/IP、X.25等网络)之间提供一种连接,从而给移动用户提供高速无线IP和无线X.25业务。GPRS采用分组交换技术,它可以让多个用户共享某些固定的信道资源。

2  系统设计

2.1  物流配送系统模块设计

    物流配送系统物理结构设计如图1所示。

图1  系统物理结构设计

2.2  物流配送控制中心的功能设计

    控制中心由GPRS/GSM通信服务器、GIS服务器、Web服务器、地图数据库服务器、业务服务器组成,通过路由器连接至Internet。GPRS/GSM通信服务器处理与各个终端之间的一对多双向数据通信;GIS服务器主要实现电子地图的功能,并负责地图数据的传输;Web服务器则是将电子地图和各目标信息结合起来,为控制用户提供监控界面;地图数据库和业务数据库分别存储电子地图数据和监控业务数据。

    控制中心软件部分主要包括10部分,结构图如图2所示。

图2  控制中心软件结构图

2.3  移动终端的硬件设计

    移动终端可以实现个人用户的实时信息查询,用户可以通过GPS辅助定位系统获得本机的位置描述,并通过GPRS网络将本机的位置描述实时地传送到物流配送控制中心,实现控制中心对移动终端的监控,同时,也可以通过GPRS从控制中心平台获得查询对象的所在位置描述。这些操作均利用GPRS无线网络以Web Service的方式实现。

   基于S3C2440的移动终端硬件设计如图3所示。S3C2440模块(包括各种硬件接口及嵌入式Linux软件等)负责对GPS信号的接收处理、视图显示及对数据的处理。从GPS模块中获取定位数据,从RFID模块与CellID模块获得更详细的定位信息作为补充,然后将位置信息通过GPRS发送给控制中心。实现终端和控制中心的信息上传和下传功能。

图3  基于S3C2440的移动终端硬件设计

    RFID模块主要负责对当前物流载体的数据采集,以获得RFID定位信息,并将采集到的RFID信息通过蓝牙模块传输给S3C2440。GPS模块根据卫星定位获得当前位置信息,同样通过蓝牙模块进行传输(如距离比较近,也可以有线传输)。CellID模块主要通过无线数据传输获得定位信息,然后通过GPRS模块传输给中心控制器。LCD模块主要提供人机交互的功能,除了显示屏外还需配备键盘等输入设备,或者直接采用液晶屏。存储器模块除了扩展的片外RAM外,还需给嵌入式数据库提供一定的存储空间。

2.4  软件设计

2.4.1  软件总体设计

    如图4所示,按照功能可以将软件分为以下4部分。

图4  软件总体设计图

① 用户界面。要实现一个友好的用户界面,以便用户在S3C2440 LCD屏上直观地获得图文并茂的信息,以及选择服务功能和输入信息。

② 地图数据处理。主要实现电子地图的数据组织、地图显示、地图标图功能、定位导航功能,便于用户使用地理信息的服务功能。终端处理的数据包括GPS数据、GIS数据、文本数据、多媒体数据。

③ GPS通信模块。S3C2440模块通过蓝牙与GPS模块相连接,对接收到的GPS数据进行处理,才能得到所需要的定位信息(比如经纬度数据等)。利用篮牙进行串口通信的编程,包括打开串口、配置串口、发送接收数据、关闭串口4个步骤。

④ GPRS通信模块。利用GPRS无线物流在S3C2440和控制中心之间进行双向通信。本文采用Web Service的方式来进行。

2.4.2  GPS与RFID数据提取

    GPS接收机只要处于工作状态,就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。从串口接收数据后将其放置于缓存内,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的、可供使用的定位信息数据。例如,“$GPRMC”帧结构的1、2、3、5、9段是我们需要得到的数据,分别是时间、数据的可信度、纬度、经度、日期。从“$GPRMC”帧中获取定位数据的代码如下:

for(int i=0;i

if(Data[i]="$")//帧头,SectionID为逗号计数器

SeetionID=0;

if(Data[i]==10)//帧尾

if(Data[i]=",")//逗号计数

SectionIiD++;

else{

switch(SeotionID){

case1: //提取出时间

m_sTime+=Data[i];

break;

case2: //判断数据是否可信(GPS天线至少接收到3颗GPS卫星时为A,可信)

if(Data[i]=="A")

GPSParam[m_nNumberl].m_bVaIid=true;

break;

case3: //提取出纬度

m_sPositionY+=Data[i];

break;

case5: //提取出经度

m_PositionX+=Data[i];

break;

case9://提取出日期

m_Date+二Data[i];

break;

default:

break;

}

}

}

    RFID模块通过串口将信息传输至移动终端,信息传输流程如图5所示。当接收缓冲区内字节个数达到或者超过该值后就取出数据并对相应事件进行处理。程序设计的主要任务是:读出标签ID信息(读ID命令);向标签写入存放在数据库中的数据信息(写信息);读取标签中写入的数据信息,查询数据库以得到具体的产品信息(读信息);实时显示读标签信息的结果。

图5  RFID模块至移动终端的信息传输流程

    读ID代码:

void CMyDlg::OnBtn_ReadID() {

SendData("Read");

if(0==m_ctrlComm.GetOutBufferCount())

m_ctrlComm.SetRTHreshold(18): //读取标签ID所设的阈值

}

    读信息代码:

void CMyDlg::OnBtn_ReadMessage(){

SendData ("ReadString(18,67)int(8*),int(90,4)");

if(0==m_ctrlComm.GetOutBufferCount())

m_ctrlComm.SetRTHreshold(40): //读取标签ID所设的阈值

}

2.4.3  移动终端S3C2440模块软件设计

    采用模块化结构设计,根据不同功能分别进行编写和调试,等到各个模块都调试成功后,将各个模块连成整体,组成软件系统。

    移动终端S3C2440模块完成的主要内容包括两部分:

① 完成从移动终端到远程控制中心的定位信息的上行传输。当远程控制中心要从移动终端获取定位信息时,可以发送命令给S3C2440。这时S3C2440便产生一个中断,并发送命令给各定位模块来获取定位信息,将定位信息进行处理后再通过GPRS模块传给远程控制中心;或者是移动终端由人员键盘控制产生中断,然后采集定位信息传送给远程控制中心。

② 接收控制中心到移动终端的下行传输的信息。控制中心可以将各种数据传送给终端设备。比如,控制中心通过GIS发现当前移动终端所选道路拥塞,则可以给移动终端发一条改变路线的建议信息,这样非常方便地实现了远程控制中心与移动终端的交互。

    S3C2440上行至控制中心的软件设计主要流程如图6 所示。

图6  S3C2440上行至控制中心的软件流程

结语

     本文以GPS定位数据为基础,GPRS网络作为承载网络,结合物流业发展实际需要,将物流配送过程数字化与信息化,实现了对物流配送系统的监控与管理。射频识别技术、定位技术、传感器技术以及无线通信技术在未来必将深入到物流业的各个方面。

关键字:物流系统  GPS  RFID  Linux 引用地址:基于S3C2440处理器Linux平台的物流配送系统设计

上一篇:君正电路过度依赖华芯飞 疑以子公司避税
下一篇:嵌入式系统中的处理器技术综述

推荐阅读最新更新时间:2024-05-02 21:12

RFID帮助核去污和退役工作更有效,更绿色
    东田纳西技术园(East Tennessee Technology Park,ETTP)在举行为期一年 RFID 试点项目之后 - 即采用一套 RFID 方案管理和追踪材料,作为 ETTP 最大的去污和退役(D&D)措施,Bechtel Jacobs 现扩展这项技术的使用范围。该方案 - 被称为“完全自动电子装运系统” - 用于提高机构内交通运营效率。     Bechtel Jacobs 负责 ETTP 的清洁工作。K-25 综合建筑、各类辅助和支持建筑的退役和去污工作是合同的主要内容。单独 K-25 项目就预计会产生超过 300,000 立方码的包装、运输和一次性废料(超过 30,000 趟船运)     方案结合 G
[网络通信]
基于嵌入式Linux的家居监控系统设计
   1 系统流程架构   本系统的操作系统平台为Linux, 内核版本为2.6,目标板上包括视频采集、GPRS 模块和控制器S3C2440.控制器主要是负责向客户显示及后端服务提供图像数据。视频服务器的启动方式是由后台或触发启动。当用户触发事件时自动启动采集程序或者由用户远程启动,再进行图像数据的抓取。    2 系统设计    2.1 Linux 下设备驱动   Linux 是免费的操作系统,其源代码是公开的,我们能够根据实验的需求进行必要的研究和修改。在Linux 操作系统中,设备都是以文件形式的存在,对设备的操作就是对文件的操作,使用户可以调用通用的文件操作函数来进行访问和操作设备。 设备驱动程序是Linux
[电源管理]
基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 eMMC:KLMxGxFE3x-x00x 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) 概述 eMMC驱动在内核中也已经支持好了,代码在:
[单片机]
基于tiny4412的<font color='red'>Linux</font>内核移植 -- eMMC驱动移植(六)
嵌入式系统中CMOS图像传感器接口技术
背 景 目前数字摄像技术,主要采用两种方式:一种是使用CCD(电容耦合器件)图像传感器,另一种是使用CMOS(互补金属氧化物半导体)图像传感器。 CCD图像传感器具有读取噪声低、动态范围大、响应灵敏度高等优点。但CCD技术难以与主流的CMOS技术集成于同一芯片之中。因而CCD图像传感器具有体积大、功耗高等缺点。 CMOS 图像传感器是近些年发展较快的新型图像传感器,由于采用了CMOS技术,可以将像素阵列与外围支持电路(如图像传感器核心、单一时钟、所有的时序逻辑、可编程功能和模数转换器)集成在同一块芯片上。因此与CCD相比,CMOS图像传感器将整个图像系统集成在一块芯片上,具有体积小、重量轻、功耗低、编程方便、易于控制等优点。
[单片机]
嵌入式<font color='red'>系统</font>中CMOS图像传感器接口技术
S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
uboot启动内核分析 进入cmd_bootm.c,找到对应的bootm命令对应的do_bootm(): int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv ) { boot_os_fn *boot_fn; //boot_fn是个数组函数 ... .. boot_fn(0, argc, argv, &images); //调用数组函数 ... ... } boot_os_fn是个typedef型,如下图所示: 由于定义了宏CONFIG_BOOTM_LINUX,最终会跳转到do_bootm - do_bootm_linu
[单片机]
OK6410A 开发板 (八) 117 linux-5.11 OK6410A linux系统调用
访问内核空间,linux提供了系统调用,分为多类, 1.文件系统相关的接口open,read,等file_operations中的接口(具体有什么,看具体文件系统) 2.进程控制 3.进程通信 4.内存管理 5.系统控制 reboot 6.用户管理 如何查看当前运行或者编译的 linux系统中有多少个 系统调用,以及分别是什么 编译时 : cat System.mmap |grep sys_ , 这里面不仅包括系统调用,还有一些其他的东西,例如 sys_mmap_pgoff // 注意:sys_mmap_pgoff 不是 系统调用 编译时 : arch/arm/kernel/e
[单片机]
OK6410A 开发板 (八) 15 linux-5.11 OK6410A start_kernel 打印角度 第二阶段 概览
do_initcalls 的打印信息 VFS: Mounted root (nfs filesystem) on device 0:10. Freeing unused kernel memory: 1024K 函数分类 arch_call_rest_init rest_init pid = kernel_thread(kernel_init, NULL, CLONE_FS); kernel_init_freeable smp_init do_basic_setup driver_init do_initcalls for (level = 0; level ARRAY_SI
[单片机]
OK6410A 开发板 (八) 69 linux-5.11 OK6410A linux 内核同步机制 禁中断/中断屏蔽的实现
解决的问题是什么 中断 抢占 1.实现原理 1/ 禁止 irq与fiq 2/ 禁止 中断源 // 与 vic/gic 等 中断控制器 相关 适用于 某个中断源 中断处理过程中,不能接受 来自该中断源的中断 2.1 禁止 irq与fiq local_irq_enable arch/arm/include/asm/irqflags.h 36 #define arch_local_irq_enable arch_local_irq_enable 37 static inline void arch_local_irq_enable(void) 38
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved