版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARMLinux的嵌入式温度监测系统设计与实现Research.Developmentl
基于ARMLinux的嵌入式温度
监测系统设计与实现
DesignandImplementationofanEmbeddedTemperature
MonitoringSystemBasedonARMandLinux
禹业中余有灵
(同济大学电子与信息工程学院,上海201804)
摘要:研究了基于ARM9的嵌入式Linux系统在温度监测系统中的应用,介绍了系统的硬件结构和软件实现
过程,讨论了如何在主控制器端口驱动能力不足时的解决方法,以及如何在嵌入式Linux下实现单总线协议的问题.
与传统的单片机控制相比,系统具有测温精度高,扩展性强,可靠性高等特点,为中规模温度监测应用提供了一种良
好的解决方案.
关键词:嵌入式ARMLinux.单总线DSI8B20
doi:10.3969/j.issn.1007—080X.2010.01.O11
Abstract:ThispaperpresentsanembeddedtemperaturemonitoringsystembasedonARMandLinux.Describesthe
hardwarearchitectureandsoftwareimplementation.Focusesontheproblemsofhowtoincreasecurrentdrivecapabilityand
howtoimplement1?wireprotocolunderLinux.Ascomparedtoconventionalsingle-chipsystems,thissystemachieves
higheraccuracy,scalabilityandreliability,providesagoodsolutionformedium-scaletemperaturemonitoringapplications.
Keywords:embeddedARMLinux1-wireDS18B20
0引言
在工农业生产和日常生活中,对温度的监测始终占据着极
其重要的地位.当前使用广泛的单片机温度采集系统可以满
足大部分的需求,但是随着科学技术的不断发展,对温度监测
的要求不断提高,比如在精度,实时性,和功能扩展性等.此时,
单片机系统的性能局限性问题就比较突出.
基于以上原因,设计并实现了基于ARMLinux的嵌入式温
度监测系统.系统以当前应用非常广泛的ARM9为核心,在此
硬件平台上运行免费而稳定的Linux操作系统,使用了支持单
总线协议的DSI8B20数字式温度传感器,具有精度高,系统扩
展性强,可靠性高,实时性能好,体积小,功耗低等特点,为中范
围温度监测应用提供了一个良好的通用型解决方案.
1系统总体方案设计
系统以ARM9系列的微处理器$3C2410A为核心,使用嵌
入式Linux操作系统.系统的主要组成部分包括:嵌入式控制
器,前端温度采集模块,GPRS无线通信模块和远程监控中心.
本文着重介绍温度采集相关的软硬件在ARMLinux平台的实
现.GPRS数据传送部分都有相当成熟的产品,可以直接使用.
系统结构如图1所示.
2系统硬件结构设计
系统硬件设计以$3C2410微处理器为核心,通过GPIO数
字接口采集数字温度传感器DSI8B20的温度数据.其他外闱
电路包括2个RS232串口和1个RJ45网络接口,以及64M
SDRAM和64MNANDFLASH闪存,男有4个按键用于功能输
入,4个LED灯用作状态指示.
ARM处理器通过GPIO数字接口向温度传感器发送指令
进行交互,温度传感器在得到指令后将数据传送给ARM处理
器进行处理.
作者简介:禹业中1985年生,硕士研究生.主要研究方向为嵌入式系统以及Linux在嵌入式领域的应用.HC245芯片.74HC245是一
1.GND
54机电一体化l2010.1
图2驱动电路图
个双向总线收发器,其DIR引脚控制数据的传输方向.ARM处
理器的GPIO口中的GPG9作为单总线的数据输入/输出口.当
ARM发送数据时,设置DIR为高,数据传输方向为:GPG9—
74HC245的AO一单总线;当ARM接收数据时,设置DIR为低,
数据传输方向为:单总线----,74HC245的BO--+GPG9.74HC245
输出电流可以达到最大6mA,可满足中规模测温要求,同时电
路比较简单.
3软件设计与实现
在ARM半台上已经能够运行很多成熟的操作系统,如
Linux,WinCE,VxWorks和p,C/OS—lI等,本系统采用的是嵌入
式Linux.Linux是一个类似于Unix的操作系统,目前Linux不
仅支持i386平台,还在ARM,MIPS和POWERPC等平台有成功
的移植应用.在ARM平台l二的移植项目主要有ARMLinux
Project和应用于无MMU的ARM7的uCLinux.Linux应用于嵌
入式系统有以下的优势:(1)Linux免费,源代码公开;(2)有
很高的适应性和可靠件;(3)具有成熟的开发工具;(4)可以根
据需要灵活地配簧内核.r}1j上述优点,Linux在ARM平台有
着越来越广泛的应用.软件开发的主要任务包括:Linux驱动
程序开发,单总线协议的实现以及数据采集应用程序的开发.
3.1驱动程序开发
与无操作系统的单片机系统不同,运行ARMLinux的系统
需要为I/O端口编写专门的字符设备驱动程序,实现端口映射,
才可以对I/0口进行读写.
Linux下的驱动以模块的方式展现,可以单独作为模块在
运行时同内核连接,也可以直接把驱动编译到内核里面.动态
加载的内核模块可以将内核映像的尺寸保持在最小,并具有很
大的灵活性,这样便于检验新的内核代码,而不需要重新编译内
核并重新引导.因此本系统采用了动态加载的模块.
ARM的GPG9数字端口跟单总线通过接口芯片相连,需要
在驱动程序的初始化模块里面进行端口映射:_3
gPg—up=(unsignedlong)ioremap((unsignedlong)
0x56000068,4);
(unsignedlong})gPg—up&;Oxfffffdff;//设置GPG9
为上拉
gPg—con=(unsignedlong)ioremap((unsignedlong)
0x56000060,4);
(unsignedlong)gpg_eon&=0xfff3ffff;
(unsignedlong:It)gPg—conI=OxO0040000;//初始化的
时候设置GPG9为输出模式
gPg—dat=(unsignedlong)ioremap((unsignedlong)
0x56000064,4)
Major=register—chrdev(DRAM—MEM—MAJOR,DEVICE—
NAME,&io_gpg9一ops);
零
上面这段代码实现了对GPG端口相应的寄存器地址进行
的映射.最后,使用register_chrdev()函数向系统注册设备号.
在映射端口和注册设备号之后,就需要添加读写代码.在
Linux系统中,设备被当成文件进行读写.编写设备文件驱动程
序,需要完成structfile—operations中定义的llseek,read,write,
open和release的函数实现.
在驱动程序模块写好后,编译源文件为目标代码:
gcc—C—D—
KERNEL一
一
DMODULEio_gpg9.c?0io_
gpg9.0
生成的目标文件即为驱动程序.需要加载驱动时,首先用
mknod命令建立一个目录项和一个特殊文件的对应索引节点.
第一个参数是设备名称,C表示字符设备,105是主设备号,0代
表次设备号.
mknod/dev/io_
gpg9C1050
然后用insmod命令载入驱动模块:
insmod—fiogpg9.0
此时,就可以在应用程序里通过pb~dev=open(“/dev/io—
gpg9”,0一RDWR)这样的语句来打开设备,然后通过read()和
write()进行读写.
对单总线设备进行读写,具体来讲就是按照单总线协议的
要求输出电平信号序列和读入电平信号序列.单总线属于串
行总线,要进行可靠的数据传输,必须严格按照协议标准执行.
根据Maxim公司的数据手册,要进行标准单总线通信,需要做
到精确的lus延时,并且通信过程不能中断.Linux驱动程序运
行在内核空间,2.4版本Linux内核不支持内核抢占,内核代码
可以一直执行,直到完成为止.为了确保时序的准确,需要把单
总线协议实现的代码都放在驱动程序里面.
3.2单总线协议的实现
单总线读写代码包括4种基本的操作:复位(reset),写1
(write1bit),写O(write0bit)和读位(readbit).进行这些基本
操作需要严格遵循单总线时序标准的要求,使用Maxim提供的
单总线典型时序值可以使系统具有最大的鲁棒性.字节操作
可以通过对位操作的组合调用来实现,进行特定的连续字节操
作,就构成了DS18B20的指令,如常用的指令SKIPROM,其指
令码为CCh.
访问DS18B20都需要遵循同定的流程:
(1)初始化:发送一个初始化脉冲(复位脉冲),信号线上
的传感器都被复位,传感器发送在位脉冲(presencepulse),表示
已经就绪;
(2)ROM命令:对DSI8B20独一无二的64位ROMID号
进行操作,指定需要通信的DSI8B20,没有指定的传感器不会
响应;
(3)DS18B20功能命令:功能指令允许主控系统读写
DSI8B20的存储器(包括读取温度的指令),初始化温度转换,
Research.Developmenti圃圜—嘲
确定供电模式等.
需要注意的是,如果以上某一步骤遗漏或者顺序错误的
话,DS18B20就不会响应(除了ROM指令是searchROM和
alarmsearch的情况).
如图3,在程序中对DSI8B20的操作分成三个部分.首先,
需要搜索连在单总线上的所有DS18B20序列号;然后对所有的
传感器发送温度转换指令,在l2位精度下,转换时间不超过
750ms,经过转换后,温度值会写到DS18B20内部暂存器中;最
后,依次读取所有传感器的温度值.
图3DSISB20操作流程图
一
个读取某个温度传感器温度值的典型程序代码段如下:
ds—init();//初始化
ds—
write—byte(MATCH—ROM);//发送match—ROM
指令
f0r(i:0;i<8;i++)//发送64位序列号
ds—write—
byte(the—rom[i]);
ds_writebyte(CONVERT);//发送convert指令
ds—init();
ds—
write—byte(MATCH—ROM);
for(i=0;i<8;i++)
ds_
write_byte(the—rom[i]);
ds—
write—byte(READ—PAD);//发送readscratchpad
指令
lsb=ds—
read~
byte();//读取低位字节
msb=ds_readbyte();//读取高位字节
在上文所述驱动程序的基础上,需要编写相应的上层应用
程序.系统的应用程序主要运行于嵌入式控制器,负责数据的
采集和发送,并向GPRS模块提供必要的数据等.
(下转第62页)
2010.1I机电一体化55
空间太阳电池片封装机器人及温度控制系统设计
表1空问太阳电池片自动封装机器人产品质量
?不存在直径0.5~Imm或更大的气泡,安全范用内的小泡偶尔产生.
??工艺参数设计好,不会发生溢胶.
??电池片长度或宽度方向上中问位黄偶尔会发现溢胶现象,电池片四角
会出现缺胶现象.
结果表明,新型太阳电池自动封装系统有效提供了生产质
量和效率,温度控制系统更是极大地延长了盖片胶使用时间,
对提高封装质量起到了很好的作用.
4结语
温度对封装过程存在着显着的影响,从实验中可以清晰地
看出温度的精确控制对封装效果产生了很好的影响.气泡,边
缘错位都因为胶体温度的均衡和稳定而得到了显着的改善.
对于该温控系统还可以对其进行温度场的建模,分析优化其结
构,并对胶体流动受温度的影响情况进行建模,找出最适合封
装时的温度值,以此优化温度控制方案.
参考文献
[1]IhsPA.Evolutionofspacesolarcells.SolarEnergyMaterialsand
SolarCells,2001,68:1—13.
[2]WojtczukS,ReinhardtK.In:High-powerdensity.GaAscellsfor
uhralightaircraft.Proceedingsofthe25thIEEEPhotovoltaie
SpecialistsConference,Washington,D.C.,USA,May13一
l7.1996.
[3]HayaawaT,NasunoY,KondoM,eta1.Mtcrocrystallinesiliconthin.
filmsolarcells.ShapuGiho/SharpTechnicalJournal,2002.83:
45—48.
[4]YangQH.Studyonautomaticbondingrobotofaspacesolarcell
[M].ShanghaiJiaoTongUniv.Press:Shanghai.China.2004.
[5]FuZhuang,ZhaoYanzheng.Autobondingrobotforspacesolarcells
[J].Robotica,2005,23(5):561—565.
[6]FuZhuang,ZhaoYanzheng.YangQinghua.Apredictionmodelofthe
adhesivecoatingthicknessonaspacesolarcell[J]:●1.i@f-0l●,
№;粤;嗍轴fIl,6o●l”70c8
粕:t:R州isfeI,6set137ec8
抽:2:p,ONIofoxc20●l241ec
№:3:RoHl0f.IeI●ai1,7.ce
as:4;啪iof●x3eeBlt37e6l
—
Temperature
Teeperature
Tel~erlture
Tt■酶r,tu槽
Te■∞rat
Temlmtratuce
Temperature
Te~eerature
Te~uerature
TeIperature
Temperature
Te~pera
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小数乘法(单元测试)-2024-2025学年五年级上册数学人教版(含答案)
- 患者皮肤护理
- 人工智能匹配对局策略
- 职业发展规划精简模板
- 2023天津市建筑安全员A证考试题库附答案
- 2024年公共基础知识基本题型及解题步骤
- 氰硫基乙酸乙酯(CAS号:5349-28-0)理化性质与危险特性一览表
- 2023年某某学校寒假致家长的一封信(19篇)
- 智能系统在电商行业的实践
- 2026年地震安全评估合同协议
- 2023年新高考II卷数学高考试卷(原卷+答案)
- 工业互联网网络建设技术规范
- 绘本在小学英语口语教学中的实证研究
- 医奇V钾薄膜衣片袁老师课件
- 中药配方颗粒
- 试论沈从文《边城》中的宿命思想
- GB/T 9239.1-2006机械振动恒态(刚性)转子平衡品质要求第1部分:规范与平衡允差的检验
- GB/T 22237-2008表面活性剂表面张力的测定
- GB/T 18035-2000贵金属及其合金牌号表示方法
- 糖肾康颗粒对糖尿病肾病尿渗透压影响临床的研究
- 边帮煤回收初步设计
评论
0/150
提交评论