集成了传感器、嵌入式计算、网络和无线通信四大技术而形成的ZigBee技术是一种全新的信息获取和处理技术,能够协作实时监测、感知和采集各种环境或监测对象的信息,并对信息进行处理,传送到需要的用户。ZigBee技术作为一个全新的领域,对国内外的研究者提出了大量的挑战性课题。时钟同步是所有分布式系统的重要组成部分,也是ZigBee技术的一项重要支撑技术,大多数ZigBee技术应用比如环境监测系统,导航系统等都需要所搜集的传感数据具有准确时间信息,否则采集的信息就是不完整的。 本论文介绍了国内外在ZigBee技术的发展与现状,对IEEE802.15.4/ZigBee的协议栈做了分析,对现存的几种主要的时钟同步算法做了研究。本太阳能航标灯同步闪课题中,为了便于太阳能给航标灯供电,需要通过休眠机制来降低功耗;为了保证ZigBee网络中各设备协同工作,时钟同步显得更为重要,它为本系统中的每个航标灯提供正确的时钟信息,不但提高系统的传输质量和效率,而且让航标灯的同步闪光,在航道中起到很好的助航作用。接着,给出了系统的具体实现过程,包括各硬件模块的设计原理、电路原理图及主要模块的详细实现过程。最后,指出本文的不足及需要改进的地方。其中本文重点包括以下三个方面: 1.针对网络拓扑结构、协议体系结构以及干扰抑制技术进行深入分析,并与其它无线通信技术进行比较及对其相互干扰进行研究。 2.对ZigBee节点时钟同步算法工作原理做了详细的研究,总结了这些算法的优缺点,并在对比现有的几种时钟同步算法的基础上对泛洪时间同步协议多跳时钟同步算法的改进。 3.设计了太阳能航标灯同步闪光系统,给出了硬件原理图及软件流程,并且在制PCB板中电磁兼容问题的解决进行了详细描述。 结果表明,该系统稳定、可靠、高效,具有很高的实用价值。
上传时间: 2013-04-24
上传用户:海陆空653
温度是生活中最基本的环境参数。温度的监测与控制,对于生物生存生长,工业生产发展都有着非同一般的意义。温度传感器的应用涉及机械制造、工业过程控制、汽车电子产品、消费电子产品和专用设备等各个领域。传统的常用温度传感器有热电偶、电阻温度计RTD和NTC热敏电阻等。但信号调理,模数转换及恒温器等功能全都会增加成本。现代集成温度传感器通常包含这些功能,并以其低廉的价格迅速地占据了市场。Dallas Semiconductor公司推出的数字式温度传感器DS1820采用数字化一线总线技术具有许多优异特性。其一,它将控制线、地址线、数据线合为一根导线,允许在同一根导线上挂接多个控制对象,形成多点一线总线测控系统。布线施工方便,成本低廉。其二,线路上传送的是数字信号,所受干扰和损耗小,性能好。本课题旨在分析和设计基于数字化一线总线技术的温度测控系统。本系统采用FPGA实现一个温度采集控制器,用于传感器和上位机的连接,并采用Microsoft公司的Visual C++作为开发平台,运用MSComm控件进行串口通信,进行命令的发送和接收。
上传时间: 2013-04-24
上传用户:fyerd
针对单片机 AT89C52 的超声波微地形测距系统的精度及系统的稳定性,本文着重对该系统的校正电路进行了系统研究,设计了该系统的温度补偿电路。一方面该电路中的基于集成温度传感器DS18B20
上传时间: 2013-05-15
上传用户:jiangfire
为了解决传统的温湿度测量过程中存在的间题,利用集成湿度传感器HIH-3610测得相对湿度,用多功能芯片DS2438测得工作电压和湿度补偿数据,上位机采用IabVIEW编程进行湿度补偿计算和显示,研制了
上传时间: 2013-07-06
上传用户:CSUSheep
随着传感器技术的飞速发展,各种各样的温度传感器被广泛的应用于教学、科研和工业生产中。其中集成温度传感器AD590,因其线性好、精确度高和易于实现计算机在线测试与数据处理等优点,在常温条件下已占有
上传时间: 2013-07-22
上传用户:685
温度是生活中最基本的环境参数。温度的监测与控制,对于生物生存生长,工业生产发展都有着非同一般的意义。温度传感器的应用涉及机械制造、工业过程控制、汽车电子产品、消费电子产品和专用设备等各个领域。传统的常用温度传感器有热电偶、电阻温度计RTD和NTC热敏电阻等。但信号调理,模数转换及恒温器等功能全都会增加成本。现代集成温度传感器通常包含这些功能,并以其低廉的价格迅速地占据了市场。Dallas Semiconductor公司推出的数字式温度传感器DS1820采用数字化一线总线技术具有许多优异特性。其一,它将控制线、地址线、数据线合为一根导线,允许在同一根导线上挂接多个控制对象,形成多点一线总线测控系统。布线施工方便,成本低廉。其二,线路上传送的是数字信号,所受干扰和损耗小,性能好。本课题旨在分析和设计基于数字化一线总线技术的温度测控系统。本系统采用FPGA实现一个温度采集控制器,用于传感器和上位机的连接,并采用Microsoft公司的Visual C++作为开发平台,运用MSComm控件进行串口通信,进行命令的发送和接收。
上传时间: 2013-07-29
上传用户:BOBOniu
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230