具有自动化协议的UART的制作方法

文档序号:13884557阅读:249来源:国知局
具有自动化协议的UART的制作方法

相关申请案交叉参考

本申请案主张对2015年6月18日提出申请的共同拥有的美国临时专利申请案第62/181,533号的优先权,所述美国临时专利申请案据此出于所有目的以引用的方式并入本文中。

本发明涉及串行接口,特定来说涉及具有自动化协议的通用异步接收器/发射器(“uart”)接口。



背景技术:

uart是众所周知的且通常用于微控制器中以提供通信信道。uart接口将并行数据转译成串行发射形式。存在各种类型的协议且其用于如由各种通信标准(例如电子工业联盟会标准rs-232、rs-422或rs-485)定义的uart通信中。



技术实现要素:

需要提供可操作以支持多个自动化协议的通用异步接收器-发射器接口。

本发明揭示一种通用异步接收器/发射器(uart)接口。所述uart接口可包含可配置异步接收器与发射器单元;及可配置状态机,其中所述状态机允许所述接收器与发射器单元的配置支持各种波特率且提供起始位及停止位配置,其中所述状态机可进一步配置为自动支持多个通信协议。

在一些实施例中,所述多个通信协议可包含dmx协议。在相同或替代实施例中,所述多个通信协议可包含dali协议。在相同或替代实施例中,所述多个通信协议可包含lin协议。

在一些实施例中,操作模式是通过配置寄存器设定的。在一些实施例中,所述状态机为分隔(break)、mab、帧宽度、mtbf及mtbp提供自动支持。

在一些实施例中,还揭示一种微控制器系统。所述微控制器系统还可包含微控制器,所述微控制器包含uart。在此类实施例中,所述微控制器可选自由以下各项组成的群组:8位微控制器、16位微控制器及32位微控制器。在此类实施例中,所述微控制器可进一步包含耦合到uart接口的计时器。

在一些实施例中,操作模式可包含曼彻斯特(manchester)模式。

附图说明

图1图解说明根据本发明的特定实施例的第一字节到第512个字节的实例性发射;

图2图解说明根据本发明的特定实施例的实例性对应dmx接收协议;

图3图解说明根据本发明的特定实施例的具有设定到特定数据大小的存储器部分(例如,寄存器p1=2(字节))的实例性16位dali装置;

图4图解说明根据本发明的特定实施例的dali发射的实例性时序图;

图5图解说明根据本发明的特定实施例的lin主/从模式的实例性时序图;

图6图解说明根据本发明的特定实施例的lin主/从模式的继续实例性时序图;

图7图解说明根据本发明的特定实施例的lin仅从模式的实例性时序图;

图8图解说明根据本发明的特定实施例的lin仅从模式的继续实例性时序图;

图9图解说明根据本发明的特定实施例的用于发射的实例性曼彻斯特解码方案;

图10图解说明根据本发明的特定实施例的用于接收的实例性曼彻斯特解码方案;

图11图解说明根据本发明的特定实施例的用于接收的继续实例性曼彻斯特解码方案;

图12图解说明根据本发明的特定实施例的用于接收的另一继续实例性曼彻斯特解码方案;且

图13图解说明根据本发明的特定实施例的用于接收的又一实例性曼彻斯特解码方案。

具体实施方式

根据各种实施例,可提供允许仅使用数据互动来实施多级(multi-step)协议(例如数字多路复用(“dmx”)、本地互连网络(“lin”)、数字可寻址照明接口(“dali”)等)的通用异步接收器/发射器(“uart”)。软件不必担心将分隔(“brk”)字符、起始位、停止位、校验和等放置于何处。这些元素的所有物理层放置可自动得以解决。软件可仅负责经由链路读取及写入数据。

在每一协议中,用户可写入待发射的数据并读取所接收的数据。出于本发明的目的,“用户”可指任何适当电子装置及/或所述装置的操作者。uart接着可自动插入起始周期、停止周期、闲置周期、校验和计算、数据插入、奇偶位等。因此,至少可实施以下协议:自动dmx协议、自动dali协议、自动lin协议。

特定常规uart仅可提供对位的相对低阶控制。较高阶问题(例如,将起始位及停止位、校验和等放置于何处)是在软件中解决,因为大多数微控制器具有大量可用软件循环。然而,就较小解决方案(例如8位微控制器)来说,总可用软件循环为较低的,因此硬件块可用于为软件分担。

