当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言测温测量和控制在当今社会生活中扮演着至关重要的角色,国际国内市场现有的多种测温技术涵盖了安检、市 场、生活、消防、科研等诸多领域。温度的测量和控制在工 业生产

引言

测温测量和控制在当今社会生活中扮演着至关重要的角色,国际国内市场现有的多种测温技术涵盖了安检、市 场、生活、消防、科研等诸多领域。温度的测量和控制在工 业生产中有广泛的应用,尤其在石油、化工、电力、冶金等 重要工业领域中,对温度的测量和监控是非常重要的一个环节。在传统的温度测量系统中,温度采集器通常采用模拟温 度传感器,模拟信号在传输的过程中容易受到干扰从而影响测量的准确度,模拟信号转化成数字信号,精度较高的A/D 转换器一般价格昂贵,对于传统系统存在的不足,结合国内外在温度监测系统上的研究现状,本文进行了新的设计。

本文智能测温系统基于物联网技术与嵌入式技术实现 远程无线可移动的视频监控系统,依托于FS_S5PC100开发 平台用三星公司先进的基于Cortex-A8 内核的 S5PC100处理 器和无线网卡WI-FI作为硬件载体,综合应用WLAN、嵌入 式Linux和JSP技术等技术,以程序软件的通用性和易用性为 方向,实现无线视频和智能测温系统控制以及环境信息采集。

 


 


1 系统总体设计

1.1 平台设计接口目标与功能

本文设计智能温度采集系统,需要具备温度采集、温 度数据的存储、温度数据的显示和网络通信功能。因此,平 台拟设计的接口如下:

电路板设计温度传感器采集接口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微控制器可搭 载操作系统和能够处理复杂协议族 的能力;降低了系统设计的风险, 提高平台计的可实施性与灵活性。

A R M 微 控 制 器 在 本 系 统 中 的 作用主要是,采集温度传感器温度 值,并实现存储以及转发功能。平台采用三星公司先进的 基于Cortex-A8 内核的 S5PC100处理器设计而成。S5PC100 处理器采用64位内部总线构架,包括强大的硬件加速器, 如:动态视频处理,显示控制和缩放。支持多种格式的硬件 编解码:MPEF-1/2/4、H263/H264、CV-1、DivX。其硬件加速功能支持实时的视频会议和模拟电视输出,支持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的外部静态总线接口连接。[!--empirenews.page--]

1.4 平台主要软件方案的选定

在简单系统中 , 一般采用前 、 后台编程方式设计软件,但在复杂的系统中,前后台方式的软件设计方法无法满 足系统的要求,需要网络协议栈支持、文件系统支持、多进 程支持后,前、后台软件由于其超循环编程方法的限制很 难实现系统的功能要求,因此复杂的嵌入式系统往往加入 了嵌入式操作系统的支持。 目前,常用嵌入式操作系统有 VxWorks、WinCE、Linux等。这里我选用的是Linux,它是开 放源代码的类UNIX操作系统。目前经过长期的发展Linux已 成为世界领先的操作系统,可以运行在服务器、大型机和超 级计算机, 由于Linux的可剪裁性和可移植性,目前也广泛 应用在嵌入式设备上,如消费电子产品、交换设备、工业控 制等。

Linux具备良好的多进程与多线程支持,并且支持多种 网络协议、具备丰富的文件系统,并且其开源代码的特性受 到广大的开发者支持。

在本系统中采用L inu x操作系统能够充分利用嵌入式 Linux中成熟的网络协议簇以及模块化的剪裁方法,降低系 统软件的开发难度,提高了系统设计的灵活性。

1.5 系统软件架构

平台设计的软件采用分层以及模块化的方式进行设计。由于采用嵌入式Linux操作系统作为解决方案。因此, 将软件划分为应用层、系统层、驱动层;系统层软件需要完 成Linux在操作系统上的移植和各个模块的驱动;应用层软 件需要完成温度采集模块、显示模块以及网络通信模块的软 件设计。软件层次示意图如图2所示。

2 系统各主要接口硬件电路设计

 


图7 PWM接口蜂鸣器电路连接图

2.1 S5PC100存储系统设计

设计的目标平台中需要扩展三种类型的存储介质,分 别为DDR2 SDRAM、NAND FLASH以及SD卡电路。下面按 照三种存储介质在系统中的功能分别进行阐述。

(1)DDR2 SDRAM电路

S5PC100 SDRAM控制器通过向外部16位或32位SDRAM

提供接口来扩展芯片存储能力。本平台采用2片K4T1G164

16位宽度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提供了一个比较完善的环境,可 以适用于任何嵌入式设备。[!--empirenews.page--]

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 端,实现了课题设计的功能。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