串行通信协议的制作方法

文档序号:7991236阅读:126来源:国知局
串行通信协议的制作方法
【专利摘要】公开涉及改进经由异步串行接口通信的发送机和接收机之间的时钟同步的系统和方法。在环型拓扑结构(130)中,主设备(105)连接到多个使用双频率编码位流通信的从设备(S1-S3)。主机设备使用非归零数据编码与主设备通信。除非主设备指示特定数据的需求,否则每个从设备(S1-S3)接收来自主设备(105)的数据并将该数据未改变地发送到环中的下一个从设备,并且沿环发送值为0的占位符位。特定的从设备可通过将占位符位反相来用将要发送回主设备的信息“填充”占位符位。使用分数比率倍增器从系统时钟产生数据采样时钟改进了接收设备和发送设备之间的时钟同步。通过调整分母,采样时钟可被调谐为匹配从发送设备接收的异步串行数据流的波特率。所描述的实施例包括电源管理、数据采集(DAQ)等等。
【专利说明】串行通信协议
【技术领域】
[0001]本发明涉及通信网络,并且具体地,涉及改进异步串行数据网络中的元素同步。
【背景技术】
[0002]在数据通信中有两种不同的格式用于数据传输:串行和并行。在串行数据传输中,数据通过单个通信信道或链路例如电线,光纤或无线连接一次传输一个符号。在并行数据传输中,在对应的多个信道上同时传输多个符号。数据通常被表示为二进制格式,并且符号可以编码I或者更多个二进制数据位,如I或O。
[0003]串行通信优于并行通信的一个优势是实现串行接口需要较少的物理资源,如发送和接收电路、印刷电路板面积、集成电路管脚、连接器和电缆。简言之,串行接口有利于实施低成本、紧凑且便携式的系统。例如,一些电池管理系统包括大量的串联锂离子电池单元。在这些系统中,数以百计的3-4伏(V)电池单元可串联到电压高达800V或更高的电池组。这些电池管理系统用在一些应用中,如混合动力汽车、公共汽车、高尔夫球车、叉式升降机、电动船等。
[0004]通用异步收发器(UART)是实现串行接口的一种示例设备。UART普遍存在于现代计算和通信中并且在该领域中具有悠久的历史。UART的标准实现存在于RS-232收发器中。RS-232规范追溯到20世纪60年代,当时其首次由美国电子工业协会(EIA)发布。该规范已经随着时间演变,结合更高的数据速率并结束兼容性差距。RS-232规范的当前版本是1977年10月的ETA/TIA-232-F。该协议获益于集成电路(IC)的可用性,集成电路包括以合理的成本处理这些通信的复杂性。
[0005]UART包括两个串行信道,一个用于发送数据并且另一个用于接收数据,全双工操作。在UART协议中,数据以帧的形式发送,每个符号一位,其中使用非归零(NRZ)编码将数据表示为二进制格式。典型的UART帧包括I个起始位、8个数据位和一个停止位。其他变体也是可能的(附加的停止位、更少的数据位、用于基本误差检测的奇偶校验位等等)。RS-232总线驱动倒置和电平移位,所以逻辑I是总线上的负电压,并且逻辑O是正电压。
[0006]UART通常使用时钟逻辑或同步逻辑来构造。术语“异步”的出现是因为时钟信号不作为接口协议的一部分发送。实际上,发送和接收UART的时钟可具有不同的相位和频率。因此,当两个UART通信时,发送机和接收机都必须提前同意符号速率,符号速率也称作波特率。接收UART通过观察开始和停止位识别数据帧的限制,并且根据预定的波特率确定每个位的最佳数据采样点。
[0007]UART接收机一般使用过采样时钟来自行同步到数据帧。例如,UART可使用是波特率16倍的采样时钟。通过在起始位开始时的下降沿识别新的帧。UART在这个下降沿使计数器复位,并预期起始位的中间出现在8个时钟周期之后,并且每个后续位的中点出现在其后的每16个时钟周期。在每个中点对位进行采样。另一种方法包括不仅在中点(16个周期中的8周期)对每个位采样一次,还在中点之前和之后的周期(16个周期中的周期7,8,9)采样。对样本应用三选一(vote-of-three),因此避免由于噪音破坏任一样本而导致的数据错误。
[0008]当试图正确地发送数据时,发送机和接收机时钟的频率稳定性是担心的问题。如果接收和发送UART时钟频率相隔太远,则可发生数据错误。数据帧的时序基于发送UART的时钟。接收UART根据起始位的检测同步到帧。随着帧中的剩余位被采样,发送机和接收机之间的任何频率不匹配累加,使得位的采样点偏离实际中点。当这个偏离超过位的有效数据窗口的边界并且对该位采样过早或过晚时,导致数据错误。这可以被如下事实加剧,即有效数据窗口被例如由长的、电容性的RS-232总线引起的有限(并且通常慢的)传输上升和下降时间减小,导致在接近电平已经稳定的中点的位置采样变得更重要。时钟频率容限一般描述为百分比的形式。例如,在正常情况下,发送机和接收机之间的频率不匹配不应超过约3-4% ;精确的容限取决于过采样频率和位的有效数据窗口的大小。超过该不匹配导致和起始位的初始同步之后数据采样点的累积漂移,并且可导致采样错误,例如在位过渡的未定义区域采样或者甚至采样错误的位。[0009]已经使用晶体振荡器来匹配发送和接收时钟,然而,这些对于成本敏感的应用来说过于昂贵,而且对于低功耗应用则会消耗过多的功率。RC振荡器是嵌入式电路中常见的一种替代,但它们对工艺、电压和温度变化敏感,即条件变化则频率变化。补偿这些影响需要设计更大和更高电流电路以及耗时的设备修整,所有这些都是不希望的。例如,在上述的电池管理系统中,锂离子电池单元的易失性性质要求仔细监测电池单元的电压和温度。尤其在充电和放电期间,监测和控制避免过电压(过充),欠压(过放电)和超过温度条件和欠温度条件。开发出特殊的电池管理集成电路(IC)来处理这个工作。这些数据采集设备包含输入来监视电池单元的电压和温度,以及将这些量从模拟形式转变为数字形式的电路。由于必须独立地监测每个电池单元的电压和每个电池单元(或小电池单元组)的温度,构建一个设备来监测上百个电池单元是不切实际的。这个设备会非常大(具有太多管脚),并且系统中的高电压禁止以常用的硅技术构造这个设备。另外,电池组的物理尺寸使得如果所有的电池单元不得不被连线返回单个设备,则会需要长的电线拥挤的布线。
[0010]UART可设计成在各种波特率操作。希望为每个不同的波特率维持相同的每位采样数量,以便简化逻辑设计并且也提供对与波特率成比例的采样噪音的免疫等级。通常,这通过向UART提供频率大于最高波特率的系统时钟并且使用整数除法器来产生所需的采样时钟频率实现。表1示出这个方法用于不同的波特率,假设使用8.192MHz的系统时钟产生16倍的过采样时钟。对于每秒9600位的波特率,理想采样时钟应是9600X 16=153.6kHz。然而,使用整数除法器可产生的最接近频率是154.566kHzο这表示误差为0.629%,对于可靠的数据传输是可接受的。
波特波特率^IN I采样时钟 I采样时钟误差|屮心误差
[0011]…O]______
¥θ 9600 bps^^53^^154.566 KHz0.629%^ -5.93%
¥1 19200 bps 27 303.407 kHz-1.235% 11.88%^......[Ti138400 bps 13 1 630.154 kHz2.56% -23.80%^
_2]76800 bps I —~1170.285kHz4.76% -47.50%—[0013]表I
[0014]表I的进一步检查示出随着波特率的增加采样时钟误差增加。尽管针对38400bps(2.56%)的误差是勉强可接受的,但是针对76800bps的误差显然是不能接受的并且将导致数据采样误差。另外这个误差不考虑温度变化等造成的额外的系统时钟漂移。也不考虑发送机中的任何时钟误差。
[0015]一种可用于减轻异步串行通信中时钟不匹配影响的方法包括替代的信令方案,例如连续双频率编码,而不是NRZ编码。与NRZ编码不同,连续双频率编码在每个位的起始处提供信号转变。O和I数据位通过位时间中途是否存在第二转变区别。例如,O的特征在于在位时间开始时的单个转变并且剩余的位时间没有额外的转变。相反,I的特征在于在位时间开始时的第一转变和位时间中途的第二转变。
[0016]连续双频率编码容许更大的时钟频率不匹配,因为接收设备可同步到每个位的开始,而不是仅仅同步到起始位。实际上,传统UART协议中的起始位和停止位不再是必要的。因为每个位是同步的,因此随着每个后续位被接收而不会累积误差,并且当使用16倍的过采样时可容许时钟频率不匹配大于20%。然而,尽管提高了容限,但是仍然希望进一步改善。
[0017]异步串行接口一般用于连接多种网络拓扑结构(如环网)中的节点。环网是一种其中的节点在封闭的环内连接的网络拓扑结构。每个节点连接到正好两个其他节点,使得在任意特定节点开始,遍历所有其他节点的路径将导致回到起始节点。每个节点是表示系统或设备的连接点,并且环中的设备通过节点之间的连接彼此通信。中间节点能够在其相邻节点之间传递数据,使得非相邻节点可绕环彼此通信。网络的不同节点中的通信电路一般不共享公共的时钟,即,它们是不同步的。
[0018]需要一种改进的用于设备之间的串行通信的系统和方法,以克服时钟不同步的问题,并且其可应用在各种拓扑结构的通信网络如环网中。

