当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于 ARM 嵌入式的远程监控系统设计

基于 ARM 内核的嵌入式系统在远程监控报警系统中的设计实现与应用。核心部分主要包 括 ARM 嵌入式平台设计及 µC-OS 嵌入式实时操作系统移植;人机交互界面 µCGUI 的设计与实现;远程通 讯及自动报警等;系统的设计还考虑到了扩展性和通用性以及与其他监控设备无缝连接等问题。
关键词:  ARM;µC/OS-II;  µCGUI  ;远程监控

1  引言
监控系统现已成为现代化生产、生活中不可缺少的重要组成部分。目前,监控系列产品 种类繁多,大部分广泛应用于交通、医院、银行、家居、学校等安防领域。
随着嵌入式系统的出现,尤其是基于 ARM 内核芯片的嵌入式系统的出现,使得监控系统的应用领域更为广泛。本文设计的远程监控报警系统除了作为安防功能外,还可以应用于 以下领域:通讯领域:远程通讯、视频会议和视频点播、证券、远程教育等。医疗领域:病 房监护、远程诊断等。工业领域:远程设备诊断、维护、维修,远程生产监控等。家用领域:
家用电器远程维护;电、气、火等重大事故自动报警等。
2    系统设计
2.1、系统组成 本文设计的远程监控系统主要由中心控制器、数据终端、传感器模块、通讯模块、接口模块等几部分组成。系统组成图(如图 1)  。
2.2、中心控制器 系统核心,负责数据采集判断处理。为了提高系统工作效率,这里使用的是三星公司的 S3C2410  芯片作为处理器。S3C2410 芯片是一款高性价比的 ARM 芯片,非常适合作手机、
PDA 等手持设备。主要特性包括: ARM920T 内核,最高工作频率 203MHz, LCD 控制器: 可直接驱动真彩液晶屏,最高支持 2048×1024 真彩液晶屏,  2 个 USB  Host  端口    ,1 个 USB Device  端口,支持 Nand flash 启动模式,SD 卡接口,  UART、IIC、SPI、IIS 等多种类 型串行接口,  4 通道 DMA。


本文的监控系统的 CPU 核心部分使用的是标准的 SO-DIMM200 金手指接口,便于后期 维护和升级。如果该监控系统的使用环境较为苛刻,可以将  CPU  替换为  S3C2440  芯片。 S3C2440 完全兼容 S3C2410 全部特性(注意:芯片引脚不完全兼容)。与 S3C2410 芯片相比, S3C2440 的性能更为优越:最高工作频率可达 500MHz,内部集成 CMOS 摄像头接口,但价 格较昂贵。 
 


图 1 监控系统组成框图


2.3、数据终端 数据终端的主要功能是对监控数据进行分析、处理,及时将数据汇报给监控人员。同时, 监控人员可以根据现场情况,使用数据终端对监控的设备进行远程控制。数据终端最大优势 就是安全、可靠、便于携带。    一般情况下为了节约成本,可以将手机、PDA 等移动通讯设 备作为数据终端使用。但是如果作为对高危环境或精密仪器的监控系统,数据终端需要专业 定制。这里使用的是中心控制器的作为数据终端,即中心控制器既作为数据采集发送中心, 也可数据接收处理中心使用。
2.4、通讯模块
通讯模块主要负责远程数据通讯。带有  RS232/485、GPRS、CDMA  等一种或多种通讯 方式。需要根据现场环境和用户需要进行定制。通讯模块与控制器通过接口总线连接,连接 方式为 TTL/RS232/RS485 等
2.5、传感器模块 传感器模块的主要功能是感知外部环境,对外部环境进行实时监测。由人体红外传感器、 振动传感器、超声波传感器、可燃气体传感器、温度传感器、湿度传感器等一种或多种传感 器组成。可根据现场监测环境不同进行定制。
2.6、接口模块
接口模块主要作为系统扩展功能使用,将控制器的 A/D 转换、I2C、SPI 等多种接口进行 外部扩展。接口模块没有特定的功能,但可以根据需要与其他设备连接,例如可以与工业仪 器仪表或设备连接,实时对仪器或设备进行监控。
接口模块虽然不是监控系统的主要部分,但是对于整个系统来说却是不可缺少。因为本文的监控系统主要考虑到了系统的可扩展性和与其它系统无缝连接。通过接口模块可以很方 便的对监控系统进行升级,并且可以实现与其他系统或设备的无缝连接。这也是本系统区优 于其他监控系统的主要功能。
3  软件设计
3.1、工作软件
系统的软件设计较为复杂,这里只给出了整个工作软件流程(如图 2)。

 
 
