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

[09-12 18:12:39]   来源:http://www.88dzw.com  单片机学习   阅读:8469

文章摘要: 模拟量获取模块 PIC16F874单片机A口的RA0、RA1、RA3用于模拟量输入。嵌入式CAN智能节点的模拟量获取模块的主要功能是将需要采集的电流信号通过电流互感器转换为电压信号,将需要采集的温度信号通过温度传感器AD590转换为电压信号。 开关量输入/输出模块 嵌入式CAN智能节点通过I/O扩展提供了4路开关量输入和7路开关量输出。开关量输入用于电路的保护、故障报警、状态检测等,只要被控制对象拥有相应的检测元件,接入相应的接口即可。开关量输出用于驱动继电器,可以根据负载的大小确定是否需要连接接触器控制电机、阀门、泵等电器执行元件。根据用户的需求,此部分电路可

基于PIC单片机的嵌入式CAN智能节点及其与PC的通信,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
    模拟量获取模块
     PIC16F874单片机A口的RA0、RA1、RA3用于模拟量输入。嵌入式CAN智能节点的模拟量获取模块的主要功能是将需要采集的电流信号通过电流互感器转换为电压信号,将需要采集的温度信号通过温度传感器AD590转换为电压信号。
     开关量输入/输出模块
     嵌入式CAN智能节点通过I/O扩展提供了4路开关量输入和7路开关量输出。开关量输入用于电路的保护、故障报警、状态检测等,只要被控制对象拥有相应的检测元件,接入相应的接口即可。开关量输出用于驱动继电器,可以根据负载的大小确定是否需要连接接触器控制电机、阀门、泵等电器执行元件。根据用户的需求,此部分电路可以做相应的变化。
     软件设计
     嵌入式CAN智能节点的软件采用汇编语言编写,主要完成对PIC16F874(I/O口、定时器等)、SPI接口(串行口状态寄存器SSPSTAT、串行口控制寄存器SSPCON等)、显示模块、I/O扩展芯片8255和CAN控制器MCP2510(位定时配置寄存器、CAN信息接收过滤和屏蔽控制寄存器、接收发送缓冲区控制寄存器等)的初始化,设定发送、接收标识码(ID),读取A/D转换的数值,设置嵌入式CAN智能节点PWM波输出的脉冲宽度,处理、显示并发送采集的数据,接收、处理并显示由总线传来的数据等工作。
     初始化系统
     程序需要对PIC16F874单片机、显示模块、I/O扩展芯片8255和CAN控制器MCP2510进行初始化。其中对MCP2510初始化是非常重要的,主要包括设置数据传输的波特率,将标识码和屏蔽字写入CAN信息接收过滤和屏蔽控制寄存器。对PIC16F874进行初始化时,要特别注意定时器TMR2的初始化。
      设定发送、接收标识码
     PIC16F874单片机C口的RC0、RC1、RC6、RC7引脚连接了一个拨码开关。程序通过读取这四个引脚的状态为每个嵌入式CAN智能节点分配了发送、接收标识码的初始值。当网络中智能节点数目较多时,这种方法可以方便程序的编写。
     读取A/D转换的数值
     PIC16F874的A口和E口可以作为模拟量输入口,共有8个输入通道。A/D转换的结果存储于单片机的ADRES寄存器。程序首先设置单片机的A/D控制寄存器ADCON1的bit3~bit0,选择每个通道的输入/输出类型并设置参考电压为5V,然后设置单片机的 A/D控制寄存器ADCON0的bit5~bit3选择通道,设置bit0打开ADC,设置bit2启动ADC,最后从单片机的A/D转换结果寄存器ADRES中读取A/D转换的数值。
     设置PWM波输出的脉冲宽度
      PIC16F874的CCP1引脚用于PWM波输出。程序首先设置单片机的CCP1模块控制寄存器CCP1CON的bit3~bit0,定义工作方式为PWM,然后用从PC端接收到的用于设置嵌入式CAN智能节点PWM波输出的脉冲宽度的数据设置单片机的CCP1控制寄存器CCP1CON的bit5~bit4和CCPR1L寄存器,即实现了PC端对嵌入式CAN智能节点PWM波输出的脉冲宽度的控制。
    发送数据
    程序为每个需要传送到PC端的信号(电压、电流、温度、嵌入式CAN智能节点PWM波输出的脉冲宽度)都分配了一个标识码。发送数据时,首先向MCP2510发送写指令,再将标识码、帧格式和数据长度的定义、需要发送的数据依次写入      MCP2510相应的寄存器中。
     接收数据
     程序读取CAN控制器MCP2510的中断标志寄存器的值,判断接收缓冲区中是否有数据,当接收缓冲区中有数据时向MCP2510发送读指令,依次将标识码、帧格式和数据长度、接收到的数据从MCP2510相应的寄存器中读出。
     处理和显示数据
     A/D转换的数值经过程序处理后得到信号的真实值并送显示模块进行显示,主要包括数值和汉字、英文字符的显示。同时完成了嵌入式CAN智能节点PWM波输出的脉冲宽度和从PC端接收到的数据的显示。
     PC端功能的实现

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行