基于安卓操作系统的智能快件箱的制作方法

文档序号:6636138阅读:170来源:国知局
基于安卓操作系统的智能快件箱的制作方法
【专利摘要】基于安卓操作系统的智能快件箱涉及智能快件箱领域,一种智能快件箱,包括控制主板、电源、电子锁,显示屏,电源和控制主板、电子锁、显示屏相连,控制主板的操作系统为安卓,所述的控制主板的主芯片为ARM架构。控制主板的主芯片包括CPU。控制主板包括串口 、 显示器接口、USB接口、RTC电池 、 RJ45接口、SIM卡座、电源接口、内存。
【专利说明】基于安卓操作系统的智能快件箱

【技术领域】
[0001]本专利涉及智能快件箱。

【背景技术】
[0002]目前,智能快件箱已经逐步开始普及,国家邮政局制定了相关标准《Υζ/Τ0133-201智能快件箱国家标准》,智能快件箱是解决快件投递“最后一公里”问题的有效途径,近年来,随着信息技术的发展和电子商务的繁荣,我国快递业发展保持着高速的增长态势。快递业务规模的激增给快递的末端投递带来了挑战。
[0003]智能快件箱是一种集快件投递与提取多种功能于一体的全天24小时自助服务设备。智能快件箱,有助于解决投递成本高、快件安全无法保证、客户取货不方便以及派送时间与消费者接货时间不一致等问题,成为解决快件投递“最后一公里”问题的有效途径,其现实意义和社会价值主要表现为:降低人力成本、提高投递效率、保护个人隐私。
[0004]智能快件箱是快递末端服务的有益补充,近年来,越来越多国家的邮政企业和快递企业开始应用智能快件箱解决末端投递问题。截至目前,共有近二十个国家应用智能快件箱。国内市场,中国邮政、顺丰、圆通、韵达、中通等快递企业和京东、亚马逊等均开始尝试使用智能快件箱。
[0005]从整体形势上看,邮政企业、主要快递企业以及第三方公司正在积极探索末端投递的解决方案,行业发展的主流依旧是加强网点建设及末端投递人力投入,提高末端投递的服务能力和服务水平。在目前阶段,智能快件箱仍为快递末端投递的一种有益补充,为用户提供了一种良好的服务选择。
[0006]2013年8月21日,国家邮政局组织召开智能快件箱标准研讨会议。与会代表展开认真热烈的讨论,并对标准名称、收寄功能的选取、安全防控措施等问题提出了修改意见和建议。会后,项目组对专家意见进行逐条分析,在此基础上形成了标准征求意见稿。
[0007]目前,智能快件箱的名称多种多样,国内外常见名称有自助包裹箱、自助包裹站、包裹自助系统、自助提货机、自助快递箱等十余种,本专利采用了 “智能快件箱”这一名称。
[0008]国外智能快件箱的安装地点主要选择在户外人员流动密度较高的地带,如车站、购物中心、大型住宅和住宅群等。考虑到室外环境的多变性和复杂性,结合我国国情,国内智能快件箱在选址上主要放置于社区内、学校内、写字楼内、地铁口等场所,具有一定安全保障性。
[0009]智能快件箱大多采用普通单片机控制。使用普通单片机其功能简单,开发较为复杂。如申请号为201320175838.5的专利“一种快递自提装置”、申请号为201320892311.4的专利“智能快递接收装置”、专利号为201210455432.2的专利“一种自动签收机及自动签收应用技术方案”,以上几个专利均为使用单片机控制,单片机(Single chipmicrocomputer )是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。但是普通单片机作为控制系统,如需开发成图形交互等复杂程序时代码开发量较大,处理速度也较慢,大部分用于非图形交互的简单工业控制。


【发明内容】

