一种具有发送FIFO的CAN总线控制器电路的制作方法

文档序号:11233585阅读:1504来源:国知局
一种具有发送FIFO的CAN总线控制器电路的制造方法与工艺

本发明属于半导体集成电路中总线转换技术领域,尤其涉及can总线协议转换专用集成电路设计方面。



背景技术:

can(controllerareanetwork)总线是bosch公司为现代工业应用推出的一种多主机局域网,属于现场总线的范畴。随着计算机技术、通信技术、网络技术及智能传感技术的发展,can总线技术在工业控制领域起着越来越重要的作用。然而,传统的can总线只有接收fifo,而没有发送fifo,发送缓冲器是通过写寄存器实现的,即发送数据时往相应的can总线地址中写入发送帧信息、识别码及发送数据,can总线内部通过寄存器地址读取相应的值,发送至can总线tx端口。例如philips公司的sja1000电路就是如此。但是这种can总线电路有一个弊端,由于一帧数据最多含有1个帧信息、4个发送识别码、8个发送数据,即一次最多发送13个can消息,如果要发送多帧数据,则需等上一帧13个数据发送完成后,再写相应的寄存器地址,才能继续发送,影响了发送效率。

目前,研究can总线的专利有很多,比如专利号为200710070565.7的《一种基于can总线的信号实时性处理方法》、专利号为201310610751.0的《can总线控制系统》、专利号为201510453826.8的《can总线电路》、专利号为201510688635.x的《基于can总线数据存储的方法及其系统》等,又如曾照福等编写的论文《采用fifo的can总线接口卡的设计》、王子健编写的论文《基于fpgafifo处理的多路can总线高速通信设计》等,这些专利及论文涉及到各种can总线电路,但都为标准can总线接收fifo。



技术实现要素:

本发明所要解决的技术问题是提供一种具有发送fifo的can总线控制器电路,在can总线电路中加入128字节的发送fifo,用户可以一次直接写入多帧can总线数据,电路内部将写入数据存入发送fifo中,通过tx端口一帧一帧发送至can总线,通过这种方法可以大大提升发送效率,方便用户使用。

为解决上述技术问题,本发明提供一种具有发送fifo的can总线控制器电路,其特征是,主要包括以下模块:

接口管理单元:进行can初始化管理,通过对外部输入信号进行控制,根据相应的地址、数据、控制信号配置can内部寄存器。

发送fifo:存储外部写入的发送帧信息、识别码和发送数据;

指针存储fifo:存储发送数据的个数;

发送控制逻辑单元:发送控制逻辑单元对发送fifo与指针存储fifo的地址、数据、指针信号进行控制管理;

发送缓冲器:根据发送启动信号将发送fifo中的发送帧信息、识别码及发送数据取出,并分别对应送入发送帧信息、识别码及发送数据对应的寄存器地址;

发送计数器:根据读写控制信号进行有效的地址加减,并且还根据fifo计数的多少产生空满标志信号;

can总线控制器:can总线控制器为标准的can总线控制器。

所述can总线控制器包括:

内部接口管理单元:接收来自外部控制器的命令,控制can寄存器的寻址,向外部控制器提供中断信息和状态信息;

发送逻辑单元:是外部控制器和位流处理器之间的接口,用于接收发送fifo控制器传入的发送消息,将can信息发送到can总线上;

接收fifo:是验收滤波器和外部控制器之间的接口,用于储存从can总线上接收的信息;可被外部控制器访问,外部控制器在此接收fifo的支持下可以在处理信息的时候接收其它信息。

验收滤波器:把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息;

位流处理器:在发送逻辑单元、接收fifo和can总线之间控制数据流;

位时序逻辑:监视串口的can总线和处理与can总线有关的位时序。

发送fifo的深度为128字节。

指针存储fifo的深度为64字节。

发送控制逻辑单元根据外部写入的发送数据与数据长度分别存入发送fifo中,并且每个数据按照先入先出的原则进行控制。

发送控制逻辑单元根据发送请求信号,产生发送启动命令,当一帧can总线数据发送完成后,也产生发送完成标志。

当发送can总线数据时,往对应的发送缓冲器写入帧信息、识别码、发送数据,根据写入的数据,将帧信息、识别码、发送数据存入发送fifo中,并且每个数据按照地址进行累加,即每个地址存入一个数据;每一帧can总线发送数据的数据长度代码存入指针存储fifo中,每次发送数据时根据指针存储fifo中的值从发送fifo中读出对应长度的数据字节进行发送。

当发送控制逻辑单元检测到发送请求信号有效后,产生发送启动命令,can总线控制器根据发送启动命令将第一次写入发送fifo的数据取出并发送至其发送端tx端口,当发送端tx发送数据完成后,产生发送完成标志,can总线控制器检测到发送完成标志,从发送fifo中读出第二次写入发送fifo中的数据,并继续从其发送端tx端口发送,发送完成产生发送完成标志,以此类推。

当接收can总线数据时,接收端rx端口有can总线输入,通过can总线控制器内部的验收滤波器、位时序逻辑和位流处理器,将接收到的can报文进行解码处理后存入接收fifo中。

位流处理器还在can总线上执行错误检测仲裁填充和错误处理。

