DS2438中文数据手册解读.docx
- 文档编号:6805613
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:27
- 大小:1.29MB
DS2438中文数据手册解读.docx
《DS2438中文数据手册解读.docx》由会员分享,可在线阅读,更多相关《DS2438中文数据手册解读.docx(27页珍藏版)》请在冰豆网上搜索。
DS2438中文数据手册解读
1of29
序言
达拉斯半导体DS2438智能电池监视器
其主要的特点有:
(1)独特的1-Wire接口仅需一个端口引脚即可进行通信
(2)为电池组提供唯一的64位序列号
(3)片上电池温度检测省去热敏电阻
(4)片上A/D转换器监视电池电压,作为终止充电和终止放电的判据
(5)片上集成的电流累积器提供电量计量
(6)二进制历时记录器
(7)40字节非易失用户存储器存储电池相关数据
(8)工作温度范围-40°C至+85°C
(9)应用于蜂窝电话、数码相机、数字摄像机、掌上电脑、手持终端(包括条形码)、笔输入掌上电脑、PDA和数字助理、智能电池组/充电器。
管脚分配
DS2438管脚功能描述:
lGND接地
2VSENS+电池测量电流输入(+)
3VSENS-电池测量电流输入(-)
4vAD通用电压A/D采样输入端
5VCC供电电压(2.4~1OV)
6,7NC悬空不接
8DQ数据输入输出,单总线
概述
DS2438智能电池监视器为电池组提供了若干很有价值的功能:
可用于标识电池组的唯一序列号;直接数字化的温度传感器省掉了电池组内的热敏电阻;可测量电池电压和电流的A/D转换器;集成电流累积器用于记录进入和流出电池的电流总量;一个经历时间纪录器;以及40字节的非易失EEPROM存储器,可用于存储重要的电池参数例如化学类型、电池容量、充电方式和组装日期等。
DS2438使用1-Wire®接口发送和接收信息,所以中央微控制器和DS2438之间仅需1条连线(还有地线)。
这就意味着电池组仅需要三个输出接头:
电池电源、地和1-Wire接口。
由于每片DS2438具有一个唯一的硅序列号,多片DS2438可以共存于同一条1-Wire总线。
这就允许多个电池组可同时充电或在系统中使用。
这款智能电池监视器可用于便携计算机、便携/蜂窝电话以及手持式仪器等,这些应用中需要密切监视电池的实时性能。
与主系统微控制器相配合,DS2438提供了一个化学类型无关的完备的智能电池组方案。
在定制某种特定化学类型和容量的电池时,只需向微控制器和DS2438EEPROM中输入相应的代码即可,当电池的化学类型改变时,设计者只需要修改软件即可。
2of29
该处DS2438管脚功能详述表与上重复,故略
概述
1.64位的激光ROM
2.温度传感器
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。
这些存储单元可以用来存储用户想要存储的任意数据,以及用存储器函数命令写入数据。
所有的数据和命令从最低有效位开始读取和写入。
3of29
框图(图1)表示了DS2438的内部结构
操作——测量温度
DS2438通过片上温度测量技术测量温度。
能读取13位二进制补码格式的温度数据,分辨率为0.03125°C。
表1描述了温度测量输出数据的确切关系。
数据在单总线接口上串行传输。
DS2438可以测量温度的范围从-55°C到+125°C,以0.03125°C的增量。
对于华氏温度表示法,必须使用查找表或转换因子。
注意,在DS2438中最低有效位表示0.03125°C,如下13位格式。
温度寄存器的3个最低有效位始终为0.剩下的13位用°C的二进制补码形式表示的温度,最高有效位保持符号位。
查看“存储器映射”找到温度寄存器地址。
4of29
操作——测量电池电压
片上的模数转换器(ADC)有10位的分辨率,当DS2438收到指示它转换电压的命令时,执行转换。
这个测量的结果放在2字节电压寄存器中。
DS2438的模数转换范围是0V到10V。
这个范围对于六节镍镉电池或镍氢电池组或两节锂电池组来说是合适的。
模数转换的满量程值是10.23V,分辨率为10mV。
虽然模数转换最低量程可达0V,但是有一点需要注意,那就是待测电池电压也是DS2438的供电电压。
这样,电池电压低于2.4V时,电压模数转换的准确性下降,执行转换的能力受到DS2438的操作电压范围的限制。
在这个寄存器中表示的二进制格式的电压范围如表2中列出的一样。
注意,尽管编码在电压值低于2.4V下存在,但是电压模数转换的准确性和DS2438供电电压的限制使得这些值实际上不可使用。
查看“存储器映射”找到电压寄存器地址。
5of29
对于应用程序需要一个通用的电压模数转换器,DS2438可以被配置,以致电压转换指令的结果能够想表2描述的一样将VAD的输入(而不是VDD的输入)存入电压寄存器中。
根据状态/配置寄存器的声明,VDD或VAD(两者之一)将在接受到电压转换命令后存储在电压寄存器中。
参阅寄存器映射中关于状态/配置寄存器的详细描述。
如果VAD输入作为电压输入,模数转换器在1.5V 这个特性使得在电压输入范围1.5V 操作——测量电池电流 DS2438模数转换器以通过测量外部检测电阻两端的电压,来有效地检测流入和流出电池组的电流为特点。 模数转换器将在后台以每秒36.41次的频率采样,因此不需要命令启动电流测量。 然而,DS2438只会在状态配置寄存器中IAD位置1的时候才启动电流模数转换。 DS2438通过VSENS管脚测量流入和流出电池的电流,VSENS+管脚到VSENS-管脚的电压被认为是电流检测电阻RSENS两端的电压。 VSENS+端与RSENS电阻直接相关,然而,对于VSENS-,我们建议在该管脚和RENS的接地端之间接一个RC低通滤波电路。 用一个阻值为100K的电阻和一个0.1µF的钽电容器,该滤波器的截止频率是15.9Hz.电流模数转换器以36.41次/s或每27.46ms一次的频率采样。 这个滤波器能消除大部分的尖峰毛刺的影响,从而允许电流累加器准确的反映流入和流出电池的总电荷。 模数转换器测量检测电阻RSENS两端的电压,并将结果以二进制补码格式保存在电流寄存器中。 转换结果的符号位,表明充电还是放电,存储在电流寄存器的最高有效位中,见表3.查看“存储器映射”找到电流寄存器地址。 6of29 (这个寄存器实际上存储的是检测电阻RSENS两端的电压。 这个值带入下面的公式可以计算出电池的电流。 )电池组的电流能够由电流寄存器中的值经这个方程计算得出。 I=CurrentRegister/(4096*RSENS)(RSENS的单位是Ω) 例如,如果流入电池组的电流是1.25A,电池组使用一个0.025Ω的检测电阻,DS2438向电流寄存器写入的值为128(十进制)。 根据这个值,电池组电流能够被计算为: I=128/(4096*0.025)=1.25A 随着时间的推移,整合的电流会因为小电流模数转换器存在偏置误差可以有一个大的累积效应,DS2438在电流模数转换器中提供了一种抵消偏置误差的方法。 在每次电流测量完成后,测量值被加到偏置寄存器的内容中,结果随后被存储在电流寄存器。 偏移寄存器是一个两字节非易失性的读/写寄存器,是以二进制补码形式存储的。 这个寄存器的高四位最高有效位包含偏置的符号,如表4所示。 下面的步骤可以用来调整电流模数转换器。 1.向偏置寄存器写全0 2.驱动零电流通过RSENS电阻 3.读取电流寄存器值 4.通过在状态/配置寄存器置"0"IAD位,关闭电流模数转换器。 5.改变当前读取的电流寄存器的值的符号,转换成二进制补码的形式,并将结果写入偏置寄存器中。 6.通过将状态/配置寄存器中的IAD位置1,开启电流模数转换器。 注意: 当写入偏置寄存器时,必须禁止电流测量(IAD位置0)。 在每一个DS2438设备装载之前,电流模数转换器完成校准过程。 然而,为了达到最好的效果,在最初的电池组测试中,电池组制造商应该校准电流模数转换器,并且主机系统应该尽可能的校准(例如,在电池充电期间)。 7of29 操作——电流累加器 DS2438用集成电流累加器(ICA)跟踪一块电池的剩余容量。 ICA保持流进和流出电池的电流总和的净累积。 因此,存储在这个寄存器中的值是在一个电池中剩余容量的一个指标,可能被用在执行燃料评估函数。 此外,DS2438还有另外的寄存器用来存储总充电电流和总放电电流。 CCA和DCA给主机系统提供决定可充电电池的寿命结束的信息,这些信息是基于在其生命周期的总充放电电流。 电流测量描述的是每27.46ms检测电阻RSENS两端测得的电压。 这个值用于增加或减少ICA寄存器的值,如果电流是正的,增加CCA的值,如果电流时负的,减少DCA的值。 ICA是一个按比例的8位易失二进制计数器,累计了电阻RSENS两端的电流。 如果状态/配置寄存器IAD位置1,ICA递增或递减。 表5展示了ICA的内容。 查看“存储器映射”找到ICA寄存器地址。 表5ICA寄存器格式 (这个寄存器累积了RSENS两端的电压值,这个值通过以下这个方程可以计算出电池剩余量。 ) 剩余的电池容量能过用这个方程由ICA的值计算得出。 剩余容量=ICA/(2048*RSENS)(RSENS单位为Ω) 例如,如果电池组的剩余容量值为0.625,电池组用0.025Ω的检测电阻,ICA的值将是32。 根据这个值,剩余容量能够被计算为: 剩余容量=32/(2048*0.025)=0.625Ahr 因为电流模数转换器精度是正负2最低有效位,所以测量很小的电流时很可能不精确。 因为当累计足够长的时间这些不精确可能变成大的ICA错误,DS2438提出了一种方法用于滤除这些潜在的错误小信号以致他们不被累积。 DS2438的阈值寄存器指定一个电流测量级(在抵消取消后),在此之上测量值将在ICA,CCA和DCA上累积,低于阈值将不被累积。 阈值寄存器的格式如表6所示。 接通电源的默认阈值的寄存器值是00h(没有阈值)。 注意: 当写入阈值寄存器时,电流测量必须被禁用(IAD位设置为“0”)。 8of29 阈值寄存器格式表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的操作模式。 9of29 图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可以作为一个参考点。 10of29 其他两个与时间相关的功能是可用的。 第一个是断开时间戳,任何时候它检测到DQ线保持低电平接近两秒时,DS2438向这个时间戳写数据。 这种情况将被视为电池组从系统中移除;发生的此刻被写入断开时间戳寄存器,所以被置换进系统,系统能够决定设备多长时间被存储,从而促进自放电修正剩余电池容量。 在断开被检测到后,DS2438恢复睡眠模式,在这期间除了实时时钟,其他均被关闭。 其他的时间戳是电荷结束时间戳,任何时候检测到充电完成后(当电流变化方向),该时间戳被DS2438写入。 这个时间戳允许用户去计算电池处于放电和充电状态的时间,在此促进自放电计算。 历时计数器,断开寄存器,充电结束寄存器如表10所示。 参阅“存储器映射”找到时间相关寄存器的地址。 64位光刻ROM 每一个DS2438包含一个64位长的唯一的ROM码。 前八位是单总线系列码(DS2438码是26h)。 接下来的48比特是一个独特的序列号。 最后八位是前56位的CRC。 (见图三)。 64位ROM和ROM功能控制部分允许DS2438作为单总线设备操作和遵循单总线系统部分的单总线协议。 直到ROM函数协议得到满足,DS2438控制部分的函数才有访问权限。 图5ROM函数协议流程图描述了这个协议。 单总线主机必须先执行四种ROM函数命令中的一种,1)读ROM,2)匹配ROM,3)搜索ROM,或4)跳过ROM。 在一个ROM函数序列已经被成功执行后,DS2438特定的函数才有访问权限,主机可以执行六种寄存器和控制函数命令中的任意一种。 11of29 循环冗余码产生 DS2438有一个8位的循环冗余码存储在64位ROM中的最高有效字节中。 主机能够从64位ROM中的前56位中计算出一个循环冗余值,并与DS2438存储的值进行比较,来决定是否主机正确接收了ROM中的数据。 这个CRC对应的多项式函数是: CRC=X8+X5+X4+1 DS2438用同样的多项式函数产生一个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值。 12of29 只读存储器(程序存储器)函数流程图图5 MasterTxResetPulse: 主机发送复位脉冲 DS2438TxPresensePulse: 从机发送应答脉冲 MasterTxROMFunctioncommand: 主机发送程序存储器函数命令 33hReadROM: 33h读取程序存储器 DS2438TxFamilyCode1Byte: DS2438发送一个字节的系列码 DS2438TxSerialNumber6Byte: DS2438发送六个字节的序列号 DS2438TxCRC1Byte: DS2438发送一个字节的循环冗余码 MasterTxMemory/ControlFunction: 主机发送存储/控制函数 55hMatchROM: 55h匹配程序存储器 MasterTxBit0: 主机发送0比特位 Bit0Match? : 0比特位匹配吗? MasterTxBit1: 主机发送1比特位 Bit1Match? : 1比特位匹配吗? …… MasterTxBit63: 主机发送63比特位 Bit63Match? : 63比特位匹配吗? F0hSearchRom: F0h搜索程序存储器 DS2438TxBit0: DS2438发送比特0 DS2438Tx~(Bit0): DS2438发送非比特0 DS2438TxBit1: DS2438发送比特1 DS2438Tx~(Bit1): DS2438发送非比特1 DS2438TxBit63: DS2438发送比特63 DS2438Tx~(Bit63): DS2438发送非比特63 CChSkipROM: CCh跳过程序存储器 13of29 存储/控制函数流程图图6 MasterTxMemory/ControlFunction: 主机发送存储/控制函数 4EhWriteSP: 4Eh写堆栈指针 BEhReadSP: BEh读堆栈指针 48hCopySP: 48h复制堆栈指针 MasterTxPage#: 主机发送页# DS2438SetsAddressCount=0: DS2438将地址计数器置0 MasterTxDataByte: 主机发送数据字节 MasterTxReset? : 主机发送复位信号吗? Address=7? : 地址等于7吗? DS2438IncrementsAddress: DS2438地址自增 DS2438TxPresencePulse: DS2438发送应答脉冲 MasterRx8BitCRC: 主机收到8位的循环冗余码 MasterRxAll“1’s”: 主机接收所有的”1’s” DS2438ShadowsSPPageXToEEPROM/SRAMPageX: DS2438将堆栈指针页X映射到EEPROM/SRAM页X。 NVMemoryBusy? : NVMEMORY,ACELECTRICALCHARACTERISTICSNV寄存器,模拟电流电特性 14of29 44hConvertT: 44h温度转换 DS2438BeginsConversion: DS2438开始转换 TempConvertBusy? : 温度转换忙吗? B4hConvertV: B4h电压转换 VConvertBusy? : 电压转换忙吗? B8hRecalMemory: 重调寄存器 DS2438StoresEEPROMPageXinSPPageX: DS2438将EEPROMPageX存入SPPageX中 内存映射 DS2438的存储器分配如图7所示。 存储器由一个暂存寄存器和静态存储器/电可擦可编程只读存储器。 这个暂存寄存器能确保数据完整性,当在单总线上通信时。 数据首先被写入暂存,它可以被读回。 在数据被验证后,一个复制暂存寄存器的命令将会把数据传到存储器中合适的页。 (0-2页为主要是易失性的静态存储器,3-7页为EEPROM)。 当修改寄存器时该过程确保数据完整性。 这个DS2438的存储器被组织为64字节的存储器,8个8字节的页。 每个页面都有自己的暂存空间,组织为8字节的内存。 当阅读一个暂存时,有一个第9字节,这可以用一个读取暂存命令来读。 这个字节包含一个循环冗余校验(CRC)字节,在当前的选择中这个字节是这八个字节的CRC。 这个CRC比较流行的实现如”CRC产生“部分描述的一样。 15of29 第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转换器。 该位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS2438 中文 数据 手册 解读
![提示](https://static.bdocx.com/images/bang_tan.gif)