[0010]为解决上述问题,本专利的目的是提供可以图形界面交互的、使用触摸屏操作的智能快件箱,程序代码开发量较少,处理速度较快的智能快件箱。
[0011]以下给出了本专利的简要概述以及提供本专利的某些方面的基本理解。该概述并非本专利的详尽综述。其并非旨在表示本专利的关键性、决定性要素或刻划本专利的范围。其唯一目的是以简要形式给出本专利的某些概念作为对稍后给出的更详细描述的前序。
[0012]基于安卓操作系统的智能快件箱,一种智能快件箱,包括控制主板、电源、电子锁,显示屏,电源和控制主板、电子锁、显示屏相连,所述的控制主板的操作系统为安卓。控制主板内包括基于安卓的控制软件,所述的控制软件用于控制智能快件箱。安卓即android(Google公司开发的操作系统),Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了 Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了 5岁生日,全世界采用这款系统的设备数量已经达到10亿台。Android的系统架构和其操作系统一样,采用了分层的架构。
[0013]从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
[0014]应用程序,Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
[0015]应用程序框架,开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
[0016]隐藏在每个应用后面的是一系列的服务和系统,其中包括;
丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons),甚至可嵌入的web浏览器。
[0017]内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
[0018]资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
[0019]通知管理器(Notificat1n Manager)使得应用程序可以在状态栏中显不自定义的提示信息。
[0020]活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
[0021]系统运行库,Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
*系统C库-一个从BSD继承来的标准C系统函数库Libc ),它是专门为基于Embedded Iinux的设备定制的。
[0022]*媒体库-基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264, MP3, AAC, AMR, JPG,PNG。
[0023]* Surface Manager -对显示子系统的管理,并且为多个应用程序提供了 2D和3D图层的无缝融合。
[0024]* LibffebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
[0025]Android是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、XI1、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以B1nic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linux driver与Linux kernel彻底分开。B1nic/Libc/Kernel/ 并非标准的 Kernel header files。Android 的 Kernelheader是利用工具由Linux Kernel header所产生的,这样做是为了保留常数、数据结构与宏。
[0026]Android 的 Linux kernel 控制包括安全(Security),存储器管理(MemoryManagement),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。
[0027]APK是安卓应用的后缀,是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis—样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip 解压后,可以看到 Dex 文件,Dex 是 Dalvik VM executes 的全称,即 Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
[0028]APK文件结构一个APK文件结构为:
1.META-1NF\ (注:Jar文件中常可以看到);
2.res\ (注:存放资源文件的目录); 3.AndroidManifest.xml (注:程序全局配置文件);
4.classes, dex (注:Dalvik 字节码);
5.resources, arse (注:编译后的二进制资源文件)。
[0029]总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的WindowsGadgets或者说WPF也采用了这种构架方式。
[0030]在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permiss1n分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
[0031]最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
[0032]硬件抽像层,Android的HAL (硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 Kernel independent 的概念,也让 Android framework的开发能在不考量驱动程序实现的前提下进行发展。
[0033]HAL stub是一种代理人(Proxy)的概念,Stub是以*.so档的形式存在。Stub向HAL “提供”操作函数(Operat1ns),并由Android runtime向HAL取得Stub的Operat1ns,再Callback这些操作函数。HAL里包含了许多的Stub (代理人)。Runtime只要说明“类型”,即Module ID,就可以取得操作函数。
[0034]中介软件,操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。B1nic 是 Android 改良 Iibc 的版本。Android 同时包含了 Webkit,所谓的Webkit就是Apple Safari浏览器背后的引擎。Surface flinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的B1nicLibc0
[0035]Android采用OpenCORE作为基础多媒体框架。Open CORE可分7大块:PVPlayer、PVAuthor、 Codec、PacketVideo Multimedia Framework (PVMF)、 Operating SystemCompatibility Library (OSCL)、Common、OpenMAX0
[0036]Android 使用 skia 为核心图形引擎,搭配 0penGL/ES。skia 与 Linux Cairo 功能相当,但相较于Linux Cairo, skia功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia也是Google Chrome的图形引擎。
[0037]Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
[0038]Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtual Machine)。Dalvik 虚拟机是一种“暂存器型态”(Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
[0039]Dalvik虚拟机可以有多个实例(Instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
[0040]安全权限机制,Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。
[0041]系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。
[0042]Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。
[0043]安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:
拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS )地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。
[0044]一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。
[0045]Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。
[0046]活动,Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,Activity —般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity当中可以添加一些Button、Check box等控件。可以看到Activity概念和网页的概念相当类似。
[0047]一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从Activity A跳转到Activity B,那么当Activity B运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。
[0048]当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。
[0049]Service是android系统中的一种组件,
它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务嘛,总是臧在后头的。
[0050]开启Service有两种方式:
(I) Context.startService( ):Service会经历onCreate -> onStart(如果Service还没有运行,则android先调用onCreate ()然后调用onStart ();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次);StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。注意,多次调用Context, startservice ()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService ()或者StopSelf (),他都会被停止。补充说明:传递给StartService (O的Intent对象会传递给onStart()方法。调用顺序为:onCreate —> onStart(可多次调用)一> onDestroy。
[0051](2) Context.bindService ():Service 会经历 onCreate () —>onBind (),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service 绑定在一起,Context 退出了,Srevice 就会调用 onUnbind —> onDestroyed 相应退出,所谓绑定在一起就共存亡了。
[0052]在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过Notificat1nManager来通知用户这些事情发生了。BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver O进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast ()将它们自己的Intent Broadcasts广播给其他应用程序。
[0053]Content Provider是Android提供的第三方应用数据的访问方案。
[0054]在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生Content Provider类,封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给id的uri也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。
[0055]在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
[0056]开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
[0057]丰富的硬件,这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
[0058]方便开发,Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
[0059]另有基于安卓系统的控制软件用于控制快件箱
所述的控制主板的主芯片为ARM架构。ARM架构,过去称作高级精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。至2009年为止,ARM架构处理器占了市面上所有32位嵌入式RISC处理器90%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从便携式设备(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌面型路由器),甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。2011年,ARM的客户报告了 79亿ARM处理器出货量,占有95%的智能手机、90%的硬盘驱动器、40%的数字电视和机上盒、15 %的单片机、和20 %的移动电脑。在2012年,微软与ARM科技生产了新的Surface平板电脑,AMD宣布它将于2014年开始生产基于ARM核心的64位服务器
-H-* I I
心/T O
[0060]自2005年,每年超过一亿的手机销售约98%至少使用了一个ARM处理器。截至2009年,占大约90%的所有嵌入式32位RISC处理器和ARM处理器被广泛使用在消费性电子产品,包括个人数字助理(PDA)、平板电脑、移动电话、数字媒体和音乐播放器、手持式游戏游戏机、计算器和计算机外围设备(如硬盘驱动器和路由器)。
[0061]ARM架构包含了以下精简指令集处理器的特性:读取/存储架构、不支持地址不对齐存储器访问(ARMv6内核现已支持)、正交指令集(任意访问指令可以任意的寻址方式访问数据 Orthogonal instruct1n set)、大量的 16 X 32-bit 寄存器阵列(register file)、固定的32 bits操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。大多均为一个CPU周期运行。为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:大部分指令可以条件式地运行,降低在分支时产生的负重,弥补分支预测器(branch predictor)的不足。算数指令只会在要求时更改条件编码(condit1n code), 32-bit筒型位移器(barrel shifter)可用来运行大部分的算数指令和寻址计算而不会损失性能,强大的索引寻址模式(addressingmode),精简但快速的双优先级中断子系统,具有可切换的暂存器组。
[0062]寄存器R0-R7对于所有CPU模式都是相同的,它们不会被分块。对于所有的特权CPU模式,除了系统CPU模式之外,R13和R14都是分块的。也就是说,每个因为一个异常(exc印t1n)而可以进入模式,有其自己的R13和R14。这些寄存器通常分别包含堆栈指针和函数调用的返回地址。有个附加在ARM设计中好玩的东西,就是使用一个4-bit条件编码在每个指令前头,表示每支指令的运行是否为有条件式的这大大的减低了在存储器访问指令时用到的编码位,换句话说,它避免在对小型叙述如if做分支指令。有个标准的示例引用欧几里得的最大公因子算法:
在C编程语言中,循环为: int gcd (int i, int j)
{
while (i != j)
if (i > j)
1-= j;
else

j -= i;
return i;
}
在ARM汇编语言中,循环为:
loop: CMP Ri, Rj;设置条件为〃NE〃(不等于)if (i != j)

;〃GT〃(大于)if (i > j),

;或〃LT〃(小于)if (i < j)
SUBGT Ri, Ri, Rj 丨若飞丁^大于),i = 1-j;
SUBLT Rj, Rj, Ri ;若〃LT〃(小于),j = j-1;
BNE loop;若〃NE〃 (不等于),则继续循环
这避开了 then和else子句之间的分支。
[0063]另一项指令集的特色是,能将位移(shift)和回转(rotate)等功能并成〃数据处理〃型的指令(算数、逻辑、和暂存器之间的搬移),因此举例来说,一个C语言的叙述
a += (j ? 2);
在ARM之下,可简化成只需一个word和一个cycle即可完成的指令 ADD Ra, Ra, Rj, LSL #2
这结果可让一般的ARM程序变得更加紧密,而不需经常使用存储器访问,流水线也可以更有效地使用。即使在ARM以一般认定为慢速的速度下运行,与更复杂的CPU设计相比它仍能运行得不错。
[0064]ARM处理器还有一些在其他RISC的架构所不常见到的特色,例如程序计数器-相对寻址(的确在ARM上程序计数器为16个暂存器的其中一个)以及前递加或后递加的寻址模式。
[0065]另外值得注意的是ARM处理器会随着时间不断地增加它的指令集。譬如某些早期的ARM处理器(比ARM7TDMI更早),可能并未具备指令可以读取2 Bytes的数量;因此严格来讲,对这些处理器产生代码时,就不可能处理如C语言对象中使用“volatile short”的数据型态。
[0066]流水线
ARM7和大多数较早的设计具备三阶段的流水线:提取指令、解码,并运行。较高性能的设计,如ARM9,则有更深阶段的流水线:Cortex-AS有13阶段的流水线。提高性能的额外方式,包含一颗较快的加法器,和更广的分支预测逻辑线路。例如,在ARM7DI核与ARM7DMI核之间的差异,是一种改进的乘法器(因此添加的“M”)。
[0067]协处理器
这个架构使用“协处理器”提供一种非侵入式的方法来延伸指令集,可通过软件下MCR、MRC、MRRC和MCRR等指令来对协处理器寻址。协处理器空间逻辑上通常分成16个协处理器,编号分别从O至15 ;而第15号协处理器是保留用作某些常用的控制功能,像是使用高速缓存和记忆管理单元运算(若包含于处理器时)。
[0068]在ARM架构的机器中,周边设备连接处理器的方式,通常通过将设备的实体暂存器对应到ARM的存储器空间、协处理器空间,或是连接到另外依序接上处理器的设备(如总线)。协处理器的访问延迟较低,所以有些周边设备(例如XScale中断控制器)会设计成可通过不同方式访问(通过存储器和协处理器)。
[0069]较新的ARM处理器有一种16-bit指令模式,叫做Thumb,也许跟每个条件式运行指令均耗用4位的情形有关。在Thumb模式下,较小的opcode有更少的功能性。例如,只有分支可以是条件式的,且许多opcode无法访问所有CPU的暂存器。然而,较短的opcode提供整体更佳的编码密度(注:意指代码在存储器中占的空间),即使有些运算需要更多的指令。特别在存储器端口或总线宽度限制在32以下的情形时,更短的Thumb opcode能更有效地使用有限的存储器带宽,因而提供比32位代码更佳的性能。典型的嵌入式硬件仅具有较小的32-bit datapath寻址范围以及其他更窄的16 bits寻址(例如Game Boy Advance)。在这种情形下,通常可行的方案是编译成Thumb代码,并自行优化一些使用(非Thumb)32位指令集的CPU相关程序区,因而能将它们置入受限的32-bit总线宽度的存储器中。
[0070]首颗具备Thumb技术的处理器是ARM7TDMI。所有ARM9和后来的家族,包括XScale,都纳入了 Thumb技术。
[0071]ARM 还开发出一项技术,Jazelle DBX (Direct Bytecode eXecut1n),允许它们在某些架构的硬件上加速运行Java bytecode,就如其他运行模式般,当调用一些无法支持bytecodes的特殊软件时,能提供某些bytecodes的加速运行。它能在现存的ARM与Thumb模式之间互相运行。
[0072]首颗具备Jazelle技术的处理器是“ARM7EJ-S” Jazelle以一个英文字母’ J’标示于CPU名称中。它用来让手机制造商能够加速运行Java ME的游戏和应用程序,也因此促使了这项技术不断地开发。
[0073]Thumb-2技术首见于“ARM1156核心”,并于2003年发表。Thumb-2扩充了受限的16位Thumb指令集,以额外的32位指令让指令集的使用更广泛。因此Thumb-2的预期目标是要达到近乎Thumb的编码密度,但能表现出近乎ARM指令集在32位存储器下的性能。
[0074]Thumb-2至今也从ARM和Thumb指令集中派生出多种指令,包含位栏操作、分支建表和条件运行等功能。
[0075]ThumbEE,也就是所谓的Thumb_2EE,业界称为Jazelle RCT技术,于2005年发表,首见于“Cortex-A8”处理器。ThumbEE提供从Thumb-2而来的一些扩充性,在所处的运行环境下,使得指令集能特别适用于运行阶段的编码产生(例如实时编译XThumbIEE是专为一些语言如Limbo、Java、C#、Perl和Python,并能让实时编译器能够输出更小的编译码却不会影响到性能。ThumbEE所提供的新功能,包括在每次访问指令时自动检查是否有无效指针,以及一种可以运行数组范围检查的指令,并能够分支到分类器,其包含一小部份经常调用的编码,通常用于高级语言功能的实作,例如对一个新对象做存储器配置。
[0076]高级SMD延伸集,业界称为“NEON”技术,它是一个结合64位和128位的单指令多重数指令集(SMD),其针对多媒体和信号处理程序具备标准化加速的能力。NEON可以在10 MHz的处理器上运行MP3音效解码,且可以运行13 MHz以下的自适应多速率音频压缩编码。NEON具有一组广泛的指令集、各自的寄存器阵列,以及独立运行的硬件。NEON支持8、16、32和64位的整数及单精度浮点数据,并以单指令多重数的方式运算,运行图形和游戏处理中关于语音及视频的部分。单指令多重指令集在矢量超级处理机中是个决定性的要素,它具备同时多项处理功能。在NEON技术中,SMD最高可同时做16个运算。
[0077]VFP (矢量浮点)是在协同处理器针对ARM架构的派生技术。它提供低成本的单精度和倍精度浮点运算能力,并完全兼容于ANSI/IEEE Std 754-1985 二进制浮点算数标准。VFP提供大多数适用于浮点运算的应用,例如PDA、智慧手机、语音压缩与解压、3D图像以及数字音效、打印机、机上盒,和汽车应用等。VFP架构也支持SMD平行化的短矢量指令运行。这在图像和信号处理等应用上,非常有助于降低编码大小并增加输出效率。
[0078]在ARM为基础的处理器中,其他可见的浮点、或SMD的协同处理器还包括了 FPA、FPE、IwMMXt0他们提供类似VFP的功能,但在opcode层面上来说并不具有兼容性。
[0079]TrustZone技术出现在ARMv6KZ以及较晚期的应用核心架构中。它提供了一种低成本的方案,针对系统单芯片内加入专属的安全核心,由硬件建构的访问控制方式支持两颗虚拟的处理器。这个方式可使得应用程序核心能够在两个状态(领域)之间切换,在此架构下可以避免信息从较可信的核心领域泄漏至较不安全的领域。这种内核领域之间的切换通常是与处理器其他功能完全无关系性,因此各个领域可以各自独立运作但却仍能使用同一颗内核。存储器和周边设备也可因此得知目前内核运作的领域为何,并能针对这个方式来提供对设备的机密和编码进行访问控制。典型的TrustZone技术应用是要能在一个缺乏安全性的环境下完整地运行操作系统,并在可信的环境下能有更少的安全性的编码。T6[ll]是国内第一个开源的TrustZone安全内核。
[0080]ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。ARM提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM提供了 ARM内核的集成硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含ARM CPU硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将ARM内核集成到他们自行研发的芯片设计中,通常就仅针对获取一份生产就绪的智财核心技术(IPCore)认证。对这些客户来说,ARM会发布所选的ARM核心的闸极电路图,连同抽象模拟模型和测试程序,以协助设计集成和验证。需求更多的客户,包括集成组件制造商(IDM)和晶圆厂家,就选择可合成的RTL (寄存器传输级,如Verilog)形式来获取处理器的智财权(IP)。借着可集成的RTL,客户就有能力能进行架构上的优化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然ARM并不授予授权方再次出售ARM架构本身,但授权方可以任意地出售制品(如芯片组件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含ARM内核的硅晶成品,对其它客户来讲,他们通常也保留重制ARM内核的权利。
[0081]就像大多数IP出售方,ARM依照使用价值来决定IP的售价。在架构上而言,更低性能的ARM内核比更高性能的内核拥有较低的授权费。以硅芯片实作而言,一颗可集成的内核要比一颗硬件宏(黑箱)内核要来得贵。更复杂的价位问题来讲,持有ARM授权的商用晶圆厂(例如韩国三星和日本富士通)可以提供更低的授权价格给他们的晶圆厂客户。通过晶圆厂自有的设计技术,客户可以更低或是免费的ARM预付授权费来获取ARM内核。相较于不具备自有设计技术的专门半导体晶圆厂(如台积电和联电),富士通/三星对每片晶圆多收取了两至三倍的费用。对中少量的应用而言,具备设计部门的晶圆厂提供较低的整体价格(通过授权费用的补助)。对于量产而言,由于长期的成本缩减可借由更低的晶圆价格,减少ARM的NRE成本,使得专门的晶圆厂也成了一个更好的选择。
[0082]许多半导体公司持有ARM 授权:Atmel、Broadcom、Cirrus Logic、Freescale(于2004从摩托罗拉公司独立出来)、富士通、英特尔(借由和Digital的控诉调停)、IBM、NVIDIA、台湾新唐科技(Nuvoton Technology)、英飞凌、任天堂、恩智浦半导体(于2006年从飞利浦独立出来)、OKI电气工业、三星电子、Sharp、STMicroelectronics、德州仪器和VLSI等许多这些公司均拥有各个不同形式的ARM授权。虽然ARM的授权项目由保密合约所涵盖,在知识产权工业,ARM是广为人知最昂贵的CPU内核之一。单一的客户产品包含一个基本的ARM内核可能就需索取一次高达美金20万的授权费用。而若是牵涉到大量架构上修改,则费用就可能超过千万美元。
[0083]所述的控制主板包括串口。串口即串行接口(Serial Interface)是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
[0084]所述的控制主板的包括显示器接口。
[0085]所述的控制主板的包括USB接口。USB,是英文Universal Serial Bus (通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM,Microsoft等多家公司联合提出的。
[0086]所述的控制主板的包括RTC电池。
[0087]所述的控制主板的包括RJ45接口。RJ45通常用于计算机网络数据传输,接头的线有直通线(12345678对应12345678)、交叉线(12345678对应36145278)两种。
[0088]所述的控制主板包括SIM卡座。SIM卡是(Subscriber Identity Module客户识别模块)的缩写,也称为用户身份识别卡、智能卡,GSM数字移动电话机必须装上此卡方能使用。
[0089]它在一电脑芯片上存储了数字移动电话客户的信息,加密的密钥以及用户的电话簿等内容,可供GSM网络客户身份进行鉴别,并对客户通话时的语音信息进行加密。
[0090]所述的控制主板包括CPU。
[0091]所述的控制主板包括内存。
[0092]为了实现前述及相关目标,本文联系一下描述和附图描述了某些【具体实施方式】。然而这些方面仅表示其中可以采用本专利原理的各种方式中的少数几个,并且本专利的主题旨在包括所有这些方面及其等效方案。根据以下结合附图考虑的详细描述,本发明的优点和新颖性特征显而易见。

【专利附图】

【附图说明】
[0093]附图1基于安卓操作系统的智能快件箱的外观图。
[0094]附图2是基于安卓操作系统的智能快件箱的控制主板正面示意图。
[0095]附图3是基于安卓操作系统的智能快件箱的控制主板反面示意图。

【具体实施方式】
[0096]实施方式1:基于安卓操作系统的智能快件箱,一种智能快件箱,包括控制主板、电源、电子锁,显示屏,电源和控制主板、电子锁、显示屏相连,控制主板的操作系统为安卓,另有基于安卓系统的控制软件用于控制快件箱,控制主板的主芯片为ARM架构,控制主板内包括基于安卓的控制软件,所述的控制软件用于控制智能快件箱。控制主板的主芯片包括CPU。控制主板包括串口。显示器接口、USB接口、RTC电池。、RJ45接口、SM卡座、电源接口、内存。
【权利要求】
1.基于安卓操作系统的智能快件箱,一种智能快件箱,包括控制主板、电源、电子锁,显示屏,电源和控制主板、电子锁、显示屏相连,其特征在于,所述的控制主板的操作系统为安卓,所述的控制主板的主芯片为ARM架构,所述的控制主板内包括基于安卓的控制软件,所述的控制软件用于控制智能快件箱。
2.根据权利要求1所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板包括CPU。
3.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板包括串口。
4.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板的包括显示器接口。
5.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板的包括USB接口。
6.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板的包括RTC电池。
7.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板的包括RJ45接口。
8.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板包括SM卡座。
9.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板包括电源接口。
10.根据权利要求2所述的基于安卓操作系统的智能快件箱,其特征在于,所述的控制主板包括内存。
【文档编号】G06F9/44GK104461523SQ201410697040
【公开日】2015年3月25日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】章玺 申请人:章玺
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1