基于ARM嵌入式温度控制原型系统的设计(共13页).docx
《基于ARM嵌入式温度控制原型系统的设计(共13页).docx》由会员分享,可在线阅读,更多相关《基于ARM嵌入式温度控制原型系统的设计(共13页).docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于ARM嵌入式温度控制原型系统的设计1温度控制应用的总体介绍一般的计算机的过程控制系统的主要流程是周期性地采集A/D中的模拟量,然后比较给定量和采样值,把差值通过一些控制算法(PID控制)进行数据处理,处理结果经过D/A变换将数字信号转换成模拟信号,然后输出到执行机构,从而对被控对象进行控制。针对计算机控制系统的特点,本文设计的温度闭环控制系统如下图1-1所示:图1-1 温度闭环控制系统结构其主要流程是在手动状态下对AD通道中的模拟量周期采集,采样值经过socket上传服务器,同时服务器等待发控制字,然后系统接收到控制字,并通过DA转换进而在标准信号控制相应设备输出
2、;在自动状态下对AD通道的模拟量周期采集,把给定值和采样值进行比较,对差值进行控制算法处理,然后得到计算结果,该结果通过DA转换成相应的模拟量,然后由标准信号输出,根据上述功能所要求来编写应用程序。本设计中没有服务器端程序的设计,客户端的应用程序主要有main(主程序)、AD数据采集程序、DA数据接收程序、数据读取程序,温度控制报警和灯亮程序等几个部分。、2 主要的应用程序实现主程序函数主要是起到一个创建子程序并监视子程序运行情况的作用,如果子进程不能运行,则该进程重新创建需要重新创建;如果要安装信号,主进程在退出时应该向子进程传递发出一个终止信号,以处理一些收尾的工作。主程序关键函数:voi
3、d main() tmp_data = ds18b20_fun();if(tmp_data50C结束NY恢复正常图1-2 主程序流程图2.1 DS18B20驱动程序设计本文设计选用的是主芯片为Samsung公司的S3C2440的mini2440开发板为硬件平台,软件平台是Linux的最新内核Linux2.6.29。通过mini2440的扩展接口引出GPIO口(GPBl)为数据线DQ。由于DS18B20为单总线器件,所以它对操作的时序比较严格。正确地编写复位程序、位写程序和位读程序,对于DS18B20驱动最终能否正常运行并且得到实时的温度值,起到很关键的作用。2.2 DS18B20读写函数uns
4、igned short ds18b20_fun(void)int fd;int ret;float temp;unsigned short data;fd = open(/dev/TX2440-ds18b20, 0);if (fd 0)perror(open device ds18b20);exit(1);ret = read(fd,&data,4);if(ret0)printf(read ds18b20 errorn);return data;close(fd); if(strncmp(buf,$FLAG1$,7)=0)tmp_data = ds18b20_fun();tmp_temp =
5、tmp_data * 0.0625;tmp_data = tmp_temp * 10 + 0.5;if (tmp_data 1000)printf( %2d.%d n, tmp_data/10, tmp_data%10);elseprintf( 85.0 n); 2.3 复位程序一般我们在对DS18B20进行读写之前时,首先应该对其复位程序的初始化,从而检测DS18B20是否存在。复位时,我们一般要求通过MCU把数据线下拉480960 s,然后再释放数据线,大约等待60 s左右。如果MCU接收到DS18B20发出的数据显示是低电平,那么表示复位成功。
6、复位函数程序如下#define DQ S3C2440_GPB1 #define DQ_INPUT S3C2440_GPB1_INP#define DQ_OUTPUT S3C2440_GPB1_OUTPUTvoid reset() do S3C2440_gpio_cfgpin(DQ,DQ_OUTPUT); S3C2440_gpio_setpin(DQ,1); udelay(1); S3C2440_gpio_setpin(DQ,0) ; udelay(600); S3C2440_gpio_setpin(DQ,1); udelay(60);While(S3C2440_gpio_getpin(DQ)!
7、=0);While(S3C2440_gpio_getpin(DQ)=0);2.4写1字节子程序 发送ROM和RAM指令,需向DS18B20写入数据。写1字节子程序如下:void writebyte(uchar comd) uchar i ; S3C2440_gpio_cfgpin(DQ,DQ_OUTPUT)for(i=o;i1;2.5读N字节子程序 如果温度转换完毕,则需要进入DS18B20的RAM中读取第0和第1字节的二进制数据。读1字节的子程序如下:uchar readbyte(void) uchar i ,temp=0; for(i=0;i1; S3C2440_gpio_cfgpin(D
8、Q,DQ_OUTPUT);S3C2440_gpio_setpin(DQ,0);udelay(1);S3C2440_gpio_setpin(DQ,1);S3C2440_gpio_cfgpin(DQ,DQ_INPUT);udelay(10);if(S3C2440_gpio_getpin(DQ) temp=(temp0x80);udelay(65);S3C2440_gpio_cfgpin(DQ,DQ_OUTPUT);S3C2440_gpio_setpin(DQ,1);return(temp);读取N字节的子程序如下:void readnbyte(uchar N,Uchar *temp) uchar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 嵌入式 温度 控制 原型 系统 设计 13
限制150内