根据各种实施例,可提供通用协议软件安装程序。举例来说,可提供允许用户选择多个可用协议模式中的一者的多个位。此可(举例来说)通过在uart配置寄存器中设定控制位(例如,use_prot=1)而实现。此外,可设置波特率值(例如,波特率产生器位“brgh/l”)使得可从选定时钟划分出所需时钟速率。这些时钟速率仅经提供作为实例。硬件可不对时钟速率强加任何限制。可针对不同协议提供时钟速率,举例来说,dmx可使用5khz到250khz之间的时钟速率,dali可使用从2180hz到2666hz(其在引脚处转译成曼彻斯特1090波特到1333波特)的时钟速率,且lin可使用从100hz到20khz的时钟速率。

在一些实施例中,可将水印值设置到所需水印。举例来说,如果当发射先进先出(“fifo”)达到3时期望中断,那么特定配置可将tintflg[2:0]设定到3。在不脱离本发明的范围的情况下还可使用其它配置值。举例来说,可取决于协议将适当信号引脚上的逻辑电平设置到所要值;可设定发射极性位;可将模型选择信号设定到所要模式;可设定发射启用信号;可设定接收启用信号等。

在并入具有brk的协议(例如,dmx及lin)的一些实施例中,如果在包的中间接收到brk(不期望的较早brk),那么状态机将表现得如同新包已起始。将不排清接收缓冲器的内容;用户必须将其读出或有目的地排清缓冲器内容(例如,通过激活rxflsh位)。

在一些实施例中,在所有协议模式的开始时清除校验和值、奇偶内部加法器(及其工作寄存器中的任一者)。然而,不清除校验和位及奇偶状态位。这些位根据一些实施例可由用户清除。

dmx协议状态机

在各种实施例中,具有自动化协议的uart可利用dmx协议。在此类实施例中,可通过允许用户选择多个可用协议模式中的一者的多个位来选出所述特定协议。举例来说,特定配置可通过将“use_prot”信号设定为逻辑高来选择dmx协议。dmx为用于舞台演出设备中的协议。此设备包含照明机器、烟雾机等。所述协议由发出命令的控制主控台及接收这些命令的设备(例如剧场灯)组成。所述协议为单向的,其中主控台发射命令且设备接收命令。设备从不进行任何发射且主控台从不进行任何接收。此外,dmx配置不包含误差控制或再发射机制。

dmx或dmx-512(如其还可为已知的)由512个信道的“总体(universe)”组成。此意味着一个主控台可在单个dmx链路上输出多达512个字节。线路上的每一设备经编程以接听这些字节中的一或多者。举例来说,连接到总体中的一者的烟雾机可经编程以在字节数目10处接收起始且接收4个字节计数,且照明单元可经编程到字节数目22且接收一个字节计数。

每一dmx发射可以分隔开始,后续接着称为‘起始代码’的字节。分隔的宽度是用特定寄存器(举例来说p1寄存器)设置。分隔后续接着“分隔后进行(makeafterbreak;mab)”。图1图解说明根据本发明的特定实施例的第一字节到第512字节的实例发射。当将特定信号(例如,use_fifo)设定到特定逻辑电平(例如,0)时,每一所发射字节将产生中断事件。当更改所述信号时,中断频率可更改。举例来说,当将所述信号设定到相反逻辑电平(例如,1)时,中断频率可取决于水印设定。

在一些实施例中,当uart经配置为接收器时,uart可接听具有预定长度(例如,至少11个时钟宽)的分隔字元。在分隔之后,uart将立即看到mab。此间隔可被uart忽略。接着uart将看到起始代码。起始代码将始终被时控到uart的特定存储器部分(例如,接收缓冲器)中。不管fifo占用如何,起始代码将始终产生中断事件。如果将中断频率信号设定在特定逻辑电平(例如,use_fifo=1)处,那么将根据水印设定对接收中断加旗标。

在起始代码之后,uart将接收第1字节到第512个字节。并非具有针对所接收字节的512个中断,而是uart能够忽略所接收字节直到接收到所关注字节为止。此是使用uart的其它存储器部分(例如,p2及p3寄存器)完成的。一个存储器部分(例如,p2寄存器)可保存字节数目的值以起始接收程序。举例来说,在上文所列示的烟雾机的情形下,用户可将p2寄存器编程到10。可将较早所论述的照明器具编程到数目22。另一存储器部分(例如,寄存器p3)可保存待接收的字节的数目的值。在烟雾机的情形下,其它存储器部分(例如,p3)将保存值4,使得uart将接收字节10、11、12及13,总共4个字节。图2图解说明根据本发明的特定实施例的实例性对应dmx接收协议。

