微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式can智能节点的软硬件设计

嵌入式can智能节点的软硬件设计

时间:09-12 来源:互联网 点击:

寄存器、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端功能的实现

硬件部分

PC端采用了研华公司的PCL-841双端口can接口卡,该卡具有两个can通信口,最高数据传输速率可以达到1Mbps。该卡采用内存映射机制,即将can接口卡上的内存映射至主存中,用户可以根据需要自己设定映射内存的基地址。

软件部分

PC端的软件采用C语言编写,主要完成can信息的实时读取、处理和显示,向嵌入式can智能节点发送数据和设置嵌入式can智能节点PWM波输出的脉冲宽度等工作。

设计、调试中应当注意的一些问题

硬件方面

嵌入式can智能节点

设计中应当注意处理好复位和时钟信号,包括不同器件之间复位的先后时序。在进行温度信号的采集时,要特别注意温度传感器AD590的调零。AD590是一个恒流源,它的特性是绝对温度每变化1℃电流增/减1mA,绝对温度0℃时为0mA。为抵消AD590在0℃时的电压,需要加入一个负电源使其在0℃时输出为0V,再选择合适的电阻把电流转变为电压,就可以把温度信号的采集变为0~5V电压信号的采集。

调试过程中应首先检查各芯片的工作电压是否正常,晶振是否起振,复位信号是否正确。要经常察看各芯片的发热状况,出现温度过高时应立即断电检查。必要时可使用示波器观测信号波形进行分析。

PC端

由于PCL-841双端口can接口卡占用PC的串口资源,因此在BIOS设置中应将串口设置为Disable,还应该特别注意can接口卡占用的内存资源是否被其它硬件占用,如果已经被占用,则应修改can接口卡内存映射的首地址,同时更改can接口卡上的跳线,否则can接口卡无法正常工作。

软件方面

嵌入式can智能节点

在编写嵌入式can智能节点的程序时,需要特别注意的是can控制器MCP2510的初始化,务必使一个系统中的所有智能节点的数据传输波特率相同,否则嵌入式can智能节点将无法和PC端进行通信。应当注意必须正确地将标识码和屏蔽字写入MCP2510的can信息接收过滤和屏蔽控制寄存器,否则嵌入式 can智能节点将无法正确的发送和接收can信息。

调试过程中应注意通过查看各个寄存器的值来判断程序执

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top