【发明内容】

[0019]本发明通过提供一种系统和方法解决上述问题,该系统和方法用于提高经异步串行接口通信的发送和接收设备之间时钟的允许频率容差,并且本发明进一步在网络拓扑结构如环网中实现这些改进。
[0020]一个系统实施例包括经异步串行接口通信的发送和接收设备,其中发送设备发送预定的位序列。接收设备在预定位序列期间计数系统时钟周期的数量,并使用分数倍增器产生与所接收数据的波特率成比例的过采样时钟,用于采样额外的接收数据。过采样时钟频率等于系统时钟频率乘以具有固定分子与可变分母的分数,分母等于在预定位序列期间计数的系统时钟周期的数量。
[0021]系统中的发送和接收设备可使用具有非归零(NRZ)数据编码的UART协议通信,在这种情况下,预定的位序列是若干交替的‘I’和‘0’的位。可替代的,发送和接收设备可使用连续双频率编码数据通信,在这种情况下,预定的位序列是若干连续的‘0’的位。
[0022]进一步地,在使用双频率编码数据的情况下,多个设备可在环网拓扑结构中连接,其中一台设备是被指定为主设备的发送设备,并且其余的设备是被指定为从设备的接收设备。主设备发送由每个从设备接收的预定的位序列,每个从设备将其过采样时钟同步到所接收的数据的波特率。当数据正在被从主设备发送到一个或更多从设备时,每个从设备接收数据并且将该数据未改变地发送到环中的下一个从设备。当主设备希望接收由从设备返回的数据时,主设备沿环发送值为O的占位符位。特定的从设备可通过传递未改变的数据以发送‘O’,或者使数据在预定位时间中途反相以发送‘1’,从而用将要发送到主设备的信息“填充”占位符位。当数据位从环中的最后一个从设备返回时,主设备读取该信息。在电池管理系统中,信息可被传递回中央控制器,其解释电压和温度信息以确定在一个或更多个电池单元是否出现不安全状况。中央控制器(主机)然后可采取适当的行动,如警告系统的操作者,打开断路器以中断电池单元的充电和/或放电或者采取某个其他行动以减轻不安全状况。另外,主设备可包含特定数量的自身智能,如检测过电压或温度或欠电压或温度条件的能力,或者可具有额外的操作模式,如控制电池单元电压或充电均衡的能力。双向通信确保主机控制器可配置数据采集设备的模式和功能,并且然后读回状态和测量信息。这一般使用串联(或菊花链连接)的通信接口实现。
[0023]在另一示例实施例中,本发明是用于改进异步串行通信的方法,该方法包括接收来自发送机的预定位序列,通过计算预定位序列的系统时钟周期的数量来监测系统时钟和发送波特率之间的差,使用具有固定分子和可变分母的分数比率倍增器产生过采样时钟,其中分母等于所计数的系统时钟周期的数量,通过使系统时钟乘以分子与分母的比率产生过采样时钟,并且使用过采样时钟对来自发射机的数据位序列采样。
[0024]进一步地,方法可包括接收来自主设备的双频率编码数据,该数据包括值为‘0’的占位符位,并且通过“填充”该占位符位发送数据返回到主设备,其中未改变地传递数据以发送‘0’,并且使数据在位时间中途反相以发送‘I’。
[0025]本发明简单并且可在宽波特率范围和调谐范围内扩展。功率消耗和对采样噪声的免疫与过采样时钟频率成比例,并且因此也与波特率成比例,同时保持相同的操作和性能。另外,本发明降低对发送和接收设备之间的紧密匹配时钟的需求。通过审阅以下附图和详细说明书,本发明的其他系统、方法、特征和优势对于本领域技术人员是显而易见的。
【专利附图】