发射软件模型

在各种实施例中,具有自动化dmx协议的uart还可包含发射软件模型。所述发射软件模型可通过断言特定信号而设置。举例来说,针对所发射分隔,可将引脚信号(例如,p1h/l)设定到所要持续时间。典型值为13。

在一些实施例中,所述模型接着可将起始代码写入到通信总线(例如,txb[7:0])中。此可在将第一字写入到fifo中时使uart发射分隔。分隔可持续达所要持续时间(例如,达设定在‘p1h/l’上的时钟计数的数目)。uart接着可将剩余信道写入到通信总线(例如,txb[7:0])中。在起始代码之后,将接下来的信道发射出总线fifo。每当达到水印(例如,use_fifo=1)或当总线是满的时(use_fifo=0),可设定发射中断信号(例如,int_tx)。

如果剩余信道中的任一者未被写入,那么发射输出可变高且保持高的直到更多总线内容变得可用为止。此可使得发射计时器复位信号(例如,uart_timer_reset_tx)无法双态切换直到总线上的更多间隔可用为止。外部计时器(例如计时器2)可计数此双态切换之间的时间以确定dmx连接是否已超时。如果其已超时,那么软件可使发射启用信号交替(例如,通过设定txen=0且接着设定txen=1)以便重起发射状态机。此还将排清总线。在一些实施例中,uart可自动处置mab及2个停止位。

接收软件模型

在各种实施例中,具有自动化dmx协议的uart还可包含接收软件模型。所述接收软件模型可通过断言特定信号而设置。举例来说,可将第一引脚信号(例如,p2h/l)设定到所要字节计数以起始接收数据。另外,可将第二引脚信号(例如,p3h/l)设定到所要字节计数以在第一引脚信号处接收起始。在一些实施例中,uart可等待分隔出现在线路上。当分隔出现于线路上时,可使取样时钟同步化。

在一些实施例中,所接收的第一字节为起始代码且始终被加载到fifo中。不管水印/fifo设定如何,当接收到起始代码时,始终对接收水印中断信号(例如,int_rx)加旗标。从起始代码之后的字节起始,通过经匹配的第一引脚信号规定字节计数(地址)。一经匹配,便可将第二引脚信号上的值加载到fifo中。每当达到水印时,可将接收水印中断信号(例如,int_rx)设定成中断。如果接收线路闲置超过预定时间(例如,一秒),那么dmx链路可被视为无作用。如果uart不具有足够大以计数到预定时间的计时器,那么可使用外部计时器计时此预定时间。

dali协议状态机

在各种实施例中,具有自动化协议的uart可利用dali协议。在此类实施例中,可通过允许用户选择多个可用协议模式中的一者的多个位来选出所述特定协议。举例来说,特定配置可通过将“use_prot”信号设定到逻辑高来选择dali协议。dali为用于控制大型建筑物(例如办公室及工厂)中的照明的协议。其由两种模式组成:“装置”及“齿轮(gear)”。“装置”为将命令发出到照明器具的主要控制器。照明器具本身称作“齿轮”。所有位发射可在曼彻斯特编码中完成,曼彻斯特编码由硬件完成。dali导线为半双工式的;发射线路及接收线路通过ac变压器电连结在一起。

与所有其它协议不同,dali首先发射最高有效位(“msb”)。当“装置”起始发射时,uart交易可开始。装置发射在dali1.0中由2个字节组成且在dali2.0中由3个字节组成。第一个字节为由‘yaaaaaas’指定的控制字节后续接着一个或两个数据字节。出自所述装置的这些字节称为“前向帧”。图3图解说明根据本发明的特定实施例的具有设定到特定数据大小的存储器部分(例如,寄存器p1=2(字节))的实例性16位dali装置。当use_fifo=0时,每一所发射字节将产生中断事件。当use_fifo=1时,中断频率可取决于水印设定。在一些配置中,对已设定use_fifo=0的装置来说,不可连续写入三个字,因为仅一个发射总线(例如,“txb”)及一个移位器可为可用的。因此,当针对其中必须发射三个字节的dali2.0装置写入代码时,软件必须监视中断信号(例如,int_tx或txbe/txbf)及中断碰撞信号(例如,txmtif)。发射总线变得可用且在移位器变空之前,必须将第三字节写入到总线中。此将保证连续不中断地发射三个字节。