图 2  软件流程图

3.2、操作系统移植 [!--empirenews.page--]
 

 
S3C2410 芯片支持多种嵌入式操作系统,如 WINCE、uCLinux 等。但考虑到监控系统 的实时性要求,这里使用的是 µC/OS-II 嵌入式实时操作系统。µC/OS-II 是一个源码公开、可 移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用 ANSI C 写的。 整个嵌入式系统分为两大层:硬件层和软件层。这里主要研究软件层的架构。软件层主 要分为四个部分:实时操作系统内核,与处理器相关部分,与应用程序相关部分,用户的应 用程序。
移植 µC/OS-II 系统需要修改的文件有:应用程序相关文件: OS_CFG.H    INCLUDE.H; 处理器相关文件:  OS_CPU.H、  OS_CPU_A.ASM、OS_CPU_C.C  。
3.2.1 与处理器相关的代码 这是移植中最关键的部分。内核将应用系统和底层硬件有机的结合成一个实时系统,要 使同一个内核能适用于不同的硬件体系,就需要在内核和硬件之间有一个中间层,这就是与 处理器相关的代码。处理器不同。这部分代码也不同。我们在移植时需要自己移植这部分代 码。
a)OS_CPU.H
 
包括了用#define 定义的与处理器相关的常量,宏和类型定义,有系统数据类型定义,栈 增长方向定义,关中断和开中断定义,系统软中断的定义等等。
b)OS_CPU_A.ASM
这部分需要对处理器的寄存器进行操作,所以必须用汇编语言来编写。包括四个子函数: OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任务 系统启动函数 OSStart()中调用。完成的功能是:设置系统运行标志位 OSRunning  =  TRUE; 将就绪表中最高优先级任务的栈指针 Load 到 SP 中,并强制中断返回。这样就绪的最高优先 级任务就如同从中断里返回到运行态一样,使得整个系统得以运转。OSCtxSw()在任务级任 务切换函数中调用的。任务级切换是通过 SWI 或者 TRAP 人为制造的中断来实现的。ISR 的向 量地址必须指向 OSCtxSw()。这一中断完成的功能:保存任务的环境变量(主要是寄存器的值, 通过入栈来实现),将当前 SP 存入任务 TCB 中,载入就绪最高优先级任务的 SP,恢复就绪最高 优先级任务的环境变量,中断返回。这样就完成了任务级的切换。OSIntCtxSw()在退出中断
服务函数 OSIntExit()中调用,实现中断级任务切换.由于是在中断里调用,所以处理器的寄 存器入栈工作已经做完,就不用作这部分工作了。具体完成的任务;调整栈指针(因为调用 函数会使任务栈结构与系统任务切换时堆栈标准结构不一致),保存当前任务 SP,载入就绪 最高优先级任务的 SP,恢复就绪最高优先级任务的环境变量,中断返回。这样就完成了中断 级任务切换。OSTickISR()系统时钟节拍中断服务函数,这是一个周期性中断,为内核提供
时钟节拍。频率越高系统负荷越重。其周期的大小决定了内核所能给应用系统提供的最小时 间间隔服务。一般只限于 ms 级(跟 MCU 有关),对于要求更加苛刻的任务需要用户自己建立中 断来解决.该函数具体内容:保存寄存器(如果硬件自动完成就可以省略),调 OSIntEnter(), 调用 OSTimeTick(),调用 OSIntExit(),恢复寄存器,中断返回。
c) OS_CPU_C.C
该文件中共定义了 6 个函数,但是最重要的是 OSTaskStkInit().其他都是对系统内核的扩展 时用的.    OSTaskStkInit()是在用户建立任务时系统内部自己调用的,对用户任务的堆栈 进行初始化。使建立好的进入就绪态任务的堆栈与系统发生中断并且将环境变量保存完毕时 的栈结构一致。这样就可以用中断返回指令使就绪的任务运行起来。


