存储lsb
A. LSB信息隐藏C语言代码问题
>for(j=64;j<(64+i*8);j++) //为什么是从64开始??????
这个我猜是因为位图文件头包含一些很重要的信息,为避免修改而跳过这段内存;
>第二个问题是a[j]=a[j]>>1; //逐位获取文字的二进制代码 这句话怎么理解?
for(k=0;k<8;k++){ }这个循环体内是对文字每个字节的8bit信息逐位读出。
t=a[j]&0x01; 这一句是读出8个bit的最低位。
a[j]=a[j]>>1; //这句是读完之后右移一位,高位清零,低位的第二bit移到第一bit,继续循环读取下一位。循环8次以完成从低到高的8bit的读取。
通过j*k次循环,先将文字转换成二进制数据,然后一位一位的存储在图像的LSB中。
LSB水印算法比较简单的一种算法,极易被各种图形处理破坏,属于易损水印。
B. 为什么数据在内存中是按4字节逆序存储的
字节序通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;也就是低地址存放最低有效字节(LSB)。大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。也就是是指低地址存放最高有效字节(MSB)。
C. 什么是MSB/LSB码
MSB是Most Significant Bit的缩写,指最高有效位。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。
LSB是Linux Standards Base的缩写,是一套核心标准,它保证了LINUX发行版同LINUX应用程序之间的良好结合。
【拓展资料】
关于有效位
一、最低有效位
1、定义:LSB,英文 least significant bit,中文义最低有效位。
对于一个给定的数据串(整数),如二进制的1001或者十进制351,其最低有效位就是拥有最小单位数值的那一位。比如二进制1001的最右一位,拥有数值1,在该整数中代表最低位,该位的值可以决定整数是奇数(为1)还是偶数(为0)。十进制数同理。
一般lsb就是一个整数的最右一位,所以似乎该概念有些多余。但是凡事都有例外,某些数据传输或是处理器恰恰相反,最左一位是lsb,所以在计算领域就定义了这个最低有效位以明确说明数据格式。
2、意义:
(LSB: Least Significant Byte)最低有效字节。
其意义和lsb类似,只是扩展到整个字节,以字节为最小单位来说明数据的顺序。
msb(most significant bit),即最高有效位,是一个整数数位中权重最高的那个,当然有时候该位也用作符号位,0为正,1为负,视编码标准而定。
MSB为最高有效字节,意义类似于LSB。
二、最高有效位
1、定义:(MSB)
指二进制中最高值的比特。在16比特的数字音频中,其第1个比特便对16bit的字的数值有最大的影响。例如,在十进制的15,389这一数字中,相当于万数那1行(1)的数字便对数值的影响最大。比较与之相反的“最低有效位”(LSB)。
2、详细介绍
当选择模数转换器(ADC)时,最低有效位(LSB)这一参数的含义是什么?有位工程师告诉我某某生产商的某款12位转换器只有7个可用位。也就是说,所谓12位的转换器实际上只有7位。他的结论是根据器件的失调误差和增益误差参数得出的,这两个参数的最大值如下:
失调误差 =±3LSB,
增益误差 =±5LSB,
乍一看,觉得他似乎是对的。从上面列出的参数可知最差的技术参数是增益误差(±5 LSB)。进行简单的数学运算,12位减去5位分辨率等于7位,对吗?果真如此的话,ADC生产商为何还要推出这样的器件呢?增益误差参数似乎表明只要购买成本更低的8位转换器就可以了,但看起来这又有点不对劲了。正如您所判断的,上面的说法是错误的。
让我们重新来看一下LSB的定义。考虑一个12位串行转换器,它会输出由1或0组成的12位数串。通常,转换器首先送出的是最高有效位(MSB)(即LSB + 11)。有些转换器也会先送出LSB。在下面的讨论中,我们假设先送出的是MSB(如图1所示),然后依次送出MSB-1 (即 LSB + 10)和MSB -2(即LSB + 9)并依次类推。转换器最终送出MSB -11(即LSB)作为位串的末位。
LSB这一术语有着特定的含义,它表示的是数字流中的最后一位,也表示组成满量程输入范围的最小单位。对于12位转换器来说,LSB的值相当于模拟信号满量程输入范围除以2^12 或 4,096的商。如果用真实的数字来表示的话,对于满量程输入范围为4.096V的情况,一个12位转换器对应的LSB大小为1mV。但是,将LSB定义为4096个可能编码中的一个编码对于我们的理解是有好处的。
让我们回到开头的技术指标,并将其转换到满量程输入范围为4.096V的12位转换器中:
失调误差 = ±3LSB =±3mV,
增益误差 =±5LSB = ±5mV,
这些技术参数表明转换器转换过程引入的误差最大仅为8mV(或 8个编码)。这绝不是说误差发生在转换器输出位流的LSB、LSB-1、LSB-2、LSB-3、LSB-4、LSB-5、LSB-6和 LSB-7 八个位上,而是表示误差最大是一个LSB的八倍(或8mV)。
准确地说,转换器的传递函数可能造成在4,096个编码中相差最多8个编码。例如,误差为+8LSB ((+3LSB失调误差) + (+5LSB增益误差)) 的一个12位转换器可能输出的编码范围为0 至 4,095,实际的有效编码为4096/8 ,即2^9=512个。这个例子给出的都是最坏情况。在实际的转换器中,失调误差和增益误差很少会如此接近最大值。
3、实际应用
在实际应用中,由于ADC失调或增益参数的改进而使性能提升的程度微不足道,甚至可以忽略。但是,对于那些将精度作为一项设计目标的设计人员来说,这种 假设太过绝对。利用固件设计可以很容易地实现数字校准算法。但更重要的是,电路的前端放大/信号调理部分通常会产生比转换器本身更大的误差。
通过上面的讨论可以对本文开头提到的错误结论有一个更为全面而清晰的认识。事实上,上述的12位转换器的精度约为11.997位。采用微处理器或单片机可以利用简单的校准算法消除这种失调和增益误差,这对设计人员来说无疑是个好消息。
D. verilog表达式的数据类型
1. 常量
verilog有四种基本值:
·0表示逻辑0或“假”;
·1表示逻辑1或“真”;
·x表示未知;
·z表示高阻。
x和z在这里是不分大小写的。也就是说,0x1z和0X1Z是相同的。
1.1 整型常量
整形常量即整数,Verilog的整数有两种书写格式:
·十进制数格式和基数格式。
(1)十进制数格式是一个可以带正负号的数字序列,代表一个有符号数。
(2)基数格式的数通常都是无符号数。形式如下:
[size]'base value
size定义常量的位数(长度),这是可选项;base是基数,规定数据的进制,可以是o(八进制)、B、H和D。value是一个数字序列,其形式应与base定义的形式相符。
7'Hx //7位x(扩展的x),即xxxxxxx
4'HZ //4位Z,即ZZZZ
如果size定义的长度大于数字的实际长度,通常在数据序列的高位补0.但是如果这个数字序列最左边一位是x或z,就用x或z在左边补位。如果定义的长度小于数字序列的实际长度,这个数字序列最左边超出的位将被截断。
1.2 实数型常量
在verilog中,实数就是浮点数,实数的定义方式有两种:
(1)十进制格式,由数字和小数点组成。
(2)指数格式,由数字和字符e(E)组成,e(E)的前面必须要有数字而且后面必须为整数:
23_5.1e2 //其值为23510.0,忽略下划线
3.6E2 //其值为360.0
这里的e可以理解为10。
1.3 字符串型常量
字符串常量是由一对双引号括起来的字符序列。
2 变量
2.1 线网型变量
线网表示元件之间的物理连线,它 不能存储数据。线网是被驱动的,可以用连续赋值或把元件的输出连接到线网等方式给线网提供驱动,给线网提供驱动的赋值元件就是“驱动源”,线网的值由驱动源决定。如果没有驱动源连接到线网,线网的缺省值为Z。
verilog共有11种线网类型:wire tri wor trior wand triand trireg tril tri0 supply0 supply1。
线网的声明语法形式:net_kind[msb:lsb]net1, net2, .........,netN;
net_kind是线网类型;[msb:lsb]定义线网宽度????????的最高位和最低位,这一项是可选的,默认为一位;netN是线网变量的名称。线网可以有多个驱动源,每个驱动源都会给线网赋值,出现这种情况时,线网的取值由线网类型决定。
关于位宽的一点补充:
最高有效位(MSB)
指二进制中最高值的比特。在16比特的数字音频中,其第1个比特便对16bit的字的数值有最大的影响。例如,在十进制的15,389这一数字中,相当于万数那1行(1)的数字便对数值的影响最大。比较与之相反的“最低有效位”(LSB)。汇编中,比如8位2进制数10000001,其中第一个1是MSB,第二个1是LSB。在计算机计算的时候用于判断的比如如果是整数那么小数点(实际上是没有小数点的,但就把那一位和下一位之间看作有)在LSB后面,如果是小数小数点在MSB后面,其中MSB在有符号数中又是符号位。
在这11种线网中,经常用到的是前六种,下面给出其详细的用法举例。
(1)wire和tri线网
有些问题,先跳过!
(2)wor和trior线网
·wor线或 ·trior三态线或
(3)wand和triand线网
·wand线与 ·triand线与
(4)trireg线网(三态寄存器)
这种线网可以存储数值,可用于电容节点的建模。当没有驱动源时,三态寄存器线网的缺省初始值为x。当它的所有驱动源都处于高组态时,三态寄存器保存的值是作用在该线网上的最后一个值。
(5)tri0和tri1线网
·tri0 三态0 ·tri1 三态1
这两个的特征是,若无驱动源(z可视为无驱动源),它的值为0(tri0)或1(tri1)。
(6)supply0 supply1线网
·supply0用于对“地”建模,即低电平。
·supply1用于对电源建模,即高电平1。
2.2 寄存器型变量
寄存器表示一个抽象的数据存储单元,可以通过赋值语句改变寄存器内存储的值。寄存器只能在always语句和initial语句中赋值,always语句和initial语句是verilog提供的功能强大的结构语句。在未被赋值时,寄存器的缺省值为x。
verilog共有五种寄存器类型:reg integer time real realtime。
2.2.1 reg寄存器
(1)reg寄存器的类型
reg寄存器是最常用的寄存器类型,这种寄存器中只能存放无符号数。如果给reg中存入一个负数,通常会被视为正数。
(2)用reg声明存储器
在verilog中不能直接声明存储器,存储器是通过寄存器数组声明的,即用reg声明。可以说,存储器是由若干个寄存器组成的,通过定义单个寄存器的位宽和寄存器的个数可以决定存储器的大小。
存储器声明如下:
reg [msb:lsb] memory1 [upper1:lower1], memory2 [upper2:lower2], ...............
其中msb、lsb定义了存储器单个寄存器的位宽,memory1和memory2是存储器名;upper和lower分别定义了这两个存储器的大小。
2.2.2 integer寄存器类型
integer是整数寄存器,也是verilog中最常用的变量类型,这种寄存器中存储有符号整数值。integer即可以定义单个寄存器,也可以用来定义一个寄存器组。整数寄存器中最少可以容纳32位的数,但是不能作为位向量访问。
2.2.3 time寄存器类型
time类型寄存器用于存储和处理时间,通常用在系统函数$time中。其声明形式如下:
time time_id1, time_id2, ..........,time_idN[msb:lsb];
msb lsb是规定范围界限的常量,这个范围将决定寄存器内能存储时间值的个数,如果未定义界限,默认值为1,那么每个寄存器只能存储一个至少64位的时间值。time类型的寄存器只存储无符号数。
2.2.4 real和realtime寄存器类型
real(实数型寄存器)和realtime(实数型时间寄存器)一般用于在测试模块中存储仿真时间,二者声明形式完全相同。real变量的缺省值为0,当将值x和z赋给real型寄存器时,这些值被当作0。
3. 表达式
3.1 操作数
操作数即运算对象,位于操作符左右两侧。操作数有以下8种类型:常数、参数、线网、寄存器、位选择、部分选择、存储器单元、函数调用。
(1)常数:表达式中经常出现常数,一般是做运算或赋值。表达式中的整数值可以是有符号数或无符号数。如果表达式中的整数形式是十进制整数,就会被当作有符号数,如果整数形式是基数型整数,那么该整数会被当作无符号数对待。
(2)参数:参数类似于常量,表达式中出现的参数都作为常数对待。参数是用某标识符代表某个数字的,所以定义它时要给它赋值。
(3)线网
(4)寄存器:寄存器是在表达式中出现次数最多的操作数,许多程序语句都是通过对寄存器中存储的值进行转换和传输实现设计目的的。注意:整型寄存器中的值被视为有符号的二进制补码数;实数和实数时间类型寄存器中的值被视为有符号浮点数;而reg寄存器或时间寄存器中的值被视为无符号数。
(5)位选择
(6)部分选择
(7)存储器单元:存储器建模是使用reg声明寄存器组,不能在一条语句内就完成对存储器内所有寄存器单元的赋值,必须对其中的存储单元进行赋值。形式如下:
memory[word_address]
其中,memory是存储器名,word_address是要选择单元的编号。不允许对存储器单元做位选择或部分选择。
(8)函数调用:verilog中的函数和C语言中的函数没什么大的区别,都用来实现某个计算过程或完成某个事件处理。函数可以被随意调用,函数调用也可以作为表达式中的操作数。调用的函数可以是系统函数(以字符$开始)或用户定义的函数。
3.2 操作符
verilog的操作符有如下九种类型:
·算术操作符
·关系操作符
·相等操作符
·逻辑操作符
·按位操作符
·归约操作符
·移位操作符
·条件操作符
·连接和复制操作符
(1)算术操作符
+ - * 、 %
·整数除法截断所有小数部分。
·模操作符求出与第一个操作数符号相同的余数,如-7/4结果为-3。
·如果算术操作符的操作数中出现x或z,那么整个算术操作的运算结果为x。
·算术操作结果的长度
进行算术操作时,表达式中操作数的长度可能不一致,这时运算结果的长度由最长的操作数决定。在赋值语句中,算术操作符结果的长度由操作符左端的赋值目标长度决定。
reg [0:3] Arc, Bar, Crt;
reg [0:5] Frx;
Arc = Bar + Crt;
Frx = Bar + Crt;
在第一个赋值中,加法操作的溢出部分被丢弃,而在第二个赋值中,任何溢出的为存储在位Frx[1]中。在较大的表达式中,中间结果的长度应取最大操作数的长度(在赋值时此规则也包括左端赋值目标)。
·无符号数和有符号数
执行算术操作和赋值时,要注意哪些操作数时无符号数、哪些操作数是有符号数。无符号数存储在线网、一般寄存器和基数格式表示形式的整数中。有符号数存储在整数寄存器和十进制形式的整数中。
·关系操作符
关系操作符是对两个操作数进行比较,如果比较结果为真则结果为1,如果比较结果为假则结果为0,关系操作符多用与条件判断。 > < >= <=
如果操作数中有x或z出现,那么结果为x。
·相等操作符
四种:== != === !== 其中==和!=是比较逻辑值,由于操作数中某些位可能是x,所以比较结果也有可能是x。===和!==是按位比较,所以不会出现结果为x的情况。
·逻辑操作符
&& || !
如果操作数是向量,那么非0向量被当作逻辑1。
·位操作符
位操作符是对操作数按位进行与、或、非等逻辑操作。
~:一元非 &:二元与 | : 二元或 ^~,~^二元异或或非
·规约操作符
规约操作符的操作数只有一个,并只产生一位结果。共有如下6种:
(1)& 规约与 将操作数的各位进行与操作的结果。
(2)~& 规约与非 与规约与相反。
(3)| 规约或 将操作数的各位进行或操作的结果。
(4)~| 规约或非
(5)^ 规约异或:某个位有x或z,结果为x,操作数有偶数个1,那么结果为0;否则为1。
·移位操作符
<< >>
·条件操作符
条件操作符是根据条件表达式的值来选择执行表达式,形式如下:
cond_expr?expr1:expr2
其中,con_expr是条件表达式,他的结果是真或假,expr1和expr2是待选的执行表达式。con_expr为真,选择执行1,否则选择执行2。如果con_expr为x或z,两个都要计算,然后对计算结果按位运算,某一位都为1,则结果为1,都为0,结果为0,否则为x。
·连接操作符
连接操作符是把位于大括号{}中的两个或以上用“,”分隔的小表达式按位连接在一起,形成一个大表达式。
·赋值操作符
E. 大端模式、小端模式和MSB、LSB是一个概念吗两者有何区别
不是同一个概念。
大端模式:高字节放入低地址。
小端模式:高字节放入高地址。
一般在单片机系统中要分清。常用的X86、GCC-AVR是小端模式;而KEIL C51为大端模式。还有其他的编译环境都有默认的模式,具体看变异环境说明。
MSB是一串数据的最高位。
LSB是一串数据的最低位。
一般在AD转换的DATASHEET中会提到。
F. 位带区和位带别名区在cortex-m3存储器中哪两个区域
在CM3中,有两个区实现了位带,其中一个是SRAM区的最低1MB范围,第二个是片内外设区的最低1MB范围,这两个区域的地址可以像普通的RAM一样使用外,还有自己的位带别名区,位带别名区把位带区的每个bit膨胀成一个32位的字。可以通过位带别名区访问这些字,就可以达到访问原始bit的目的。因此位带别名区的word值只是表示位带区的一个bit的值,也就是说这个word只有最低位LSB有效。
G. 原始数据文件中,出现MSB first,then LSB是什么意思
MSB:Most Significant Bit. “最高有效位”
LSB:Least Significant Bit. “最低有效位”
MSB first表示,数据采用大端模式,意思就是一个多字节数据的高字节在前,低字节在后。例如0x1234567890ab,它的存储方式就是12 34 56 78 90 ab.
相反,lsb first就是小端模式,一个多字节数据的低字节在前,高字节在后。上例的存储就是ab 90 78 56 34 12
H. 温度传感器数据用十六进制进行存储时的标志是怎么确定的
集成温度传感器AD590及其应用
摘 要:AD590是AD公司利用PN结构正向电流与温度的关系制成的电流输出型两端温度传感器,文中介绍了AD590的功能和特性,分析了AD590的工作原理,给出了采用AD590设计的...
2 电子技术文章-技术资料
集成温度传感器AD590及其应用
集成温度传感器AD590及其应用
浏览次数 1978
添加日期 2004-06-26 相关评论
主题: 有没有数字电流表制作图 ( 发布人:发布时间:2005-8-22 21:21:37 )
评论内容: 有没有数字电流表制作图 请问...
...
3 技术论坛 C++,VC...
集成温度传感器AD590及其应用[
标题:集成温度传感器AD590及其应用 htkj
等级:超级版主 文章:199 积分:2698 门派:无门无派
注册:2005年...集成温度传感器AD590及其应用集成温度传感器AD590及其应用点击浏览该文件
温度传感器,使用范围广,数量多,居各种传感器之首。温度传感器的发展大致经历了以下3个阶段:
1.传统的分立式温度传感器(含敏感元件),主要是能够进行非电量和电量之间转换。2.模拟集成温度传感器/控制器。
3.智能温度传感器。目前,国际上新型温度传感器正从模拟式想数字式、集成化向智能化及网络化的方向发展。
温度传感器的分类
温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。
接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡,这是的示值即为被测对象的温度。这种测温方法精度比较高,并可测量物体内部的温度分布。但对于运动的、热容量比较小的及对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。
非接触测温的测温元件与被测对象互不接触。常用的是辐射热交换原理。此种测稳方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可测量温度场的温度分布,但受环境的影响比较大。
温度传感器的发展
1.传统的分立式温度传感器——热电偶传感器
热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从-50~1600℃进行连续测量,特殊的热电偶如金铁——镍铬,最低可测到-269℃,钨——铼最高可达2800℃。
2.模拟集成温度传感器
集成传感器是采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世的,它将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出等功能。
模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。
2.1光纤传感器
光纤式测温原理
光纤测温技术可分为两类:一是利用辐射式测量原理,光纤作为传输光通量的导体,配合光敏元件构成结构型传感器;二是光纤本身就是感温部件同时又是传输光通量的功能型传感器。光纤挠性好、透光谱段宽、传输损耗低,无论是就地使用或远传均十分方便而且光纤直径小,可以单根、成束、Y型或阵列方式使用,结构布置简单且体积小。因此,作为温度计,适用的检测对象几乎无所不包,可用于其他温度计难以应用的特殊场合,如密封、高电压、强磁场、核辐射、严格防爆、防水、防腐、特小空间或特小工件等等。目前,光纤测温技术主要有全辐射测温法、单辐射测温法、双波长测温法及多波长测温等
2.1.1 全辐射测温法
全辐射测温法是测量全波段的辐射能量,由普朗克定律:
测量中由于周围背景的辐射、测试距离、介质的吸收、发射及透过率等的变化都会严重影响准确度。同时辐射率也很难预知。但因该高温计的结构简单,使用操作方便,而且自动测量,测温范围宽,故在工业中一般作为固定目标的监控温度装置。该类光纤温度计测量范围一般在600~3000℃,最大误差为16℃。
2.1.2 单辐射测温法
由黑体辐射定律可知,物体在某温度下的单色辐射度是温度的单值函数,而且单色辐射度的增长速度较温度升高快得多,可以通过对于单辐射亮度的测量获得温度信息。在常用温度与波长范围内,单色辐射亮度用维恩公式表示:
2.1.3 双波长测温法
双波长测温法是利用不同工作波长的两路信号比值与温度的单值关系确定物体温度。两路信号的比值由下式给出:
际应用时,测得R(T)后,通过查表获知温度T。同时,恰当地选择λ1和λ2,使被测物体在这两特定波段内,ε(λ1,T)与ε(λ2,T)近似相等,就可得到与辐射率无关的目标真实温度。这种方法响应快,不受电磁感应影响,抗干扰能力强。特别在有灰尘,烟雾等恶劣环境下,对目标不充满视场的运动或振动物体测温,优越性显着。但是,由于它假设两波段的发射率相等,这只有灰体才满足,因此在实际应用中受到了限制。该类仪器测温范围一般在600~3000℃,准确度可达2℃。
2.1.4 多波长辐射测温法
多波长辐射测温法是利用目标的多光谱辐射测量信息,经过数据处理得到真温和材料光谱发射率。考虑到多波长高温计有n个通道,其中第i个通道的输出信号Si可表示为:
将式(9)~(13)中的任何一式与式(8)联合,便可通过拟合或解方程的方法求得温度T和光谱发射率。Coates[8,9]在1988年讨论了式(9)、(10)假设下多波长高温计数据拟合方法和精度问题。1991年Mansoor[10]等总结了多波长高温计数据拟合方法和精度问题。 该方法有很高的精度,目前欧共体及美国联合课题组的Hiernaut等人已研究出亚毫米级的6波长高温计(图4),用于2000~5000K真温的测量[11]。哈尔滨工业大学研制成了棱镜分光的35波长高温计,并用于烧蚀材料的真温测量。多波长高温计在辐射真温测量中已显出很大潜力,在高温,甚高温,特别是瞬变高温对象的真温测量方面,多波长高温计量是很有前途的仪器。该类仪器测温范围广,可用于600~5000℃温度区真温的测量,准确度可达±1%。
2.1.5 结 论
光纤技术的发展,为非接触式测温在生产中的应用提供了非常有利的条件。光纤测温技术解决了许多热电偶和常规红外测温仪无法解决的问题。而在高温领域,光纤测温技术越来越显示出强大的生命力。全辐射测温法是测量全波段的辐射能量而得到温度,周围背景的辐射、介质吸收率的变化和辐射率εT的预测都会给测量带来困难,因此难于实现较高的精度。单辐射测温法所选波段越窄越好,可是带宽过窄会使探测器接收的能量变得太小,从而影响其测量准确度。多波长辐射测温法是一种很精确的方法,但工艺比较复杂,且造价高,推广应用有一定困难。双波长测温法采用波长窄带比较技术,克服了上述方法的诸多不足,在非常恶劣的条件下,如有烟雾、灰尘、蒸汽和颗粒的环境中,目标表面发射率变化的条件下,仍可获得较高的精度
2.2半导体吸收式光纤温度传感器是一种传光型光纤温度传感器。所谓传光型光纤温度传感器是指在光纤传感系统中,光纤仅作为光波的传输通路,而利用其它如光学式或机械式的敏感元件来感受被测温度的变化。这种类型主要使用数值孔径和芯径大的阶跃型多模光纤。由于它利用光纤来传输信号,因此它也具有光纤传感器的电绝缘、抗电磁干扰和安全防爆等优点,适用于传统传感器所不能胜任的测量场所。在这类传感器中,半导体吸收式光纤温度传感器是研究得比较深入的一种。
半导体吸收式光纤温度传感器由一个半导体吸收器、光纤、光发射器和包括光探测器的信号处理系统等组成。它体积小,灵敏度高,工作可靠,容易制作,而且没有杂散光损耗。因此应用于象高压电力装置中的温度测量等一些特别场合中,是十分有价值的。
B 半导体吸收式光纤温度传感器的测温原理
半导体吸收式光纤温度传感器是利用了半导体材料的吸收光谱随温度变化的特性实现的。根据 的研究,在 20~972K 温度范围内,半导体的禁带宽度能量Eg 与
温度T 的关系为
"
3.智能温度传感器
智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。
智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,即智能化取决于软件的开发水平。
3.1数字温度传感器。
随着科学技术的不断进步与发展,温度传感器的种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。
一、DS1722的工作原理
1 、DS1722的主要特点
DS1722是一种低价位、低功耗的三总线式数字温度传感器,其主要特点如表1所示。
2、DS1722的内部结构
数字温度传感器DS1722有8管脚m-SOP封装和8管脚SOIC封装两种,其引脚排列如图1所示。它由四个主要部分组成:精密温度传感器、模数转换器、SPI/三线接口电子器件和数据寄存器,其内部结构如图2所示。
开始供电时,DS1722处于能量关闭状态,供电之后用户通过改变寄存器分辨率使其处于连续转换温度模式或者单一转换模式。在连续转换模式下,DS1722连续转换温度并将结果存于温度寄存器中,读温度寄存器中的内容不影响其温度转换;在单一转换模式,DS1722执行一次温度转换,结果存于温度寄存器中,然后回到关闭模式,这种转换模式适用于对温度敏感的应用场合。在应用中,用户可以通过程序设置分辨率寄存器来实现不同的温度分辨率,其分辨率有8位、9位、10位、11位或12位五种,对应温度分辨率分别为1.0℃、0.5℃、0.25℃、0.125℃或0.0625℃,温度转换结果的默认分辨率为9位。DS1722有摩托罗拉串行接口和标准三线接口两种通信接口,用户可以通过SERMODE管脚选择通信标准。
3、DS1722温度操作方法
传感器DS1722将温度转换成数字量后以二进制的补码格式存储于温度寄存器中,通过SPI或者三线接口,温度寄存器中地址01H和02H中的数据可以被读出。输出数据的地址如表2所示,输出数据的二进制形式与十六进制形式的精确关系如表3所示。在表3中,假定DS1722 配置为12位分辨率。数据通过数字接口连续传送,MSB(最高有效位)首先通过SPI传输,LSB(最低有效位)首先通过三线传输。
4、DS1722的工作程序
DS1722的所有的工作程序由SPI接口或者三总线通信接口通过选择状态寄存器位置适合的地址来完成。表4为寄存器的地址表格,说明了DS1722两个寄存器(状态和温度)的地址。
1SHOT是单步温度转换位,SD是关闭断路位。如果SD位为“1”,则不进行连续温度转换,1SHOT位写入“1”时,DS1722执行一次温度转换并且把结果存在温度寄存器的地址位01h(LSB)和02h(MSB)中,完成温度转换后1SHOT自动清“0”。如果SD位是“0”,则进入连续转换模式,DS1722将连续执行温度转换并且将全部的结果存入温度寄存器中。虽然写到1SHOT位的数据被忽略,但是用户还是对这一位有读/写访问权限。如果把SD改为“1”,进行中的转换将继续进行直至完成并且存储结果,然后装置将进入低功率关闭模式。
传感器上电时默认1SHOT位为“0”。R0,R1,R2为温度分辨率位,如表5所示(x=任意值)。用户可以读写访问R2,R1和R0位,上电默认状态时R2=“0”,R1=“0”,R0=“1”(9位转换)。此时,通信口保持有效,用户对SD位有读/写访问权限,并且其默认值是“1”(关闭模式)。
二、智能温度传感器DS18B20的原理与应用
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
2DS18B20的内部结构
DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图1所示。
(1) 64 b闪速ROM的结构如下:
开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
(2) 非易市失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。
(3) 高速暂存存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM。后者用于存储TH,TL值。数据先写入RAM,经校验后再传给E2RAM。而配置寄存器为高速暂存器中的第5个字节,他的内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:
低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即是来设置分辨率,如表1所示(DS18B20出厂时被设置为12位)。
由表1可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。
高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如下所示。其中温度信息(第1,2字节)、TH和TL值第3,4字节、第6~8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5 ℃/LSB形式表示。温度值格式如下:
对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。表2是对应的一部分温度值。
DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若T>TH或T<TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行告警搜索。
(4) CRC的产生
在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
3DS18B20的测温原理
DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
I. SQL建立存储过程更新存储过程 提示未提供该参数
create procere up_lsb
@零食编号 char(5),@售价 int
as update 零食表 set 售价=@售价 where 零食编号=@零食编号
go
J. 什么是MSB、LSB和大端、小端是否是一个概念
MSB是Most Significant Bit的缩写,最高有效位。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。
LSB(Least Significant Bit),意为最低有效位;MSB(Most Significant Bit),意为最高有效位。
计算机业界,端表示数据在存储器中的存放顺序。大端与小端是两种数据的存储方式!
大端方式将高位存放在低地址,小端方式将高位存放在高地址。(比如将16位数0x1234存放在地址0x00,0x01两个连续地址中时,按照大端方式应该0x00中存放0x12,而0x01中存放0x34,小端方式0x00中存放0x34,而x01中存放0x12)