线路上的所有齿轮可接收此前向帧。齿轮中的一者可用称为‘后向帧’的单个字节以应答方式对此做出响应。dali协议要求必须在十一个波特时钟循环内开始接收此后向帧。如果接收到后向帧的起始,那么装置需要在后向帧的结束之后等待另外十一个时钟循环。在此时间之后,装置自由地发射另一前向帧。图4图解说明根据本发明的特定实施例的dali发射的实例性时序图。当use_fifo=0时,每一所接收字节将产生中断事件。如果use_fifo=1,那么将根据水印设定对接收中断加旗标。

当在dali模式中时,uart必须确保在目前字节被视为有效接收之前正确接收两个停止位。如果未正确接收任一停止位,那么在接收字节从移位器传送到rxb之前将其摒弃。uart硬件将检测停止位的所需数目,且如果未检测到所述数目那么用误差对用户做出响应。

dali装置软件模型

在各种实施例中,具有自动化dali协议的uart可包含装置软件模型。所述装置软件模型可通过断言特定信号而设置。举例来说,可将引脚信号(例如,p1h/l)设定到前向帧之间的时钟循环的所要数目。通常,此值将为十一或更大。uart接着可在yaaaaaas之后立刻发射数据(例如,在x[7:0]上)。因此,两个字节必须在发射可开始之前为可用的。uart接着可将‘yaaaaaas’标头的值写入到发射总线(例如,txb[7:0])的一部分中。由于此为到总线中的第一写入,因此其可立刻经拷贝到发射移位器中,从而空出总线上的一个位置。

uart接着可将来自发射数据(例如,在x[7:0]上)的数据字节的值写入到发射总线上(例如,到txb[7:0]上)。如果期望24位dali2.0发射,那么必须在发射移位器变空之前将第三字节写入到总线中。如果总线保持空的,那么发射线路可变高且保持高的。uart接着可断言发射计时器复位信号(例如,uart_timer_reset_tx输出)。在一些实施例中,外部计时器可用于监视超时。如果其已超时,那么软件必须双态切换发射启用信号(例如,通过设定txen=0且接着设定txen=1)以便重起发射状态机。软件还可选择排清发射总线。

在第一帧之后,uart可等待在引脚信号(例如,p1h/l)上规定的帧之间的时钟的数目。在此时间期间,发射输出保持高的。对dali来说,此值为十一,其将使uart等待达十一个时钟以等待后向帧。uart接着可将接下来信道发射出发射总线fifo。每当达到水印时,发射水印中断信号(例如,int_tx)可触发中断。在一些实施例中,uart可确保在起始每一帧的发射之前,标头-数据字节对是存在的。在一些实施例中,uart可自动产生曼彻斯特计时。

dali齿轮软件模型

在各种实施例中,具有自动化dali协议的uart可包含齿轮软件模型。所述齿轮软件模型可通过断言特定信号而设置。举例来说,可将引脚信号(例如,p1h/l)设定到前向帧之后的时钟循环的所要最大数目以起始后向帧。通常,此值必须小于十一(例如,二十二个半位的时间)。当将uart设定为齿轮模式中时,uart可开始接听所接收的前向帧。此为必要的,这是因为在发射后向帧之前必须接收前向帧。当接收到前向帧时,通过应用程序软件处理所述前向帧。将后向帧的值写入到发射总线(例如,txb[7:0])的一部分中。

当总线的所述部分并非空的时,uart可保证已经过了少于前向帧之后的所要最大数目个时钟循环。如果总线字在此时间到期之前可用,那么其作为后向帧被发射。如果已经过了多于前向帧之后的所要最大数目个时钟循环,那么移位器的内容被摒弃。字将从总线被传送到发射移位器中,但其将不被发射。针对下一后向帧,必须由用户将新总线字写入到总线上。

在第一帧之后,uart可等待另一前向帧。在此时间期间,发射输出可保持高的。当接收到下一前向帧时,uart接着可将接下来信道发射出总线fifo。每当达到水印时,发射水印中断信号(例如,int_tx)可触发中断。

