3.4单总线体系简介及温度丈量办法
3.4.1概述
美国Dallas公司近年来推出了单总线技能及相应的集成芯片,它的一系列电池办理芯片能便利地组成分布式办理体系,极大地减轻了体系布线,然后进步体系牢靠性和抗干扰性,满意电动车多点丈量的要求。
单总线技能是只需一个总线指令者和一个或多个从器材组成的计算机运用体系,总线指令者一般是PC机或单片机,体系由硬件装备、处理次第和单总线信号三部分组成。体系依照单总线协议规则的时序和信号波形进行初始化、辨认器材和进行数据交换。
单总线技能可用于环境状况检测体系、实时气候检测体系(主动气候站)、库房监控体系、楼宇监管体系、泊车收费、考勤办理等。运用中主控计算机根据要求,既能够选用PC机也能够选用单片机。
3.4.2硬件装备
单总线体系界说了一根信号线,总线上的每个器材都能够在适宜的时刻驱动它,相当于把计算机的地址线、数据线、操控线合为一根信号线对外进行数据交换。为了区别这些芯片,厂家在出产每个芯片时,都编制了仅有的序列号,经过寻址读出序列号码,就能把芯片辨认出来。这样就能使这些器材挂在一根信号线上进行码分多址、串行分时数据交换,组成一个主动测控体系或主动收费体系,乃至还能够用单总线组成一个微型局域网。
厂家对每个芯片用激光刻录一个64位二进制ROM代码。从最低位开端,前8位是族码,标明产品的分类编号;接着的48位是一个仅有的序列号;最终8位是前56位的CRC校验码。CRC(Cyclic Redundancy Check)称为循环冗余码检测,是数据通讯中校验数据传输是否正确的一种办法。在运用时,总线指令者读入ROM中64位二进制码后,将前56位按CRC多项式(这儿是X8+X5+X4+1)计算出CRC值,然后同ROM中高8位的CRC值比较,若相同则标明数据传输正确,不然要求重传。48位序列号是一个15位的十进制编码,这么长的编码彻底可为每个芯片编制一个全世界仅有的号码,也称为身份证号,能够被寻址辨认出来。此外,芯片内还含有收发操控和电源存储电路,其示意图如图3.5。
这些芯片选用CMOS技能,耗电量都很小(空闲时几μW,作业时几mW),故一般不必另附电源。单总线上一般处于高电位(5V左右),每个器材都能在需求时驱动它。因而,挂在总线上的每个器材必需是漏极开路或者是三态输出的,这样,不作业时不会给总线添加功耗。
单总线的数据传输有两种形式,一般以16.3kb/s的速度通讯,超速形式可达142kb/s.因而,只能用于对速度要求不高的场合,一般用于100kb/s以下速度的测控或数据交换体系中。
以上内容是单总线技能协议所要求的,各种芯片都具有这些基本内容,体系首要辨认器材号,承认后才进入某种详细芯片功用,如A/D转化器、温度计等。
单总线同单片机的最简略接口如图3.6,
根据单总线器材手册,单总线技能效果间隔在单片机I/O直接驱动下可达200m,经扩展可达1000m以上,答应挂上百个器材,能满意一般测控体系要求。
3.4.3处理时序
处理时序是软件规划的使命。在单总线体系中,软件规划是技能的要害,简练的硬件装备是依托杂乱的软件来支撑的。在PC机作为主控机时,单总线软件规划根据Dallas公司授权的软件开发商供给的成套开发工具,为软件开发运用带来很大的便当。而用单片机作为主控机时,得由自己根据单总线协议,用汇编言语和C言语来编写悉数软件,给开发运用添加了必定难度。
处理时序确保数据牢靠的传送,任何时刻单总线上只能有一个操控信号或数据。每次操作时,一般有以下四个进程:
①初始化;
②传送ROM指令;
③传送RAM指令;
④数据交换。
单总线上一切处理都从初始化开端。初始化时序由总线指令者宣布的复位脉冲和一个或多个从器材宣布的应对脉冲组成。“应对脉冲”是从器材让总线指令者知道该器材是在总线上,并现已准备好接纳指令开端作业。
当总线指令者检测到某器材的存在,就会宣布传送ROM功用指令,它用来挑选某个或一些从器材,同他们树立握手信号,以便同它进行详细功用操作。单总线协议规则其层次结构如图3.7.
单总线指令者首要有必要发送7个ROM功用指令中的一个指令:
①读ROM(总线上只需一个器材时,如读DS2401的序列号);
②匹配ROM(总线上有多个器材时,寻址某个器材);
③查找ROM(体系初次发动后,须辨认总线上各器材);
④越过ROM(总线上只需一个器材时,可越过读ROM指令直接向器材发送指令,以节省时刻);
⑤超速匹配ROM(超速形式下寻址某个器材);
⑥超速越过ROM(超速形式下越过读ROM指令);
⑦条件查找ROM(只查找输入电压超越设置的报警门限值的某个器材);这些操作在手册中都有详细的指令码供编程运用。
成功履行上述指令之一后,总线指令者可发送任何一个可运用的指令来访问存储部分和完结操控功用,进行数据交换。一切数据的读写都是从最低位开端的。
3.4.4单总线信号
单总线传送数据或指令是由一系列的时序信号组成的,单总线上共有4种时序信号:1.初始化信号;2.写0信号;3.写1信号;4.读信号。
各器材的运用手册中对这4种波形参数(如脉冲上升时刻、宽度和空隙等)都作了详细的要求,规划中应确保指令履行时刻小于或等于时序信号中的最小时刻。这儿应该严厉遵从时序联系,并留意当单片机作业频率不一起,单片机的延时值是不同的。图3.8给出了惯例形式下这4种波形的示意图。
3.4.5单总线器材
单总线体系中装备的各种器材是由Dallas等公司供给的专用芯片来完结的。这儿简略介绍咱们运用的芯片。
1.数值温度计DS18B20
该温度计选用了异乎寻常的原理,它运用温敏振动器的频率随温度改变的联系,经过对振动周期的计数来完结温度丈量的。为了扩展测温规模和进步分辨率,运用了一个低温系数振动器和一个高温系数振动器别离进行计数,并选用了非线性累加器等电路来改进线性,故DS18B20具有下列杰出的特性,而且价格低廉。
①温度丈量规模:-55~+125℃;
②分辨率:±0.5℃(-10~+85℃时);
③温度值输出:9~12位可挑选的二进制数值量;
④转化时刻:750ms(最大值);
⑤用户可设置报警温度的上下限;
⑥不需外围电路,电源可由单总线供给;
2. A/D转化器
在单总线上直接挂上A/D转化器,会使体系的检测功用大大增强。各种物理量只需经过传感器变为电压量,就可由A/D收集后经单总线送到计算机进行处理。Dallas公司推出的DS2450便是这样的A/D转化器,其首要特性为:
①4路模仿输入通道,两种模仿输入量程0~2.56V和0~5.12V;
②未用做输入的通道可作为输出通道运用;
③逐次迫临的改换原理,可挑选的8位转化精度;
④呼应模仿电压超门限报警设置;
3.4.6体系中用到的温度测验办法
CPU的I/O口衔接单总线器材,并经过一个上拉电阻连到+5V.需求留意的是单总线器材的布局应该是尽量简略,并确保匹配电阻呈现在单总线拓扑结构的两头。体系衔接图如图3.9:
3.5总电流、总电压丈量
在曾经体系中,总电流、总电压丈量电路如图3.10,充电时电流传感器在采样电阻R1上的电压为“+”,经过运放后,AD0为“-”,AD1为“+”;放电时电流传感器在采样电阻R1上的电压为“-”,AD0为“+”,AD1为“-”。电压传感器在采样电阻R6上的压降AD2和AD0、AD1一起送往80C552的A/D口进行A/D转化,再经过标度改换即可测得总电路、总电压。程序中,经过AD0和AD1的值,就可判别出电池是处于充电状况仍是放电状况。
80C552的A/D转化是10位的,这关于电池的功率强度估量略显不行,而且需求调整A1、A2运放的作业点。在BMS-Ⅲ体系中,总电流、总电压丈量选用16位A/D转化芯片AD976,下面是AD976的首要特性:
- 16位ADC;
- 100kSPS速率;
- 5V供电,±10V输入电压规模;
- 低功耗:100mW;
- 内部2.5V或外部参阅电压挑选;
- 高速并行接口;
- 片内时钟。
因为AD976的输入电压规模是±10V,总电流的丈量不需求运放进行正负电压转化,然后免去了调整运放作业点问题,别的,AD976供给内部参阅电压,这给体系调试也带来便利,下图3.11是AD976丈量总电压、电流框图:
3.6显现体系
在体系中,显现选用精电蓬远公司出产的320×240点阵的液晶显现模块DMF-50174,液晶操控器是SED1335.DMF-50174分为两个区,榜首区对应ASCII字符显现方法,即一个字符对应一个8×8的点阵,故整个榜首区需求(320×240)/64=1200个字节,而第二区对应点阵显现方法,在第二区中,一个字节对应8点阵,故第二区需求(320×240)/8=9600个字节,液晶屏的点阵是和显现RAM一一对应的,DMF-50174总共需求10800个字节的显现RAM.
液晶操控器SED1335由振动器、功用逻辑电路、显现办理电路、字符库及其办理电路以及发生驱动时序的时序发生器组成,振动器作业频率可在1M~10MHz规模内挑选。SED1335能在很高的作业频率下迅速地解译MPU发来地指令代码,将参数置入相应的寄存器内,并触发相应的逻辑功用电路运转。操控部能够办理64K显现RAM ,办理内藏的字符发生器及外扩的字符发生器。
SED1335将64K显现RAM可分为以下几种显现特区:
1.文本显现特性
具有此特性的显现RAM区专用于文本方法显现,在该显现RAM区中每个字节的数据都认为是字符代码。SED1335将运用该字符代码确认字符库中字符首地址,然后将相应的字模数据传送到液晶显现模块上。在液晶上呈现该字符的8×8点阵块。也便是文本显现RAM的一个字节对应显现屏上的8×8点阵。
2.图形显现方法
具有此特性的显现RAM区专用于图形方法显现。在该显现RAM区中每个字节的数据直接被送到液晶显现模块上,每个位的电平状况决议显现屏上一个点显现状况,“1”为显现,“0”为不显现。所以图形显现RAM的一个字节对应显现屏上的8×1点阵。
SED1335中专有一组寄存器来办理这两种特性的显现区,SED1335能够独自显现一个显现区,也可把两个特性的显现区经过某种逻辑联系组成显现,这些显现方法及特性的设置都是经过软件指令设置完结的。
SED1335有13条指令,大都指令带有参数,总共分为下面四类指令:体系操控指令、显现操作指令、制作操作指令及存储操作指令。图3.12是80C552和SED1335的接口电路:
在显现程序上,BMS-Ⅲ规划了以下几个子程序供其他程序调用,一切的显现画面都是经过调用它们完结的。
initlcdreg1()初始化液晶显现区1;
initlcdreg2()初始化液晶显现区2;
dispascii(BYTE x,BYTE y,BYTE c)在榜首区的(x,y)处显现ASCII值为c的字符;
dispstr(BYTE x,BYTE y,BYTE len,BYTE *str)在榜首区的(x,y)开端处显现长度为len的ASCII字符串;
disphz(WORD x,WORD y,WORD c)在第二区的(x,y)处显现16×16点阵的汉字;
disphzstr(WORD x,WORD y,BYTE len,BYTE *str)在第二区的(x,y)开端处显现长度为len的汉字串;
disphz8_16(WORD x,WORD y,WORD c)在第二区的(x,y)处显现8×16点阵的字符;
dispbitmap(BYTE x,BYTE y,BYTE lenth,BYTE height,BYTE *str)在第二区的(x,y)处显现长度为lenth、高度为height的位图。
以上16×16点阵汉字是在ucdos下经过一种汉字提取程序得到的字模代码,因为单片机的内存有限,我仅仅把需求显现的汉字提取出来,放到一个双下标数组中,需求显现某一汉字时,只需调用该汉字的下标序号即可。
8×16点阵字符及其它位图则是经过去掉*.bmp位图文件的文件头而得到的。