图1显示具有输入处理器10和更进一步的处理器12的数据处理设备。输入处理器10包含指令处理器100、指令存储器102、时钟电路104、定时电路106和握手电路108。数据处理装置的通信输入端14耦合到指令处理器100和定时电路106。时钟电路104耦合到定时电路106,它又经由握手电路108耦合到指令处理器100。指令处理器100耦合到指令存储器102,握手电路108和更进一步的处理器12。
图2显示具有脉冲28的触发信号26、指令周期的脉冲串22和比特周期21和作为时间的函数的数据字周期20。虽然图2仅仅显示在单个数据字中的比特的一组比特周期21,可以理解到消息可以包含一连串这样的组,各个组用于连续的数据字,各个组具有他们自己的数据字周期20。
操作中,表示在不同比特周期21中时间上连续的比特的信号被提供给输入端14。每当比特在输入端14生效的时刻定时电路106产生触发脉冲28。仅对于在已知相应比特稳定在输入端14上的期间的某处产生每个触发脉冲28,触发脉冲的定时是临界的。此外,脉冲彼此之间将具有充分的距离,使得在下一触发脉冲28以前完成各个脉冲串22。接收锁存器可以被提供来锁存输入比特;在该情况下,触发脉冲甚至可以在比特是稳定的周期以外被产生。
响应触发脉冲28,指令处理器100从指令存储器102获取指令系列并在指令周期的各自的脉冲串22中执行各个指令系列。在许多这样的脉冲串22以后,数据字的所有比特已到达输入端14并且已经被指令处理器100处理。在最后一个所述脉冲串22中,指令处理器100在数据字周期20期间输出数据字给更进一步的处理器12。通过输出所有并行接收的多个比特或串行接收的单个比特来实现,其中任何时钟信号可能用来时钟同步比特中的连续比特。
根据本文的必要条件,各种型式的处理可以在脉冲串22期间执行。在一个例子中,多个校验比特可能在各个脉冲串22中通过连续地执行各自的指令来更新各个脉冲串22中的不同的校验值而被更新,这取决于接收的比特的值和用于不同校验比特的公式(公式用来判定,如果有的话,在数据字中某一位置处的比特如何形成相应的校验比特;如果用于具体校验比特的公式指示具体接收的比特对具体校验比特的贡献,通常上述相应的校验比特值和被接收的比特的异或函数被计算)。典型的指令系列是
f=inp RXD 将输入比特读入寄存器f
m1=f 将输入比特存储到位置m1
m2=f+m2 更新在位置m2处的第一校验比特
m3=f+m3 更新在位置m3处的第二校验比特
wait 挂起操作直到下一比特
(根据数据字内的比特序列号,不同的校验比特可以被更新或在位置m2,m3处的校验比特不被更新)。当脉冲串22的所有指令被处理时,指令处理被挂起直到下一脉冲串22被触发。最好优先地在挂起期间指令处理器100没有或实质上没有内部信号转换发生,以便最小化功率消耗。当所有的输入比特已经处理时,验证位可以是输出到更进一步的处理器12,或者它们可以被指令处理器100使用,以更正信号误差。
握手被用来控制指令处理器100的操作。最初定时电路106产生请求信号(通常通过提升触发信号26)。响应请求信号要求,指令处理器100开始处理在脉冲串22中的指令序列的第一个。指令处理器100发送确认信号到定时电路106,它响应确认信号而撤销请求信号(通常通过降低触发信号26)。一旦指令处理器100已经指示它即将接收下一请求信号,定时电路106可以产生新的请求信号,但是当新的输入比特可用时它通常用延迟来这样做。在来自定时电路106的触发信号之后,指令处理器100为了它自己产生一系列请求信号,以触发在脉冲串22中的序列的后继指令的执行。重复这个,直到指令系列结束(由在编程例子中的″wait″指令来指示),因此没有更进一步的请求信号由指令处理器100产生。
在指令处理器100内,原则上可以传递握手,以致任何涉及指令执行的子电路由握手激活并且用握手依次激活更进一步涉及的子电路。因此,因为除非执行特别指令所必须,没有子电路需要产生信号转换,因此功率消耗被减少。当然,本发明不限于握手来保护操作挂起。例如,时钟同步的指令处理器可以和时钟脉冲门以某种形式的联合使用,时钟脉冲门保证没有时钟信号被用于脉冲串22外面的指令处理器100。这也减少功率消耗,它小于使用握手的情况。
虽然本发明已经按照由指令处理器100接收的比特被描述,可以理解,在没有背离本发明的情况下,指令处理器100也可以被安排来经由通信输入端14在任何或所有比特周期21内发送回数据。例如,一旦它从比特周期21前面的信息中识别出需要这样做,指令处理器100可以在比特周期21返回一个确认,或者它可以在多个比特周期21发送数据。
图3显示定时电路106的实施例的一个例子。这实施例包含计数器/控制器30,频分器32,同步字段开始检测器34和同步字段停止检测器36。同步字段开始检测器34和同步字段停止检测器36耦合到输入端14和具有耦合到计数器/控制器30的输出端。计数器/控制器30具有一个耦合到时钟电路104的输入端和一个耦合到频分器32的输出端。频分器32具有耦合到时钟电路104和计数器/控制器30的输入端和耦合到握手电路108的输出端。
图4显示来自输入端14的输入信号的同步部分的例子。该同步部分相当于本来公知的LIN协议的同步部分。该同步部分在图2的比特周期21之前。同步部分包含同步中断间距50和同步字段间距52。在同步中断间距50中,输入信号为第一时间间距设定低电平53,之后信号升到高电平。选择同步中断间距50的长度比低电平的长度长,这起因于任何消息中其他位置的比特组合(长于一个全零字节)。在同步字段间距52中,输入信号包含四个脉冲54,其中输入信号首先设定一个低电平然后是高电平。同步字段52后面有一个紧跟的消息间距,其中出现比特周期21(未显示)。比特周期的持续时间安对于同步字段间距52的持续时间具有预定比例。
在操作中,输入信号由发射机(不显示)产生和由定时电路106处理。同步字段开始检测器34检查来自输入端14的输入信号中的同步字段间距52的开始。同步字段开始检测器34发送信号给计数器/控制器30来重新设置计数和从时钟电路104启动计数时钟脉冲来响应检测。同步字段停止检测器36检测同步字段间距52的结尾和发送信号给计数器/控制器30来停止计数。因此计数器/控制器30将根据时钟脉冲的被计数的数目所决定的除数值应用到频分器32,用除数值来除以时钟频率。频分器32在频分处的时钟脉冲应用到握手电路108,以启动脉冲串22。
在频分器32,计数电路(不显示)可以被使用,每当它计算来自时钟电路104的一组数目的时钟脉冲时,它产生脉冲。在该情况下,该组数目相当于由计数器/控制器30计数的被预定因子所除以的数目,该因子表示同步字段的比特周期的数目。但是本发明不限于这类频分器32。
当同步字段包含超过一个比特周期时,有可能使用小于一个正或负时钟脉冲的相对误差来确定时钟电路106的时钟脉冲的数目。例如当八比特周期存在于同步字段时,比特周期的长度可以被确定在时钟周期的1/8内。当频分器30运用简易的计数器时,丢弃了分数的准确度。在更进一步的实施例中,通过使用允许每个比特周期的时钟电路106的时钟周期数目改变的数字振荡器利用了分数的准确度,以致平均起来比特周期的持续时间更加接近地相当于达到用分数的准确度的测量比特周期。
这样的数字振荡器可以例如作为加法电路被实施,它用来在各个时钟电路104的时钟周期将增量添加到计数值和每当计数值超过阈值时产生指示比特周期的脉冲,同时将计数降低该阈值。在该情况下,阀值和/或增量可以被设置为对应于来自计数器控制器30的计数,以致时钟电路104每一比特的时钟周期平均数等于根据同步字段由计数控制器30决定的比特周期的在分数上精确持续时间。因此,每一比特周期的时钟脉冲的数目可以改变,以致平均起来比特周期的长度等于所需的在分数上精确比特周期。
优先地,时钟电路106被设计使得来自时钟电路106的时钟脉冲的频率足够地高,以致在触发信号脉冲28的频率处的误差非常得小以至在从输入信号对比特采样期间没有误差发生。通常,误差由于在来自时钟电路106的时钟信号中的不可预知的相对定时转换和在输入信号中的转换而包括定时误差。这些误差的极限累积效应是预定时间数目(例如10)来自时钟电路106的时钟信号的时钟周期的持续时间的误差。给出要求的准确度(例如在用20千比特每秒传送的9比特数据字的终端上的不超过1.5%的误差),时钟电路104最低容许的频率可以被导出(在该情况下例如1.4兆赫)。
因此,定时电路104将触发脉冲28的频率调整到在输入端14的输入信号的标准的特征,来使得指令处理器使用指令执行的短脉冲串22来处理输入的比特。
另外,输入信号的其他特征可能用来检测数据字是否被应用,也就是,来确定触发脉冲是否应该被产生。为这目的,可使用对同步中断间距50的检测,和/或对在同步字段间距52中具有的适当持续时间的脉冲54的正确数目的检测。在同步中断间距50中的低信号电平53持续了某一最短持续时间。该最短持续时间对于同步字段间距52的持续时间具有预定比例。以及为了设置除数,定时电路106因此可以被安排来产生连续的触发脉冲28,就如同由同步间距控制那样,只是在对应同步中断被检查到以后。
定时电路106能够执行对同步中断的见识,这与输入处理器10对消息的正常处理并行进行。因此,对同步中断连续监督是可能的。异步中断将被错过,因为输入处理器10忙着处理消息。
图5显示用来检查一个或多个的间距和脉冲54的持续时间的定时电路的实施例。除图3的部分之外,图5的实施例包含同步中断计数器60,同步中断结束检测器64和比例比较电路62。同步中断计数器60具有耦合到时钟电路104的时钟输入端,耦合到开始检测器34的开始输入端和耦合到同步中断结束检测器64的输出端的停止输入端。计数器/控制器30和同步中断计数器60的输出端耦合到比例比较电路62,它具有耦合到频分器32的控制输出端。
当预先没有充分精确地知道时钟速率时,实施例阐明的问题是同步中断间距50的最短持续时间不能被检查。当比特率中仅仅小的变化被允许时,有可能为长于低电平的持续时间的同步中断间距50设置阈值持续时间,作为甚至在最低可能时钟速率处的任何普通数据模式的结果,但是所述阈值持续时间短于为了最高可能的时钟速率的同步中断的最短持续时间。然而,当在时钟速率中出现太多的变化时,这样的阈值期间不能被发现。
图5的实施例中,定时电路106协同时钟速率测量来检测后验的同步中断50的存在。同步中断计数器60在信号呈现低电平53的时间间距内计数来自时钟电路104的时钟脉冲的数目,指示这样的间距可能是同步中断间距50。在同步字段间距52期间计数器/控制器30计数时钟脉冲数目。来自同步中断计数器60和计数器/控制器30的计数被用于比例比较电路62,它测试在从同步中断计数器60和计数器/控制器30连续地判定的计数之间的比例是否在预定范围的区域之内,所述范围相当于考虑抽样误差和时钟速率波动下的同步中断间距50规定的最低持续时间。仅当比例比较电路62检测这样的联合,它才发送信号给频分器32来接收由计数器/控制器30确定的除数。
比例比较电路62可以例如通过用适当的乘数乘上来自联合的两个计数来实施比较,然后比较乘积。优先地,比例比较电路62利用管道,那就是说,它具有存储元件,用于存储多个来自同步中断计数器60的连续地被确定的计数,并将旧的计数(相当于低的信号间距,它放在同步字段52的结尾之前,中间有如图4描述的预定数目的低信号间距)与来自计数器/控制器30的计数相比。因此,如果检测失败,那么同步中断可以使用来自同步中断计数器60的更近的计数被检测。然而,这样的管道存储是不需要的,例如,当非常短的间距(例如在脉冲54之间的间距)作为根据最短持续时间阈值推理的同步中断间距50而可以被除去时,对这些间距的计数就不必存储。
同样为了设置除数,在这个实施例中的定时电路106可以被安排来仅在对应的同步中断被检查到以后产生连续的触发脉冲28,就如由同步间距控制。
虽然分离的同步中断计数器60和计数器/控制器30已经被显示,可以理解相同的计数器可以被用于两种形式的计算,只要存储器被提供用来存储所涉及的不同的时间间距的时钟脉冲的计数和用来将这些计数联合来检测在同步中断间距50和同步字段间距52之间的比例。
同时,在这样的测试的正的结果的条件下,定时电路106可以被构造来指导对输入信号更进一步的检查,并且在这样的测试的正的结果的条件下,生成触发脉冲28。因此,例如由于具有在同步字段间距52中的适当相对定时的脉冲54,定时电路106可以检查充分的信号电平变化的存在。如果这样电平变化是不存在的,同步中断的检测被禁止,除数没有被更新并且没有消息被接收。
当然,存在许多定时电路106的替换实施例。例如,当比特周期21的长度是高度可预测的,触发脉冲的固定定时可以被使用。同时输入信号其他特征可以被用来校准定时,例如锁相环路可能用来将时钟信号同步到通信信号。通过允许触发脉冲的频率适应到输入信号,有可能将传输速度调整到需要被传输的数据数量,以致指令处理器100的功率消耗可以被最小化。
图6显示可以用作指令处理器100的一个比特宽度的处理器的实施例。指令处理器100包含逻辑单元42,一比特寄存器40,数据存储器44,程序计数器48和数据字存储器46。逻辑单元42耦合到输入端14、一比特寄存器40、数据存储器44、程序计数器48和数据字存储器46。没有背离本发明,超过一位的寄存器40可以被提供。程序计数器48具有一个耦合到指令存储器102的地址输入端的输出端,指令存储器102依次具有耦合到逻辑单元42的指令输出端。数据字存储器46耦合到更进一步的处理器12(不显示)。数据存储器44可以是任何类型。在一个例子中,循环移位寄存器可能被用作数据存储器,它通过一个步骤在每次数据比特被存储时或在各个时钟周期内移位被存储的比特的地址。在该情况下它不是为寻址数据存储器44所必需;反而来自预定地址的数据可以被使用。通过使用适当的周期,适当的数据可以被访问,在该周期中所需数据位于预定地址。
操作中,指令处理器100执行指令序列,该序列使用来自寄存器40、来自输入端14和/或数据存储器44的一比特操作数,并且指令处理器100″与″输出比特到数据字存储器46(从数据字存储器46数据字被提供给更进一步的处理器12)。程序计数器48的内容阐明必须被执行的指令,以及在各个指令之后正常地被递增来寻址下一个指令。指令存储器102供给被寻址的指令给逻辑单元42。逻辑单元42能够执行的指令包括将来自不同来源的一比特数据加载到寄存器40的指令、一比特存储数据的存储指令、诸如来自不同来源的一比特操作数的与、或和异或指令和有条件的分支指令,通过分支指令中指定的数量来改变程序计数器48内容。
在脉冲串22中的操作期间来自于指令存储器102的指令包括从输入端14读出的输入比特的指令和输出比特到数据字存储器46的指令。一旦数据字的所有输入比特已经到达和已经被输出到数据字存储器46,数据字存储器46将数据字提供给更进一步的处理器12(不显示)。计算过的校验比特可以被添加到数据字。原则上数据字的所有比特可能以并行的方式从数据字存储器46提供到更进一步的处理器12,但是串行传送当然也可能用作替换。
一比特宽的操作数处理器有下列好处,它以相对小的电路为代价提供编程的灵活性。以低处理功率的代价而达成该好处,使得必须执行与由多比特操作数处理器所需的指令数目比较起来相对多得很多的指令来执行具体操作。然而,因为处理遍布脉冲串22,对于各个输入的比特,仅仅相对小的指令数量必须在各个脉冲串22的时间内被执行。因此,有可能用一比特操作数处理器来可编程地处理输入的数据。
当然本发明不限于使用图6的可编程一比特操作数处理器。其他种类的可编程一比特操作数处理器可以被使用,或甚至使用可编程多比特操作数处理器,虽然后者可能增加电路的复杂性。