lin协议状态机

在各种实施例中,具有自动化协议的uart可利用lin协议。在此类实施例中,可通过允许用户选择多个可用协议模式中的一者的多个位来选出所述特定协议。举例来说,特定配置可通过将“use_prot”信号设定为逻辑高来选择lin协议。lin为用于自动应用程序中的协议。lin网络由两种软件程序组成:“主”程序及“从”程序。每一网络仅具有一个主程序且具有一或多个从程序。主程序驻存于一个处理器uart上。网络上的所有其它uart由从软件程序驱动。从物理层视角看,一个处理器上的uart宏可通过主程序及从程序两者驱动,只要仅一个主程序存在于一个网络上即可。

在一些实施例中,当主程序通过发射分隔、后续接着定界符位、后续接着同步字段(syncfield)及受保护标识(“pid”)字节来起始发射时,uart开始。pid确定期望哪一从程序对主程序做出响应。字节间间隔在pid字节之后,字节间间隔的长度由uart的存储器部分(例如,p3寄存器)设定。在字节间间隔到期之前,从程序中的一或多者可对主程序做出响应。如果在字节间间隔内无从程序响应,那么主程序自由起始另一发射。

从软件程序可驱动主软件程序所驱动的同一uart,或可驻存于另一uart上或完全驻存于另一处理器装置上。从程序通过等待主帧而起始。如果pid匹配,那么从程序通过不作为或通过发射所需响应而做出响应。在一些实施例中,从程序可发射多达八个字节。在那些字节的结束处,从uart自动计算所发射字的校验和,且发射所述校验和作为在那些字节的结束处(例如,在第九数据字节处)的数据字节,此完成lin交易。校验和可通过一次添加额外位(例如,八个位)并将进位位添加至结果而计算。此校验和接着可与发射数据一起被发射。

当通过接收uart而接收数据时,使用相同算法计算所述校验和。将下一字节(例如,第九字节)(其为由发射器计算的校验和值)反相且添加至局部计算的校验和。举例来说,如果结果全部为‘1’,那么校验和已通过。下表1图解说明取自lin2.2a规格的实例。表1使用计算中涉及的四个数据字节的实例性值,其为0x4a、0x55、0x93、0xe5。

表1

在一些实施例中,两种校验和可为可用的:遗留及增强型。在遗留校验和中,仅数据字节d0到d7用于计算校验和。在增强型校验和中,数据d0到d7及pid均包含在内。在计算时使用哪一校验和可通过使用特定位(例如,c0en位)的软件控制。

lin发射软件模型

在各种实施例中,具有自动化lin协议的uart可包含发射软件模型。所述发射软件模型可通过断言特定信号而设置。举例来说,可将引脚信号(例如,p2h/l)设定到待发射的字节的所要数目。在一些实施例中,在主/从lin模式中,主程序可针对pid加载值(例如,在p1l[5:0]上)以供发射。从程序可将多达八个待发射字节写入到发射总线fifo中。在一些实施例中,在仅从模式中,所述值可被忽略,因为不需要pid发射。

在一些实施例中,在主从模式中,写入所述pid值可开始发射程序。所述发射程序可包含分隔,后续接着同步字节,后续接着所述经加载值(例如,来自p1l[5:0])的内容。在所述内容之后,pid值可立即通过硬件计算并被发射。在此之后,uart可检验发射总线占用。如果总线并非空的,那么其意味着从程序驻存于意欲将字节发射出去的uart上。总线中的字节被发射出去直到所述若干个发射字节存储于引脚信号(例如,p2h)上为止。如果总线为空的,那么发射输出(例如,txs)可保持高的直到写入总线或写入经加载值的内容(其中的先发生者)为止。如果写入经加载值(例如,p1l),那么假定主程序正起始新帧,校验和/奇偶引擎被复位且整个分隔-同步发射程序再次起始。

在一些实施例中,在仅从模式中,接收同步‘装备(arm)’uart以发射字节。写入总线起始发射程序。如果在接收同步之前写入发射总线,那么发射保持关闭直到同步完成为止。如果总线变空,那么用非作用输出将接下来字节(如果可用)发射出发射总线(例如,txb[7:0])fifo。重复此操作直到uart发射来自引脚信号(例如,p2h/l)的若干个字节为止。在一些实施例中,每当达到水印时,发射水印中断信号(例如,int_tx)可触发中断。在来自引脚信号(例如,p2h/l数据字)的若干个字节的结束处,uart可计算并发射校验和位(例如,校验和0(位c0en=1)或校验和1(位c0en=1))。在一些实施例中,在主/从模式中,为起始新发射,必须在最后数据被发射出去之后写入经加载值(例如,p1l)的内容。由于写入经加载值(例如,p1l)触发新包,因此在从发射中间写入经加载值将被忽略。