3.2.2  与应用相关的代码
这部分包括两个文件:OS_CFG.H,  INCLUDES.H。  用户根据自己的应用系统来定制合适 的内核服务功能。    OS_CFG.H 来配置内核,用户根据需要对内核进行定制,留下需要的部 分,去掉不需要的部分,设置系统的基本情况。比如系统可提供的最大任务数量,是否定制 邮箱服务,是否需要系统提供任务挂起功能,是否提供任务优先级动态改变功能等等。 INCLUDES.H 系统头文件,整个实时系统程序所需要的文件,包括了内核和用户的头文件。


3.3、用户图形接口
虽然 µC/OS-II 操作系统具有很高的实时性,但不像 WINCE、uCLinux 等操作系统那样 有良好的图形界面支持。所以,在使用液晶和触摸屏的情况下需要移植用户图形接口程序。
这里使用的是 µC/GUI。µC/GUI 是一个软件模块集合,通过该模块可以在我们的嵌入式产品 中加入用户图形接口(GUI)。µC/GUI 具有很高的执行效率,并且与处理器和 LCD 控制器相 独立。该模块可以工作在单任务或者多任务环境,可以支持不同大小的显示方式。
通过 µC/GUI 我们可以很方便的在液晶屏绘制图形和界面。如果需要多种字体支持,必 须自己将相应的字体字库加入到 µC/GUI  中。为了避免出现乱码,尽量使用 GB2312 国标字 库。


3.4、关于字库的兼容性问题

我们国内通常使用的汉字字库是 GB 码,但国际上使用的是 UNICODE 码  ,所以如果数
 
据终端使用的是手机、PDA 等移动通信设备,那么在数据发送前必须进行字码转换,即 GB  码 转换为 UNICODE  码或者 UNICODE 码转换为 GB 码。
由于 GB 码与 UNICODE 码在排列组合上没有任何规律,所以通常字码转换的方法就是 查表法。


4  、结束语
基于 ARM9 嵌入式系统的远程监控系统与以往的监控系统不同,高性能的处理器芯片大 大提高了系统的性能。使监控系统能够工作在比较恶劣的环境中。并且在设计上充分考虑到 了系统的可扩展性和兼容性问题,实现了本系统与其他系统的无缝连接。以满足不同工作环 境的需要。
作者创新观点:本文设计的远程监控系统应用范围更广,更灵活、方便。通过各个功能模块 的不同组合,可以十分方便快速的应用于各个领系域,真正实现智能化、自动化且具有较高 的性价比。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

喜欢折腾主机的小伙伴一定都知道X86和ARM架构的区别,前者在PC领域已经统治了几十年;后者则主要应用于移动领域,尤其是近几年,ARM的产品在终端应用特别是手持终端应用飞速发展。

关键字: 国产 ARM 主机

科技公司们认为,收购将使英伟达控制一个重要的供应商,该供应商向苹果、英特尔、三星电子、亚马逊和华为等公司授权基本的芯片技术,同时也向不计其数的中小技术企业提供授权。总部位于英国的ARM公司将芯片设计和相关软件代码授权给所...

关键字: 英伟达 ARM 半导体公司

在去年九月,英伟达宣布以400亿美金收购ARM时,就注定这场收购不会太顺利。因为一旦ARM成功被英伟达收购,这将使ARM改变在全球半导体市场中的中立立场,因为ARM的很多客户,都是英伟达的直接或者间接的对手。除此之外,还...

关键字: 英伟达 ARM 半导体

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