侵权投诉
订阅
纠错
加入自媒体

基于ARM+GPRS的智能家居安防监控系统设计

2014-05-27 00:04
默菲
关注

  处理模块处在系统中间层,既要处理输入模块采集的数据,又要控制输出模块的相应处理,同时还得与远程监控中心进行数据交互,这就要求其具有较强的数据处理能力。基于此考虑,本系统选用了基于Samsllng公司的Cotex_A8内核的FS_S5PC100作为实验平台。考虑到市场的普及度与可靠性的要求,GPRS模块选用SIEMENS公司的TC35i/MC35,该模块内嵌强大的TCP/IP协议栈,低功耗,增强的AT控制指令。由于具体的硬件设计电路图比较繁杂,在此给出系统硬件实现框图,如图2所示。

基于ARM+GPRS的智能家居安防监控系统设计

  3系统软件设计

  系统软件实现主要包括:S5PC100软件编程,监控页面的编程两大部分,在此只介绍S5PC100微控制器的软件编程部分。

  3.1系统移植与驱动设计思想

  考虑到系统的稳定性和可靠性,在S5PC100上采用Linux嵌入式实时操作系统,与传统的实时操作系统(RTOS)相比,采用嵌入式Linux这样的开放源码的操作系统的另外一个好处是Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其它协议。例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口和串口驱动程序。

  各种设备由于功能不同,驱动程序提供的函数接口也不相同,但Linux为能够统一管理,规定了Linux下设备驱动程序必须使用统一的接口函数file_operations。根据功能填充对应的file_operations中的接口函数。为便于开机启动,统一地将驱动程序静态编译到内核。

  另外,涉及设备节点的创建,选择了udev机制来自动创建设备节点,具体步骤如下:

  1)在一开始定义一个类class,再在类下面定义一个设备class_dev;2)xx_init()函数中,使用class_creat()和device_creat()创建设备节点;3)xx_exit()函数中,使用class_destory()卸载设备节点。其中,设备号的选择,通过查询内核中Documents/device.txt选用空闲的设备号,当然也可以用major=register_chrdev(0,"name",&file_operation)自动生成。

  3.2串口通信程序设计

  系统的主要功能是实现家居环境参数的采集、上传和监控页面控制命令的下发,所以数据传输是整个应用程序的关键部分,即S5PC100与GPRS模块的串口通信程序的设计。

  在定义与串口相关寄存器地址的基础上,以结构体构造新的串口数据类型,结构体成员为函数指针,它们指向编写的具体实现函数,而函数体中的数据直接操作串口寄存器,实现了串口驱动程序,实际上就是上面驱动程序思想,填充对应的file_operations中的接口函数,实现我们自己的驱动程序。以下是实现串口数据类型的主要源代码:

基于ARM+GPRS的智能家居安防监控系统设计

<上一页  1  2  3  4  5  下一页>  余下全文
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

安防 猎头职位 更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号