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

著录项
  • CN201711138945.X
  • 20171116
  • CN109799737A
  • 20190524
  • 长沙闽壹湖电子科技有限责任公司
  • G05B19/042
  • G05B19/042

  • 湖南省长沙市天心区木莲西路187号天天向上家园第1、5、6栋1323房
  • 湖南(43)
摘要
本发明涉及一种基于CAN总线的主从机通信系统设计,本发明在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯;本发明主要由PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250t等部分组成;微处理器80C51负责SJA1000的初始化,本发明通过控制SJA1000实现数据的发送和接收等通信任务。
权利要求

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

2.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明由液位变送器产生一个输入信号给AD转换器ADC0804进行信号转换送入CPU,进行数据处理,然后经由CAN总线控制后由CPU输出信号给DA转换器DAC0832,然后输出信号作用于控制阀门,直接作用于容器装置,形成一个完整的循环控制系统。

3.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明选用AT89C51单片机。

4.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明选用CYB31型液位变送器来进行液位的测量。

5.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明中采集模拟信号是使用的转换器是ADC0804。

6.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明中CAN总线控制器芯片采用MCP2510。

7.根据权利要求1所述的一种基于CAN总线的主从机通信系统设计,其特征在于,本发明选择TLP113光耦合器。

说明书

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

技术领域

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

背景技术

CAN 即控制器局域网络, 控制器局部网(CAN-CONTROLLER AREA NETWORK)是BOSCH公司领先推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在我国迅速普及推广。由于CAN为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991年 9月 PHILIPS SEMICONDUCTORS制订并发布了CAN技术规范(VERSION 2.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所示。

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

本文发布于:2024-09-24 04:17:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/72665.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议