免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 of 29序言达拉斯半导体 DS2438 智能电池监视器其主要的特点有:(1) 独特的1-Wire接口仅需一个端口引脚即可进行通信(2) 为电池组提供唯一的64位序列号(3) 片上电池温度检测省去热敏电阻(4) 片上A/D转换器监视电池电压,作为终止充电和终止放电的判据(5) 片上集成的电流累积器提供电量计量(6) 二进制历时记录器(7) 40字节非易失用户存储器存储电池相关数据(8) 工作温度范围-40C至+85C(9) 应用于蜂窝电话、数码相机、数字摄像机、掌上电脑、手持终端(包括条形码)、笔输入掌上电脑、PDA和数字助理、智能电池组/充电器。管脚分配DS2438管脚功能描述:l GND 接地2 VSENS+ 电池测量电流输入(+)3 VSENS- 电池测量电流输入(-)4 vAD 通用电压A/D采样输入端5 VCC 供电电压(2.41OV)6,7 NC 悬空不接8 DQ 数据输入输出,单总线概述DS2438智能电池监视器为电池组提供了若干很有价值的功能:可用于标识电池组的唯一序列号;直接数字化的温度传感器省掉了电池组内的热敏电阻;可测量电池电压和电流的A/D转换器;集成电流累积器用于记录进入和流出电池的电流总量;一个经历时间纪录器;以及40字节的非易失EEPROM存储器,可用于存储重要的电池参数例如化学类型、电池容量、充电方式和组装日期等。DS2438使用1-Wire接口发送和接收信息,所以中央微控制器和DS2438之间仅需1条连线(还有地线)。这就意味着电池组仅需要三个输出接头:电池电源、地和1-Wire接口。由于每片DS2438具有一个唯一的硅序列号,多片DS2438可以共存于同一条1-Wire总线。这就允许多个电池组可同时充电或在系统中使用。这款智能电池监视器可用于便携计算机、便携/蜂窝电话以及手持式仪器等,这些应用中需要密切监视电池的实时性能。与主系统微控制器相配合,DS2438提供了一个化学类型无关的完备的智能电池组方案。在定制某种特定化学类型和容量的电池时,只需向微控制器和DS2438 EEPROM中输入相应的代码即可,当电池的化学类型改变时,设计者只需要修改软件即可。2 of 29该处DS2438管脚功能详述表与上重复,故略概述1.64位的激光ROM2.温度传感器3.电池电压A/D转换器4.电池电流A/D转换器5.电流累加器6.历时记录器7.40位的非易失用户存储器每个DS2438包含一个独特的64位光刻ROM序列码,这样几个电池组能够被同一个主机系统充电和监控。此外,具有同样单总线结构、带64位ROM特点的其他达拉斯产品,能存在于同一根总线上。可参阅达拉斯自动鉴定数据手册得到这些产品的规格。DS2438通过一条总线通信。有了这条单总线端口,存储器和控制函数只有在程序存储器函数协议建立起后才能生效。主机必须首先提供四种程序存储器函数命令的一个:1)读ROM,2)匹配ROM,3)搜索ROM,或4)跳过ROM。这些命令可以操作每个设备上的64位光刻ROM部分,并且如果一条总线上有多个设备存在,可以锁定一个特定的设备。还可以向主机指出有多少和什么类型的设备存在。在一个程序存储器函数序列被成功执行后,存储器和控制函数获得权限,并且主机可以提供六种存储器和控制函数命令中的任意一种。发布控制函数命令去指示DS2438执行温度测量或电池电压A/D转换。这些测量的结果将被存放在DS2438的存储器映射中,通过发送存储器函数命令能读取温度测量值和电压寄存器。此外,电池的充电/放电电流测量无需用户干预,而且最终结果将会存储于DS2438的存储器空间中。DS2438用这些当前的电流测量值更新三个电流累加器。第一个存储流进和流出电池电流的净累加总和,第二个存储电池累积充电电流总和,第三个存储电池累积放电电流总和。历时记录器中的数据,可以用于计算电池自放电或者与时间有关的充电停止限制,也可以存储在DS2438的存储器映射中,被存储器函数命令读取。DS2438的非易失性用户存储器包括40个字节的EEPROM。这些存储单元可以用来存储用户想要存储的任意数据,以及用存储器函数命令写入数据。所有的数据和命令从最低有效位开始读取和写入。3 of 29框图(图1)表示了DS2438的内部结构操作测量温度DS2438通过片上温度测量技术测量温度。能读取13位二进制补码格式的温度数据,分辨率为0.03125C。表1描述了温度测量输出数据的确切关系。数据在单总线接口上串行传输。DS2438可以测量温度的范围从-55C到+ 125C,以0.03125C的增量。对于华氏温度表示法,必须使用查找表或转换因子。注意,在DS2438中最低有效位表示0.03125C,如下13位格式。温度寄存器的3个最低有效位始终为0. 剩下的13位用C的二进制补码形式表示的温度,最高有效位保持符号位。查看“存储器映射”找到温度寄存器地址。4 of 29操作测量电池电压片上的模数转换器(ADC)有10位的分辨率,当DS2438收到指示它转换电压的命令时,执行转换。这个测量的结果放在2字节电压寄存器中。DS2438的模数转换范围是0V到10V。这个范围对于六节镍镉电池或镍氢电池组或两节锂电池组来说是合适的。模数转换的满量程值是10.23V,分辨率为10mV。虽然模数转换最低量程可达0V,但是有一点需要注意,那就是待测电池电压也是DS2438的供电电压。这样,电池电压低于2.4V时,电压模数转换的准确性下降,执行转换的能力受到DS2438的操作电压范围的限制。在这个寄存器中表示的二进制格式的电压范围如表2中列出的一样。注意,尽管编码在电压值低于2.4V下存在,但是电压模数转换的准确性和DS2438供电电压的限制使得这些值实际上不可使用。查看“存储器映射”找到电压寄存器地址。5 of 29对于应用程序需要一个通用的电压模数转换器,DS2438可以被配置,以致电压转换指令的结果能够想表2描述的一样将VAD的输入(而不是VDD的输入)存入电压寄存器中。根据状态/配置寄存器的声明,VDD或VAD(两者之一)将在接受到电压转换命令后存储在电压寄存器中。参阅寄存器映射中关于状态/配置寄存器的详细描述。如果VAD输入作为电压输入,模数转换器在1.5V VAD 2VDD范围内事准确的,其中VDD2.4V VDD 5.0V.这个特性使得在电压输入范围1.5V VAD 10V(VDD=5.0V)内,用户能够得到一个符合精度要求的电压模数转化器。操作测量电池电流DS2438模数转换器以通过测量外部检测电阻两端的电压,来有效地检测流入和流出电池组的电流为特点。模数转换器将在后台以每秒36.41次的频率采样,因此不需要命令启动电流测量。然而,DS2438只会在状态配置寄存器中IAD位置1的时候才启动电流模数转换。DS2438通过VSENS管脚测量流入和流出电池的电流,VSENS+管脚到VSENS-管脚的电压被认为是电流检测电阻RSENS两端的电压。VSENS+端与RSENS电阻直接相关,然而,对于VSENS-,我们建议在该管脚和RENS的接地端之间接一个RC低通滤波电路。用一个阻值为100K的电阻和一个0.1F的钽电容器,该滤波器的截止频率是15.9Hz. 电流模数转换器以36.41次/s或每27.46ms一次的频率采样。这个滤波器能消除大部分的尖峰毛刺的影响,从而允许电流累加器准确的反映流入和流出电池的总电荷。模数转换器测量检测电阻RSENS两端的电压,并将结果以二进制补码格式保存在电流寄存器中。转换结果的符号位,表明充电还是放电,存储在电流寄存器的最高有效位中,见表3. 查看“存储器映射”找到电流寄存器地址。6 of 29(这个寄存器实际上存储的是检测电阻RSENS两端的电压。这个值带入下面的公式可以计算出电池的电流。) 电池组的电流能够由电流寄存器中的值经这个方程计算得出。I = Current Register / (4096 * RSENS) (RSENS的单位是)例如,如果流入电池组的电流是1.25A,电池组使用一个0.025的检测电阻,DS2438向电流寄存器写入的值为128(十进制)。根据这个值,电池组电流能够被计算为:I = 128 / ( 4096 * 0.025) = 1.25A随着时间的推移,整合的电流会因为小电流模数转换器存在偏置误差可以有一个大的累积效应,DS2438在电流模数转换器中提供了一种抵消偏置误差的方法。在每次电流测量完成后,测量值被加到偏置寄存器的内容中,结果随后被存储在电流寄存器。偏移寄存器是一个两字节非易失性的读/写寄存器,是以二进制补码形式存储的。这个寄存器的高四位最高有效位包含偏置的符号,如表4所示。下面的步骤可以用来调整电流模数转换器。1. 向偏置寄存器写全02. 驱动零电流通过RSENS电阻3. 读取电流寄存器值4. 通过在状态/配置寄存器置 0 IAD位,关闭电流模数转换器。5. 改变当前读取的电流寄存器的值的符号,转换成二进制补码的形式,并将结果写入偏置寄存器中。6. 通过将状态/配置寄存器中的IAD位置1,开启电流模数转换器。注意:当写入偏置寄存器时,必须禁止电流测量(IAD位置0)。在每一个DS2438设备装载之前,电流模数转换器完成校准过程。然而,为了达到最好的效果,在最初的电池组测试中,电池组制造商应该校准电流模数转换器,并且主机系统应该尽可能的校准(例如,在电池充电期间)。7 of 29操作电流累加器DS2438用集成电流累加器(ICA)跟踪一块电池的剩余容量。ICA保持流进和流出电池的电流总和的净累积。因此,存储在这个寄存器中的值是在一个电池中剩余容量的一个指标,可能被用在执行燃料评估函数。此外,DS2438还有另外的寄存器用来存储总充电电流和总放电电流。CCA和DCA给主机系统提供决定可充电电池的寿命结束的信息,这些信息是基于在其生命周期的总充放电电流。电流测量描述的是每27.46 ms检测电阻RSENS两端测得的电压。这个值用于增加或减少ICA寄存器的值,如果电流是正的,增加CCA的值,如果电流时负的,减少DCA的值。ICA是一个按比例的8位易失二进制计数器,累计了电阻RSENS两端的电流。如果状态/配置寄存器IAD位置1,ICA递增或递减。表5展示了ICA的内容。查看“存储器映射”找到ICA寄存器地址。表5 ICA寄存器格式(这个寄存器累积了RSENS两端的电压值,这个值通过以下这个方程可以计算出电池剩余量。)剩余的电池容量能过用这个方程由ICA的值计算得出。剩余容量=ICA/(2048*RSENS) (RSENS单位为)例如,如果电池组的剩余容量值为0.625,电池组用0.025的检测电阻,ICA的值将是32。根据这个值,剩余容量能够被计算为:剩余容量 = 32 / ( 2048 * 0.025) = 0.625 Ahr因为电流模数转换器精度是正负2最低有效位,所以测量很小的电流时很可能不精确。因为当累计足够长的时间这些不精确可能变成大的ICA错误,DS2438提出了一种方法用于滤除这些潜在的错误小信号以致他们不被累积。DS2438的阈值寄存器指定一个电流测量级(在抵消取消后),在此之上测量值将在ICA,CCA和DCA上累积,低于阈值将不被累积。阈值寄存器的格式如表6所示。接通电源的默认阈值的寄存器值是00 h(没有阈值)。注意:当写入阈值寄存器时,电流测量必须被禁用(IAD位设置为“0”)。8 of 29阈值寄存器格式 表6充电电流累积器(CCA)是一个两字节的非易失的读/写计数器,它表示在电池生命周期中的总充电电流。它只有当正电流通过RSENS时更新;即电池正在充电时更新。同样,放电电池累积器(DCA)是一个两字节非易失性计数器,它表示电池生命周期中的总放电电流。CCA和DCA能够被配置成三种模式中的任意一种:禁用,启动映射到EEPROM,启动但不映射到EEPROM。当CCA和DCA被禁用时(通过设置状态/配置寄存器中IAD位或CA位为0),通用数据存储可随意存储在第七页中的寄存器中。当CCA和DCA被启用(通过设置IAD和CA为“1”),第七页为这些寄存器预留,第七页中的任何字节都不能通过单总线被写入。当CCA和DCA启用时,它们的值自动映射到EEPROM,通过设置状态/配置寄存器中EE位为1。当这些寄存器被配置映射到EEPROM时,电池组生命历程中积累的信息将累积不会被丢失,即使电池处于放电状态。当EE位置0时,映射到EEPROM禁用。表七阐述了CCA和DCA寄存器的格式。表8 总结了ICA,CCA和DCA的操作模式。9 of 29图2 阐述了电池组在一个采样充/放电周期间,ICA,CCA和DCA的活动,假设ICA被DS2438配置成工作,CCA和DCA工作并将数据映射到EEPROM。为了简化累积器的图解,它们被视为模拟值,尽管它们是在DS2438中是数字计数器。注意当电池完全放电时,即ICA的值为0时,CCA和DCA寄存器的值将保持不变。电流累加器活动 图2检测电阻选择RSENS的选择涉及一个折中。一方面,电阻的阻值必须尽可能的小,为了避免在峰值电流要求间产生过高的电压降。另一方面,RSENS的阻抗应该尽可能的大,为电流测量和积累实现最好的分辨率。表9列出了RSENS的几个典型值,流经RSENS的电流为2A(作为一个例子)时,电流累加器的低八位值为( 1/(4096 * RSENS) ),剩余容量的低八位累积值为( 1/(2048 *RSENS) )。用户应该仔细考虑最大电流时的压降,选择RSENS时,解决电流测量/累积的要求。操作历时计数器一个内部振荡器用作计时功能的时基。双缓冲的历时计数功能,允许主机读取历时时间,当它被读取的时候,数据保持不变。为了实现这个目标,计数器数据的快照被转移到用户可访问的保持寄存器。这在重新调用寄存器命令的第八位后触发。历时计数器是一个4字节的二进制计数器,带有1s解决。历史计数器翻转之前能累积136年的时间。时间/日期由秒数表示,因为有一个用户决定的参考点。例如,1970年1月1日上午12:00可以作为一个参考点。10 of 29其他两个与时间相关的功能是可用的。第一个是断开时间戳,任何时候它检测到DQ线保持低电平接近两秒时,DS2438向这个时间戳写数据。这种情况将被视为电池组从系统中移除;发生的此刻被写入断开时间戳寄存器,所以被置换进系统,系统能够决定设备多长时间被存储,从而促进自放电修正剩余电池容量。在断开被检测到后,DS2438恢复睡眠模式,在这期间除了实时时钟,其他均被关闭。其他的时间戳是电荷结束时间戳,任何时候检测到充电完成后(当电流变化方向),该时间戳被DS2438写入。这个时间戳允许用户去计算电池处于放电和充电状态的时间,在此促进自放电计算。历时计数器,断开寄存器,充电结束寄存器如表10所示。参阅“存储器映射”找到时间相关寄存器的地址。64位光刻ROM每一个DS2438包含一个64位长的唯一的ROM码。前八位是单总线系列码(DS2438码是26h)。接下来的48比特是一个独特的序列号。最后八位是前56位的CRC。(见图三)。64位ROM和ROM功能控制部分允许DS2438作为单总线设备操作和遵循单总线系统部分的单总线协议。直到ROM函数协议得到满足,DS2438控制部分的函数才有访问权限。图5 ROM函数协议流程图描述了这个协议。单总线主机必须先执行四种ROM函数命令中的一种,1)读ROM,2)匹配ROM,3)搜索ROM,或4)跳过ROM。在一个ROM函数序列已经被成功执行后,DS2438特定的函数才有访问权限,主机可以执行六种寄存器和控制函数命令中的任意一种。11 of 29循环冗余码产生DS2438有一个8位的循环冗余码存储在64位ROM中的最高有效字节中。主机能够从64位ROM中的前56位中计算出一个循环冗余值,并与DS2438存储的值进行比较,来决定是否主机正确接收了ROM中的数据。这个CRC对应的多项式函数是:CRC = X8 + X5 + X4 +1DS2438用同样的多项式函数产生一个8位的CRC值,并提供这个值到主机,验证数据传输字节无误。CRC用于数据传输验证的每种情形,主机必须用以上给出的多项式函数计算出一个CRC值,并将计算值和DS2438中存储在64位ROM中的8位CRC值或DS2438内部计算的8位CRC值进行比较。(当暂存被阅读的时间将是9位。)CRC值的比较决定了完全由主机控制的操作是否继续。在DS2438中没有一个内部电路能够阻止一个指令序列执行,如果存储在DS2438中的循环冗余值和主机计算出的值不匹配。按图6流程图所示的CRC的适当使用,可以形成一个非常高水平完整性的通信信道。用如图4所示包括移位寄存器和异或门的多项式产生器能过产生单总线的CRC码。关于达拉斯单总线CRC的附加信息是有效的,在应用程序注意27题为“用达拉斯半导体触摸存储器产品理解和使用CRC。移位寄存器位被初始化为0。然后从系列码的最低有效位开始,逐位移入。在系列码的第八位进入之后,序列码开始进入。第48位的序列码进入后,移位寄存器包含了CRC值。12 of 29只读存储器(程序存储器)函数流程图 图5Master Tx Reset Pulse:主机发送复位脉冲DS2438 Tx Presense Pulse:从机发送应答脉冲Master Tx ROM Function command:主机发送程序存储器函数命令33h Read ROM:33h 读取程序存储器DS2438 Tx Family Code 1 Byte:DS2438发送一个字节的系列码DS2438 Tx Serial Number 6 Byte:DS2438发送六个字节的序列号DS2438 Tx CRC 1 Byte:DS2438发送一个字节的循环冗余码Master Tx Memory/Control Function:主机发送存储/控制函数55h Match ROM:55h 匹配程序存储器Master Tx Bit 0:主机发送0比特位Bit 0 Match?:0比特位匹配吗?Master Tx Bit 1:主机发送1比特位Bit 1 Match?:1比特位匹配吗?Master Tx Bit 63:主机发送63比特位Bit 63 Match?:63比特位匹配吗?F0h Search Rom:F0h 搜索程序存储器DS2438 Tx Bit 0:DS2438发送比特0DS2438 Tx (Bit 0):DS2438发送非比特0DS2438 Tx Bit 1:DS2438发送比特1DS2438 Tx (Bit 1):DS2438发送非比特1DS2438 Tx Bit 63:DS2438发送比特63DS2438 Tx (Bit 63):DS2438发送非比特63CCh Skip ROM:CCh 跳过程序存储器13 of 29存储/控制函数流程图 图6Master Tx Memory/Control Function:主机发送存储/控制函数4Eh Write SP:4Eh 写堆栈指针BEh Read SP: BEh 读堆栈指针48h Copy SP: 48h 复制堆栈指针Master Tx Page #:主机发送页#DS2438 Sets Address Count=0:DS2438将地址计数器置0Master Tx Data Byte:主机发送数据字节Master Tx Reset?:主机发送复位信号吗?Address=7?:地址等于7吗?DS2438 Increments Address:DS2438地址自增DS2438 Tx Presence Pulse:DS2438 发送应答脉冲Master Rx 8Bit CRC:主机收到8位的循环冗余码Master Rx All “1s”:主机接收所有的”1s”DS2438 Shadows SP PageX To EEPROM/SRAM PageX:DS2438将堆栈指针页X映射到EEPROM/SRAM页X。NV Memory Busy?: NV MEMORY ,AC ELECTRICAL CHARACTERISTICS NV寄存器,模拟电流电特性14 of 2944h Convert T:44h 温度转换DS2438 Begins Conversion:DS2438开始转换Temp Convert Busy?:温度转换忙吗?B4h Convert V:B4h 电压转换V Convert Busy?:电压转换忙吗?B8h Recal Memory:重调寄存器DS2438 Stores EEPROM PageX in SP PageX:DS2438将EEPROM PageX 存入SP PageX中内存映射DS2438的存储器分配如图7所示。存储器由一个暂存寄存器和静态存储器/电可擦可编程只读存储器。这个暂存寄存器能确保数据完整性,当在单总线上通信时。数据首先被写入暂存,它可以被读回。在数据被验证后,一个复制暂存寄存器的命令将会把数据传到存储器中合适的页。(0-2页为主要是易失性的静态存储器,3-7页为EEPROM)。当修改寄存器时该过程确保数据完整性。这个DS2438的存储器被组织为64字节的存储器,8个8字节的页。每个页面都有自己的暂存空间,组织为8字节的内存。当阅读一个暂存时,有一个第9字节,这可以用一个读取暂存命令来读。这个字节包含一个循环冗余校验(CRC)字节,在当前的选择中这个字节是这八个字节的CRC。这个CRC比较流行的实现如”CRC产生“部分描述的一样。15 of 29第0页(00h)第一页包含了DS2438中最经常访问的信息,除了状态/配置寄存器(0字节)和阈值寄存器(7字节),大多数的位置是易失的只读字节。状态/配置寄存器是一个非易失性的读/写字节,这里定义了DS2438那些特性是启动的,以及他们将会怎样工作。寄存器的格式如下所示:IAD=电流A/D控制位。”1“=电流A/D和ICA启用,电流测量将以36.41HZ的频率采样;“0”=电流A / D和ICA被禁用。这一位的默认值是一个“1”(电流A / D和ICA启用)。CA =电流累加器配置。“1”= CCA / DCA启用,数据将被存储,并能从第7页,4-7字节取回数据。“0”= CCA / DCA被禁用,第7页可以用于通用EEPROM存储。该位的默认值是”1“(电流CCA/DCA启动)。EE=电流累加器映射选择位。“1”=每次相应的寄存器递增时,CCA/DCA计数器数据能够被映射到EEPROM。“0”=CCA/DCA计数器数据将不会映射到EEPROM。随着电池组放电,CCA/DCA可能会丢失。如果状态/配置寄存器的CA位置0,EE位对DS2438功能上没有影响。这位的默认值是“1”。(电流CCA/DCA数据映射到EEPROM)。AD=电压A/D输入选择位。“1”=电池输入(VDD)被选作DS2438电压A/D转换器的输入,“0”=通用A/D输入(VAD)被选作DS2438电压A/D转换器的输入。对于任一种设置,电压转换命令将会初始化电压A/D转换器。该位的默认值是1(VDD作为A/D转换器的输入)。TB=温度忙碌标志。“1”=温度转换正在进行;“0”=温度转换完成。NVB =非易失性存储器忙碌标志。“1” =从中间结果暂存器复制到EEPROM正在进行;“0”=非易失性存储器不忙。复制到EEPROM可能要花费2ms到10ms(在低供电电压下花费更长)。ADB=A/D 转换器忙碌标志。“1”=电池电压的A/D转换正在进行。“0”=转换完成,或没有测量值要被转换。A / D转换大约需要10 ms。X =无视第0页的字节1和字节2包含最后完成温度转换后的值,它的格式如“操作温度测量”部分所述。字节3-4包含最后完成电压转换后的结果,字节5-6包含瞬时电流数据。字节7包含阈值寄存器。请参考适当的部分获得这些位置的数据格式。注意:状态和阈值寄存器暂存中的数据将决定设备的操作。16 of 29第1页(01h)第2页,Page 1,包含ICA,历时计数器和电流偏置数据。因为历时计数器和ICA是易失性的读/写位置,所以他们可能被主机软件设置,改变和清除。字节0-3包含历时计数器数据,格式如“操作历时计数器”部分所述。字节4包含8位ICA。字节5和6包含偏置寄存器的数据。字节7被保留,将会读出全1。Page 2 (02h)寄存器(Page 2)的第三页包含断开寄存器(前4个字节)和充电结束时间戳(剩余4字节)。这一页是易失性能读/写的。参阅“操作历时计数器”部分得到这些位置的格式。Pages 3-7 (03h - 07h)EEPROM带着DS2438中寄存器的剩余部分(Pages 3 through 7) 回来。这个寄存器提供40字节的用户寄存器,可以用来携带用户想要存储的任何信息。此外,如果DS2438配置恰当,则CCA/DCA的信息被存储在page 7的字节4-7中。如果CCA/DCA被使用,page 7不应该被写入或者电流累加器数据会被覆盖。查阅“操作电流累加器”获得详细描述。17 of 29单总线系统单总线是一种仅有一个主机及一个或多个从机的系统。DS2438是一个从机。这种总线结构可被分成三个主题讨论:硬件配置,事务序列和单总线信号(信号类型和时间)。硬件配置单总线只有一条线被定义。在合适的时间,总线上的每个设备都能驱动这条总线,是很重要的。为此,总线上的每个设备必须开漏或3态输出。DS2438的单总线端口是开漏的(DQ pin),等效的内部电路如图8所示。多点的总线由单总线上接入多个从机构成。单总线需要一个大约5k的上拉电阻。单总线的空闲状态是高电平。由于某种原因一个事务被暂停,如果该事务要恢复,总线必须离开空闲状态。在恢复期间只要单总线处于不活动(高电平)状态,就可以触发无限的恢复时间。如果这没发生,并且总线一直处于低电平,总线上的所有器件将会复位。参阅单总线复位脉冲时序(图 9)。事务序列通过单总线端口访问DS2438的协议如下所示:初始化ROM函数命令寄存器函数命令事务/数据初始化在单总线上所有的事务以初始化序列开始。初始化时序由主机发送的一个复位脉冲紧随从机发送的应答脉冲组成。应答脉冲能让主机知道DS2438在总线上并且已经做好准备。有关更多细节,请参阅“总线信号”部分。18 of 29ROM函数命令一旦主机监测到应答脉冲,它就发送四个ROM函数命令之一。所有的ROM函数命令长度为8位。这些命令如下列表所示(参阅流程图5):Read ROM 33h这个命令允许主机读取DS2438的8位系列码,唯一的48位序列码和8位的CRC。这个命令仅能用于总线上只有一块DS2438的情形。如果在总线上不只一块2438存在,当所有从机同时尝试发送时,就会有数据冲突。(开漏将产生一个线与的结果)。Match ROM 55h匹配ROM命令,随后跟一个64位的ROM序列;允许主机在多点总线上寻址一个特定的DS2438。只有DS2438完全匹配64位ROM序列,DS2438才会响应随后的寄存器函数命令。所有的从机都不匹配64位的ROM序列,DS2438将会等待一个复位脉冲。这个命令能被用在有一个或多个设备的总线上。Skip ROM CCh在单点总线系统中这个命令能够节约时间,因为不用提供64位的ROM代码,就可允许主机访问寄存器函数。如果总线上存在不只一个从机,并且跳过ROM命令后还跟着发送了一个读取命令,由于多个从机同时传输,就会发生数据冲突。(开漏下拉将产生一个线与的结果)。Search ROM F0h当一个系统初始化拉高后,主机可能不知道总线上设备的数量或他们的ROM码。搜索ROM命令允许主机用一个排除过程识别总线上的所有从机设备的64位ROM代码。ROM的搜索示例ROM搜索过程是一个简单的三步程序的重复过程:读一位,读这个位的补码,向该位写入期望的值。总线上的主机早ROM的每一位执行这个简单的三步程序。在一个完整的过程后,主机就能知道一个设备中的ROM的内容。用额外的过程剩下的设备的数量和他们的ROM能够被识别出来。下面的ROM搜索过程的例子假设四个不同的设备连接到了同一条单总线上。四个设备的ROM数据如下所示,从最低有效位开始。ROM1 = 00110101.ROM2 = 10101010.ROM3 = 11110101.ROM4 = 00010001.搜索过程如下:1. 通过发送一个复位脉冲,主机开始初始化序列。从机同时发送应答脉冲响应。2. 主机将在单总线上发送搜索ROM命令(F0h)。19 of 293. 主机从单总线上读取一个位。每个设备将他们相应ROM数据的第一位的值发送到单总线上。ROM1和ROM4将0发送到单总线上,即将它拉低。ROM2和ROM3将发送1到单总线上,允许总线保持高电平。结果是总线上所有设备的逻辑与。因此主机看到了一个0. 主机读取另一个位。由于正在执行搜索ROM数据命令,在单总线上的所有设备将他们相应ROM数据的第一位的补码发送到单总线上,以相应第二次读。ROM1和ROM4将1发送至总线,允许总线保持高电平。ROM2和ROM3将发送0到单总线,这样将把它拉低。主机再次观察到一个0,由ROM数据第一位的补码。主机已经确定在单总线上有一些设备,他们有的第一个位置是0,其他的是1. 从三步程序的两次读取得到的数据有如下解释:00- 在这个位置上,总线上一直有相互冲突的位。01- 所有的设备在该位上都是0.10- 所有的设备在该位上都是1.11- 没有设备连接在该总线上。4. 主机写0。剩余的搜索过程不选择ROM2和ROM3。只留下ROM1和ROM4连接到单总线上。5. 主机执行两次读,收到一个0,接着一个1. 这表明所有设备向总线发送了0,由于他们ROM数据的第二位。6. 主机然后对ROM1和ROM4都写一个0.7. 主机执行两次读收到两个0位。这表明连接到总线上的设备中ROM数据的第三位上既存在0又存在1.8. 主机写一个0。这次ROM1取消选中,留下ROM4作为唯一的设备仍然连接总线。9. 主机读取ROM4中ROM的剩余字节,并继续访问需要访问的部分。这就完成了第一遍,唯一识别了单总线上的一个设备。10. 主机通过重复步骤1-7开始一个新的ROM时序。11. 主机写一个1。这次断开ROM4,只剩下ROM1连接。12. 主机读取ROM1中ROM的剩余位,如果需要将和底层逻辑进行通信。这就完成了ROM的第二遍搜索,另一个ROM被找到。13. 主机通过重复1-3开始一个新的ROM搜索。14. 主机写一个1位,这次取消选中ROM1和ROM4,放弃剩余的搜索,只留下ROM2和ROM3连接系统。15. 主机执行两次读,得到两个0。20 of 2916. 主机写一个0位。这次ROM3被分离,只留下ROM2.17. 主机读取ROM2中ROM的剩余位,如果需要将和底层逻辑进行通信。这就完成了第三遍ROM搜索,另一个ROM被发现。18. 通过重复步骤13到15,主机开始新一轮的ROM搜索。19. 主机写一个1位。这次分离ROM2,只留下ROM3。20. 主机读取ROM3中ROM的剩余位,如果需要将和底层逻辑进行通信。这就完成了第四遍ROM搜索,另一个ROM被发现。注意主机每一次ROM搜索操作,学习单总线设备的唯一的ID号码(ROM数据模式)。分离出器件唯一ROM码所需的时间是:960 s + (8 + 3 x 64) 61 s = 13.16 ms因此主机每秒钟能识别出75个单总线设备。存储器命令函数表11总结了以下的命令协议,相应流程图如6所示。写入中间结果暂存器4Ehxxh这个命令向DS2438pagexxh的中间结果暂存器写入。总共有8个字节的中间结果暂存器空间能够被写,但是所有的写从当前所选中间结果暂存器字节的地址0开始。在发送这个命令后,用户必须发送中间结果寄存器的页号去写;接着用户开始向DS2438的中间结果暂存器写入数据。任何时候发送一个复位脉冲将终止写入。有效的用于写页码是00 h-07h读出中间结果暂存器 BEhxxh这个命令能过读取DS243中page xxh的中间结果寄存器的内容。在发送这个命令后,用户必须发送需要读取的中间结果寄存器的页码,然后开始读取这些数据,并总是从选中的中间结果寄存器的地址0开始读取。用户可能读到了中间结果寄存器的结尾处(字节07h),任何保留的数据位读取的都是逻辑1,然后读取数据的循环冗余码,之后的数据读取的都是逻辑1.如果不是所有的位置都要读取,主机可以再任何时候发送一个复位脉冲终止。有效的页码是00 h - 07 h。复制中间结果寄存器48hxxh这个命令是将DS2438中的中间结果寄存器page xxh的内容复制到DS2438中的EEPROM/SRAM的page xxh中。在发送这个命令后,用户必须写入一个页码,确定寄存器中哪一页的中间结果寄存器需要复制。有效的页码是00 h - 07 h。在复制期间,状态/配置寄存器中的NVB位置1.当复制完成,这一位会重置为“0”。如果主机在这个命令后发送了一个读时间槽,DS2438将发送一个0到总线上,只要从中间结果寄存器复制到SRAM/EEPROM时忙碌的。当复制过程完成后,将会返回一个1。21 of 29重新调用寄存器B8hxxh这个命令将EEPROM/SRAM page xxh存储的值调取出来赋给中间结果寄存器page xxh。这个命令必须继续一个读SPxx的命令,为了读取DS2438寄存器上任意页的内容。有效的页码是00 h - 07 h。温度转换44h这个命令开始温度转换。没有进一步的数据是必需的。在温度转换期间将状态/配置寄存器上的TB标志位置1,温度转换将被执行。当温度转换完成,TB标志清0。如果主机发送读时间槽来跟随这条命令,只要温度转换忙碌,DS2438将在总线上输出0。当温度转换完成后,它将返回一个1。电压转换 B4h这个命令指示DS2438初始化一个电压模数转换周期。这个要设置ADB标志(参阅寄存器映射部分中的状态/设置寄存器)。被测量的供电电压由状态/配置寄存器的AD位定义。当电压A/D转换完成后,ADB标注为被清除,当前的电压值存入page 00h中的电压寄存器中。当A/D转换发生时,其他任何寄存器函数都是可用的。如果在主机发送读时间槽后跟着这个命令,只要DS2438正在做电压测量,DS2438将在总线上输出0。当转换完成后返回一个1。22 of 29注意:1.温度转换需要10 ms。2.A / D转换需要4 ms。3.EEPROM写需要10 ms。采样函数时序 表12例如:主机启用单个DS2438的ICA,CCA和DCA,然后配置诸如CCA/DCA信息映射到EEPROM。电压A/D转换被配置诸如DS2438将对电池电压(VDD)测量电压。MASTER MODE:主机模式Tx:发送Rx:接受DATA(LSB FIRST):数据(最低有效位 最先)Presence:应答23 of 29采样函数时序 表13例如:主机发送一个温度和电压转换命令,然后读取温度,电池电压,电池电流,在一片DS2438上。24 of 29
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五、2025年兽医药理学新增试题
- 工勤考试收银审核员(高级技师)考试题(含答案)
- 2025年太原货运从业资格证模拟考试题库及答案
- 下半年湖南省工程测量员技师考试试题
- 2023年揭阳市国企招聘考试真题题库
- 2025霍州市国企招聘考试真题
- 2025年安全员B证考试试卷附参考答案详解(精练)
- 2025道路交通安全知识考试试题
- 公务员考之行测判断推理技巧含答案和详细解析
- 公务员考试:公共基础知识题库
- 涉路施工培训课件
- 《道路勘测设计》课件-第三章 平面设计
- 学堂在线 英文科技论文写作与学术报告 期末考试答案
- 随钻跟管桩技术规程培训
- 年中考英语复习人教版初中词汇变形
- (2025)心肺复苏理论考试试题及答案
- 烟花爆竹培训试题及答案
- 购山地合同协议
- 国企公司内部控制手册各部门内部控制指引
- 源网荷储一体化
- 二手房买卖合同无中介版
评论
0/150
提交评论