一种基于CAN总线的主从机通信系统设计的制作方法

文档序号:17759900发布日期:2019-05-24 21:35阅读:651来源:国知局
一种基于CAN总线的主从机通信系统设计的制作方法

本发明专利涉及电子设计技术领域,尤其涉及一种基于can总线的主从机通信系统设计。



背景技术:

can即控制器局域网络,控制器局部网(can-controllerareanetwork)是bosch公司领先推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在我国迅速普及推广。由于can为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991年9月philipssemiconductors制订并发布了can技术规范(version2.0)。该技术规范包括a和b两部分。2.0a给出了曾在can技术规范版本1.2中定义的can报文格式,能提供11位地址;而2.0b给出了标准的和扩展的两种报文格式,提供29位地址。此后,1993年11月iso正式颁布了道路交通运载工具-数字信息交换-高速通信控制器局部网(can)国际标准(iso11898),为控制器局部网标准化、规范化推广铺平了道路。

发明专利内容

本发明专利涉及一种基于can总线的主从机通信系统设计,本发明在单片机中实现can总线的接口,通过can总线,实现两个模块之间的数据通讯;本发明主要由pc机、微控制器80c51、独立can通信控制器sja1000和can总线收发器pca82c250t等部分组成;微处理器80c51负责sja1000的初始化,本发明通过控制sja1000实现数据的发送和接收等通信任务。

附图说明

图1:系统结构框图。

图2:时钟电路图。

图3:按键复位电路图。

图4:电源电路图。

图5:sja1000与单片机的接口电路图。

图6:max232芯片引脚图。

图7:6n137引脚图。

图8:主程序流程图。

图9:初始化子程序流程图。

图10:发送子程序流程图。

图11:接收子程序流程图。

具体实施方式

为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明专利,并不用于限定本发明专利。

本发明专利涉及一种基于can总线的主从机通信系统设计,本发明在单片机中实现can总线的接口,通过can总线,实现两个模块之间的数据通讯;本发明主要由pc机、微控制器80c51、独立can通信控制器sja1000和can总线收发器pca82c250t等部分组成;微处理器80c51负责sja1000的初始化,本发明通过控制sja1000实现数据的发送和接收等通信任务。

进一步的,本发明采用at89c51单片机,at89c51与pc机串行通信,设置sja1000工作于intel模式,由pc机发送的数据写入sja1000并通过can收发器发送。接收数据是通过中断进行的,can总线传输过来的数据经can接口芯片pca82c250接收并写入sja1000的rxfifo,然后通过中断提请cpu读取,读取的数据上传送给pc机。系统结构框图如图1所示。

进一步的,atmel公司生产的at89c51单片机采用高性能的静态80c51设计,并采用先进工艺制造,还带有非易失性flash程序存储器。

进一步的,本发明的时钟电路用于产生单片机工作所需的时钟信号。时钟信号可以有两种方式产生:内部时钟方式和外部时钟方式。本发明选用内部时钟方式如图2所示。

进一步的,复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此复位电路对单片机非常重要。复位电路一般分为上电复位,按键复位等。本发明所选用的复位电路为按键复位如图3所示。

进一步的,本发明采用lm1572芯片设计电源电路。lm1572是一个频率为500khz降压型开关脉宽调制稳压电路,可驱动1.5a的负载,占用较小的pcb空间,有极好的电流响应特性和较宽的工作电压范围,是美国国半公司采用先进的模拟双极形cmos与dmos处理工艺制造,能够较高的开关频率下提供较高的效率。内置150mω场效应功率管可在较小的封装中提供较大的功率。其输出电压可固定5v和3.3v或可调输出。电路图如图4所示。

进一步的,can控制器与外部cpu的接口是通过控制器接口逻辑(cil)实现的,80c51的cpu通过将地址总线(ab)和数据总线(db)连接到cil上来完成与can控制器之间的信息交换,不需要专门的控制总线(cb),cpu与pca82c250之间的状态、控制和命令信号的交换在can控制器中完成。sja1000与单片机的接口电路如图5所示。

进一步的,max232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电。它的内部结构可分为三个部分;第一部分是电荷泵电路,由1、2、3、4、5、6脚和4只电容构成,功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道,由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道;8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道;ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑dp9插头;dp9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。第三部分是供电。15脚dng、16脚vcc(+5v)。max232芯片引脚如图6所示。

进一步的,高速光电耦合器6n137由磷砷化镓发光二极管和光敏集成检测电路组成。通过光敏二极管接收信号并经内部高增益线性放大器把信号放大后,由集电极开路门输出。6n137引脚图如图7所示。该光电器件高、低电平传输延迟时间短,典型值仅为45ns,已接近ttl电路传输延迟时间的水平。具有10mbps的高速性能,因而在传输速度上完全能够满足隔离总线的要求。内部噪声防护装置提供了典型10kv/μs的共模抑制功能。除此之外,6n137还具有一个控制端,通过对该端的控制,可使光耦输出端呈现高阻状态。

进一步的,pca82c250是can协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达1mbps)应用而设计。此器件对总线提供差动发送能力,对can控制器提供差动接收能力,与iso11898标准完全兼容。pca82c250芯片由接收器、驱动器、基准电压产生电路、工作模式选择电路及保护电路等组成。pca82c250内部的限流电路可以防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160℃时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。pca82c50芯片的其他部分将继续工作。当总线短路时,热保护十分重要。

进一步的,can总线节点的软件设计主要包括三大部分:can节点初始化、报文发送和报文接收。程序开始运行后,先调用初始化子程序,分别对两个can模块中的sja1000进行初始化,然后把要发送的数据写入cpu的存储器中,然后循环调用发送数据子程序和接收数据子程序。具体流程如图8所示。

进一步的,sja1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(amr)和接收代码寄存器(acr)的设置、波特率参数设置和中断允许寄存器(ier)的设置等。在完成sja1000的初始化设置以后,sja1000就可以回到工作状态,进行正常的通信任务。初始化子程序先设置mod选择复位模式,然后分别设置cdr选择工作模式;设置ier选择中断类型;设置btr0、btr1设定传输速率;设置ocr选择输出模式;设置acr、amr设定接收数据类型;rbsa、txerr、ecc均清零,最后设置mod进入工作模式。具体流程如图9所示。

进一步的,发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入sja1000发送缓存区中,然后启动sja1000发送即可。发送数据子程序先把三个控制字节写入发送缓冲区,然后把等待发送的数据也写入发送缓冲区,最后设置cmr,发出发送请求、启动sja1000发送数据。具体流程如图10所示。

进一步的,接收子程序负责节点报文的接收以及其它情况处理。接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理。sja1000报文的接收主要有两种方式:中断接收方式和查询接收方式,两种接收方式编程的思路基本相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。接收数据子程序首先要读sr和ir,判断工作状态及中断类型并做相应处理,若rxfifo有数据,应判断帧类型并做相应处理,若数据正确则送至cpu的内部存储器。具体流程如图11所示。

以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保护范围之内。

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