本发明的优点是内部含有128字节的发送fifo,使用时可以连续的写入发送can总线信息,如果每一帧发送数据都有8个数据字节,加上帧信息与识别码,一共有13个数据字节,则写发送can总线数据时,一次可最多写入9帧发送信息,而普通的can总线控制器则需在一帧can总线数据发送完成后,才可以写入第二帧can总线数据。本发明在发送can总线数据时,大大提高了发送效率,使用也十分方便。

附图说明

图1是本发明的具有发送fifo的can总线控制器电路图;

图2是图1中的can总线控制器电路图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图1所示,本发明的具有发送fifo的can总线控制器电路,主要包括以下模块:

(1)接口管理单元

接口管理单元主要进行can初始化管理,通过对外部输入信号进行控制,根据相应的地址、数据、控制信号进行管理,配置can内部寄存器。

(2)发送fifo

发送fifo主要存储外部写入的发送帧信息、识别码、发送数据,发送fifo的深度为128字节。

(3)指针存储fifo

指针存储fifo主要存储发送数据的个数,即数据长度代码dlc,指针存储fifo的深度为64字节。

(4)发送控制逻辑单元

发送控制逻辑单元对电路内部发送fifo与指针存储fifo的地址、数据、指针信号进行控制管理,根据外部写入的发送数据与数据长度分别存入内部fifo中,并且每个数据按照先入先出的原则进行控制。另外还根据发送请求信号,产生发送启动命令,当一帧can总线数据发送完成后,也产生发送完成标志。

(5)发送缓冲器

发送缓冲器主要根据发送启动信号将发送fifo中的发送帧信息、识别码及发送数据取出,并分别送入发送帧信息、识别码及发送数据对应的寄存器地址。

(6)发送计数器

发送计数器主要进行读、写地址控制,根据读写控制信号进行有效的地址加减,并且还根据发送fifo计数的多少产生空满标志信号。

(7)can总线控制器,如图2所示

can总线控制器为标准的can总线控制器,功能类似于philips公司的sja1000电路。

包括以下模块:

接口管理单元解释(根据外部控制器输入的指令,提供can总线内部的状态信息,比如说通过外部端口addr发送读状态寄存器,可以读出发送与接收是否完成等状态信息)来自外部控制器的命令,控制can寄存器的寻址,向外部控制器提供中断信息和状态信息。

发送逻辑单元主要接收发送fifo控制器传入的发送消息,它是外部控制器和位流处理器之间的接口,能够将can信息发送到can总线上。

接收fifo是验收滤波器和外部控制器之间的接口,用来储存从can总线上接收的帧信息与数据等信息。接收fifo作为接收数据的一个窗口,可被外部控制器访问,外部控制器在此接收fifo的支持下可以在处理信息的时候接收其它信息。

验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息,当接收的识别码与预定义的值一致时,接收数据;不一致即不接收数据)。

位流处理器在发送逻辑单元、接收fifo和can总线之间控制数据流。它还在can总线上执行错误检测仲裁填充和错误处理。

位时序逻辑监视串口的can总线和处理与can总线有关的位时序。它在信息开头“弱势支配”的总线传输时同步can总线位流,接收信息时再次同步下一次传送,位时序逻辑还提供了可编程的时间段来补偿传播延迟时间、相位转换和定义采样点和一位时间内的采样次数。

本发明的具有发送fifo的can总线控制器电路,电路外部接口与标准can总线控制电路一致,包括时钟端口clk、复位端口rst、地址总线addr、写数据总线wdata、读数据总线rdata、读写控制信号wr/rd、中断信号int、以及发送端tx和接收端rx等。can总线控制器的接口中断信号int、以及发送端tx和接收端rx即作为具有发送fifo的can总线控制器电路的接口。

当发送can总线数据时,通过地址总线addr、写数据总线wdata、读写控制信号wr/rd进行控制,往对应的发送缓冲器写入帧信息、识别码、发送数据,此时,如果需要发送多帧can总线数据,则可以连续写入帧信息、识别码、发送数据,而不必等待上一帧数据发送完成后再进行写数据。电路根据写入的数据,将帧信息、识别码、发送数据存入内部发送fifo中,并且每个数据按照地址进行累加,即每个地址存入一个数据。由于每一帧can总线发送数据的数据长度代码dlc不一致,数据字节长度最小为0,最大为8,在内部设置一个64字节的指针存储fifo,将每一帧的数据长度代码dlc存入指针存储fifo中,每次发送数据时根据指针存储fifo中的值从发送fifo中读出对应长度的数据字节进行发送。

当检测到发送请求有效后,产生发送启动命令,can总线控制器根据发送启动命令将第一次写入发送fifo的数据取出并发送至发送端tx端口,当发送端tx发送数据完成后,产生发送完成标志,can总线控制器检测到发送完成标志,从发送fifo中读出第二次写入发送fifo中的数据,并继续从发送端tx端口发送,发送完成产生发送完成标志,以此类推。

当接收can总线数据时,接收端rx端口有can总线输入,通过can总线控制器内部的验收滤波器、位时序逻辑和位流处理器,将接收到的can报文进行解码处理后存入can总线控制器内部接收fifo中,并可通过地址addr、读数据总线rdata、读写控制信号wr/rd读出接收fifo中的数据。

can总线控制器电路内部设置了fifo空满信号标志(发送fifo中设置了空满标志,接收fifo中也设置了空满标志),当写入发送/接收fifo中的数据超过了fifo的存储深度,则会产生fifo满标志,并且中断信号int有效。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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