租手机说有云端锁是什么

租手机说有云端锁是什么,第1张

一种智能云锁系统,其解决了现有门禁系统的信息安全问题;开锁方法利用微信小程序,提供了一种简单快捷的开锁方式。
本发明所述的智能云锁系统,包括与电控锁相连的智能云锁、经过管理控制台授权的移动客户端,以及设置于阿里云端的服务器,智能云锁包括通信模块ⅰ和显示二维码数据的显示模块ⅰ;移动客户端包括通信模块ⅱ和采集二维码数据的图像采集模块ⅱ;服务器分别与通信模块ⅰ、通信模块ⅱ无线相连,服务器包括存储智能云锁id信息和移动客户端id信息的存储模块,一台id信息的存储智能云锁通过存储模块仅连接经过管理控制台授权id信息的移动客户端,不同的存储智能云锁的id信息存储在存储模块的不同位置;存储智能云锁id信息和移动客户端id信息匹配后,智能云锁开启。
优选地,所述智能云锁包括控制器、按键模块和继电器模块,按键模块通过继电器模块与控制器相连,按键模块输入的信息通过通信模块ⅰ上传到服务器,与存储模块内的信息匹配后,智能云锁开启。
优选地,所述服务器采用tomcat服务器,其运行在linux系统的web环境下,其存储模块包括用来记录用户提交的个人信息及开锁权限的mysql数据库,以及用于记录微信app的登陆状态的redis数据库;服务器生成刷新频率可选的二维码数据。
优选地,所述移动客户端采用智能手机或者智能pad,移动客户端上安装有加载开锁小程序的微信app,该开锁小程序通过通信模块ⅱ下载并显示由java运行下的生成随机的二维码数据。
本发明所述的智能云锁系统的开锁方法,包括如下步骤:
步骤一:开机后智能云锁初始化,并通过通信模块ⅰ连接至服务器的通信模块ⅲ;
步骤二:通信模块ⅰ接收服务器随机生成的二维码数据,并发送给控制器并将其显示到液晶屏上;
步骤三:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
步骤四:服务器将来自移动客户端的二维码数据与存储模块中的数据进行比对,如果比对不通过,则继续等待;如果比对通过,则说明有开锁权限,下达开锁指令至智能云锁;
步骤五:智能云锁等待来自服务器的开锁指令,如果没有收到开锁指令,则继续等待;如果收到开锁指令则通过控制器控制继电器开启电控锁,完成开锁。
优选地,所述步骤三还包括以下前置步骤:
第一步:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
第二步:服务器将新加入的移动客户端id信息存储至存储器;
第三步:管理员通过pc端的管理控制台登录服务器,访问服务器新加入的移动客户端id信息,如果认可该移动客户端则授权,如果不认可移动客户端则拒绝;
第四步:服务器接收管理员的授权或者拒绝指令,并存储至存储模块中。
优选地,所述步骤四中,所述存储模块中的个人信息、微信app的登陆状态均不可访问,管理控制台可访问开锁权限信息。
优选地,所述服务器连接至少一台智能云锁和至少一台移动客户端,智能云锁与移动客户端为多对多的关系,即同一台智能云锁连接至少一台移动客户端且同一台移动客户端连接至少一台智能云锁;两个不同id信息的智能云锁之间、两个不同id信息的移动客户端之间均不可访问。
本发明的有益效果是:采用本发明所述的智能云锁系统采用存储模块划分不同的位置,保证了客户的开锁信息的安全性。本发明所述的智能云锁系统的开锁方法,利用微信小程序,简单快捷,无需另外安装app,存在粘性强的优点,体验效果好;开锁过程极大程度的避免客户的财产不受到非法的侵害,具有很大的研究和开发的意义。本发明可以广泛用于学校门禁、居民区门禁、企业门禁等场合。
附图说明
图1是本发明的结构原理框图。
图2是智能云锁的结构原理框图。
图3是移动客户端的结构原理框图。
图4是服务器的结构示意图。
图5是智能云锁控制器的电气连接图。
图6是智能云锁通信模块ⅰ的电气连接图。
图7是智能云锁继电器的电气连接图。
图8是本发明的流程框图。
图9是步骤三的前置步骤流程框图。
图10是服务器授权界面图。
图11(a)是微信app开锁小程序授权前的界面图。
图11(b)是微信app开锁小程序授权后的界面图。
图12(a)是智能云锁显示二维码数据的界面图。
图12(b)是智能云锁显示开锁成功的界面图。
图12(c)是开锁小程序显示开锁成功的界面图。
具体实施方式
为了使本发明目的、技术方案更加清楚明白,下面结合实施例,对本发明作进一步详细说明。
实施例一:
如图1至图7所示,本发明所述的智能云锁系统,包括与电控锁相连的智能云锁、经过管理控制台授权的移动客户端,以及设置于阿里云端的服务器,智能云锁包括通信模块ⅰ和显示二维码数据的显示模块ⅰ;移动客户端包括通信模块ⅱ和采集二维码数据的图像采集模块ⅱ;服务器分别与通信模块ⅰ、通信模块ⅱ无线相连,服务器包括存储智能云锁id信息和移动客户端id信息的存储模块,一台id信息的存储智能云锁通过存储模块仅连接经过管理控制台授权id信息的移动客户端,不同的存储智能云锁的id信息存储在存储模块的不同位置;存储智能云锁id信息和移动客户端id信息匹配后,智能云锁开启。
所述智能云锁系统还包括位于智能云锁上的图像采集模块ⅰ和位于移动客户端上的显示模块ⅱ,图像采集模块ⅰ采集显示模块ⅱ上的二维码数据。
所述智能云锁系统还包括移动客户端的按键模块和位于智能云锁的存储模块,按键模块输入的信息通过通信公司网络连接到智能云锁的通信模块ⅰ,输入的信息与存储模块内的信息匹配后,智能云锁开启。
如图2和图5所示,所述智能云锁包括型号为stm32f103vct6的控制模块、型号为sim800c的通信模块ⅰ、型号为lm2596-5v的电源模块、继电器模块和为液晶屏的显示模块,控制模块分别与通信模块ⅰ、电源模块、继电器模块和显示模块相连。
如图4所示,所述服务器采用tomcat服务器,其运行在linux系统的web环境下,其存储模块包括用来记录用户提交的个人信息及开锁权限的mysql数据库,以及用于记录微信app的登陆状态的redis数据库;服务器生成刷新频率可选的二维码数据。
如图3所示,所述移动客户端采用智能手机或者智能pad,移动客户端上安装有加载开锁小程序的微信app,该开锁小程序通过通信模块ⅱ下载并显示由java运行下的生成随机的二维码数据。
需要说明的是:通信模块ⅰ使用sim800c模块,该模块可支持4频gsm/gprs,工作的频段为:gsm850、egsm900、dcs1800和pcs1900mhz,与服务器通信。服务器采用阿里服务器,采用阿里服务器,可靠性高,性能强,linux系统开发简单,性价比高,多节点可选,满足该设计要求。采用微信小程序,开发简单,方便,实用,开发成本低,不需要下载和安装,方便用户使用。微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
阿里服务器与linux系统的配置步骤如下:
第一步:远程连接阿里云主机。
第二步:使用阿里云自带的分区工具auto_fdisksh给数据盘分区并格式化、挂载。
第三步:配置系统——linux一键安装web环境。
服务器运行在linux系统下,其中mysql数据库用来记录用户提交的个人信息及开锁权限。redis数据库用于记录微信app的登陆状态。tomcat服务器用于部署云锁的web应用,及java程序。
在服务器和微信小程序的前提下,为了使安全系数提高,将利用服务器在液晶屏上显示由java运行下的生成任意的二维码,并且每分钟刷新一次,刷新频率可以自己更改,只有管理员给用户权限,用户利用微信小程序扫描二维码,通过服务器识别判定,才可以打开电控锁。从而提高了系统的安全性。如果手机丢失,只需要告诉管理员,将会取消该微信的权限,进而得到安全保障。
1)控制器与服务器通信:服务器将二维码数据以及开锁指令发送给控制器。
2)移动客户端与服务器通信:开锁权限的申请以及开锁命令的请求。
3)继电器控制:用于控制电控锁的开启。
4)显示模块:用于显示服务器生成的二维码数据。
本发明的有益效果是:采用本发明所述的智能云锁系统采用存储模块划分不同的位置,保证了客户的开锁信息的安全性。
实施例二:
如图8至图12(c)所示,本发明所述的智能云锁系统的开锁方法,包括如下步骤:
步骤一:开机后智能云锁初始化,并通过通信模块ⅰ连接至服务器的通信模块ⅲ;
步骤二:通信模块ⅰ接收服务器随机生成的二维码数据,并发送给控制器并将其显示到液晶屏上;
步骤三:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
步骤四:服务器将来自移动客户端的二维码数据与存储模块中的数据进行比对,如果比对不通过,则继续等待;如果比对通过,则说明有开锁权限,下达开锁指令至智能云锁;
步骤五:智能云锁等待来自服务器的开锁指令,如果没有收到开锁指令,则继续等待;如果收到开锁指令则通过控制器控制继电器开启电控锁,完成开锁,如图12(a)至图12(c)。
如图9所示,所述步骤三还包括以下前置步骤:
第一步:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
第二步:服务器将新加入的移动客户端id信息存储至存储器;
第三步:管理员通过pc端的管理控制台登录服务器,访问服务器新加入的移动客户端id信息,如果认可该移动客户端则授权,如果不认可移动客户端则拒绝,如图10和图11(b)所示;
第四步:服务器接收管理员的授权或者拒绝指令,并存储至存储模块中。
所述步骤四中,所述存储模块中的个人信息、微信app的登陆状态均不可访问,管理控制台可访问开锁权限信息。
所述服务器连接至少一台智能云锁和至少一台移动客户端,智能云锁与移动客户端为多对多的关系,即同一台智能云锁连接至少一台移动客户端且同一台移动客户端连接至少一台智能云锁;两个不同id信息的智能云锁之间、两个不同id信息的移动客户端之间均不可访问。
本发明的有益效果是:本发明所述的智能云锁系统的开锁方法,利用微信小程序,简单快捷,无需另外安装app,存在粘性强的优点,体验效果好;开锁过程极大程度的避免客户的财产不受到非法的侵害,具有很大的研究和开发的意义。
实施例三:
下面通过测试例对于本发明作出进一步的解释。
一、测试准备
s1:将sim卡装入sim800c模块中,并将sim800c与控制器连接。
s2:将控制器与液晶屏、继电器模块等外设相连接。
s3:给主控板通电,系统初始化。
二、测试过程
s4:用户扫描二维码下载微信小程序,并且打开小程序,如图11(a)至图11(b)所示。
s5:编辑开锁权限申请,管理员登陆云服务器,查看申请并同意,如图10所示。
s6:用户扫描液晶显示屏上生成的二维码,如图12(a)至图12(c)所示。
s7:等待五秒之内门锁开启。
三、测试结果
经过测试用户可通过扫描二维码下载微信小程序,打开小程序申请开锁权限,等待管理员授权。此时,用户扫描液晶显示屏上生成的二维码即可开启门锁,完成了预期设计目的。
本发明具有以下优点:
(1)方便快捷:该智能云锁系统只需用手机扫码就可以开锁,省去了传统机械锁携带钥匙的繁琐。
(2)数据互联:该门禁系统的数据都保存到了云服务器,即使断电,数据也不会丢失。
(3)系统简洁:该智能云锁系统因为采用了sim800c集成模块与单片机相结合进行控制,这样就避免了传统有线远程控制中布线,维护线路的繁琐工序,使得设备系统的架设变得非常的简洁并且易于维护,同时也降低了运行成本。
(4)管理简单:管理员只需在pc端登录服务器就能对用户进行授权管理,从而简化了管理过程。
(5)安全性高:显示屏生成任意的二维码,并且每分钟刷新一次,刷新频率可以自己更改,而且只有管理员授权后用户才能开启门锁,从而提高了系统的安全性。
本发明在实际生产生活中具有很大的意义,能被广泛的应用于家庭、工厂、政府、公司等各类场所,有效的消除安全忧虑的同时也具有很大的商业利用价值。
以上所述仅为本发明的较佳实施例而己,并不以本发明为限制,凡在本发明的精神和原则之内所作的均等修改、等同替换和改进等,均应包含在本发明的专利涵盖范围内。

