×
嵌入式开发 > 详情

基于PIC单片机的嵌入式CAN智能节点及其与PC通信

发布时间:2020-07-06 发布时间:
|

本文介绍了基于pic16f874单片机的嵌入式can智能节点的软硬件设计,同时应用pcl-841 can接口卡使嵌入式can智能节点与pc之间实现了通信,完成了电压、电流、温度等信号的实时采集、可靠传输和实时显示,实现了pc端对嵌入式can智能节点pwm波输出的脉冲宽度的控制。

引言

can总线是一种串行数据通信协议,其通信接口中集成了can协议的物理层和数据链路层功能,可完成对数据的成帧处理。can协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块编码,采用这种方法可使网络内节点个数在理论上不受限制,还可使不同的节点同时收到相同的数据。
本文介绍了嵌入式can智能节点,并且应用pc和嵌入式can智能节点组成了can通信系统,完成了电压、电流、温度等信号的实时采集、可靠传输和实时显示,实现了pc端对嵌入式can智能节点pwm波输出的脉冲宽度的控制。

基于pic单片机的嵌入式can智能节点的设计

嵌入式can智能节点以pic16f874单片机作为嵌入式微控制器,以mcp2510作为can控制器,以pca82c250作为can收发器,具有现场/远程控制功能。根据用户的需求,嵌入式can智能节点通过连接相应的传感器可以完成多种信号的实时采集、可靠传输和实时显示,pwm波输出可以用于控制相应的负载。嵌入式can智能节点通过外接电路可以实现电路保护、现场组态、自动调节、故障诊断报警、状态检测等功能,完成对电机、阀门、泵等电器的驱动和智能控制。

硬件设计

microchip公司的单片机pic16f874采用risc指令系统,哈佛总线结构,低功耗,高速度。内部集成了adc、串行外围接口(spi)和flash程序存储器等,具有pwm输出、lcd驱动等功能。pic16f874通过spi接口可以实现与can控制器mcp2510的无缝连接。pic16f874的i/o资源丰富,共有a、b、c、d、e五个i/o口,每个i/o口除了基本用途外还有一些特殊功能。

can通信模块

嵌入式can智能节点的can通信模块由can控制器mcp2510和can收发器pca82c250组成。mcp2510可以完成can总线的物理层和数据链路层的所有功能,支持高速spi接口(最高数据传输速率可以达到5mb/s),支持can2.0a/can2.0b协议。can收发器pca82c250是can控制器与物理总线之间的接口,对物理总线提供差动发送能力,对can控制器提供差动接收能力,同时它可以增大通信距离,提高嵌入式can智能节点的抗干扰能力。

pic16f874通过spi与can控制器mcp2510连接,其串行数据输入(sdi)脚与mcp2510的so脚相连,其串行数据输出(sdo)脚与mcp2510的si脚相连,其串行时钟(sck)脚与mcp2510的sck脚相连。mcp2510的复位信号、片选信号由单片机a口的ra5、ra2提供,mcp2510的中断信号、接收缓冲区满中断信号输出到单片机b口的rb0、rb5。

通过设置pic16f874的spi接口状态寄存器和控制寄存器使spi接口工作于主动方式。pic16f874与mcp2510进行通信时的时序是非常重要的。发送数据时,先发送写指令,再发送寄存器地址,最后发送数据。当mcp2510接收到由总线传来的数据时会产生中断,单片机响应中断,读取数据时先发送读指令,再发送寄存器地址,数据会自动写入单片机spi接口的缓冲器中。

显示模块

嵌入式can智能节点采用ocmj4χ8显示模块,该显示模块可以显示汉字、ascii码等,其所有的设置初始化工作都可以在上电时自动完成。
ocmj4χ8显示模块的数据线db0~db7与单片机的d口相连,请求(req)脚、应答(busy)脚分别与单片机b口的rb4、e口的re2相连。显示模块的rt1、rt2引脚外接可调电阻用于调节lcd的亮度。

显示模块接口协议为请求/应答(req/busy)握手方式。busy为高电平表示显示模块忙;当busy为低电平时表示显示模块空闲,等待接收命令。单片机先向显示模块发送命令或数据,然后发送请求信号,请求显示模块进行处理,显示模块置busy为高电平,对命令或数据进行处理,处理结束后置busy为低电平。

模拟量获取模块

pic16f874单片机a口的ra0、ra1、ra3用于模拟量输入。嵌入式can智能节点的模拟量获取模块的主要功能是将需要采集的电流信号通过电流互感器转换为电压信号,将需要采集的温度信号通过温度传感器ad590转换为电压信号。

开关量输入/输出模块

嵌入式can智能节点通过i/o扩展提供了4路开关量输入和7路开关量输出。开关量输入用于电路的保护、故障报警、状态检测等,只要被控制对象拥有相应的检测元件,接入相应的接口即可。开关量输出用于驱动继电器,可以根据负载的大小确定是否需要连接接触器控制电机、阀门、泵等电器执行元件。根据用户的需求,此部分电路可以做相应的变化。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PLC控制步进电机方法