2.14.2lin仅接收(仅从)软件模型

在各种实施例中,具有自动化lin协议的uart可包含用于特定仅从模式的接收软件模型。所述发射软件模型可通过断言特定信号而设置。举例来说,可将引脚信号(例如,p3h/l)设定到待接收的字节的所要数目。在一些实施例中,uart可等待分隔出现在线路上。当分隔出现在线路上时,使取样时钟与同步帧同步。对接收中断碰撞信号(例如,rxbif)加旗标,使校验和及奇偶计算器复位。在一些实施例中,所接收的第一字节为pid。不管水印/fifo设定如何,当接收到pid时,始终对接收中断(例如,int_rx)加旗标。uart可自动计算并验证其它值(例如,p0及p1)。如果其有出入,那么可对碰撞中断信号(例如,perif)加旗标。接收传入字节直到接收到来自引脚信号(例如,p3h/l)的若干个字节为止。

在一些实施例中,必须在接收包中的最后字节的起始位之前,将特定位(例如,c0en)设定到正确值。每当达到水印时,接收水印中断信号(例如,int_rx)将触发中断。当接收到所要数目个数据字节(例如,来自p3h/l)时,uart可自动计算校验和(例如,校验和0或1)且与所接收的校验和进行xor操作以得到所有1。可将局部计算的校验和存储于存储器部分(例如,uxrxchk寄存器)中。可将从接收输入接收的校验和仿佛其为数据一般存储于接收总线中。

图5图解说明根据本发明的特定实施例的lin主/从模式的实例性时序图。图6图解说明根据本发明的特定实施例的lin主/从模式的继续实例性时序图。图7图解说明根据本发明的特定实施例的lin仅从模式的实例性时序图。图8图解说明根据本发明的特定实施例的lin仅从模式的继续实例性时序图。

异步地址检测模式

在一些实施例中,uart可在异步地址检测模式中操作。所述异步地址检测模式可用于其中存在连接到一个总线的多个接收器的模式。当发射器在此总线上发射时,获知所述发射器是否经寻址对每一接收器来说为有用的。此允许每一接收uart消除到其cpu的不必要中断。

在一些实施例中,每一交易起始于发射器发射起始位,其中在起始位之前存在或不存在分隔。此起始位后续接着数据字。如果数据具有设定到0的第九位,那么所有uart将视此为数据。当发射器发射具有设定到1的第九位的字节时,所有接收uart视此为地址。uart接着可试图将数据与编程到存储器部分(例如,p2)中的地址匹配,对所述地址与第二存储器部分(例如,寄存器p3)中的掩码进行了“与”运算。如果存在匹配,那么将所述数据时控到接收缓冲器中。当use_fifo=0时,每一所发射及所接收字节将产生中断事件。当use_fifo=1时,中断频率取决于水印设定。

地址检测tx软件模型

在各种实施例中,uart可包含地址检测发射软件模型。在一些实施例中,此模型可通过设定mode信号而设置。举例来说,mode可经设定以选出具有地址检测(‘0101’)的异步9位模式。在一些实施例中,uart可引发分隔发射。举例来说,uart可将逻辑1写入到sendb位。在写入到sendb之后立即写入到存储器部分(例如,p1寄存器)中将致使分隔被发射。分隔发射一经完成,sendb位便可被自动清除。此可后续接着待发射的存储器部分(例如,p1)的8位值。第九位可自动发射为1。此为地址发射。在写入到sendb之后立即写入到发射总线寄存器中将致使分隔被发射。分隔发射一经完成,sendb位便将被自动清除。此后续接着待发射的发射总线值的8位值,其中第九位自动发射为0。此为数据发射。在分隔之后立刻发射何者的决定取决于存储器部分(例如,p1寄存器)是否被写入。如果存储器部分(例如,p1)及发射总线两者均被写入,那么发射分隔、后续接着存储器部分(例如,p1)的内容、后续接着发射总线的任何内容。