【附图说明】
[0026]图1A示出根据本发明的示例实施例的用于环网中串行通信的系统。
[0027]图1B示出根据本发明的示例实施例的电池管理系统。
[0028]图2示出根据本发明的示例实施例的双频率编码位流。
[0029]图3示出根据本发明的示例实施例的位流中的回读数据。
[0030]图4示出根据本发明的示例实施例的包括数据反相器的系统。
[0031 ]图5示出根据本发明的示例实施例的编码成NRZ格式的UART串行位流。
[0032]图6示出根据本发明的示例实施例的过采样时钟的生成。
[0033]图7示出根据本发明的示例实施例的用于同步接收的UART的方法。
[0034]图8示出根据本发明的示例实施例的用于在环网中串行通信的方法。
【具体实施方式】
[0035]本发明提出一种新颖的技术用于改进设备之间的串行通信。多个设备在环网中连接。一台设备被定义为主设备并且其余的设备被定义为从设备。主设备使用连续双频率编码位流与环中的任意从设备通信。由主设备发送的串行数据绕环行进到每个从设备,并且然后返回到主设备。每个位的开始通过主设备使连接到环中第一从设备的线路的状态反相来表示。主设备可通过使线路在预定位时间中途第二次反相来用信号表示‘I’位。否则,该位被解释为‘O’。当数据正在从主设备发送到一个或更多个从设备时,每个从设备接收数据并未改变地发送该数据到环中的下一个从设备。当主设备希望接收由从设备返回的数据时,主设备沿环发送值为O的占位符位。特定的从设备可通过传递未改变的数据以发送‘O’,或者使数据在预定位时间中途反相以发送‘I’,而用将要发送到主设备的信息“填充”占位符位。当数据位从环中的最后一个从设备返回时,主设备读取该信息。进一步地,主设备包含UART接口,用于与外部主机设备通信。然而环网中的数据经连续双频率编码传输,在UART发送和接收的数据是NRZ编码的并且包括起始和停止帧位。
[0036]以特定的波特率发送数据,该波特率取决于发送设备中本地系统时钟的频率。接收设备必须同步到发送的波特率,以便正确地采样所接收的数据。理想情况下,接收设备中的过采样时钟可以是波特率的确切整数倍,例如波特率频率的16倍。然而,由变化的环境条件例如温度引起的振荡器精度的固有限制以及漂移导致的发送和接收设备中本地系统时钟间的频率差阻止过采样时钟是波特率的确切数倍,使得同步差异可导致采样错误和数据发送失败。为解决这个问题,环中的设备配备有逻辑,以改进发送设备和接收设备间的时钟同步,即,由主设备到从设备以及由外部主机设备到主设备之间的时钟同步。接收设备中使用分数比率倍增器来从本地系统时钟产生数据过采样时钟。分数存储为两个值,分子和分母。过采样时钟频率等于系统时钟频率乘以分子与分母的比率。分数比率倍增器在本领域中是已知的并且可以以多种方式实现,例如使用M/N整数PLL。通过保持分子不变并且仅调整分母,过采样时钟可被调谐以匹配从发送设备接收的异步串行数据流的波特率的常数倍。然后过采样时钟被正常使用,以对预定位序列之后接收到的串行数据采样。
[0037]分母是通过计算预定位序列中系统时钟周期的数量自动确定的。在同步之前,通过以系统时钟采样串行数据而检测序列中的转变能够识别位序列。对于NRZ编码,预定的位序列是预定数量的‘I’和‘0’交替位,导致每位一次转变。对于连续双频率编码,预定的位序列是若干‘0’位,也导致每位一次转变。例如,对于NRZ的情况,预定的位序列可以是带有I个起始位(‘0’),8个交替数据位(‘10101010’)和I个停止位(‘I’)的单帧,其中由第一位的上升沿和停止位的上升沿划定的8个数据位来计算系统时钟周期的数量。对于连续双频率编码,预定位序列的示例是偶数个0,例如‘000000’,其中由第一位的上升/下降沿和紧跟最后一个O的下一位的上升/下降沿划定的偶数数量的位来计算系统时钟周期的数量。系统时钟以偶数数量的位计数,以便具有同等数量的高和低脉冲,因此平均由有限并且不同的上升和下降时间造成的高和低脉冲宽度的任何差异。所得的计数被直接用作分母的值。调谐分辨率和范围仅由分子和分母的大小限制。
[0038]该解决方案简单并且在宽范围的波特率和调谐范围内可扩展。功率消耗和对采样噪声的免疫与过采样时钟频率成比例,并且因此也与波特率成比例,同时保持相同的操作和性能。
[0039]如此处和贯穿本公开内容使用的,术语通用异步接收器/发送器(UART)是实现异步串行接口的任何计算机硬件或软件块。UART通常与其他通信标准如EIA RS-232 —起使用。UART可以是用于经由计算机或外围设备串行端口的串行通信的集成电路的一部分。UART通常包含在微控制器中。双UART或DUART,将两个UART组合在单个芯片中。发送UART获取数据的字节并按顺序发送各个位。接收UART将位重新重新组装成完整的字节。
[0040]在信号线路上传输位。信号可以是多种不同的形式。电压信令标准的示例是由EIA发布的RS-232、RS-422和RS-485。一些信令方案不使用电线。这种示例是光纤、IrDA(红外),以及在其串行端口配置文件(SPP)中的(无线)蓝牙。一些信令方案使用载波信号的调制(带或者不带电线)。示例是以电话线调制解调器来调制音频信号,利用数据无线电的RF调制,以及用于电力线通信的DC-LIN。串行通信可以是“全双工”(发送和接收同时进行)或者“半双工”(设备轮流发送和接收)。
[0041]UART、主设备、从设备、主机以及其他设备可具有处理器、存储器、收发器、输入端和输出端。存储器存储应用、软件或逻辑。处理器的示例是计算机处理器(处理单元)、微处理器、数字信号处理器、控制器和微控制器等等。可存储逻辑的存储器的示例包括RAM (随机存取存储器)、闪存、ROMS (只读存储器)、EPROMS (可擦除可编程只读存储器)和EEPROM(电可擦除可编程只读存储器)。
[0042]此处和贯穿本公开内容使用的“逻辑”指的是具有可用于使处理器能够操纵并发送其他数据和信息的指令信号形式和/或数据形式的任何信息。逻辑可以从存储在存储器中的信号产生。软件是这种逻辑的一个示例。逻辑也可包括在数字和/或模拟硬件电路中,例如,包括逻辑与(AND)、或(0R)、异或(X0R)、与非(NAND)、或非(NOR)以及其他逻辑操作的硬件电路。逻辑可以是异步或同步的,这表示其操作与时钟同步。逻辑可以是组合或顺序的。在顺序逻辑中,系统的状态保持在一个或更多个存储元件中。逻辑可以由软件和硬件的组合形成。在网络中,逻辑可在服务器或者复合服务器上被编程。特定的逻辑单元不限制于单独的逻辑位置、单元或设备。
[0043]对于以下描述,可假设跨附图的最对应标记的结构(例如,132和232等等)拥有相同的特性并受限于相同的结构和功能。如果存在未指出的对应标记元件间的差异,并且该差异导致用于特定实施例的元件的不对应结构和功能,则以提供给该特定实施例的冲突描述为准。
[0044]图1根据本发明的示例实施例示出用于环网中串行通信的系统,。设备101、102和103设置在垂直接口栈中,并且经异步串行接口总线相互通信。设备101、102和103中的每个具有对应的从设备单元S1、S2和S3。从设备S1-S3包含这样的逻辑:其使它们能够检测预定的位序列并且将其过采样时钟同步到所接收的位流的波特率。底部设备101具有底部从设备SI以及主设备单元105。主设备单元105命令从设备S1-S3,并且也与接口 120和107通信。接口 107是SPI接口,并且接口 120是UART。UART120包含这样的逻辑:其使它能够检测预定的位序列并将过采样时钟同步到所接收的位流的波特率。接口 120和107中的一个或者两者都连接到主机设备115。UART120的一个功能是转换从主机115到主设备105的数据/指令,将其在整个环中传播。环中的每个设备101-103包括与相应从设备例如电池管理、数据采集(DAQ)等等通信的其他功能件109。其他功能件109可以是数据存储器、电源、微控制器等等。
[0045]由主设备105发送的数据流110在绕环行进到每个从设备,并且然后返回到主设备105。当主设备105发送信息到设备101-103时,每个从设备S1-S3接收数据并将该数据发送到环中的下一个从设备。环中最后一个从设备(设备103中的顶部从设备S3)发送数据通过设备101-103返回到主设备,从而形成逻辑环。环的逻辑流由框130表示。数据流110是连续双频率编码的。每个位的开始由主设备使连接到环中第一从设备的线路的状态反相来发信号表示。主设备可通过在预定位时间中途使线路第二次反相来发信号表示‘I’位。否则,该位被解释为‘O’。当正在从主设备发送数据到一个或更多个从设备时,每个从设备接收数据并将该数据未改变地发送到环的下一个从设备。
[0046]环中每个设备101-103被分配唯一的地址。位流110包括识别目的从设备地址的信息和要由该设备执行的指令。从设备包含接收位流、解析数据以及确定是否指示指令到该从设备的逻辑。当主设备希望接收由从设备返回的数据时,位流110包括目的从设备地址和识别所请求的数据的指令,其后是值为‘0’的占位符位。通过改变位流110中的占位符位,数据被发送回到主设备。为了发送‘0’,被寻址的从设备将占位符位未改变地传递到环中的下一个设备。为发送‘I’到主设备,从设备使连接到环中下一个设备的线路在位时间中途反相。通过这种方式,特定从设备可用将发送回主设备105的信息“填充”占位符位。当这些数据位从顶部从设备103返回时,主设备105读取该信息。只有一个从设备101-103改变任何给定的占位符位。信号路径中每个从设备使用异或(X-OR)功能使线路的状态反相。
[0047]即使连接环中每个设备的线路可处于不同的状态,这种配置也维持双频率编码方案的连续性。连续双频率编码不要求成帧的位序列;相反,单个转变或“边沿”定义位时间的开始。这使得实现每位同步,其提供比仅在每个字节的开始位同步高的时钟容差。这非常适用于与其他不使用帧位的接口例如串行外设接口(SPI)的兼容性。环形拓扑结构具有容许通过每个设备的传播延迟的优势,以及提供关于环的完整性的反馈到主设备。本发明实现这些优势的结合,同时最小化在由从设备处的不必要处理导致的延迟。
[0048]图1B示出上述示例实施例的更具体的应用,其用在电池管理系统中。电池管理系统会使用设备101-103中的每个以在同一时间监测电池单元6到12,并且以与电池单元自身类似的方式串行通信,导致设备串联,用于监测多个串联的锂电子电池单元。由这些数据采集设备获得的信息会被传递回中央处理器(主机设备115),其解释电压和温度信息以确定一个或更多个电池单元处是否出现不安全状况。
[0049]在该实施例中,电池单元阵列109彼此串联形成一种系统,其可以例如,构成图1A的设备101-103的一部分。在这种情况下,电池单元的管理是附加的功能件109。数字采集(DAQ)设备105a、105b、105c和105d进一步彼此串联,并且具有接口与多个电池单元阵列109通信。在示出的实施例中,DAQ设备105a-105d与5个电池单元中的每个通信,然而,取决于系统的范围,其他配置是可能的。DAQ设备105a-105d设置在栈中,并通过异步串行接口总线相互通信。DAQ设备105b-105d包括这样的逻辑:其使它们能够检测预定的位序列并且将它们的过采样时钟同步到从DAQ设备105a接收的位流的波特率。DAQ设备105a因此可被认为是图1A背景下的主设备,并且因此命令DAQ设备105b-105d测量电池单元109的部分的功率电平、电压、温度等等。
[0050]DAQ设备105a经由主机串行通信总线121进一步与主机115通信并接收来自主机115的指令。DAQ105a可进一步包含UART逻辑,使其能够检测预定的位序列并将过采样时钟同步到从主机115接收的位流的波特率,以及转换从主机115到全部DAQ设备105a_105b的数据/指令,其将通过该栈传播。由DAQ105a发送的数据流通过系统传播到每个DAQ设备并且然后返回,如上关于图1A描述的。位流包括针对表示电池单元109的对应部分的功率电平,状态等等的值的占位符位。信息被传递回到主机115,其解释电压和温度信息以确定一个或更多个电池单元处是否出现不安全状况。主机115然后可采取适当的行动,例如改变系统的操作,打开断路器以停止电池单元109的充电和/或放电,或者采取某个其他行动以缓和不安全状况。另外,DAQ105a-105d可包括特定量的其自身智能,如检测过高或过低电压或温度条件的能力,或者可具有额外的操作模式,例如控制电池单元电压或充电平衡的能力。双向通信确保主机控制器能够配置数据采集设备的模式和功能,并且然后读回状态和测量信息。
[0051]图2根据本发明的示例实施例示出双频率编码的位流210。接收设备通过以过采样时钟例如位率的16倍来采样以监测串行数据流或位序列210,以便检测线路上的变化。每个位都包含在位时间内。数据线210上的变化被计数为边沿,并且一旦检测到它,针对等于位时间的过采样时钟周期的数量的计数被初始化,例如16倍过采样率对应于16个周期。如果在计数期间没有出现其他转变,则数据被处理为O。如果在计数期间出现另一个边沿,则数据被处理为I。
[0052]图3示出根据本发明的示例实施例的位流中的回读数据。串行位流310由主设备发送为连续双频率编码的格式并且表示由从设备接收的数据。位流310包括在位流的开始发送的第一部分314,并且包括偶数数量的0,用于使接收从设备单元(S1-S3)过采样时钟同步到所发送的波特率。对于发送回数据的从设备,主设备发送一系列“空位”,或者零值位间隙,其在位序列310的部分318示出。串行位序列310的部分316包括目的从设备地址和识别所请求的数据的指令。
[0053]串行位序列312表示被从设备改变的位流以便发送数据回到主设备。“空”位间隙318等于‘0’(每个位时间一个边沿)。从设备发现‘0’,并修改空位间隙以发送回数据,如串行数据输出312所示。从设备使位间隙保持为空以指示‘O’。从设备使空位间隙的中间反相来添加边沿以表示‘I’。随着从设备将位流传递到环中的下一个设备,唯一的延迟是传播延迟。从设备实时地分析位流,并且不添加任何时钟周期延迟。这就确保从设备将最小的延迟添加到环中,实现由大量设备组成的大的从设备栈,同时累积最小的延迟。
[0054]图4示出根据本发明的示例实施例的包括反相功能的系统。图4中示出的系统是通用设备例如图1中的设备101-103的一部分。提供操控逻辑将设备配置用于作为底部、中间或顶部设备操作。当配置为栈中的底部设备101时,UART405和SPI406提供主机407和主设备403之间的接口。主设备403使用经串行接口 SDI的连续双频率编码的位流通过选择多路器410的‘I’输入来与从设备404通信。经SDI传递的位流与信号416在异或(X-OR)功能件中408结合。为了传递未改变的位流,从设备404使信号416保持不变。当从设备404被主设备403寻址并且由主设备403指示发送数据回到主设备时,从设备监测经SDI接收的位流并识别划分每个占位符位开始的边沿。为了用‘0’值“填充”占位符位,从设备404允许占位符位被不改变地传递。在检测划分占位符位开始的边沿之后,为了用‘ I’值“填充”占位符位,从设备404等待位时间的一半并且然后将信号416的状态改变为其相反的状态。连续双频率编码信号仅取决于位流中的转变。其不取决于电平(‘0’或‘1’),也不取决于边沿是上升还是下降。因此,信号416的初始状态可以是‘I’或‘O’。唯一的要求是信号416保持不变,除非在以‘I’值填充占位符位时在位时间中途改变状态。通过将与(AND)功能件414中的“顶”信号设置成逻辑‘I’,位流被传递到环中的下一个设备。相反的,控制多路器412的“顶”信号被设置成‘0’以便主设备经SDO接收来自环中最后一个设备的返回位流。
[0055]当被配置成栈中的中间设备时,从设备404通过选择多路器410的“O”输入来经接口即_3接收串行位流。通过将控制多路器412的“顶”信号设置成‘0’并且将到与功能件420中的信号418设置为等于‘ I’,位流从串行接口 DN_N到DN_S在返回路径中返回到主设备。中间设备中从设备404的操作与底部设备中描述的操作相同。
[0056]当被配置成栈中的顶部设备时,从设备404按照与针对中间设备所描述的相同方式经接口即_3接收串行位流。然而,不是传递位流通过UP_N接口,而是通过将控制多路器412的“顶”信号设置成‘0’并且将到与功能件中420的信号418设置为等于‘1’,位流通过DN_S接口环回到主设备。顶部设备中从设备404的操作与底部和中间设备中所描述的操作相同。
[0057]图5示出根据本发明的示例实施例的编码成NRZ格式的UART串行位流。位流510示出根据UART协议的代表数据帧520。该数据帧开始于等于逻辑‘0’值的起始位512,接着是8个数据位D1-D8并由等于逻辑‘I’值的停止位514终止。这个数据帧上的变化在本领域中是已知的,如添加第二停止位,7位的数据长度,以及在停止位之前包括奇偶校验位。在数据帧之前,提供预定的位序列以允许接收设备将过采样时钟同步到位流的波特率。预定的位序列包括起始位512,接着是在‘I’和‘0’之间交替的8个数据位518,以及由停止位514终止。这个特定的预定位序列被选择是因为其与正常数据帧520的相似性,使得不知道同步机制的发送设备可以产生该序列。然而,其他的预定位序列是可能的,唯一的要求是接收设备可检测位流中划分已知数量的位时间的边界。预定的位序列由主机设备产生,例如图1和图4示出的系统中的设备115和407。
[0058]图6示出根据本发明的示例实施例的用于将过采样时钟同步到所接收的位流的波特率的系统。系统时钟624从主时钟621产生。系统时钟可被设置成等于主时钟。可替代的,系统时钟可通过使用预缩放整数除法器623产生,其中系统时钟频率等于主时钟的频率除以整数M。系统时钟用于采样预定的位序列,如图3示出的314和图5示出的518。值得注意的是预定的位序列314和518本质上是相同的,即使序列314被编码为连续双频率格式并且表示一定数量的连续‘0’值,并且序列518被编码为NRZ格式并且表示一定数量的交替‘I’和‘0’值。因此,可对两者采用相同的过采样时钟同步系统。
[0059]接收设备627接收预定的位序列作为串行位流628的一部分,并且在由系统时钟624确定的间隔对其采样。接收设备检测位流中的转变并确定预定位序列的范围。例如,考虑图5中的位流510,接收设备检测在起始位512的前边沿从高到低的转变。然后接收设备检测从第一数据位的上升沿开始并且在停止位514的上升沿结束的9边沿的序列,并且计算出现在整个间隔内的系统时钟周期的数量。选择偶数数量的位以便具有相同数量的高和低脉冲,因此平均由有限并且不同的上升和下降时间造成的高和低脉冲宽度的任何差异。也可使用奇数数量的位,但是如果上升和下降时间差别太大就不太精确。
[0060]在预定的位序列之后,接收设备627使用过采样时钟采样所接收的位流628。为维持同步至位流,每位的采样数量必须是已知的常数,例如16。另外,希望为不同波特率维持每位的相同样本数量以便简化逻辑设计,并且也提供对与波特率成比例的采样噪音的免疫性大小变化。这个目的通过分数倍增器625实现,其产生频率等于系统时钟频率乘以固定分子N与可调分母D的比率的过采样时钟。分母被设置成等于在预定位序列上系统时钟周期的计数。
[0061]作为该系统的有效性的说明,设想一种情况,其中所接收的位流628的波特率是已知的并且是常数,接收设备具有8.192MHz的主时钟621,分数倍增器625被设置成固定的值0.6并且需要过采样系数16。表2示出针对各种波特率怎样实现上述情况。例如,在9600位每秒的串行位流的情况下,主时钟使用整数除法器623预缩放,其中M设置成32,因此产生256kHz的系统时钟624。分数倍增器625使系统时钟乘以0.6,产生153.6kHz的采样时钟,其正好是9600位每秒的波特率的16倍。类似地,通过将预缩放系数M改变为16,8和4分别用于19200,38400和76800位每秒的波特率,为表中的其余波特率实现正好是波特率16倍的过采样时钟。
[0062]
【权利要求】
1.一种用于改进的异步串行通信的方法,该方法包括: 在接收设备处接收来自发送机的预定位流; 计数所述预定位流期间系统时钟的周期数; 生成具有分子和分母的分数比率倍增器,所述分母取决于所计数的系统时钟周期数量; 通过对所述系统时钟应用所述分数比率倍增器产生过采样时钟;以及 使用所述过采样时钟对所接收的数据位序列进行采样。
2.如权利要求1所述的方法,其进一步包括使用非归零编码即NRZ编码对所述位流进行编码,并且通过通用异步接收机/发送机协议即UART协议通信。
3.如权利要求1所述的方法,其进一步包括使用连续双频率编码对所述位流进行编码。
4.如权利要求3所述的方法, 其进一步包括在环网中连接多个接收设备和发送机,其中所述接收设备被指定为从设备。
5.如权利要求4所述的方法,其进一步包括; 解析所述位序列以确定该位序列被寻址到从设备并且所述发送机正在请求从所述从设备返回的数据; 通过在所述位时间的中途使所述位序列反相来填充所述位序列中多个占位符位中的一个,以及 将反相后的位序列转发至所述环网中的后续从设备。
6.如权利要求1所述的方法,其进一步包括通过在主时钟上使用预缩放除法器产生所述系统时钟。
7.如权利要求1所述的方法,其进一步包括设置常数分子;以及通过调整所述分母来调谐所述数据采样时钟。
8.如权利要求1所述的方法,其中所述接收到的数据位序列包括用于电池管理系统中多个电池单元的电压和温度信息,所述方法进一步包括:发送所述位序列到主机控制器用于进一步的诊断。
9.如权利要求1所述的方法,其中所述预定位序列包括起始位和停止位;所述方法进一步包括响应于接收所述预定位序列的起始位来计数系统时钟周期的数量。
10.一种用于在环网中串行通信的方法,所述方法包括: 在从设备处接收来自所述环网中主设备的位序列,所述位序列使用双频率编码进行编码; 使过采样时钟与所接收的位序列的波特率同步; 解析所述位序列以确定该位序列被寻址到所述从设备并且所述主设备正在请求从所述从设备返回的数据; 通过在所述位时间的中途使所述位序列反相来填充所述位序列中多个占位符位中的一个;以及 将反相后的位序列转发至所述环网中的后续从设备; 其中所述位序列中每个位的开始由所述主设备使所述位序列反相第一次以表示O并且反相第二次以表示I来表示。
11.如权利要求10所述的方法,其进一步包括确定所述主设备不需要响应;并且将所述位序列未改变地转发至下一个从设备。
12.如权利要求10所述的方法,其中同步所述过采样时钟进一步包括: 通过计数预定位序列上的系统时钟周期的数量来监测系统时钟和所发送的位序列的波特率之间的差异; 生成具有固定分子和可变分母的分数比率倍增器,所述分母等于系统时钟周期的计数数量; 通过使所述分子与分母的比率乘以所述系统时钟产生所述过采样时钟;以及 使用所述过采样时钟对来自所述发送机的数据位序列进行采样。
13.一种用于在环网中串行通信的系统,包括: 主设备; 连接到所述主设备形成所述环网的多个从设备; 所述主设备和外部主机设备之间的接口; 用于产生位流并发送所述位序列到整个所述环网中的所述主设备上的逻辑,所述位流包括用于回读的数据的一个或更多个占位符位;以及 用于解析所述位流以确定目的地址并用于在所述位流中添加请求的任何回读数据的第一从设备上的逻辑。
14.如权利要求13所述的系统,其中所述第一从设备上的逻辑进一步用于:` 解析所述位流以确定所述位流被寻址到所述第一从设备; 通过在预定位时间的中途使所述位流反相来改变所述多个占位符位中的一个,从而将回读的数据添加到所述位流中;以及 将反相后的位流转发至所述环网中所述多个从设备中的一个。
15.如权利要求14所述的系统,其进一步包括通过所述接口与所述主设备通信的主机设备。
16.如权利要求15所述的系统,其中所述从设备耦合至电池单元,其中所述回读的数据包括针对所述电池单元的电压和温度,并且其中所述主机设备是电池管理系统中的控制器。
17.如权利要求16所述的系统,其进一步包括所述接口上的逻辑,其用于: 在接收来自所述主机设备的预定位序列的过程中计数系统时钟周期的数量,其中所述预定位序列具有起始位和停止位并且使用非归零编码即NRZ编码进行编码; 产生具有分子和分母的分数比率倍增器,所述分母取决于所计数的系统时钟周期数量; 通过对所述系统时钟应用所述分数比率倍增器产生过采样时钟;以及 使用所述数据采样时钟对来自所述主机设备的数据位序列进行采样。
18.如权利要求13所述的系统,其进一步包括所述接口上的逻辑,其用于: 在接收来自所述主机设备的预定位序列的过程中计数系统时钟周期的数量; 产生具有分子和分母的分数比率倍增器,所述分母取决于所计数的系统时钟周期的数量; 通过对所述系统时钟应用所述分数比率倍增器产生过采样时钟;以及使用所述数据采样时钟对来自所述主机设备的数据位序列进行采样。
19.如权利要求13所述的系统,其进一步包括耦合到所述第一从设备以使所述位序列反相的异或门。
【文档编号】H04L29/06GK103703716SQ201280035999
【公开日】2014年4月2日 申请日期:2012年5月21日 优先权日:2011年5月20日
【发明者】J·M·罗斯 申请人:德克萨斯仪器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1