引言
测温测量和控制在当今社会生活中扮演着至关重要的角色,国际国内市场现有的多种测温技术涵盖了安检、市 场、生活、消防、科研等诸多领域。温度的测量和控制在工 业生产中有广泛的应用,尤其在石油、化工、电力、冶金等 重要工业领域中,对温度的测量和监控是非常重要的一个环节。在传统的温度测量系统中,温度采集器通常采用模拟温 度传感器,模拟信号在传输的过程中容易受到干扰从而影响测量的准确度,模拟信号转化成数字信号,精度较高的a/d 转换器一般价格昂贵,对于传统系统存在的不足,结合国内外在温度监测系统上的研究现状,本文进行了新的设计。
本文智能测温系统基于物联网技术与嵌入式技术实现 远程无线可移动的视频监控系统,依托于fs_s5pc100开发 平台用三星公司先进的基于cortex-a8 内核的 s5pc100处理 器和无线网卡wi-fi作为硬件载体,综合应用wlan、嵌入 式linux和jsp技术等技术,以程序软件的通用性和易用性为 方向,实现无线视频和智能测温系统控制以及环境信息采集。
图1 平台硬件组成结构图
图2 系统软件结构框图
1 系统总体设计
1.1 平台设计接口目标与功能
本文设计智能温度采集系统,需要具备温度采集、温 度数据的存储、温度数据的显示和网络通信功能。因此,平 台拟设计的接口如下:
图3 s5pc100 ddr2 sdram电路原理图
图4 s5pc100 nandflash电路原理
电路板设计温度传感器采集接口1路,温度传感器采用 ds18b20一线制通信接口;由于平台需要对采集的数据存储 同时又需要存储本地操作系统代码,需要有稳定的存储方 案,因此平台设计nand flash与sd卡结合的存储方案, 其中nand flash主要用于存储本地代码,sd卡用于存储 采集数据;系统需要将采集的温度以及历史温度实时的显示
出来, 因此需要集成图形显示接口,系统中采用24bit tft lcd接口电路;系统为满足远程对平台采集数据访问功能, 因此集成一路10m/100m 自适应以太网接口;为满足对温度 的监控需要,平台集成一路pwm蜂鸣器接口以及一路rs232 接口,rs232接口可连接gprs模块。调试扩展接口:系统应集成1路rs232接口,用于使用控制终端对系统进行调试。课题设计平台可实现定时温度采集、显示 以及温度超限报警等功能,其主要 工作流程如下:
1.平台能够以定间间隔对采集 温度传感器数据;
2.采集的温度数据按时间顺序保存在本地数据库中;
3 。 每次采集温度与设定温度上、下限进行比较,当温度超限后 可发出本地报警或远程报警信号,本地报警信号通过蜂鸣器报警音实 现 , 远程报警信号可以通过外接gprs实现短信报警;
4.平台具备远程数据访问功能,可通过网络实现对本地数据库 的访问。
1.2 平台的硬件电路各模块选型
根据平台的接口和功能需求,将系统按照功能划分进行模块化设 计,其个功能模块的选型如下:
1.2.1 平台处理器单元
平台需要具备温度采集、大容 量数据存储、网络通信等功能。因 此,其处理器部分具备运行文件系 统以及网络协议簇的能力。课题提 出以arm微控制器为核心处理器的 解决方案,利用arm微控制器可搭 载操作系统和能够处理复杂协议族 的能力;降低了系统设计的风险, 提高平台计的可实施性与灵活性。
arm微 控 制 器 在 本 系 统 中 的 作用主要是,采集温度传感器温度 值,并实现存储以及转发功能。平台采用三星公司先进的 基于cortex-a8 内核的 s5pc100处理器设计而成。s5pc100 处理器采用64位内部总线构架,包括强大的硬件加速器, 如:动态视频处理,显示控制和缩放。支持多种格式的硬件 编解码:mpef-1/2/4、h263/h264、cv-1、divx。其硬件
图5 s5pc100 sd卡电路原理图
图6 ds18b20与接口原理图
加速功能支持实时的视频会议和模拟电视输出,支持ntsc 和pal模式的hdmi。s5pc100内部集成了24bit lcd接口、 tvout接口、camera输入接口、4路串口、sd卡接口、spi、100m网口、usb2.0-otg接口,usb host接口、矩阵按键扫 描接口、spi通信、i2c通信接口等硬件资源,适用于有高性 能要求的嵌入式系统应用场合。
在平台中需要nand falsh、sd卡、以太网等复杂接 口的支持,s5pc100具备强大的片内接口,平台需要的外设 接口通过s5pc100搭载简单的外部电路即可实现,提高了系 统设计的集成度,因此s5pc100非常适用于本系统。
1.2.2 温度传感器
平台采用美国dall a s公司生产的ds18b20可组网数 字温度传感器。其耐磨耐碰,体积小,使用方便,封装形 式多样,适用于各种狭小空间设备数字测温和控制领域。
ds18b20具有一线通信接口,只需要单根口线即可实现微控 制器通信互联,极大地简化了外部温度传感器通信线路。 ds18b20具有宽泛的工作电压和温度测量范围,750毫秒内 完成温度测量,可在-10℃至+85℃范围达到±0.5℃的测量精 度。ds18b20在出厂时内部集成了唯一的序号, 可用于实现 ds18b20通过一总线进行组网。ds18b20简化的通信接口以 及便捷的组网方式可降低产品的设计成本,提高系统的灵活 性。目前,ds18b20已经被用于各种环控,设备温度监控测 量,以及各种温度测量系统中。
1.3 平台的硬件电路总体构成
平台硬件组成如图1所示。其中核心模块为s5pc100, dd2 sdram、nand flash、tft lcd、sd卡、rs232接 口均可通过s5pc100内部外设接口直接扩展,以太网接口通 过s5pc100的外部静态总线接口连接。
1.4 平台主要软件方案的选定
在简单系统中 , 一般采用前 、 后台编程方式设计软件,但在复杂的系统中,前后台方式的软件设计方法无法满 足系统的要求,需要网络协议栈支持、文件系统支持、多进 程支持后,前、后台软件由于其超循环编程方法的限制很 难实现系统的功能要求,因此复杂的嵌入式系统往往加入 了嵌入式操作系统的支持。 目前,常用嵌入式操作系统有 vxworks、wince、linux等。这里我选用的是linux,它是开 放源代码的类unix操作系统。目前经过长期的发展linux已 成为世界领先的操作系统,可以运行在服务器、大型机和超 级计算机, 由于linux的可剪裁性和可移植性,目前也广泛 应用在嵌入式设备上,如消费电子产品、交换设备、工业控 制等。
linux具备良好的多进程与多线程支持,并且支持多种 网络协议、具备丰富的文件系统,并且其开源代码的特性受 到广大的开发者支持。
在本系统中采用l inu x操作系统能够充分利用嵌入式 linux中成熟的网络协议簇以及模块化的剪裁方法,降低系 统软件的开发难度,提高了系统设计的灵活性。
1.5 系统软件架构
平台设计的软件采用分层以及模块化的方式进行设计。由于采用嵌入式linux操作系统作为解决方案。因此, 将软件划分为应用层、系统层、驱动层;系统层软件需要完 成linux在操作系统上的移植和各个模块的驱动;应用层软 件需要完成温度采集模块、显示模块以及网络通信模块的软 件设计。软件层次示意图如图2所示。
2 系统各主要接口硬件电路设计
图7 pwm接口蜂鸣器电路连接图
图8 linux系统软件组织示意图
2.1 s5pc100存储系统设计
设计的目标平台中需要扩展三种类型的存储介质,分 别为ddr2 sdram、nand flash以及sd卡电路。下面按 照三种存储介质在系统中的功能分别进行阐述。
(1)ddr2 sdram电路
s5pc100 sdram控制器通过向外部16位或32位sdram提供接口来扩展芯片存储能力。本平台采用2片k4t1g16416位宽度dd2 sdram组成32位内存,容量256mb,如图3。
(2)nandflash电路与sd卡存储电路 由于系统需要运行linux系统,系统代码较为复杂,需
要一定容量的存储器存放linux操作系统源代码以及应用程 序,由于s5pc100内置了nand fl ash控制器,因此平台 采用k9f2g08 256mb nand flash直接与s5pc100 nand flash控制器接口连接。sd卡可通过s5pc100内置sdio1总 线直接连接。其nand flash电路原理图如图4所示、sd卡 的原理图如图5所示。
2.2 温度传感器接口
平台设计了采用ds18b20一线制温度传感器接口。采用 s5pc100处理器gpio引脚接口控制温度传感器ds18b20的温 度测量,lcd屏输出测量温度,原理图如图6所示。
2.3 温度报警电路
本 设 计 采 用 软 件 处 理 报 警 , 利 用 无 源 蜂 鸣 器 进 行 报 警,当所测温度超限后输出pwm信号,驱动蜂鸣器报警, 其电路原理图如图7所示。
3 系统软件设计
3.1 linux操作系统移植
完整的嵌入式linux系统由bootloader、kernel、rootfs等3个基本部分组成。其中bootloader用于引导和装载操作系统、kernel为linux内核程序、rootfs为文件系统,如图8。
3.1.1 交叉编译环境
嵌入式开发系统受到自身硬件以及软件资源的限制, 无法完成代码的本地编译,其开发需要在宿主机上建立交叉 开发环境。
交叉开发环境是包含了编辑器、编译器、连接器、调 试器和libc库等的程序环境。在开发嵌入式linux相关软件 时,常用的交叉开发工具是gnu工具链。系统中宿主机使 用的开发环境为ubuntu12.04操作系统,目标板内核版本号为 标准linux-2.6.35,使用到的交叉编译器是arm-linux-gcc-4.5.1。
3.1.2 bootloader程序设计
bootloader是在操作系统运行前运行的一段专用程序, 可以完成平台硬件设备的初始化,并能完成引导和调试操作 系统。 bootloader依赖cpu体系结构,一般将bootloader按功 能划分为两个阶段,其中第1阶段实现基本硬件电路的初始 化,为操作系统的运行准备环境。在平台中,由于使用的是 arm微控制器,因此第一阶段需要实现设置处理器进入管 理模式、关闭处理器中断与快中断、设置处理器主频、高速 总线主频与告诉外设主频、cpu关闭mmu与数据cache,初 始化内存控制器,代码由存储器自搬运至内存,设置运行程 序需要的临时堆栈、bss段清零等工作。第2阶段主要实现 进入交互模式或者自引导模式,实现操作系统的加载,一般 要根据操作系统与硬件平台的需要实现相关硬件的初始化工 作, 如初始化gpio、串口、网口等外部设备,完成向内核 传递启动参数等功能。
3.1.3 linux内核的定制
linux目前已经支持了x86、arm、mips等多种处理器 架构,支持的平台类型多达3000多种。各种arm处理器的 设计厂商为了更好地推广处理器的使用,都会linux中添加补丁, 使得该处理器能够在l i nu x 行正常运行。 平台选用linux-2.6.35版本,面对大规模的linux源代码,我们需要对linux进行剪裁移植。
linux源代码采用模块化的组织方式,可以通过条件编 译的方式对linux源码的功能进行剪裁,但是条件编译法裁 剪的是功能模块,对于具体的硬件驱动和优化就需要对源代 码进行细微的修改了。
3.1.4 根文件系统的建立
根文件系统是存放各种工具软件、库文件、脚本、配 置文件的地方,任何包括这些linux系统启动所必须的文件 都可以成为根文件系统。linux支持jffs2,nfs,cramfs,yaffs2 等多种文件系统。在本系统中使用的ramdisk文件系统,实 际上是把内存划出一部分当作硬盘使用,使得程序运行效率 更高。系统中的工具集合采用busybox完成,busybox 将许多 具有共性的小版本的unix工具结合到一个单一的可执行文 件。这样的集合可以替代大部分常用工具比如gnu fileutils, shellutils等工具,busybox提供了一个比较完善的环境,可 以适用于任何嵌入式设备。
3.2 温度传感器驱动程序的设计
在linux中,为实现模型抽象和统一操作接口,设备驱 动程序隐藏了设备的具体细节,向用户提供了统一的设备接 口。linux设备驱动运行于内核中,完成直接硬件操作、设 备管理等工作,并向用户提供了统一的接口模型。linux下 将设备分为字符、块和网络设备三类,同样设备驱动也分为 字符驱动、块设备驱动和网络设备驱动。字符设备面向的设 备是流式设备,如鼠标、键盘等;块设备面向的是需要随 机存储的设备,它主要包括硬盘、光驱等存储设备;其中 ds18b20属于字符设备。
在字符与块设备中由一个主设备号和一个次设备号(minor number)标识驱动设备。主设备号用于标识设备类 型,次设备号用于识别同类设备序号。字符驱动程序通过 file_operations结构的指针向用户程序提供接口抽象。
其内核定义如下:
struct file_operations
{
int (*read) (struct inode *inode,struct file *filp,char *buf,int count); /*设备读*/
int (*write) (struct inode *inode,struct file *filp,char *buf,int
count); /*设备写*/int (*ioctl) (struct inode *inode,struct file *filp,unsigned int
cmd,unsigned int arg); /*i/o控制*/
int (*open) (struct inode *inode,struct file *filp); /*设备打 开*/
void (*release) (struct inode *inode,struct file *filp); /*设备 关闭*/
??????
};
在结构file_operations里,指出了设备驱动程序所提供的 入口点位置,分别是:
read读操作,完成由应用设备向应用程序传递的数据。 write写操作,完成由应用程序向设备发送的数据。ioctl,进行读、写以外的其它命令操作。 open,打开设备准备进行i/o操作。 release,设备释放操作。 每一个字符设备驱动由一个cdev结构体抽象,具体的驱动的实现由 file_operations实现,用户程序通过dev_t代表设 备号查找到内核中的cdev,由cdev调用到file_operations,从 而调用到实际的硬件操作函数。
4 结论
本文以便携式手持温度测试仪为技术、应用背景,设 计了一套具备温度测量、数据记录、lcd显示以及网络通信 功能的温度测试设备。
由于便携式手持温度测试仪具有体积小、功耗低同时 又具备较高性能的要求,系统采用了arm微控制器作为系 统的核心控制单元,并在平台上移植了linux操作系统以满 足系统对联网、存储方面的需要。对比众多的处理器,选用 了三星公司基于cortex-a8 内核的 s5pc100处理器,围绕核 心电路设计了温度采集,大容量存储、人机交互、以及网络 通讯等单元电路;在平台电路的基础上实现了linux系统的 移植工作,并完成了这些设备接口电路的驱动移植工作; 在linux系统下实现了ds18b20的驱动设计工作,并编写了基 于液晶显示的测试程序。经过实际测试,应用程序能够在 linux下采集ds18b20的温度数据,并能够实现在lcd上的显 示、存储功能,存储文件能够通过网络的nfs服务导出到pc 端,实现了课题设计的功能。
恒流源电路分析
瞬知科技开发精准给药系统 完成千万级天使轮融资
微雪电子PN532 NFC HAT树莓派NFC扩展板简介
吉时利5-1/2位显示的6485型皮安表的特点及应用优势
博世力士乐电子传动与控制有限公司二期扩建项目正式破土动工
远程无线可移动视频监控系统:基于物联网与嵌入式技术
未来三元正极材料行业的产能将进一步向中国集中
智能机器人这么智能,失业就在眼前?
区块链未来可以在哪一些方面应用
比特币将会成为未来的主要货币
爆Valve正在开发新款跨平台多人VR游戏,代号Citadel
超实用UPS输入输出配电柜介绍
Ajoy Bose:可重用IP(智能产权)才是新的抽象等级
变频器是控制电压还是电流 变频器的接线原则
计数器74LS161的Multisim仿真
IC封装一进二出业界领先技术模拟信号隔放大器获国家专利
紫光国微2021年营收53.42亿元,净利润增长142.28%
新工业革命的孕育兴起是智能制造发展的现实条件
购购购HP6624A直流电源/6012B/6622A
基于多任务操作系统uC/OS实现电梯系统的软件设计