如果分隔发射是非所要的,那么可忽略sendb位或将其写成0。向存储器部分(例如,p1寄存器)写入可致使存储器部分(例如,p1)的内容的8位值被发射,其中第九位自动发射为1。此为地址发射。向发射总线寄存器写入将致使发射总线的8位值被发射,其中第九位自动发射为0。此为数据发射。首先发射何者的决定取决于存储器部分(例如,p1寄存器)是否被写入。如果存储器部分(例如,p1)及发射总线两者均被写入,那么存储器部分(例如,p1)的内容被发射,后续接着发射总线的任何内容。

地址检测rx软件

在各种实施例中,uart可包含地址检测接收软件模型。在一些实施例中,此模型可通过设定mode信号而设置。举例来说,mode可经设定以选出具有地址检测(‘0101’)的异步9位模式。在一些实施例中,uart可设置具有待匹配地址的第一存储器部分(例如,p2)。在一些实施例中,第二存储器部分(例如,p3)可经设定为地址掩码。为接收所有地址,(举例来说)将‘00000000’写入到p3。(所接收地址xorp2)andp3=00000000意味着‘地址匹配’。

当出现地址匹配时,将原始所接收地址加载到所接收fifo中。接着将后续任何数据(具有设定到0的第九位的8位字节)加载到接收fifo中。此程序继续直到接收到与第一存储器部分(例如,p2)的内容不匹配的另一地址(例如,具有设定到1的第九位的8位字节)为止。

异步曼彻斯特模式

在各种实施例中,具有自动化协议的uart可利用异步曼彻斯特协议。在此类实施例中,可通过允许用户选择多个可用协议模式中的一者的多个位来选出所述特定协议。举例来说,特定配置可通过将‘use_prot’设定到逻辑高来选择曼彻斯特协议。此模式为通用uart连接模式,惟所有位为通过硬件进行曼彻斯特编码除外。用于dali模式中的同一硬件在此可再次使用。

在一些实施例中,用户可在发射方向上将发射字写入到发射总线(例如,txb<7:0>)中。接着可发射低到高起始位、后续接着总线的内容。在接收方向上,在接收到每一字时,将其加载到接收总线(例如,rxb<7:0>)中且依据传入的曼彻斯特来解码。当use_fifo=0时,每一所发射及所接收字节将产生中断事件。当use_fifo=1时,中断频率取决于水印设定。

图9图解说明根据本发明的特定实施例的用于发射的实例性曼彻斯特解码方案。图10图解说明根据本发明的特定实施例的用于接收的实例性曼彻斯特解码方案。图11图解说明根据本发明的特定实施例的用于接收的继续实例性曼彻斯特解码方案。图12图解说明根据本发明的特定实施例的用于接收的另一继续实例性曼彻斯特解码方案。图13图解说明根据本发明的特定实施例的用于接收的另一实例性曼彻斯特解码方案。在一些实施例中,接收数据的时钟速率可不同于发射数据的时钟速率;因此维持单独寄存器以计数出自brg的时钟可为必要的。在这些时序图中,此寄存器可称为brg-rx。此为内部寄存器且不可用于在sfr间隔中读取或写入。

在一些实施例中,uart可使用硬件解码曼彻斯特编码。不必调用软件来处置曼彻斯特解码方案的高到低的转变。而是,uart仅接收经恢复数据位。此允许无限(连续地)数目个字节的曼彻斯特发射,其中字节之间不需要分隔。

tx软件模型

在各种实施例中,具有自动化协议的uart可利用发射软件模型。在此类实施例中,模型可开始于uart将待发射的字写入到发射总线中。此可致使起始被输出,其为低到高的转变,后续接着一个字节数据。只要在移位器变空之前将发射字写入到发射总线中,位即连续被发射而无起始位在其之间。此允许在起始位之后连续发射无限数目个字节。当移位器变空时,发射线路变得非作用。当在发射总线变空之后接着将新字写入到所述发射总线中时,uart将发射新起始位、后续接着发射总线字,且所述循环重复。

rx软件模型

在各种实施例中,具有自动化协议的uart可利用接收软件模型。在此类实施例中,模型可开始于非作用(1),后续接着曼彻斯特‘1’(低到高)。曼彻斯特半位时间源自第一低转变。任何所接收的数据是依据曼彻斯特解码且加载到接收fifo中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1