嵌入式 *** 作系统EOS(Embedded)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌人式 *** 作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般 *** 作系统而言的,它除具备了一般 *** 作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:

(1)可装卸性。开放性、可伸缩性的体系结构。

(2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。

(3)统一的接口。提供各种设备驱动接日

(4) *** 作方便、简单、提供友好的图形GUI,图形界面,追求易学易用

(5)提供强大的网络功能,支持TCP门P协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口

(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS臭有较强的稳定性。嵌入式 *** 作系统的用户接日一般不提供 *** 作命令,它通过系统调用命令向用户程序提供服务。

(7)固化代码。在嵌入系统中,嵌入式 *** 作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式 *** 作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统

(8)更好的硬件适应性,也就是良好的移植性

国际上用于信息电器的嵌入式 *** 作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Corn公司下属子公司的PalmOS,全球占有份额达50%,MicroS。fi公司的Wind。wsCE不过29%。在美国市场,PalmOS更以80%的占有率远超WindowsCE。开放源代码的Linux很适于做信息家电的开发

比如:中科红旗软件技术有限公司开发的红旗嵌入式Linux和美商网虎公司开发的基于Xlinux的嵌人式 *** 作系统“夸克”。“夸克”是目前全世界最小的Linux,它有两个很突出的特点,就是体积小和使用GCS编码。

常见的嵌入式系统有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive

嵌入式 *** 作系统的发展

1.引言

嵌入式 *** 作系统与嵌入式系统密不可分。嵌入式系统主要由嵌入式微处理器、外围硬件设备、嵌入式 *** 作系统以及用户的应用程序等四个部分组成,它是集软硬件于一体的可独立工作的“器件”。

嵌入式技术的发展,大致经历了四个阶段[1]。

第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有 *** 作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。

第二阶段是以嵌入式CPU为基础、以简单 *** 作系统为核心的嵌入式系统。这一阶段的 *** 作系统具有一定的兼容性和扩展性,但用户界面不够友好。

第三阶段是以嵌入式 *** 作系统为标志的嵌入式系统。这一阶段系统的主要特点是:嵌入式 *** 作系统能运行于各种不同类型的微处理器上,兼容性好; *** 作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。

第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来[2]。

嵌入式系统的发展对嵌入式 *** 作系统提出了更高的要求。因此,对嵌入式 *** 作系统的结构、设计、用户界面等诸多方面进行深入研究,将有助于嵌入式系统的应用和发展。

2.嵌入式 *** 作系统的特点

21嵌入式系统的开发人员对 *** 作系统的依赖性

早期的硬件设备很简单,软件的编程和调试工具也很原始,与硬件系统配套的软件都必须从头编写。程序大都采用宏汇编语言,调试是一件很麻烦的事。随着系统越来越复杂, *** 作系统就显得很必要。

(1) *** 作系统能有效管理越来越复杂的系统资源。

(2) *** 作系统能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来。

(3) *** 作系统能够提供库函数、驱动程序、工具集以及应用程序。

在70年代的后期,出现了嵌入式系统的 *** 作系统。在80年代末,市场上出现了几个著名的商业嵌入式 *** 作系统,包括Vxwork、Neculeus、QNX和WindowsCE等,这些系统提供性能良好的开发环境,提高了应用系统的开发效率。

2.2嵌入式 *** 作系统的特点

与其他类型的 *** 作系统相比,嵌入式 *** 作系统具有以下一些特点。

(1)体积小。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(FlashMemory)作为存储介质。这就要求嵌入式 *** 作系统只能运行在有限的内存中,不能使用虚拟内存,中断的使用也受到限制。因此,嵌入式 *** 作系统必须结构紧凑,体积微小。

(2)实时性。大多数嵌入式系统都是实时系统,而且多是强实时多任务系统,要求相应的嵌入式 *** 作系统也必须是实时 *** 作系统(RTOS)[8]。实时 *** 作系统作为 *** 作系统的一个重要分支已成为研究的一个热点,主要探讨实时多任务调度算法和可调度性、死锁解除等问题。

(3)特殊的开发调试环境。提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。

3.嵌入式 *** 作系统的发展状况

国外嵌入式 *** 作系统已经从简单走向成熟,主要有Vxwork、QNX、PalmOS、WindowsCE等。国内的嵌入式 *** 作系统研究开发有2种类型,一类是基于国外 *** 作系统二次开发完成的,如海信的基于WindowsCE的机顶盒系统;另一类是中国自主开发的嵌入式 *** 作系统,如凯思集团公司自主研制开发的嵌入式 *** 作系统HopenOS(“女娲计划”)等。

WindowsCE内核较小,能作为一种嵌入式 *** 作系统应用到工业控制等领域。其优点在于便携性、提供对微处理器的选择以及非强行的电源管理功能。内置的标准通信能力使WindowsCE能够访问Internet并收发E_mail或浏览Web。除此之外,WindowsCE特有的与Windows类似的用户界面使最终用户易于使用。WindowsCE的缺点是速度慢、效率低、价格偏高、开发应用程序相对较难。

3Com公司的PalmOS在掌上电脑和PDA市场上独占其霸主地位,它有开放的 *** 作系统应用程序接口(API),开发商可根据需要自行开发所需的应用程序。

QNX是由加拿大QSSL公司开发的分布式实时 *** 作系统,它由微内核和一组共 *** 作的进程组成,具有高度的伸缩性,可灵活地剪裁,最小配置只占用几十KB内存。因此,可以广泛地嵌入到智能机器、智能仪器仪表、机顶盒、通讯设备、PDA等应用中去[6][7]。

HopenOS是凯思集团自主研制开发的嵌入式 *** 作系统,由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。其核心HopenKernel一般为10KB左右大小,占用空间小,并具有实时、多任务、多线程的系统特征。

在众多的实时 *** 作系统和嵌入式 *** 作系统产品中,WindRiver公司的VxWorks是较为有特色的一种实时 *** 作系统[5]。VxWorks支持各种工业标准,包括POSIX、ANSIC和TCP/IP网络协议。VxWorks运行系统的核心是一个高效率的微内核,该微内核支持各种实时功能,包括快速多任务处理、中断支持、抢占式和轮转式调度。微内核设计减轻了系统负载并可快速响应外部事件。在美国宇航局的“极地登陆者”号、“深空二号”和火星气候轨道器等登陆火星探测器上,就采用了VxWorks,负责火星探测器全部飞行控制,包括飞行纠正、载体自旋和降落时的高度控制等,而且还负责数据收集和与地球的通信工作。目前在全世界装有VxWorks系统的智能设备数以百万计,其应用范围遍及互联网、电信和数据通信、数字影像、网络、医学、计算机外设、汽车、火控、导航与制导、航空、指挥、控制、通信和情报、声纳与雷达、空间与导d系统、模拟和测试等众多领域。

4.Linux

4.1嵌入式Linux的应用开发前景

Linux是个与生俱来的网络 *** 作系统,成熟而且稳定。Linux是源代码开放软件,不存在黑箱技术,任何人都可以修改它,或者用它开发自己的产品。Linux系统是可以定制的,系统内核目前已经可以做得很小。一个带有中文系统及图形化界面的核心程序也可以做到不足1MB,而且同样稳定。Linux作为一种可裁减的软件平台系统,是发展未来嵌入设备产品的绝佳资源,遍布全球的众多Linux爱好者又能给予Linux开发者强大的技术支持。因此,Linux作为嵌入式系统新的选择,是非常有发展前途的。

(1)与硬件芯片的紧密结合

后PC时代的智能设备已经逐渐地模糊了硬件与软件的界限,SOC系统(SystemOnChip)的发展就是这种软硬件无缝结合趋势的证明。随着处理器片内微码的发展,在将来可能出现在处理器片内嵌进 *** 作系统的代码模块。

嵌入式Linux的一大特点是:与硬件芯片(如SOC等)的紧密结合。它不是一个纯软件的Linux系统,而比一般 *** 作系统更加接近于硬件。嵌入式Linux的进一步发展,逐步地具备了嵌入式RTOS的一切特征:实时性及与嵌入式处理器的紧密结合。

(2)开放的源代码

嵌入式Linux的另一大特点是:代码的开放性。代码的开放性是与后PC时代的智能设备的多样性相适应的。代码的开放性主要体现在源代码可获得上,Linux代码开发就像是“集市式”开发,任意选择并按自己的意愿整合出新的产品。

对于嵌入式Linux,事实上是把BIOS层的功能实现在Linux的driver层。目前,在Linux领域,已经出现了专门为Linux *** 作系统定制的自由软件的BIOS代码,并在多款主板上实现此类的BIOS层功能。

(3)嵌入式Linux与硬件芯片的紧密结合

对于许多信息家电的应用来说,嵌入的性能指标是最难满足的,只有靠提高芯片的集成度与装配密度来解决。嵌入式Linux与标准Linux的一个重要区别是嵌入式Linux与硬件芯片的紧密结合。这是一个不可逾越的难点,也是嵌入式Linux技术的关键之处。嵌入式Linux和商用专用RTOS一样,需要编写BSP(BoardSupportPackage),这相当于编写PC的BIOS。这不仅仅是嵌入式Linux的难点,也是使用商用专用RTOS开发的难点。硬件芯片(SOC芯片或者是嵌入式处理器)的多样性也决定了代码开放的嵌入式Linux的成功。嵌入式系统的发展,必然导致软硬件无缝结合的趋势,逐渐地模糊了硬件与软件的界限,在将来可能出现SOC片内的 *** 作系统代码模块。

随着处理器片内微码的发展,在将来应出现在处理器片内嵌进 *** 作系统的代码模块,很显然模块将具有安全性好、健壮性强、代码执行效率高等特点。着眼于未来的嵌入式系统的发展,我们基于对嵌入式Linux技术的深入研究,对嵌入式处理器及SOC系统的深刻理解和研究;对EDA技术的深入研究;对模拟数字混合集成电路芯片的深入研究;对SOC片内进行嵌入式Linux *** 作系统代码的植入研究。此类的研究有可能减轻系统开发者对BSP开发的难度要求,并使得嵌入式Linux能够成为普及的嵌入式 *** 作系统,而大大提高嵌入式Linux的易用性,提高其开发出的高智能设备的安全性、稳定性,同时也大大提高智能设备的计算能力、处理能力。

4.2部分嵌入式Linux产品[3][4]

嵌入式Linux一般是按照嵌入式目标系统的要求而设计,由一个体积很小的内核及一些可以根据需要进行随意裁减的系统模块组成。一般来说整个系统所占用的空间不会超过几M大小。目前,国外不少大学、研究机构和知名公司都加入了嵌入式Linux的开发工作,较成熟的嵌入式Linux产品不断涌现。

由美国新墨西哥理工学院开发的基于标准Linux的嵌入式 *** 作系统RTLinux,已成功地应用于航天飞机的空间数据采集、科学仪器测控、特技图像处理等领域。RTLinux开发者并没有针对实时 *** 作系统的特性重写Linux的内核,这样做工作量会非常大,而且要保证兼容性也非常困难。为此,RTLinux提供了一个精巧的实时内核,并把标准的Linux核心作为实时核心的一个进程同用户的实时进程一起调度,这样做的好处是对Linux的改动量最小,充分利用了Linux平台下现有的丰富的软件资源。

由嵌入式Linux行业主要厂商之一Lineo推出的Embedix,是根据嵌入式应用系统的特点重新设计的Linux发行版本。Embedix提供了超过25种的Linux系统服务,包括Web服务器等。系统需要最小8M内存,3M只读内存或闪存。Embedix基于Linux22核心,并已经成功地移植到了IntelX86和PowerPC处理器系列上。

由美国网虎公司推出的XLinux,号称是世界上最小的嵌入式Linux系统,核心只有143K字节,而且还在不断减小。

致力于国产嵌入式Linux *** 作系统和应用软件开发的广州博利思软件公司推出的嵌入式Linux中文 *** 作系统POCKETIX,基于标准的Linux内核,并包括一些可以根据需要进行定制的系统模块。支持标准以太网和TCP/IP协议、支持标准的XWindow,中文支持采用国际化标准,提供桌面和窗口管理功能、带WEB浏览器和文件管理器,并支持智能拼音和五笔字型输入。可适应个人PDA、WAP手机、机顶盒等广泛的智能信息产品。

4.3开发嵌入式Linux的几个问题

(1)Linux的移植。如果Linux不支持选用的平台,就需要把Linux内核中与硬件平台相关的部分改写,使之支持所选用的平台。

(2)内核的裁剪。嵌入式产品的可用资源比较少,所以它的内核相对嵌入式系统来说就显得有点大,需要进行剪裁到可利用的大小。

(3)桌面系统。现代的 *** 作系统如果没有一个友好的界面是没有说服力的。现在的台式机Linux系统使用了传统的XWindow系统的模式—Client/Server结构。和硬件有关的部分即是Server端,实现一个标准的显示接口;应用程序通过对Server的服务请求,实现程序的显示。在此之上,实现窗口的管理功能。但XWindow对于嵌入式系统来说显得很庞大。现在国内有MiniGUI,国外有MicroWindow,都在致力于嵌入式LinuxGUI的开发。适用于嵌入式Linux上的XWindow的工作也在进行。

(4)驱动程序的开发。Linux内核更新的很快,许多最新的硬件驱动很快就被支持。但嵌入式系统应用领域是多种多样的,所选用的硬件设备也不同,并且不可能都有Linux的驱动程序,因此,设备驱动程序的开发也是重要的工作。

(5)应用软件的开发。

(6)中文的支持。

5.结束语

目前,绝大部分嵌入式系统的硬件平台还掌握在外国公司的手中,国产的嵌入式 *** 作系统在技术含量、兼容性、市场运作模式等方面也还有很多工作要做,我们应该在跟踪国外嵌入式 *** 作系统的最新技术的同时,坚持自主产权,力争找到自己的突破点,探索出一条自己的发展道路。

当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,
接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,
接下来执行init程序,init程序调用了rcsysinit和rc等程序,rcsysinit和rc当完成系
统初始化和运行服务的任务后,返回init;init启动了mingetty后,打开了终端供用户登
录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。
加载内核
LILO启动之后,如果你选择了Linux作为准备引导的 *** 作系统,第一个被加载的东西就是内核。请记住此时的计算机内存中还不存在任何 *** 作系统, PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存。因此,内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码,先设置CPU进入安全模式(以此解除内存限制),再对内核的剩余部分进行解压缩。
执行内核
内核在内存中解压缩之后,就可以开始运行了。此时的内核只知道它本身内建的各种功能,也就是说被编译为模块的内核部分还不能使用。最基本的是,内核必须有足够的代码设置自己的虚拟内存子系统和根文件系统(通常就是ext2文件系统)。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统之后,将启动并运行一个叫做 init的程序。
注意:在这里我们故意略去了Linux内核启动的许多细节,这些细节只有内核开发人员才感兴趣。如果你好奇的话,可以访问>

以Linux centos 7服务器为例,查看服务器的cpu和内存的硬件信息方法如下:

1、鼠标右键点击桌面,选择“打开终端”,如下图所示。

2、先输入命令“cat /proc/cpuinfo”,然后再按回车键就能看到服务器的CPU信息,如下图所示。

3、在输入命令“cat /proc/meminfo ”,然后按回车键,就能查看到内存的信息,如下图所示。

 PPP(Point to Point Protocol)协议 即点对点协议 是标准的Internet协议 我们可以利用ppp拨号连接到Internet 也可通过建立拨号服务器 提供ppp拨入服务 例如 有些机构有多个外地部门 在本地已连通Internet 而外地部门有拨号到中心机房连上Internet的需求 则要求中心机房有一台拨号服务器能提供ppp接入服务 而用目前比较流行的Linux *** 作系统来做 则显得轻松有余 本文以RedHat Linux为基础 详细讨论如何安装配置ppp拨号服务器 一 软件及网络环境 Redhat 内核 pppd 局域网 Linux 服务器IP设为 服务器名称为jsred 分配给拨号用户的固定IP为 主机名为admin 二 服务器端的安装 )安装pppd 在Linux服务器上查看有没有安装pppd 缺省安装是在/usr/ in/子目录下 如果存在 再查看系统内核有没有提供对ppp的模块支持 如没有 可以进到/usr/src/liunx 子目录 用make menuconfig或make config 对内核进行配置 在PPP支持选项上 选上模块标志 然后重新编译内核 用如下命令 make dep; make clean; make zlilo; rdev R /vmlinuz )安装调制解调器 在物理线路正确连接后打开Modem的电源 运行mini来测试Modem是否已经正确安装 输入mini s 命令设置Modem相关参数 首先查看缺省串行口 缺省为 /dev/modem 根据你所用的串行口将之改为/dev/ttyS 或/dev/ttyS 其次设置通信速率 如果mini 与Modem连接成功 进入会话状态 输入ATS = 如果紧接着在下一行出现OK 且Modem 的AA灯亮起 modem进入自动应答状态 表明mini与Modem通讯正常 Modem可以正常工作了 否则修改串口设置 重复上述步骤 也可用当地的ISP的电话号码拨号 看能否正确连接 一般是先有拨号音 然后是嘈杂声 再就是握手 表示接通 出现登录提示画面 可证明Modem已正确安装 如果遇到Modem能接通 网卡不能工作或网卡能工作而Modem接不通 则要查看是否由于Moem与网卡或其它设备中断冲突引起的 一般检测串行口所占用的中断号 输入 # cat /proc/interrupts 命令查看当前串口占用的中断号 例 : timer : keyboard : serial 可以看到当前串口占用的中断是 也可以用setserial 命令来给串口设置地址和中断号(IRQ) 例如 # / in/setserial/dev/ttys irq 赋给串口一( )中断值为 或 #/ in/setserial/dev/ttys auto_irq 赋给串口任意一个空闲中断号 )创建登录终端 在Unix中 将设备看成是一个特殊文件来进行访问控制 通过特殊文件可以访问特定的设备 Linux也不例外 Linux的标准虚拟终端有mingetty agetty等 本文介绍用mgetty 作为ppp客户登录进来的虚终端 你可以通过网上搜索得到该软件 Redhat 自带RPM包 mgetty i rpm 安装命令为 rpm ivh mgetty i rpm 安装完成后在/ in子目录下有二进制文件mgetty 然后进到/etc子目录 在inittab文件之后加上一句 s : :respawn:/ in/mgetty D s ttyS 保存 用init q命令重启进程 用ps aux命令可看到类似于 S : / in/mgetty D s ttyS 表明该终端已准备好 可以接受用户的拨入请求了 )创建或修改PPP相关配置文件 基于对拨号安全性的考虑 pppd默认要求进行主客户机的身份自验证 即对等验证 除非使用root用户帐号拨号或服务器没有连上Internet 因此为了使pppd能正常工作 需要在服务器端设置相应的主客户机验证信息 )编辑/etc/ppp/options文件 在其中加入 detach crtscts netmask asyncmap proxyarp 其中 Asyncmap 表示 在对远程机进行串行联接时 连接可能将ASCII控制码( )用于特殊的用途 所以 这些代码不能作为数据包的一部分进行传送 这就要告诉pppd 不要直接用这些控制码 而用特殊的两字符的转义序列来代替它们 Asyncmap 表示不需要对任何控制码进行转义处理 基于TCP/IP协议的以太网 并不直接利用IP地址 而是利用网卡MAC地址来传送数据包 Proxyarp告诉它在远程主机的Arp表中增加一项 列出本地机的地址和远程机的网卡MAC地址 Netmask可以根据具体子网划分 修改为相应的子网掩码值 )创建/etc/ppp/yS 或/etc/ppp/yS 文件 对相应端口进行设置 在该文件中加入一行 jsred:admin或 : 在/etc/hosts文件中为拨入进来的客户机登记一项 admin )编辑/etc/ppp/pap secrets文件 由于拨号采用PAP验证时 需在该文件中设置相应主客户机信息及PAP验证密码 在该文件中设置如下 admin jsred 第一项为客户机名称或IP 第二项为拨号服务器名称或IP 第三项为PAP密码 由于我们使用标准的password文件来进行身份验证 因而将这里的密码置空 第四项为动态分配给客户机的IP地址 )建立pcguest拨号用户帐号 创建登录Shell 用户通过电话拨号进来 以什么样的身份和权限进入网络呢?这就要为拨入用户建立相应的帐号和登录Shell 如 # adduser pcguest 在选择其Shell时 不要选/bin/bash 而是填入/etc/ppp/ppplogin ppplogin为拨入用户的登录Shell文件 相当于Novell网用户的登录脚本 它为拨号用户初始化登录环境 脚本如下 #! /bin/sh /usr/ in/pppd auth chap +pap login : 第一行表示脚本的其余部分用/bin/sh去解释该脚本 第二行的 +pap login 表示客户端和服务器端采用PAP的验证方式但使用/etc/password文件的内容 用 分隔的两项(IP地址)列出ppp拨号服务器和分配给客户机的IP地址 将该文件置为可执行模式 chmod ppplogin pppd默认只能由root用户执行 为了使普通用户能够执行pppd 需要运行命令 #chmod u+s /usr/ in/pppd 最后别忘了在/etc/shells文件中加进一句话 /etc/ppp/ppplogin 然后存盘退出 )启用Linux的IP转发功能 为客户机通过拨号服务器上Internet铺平道路 Redhat 默认是屏蔽IP转发的功能 为启用IP转发功能 修改文件/etc/nf将 net ipv ip_forward = 改为net ipv ip_forward= 保存退出 重启Linux服务器 服务器端设置工作完成 三 客户端的安装 在Windows 客户机上 安装拨号网络 新建一连接项 选中该连接项 单击鼠标右键d出菜单 单击 属性 打开 服务器 标签的 TCP/IP配置 对话窗口 在 指定IP地址 栏 填入拨号服务器分配给远端客户的IP地址 如 在 主控名称服务器地址 栏中输入Internet上有效的DNS服务器的IP地址 如果该Linux服务器能提供DNS服务 也可填入Linux服务器的IP地址 保存退出 双击连接项 进入拨号状态 当终端窗口中出现登录提示 输入pcguest用户名及相应密码 再点击 继续 按钮 则一个稳定 快速的PPP连接就建立了 四 测试 测试用户有没有拨进服务器 可以在Linux服务器的控制台终端输入 # who root ttyp Apr : pcguest ttyS Apr : 上面的pcguest即为通过ttyS 终端登录的ppp客户 或输入命令 # ifconfig 你会发现除了以太网卡eth 本地环路lo外 还多一个ppp 项 表明客户已成功拨入 打开客户端的浏览器 如Netscape或IE 看能否正常访问Internet站点 lishixinzhi/Article/program/Oracle/201311/18391

