论文部分内容阅读
摘要:介绍了用温度传感器DS18B20和嵌入式系统RCM2100构成的温度测控装置,DS18B20不需要复杂的信号调理电路和A/D转换电路就能直接与微处理器完成数据采集和处理。该装置具有操作方便、精度高、抗干扰能力强的优点,可根据不同需要满足于各种场合。
关键词:DS18B20嵌入式数据采集处理温度测控
1 引言
控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比仍然有着较大的差距。目前,我国在这方面总体技术水平处于 20 世纪90年代中后期水平,控制参数大多靠人工经验及现场调试来确定。
2 系统的功能
利用RCM2100嵌入式系统实现水温的智能控制,使水温能够在1-100 摄氏度之间实现控制调节。利用仪器读出水温,显示在温度显示模块上,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或制冷),还可以在环境温度降低时实现自动控制,以保持设定的温度基本不变。
系统模块分为CPU模块(RCM2100中的Rabbit2000)、DS18B20模块,显示模块,继电器控制模块,键盘输入模块五个基本模块(图1)。DS18B20可以被编程,所以箭头是双向的,CPU首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过CPU来处理数据。数据处理后的结果就显示到显示模块的数码管上。
3 系统硬件设计
3.1RCM2100简介[1]
美国Z-WORLD公司的RCM2100(图2)系列嵌入式开发系统核心由8位微处理器硬件和嵌入式软件构成,片内资源相对较少,相应的软件可以完成所需的网络通信和控制功能。RCM2100开发板由5V直流供电,温度范围为-40度到+70度,非常适合应用于工业控制环境。它集成了速度达30MHz的Rabbit2000微处理器,512K Flash RAM,512K SRAM和RJ-45以太网接口。有5个8位并行口,分别以PA、PB、PC、PD、PE表示,可分别用于和以太网卡控制芯片、RS485、RS232串行口进行数据通信,图3显示了RJ-45以太网口J4的引出线。注意用在这里的连接器间的编号方式有两种标准,编号是相反的。
3.2 温度传感器DS18B20特性与原理[2]
由DALLAS半导体公司生产的DS18B20型单线智能温度传感器(图4),属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集,传感器与微处理器连接时仅需要一条口线即可实现二者的双向通讯,不存在并行线的干扰,整体上提高系统的可靠性,简化了电路的复杂度!
从DS18B20得到的温度值是HEX码,需要转换成能输给译码器显示的BCD码。首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。处理过后把DS18B20的温度复制到单片机的RAM中,里面已经是温度值的HEX码了,然后转换HEX码到BCD码,分别把小数位,个位,十位,百位的BCD码存入RAM中。
3.3键盘部分分析:
这一部分多用到软件设计,从而简化了键盘电路,其实质是单线调节,不但使抗干扰能力增强、传输距离远,也减少了键盘设计的造价,这样特别适合应用于工业厂房内等恶劣工作环境和农业生产中扰动特别大的环境中。
设计按键功能介绍
⑴“INPUT” PE2,按下INPUT键,数码管温度显示停止,显示的数字变的比以前亮。调节好后,按INPUT退出。这时数字变的又暗了,数码管继续显示当前温度。
⑵“HIGH” PE3,按HIGH键来调高当前所需温度值,即调高控制值。
⑶“LOW” PE4,按LOW键来调低当前所需温度值,即调低控制值。
3.4继电器
由于继电器在控制电路中有独特的电气、物理特性,以及断态的高绝缘电阻和通态的低导通电阻,我们选用继电器来控制加热/制冷电路。
4 软件程序设计
本设计采用动态C语言和Rabbit2000环境下的汇编语言编写程序。
动态C语言是基于Windows95/98/NT及Linux平台的Rabbit应用软件的完整开发系统,它作为应用程序运行于IBM.PC兼容机上,是Z.World公司为基于Rabbit微处理器的嵌入式系统而设计的专门的C编译系统,具有非常快的编译和事实环境的交互调试特征。动态C包含了所有底层的I/O驱动函数库,大大减轻了软件开发的工作量。它具有实时多任务内核,提供socket级TCP/IP编程,支持各种网络协议(如HTTP、FTP、SMTP、PPP等)。应用动态C进行软件开发,无需仿真器和编程器,开发成本大大降低。另外,动态C直接对存储器编译,函数及库都是被动态地编译与连接的,因此具有极大速度优势。动态C的编译窗口见图5所示。[3]
对于标准 C来说,动态 C 的改进在于使得在功能强大的嵌入式系统上进行实时编程变得非常容易。语言方面的扩展包括对合作式多任务和抢先式多任务管理方式的支持,供电失败时对变量写入操作的支持。动态 C提供多项内容的源代码,包括标准C语言函数库,特定板的外围驱动,芯片外围设备,以及其他特色。动态 C完全支持汇编语言,在对时间要求较高的应用中,汇编代码可以方便的与 C 代码混用。
本系统采用的是循环查询方式来显示和控制温度。总模块设计流程图如图6所示。
总模块的软件设计:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H ;初始化
MOV KEY_BUF_G,#00H ;由于KEY_BUF是由图6 总模块设计流程图
用户输入的,所以先赋值初始化
MOV KEY_BUF_S,#00H
MOV KEY_BUF_B,#00H
NEXT: LCALL READ_TEMP ;调用读温度子程序
JB FLAG,NORMAL ;判断是否有DS18B20的存在
CALL ERRO ; DS18B20不存在时显示错误信息
AJMP NEXT
NORMAL: LCALL DATA_DEA ;处理从DS18B20得到的数据
LCALL SET_DIS_BUF ;赋值给DIS_BUF_X,G,S,B
LCALL DISPLAY ;调用数码管显示子程序
LCALL SCAN_KEY ;扫描键盘
LCALL SWITCH ;处理继电器
AJMP NEXT
5结束语
本文设计的以DS18B20和RCM2100为核心的温度控制系统具有测温精度高,控制性能良好等特点。该温度计完全适用于一般的应用场合,利用RCM2100丰富的I/O口和网络接口,使得系统的扩展更为简单,并可以实现远距离的温度控制,而动态C语言编程支持各种网络协议,可以完成所需的网络通信和控制功能。
参考文献:
[1] RabbitCore RCM2100 Series User’s Manual[OL].http://www.rabbitsemiconductor.com.cn/products/dc/index.asp
[2] 百度百科 DS18B20[OL].http://baike.baidu.com/view/1341776.html?wtp=tt
[3] Dynamic C TCP/IP User’s Manual[OL]. http://www.rabbitsemiconductor.com.cn/products/dc/index.asp
[4] 伟纳电子 DS18B20单线数字温度传感器[OL].http://www.willar.com/article_view.asp?id=358. 2005年02月13日
[5] 百度百科 继电器[OL]. http://baike.baidu.com/view/39560.html.2006年05月21日
[6] 蔡振江等 编著 单片机原理及应用[M]. 北京 机械工业出版社 .2006 . P83—97
[7] 李广弟等 主编 单片机基础[M].北京航空航天大学出版社.2006. P185—201
[8] 沙占友.智能温度传感器的发展趋势[J]. 电子技术应用 . 2002 Vol.28 No.5. P6-7
[10] 逄玉台,王团部. 集成温度传感器及其应用[J]. 国外电子元器件. 2002 No.7.P22-24
关键词:DS18B20嵌入式数据采集处理温度测控
1 引言
控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比仍然有着较大的差距。目前,我国在这方面总体技术水平处于 20 世纪90年代中后期水平,控制参数大多靠人工经验及现场调试来确定。
2 系统的功能
利用RCM2100嵌入式系统实现水温的智能控制,使水温能够在1-100 摄氏度之间实现控制调节。利用仪器读出水温,显示在温度显示模块上,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或制冷),还可以在环境温度降低时实现自动控制,以保持设定的温度基本不变。
系统模块分为CPU模块(RCM2100中的Rabbit2000)、DS18B20模块,显示模块,继电器控制模块,键盘输入模块五个基本模块(图1)。DS18B20可以被编程,所以箭头是双向的,CPU首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过CPU来处理数据。数据处理后的结果就显示到显示模块的数码管上。
3 系统硬件设计
3.1RCM2100简介[1]
美国Z-WORLD公司的RCM2100(图2)系列嵌入式开发系统核心由8位微处理器硬件和嵌入式软件构成,片内资源相对较少,相应的软件可以完成所需的网络通信和控制功能。RCM2100开发板由5V直流供电,温度范围为-40度到+70度,非常适合应用于工业控制环境。它集成了速度达30MHz的Rabbit2000微处理器,512K Flash RAM,512K SRAM和RJ-45以太网接口。有5个8位并行口,分别以PA、PB、PC、PD、PE表示,可分别用于和以太网卡控制芯片、RS485、RS232串行口进行数据通信,图3显示了RJ-45以太网口J4的引出线。注意用在这里的连接器间的编号方式有两种标准,编号是相反的。
3.2 温度传感器DS18B20特性与原理[2]
由DALLAS半导体公司生产的DS18B20型单线智能温度传感器(图4),属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集,传感器与微处理器连接时仅需要一条口线即可实现二者的双向通讯,不存在并行线的干扰,整体上提高系统的可靠性,简化了电路的复杂度!
从DS18B20得到的温度值是HEX码,需要转换成能输给译码器显示的BCD码。首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。处理过后把DS18B20的温度复制到单片机的RAM中,里面已经是温度值的HEX码了,然后转换HEX码到BCD码,分别把小数位,个位,十位,百位的BCD码存入RAM中。
3.3键盘部分分析:
这一部分多用到软件设计,从而简化了键盘电路,其实质是单线调节,不但使抗干扰能力增强、传输距离远,也减少了键盘设计的造价,这样特别适合应用于工业厂房内等恶劣工作环境和农业生产中扰动特别大的环境中。
设计按键功能介绍
⑴“INPUT” PE2,按下INPUT键,数码管温度显示停止,显示的数字变的比以前亮。调节好后,按INPUT退出。这时数字变的又暗了,数码管继续显示当前温度。
⑵“HIGH” PE3,按HIGH键来调高当前所需温度值,即调高控制值。
⑶“LOW” PE4,按LOW键来调低当前所需温度值,即调低控制值。
3.4继电器
由于继电器在控制电路中有独特的电气、物理特性,以及断态的高绝缘电阻和通态的低导通电阻,我们选用继电器来控制加热/制冷电路。
4 软件程序设计
本设计采用动态C语言和Rabbit2000环境下的汇编语言编写程序。
动态C语言是基于Windows95/98/NT及Linux平台的Rabbit应用软件的完整开发系统,它作为应用程序运行于IBM.PC兼容机上,是Z.World公司为基于Rabbit微处理器的嵌入式系统而设计的专门的C编译系统,具有非常快的编译和事实环境的交互调试特征。动态C包含了所有底层的I/O驱动函数库,大大减轻了软件开发的工作量。它具有实时多任务内核,提供socket级TCP/IP编程,支持各种网络协议(如HTTP、FTP、SMTP、PPP等)。应用动态C进行软件开发,无需仿真器和编程器,开发成本大大降低。另外,动态C直接对存储器编译,函数及库都是被动态地编译与连接的,因此具有极大速度优势。动态C的编译窗口见图5所示。[3]
对于标准 C来说,动态 C 的改进在于使得在功能强大的嵌入式系统上进行实时编程变得非常容易。语言方面的扩展包括对合作式多任务和抢先式多任务管理方式的支持,供电失败时对变量写入操作的支持。动态 C提供多项内容的源代码,包括标准C语言函数库,特定板的外围驱动,芯片外围设备,以及其他特色。动态 C完全支持汇编语言,在对时间要求较高的应用中,汇编代码可以方便的与 C 代码混用。
本系统采用的是循环查询方式来显示和控制温度。总模块设计流程图如图6所示。
总模块的软件设计:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H ;初始化
MOV KEY_BUF_G,#00H ;由于KEY_BUF是由图6 总模块设计流程图
用户输入的,所以先赋值初始化
MOV KEY_BUF_S,#00H
MOV KEY_BUF_B,#00H
NEXT: LCALL READ_TEMP ;调用读温度子程序
JB FLAG,NORMAL ;判断是否有DS18B20的存在
CALL ERRO ; DS18B20不存在时显示错误信息
AJMP NEXT
NORMAL: LCALL DATA_DEA ;处理从DS18B20得到的数据
LCALL SET_DIS_BUF ;赋值给DIS_BUF_X,G,S,B
LCALL DISPLAY ;调用数码管显示子程序
LCALL SCAN_KEY ;扫描键盘
LCALL SWITCH ;处理继电器
AJMP NEXT
5结束语
本文设计的以DS18B20和RCM2100为核心的温度控制系统具有测温精度高,控制性能良好等特点。该温度计完全适用于一般的应用场合,利用RCM2100丰富的I/O口和网络接口,使得系统的扩展更为简单,并可以实现远距离的温度控制,而动态C语言编程支持各种网络协议,可以完成所需的网络通信和控制功能。
参考文献:
[1] RabbitCore RCM2100 Series User’s Manual[OL].http://www.rabbitsemiconductor.com.cn/products/dc/index.asp
[2] 百度百科 DS18B20[OL].http://baike.baidu.com/view/1341776.html?wtp=tt
[3] Dynamic C TCP/IP User’s Manual[OL]. http://www.rabbitsemiconductor.com.cn/products/dc/index.asp
[4] 伟纳电子 DS18B20单线数字温度传感器[OL].http://www.willar.com/article_view.asp?id=358. 2005年02月13日
[5] 百度百科 继电器[OL]. http://baike.baidu.com/view/39560.html.2006年05月21日
[6] 蔡振江等 编著 单片机原理及应用[M]. 北京 机械工业出版社 .2006 . P83—97
[7] 李广弟等 主编 单片机基础[M].北京航空航天大学出版社.2006. P185—201
[8] 沙占友.智能温度传感器的发展趋势[J]. 电子技术应用 . 2002 Vol.28 No.5. P6-7
[10] 逄玉台,王团部. 集成温度传感器及其应用[J]. 国外电子元器件. 2002 No.7.P22-24