基于Linux的ARM9远程客车监控系统
2.4 摄像头模块的选型与连接
考虑到无线网络的带宽限制和本系统的应用背景.文中采用了静态图像监控方式。选用的是网眼V2000摄像头,它的成本低、成像速度快、图片质量高,具有良好的通用性。其采用USB接口,不需要视频卡,可即插即用,使用方便,图像清晰连贯。其图像传感器和数字信号处理芯片为Omnivision公司的OV7620和OV511。
OV7620是一款高集成度、高分辨率的彩色图像传感器。其分辨率为640x480(30万像素),传输速率可达30帧/秒。OV7620的控制采用SCCB(Serial Camera Control Bus)协议,可利用其SCCB(Serial Camera Control Bus)接口完成对它的有关设置和读取图像数据。OV511是摄像头的主控芯片,其片内的高性能压缩引擎可使图像的压缩比达到7:1,保证了从图像传感器到主控制器的快速图像传输。
网眼V2000摄像头通过其USB接口直接与CPU上集成的USB Host接口相连。
3 系统软件设计
常见的嵌入式操作系统有Linux、WinCE、Vxworks等。Linux操作系统的源码完全开放,由于其具有高效稳定、内核小、执行速度快,网络资源丰富,可移植性好等优点,广泛应用于嵌入式系统领域。因此,选择嵌入式Linux操作系统作为本系统的软件开发平台。
在软件设计上,首先需建立交叉编译环境,用来编译引导程序和Linux内核。然后完成引导程序Bootloader的移植;配置和编译Linux内核;制作根文件系统以及编写各外设与CPU间的接口驱动程序。最后,通过编写上层应用程序完成GPS信息采集、图像采集、GPRS传输等功能。下面具体介绍了几个主要程序的设计思路。
3.1 图像采集程序
在车载监控系统中,摄像头网眼V2000是以ov511为主控芯片的摄像头,它的驱动主要是要实现结构体相应函数功能。由于Linux内核自带ov511驱动,所以不用再自己编写摄像头的驱动程序,只需在定制内核的时候选中即可。
当Linux系统正常启动后,插上V2000摄像头,如果成功加载驱动,将为摄像头在/dev/v41/目录下创建设备文件device0,上层应用程序即可通过此设备文件访问摄像头,实现拍摄图像的功能。嵌入式系统平台已搭建成功,要实现实时地获取图像,就需要利用V4L(Vidio For Linux)编程接口实现图像采集程序了。考虑到摄像头采集的640x480的RGB图像数据量较大,这里用图像压缩函数put_image_jpeg将图像转化为JPEG格式,这样存储时就减少了占用的NandFlash空间,同时通过GPRS网络回传监控中心时,也减少了传输费用和确保传送成功。
3.2 GPS解析程序
GPS接收机GPS15L输出数据格式符合NMEA-0183标准。NMEA-0183协议是由美国国家海洋电子协会制定的一种串行通信的数据协议,所有输入输出信息均为一行ASCII字符。它的一条消息称为语句(Sentenee),每条语句都以‘$’开始,以回车换行符(CR>LF>)结束,中间是用逗号分隔的若干个域。一条NMEA-0183语句包含以下5个部分:
起始符,固定字符‘$’,表示语句开始;
标识符域,表示一条语句的全部数据域的特定格式,长度可变;
数据域,包含各种类型的数据,各数据之间用逗号分隔,数据域可以为空,但用来分隔数据的逗号不可省略;
校验和,以‘*’开始,由2个字符的十六进制数组成;
结束符,固定字符CR>LF>,表示语句结束。
NMEA-0183语句中最常见的几种格式有GPGGA、GPRMC、GPGSV、GPVTG等,它们包含的信息不尽相同。本设计中采用的是GPGGA(Global Positioning System Fix Data)输出语句,它包含了主要的GPS定位数据。
GPS信息解析程序流程图如图3所示。本文引用地址:https://www.eepw.com.cn/article/148903.htm
评论