Linux之所以能在嵌人式系统领域取得如此辉煌的成绩,与其自身的优良特性是分不开的。与其他 *** 作系统相比,Linux具有以下一系列显著的特点。
1.模块化程度高
Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。
2.源码公开
由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。
同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。
3.广泛的硬件支持
Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。
由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。
4.安全性及可靠性好
内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。
Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。
5.具有优秀的开发工具
开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从 *** 作系统到应用软件各个级别的调试。
6.有很好的网络支持利文件系统支持
Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。
另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。
7.与UNIX完全兼容
目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。
但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果

一:C语言嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件 *** 作、队列、栈等。

二:Linux基础Linux *** 作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI,编译器GCC,调试器GDB和Make项目管理工具,ShellMakefile脚本编写等知识,嵌入式开发环境的搭建。

三:Linux系统编程重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。

四:Linux网络编程计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解>

五:数据结构与算法数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。

六:C、QTC是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。

七:CortexA8、Linux平台开发通过基于ARMCortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nandflash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android *** 作系统开发流程。Android系统是基于Linux平台的开源 *** 作系统,该平台由 *** 作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。

八:驱动开发驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发 *** 作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARMCortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。

以上就是列出的关于一名合格嵌入式Linux开发工程师所必学的理论知识,其实,作为一个嵌入式开发人员,专业知识和项目经验同样重要,所以在我们的理论学习中也要有一定的项目实践,锻炼自己的项目开发能力。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12891847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存